From 937c1a0bd3ae3829f59fd5c9e118c4be8029458f Mon Sep 17 00:00:00 2001
From: yfx <1249361928@.com>
Date: Fri, 13 Mar 2026 13:45:27 +0800
Subject: [PATCH] add pages
---
node_modules/crypto-js/format-hex.js | 66
node_modules/canvas/src/dll_visibility.h | 20
node_modules/canvas/build/Release/libthai-0.dll | 0
node_modules/canvas/src/CanvasGradient.h | 22
node_modules/crypto-js/blowfish.js | 471
.hbuilderx/launch.json | 14
node_modules/crypto-js/mode-ctr-gladman.js | 116
node_modules/canvas/build/Release/canvas.node | 0
node_modules/canvas/src/init.cc | 94
node_modules/canvas/src/backend/PdfBackend.cc | 53
node_modules/pdfh5/test.pdf | 0
node_modules/canvas/build/Release/libwinpthread-1.dll | 0
node_modules/crypto-js/rabbit-legacy.js | 190
node_modules/canvas/build/Release/libcairo-gobject-2.dll | 0
node_modules/canvas/src/CanvasRenderingContext2d.h | 225
node_modules/canvas/build/Release/canvas.iobj | 0
node_modules/canvas/build/Release/libbrotlicommon.dll | 0
node_modules/canvas/src/color.h | 30
node_modules/canvas/src/Point.h | 11
node_modules/canvas/build/Release/canvas.ipdb | 0
node_modules/canvas/build/Release/libgio-2.0-0.dll | 0
node_modules/canvas/build/Release/libbz2-1.dll | 0
node_modules/canvas/build/Release/obj/canvas/canvas.tlog/canvas.write.1u.tlog | 0
node_modules/canvas/build/Release/obj/canvas/src/backend/ImageBackend.obj | 0
node_modules/canvas/src/Canvas.h | 96
node_modules/crypto-js/mode-ecb.js | 40
node_modules/canvas/build/Release/libpcre2-8-0.dll | 0
node_modules/crypto-js/pad-iso10126.js | 44
node_modules/canvas/build/Release/libfreetype-6.dll | 0
node_modules/canvas/src/backend/SvgBackend.cc | 61
node_modules/crypto-js/enc-base64.js | 136
node_modules/crypto-js/md5.js | 268
node_modules/pdfh5/LICENSE | 21
node_modules/canvas/src/PNG.h | 292
node_modules/canvas/build/Release/obj/canvas/canvas.tlog/CL.read.1.tlog | 0
node_modules/crypto-js/index.js | 18
node_modules/canvas/src/Backends.cc | 18
node_modules/canvas/src/ImageData.h | 27
node_modules/canvas/build/Release/obj/canvas/canvas.tlog/link.command.1.tlog | 0
node_modules/canvas/src/CanvasPattern.cc | 136
node_modules/crypto-js/sha384.js | 83
node_modules/crypto-js/mode-cfb.js | 80
node_modules/canvas/build/Release/canvas.pdb | 0
node_modules/canvas/src/register_font.cc | 408
node_modules/crypto-js/enc-utf8.js | 18
node_modules/pdfh5/js/pdfh5.worker.js | 0
node_modules/canvas/build/Release/libjpeg-8.dll | 0
node_modules/crypto-js/docs/QuickStartGuide.wiki | 470
node_modules/crypto-js/hmac-sha3.js | 18
node_modules/canvas/src/backend/Backend.cc | 112
node_modules/canvas/src/CanvasRenderingContext2d.cc | 3360 +++++
node_modules/canvas/lib/canvas.js | 113
node_modules/canvas/lib/pdfstream.js | 35
node_modules/canvas/src/bmp/LICENSE.md | 24
node_modules/canvas/Readme.md | 600
node_modules/crypto-js/tripledes.js | 779 +
node_modules/pdfh5/js/pinch-zoom.js | 927 +
node_modules/pdfh5/git.pdf | 0
node_modules/crypto-js/LICENSE | 24
node_modules/canvas/build/Release/libbrotlidec.dll | 0
node_modules/canvas/build/Release/obj/canvas/src/register_font.obj | 0
node_modules/canvas/build/Release/libstdc++-6.dll | 0
node_modules/canvas/build/Release/canvas.exp | 0
node_modules/canvas/src/closure.h | 81
node_modules/canvas/build/Release/obj/canvas/src/closure.obj | 0
node_modules/crypto-js/README.md | 275
node_modules/canvas/CHANGELOG.md | 1052 +
node_modules/canvas/build/Release/librsvg-2-2.dll | 0
node_modules/canvas/build/Release/obj/canvas/src/Image.obj | 0
node_modules/canvas/build/Release/libgmodule-2.0-0.dll | 0
node_modules/crypto-js/sha256.js | 199
node_modules/pdfh5/js/pdfh5.js | 2164 +++
node_modules/crypto-js/rabbit.js | 192
node_modules/pdfh5/index.html | 232
node_modules/pdfh5/css/pdfh5.css | 212
node_modules/canvas/build/Release/canvas.lib | 0
node_modules/canvas/build/Release/obj/canvas/win_delay_load_hook.obj | 0
node_modules/crypto-js/bower.json | 39
.gitignore | 22
node_modules/canvas/build/Release/obj/canvas/canvas.tlog/link.read.1.tlog | 0
node_modules/canvas/build/Release/libharfbuzz-0.dll | 0
node_modules/canvas/build/Release/libfontconfig-1.dll | 0
node_modules/canvas/lib/pattern.js | 17
node_modules/pdfh5/js/jquery-3.6.0.min.js | 2
node_modules/pdfh5/pdf.html | 166
node_modules/crypto-js/crypto-js.js | 6657 ++++++++++
node_modules/canvas/src/bmp/BMPParser.h | 60
node_modules/crypto-js/aes.js | 234
node_modules/canvas/browser.js | 35
node_modules/crypto-js/core.js | 807 +
node_modules/crypto-js/package.json | 42
node_modules/canvas/src/backend/PdfBackend.h | 24
node_modules/canvas/lib/parse-font.js | 101
node_modules/canvas/src/backend/SvgBackend.h | 24
node_modules/canvas/package.json | 72
node_modules/pdfh5/js/pdf-obfuscated.js | 1
node_modules/canvas/build/Release/obj/canvas/src/Canvas.obj | 0
node_modules/canvas/build/Release/obj/canvas/src/init.obj | 0
node_modules/canvas/util/win_jpeg_lookup.js | 21
node_modules/canvas/build/Release/libfribidi-0.dll | 0
node_modules/crypto-js/hmac-sha512.js | 18
node_modules/canvas/build/Release/obj/canvas/src/bmp/BMPParser.obj | 0
node_modules/canvas/src/ImageData.cc | 146
node_modules/crypto-js/enc-utf16.js | 149
node_modules/crypto-js/format-openssl.js | 18
node_modules/canvas/build/Release/libiconv-2.dll | 0
node_modules/canvas/build/Release/libdatrie-1.dll | 0
node_modules/canvas/build/Release/obj/canvas/canvas.node.recipe | 11
node_modules/crypto-js/x64-core.js | 304
node_modules/canvas/lib/image.js | 96
node_modules/crypto-js/cipher-core.js | 895 +
node_modules/canvas/build/Release/libpango-1.0-0.dll | 0
node_modules/crypto-js/pad-nopadding.js | 30
node_modules/canvas/build/Release/obj/canvas/src/CanvasPattern.obj | 0
node_modules/canvas/build/Release/obj/canvas/src/color.obj | 0
node_modules/canvas/index.js | 94
node_modules/canvas/lib/pngstream.js | 42
node_modules/canvas/build/Release/obj/canvas/src/Backends.obj | 0
node_modules/canvas/build/Release/libpng16-16.dll | 0
node_modules/canvas/src/Canvas.cc | 965 +
node_modules/canvas/src/closure.cc | 26
node_modules/canvas/lib/jpegstream.js | 41
node_modules/canvas/build/Release/libffi-8.dll | 0
node_modules/canvas/lib/DOMMatrix.js | 620
node_modules/canvas/src/CanvasError.h | 23
node_modules/crypto-js/enc-latin1.js | 18
node_modules/canvas/src/backend/ImageBackend.h | 26
node_modules/crypto-js/pad-ansix923.js | 49
node_modules/canvas/build/Release/libpangocairo-1.0-0.dll | 0
node_modules/canvas/src/CanvasGradient.cc | 123
node_modules/crypto-js/sha1.js | 150
node_modules/canvas/build/Release/obj/canvas/canvas.tlog/CL.write.1.tlog | 0
node_modules/canvas/src/InstanceData.h | 8
node_modules/canvas/build/Release/obj/canvas/src/CanvasRenderingContext2d.obj | 0
node_modules/crypto-js/hmac-ripemd160.js | 18
node_modules/canvas/build/Release/obj/canvas/canvas.tlog/CL.command.1.tlog | 0
node_modules/canvas/build/Release/libintl-8.dll | 0
node_modules/canvas/src/bmp/BMPParser.cc | 457
node_modules/canvas/src/color.cc | 779 +
node_modules/canvas/build/Release/libgdk_pixbuf-2.0-0.dll | 0
node_modules/canvas/src/Image.h | 127
node_modules/canvas/build/Release/obj/canvas/canvas.tlog/canvas.lastbuildstate | 2
node_modules/canvas/build/Release/libcairo-2.dll | 0
node_modules/crypto-js/mode-ofb.js | 54
node_modules/canvas/src/register_font.h | 7
node_modules/canvas/util/has_lib.js | 119
node_modules/canvas/src/Util.h | 9
node_modules/pdfh5/css/style.css | 1242 +
node_modules/pdfh5/README.md | 280
node_modules/crypto-js/sha512.js | 326
node_modules/canvas/lib/context2d.js | 14
node_modules/canvas/build/Release/liblzma-5.dll | 0
node_modules/pdfh5/js/jquery.qrcode.min.js | 28
node_modules/pdfh5/js/pinch-zoom.min.js | 1
node_modules/canvas/build/Release/libpixman-1-0.dll | 0
node_modules/canvas/build/Release/libpangoft2-1.0-0.dll | 0
node_modules/canvas/src/CanvasRenderingContext2d.cc.orig | 3381 +++++
node_modules/crypto-js/hmac-md5.js | 18
node_modules/crypto-js/pad-zeropadding.js | 47
node_modules/canvas/build/Release/zlib1.dll | 0
node_modules/canvas/types/index.d.ts | 484
node_modules/crypto-js/mode-ctr.js | 58
node_modules/canvas/src/backend/ImageBackend.cc | 74
node_modules/crypto-js/evpkdf.js | 134
node_modules/crypto-js/sha3.js | 326
node_modules/pdfh5/js/pdf.js | 22
node_modules/crypto-js/CONTRIBUTING.md | 28
node_modules/crypto-js/enc-hex.js | 18
node_modules/canvas/build/Release/obj/canvas/src/backend/PdfBackend.obj | 0
node_modules/canvas/types/Readme.md | 3
node_modules/canvas/build/Release/libexpat-1.dll | 0
node_modules/canvas/build/Release/libpangowin32-1.0-0.dll | 0
pages/quanyi/add.vue | 761
node_modules/crypto-js/hmac-sha256.js | 18
node_modules/pdfh5/pdfh5.png | 0
node_modules/canvas/src/Backends.h | 10
node_modules/pdfh5/vconsole.min.js | 10
node_modules/canvas/build/Release/libxml2-2.dll | 0
node_modules/canvas/build/Release/obj/canvas/src/backend/SvgBackend.obj | 0
node_modules/canvas/binding.gyp | 230
node_modules/crypto-js/sha224.js | 80
node_modules/canvas/build/Release/obj/canvas/src/ImageData.obj | 0
node_modules/canvas/src/JPEGStream.h | 167
node_modules/pdfh5/package.json | 61
node_modules/canvas/lib/bindings.js | 13
node_modules/canvas/build/Release/libgcc_s_seh-1.dll | 0
node_modules/canvas/build/Release/libgraphite2.dll | 0
node_modules/crypto-js/hmac-sha224.js | 18
node_modules/crypto-js/pbkdf2.js | 145
node_modules/canvas/changes | 19
node_modules/canvas/build/Release/obj/canvas/src/CanvasGradient.obj | 0
node_modules/crypto-js/lib-typedarrays.js | 76
node_modules/crypto-js/enc-base64url.js | 148
node_modules/canvas/src/Image.cc | 1434 ++
node_modules/canvas/build/Release/libgif-7.dll | 0
node_modules/crypto-js/hmac-sha1.js | 18
node_modules/pdfh5/js/pdf.worker.js | 22
node_modules/crypto-js/ripemd160.js | 267
node_modules/canvas/build/Release/libglib-2.0-0.dll | 0
node_modules/canvas/build/Release/obj/canvas/src/backend/Backend.obj | 0
node_modules/crypto-js/hmac-sha384.js | 18
node_modules/crypto-js/hmac.js | 143
node_modules/.package-lock.json | 12
node_modules/crypto-js/pad-pkcs7.js | 18
node_modules/canvas/src/CanvasRenderingContext2d.h.orig | 226
node_modules/canvas/src/CanvasPattern.h | 37
node_modules/crypto-js/pad-iso97971.js | 40
node_modules/crypto-js/rc4.js | 139
node_modules/canvas/build/Release/obj/canvas/canvas.tlog/link.write.1.tlog | 0
/dev/null | 44
pages/quanshou/index.vue | 8
node_modules/canvas/src/backend/Backend.h | 69
node_modules/canvas/build/Release/libgobject-2.0-0.dll | 0
213 files changed, 37,971 insertions(+), 439 deletions(-)
diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000..5d32a75
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1,22 @@
+.DS_Store
+unpackage/
+dist/
+
+# local env files
+.env.local
+.env.*.local
+
+# Log files
+npm-debug.log*
+yarn-debug.log*
+yarn-error.log*
+
+# Editor directories and files
+.project
+.idea
+.vscode
+*.suo
+*.ntvs*
+*.njsproj
+*.sln
+*.sw*
diff --git a/.hbuilderx/launch.json b/.hbuilderx/launch.json
new file mode 100644
index 0000000..6fcdb16
--- /dev/null
+++ b/.hbuilderx/launch.json
@@ -0,0 +1,14 @@
+{
+ "version" : "1.0",
+ "configurations" : [
+ {
+ "customPlaygroundType" : "local",
+ "playground" : "custom",
+ "type" : "uni-app:app-android"
+ },
+ {
+ "playground" : "standard",
+ "type" : "uni-app:app-ios"
+ }
+ ]
+}
diff --git a/node_modules/.package-lock.json b/node_modules/.package-lock.json
new file mode 100644
index 0000000..80097df
--- /dev/null
+++ b/node_modules/.package-lock.json
@@ -0,0 +1,12 @@
+{
+ "name": "gold",
+ "lockfileVersion": 2,
+ "requires": true,
+ "packages": {
+ "node_modules/crypto-js": {
+ "version": "4.2.0",
+ "resolved": "https://registry.npmjs.org/crypto-js/-/crypto-js-4.2.0.tgz",
+ "integrity": "sha512-KALDyEYgpY+Rlob/iriUtjV6d5Eq+Y191A5g4UqLAi8CyGP9N1+FdVbkc1SxKc2r4YAYqG8JzO2KGL+AizD70Q=="
+ }
+ }
+}
diff --git a/node_modules/canvas/CHANGELOG.md b/node_modules/canvas/CHANGELOG.md
new file mode 100644
index 0000000..cbbdb82
--- /dev/null
+++ b/node_modules/canvas/CHANGELOG.md
@@ -0,0 +1,1052 @@
+# Changelog
+
+All notable changes to this project will be documented in this file.
+
+The format is based on [Keep a Changelog](http://keepachangelog.com/) and this
+project adheres to [Semantic Versioning](http://semver.org/).
+
+(Unreleased)
+==================
+### Changed
+### Added
+### Fixed
+
+2.11.2
+==================
+### Fixed
+* Building on Windows in CI (and maybe other Windows configurations?) (#2216)
+
+2.11.1
+==================
+### Fixed
+* Add missing property `canvas` to the `CanvasRenderingContext2D` type
+* Fixed glyph positions getting rounded, resulting text having a slight `letter-spacing` effect
+* Fixed `ctx.font` not being restored correctly after `ctx.restore()` (#1946)
+
+2.11.0
+==================
+### Fixed
+* Replace triple-slash directive in types with own types to avoid polluting TS modules with globals ([#1656](https://github.com/Automattic/node-canvas/issues/1656))
+
+2.10.2
+==================
+### Fixed
+* Fix `Assertion failed: (object->InternalFieldCount() > 0), function Unwrap, file nan_object_wrap.h, line 32.` ([#2025](https://github.com/Automattic/node-canvas/issues/2025))
+* `textBaseline` and `textAlign` were not saved/restored by `save()`/`restore()`. ([#1936](https://github.com/Automattic/node-canvas/issues/2029))
+* Update nan to v2.17.0 to ensure Node.js v18+ support.
+### Changed
+* Improve performance and memory usage of `save()`/`restore()`.
+* `save()`/`restore()` no longer have a maximum depth (previously 64 states).
+
+2.10.1
+==================
+### Fixed
+* Fix `actualBoundingBoxLeft` and `actualBoundingBoxRight` when `textAlign='center'` or `'right'` ([#1909](https://github.com/Automattic/node-canvas/issues/1909))
+* Fix `rgba(r,g,b,0)` with alpha to 0 should parse as transparent, not opaque. ([#2110](https://github.com/Automattic/node-canvas/pull/2110))
+
+2.10.0
+==================
+### Added
+* Export `pangoVersion`
+* [`ctx.roundRect()`](https://developer.chrome.com/blog/canvas2d/#round-rect)
+### Fixed
+* `rgba(r,g,b)` with no alpha should parse as opaque, not transparent. ([#2029](https://github.com/Automattic/node-canvas/issues/2029))
+* Typo in `PngConfig.filters` types. ([#2072](https://github.com/Automattic/node-canvas/issues/2072))
+* `createPattern()` always used "repeat" mode; now supports "repeat-x" and "repeat-y". ([#2066](https://github.com/Automattic/node-canvas/issues/2066))
+* Crashes and hangs when using non-finite values in `context.arc()`. ([#2055](https://github.com/Automattic/node-canvas/issues/2055))
+* Incorrect `context.arc()` geometry logic for full ellipses. ([#1808](https://github.com/Automattic/node-canvas/issues/1808), ([#1736](https://github.com/Automattic/node-canvas/issues/1736)))
+* Added missing `deregisterAllFonts` to the Typescript declaration file ([#2096](https://github.com/Automattic/node-canvas/pull/2096))
+* Add `User-Agent` header when requesting remote images ([#2099](https://github.com/Automattic/node-canvas/issues/2099))
+
+2.9.3
+==================
+### Fixed
+* Wrong fonts used when calling `registerFont` multiple times with the same family name ([#2041](https://github.com/Automattic/node-canvas/issues/2041))
+
+2.9.2
+==================
+### Fixed
+* All exports now work when Canvas is used in ES Modules (ESM). ([#2047](https://github.com/Automattic/node-canvas/pull/2047))
+* `npm rebuild` will now re-fetch prebuilt binaries to avoid `NODE_MODULE_VERSION` mismatch errors. ([#1982](https://github.com/Automattic/node-canvas/pull/1982))
+
+2.9.1
+==================
+### Fixed
+* Stringify CanvasGradient, CanvasPattern and ImageData like browsers do. (#1639, #1646)
+* Add missing include for `toupper`.
+* Throw an error instead of crashing the process if `getImageData` or `putImageData` is called on a PDF or SVG canvas (#1853)
+* Compatibility with Typescript 4.6
+* Near-perfect font matching on Linux (#1572)
+* Fix multi-byte font path support on Windows.
+* Allow rebuild of this library
+
+2.9.0
+==================
+### Changed
+* Refactor functions to classes.
+* Changed `DOMPoint()` constructor to check for parameter nullability.
+* Changed `DOMMatrix.js` to use string literals for non-special cases.
+* Remove semicolons from Dommatrix.js.
+* Update nan to v2.15.0 to ensure Node.js v14+ support.
+* Clean up inf/nan macros and slightly speed up argument checking.
+### Added
+* Added `deregisterAllFonts` method to free up memory and reduce font conflicts.
+### Fixed
+* Support Apple M1 Homebrew install that puts canvas install library files in `/opt/homebrew/lib`
+
+2.8.0
+==================
+### Changed
+* Upgrade dtslint
+* Upgrade node-pre-gyp to 1.0.0. Note that if you are using special node-pre-gyp
+ features like `node_pre_gyp_accessKeyId`, you may need to make changes to your
+ installation procedure. See https://github.com/mapbox/node-pre-gyp/blob/master/CHANGELOG.md#100.
+* Add Node.js v16 to CI.
+* The C++ class method `nBytes()` now returns a size_t. (Because this is a C++
+ method only, this is not considered a breaking change.)
+### Added
+* Add support for `inverse()` and `invertSelf()` to `DOMMatrix` (#1648)
+* Add support for `context.getTransform()` ([#1769](https://github.com/Automattic/node-canvas/pull/1769))
+* Add support for `context.setTransform(dommatrix)` ([#1769](https://github.com/Automattic/node-canvas/pull/1769))
+### Fixed
+* Fix `actualBoundingBoxLeft` and `actualBoundingBoxRight` returned by `measureText` to be the ink rect ([#1776](https://github.com/Automattic/node-canvas/pull/1776), fixes [#1703](https://github.com/Automattic/node-canvas/issues/1703)).
+* Fix Pango logging "expect ugly output" on Windows (#1643)
+* Fix benchmark for createPNGStream (#1672)
+* Fix dangling reference in BackendOperationNotAvailable exception (#1740)
+* Fix always-false comparison warning in Canvas.cc.
+* Fix Node.js crash when throwing from an onload or onerror handler.
+
+2.7.0
+==================
+### Changed
+* Switch CI to Github Actions. (Adds Windows and macOS builds.)
+* Switch prebuilds to GitHub actions in the Automattic/node-canvas repository.
+ Previously these were in the [node-gfx/node-canvas-prebuilt](https://github.com/node-gfx/node-canvas-prebuilt)
+ and triggered manually.
+* Speed up `fillStyle=` and `strokeStyle=`
+### Added
+* Export `rsvgVersion`.
+* CanvasPattern’s `setTransform` method is no longer missing
+### Fixed
+* Fix BMP issues. (#1497)
+* Update typings to support jpg and addPage on NodeCanvasRenderingContext2D (#1509)
+* Fix assertion failure when using Visual Studio Code debugger to inspect Image prototype (#1534)
+* Fix signed/unsigned comparison warning introduced in 2.6.0, and function cast warnings with GCC8+
+* Fix to compile without JPEG support (#1593).
+* Fix compile errors with cairo
+* Fix Image#complete if the image failed to load.
+* Upgrade node-pre-gyp to v0.15.0 to use latest version of needle to fix error when downloading prebuilds.
+* Don't throw if `fillStyle` or `strokeStyle` is set to an object, but that object is not a Gradient or Pattern. (This behavior was non-standard: invalid inputs are supposed to be ignored.)
+
+2.6.1
+==================
+### Fixed
+* Ignore `maxWidth` in `fillText` and `strokeText` if it is undefined
+* Fix crash (assertion failure) in Node.js 12.x when patterns or gradients are used
+* Fix crash (check failure) in Node.js 12.x when using RGB16_565 format. (The
+ underlying arraybuffer was incorrectly sized.)
+* Fix rendering error when applying shadow width line style (lineCap lineJoin lineDash)
+
+2.6.0
+==================
+### Changed
+* Allow larger buffers to be returned from `toBuffer('raw')`.
+### Added
+* Support for various BMP headers and color depths (#1435)
+### Fixed
+* Fix crash when changing canvas width/height while `fillStyle` or `strokeStyle`
+ was set to a `CanvasPattern` or `CanvasGradient` (#1357).
+* Fix crash when changing width/height of SVG canvases (#1380).
+* Fix crash when using `toBuffer('raw')` with large canvases (#1158).
+* Clarified meaning of byte ordering for `toBuffer('raw')` in readme. (#1416)
+* Fix package.json Typings field to point to Declaration file (#1432)
+* Properly check return value from `Set` and `Call`. (#1415)
+* Use `Get` version from `Nan` instead of `v8`. (#1415)
+
+2.5.0
+==================
+### Added
+* Support redirects when fetching images (using [simple-get](https://github.com/feross/simple-get)) (#1398)
+* Support Node.js v12
+### Fixed
+* Fix object literal & arrow function syntax usage for IE.
+
+2.4.1
+==================
+### Fixed
+* Guard JPEG width/height against maximum supported (#1385)
+* Fix electron 5 and node 12 compatibility
+* Fix encoding options (quality) parameter in `canvas.toDataURL()`
+
+2.4.0
+==================
+### Added
+* (Actually) added `resolution` option for `canvas.toBuffer("image/png")` and
+ `canvas.createPNGStream()`. This was documented since 2.0.0 but not working.
+* Add typescript definitions.
+### Fixed
+* PDF metadata (added in 2.3.0) wasn't being set with `canvas.createPDFStream()`
+* Fix custom "inspect" function deprecation warnings (#1326)
+
+2.3.1
+==================
+### Fixed
+* Fix `canvas.toBuffer()` for JPEGs (#1350)
+
+2.3.0
+==================
+### Added
+* Add support for multiple PDF page sizes
+* Add support for embedding document metadata in PDFs
+
+### Fixed
+* Don't crash when font string is invalid (bug since 2.2.0) (#1328)
+* Fix memory leak in `canvas.toBuffer()` (#1202, #1296)
+* Fix memory leak in `ctx.font=` (#1202)
+
+2.2.0
+==================
+### Added
+* BMP support
+
+### Fixed
+* Reset context on resurface (#1292)
+* Support Jest test framework (#1311)
+
+2.1.0
+==================
+### Added
+* Warn when building with old, unsupported versions of cairo or libjpeg.
+
+2.0.0
+==================
+
+**Upgrading from 1.x**
+```js
+// (1) The Canvas constructor is no longer the default export from the module.
+/* old: */
+const Canvas = require('canvas')
+const mycanvas = new Canvas(width, height)
+/* new: */
+const { createCanvas, Canvas } = require('canvas')
+const mycanvas = createCanvas(width, height)
+mycanvas instanceof Canvas // true
+
+/* old: */
+const Canvas = require('canvas')
+const myimg = new Canvas.Image()
+/* new: */
+const { Image } = require('canvas')
+const myimg = new Image()
+
+// (2) The quality argument for canvas.createJPEGStream/canvas.jpegStream now
+// goes from 0 to 1 instead of from 0 to 100:
+canvas.createJPEGStream({ quality: 50 }) // old
+canvas.createJPEGStream({ quality: 0.5 }) // new
+
+// (3) The ZLIB compression level and PNG filter options for canvas.toBuffer are
+// now named instead of positional arguments:
+canvas.toBuffer(undefined, 3, canvas.PNG_FILTER_NONE) // old
+canvas.toBuffer(undefined, { compressionLevel: 3, filters: canvas.PNG_FILTER_NONE }) // new
+// or specify the mime type explicitly:
+canvas.toBuffer('image/png', { compressionLevel: 3, filters: canvas.PNG_FILTER_NONE }) // new
+
+// (4) #2 also applies for canvas.pngStream, although these arguments were not
+// documented:
+canvas.pngStream(3, canvas.PNG_FILTER_NONE) // old
+canvas.pngStream({ compressionLevel: 3, filters: canvas.PNG_FILTER_NONE }) // new
+
+// (5) canvas.syncPNGStream() and canvas.syncJPEGStream() have been removed:
+canvas.syncPNGStream() // old
+canvas.createSyncPNGStream() // old
+canvas.createPNGStream() // new
+
+canvas.syncJPEGStream() // old
+canvas.createSyncJPEGStream() // old
+canvas.createJPEGStream() // new
+
+// (6) Context2d.filter has been renamed to context2d.quality to avoid a
+// conflict with the new standard 'filter' property.
+context.filter = 'best' // old
+context.quality = 'best' // new
+```
+
+### Breaking
+ * Drop support for Node.js <6.x
+ * Remove sync stream functions (bc53059). Note that most streams are still
+ synchronous (run in the main thread); this change just removed `syncPNGStream`
+ and `syncJPEGStream`.
+ * Pango is now *required* on all platforms (7716ae4).
+ * Make the `quality` argument for JPEG output go from 0 to 1 to match HTML spec.
+ * Make the `compressionLevel` and `filters` arguments for `canvas.toBuffer()`
+ named instead of positional. Same for `canvas.pngStream()`, although these
+ arguments were not documented.
+ * See also: *Correct some of the `globalCompositeOperator` types* under
+ **Fixed**. These changes were bug-fixes, but will break existing code relying
+ on the incorrect types.
+ * Rename `context2d.filter` to `context2d.quality` to avoid a conflict with the
+ new standard 'filter' property. Note that the standard 'filter' property is
+ not yet implemented.
+
+### Fixed
+ * Fix build with SVG support enabled (#1123)
+ * Prevent segfaults caused by loading invalid fonts (#1105)
+ * Fix memory leak in font loading
+ * Port has_lib.sh to javascript (#872)
+ * Correctly sample the edge of images when scaling (#1084)
+ * Detect CentOS libjpeg path (b180ea5)
+ * Improve measureText accuracy (2bbfec5)
+ * Fix memory leak when image callbacks reference the image (1f4b646)
+ * Fix putImageData(data, negative, negative) (2102e25)
+ * Fix SVG recognition when loading from buffer (77749e6)
+ * Re-rasterize SVG when drawing to a context and dimensions changed (79bf232)
+ * Prevent JPEG errors from crashing process (#1124)
+ * Improve handling of invalid arguments (#1129)
+ * Fix repeating patterns when drawing a canvas to itself (#1136)
+ * Prevent segfaults caused by creating a too large canvas
+ * Fix parse-font regex to allow for whitespaces.
+ * Allow assigning non-string values to fillStyle and strokeStyle
+ * Fix drawing zero-width and zero-height images.
+ * Fix DEP0005 deprecation warning
+ * Don't assume `data:` URIs assigned to `img.src` are always base64-encoded
+ * Fix formatting of color strings (e.g. `ctx.fillStyle`) on 32-bit platforms
+ * Explicitly export symbols for the C++ API
+ * Named CSS colors should match case-insensitive
+ * Correct some of the `globalCompositeOperator` types to match the spec:
+ * "hsl-hue" is now "hue"
+ * "hsl-saturation" is now "saturation"
+ * "hsl-color" is now "color"
+ * "hsl-luminosity" is now "luminosity"
+ * "darker" is now "darken"
+ * "dest" is now "destination"
+ * "add" is removed (but is the same as "lighter")
+ * "source" is now "copy"
+ * Provide better, Node.js core-style coded errors for failed sys calls. (For
+ example, provide an error with code 'ENOENT' if setting `img.src` to a path
+ that does not exist.)
+ * Support reading CMYK, YCCK JPEGs.
+ * Hide `Image.prototype.source`
+ * Fix behavior of maxWidth (#1088)
+ * Fix behavior of textAlignment with maxWidth (#1253)
+
+### Added
+ * Prebuilds (#992) with different libc versions to the prebuilt binary (#1140)
+ * Support `canvas.getContext("2d", {alpha: boolean})` and
+ `canvas.getContext("2d", {pixelFormat: "..."})`
+ * Support indexed PNG encoding.
+ * Support `currentTransform` (d6714ee)
+ * Export `CanvasGradient` (6a4c0ab)
+ * Support #RGBA , #RRGGBBAA hex colors (10a82ec)
+ * Support maxWidth arg for fill/strokeText (175b40d)
+ * Support image.naturalWidth/Height (a5915f8)
+ * Render SVG img elements when librsvg is available (1baf00e)
+ * Support ellipse method (4d4a726)
+ * Browser-compatible API (6a29a23)
+ * Support for jpeg on Windows (42e9a74)
+ * Support for backends (1a6dffe)
+ * Support for `canvas.toBuffer("image/jpeg")`
+ * Unified configuration options for `canvas.toBuffer()`, `canvas.pngStream()`
+ and `canvas.jpegStream()`
+ * ~~Added `resolution` option for `canvas.toBuffer("image/png")` and
+ `canvas.createPNGStream()`~~ this was not working
+ * Support for `canvas.toDataURI("image/jpeg")` (sync)
+ * Support for `img.src = <url>` to match browsers
+ * Support reading data URL on `img.src`
+ * Readme: add dependencies command for OpenBSD
+ * Throw error if calling jpegStream when canvas was not built with JPEG support
+ * Emit error if trying to load GIF, SVG or JPEG image when canvas was not built
+ with support for that format
+
+1.6.x (unreleased)
+==================
+### Fixed
+ * Make setLineDash able to handle full zeroed dashes (b8cf1d7)
+ * Fix reading fillStyle after setting it from gradient to color (a84b2bc)
+
+### Added
+ * Support for pattern repeat and no-repeat (#1066)
+ * Support for context globalAlpha for gradients and patterns (#1064)
+
+1.6.9 / 2017-12-20
+==================
+### Fixed
+ * Fix some instances of crashes (7c9ec58, 8b792c3)
+ * Fix node 0.x compatibility (dca33f7)
+
+1.6.8 / 2017-12-12
+==================
+### Fixed
+ * Faster, more compliant parseFont (4625efa, 37cd969)
+
+1.6.7 / 2017-09-08
+==================
+### Fixed
+ * Minimal backport of #985 (rotated text baselines) (c19edb8)
+
+1.6.6 / 2017-05-03
+==================
+### Fixed
+ * Use .node extension for requiring native module so webpack works (1b05599)
+ * Correct text baseline calculation (#1037)
+
+1.6.5 / 2017-03-18
+==================
+### Changed
+ * Parse font using parse-css-font and units-css (d316416)
+
+1.6.4 / 2017-02-26
+==================
+### Fixed
+ * Make sure Canvas#toDataURL is always async if callback is passed (8586d72)
+
+1.6.3 / 2017-02-14
+==================
+### Fixed
+ * Fix isnan() and isinf() on clang (5941e13)
+
+1.6.2 / 2016-10-30
+==================
+### Fixed
+ * Fix deprecation warnings (c264879)
+ * Bump nan (e4aea20)
+
+1.6.1 / 2016-10-23
+==================
+
+### Fixed
+ * Make has_lib.sh work on BSD OSes (1727d66)
+
+1.6.0 / 2016-10-16
+==================
+
+ * Support canvas.getBuffer('raw') (#819)
+
+1.5.0 / 2016-09-11
+==================
+
+ * Crude PDF stream implementation (#781)
+ * Update CI settings (#797)
+ * Reduce some of the install warnings (#794)
+ * Fix lineDash browser tests never finishing (#793)
+ * Add issue template (#791)
+
+1.4.0 / 2016-06-03
+==================
+
+ * Add support for evenodd fill rule (#762)
+
+1.3.17 / 2016-06-03
+===================
+
+ * Removing redundant duplicate calls (#769)
+ * Cleanup examples (#776)
+ * Fix CanvasRenderingContext2D class name (#777)
+
+1.3.16 / 2016-05-29
+===================
+
+ * Fix leak of data when streaming JPEG (#774)
+
+1.3.15 / 2016-05-09
+===================
+
+ * Fix segfault in putImageData (#750)
+
+1.3.14 / 2016-05-05
+===================
+
+ * Clamp JPEG buffer size (#739)
+
+1.3.13 / 2016-05-01
+===================
+
+ * Bumb NAN version (#759)
+
+1.3.12 / 2016-03-01
+===================
+
+ * Expose freetype version (#718)
+ * Require new in constructor (#717)
+
+1.3.11 / 2016-03-01
+===================
+
+ * Properly clamp quality in toDataURL (#728)
+ * Strict mode (#719)
+
+1.3.10 / 2016-02-07
+===================
+
+ * Fix segfault on node 0.10.x (#712)
+
+1.3.9 / 2016-01-27
+==================
+
+ * Allow to unbind onload/onerror callback handlers (#706)
+
+1.3.8 / 2016-01-22
+==================
+
+ * Cleanup build scripts and fix pangocairo detection (#701)
+
+1.3.7 / 2016-01-13
+==================
+
+ * Don't unbind onload/onerror callbacks after invoking them (#615)
+
+1.3.6 / 2016-01-06
+==================
+
+ * Allow optional arguments in `toDataURL` to be `undefined` and improve `toDataURL`'s spec compliance (#690)
+
+1.3.5 / 2015-12-07
+==================
+
+ * Add image/jpeg support to `toDataUrl` (#685)
+
+1.3.4 / 2015-11-21
+==================
+
+ * Upgrade nan to 2.1.0 (#671)
+
+1.3.3 / 2015-11-21
+==================
+
+ * Fix compilation on Visual Studio 2015 (#670)
+
+1.3.2 / 2015-11-18
+==================
+
+ * Fix incorrect Y offset and scaling for shadows (#669)
+
+1.3.1 / 2015-11-09
+==================
+
+ * Wrap std::min calls in paranthesis to prevent macro expansion on windows (#660)
+
+1.3.0 / 2015-10-26
+==================
+
+ * Expose ImageData constructor and make it more spec-compliant (#569)
+
+1.2.11 / 2015-10-20
+===================
+
+ * Implement blur on images (#648)
+
+1.2.10 / 2015-10-12
+===================
+
+ * Fix segfault in Canvas#jpegStream (#629)
+
+1.2.9 / 2015-09-14
+==================
+
+ * Upgrade to Nan 2.x with support for iojs 3.x and Node.js 4.x (#622)
+
+1.2.8 / 2015-08-30
+==================
+
+ * Clean up the tests (#612)
+ * Replace CanvasPixelArray with Uint8ClampedArray to be API-compliant (#604)
+ * Specify travis iojs versions (#611)
+
+1.2.7 / 2015-07-29
+==================
+
+ * Avoid future reserved keyword (#592)
+
+1.2.6 / 2015-07-29
+==================
+
+ * Fix the build on windows (#589)
+
+1.2.5 / 2015-07-28
+==================
+
+ * Another npm release, since 1.2.4 was botched (see #596)
+
+1.2.4 / 2015-07-23
+==================
+
+ * Point `homepage` and `repository` links to [`github.com/Automattic/node-canvas`][repo]
+ * Fix Travis builds and Cairo include paths (thanks, Linus Unnebäck!)
+
+1.2.3 / 2015-05-21
+==================
+
+ * Update TJ Holowaychuk's username in the readme
+ * Fix segmentation fault in `Image::loadFromBuffer` when buffer is empty
+ * Optimize getImageData()
+ * package: add "license" attribute
+ * package: update "nan" to v1.8.4
+ * package: append `.git` to "repository" URL
+
+1.2.2 / 2015-04-18
+==================
+
+ * Now works on io.js
+ * Fix 'drawImage' scaling (the dimensions of the region that gets clipped also needs to be scaled).
+ * Fix bug in StreamPNGSync
+
+1.2.1 / 2015-02-10
+==================
+
+ * Use non-cairo 1.12 API for shadow blur
+
+1.2.0 / 2015-01-31
+==================
+
+ * travis: drop support for node v0.6
+ * Merge pull request #507 from salzhrani/iojs
+ * io.js compatibility
+ * Merge pull request #505 from woodcoder/shadow-blur
+ * Fix issue with line width not being correct in stroked shadows.
+ * Add another shadow/transform test.
+ * Refactor setSourceRGBA to allow the context to be supplied.
+ * Simple image shadow (no blurring or handling current transforms) based on image's alpha channel.
+ * Test showing issue #133, that images don't have shadows.
+ * The +1 on the offset seems to match the browser's output better, but I can't work out why it would be needed (unless it's pixel alignment related).
+ * Make the shadow radius more accurately match the browser's, making use of sigma scale as used in SKIA: https://github.com/google/skia/blob/master/src/effects/SkBlurMask.cpp#L26.
+ * Create a new image surface to render blurred shadows to, this means that vector formats like PDF will now render blurs.
+ * Add recommended calls to flush and dirty buffer, as per http://www.cairographics.org/manual/cairo-Image-Surfaces.html#cairo-image-surface-get-data.
+ * Add PDF button to test page to easily generate PDF version of the test image.
+ * Fix to ensure shadowOffset is unaffected by the current transform.
+ * New test illustrating that canvas implementation doesn't translate the shadowOffset.
+ * Merge pull request #490 from AllYearbooks/master
+ * Merge pull request #501 from motiz88/hsl-color
+ * Code style + attribution. Also removed parseClipped() and commented out wrapInt (now wrap_int).
+ * Added visual tests for hsl() and hsla() color parsing.
+ * Fixed <number> handling in hsl/hsla color parser. parseNumber() was erroring out on numbers with long fractional parts.
+ * hsl/hsla color parsing + rebeccapurple hsl() and hsla() color values are now supported, with corresponding unit tests. Also added rebeccapurple (from CSS Color Level 4) to the named color list.
+ * float rather than int for drawImage arguments
+ * with_pango to true and use fontconfig to load fonts
+ * Merge pull request #399 from nulltask/fix/lighten
+ * Merge pull request #465 from espadrine/master
+ * Merge pull request #470 from tonylukasavage/patch-1
+ * Add one-liner MacPorts install to docs
+ * Offer SVG output.
+ * Readme update: node-gyp.
+ * Readme: fix subheading size
+ * Readme: remove Gemnasium badge, use SVG for npm badge
+ * Readme: add Travis-CI badge
+ * change operator lighter to lighten
+
+1.1.6 / 2014-08-01
+==================
+
+ * export canvas.CanvasPixelArray instead of canvas.PixelArray which is undefined
+ * Glib version test into giflib exists test
+ * Giflib 5.1
+ * install: use an even older version of giflib (v4.1.6)
+ * install: use an older version of giflib (v4.2.3)
+ * install: install `giflib`
+ * install: use more compatible sh syntax
+ * travis: attempt to run the ./install script before testintg
+ * travis: test node v0.6, v0.8, v0.10, and v0.11
+ * Distinguish between 'add' and 'lighter'
+
+1.1.5 / 2014-06-26
+==================
+
+ * Readme: remove Contributors section
+ * Readme: update copyright
+ * On Windows, copy required DLLs next to ".node" file (#442 @pandell)
+ * Duplicate "msvc_settings" for "Debug" configuration
+ * Remove unneeded #include <nan.h>
+ * Use float constants to prevent double->float conversion warning
+ * Ignore Visual C++ 2013 warnings (#441 @pandell)
+ * Add algorithm include to CanvasRenderingContext2d.cc for std::min (#435 @kkoopa)
+ * Updated NAN to 1.2.0 (#434 @kkoopa)
+
+1.1.4 / 2014-06-08
+==================
+
+ * Fix compile error with Visual C++
+ * Add support for the lineDash API
+ * Update NAN
+ * New V8 compatibility
+ * Correctly limit bounds in PutImageData to prevent segment fault
+ * Fix segfault when onload and onerror are not function
+ * Add support for Node 0.11.9
+
+1.1.3 / 2014-01-08
+==================
+
+ * Add CAIRO_FORMAT_INVALID
+ * Readjust the amount of allocated memory
+ * Fix argument index for filter parameter
+ * Make has_lib.sh work properly on Debian 64bit
+
+1.1.2 / 2013-10-31
+==================
+
+ * NAN dep upgrade, full node@<=0.11.8 compatibility
+ * Use node::MakeCallback() instead of v8::Function::Call()
+ * Improve nan location discovery
+ * Fix enabling gif/jpeg options on Ubuntu 13.04
+
+1.1.1 / 2013-10-09
+==================
+
+ * add better support for outdated versions of Cairo
+
+1.1.0 / 2013-08-01
+==================
+
+ * add png compression options
+ * add jpeg stream progressive mode option
+ * fix resource leaks on read errors
+
+1.0.4 / 2013-07-23
+==================
+
+ * 0.11.4+ compatibility using NAN
+ * fix typo in context2d for imageSmoothingEnabled
+
+1.0.3 / 2013-06-04
+==================
+
+ * add "nearest" and "bilinear" to patternQuality
+ * fix fread() retval check (items not bytes)
+ * removed unneeded private fields
+
+1.0.2 / 2013-03-22
+==================
+
+ * add Context2d#imageSmoothingEnabled=
+
+1.0.1 / 2013-02-25
+==================
+
+ * travis: test modern node versions
+ * change the node-gyp build to use pkg-config
+
+1.0.0 / 2013-01-16
+==================
+
+ * add conditional pango font support [Julian Viereck]
+ * add `Canvas#{png,jpeg}Stream()` alias of create* legacy methods
+ * add support for grayscale JPEGs
+ * fix: explicitly cast the after work callback function to "uv_after_work_cb"
+ * fix test server for express 3.x
+ * fix: call cairo_surface_finish in ~Canvas when pdf
+ * remove old 0.4.x binding support. Closes #197
+
+0.13.1 / 2012-08-20
+==================
+
+ * fix cases where GIF_LIB_VERSION is not defined
+ * fix auto-detection of optional libraries for OS X
+ * fix Context2d::SetFont for pango when setting normal weight/style
+
+0.13.0 / 2012-08-12
+==================
+
+ * add pango support [c-spencer]
+ * add pango / png / jpeg gyp auto-detection [c-spencer]
+ * add `.gifVersion` [tootallnate]
+ * add `.jpegVersion` [tootallnate]
+ * add moar gyp stuff [tootallnate]
+ * remove wscript
+ * fix `closure_destroy()` with cast for `AdjustAmountOfExternalAllocatedMemory()`
+
+0.12.1 / 2012-06-29
+==================
+
+ * fix jpeg malloc Image issue. Closes #160 [c-spencer]
+ * Improve Image mode API
+ * Add clearData method to handle reassignment of src, and clean up mime data memory handling.
+ * Improve how _data_len is managed and use to adjust memory, hide more of mime API behind cairo version conditional.
+ * Add optional mime-data tracking to Image.
+ * Refactor JPEG decoding into decodeJPEGIntoSurface
+
+0.12.0 / 2012-05-02
+==================
+
+ * Added `textDrawingMode` context property [c-spencer]
+ * Added additional TextMetrics properties [c-spencer]
+
+0.11.3 / 2012-04-25
+==================
+
+ * Fixed `Image` memory leak. Closes #150
+ * Fixed Context2d::hasShadow()
+
+0.11.2 / 2012-04-12
+==================
+
+ * Fixed: pdf memory leak, free closure and surface in ~Canvas
+
+0.11.1 / 2012-04-10
+==================
+
+ * Changed: renamed .nextPage() to .addPage()
+
+0.11.0 / 2012-04-10
+==================
+
+ * Added quick PDF support
+ * Added `Canvas#type` getter
+ * Added ./examples/pdf-images.js
+ * Added ./examples/multiple-page-pdf.js
+ * Added ./examples/small-pdf.js
+
+0.10.3 / 2012-02-27
+==================
+
+ * Fixed quadratic curve starting point for undefined path. Closes #155
+
+0.10.2 / 2012-02-06
+==================
+
+ * Fixed: Context2d setters with invalid values ignored
+ * Changed: replaced seek with `fstat()`
+
+0.10.1 / 2012-01-31
+==================
+
+ * Added _/opt/local/lib_ to wscript [obarthel]
+ * Added bounds checking to `rgba_to_string()` [obarthel]
+ * Fixed cleanup in JPEG Image loading [obarthel]
+ * Fixed missing CSS color table values [obarthel]
+
+0.10.0 / 2012-01-18
+==================
+
+ * Added `ctx.createPattern()` [slaskis]
+
+0.9.0 / 2012-01-13
+==================
+
+ * Added `createJPEGStream()` [Elijah Hamovitz]
+
+0.8.3 / 2012-01-04
+==================
+
+ * Added support for libjpeg62-dev or libjpeg8-dev [wwlinx]
+
+0.8.2 / 2011-12-14
+==================
+
+ * Fixed two memory leaks in context2d [Tharit]
+ * Fixed `make test-server`
+
+0.8.1 / 2011-10-31
+==================
+
+ * Added 0.5.x support [TooTallNate]
+ * Fixed `measureText().width`. Closes #126
+
+0.8.0 / 2011-10-28
+==================
+
+ * Added data uri support. Closes #49
+
+0.7.3 / 2011-09-14
+==================
+
+ * Added better lineTo() / moveTo() exception messages
+
+0.7.2 / 2011-08-30
+==================
+
+ * Changed: prefix some private methods with _
+
+0.7.1 / 2011-08-25
+==================
+
+ * Added better image format detection
+ * Added libpath options to waf configuration; this was necessary to correctly detect gif and jpeg support on FreeBSD
+
+0.7.0 / 2011-07-12
+==================
+
+ * Added GIF support [Brian McKinney]
+
+0.6.0 / 2011-06-04
+==================
+
+ * Added `Image#src=Buffer` support. Closes #91
+ * Added `devDependencies`
+ * Added `source-atop` test
+ * Added _image-src.js_ example
+ * Removed `V8::AdjustAmountOfExternalAllocatedMemory()` call from `toBuffer()`
+ * Fixed v8 memory hint when resizing canvas [atomizer]
+
+0.5.4 / 2011-04-20
+==================
+
+ * Added; special case of zero-width rectangle [atomizer]
+ * Fixed; do not clamp arguments to integer values [atomizer]
+ * Fixed; preserve current path during `fillRect()` and `strokeRect()` [atomizer]
+ * Fixed; `restorePath()`: clear current path before appending [atomizer]
+
+0.5.3 / 2011-04-11
+==================
+
+ * Clamp image bounds in `PixelArray::PixelArray()` [Marcello Bastea-Forte]
+
+0.5.2 / 2011-04-09
+==================
+
+ * Changed; make `PNGStream` a real `Stream` [Marcello Bastea-Forte]
+
+0.5.1 / 2011-03-16
+==================
+
+ * Fixed (kinda) `img.src=` error handling
+ * Fixed; move closure.h down for malloc ref. Closes #80
+
+0.5.0 / 2011-03-14
+==================
+
+ * Added several more operators (color-dodge, color-burn, difference, etc)
+ * Performance; no longer re-allocating `closure->data` for each png write
+ * Fixed freeing of `Context2d` states
+ * Fixed text alignment / baseline [Olaf]
+ * Fixed HandleScopes [Olaf]
+ * Fixed small misc memory leaks
+ * Fixed `Buffer` usage for node 0.4.x
+
+0.4.3 / 2011-01-11
+==================
+
+ * Fixed font family dereferencing. Closes #72
+ * Fixed; stripping of quotes from font-family before applying
+ * Fixed duplicate textAlign getter
+ * Removed sans-serif default of _Arial_
+
+0.4.2 / 2010-12-28
+==================
+
+ * Fixed font size growing issue after successive calls. Closes #70
+
+0.4.1 / 2010-12-18
+==================
+
+ * Fixed; toString() first argument of `{fill,stroke}Text()`. Closes #68
+
+0.4.0 / 2010-12-12
+==================
+
+ * Added `drawImage()` with `Canvas` instance support. Closes #67
+
+0.3.3 / 2010-11-30
+==================
+
+ * Added `CanvasRenderingContext2d#patternQuality` accessor, accepting _fast_, _good_, and _best_
+ * Fixed; pre-multiply `putImageData()` components
+ * Fixed; `PixelArray` data is not premultiplied
+
+0.3.2 / 2010-11-26
+==================
+
+ * Added --profile option to config
+ * Fixed `eio_custom` segfault(s). Closes #46
+ * Fixed two named colors. Closes #62 [thanks noonat]
+ * Fixed a few warnings
+ * Fixed; freeing data in `Image::loadJPEG()` on failure
+ * Fixed; include _jpeglib_ only when __HAVE_JPEG__
+ * Fixed; using `strstr()` instead of `strnstr()`
+
+0.3.1 / 2010-11-24
+==================
+
+ * Fixed; `Image` loading is sync until race-condition is resolved
+ * Fixed; `Image::loadJPEG()` return status based on errno
+
+0.3.0 / 2010-11-24
+==================
+
+ * Added arcTo(). Closes #11
+ * Added c color parser, _./examples/ray.js_ is now twice as fast
+ * Fixed `putImageData()` bug messing up rgba channels
+
+0.2.1 / 2010-11-19
+==================
+
+ * Added image _resize_ example
+ * Fixed canvas resizing via `{width,height}=`. Closes #57
+ * Fixed `Canvas#getContext()`, caching the CanvasRenderingContext
+ * Fixed async image loading (test server still messed)
+
+0.2.0 / 2010-11-18
+==================
+
+ * Added jpeg `Image` support (when libjpeg is available)
+ * Added _hsl_ / _hsla_ color support. [Tom Carden]
+
+0.1.0 / 2010-11-17
+==================
+
+ * Added `Image`
+ * Added `ImageData`
+ * Added `PixelArray`
+ * Added `CanvasRenderingContext2d#drawImage()`
+ * Added `CanvasRenderingContext2d#getImageData()`
+ * Added `CanvasRenderingContext2d#createImageData()`
+ * Added kraken blur benchmark example
+ * Added several new tests
+ * Fixed instanceof checks for many c++ methods
+ * Fixed test runner in firefox [Don Park]
+
+0.0.8 / 2010-11-12
+==================
+
+ * Added `CanvasRenderingContext2d#drawImage()`
+ * Fixed `free()` call missing stdlib
+ * Fixed Image#{width,height} initialization to 0
+ * Fixed; load image on non-LOADING state
+
+0.0.7 / 2010-11-12
+==================
+
+ * Fixed _lighter_ for older versions of cairo
+
+0.0.6 / 2010-11-12
+==================
+
+ * Added `Image`
+ * Added conditional support for cairo 1.10.0 operators
+
+0.0.5 / 2010-11-10
+==================
+
+ * Added custom port support to _test/server.js_
+ * Added more global composite operator support
+ * Added `Context2d#antialias=`
+ * Added _voronoi_ example
+ * Added -D__NDEBUG__ to default build
+ * Added __BUFFER_DATA__ macro for backwards compat buffer data access [Don Park]
+ * Fixed getter bug preventing patterns from being returned via `fillStyle` etc
+
+ * Fixed; __CAIRO_STATUS_NO_MEMORY___ on failed {re,m}alloc()
+ * Fixed; free `Canvas::ToBuffer()` closure data
+
+0.0.4 / 2010-11-09
+==================
+
+ * Bump to fix npm engine cache bug...
+
+0.0.3 / 2010-11-09
+==================
+
+ * Added async `toDataURL()` support
+ * Added async `toBuffer()` support
+ * Removed buffer utils
+
+0.0.2 / 2010-11-08
+==================
+
+ * Added shadow support (faster/better gaussian blur to come)
+ * Added node v0.3 support [Don Park]
+ * Added -O3 to build
+ * Removed `Canvas#savePNG()` use `Canvas#createPNGStream()`
+
+0.0.1 / 2010-11-04
+==================
+
+ * Initial release
+
+[repo]: https://github.com/Automattic/node-canvas
diff --git a/node_modules/canvas/Readme.md b/node_modules/canvas/Readme.md
new file mode 100644
index 0000000..cc945aa
--- /dev/null
+++ b/node_modules/canvas/Readme.md
@@ -0,0 +1,600 @@
+# node-canvas
+
+
+[](http://badge.fury.io/js/canvas)
+
+node-canvas is a [Cairo](http://cairographics.org/)-backed Canvas implementation for [Node.js](http://nodejs.org).
+
+## Installation
+
+```bash
+$ npm install canvas
+```
+
+By default, binaries for macOS, Linux and Windows will be downloaded. If you want to build from source, use `npm install --build-from-source` and see the **Compiling** section below.
+
+The minimum version of Node.js required is **6.0.0**.
+
+### Compiling
+
+If you don't have a supported OS or processor architecture, or you use `--build-from-source`, the module will be compiled on your system. This requires several dependencies, including Cairo and Pango.
+
+For detailed installation information, see the [wiki](https://github.com/Automattic/node-canvas/wiki/_pages). One-line installation instructions for common OSes are below. Note that libgif/giflib, librsvg and libjpeg are optional and only required if you need GIF, SVG and JPEG support, respectively. Cairo v1.10.0 or later is required.
+
+OS | Command
+----- | -----
+OS X | Using [Homebrew](https://brew.sh/):<br/>`brew install pkg-config cairo pango libpng jpeg giflib librsvg pixman`
+Ubuntu | `sudo apt-get install build-essential libcairo2-dev libpango1.0-dev libjpeg-dev libgif-dev librsvg2-dev`
+Fedora | `sudo yum install gcc-c++ cairo-devel pango-devel libjpeg-turbo-devel giflib-devel`
+Solaris | `pkgin install cairo pango pkg-config xproto renderproto kbproto xextproto`
+OpenBSD | `doas pkg_add cairo pango png jpeg giflib`
+Windows | See the [wiki](https://github.com/Automattic/node-canvas/wiki/Installation:-Windows)
+Others | See the [wiki](https://github.com/Automattic/node-canvas/wiki)
+
+**Mac OS X v10.11+:** If you have recently updated to Mac OS X v10.11+ and are experiencing trouble when compiling, run the following command: `xcode-select --install`. Read more about the problem [on Stack Overflow](http://stackoverflow.com/a/32929012/148072).
+If you have xcode 10.0 or higher installed, in order to build from source you need NPM 6.4.1 or higher.
+
+## Quick Example
+
+```javascript
+const { createCanvas, loadImage } = require('canvas')
+const canvas = createCanvas(200, 200)
+const ctx = canvas.getContext('2d')
+
+// Write "Awesome!"
+ctx.font = '30px Impact'
+ctx.rotate(0.1)
+ctx.fillText('Awesome!', 50, 100)
+
+// Draw line under text
+var text = ctx.measureText('Awesome!')
+ctx.strokeStyle = 'rgba(0,0,0,0.5)'
+ctx.beginPath()
+ctx.lineTo(50, 102)
+ctx.lineTo(50 + text.width, 102)
+ctx.stroke()
+
+// Draw cat with lime helmet
+loadImage('examples/images/lime-cat.jpg').then((image) => {
+ ctx.drawImage(image, 50, 0, 70, 70)
+
+ console.log('<img src="' + canvas.toDataURL() + '" />')
+})
+```
+
+## Upgrading from 1.x to 2.x
+
+See the [changelog](https://github.com/Automattic/node-canvas/blob/master/CHANGELOG.md) for a guide to upgrading from 1.x to 2.x.
+
+For version 1.x documentation, see [the v1.x branch](https://github.com/Automattic/node-canvas/tree/v1.x).
+
+## Documentation
+
+This project is an implementation of the Web Canvas API and implements that API as closely as possible. For API documentation, please visit [Mozilla Web Canvas API](https://developer.mozilla.org/en-US/docs/Web/API/Canvas_API). (See [Compatibility Status](https://github.com/Automattic/node-canvas/wiki/Compatibility-Status) for the current API compliance.) All utility methods and non-standard APIs are documented below.
+
+### Utility methods
+
+* [createCanvas()](#createcanvas)
+* [createImageData()](#createimagedata)
+* [loadImage()](#loadimage)
+* [registerFont()](#registerfont)
+
+### Non-standard APIs
+
+* [Image#src](#imagesrc)
+* [Image#dataMode](#imagedatamode)
+* [Canvas#toBuffer()](#canvastobuffer)
+* [Canvas#createPNGStream()](#canvascreatepngstream)
+* [Canvas#createJPEGStream()](#canvascreatejpegstream)
+* [Canvas#createPDFStream()](#canvascreatepdfstream)
+* [Canvas#toDataURL()](#canvastodataurl)
+* [CanvasRenderingContext2D#patternQuality](#canvasrenderingcontext2dpatternquality)
+* [CanvasRenderingContext2D#quality](#canvasrenderingcontext2dquality)
+* [CanvasRenderingContext2D#textDrawingMode](#canvasrenderingcontext2dtextdrawingmode)
+* [CanvasRenderingContext2D#globalCompositeOperation = 'saturate'](#canvasrenderingcontext2dglobalcompositeoperation--saturate)
+* [CanvasRenderingContext2D#antialias](#canvasrenderingcontext2dantialias)
+
+### createCanvas()
+
+> ```ts
+> createCanvas(width: number, height: number, type?: 'PDF'|'SVG') => Canvas
+> ```
+
+Creates a Canvas instance. This method works in both Node.js and Web browsers, where there is no Canvas constructor. (See `browser.js` for the implementation that runs in browsers.)
+
+```js
+const { createCanvas } = require('canvas')
+const mycanvas = createCanvas(200, 200)
+const myPDFcanvas = createCanvas(600, 800, 'pdf') // see "PDF Support" section
+```
+
+### createImageData()
+
+> ```ts
+> createImageData(width: number, height: number) => ImageData
+> createImageData(data: Uint8ClampedArray, width: number, height?: number) => ImageData
+> // for alternative pixel formats:
+> createImageData(data: Uint16Array, width: number, height?: number) => ImageData
+> ```
+
+Creates an ImageData instance. This method works in both Node.js and Web browsers.
+
+```js
+const { createImageData } = require('canvas')
+const width = 20, height = 20
+const arraySize = width * height * 4
+const mydata = createImageData(new Uint8ClampedArray(arraySize), width)
+```
+
+### loadImage()
+
+> ```ts
+> loadImage() => Promise<Image>
+> ```
+
+Convenience method for loading images. This method works in both Node.js and Web browsers.
+
+```js
+const { loadImage } = require('canvas')
+const myimg = loadImage('http://server.com/image.png')
+
+myimg.then(() => {
+ // do something with image
+}).catch(err => {
+ console.log('oh no!', err)
+})
+
+// or with async/await:
+const myimg = await loadImage('http://server.com/image.png')
+// do something with image
+```
+
+### registerFont()
+
+> ```ts
+> registerFont(path: string, { family: string, weight?: string, style?: string }) => void
+> ```
+
+To use a font file that is not installed as a system font, use `registerFont()` to register the font with Canvas. *This must be done before the Canvas is created.*
+
+```js
+const { registerFont, createCanvas } = require('canvas')
+registerFont('comicsans.ttf', { family: 'Comic Sans' })
+
+const canvas = createCanvas(500, 500)
+const ctx = canvas.getContext('2d')
+
+ctx.font = '12px "Comic Sans"'
+ctx.fillText('Everyone hates this font :(', 250, 10)
+```
+
+The second argument is an object with properties that resemble the CSS properties that are specified in `@font-face` rules. You must specify at least `family`. `weight`, and `style` are optional and default to `'normal'`.
+
+### Image#src
+
+> ```ts
+> img.src: string|Buffer
+> ```
+
+As in browsers, `img.src` can be set to a `data:` URI or a remote URL. In addition, node-canvas allows setting `src` to a local file path or `Buffer` instance.
+
+```javascript
+const { Image } = require('canvas')
+
+// From a buffer:
+fs.readFile('images/squid.png', (err, squid) => {
+ if (err) throw err
+ const img = new Image()
+ img.onload = () => ctx.drawImage(img, 0, 0)
+ img.onerror = err => { throw err }
+ img.src = squid
+})
+
+// From a local file path:
+const img = new Image()
+img.onload = () => ctx.drawImage(img, 0, 0)
+img.onerror = err => { throw err }
+img.src = 'images/squid.png'
+
+// From a remote URL:
+img.src = 'http://picsum.photos/200/300'
+// ... as above
+
+// From a `data:` URI:
+img.src = 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAAHElEQVQI12P4//8/w38GIAXDIBKE0DHxgljNBAAO9TXL0Y4OHwAAAABJRU5ErkJggg=='
+// ... as above
+```
+
+*Note: In some cases, `img.src=` is currently synchronous. However, you should always use `img.onload` and `img.onerror`, as we intend to make `img.src=` always asynchronous as it is in browsers. See https://github.com/Automattic/node-canvas/issues/1007.*
+
+### Image#dataMode
+
+> ```ts
+> img.dataMode: number
+> ```
+
+Applies to JPEG images drawn to PDF canvases only.
+
+Setting `img.dataMode = Image.MODE_MIME` or `Image.MODE_MIME|Image.MODE_IMAGE` enables MIME data tracking of images. When MIME data is tracked, PDF canvases can embed JPEGs directly into the output, rather than re-encoding into PNG. This can drastically reduce filesize and speed up rendering.
+
+```javascript
+const { Image, createCanvas } = require('canvas')
+const canvas = createCanvas(w, h, 'pdf')
+const img = new Image()
+img.dataMode = Image.MODE_IMAGE // Only image data tracked
+img.dataMode = Image.MODE_MIME // Only mime data tracked
+img.dataMode = Image.MODE_MIME | Image.MODE_IMAGE // Both are tracked
+```
+
+If working with a non-PDF canvas, image data *must* be tracked; otherwise the output will be junk.
+
+Enabling mime data tracking has no benefits (only a slow down) unless you are generating a PDF.
+
+### Canvas#toBuffer()
+
+> ```ts
+> canvas.toBuffer((err: Error|null, result: Buffer) => void, mimeType?: string, config?: any) => void
+> canvas.toBuffer(mimeType?: string, config?: any) => Buffer
+> ```
+
+Creates a [`Buffer`](https://nodejs.org/api/buffer.html) object representing the image contained in the canvas.
+
+* **callback** If provided, the buffer will be provided in the callback instead of being returned by the function. Invoked with an error as the first argument if encoding failed, or the resulting buffer as the second argument if it succeeded. Not supported for mimeType `raw` or for PDF or SVG canvases.
+* **mimeType** A string indicating the image format. Valid options are `image/png`, `image/jpeg` (if node-canvas was built with JPEG support), `raw` (unencoded data in BGRA order on little-endian (most) systems, ARGB on big-endian systems; top-to-bottom), `application/pdf` (for PDF canvases) and `image/svg+xml` (for SVG canvases). Defaults to `image/png` for image canvases, or the corresponding type for PDF or SVG canvas.
+* **config**
+ * For `image/jpeg`, an object specifying the quality (0 to 1), if progressive compression should be used and/or if chroma subsampling should be used: `{quality: 0.75, progressive: false, chromaSubsampling: true}`. All properties are optional.
+
+ * For `image/png`, an object specifying the ZLIB compression level (between 0 and 9), the compression filter(s), the palette (indexed PNGs only), the the background palette index (indexed PNGs only) and/or the resolution (ppi): `{compressionLevel: 6, filters: canvas.PNG_ALL_FILTERS, palette: undefined, backgroundIndex: 0, resolution: undefined}`. All properties are optional.
+
+ Note that the PNG format encodes the resolution in pixels per meter, so if you specify `96`, the file will encode 3780 ppm (~96.01 ppi). The resolution is undefined by default to match common browser behavior.
+
+ * For `application/pdf`, an object specifying optional document metadata: `{title: string, author: string, subject: string, keywords: string, creator: string, creationDate: Date, modDate: Date}`. All properties are optional and default to `undefined`, except for `creationDate`, which defaults to the current date. *Adding metadata requires Cairo 1.16.0 or later.*
+
+ For a description of these properties, see page 550 of [PDF 32000-1:2008](https://www.adobe.com/content/dam/acom/en/devnet/acrobat/pdfs/PDF32000_2008.pdf).
+
+ Note that there is no standard separator for `keywords`. A space is recommended because it is in common use by other applications, and Cairo will enclose the list of keywords in quotes if a comma or semicolon is used.
+
+**Return value**
+
+If no callback is provided, a [`Buffer`](https://nodejs.org/api/buffer.html). If a callback is provided, none.
+
+#### Examples
+
+```js
+// Default: buf contains a PNG-encoded image
+const buf = canvas.toBuffer()
+
+// PNG-encoded, zlib compression level 3 for faster compression but bigger files, no filtering
+const buf2 = canvas.toBuffer('image/png', { compressionLevel: 3, filters: canvas.PNG_FILTER_NONE })
+
+// JPEG-encoded, 50% quality
+const buf3 = canvas.toBuffer('image/jpeg', { quality: 0.5 })
+
+// Asynchronous PNG
+canvas.toBuffer((err, buf) => {
+ if (err) throw err // encoding failed
+ // buf is PNG-encoded image
+})
+
+canvas.toBuffer((err, buf) => {
+ if (err) throw err // encoding failed
+ // buf is JPEG-encoded image at 95% quality
+}, 'image/jpeg', { quality: 0.95 })
+
+// BGRA pixel values, native-endian
+const buf4 = canvas.toBuffer('raw')
+const { stride, width } = canvas
+// In memory, this is `canvas.height * canvas.stride` bytes long.
+// The top row of pixels, in BGRA order on little-endian hardware,
+// left-to-right, is:
+const topPixelsBGRALeftToRight = buf4.slice(0, width * 4)
+// And the third row is:
+const row3 = buf4.slice(2 * stride, 2 * stride + width * 4)
+
+// SVG and PDF canvases
+const myCanvas = createCanvas(w, h, 'pdf')
+myCanvas.toBuffer() // returns a buffer containing a PDF-encoded canvas
+// With optional metadata:
+myCanvas.toBuffer('application/pdf', {
+ title: 'my picture',
+ keywords: 'node.js demo cairo',
+ creationDate: new Date()
+})
+```
+
+### Canvas#createPNGStream()
+
+> ```ts
+> canvas.createPNGStream(config?: any) => ReadableStream
+> ```
+
+Creates a [`ReadableStream`](https://nodejs.org/api/stream.html#stream_class_stream_readable) that emits PNG-encoded data.
+
+* `config` An object specifying the ZLIB compression level (between 0 and 9), the compression filter(s), the palette (indexed PNGs only) and/or the background palette index (indexed PNGs only): `{compressionLevel: 6, filters: canvas.PNG_ALL_FILTERS, palette: undefined, backgroundIndex: 0, resolution: undefined}`. All properties are optional.
+
+#### Examples
+
+```javascript
+const fs = require('fs')
+const out = fs.createWriteStream(__dirname + '/test.png')
+const stream = canvas.createPNGStream()
+stream.pipe(out)
+out.on('finish', () => console.log('The PNG file was created.'))
+```
+
+To encode indexed PNGs from canvases with `pixelFormat: 'A8'` or `'A1'`, provide an options object:
+
+```js
+const palette = new Uint8ClampedArray([
+ //r g b a
+ 0, 50, 50, 255, // index 1
+ 10, 90, 90, 255, // index 2
+ 127, 127, 255, 255
+ // ...
+])
+canvas.createPNGStream({
+ palette: palette,
+ backgroundIndex: 0 // optional, defaults to 0
+})
+```
+
+### Canvas#createJPEGStream()
+
+> ```ts
+> canvas.createJPEGStream(config?: any) => ReadableStream
+> ```
+
+Creates a [`ReadableStream`](https://nodejs.org/api/stream.html#stream_class_stream_readable) that emits JPEG-encoded data.
+
+*Note: At the moment, `createJPEGStream()` is synchronous under the hood. That is, it runs in the main thread, not in the libuv threadpool.*
+
+* `config` an object specifying the quality (0 to 1), if progressive compression should be used and/or if chroma subsampling should be used: `{quality: 0.75, progressive: false, chromaSubsampling: true}`. All properties are optional.
+
+#### Examples
+
+```javascript
+const fs = require('fs')
+const out = fs.createWriteStream(__dirname + '/test.jpeg')
+const stream = canvas.createJPEGStream()
+stream.pipe(out)
+out.on('finish', () => console.log('The JPEG file was created.'))
+
+// Disable 2x2 chromaSubsampling for deeper colors and use a higher quality
+const stream = canvas.createJPEGStream({
+ quality: 0.95,
+ chromaSubsampling: false
+})
+```
+
+### Canvas#createPDFStream()
+
+> ```ts
+> canvas.createPDFStream(config?: any) => ReadableStream
+> ```
+
+* `config` an object specifying optional document metadata: `{title: string, author: string, subject: string, keywords: string, creator: string, creationDate: Date, modDate: Date}`. See `toBuffer()` for more information. *Adding metadata requires Cairo 1.16.0 or later.*
+
+Applies to PDF canvases only. Creates a [`ReadableStream`](https://nodejs.org/api/stream.html#stream_class_stream_readable) that emits the encoded PDF. `canvas.toBuffer()` also produces an encoded PDF, but `createPDFStream()` can be used to reduce memory usage.
+
+### Canvas#toDataURL()
+
+This is a standard API, but several non-standard calls are supported. The full list of supported calls is:
+
+```js
+dataUrl = canvas.toDataURL() // defaults to PNG
+dataUrl = canvas.toDataURL('image/png')
+dataUrl = canvas.toDataURL('image/jpeg')
+dataUrl = canvas.toDataURL('image/jpeg', quality) // quality from 0 to 1
+canvas.toDataURL((err, png) => { }) // defaults to PNG
+canvas.toDataURL('image/png', (err, png) => { })
+canvas.toDataURL('image/jpeg', (err, jpeg) => { }) // sync JPEG is not supported
+canvas.toDataURL('image/jpeg', {...opts}, (err, jpeg) => { }) // see Canvas#createJPEGStream for valid options
+canvas.toDataURL('image/jpeg', quality, (err, jpeg) => { }) // spec-following; quality from 0 to 1
+```
+
+### CanvasRenderingContext2D#patternQuality
+
+> ```ts
+> context.patternQuality: 'fast'|'good'|'best'|'nearest'|'bilinear'
+> ```
+
+Defaults to `'good'`. Affects pattern (gradient, image, etc.) rendering quality.
+
+### CanvasRenderingContext2D#quality
+
+> ```ts
+> context.quality: 'fast'|'good'|'best'|'nearest'|'bilinear'
+> ```
+
+Defaults to `'good'`. Like `patternQuality`, but applies to transformations affecting more than just patterns.
+
+### CanvasRenderingContext2D#textDrawingMode
+
+> ```ts
+> context.textDrawingMode: 'path'|'glyph'
+> ```
+
+Defaults to `'path'`. The effect depends on the canvas type:
+
+* **Standard (image)** `glyph` and `path` both result in rasterized text. Glyph mode is faster than `path`, but may result in lower-quality text, especially when rotated or translated.
+
+* **PDF** `glyph` will embed text instead of paths into the PDF. This is faster to encode, faster to open with PDF viewers, yields a smaller file size and makes the text selectable. The subset of the font needed to render the glyphs will be embedded in the PDF. This is usually the mode you want to use with PDF canvases.
+
+* **SVG** `glyph` does *not* cause `<text>` elements to be produced as one might expect ([cairo bug](https://gitlab.freedesktop.org/cairo/cairo/issues/253)). Rather, `glyph` will create a `<defs>` section with a `<symbol>` for each glyph, then those glyphs be reused via `<use>` elements. `path` mode creates a `<path>` element for each text string. `glyph` mode is faster and yields a smaller file size.
+
+In `glyph` mode, `ctx.strokeText()` and `ctx.fillText()` behave the same (aside from using the stroke and fill style, respectively).
+
+This property is tracked as part of the canvas state in save/restore.
+
+### CanvasRenderingContext2D#globalCompositeOperation = 'saturate'
+
+In addition to all of the standard global composite operations defined by the Canvas specification, the ['saturate'](https://www.cairographics.org/operators/#saturate) operation is also available.
+
+### CanvasRenderingContext2D#antialias
+
+> ```ts
+> context.antialias: 'default'|'none'|'gray'|'subpixel'
+> ```
+
+Sets the anti-aliasing mode.
+
+## PDF Output Support
+
+node-canvas can create PDF documents instead of images. The canvas type must be set when creating the canvas as follows:
+
+```js
+const canvas = createCanvas(200, 500, 'pdf')
+```
+
+An additional method `.addPage()` is then available to create multiple page PDFs:
+
+```js
+// On first page
+ctx.font = '22px Helvetica'
+ctx.fillText('Hello World', 50, 80)
+
+ctx.addPage()
+// Now on second page
+ctx.font = '22px Helvetica'
+ctx.fillText('Hello World 2', 50, 80)
+
+canvas.toBuffer() // returns a PDF file
+canvas.createPDFStream() // returns a ReadableStream that emits a PDF
+// With optional document metadata (requires Cairo 1.16.0):
+canvas.toBuffer('application/pdf', {
+ title: 'my picture',
+ keywords: 'node.js demo cairo',
+ creationDate: new Date()
+})
+```
+
+It is also possible to create pages with different sizes by passing `width` and `height` to the `.addPage()` method:
+
+```js
+ctx.font = '22px Helvetica'
+ctx.fillText('Hello World', 50, 80)
+ctx.addPage(400, 800)
+
+ctx.fillText('Hello World 2', 50, 80)
+```
+
+See also:
+
+* [Image#dataMode](#imagedatamode) for embedding JPEGs in PDFs
+* [Canvas#createPDFStream()](#canvascreatepdfstream) for creating PDF streams
+* [CanvasRenderingContext2D#textDrawingMode](#canvasrenderingcontext2dtextdrawingmode)
+ for embedding text instead of paths
+
+## SVG Output Support
+
+node-canvas can create SVG documents instead of images. The canvas type must be set when creating the canvas as follows:
+
+```js
+const canvas = createCanvas(200, 500, 'svg')
+// Use the normal primitives.
+fs.writeFileSync('out.svg', canvas.toBuffer())
+```
+
+## SVG Image Support
+
+If librsvg is available when node-canvas is installed, node-canvas can render SVG images to your canvas context. This currently works by rasterizing the SVG image (i.e. drawing an SVG image to an SVG canvas will not preserve the SVG data).
+
+```js
+const img = new Image()
+img.onload = () => ctx.drawImage(img, 0, 0)
+img.onerror = err => { throw err }
+img.src = './example.svg'
+```
+
+## Image pixel formats (experimental)
+
+node-canvas has experimental support for additional pixel formats, roughly following the [Canvas color space proposal](https://github.com/WICG/canvas-color-space/blob/master/CanvasColorSpaceProposal.md).
+
+```js
+const canvas = createCanvas(200, 200)
+const ctx = canvas.getContext('2d', { pixelFormat: 'A8' })
+```
+
+By default, canvases are created in the `RGBA32` format, which corresponds to the native HTML Canvas behavior. Each pixel is 32 bits. The JavaScript APIs that involve pixel data (`getImageData`, `putImageData`) store the colors in the order {red, green, blue, alpha} without alpha pre-multiplication. (The C++ API stores the colors in the order {alpha, red, green, blue} in native-[endian](https://en.wikipedia.org/wiki/Endianness) ordering, with alpha pre-multiplication.)
+
+These additional pixel formats have experimental support:
+
+* `RGB24` Like `RGBA32`, but the 8 alpha bits are always opaque. This format is always used if the `alpha` context attribute is set to false (i.e. `canvas.getContext('2d', {alpha: false})`). This format can be faster than `RGBA32` because transparency does not need to be calculated.
+* `A8` Each pixel is 8 bits. This format can either be used for creating grayscale images (treating each byte as an alpha value), or for creating indexed PNGs (treating each byte as a palette index) (see [the example using alpha values with `fillStyle`](examples/indexed-png-alpha.js) and [the example using `imageData`](examples/indexed-png-image-data.js)).
+* `RGB16_565` Each pixel is 16 bits, with red in the upper 5 bits, green in the middle 6 bits, and blue in the lower 5 bits, in native platform endianness. Some hardware devices and frame buffers use this format. Note that PNG does not support this format; when creating a PNG, the image will be converted to 24-bit RGB. This format is thus suboptimal for generating PNGs. `ImageData` instances for this mode use a `Uint16Array` instead of a `Uint8ClampedArray`.
+* `A1` Each pixel is 1 bit, and pixels are packed together into 32-bit quantities. The ordering of the bits matches the endianness of the
+ platform: on a little-endian machine, the first pixel is the least-significant bit. This format can be used for creating single-color images. *Support for this format is incomplete, see note below.*
+* `RGB30` Each pixel is 30 bits, with red in the upper 10, green in the middle 10, and blue in the lower 10. (Requires Cairo 1.12 or later.) *Support for this format is incomplete, see note below.*
+
+Notes and caveats:
+
+* Using a non-default format can affect the behavior of APIs that involve pixel data:
+
+ * `context2d.createImageData` The size of the array returned depends on the number of bit per pixel for the underlying image data format, per the above descriptions.
+ * `context2d.getImageData` The format of the array returned depends on the underlying image mode, per the above descriptions. Be aware of platform endianness, which can be determined using node.js's [`os.endianness()`](https://nodejs.org/api/os.html#os_os_endianness)
+ function.
+ * `context2d.putImageData` As above.
+
+* `A1` and `RGB30` do not yet support `getImageData` or `putImageData`. Have a use case and/or opinion on working with these formats? Open an issue and let us know! (See #935.)
+
+* `A1`, `A8`, `RGB30` and `RGB16_565` with shadow blurs may crash or not render properly.
+
+* The `ImageData(width, height)` and `ImageData(Uint8ClampedArray, width)` constructors assume 4 bytes per pixel. To create an `ImageData` instance with a different number of bytes per pixel, use `new ImageData(new Uint8ClampedArray(size), width, height)` or `new ImageData(new Uint16ClampedArray(size), width, height)`.
+
+## Testing
+
+First make sure you've built the latest version. Get all the deps you need (see [compiling](#compiling) above), and run:
+
+```
+npm install --build-from-source
+```
+
+For visual tests: `npm run test-server` and point your browser to http://localhost:4000.
+
+For unit tests: `npm run test`.
+
+## Benchmarks
+
+Benchmarks live in the `benchmarks` directory.
+
+## Examples
+
+Examples line in the `examples` directory. Most produce a png image of the same name, and others such as *live-clock.js* launch an HTTP server to be viewed in the browser.
+
+## Original Authors
+
+ - TJ Holowaychuk ([tj](http://github.com/tj))
+ - Nathan Rajlich ([TooTallNate](http://github.com/TooTallNate))
+ - Rod Vagg ([rvagg](http://github.com/rvagg))
+ - Juriy Zaytsev ([kangax](http://github.com/kangax))
+
+## License
+
+### node-canvas
+
+(The MIT License)
+
+Copyright (c) 2010 LearnBoost, and contributors <dev@learnboost.com>
+
+Copyright (c) 2014 Automattic, Inc and contributors <dev@automattic.com>
+
+Permission is hereby granted, free of charge, to any person obtaining a copy of
+this software and associated documentation files (the 'Software'), to deal in
+the Software without restriction, including without limitation the rights to
+use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
+the Software, and to permit persons to whom the Software is furnished to do so,
+subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
+FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
+COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
+IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
+CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+
+### BMP parser
+
+See [license](src/bmp/LICENSE.md)
diff --git a/node_modules/canvas/binding.gyp b/node_modules/canvas/binding.gyp
new file mode 100644
index 0000000..19a33e8
--- /dev/null
+++ b/node_modules/canvas/binding.gyp
@@ -0,0 +1,230 @@
+{
+ 'conditions': [
+ ['OS=="win"', {
+ 'variables': {
+ 'GTK_Root%': 'C:/GTK', # Set the location of GTK all-in-one bundle
+ 'with_jpeg%': 'false',
+ 'with_gif%': 'false',
+ 'with_rsvg%': 'false',
+ 'variables': { # Nest jpeg_root to evaluate it before with_jpeg
+ 'jpeg_root%': '<!(node ./util/win_jpeg_lookup)'
+ },
+ 'jpeg_root%': '<(jpeg_root)', # Take value of nested variable
+ 'conditions': [
+ ['jpeg_root==""', {
+ 'with_jpeg%': 'false'
+ }, {
+ 'with_jpeg%': 'true'
+ }]
+ ]
+ }
+ }, { # 'OS!="win"'
+ 'variables': {
+ 'with_jpeg%': '<!(node ./util/has_lib.js jpeg)',
+ 'with_gif%': '<!(node ./util/has_lib.js gif)',
+ 'with_rsvg%': '<!(node ./util/has_lib.js rsvg)'
+ }
+ }]
+ ],
+ 'targets': [
+ {
+ 'target_name': 'canvas-postbuild',
+ 'dependencies': ['canvas'],
+ 'conditions': [
+ ['OS=="win"', {
+ 'copies': [{
+ 'destination': '<(PRODUCT_DIR)',
+ 'files': [
+ '<(GTK_Root)/bin/zlib1.dll',
+ '<(GTK_Root)/bin/libintl-8.dll',
+ '<(GTK_Root)/bin/libpng14-14.dll',
+ '<(GTK_Root)/bin/libpangocairo-1.0-0.dll',
+ '<(GTK_Root)/bin/libpango-1.0-0.dll',
+ '<(GTK_Root)/bin/libpangoft2-1.0-0.dll',
+ '<(GTK_Root)/bin/libpangowin32-1.0-0.dll',
+ '<(GTK_Root)/bin/libcairo-2.dll',
+ '<(GTK_Root)/bin/libfontconfig-1.dll',
+ '<(GTK_Root)/bin/libfreetype-6.dll',
+ '<(GTK_Root)/bin/libglib-2.0-0.dll',
+ '<(GTK_Root)/bin/libgobject-2.0-0.dll',
+ '<(GTK_Root)/bin/libgmodule-2.0-0.dll',
+ '<(GTK_Root)/bin/libgthread-2.0-0.dll',
+ '<(GTK_Root)/bin/libexpat-1.dll'
+ ]
+ }]
+ }]
+ ]
+ },
+ {
+ 'target_name': 'canvas',
+ 'include_dirs': ["<!(node -e \"require('nan')\")"],
+ 'sources': [
+ 'src/backend/Backend.cc',
+ 'src/backend/ImageBackend.cc',
+ 'src/backend/PdfBackend.cc',
+ 'src/backend/SvgBackend.cc',
+ 'src/bmp/BMPParser.cc',
+ 'src/Backends.cc',
+ 'src/Canvas.cc',
+ 'src/CanvasGradient.cc',
+ 'src/CanvasPattern.cc',
+ 'src/CanvasRenderingContext2d.cc',
+ 'src/closure.cc',
+ 'src/color.cc',
+ 'src/Image.cc',
+ 'src/ImageData.cc',
+ 'src/init.cc',
+ 'src/register_font.cc'
+ ],
+ 'conditions': [
+ ['OS=="win"', {
+ 'libraries': [
+ '-l<(GTK_Root)/lib/cairo.lib',
+ '-l<(GTK_Root)/lib/libpng.lib',
+ '-l<(GTK_Root)/lib/pangocairo-1.0.lib',
+ '-l<(GTK_Root)/lib/pango-1.0.lib',
+ '-l<(GTK_Root)/lib/freetype.lib',
+ '-l<(GTK_Root)/lib/glib-2.0.lib',
+ '-l<(GTK_Root)/lib/gobject-2.0.lib'
+ ],
+ 'include_dirs': [
+ '<(GTK_Root)/include',
+ '<(GTK_Root)/include/cairo',
+ '<(GTK_Root)/include/pango-1.0',
+ '<(GTK_Root)/include/glib-2.0',
+ '<(GTK_Root)/include/freetype2',
+ '<(GTK_Root)/lib/glib-2.0/include'
+ ],
+ 'defines': [
+ '_USE_MATH_DEFINES', # for M_PI
+ 'NOMINMAX' # allow std::min/max to work
+ ],
+ 'configurations': {
+ 'Debug': {
+ 'msvs_settings': {
+ 'VCCLCompilerTool': {
+ 'WarningLevel': 4,
+ 'ExceptionHandling': 1,
+ 'DisableSpecificWarnings': [
+ 4100, 4611
+ ]
+ }
+ }
+ },
+ 'Release': {
+ 'msvs_settings': {
+ 'VCCLCompilerTool': {
+ 'WarningLevel': 4,
+ 'ExceptionHandling': 1,
+ 'DisableSpecificWarnings': [
+ 4100, 4611
+ ]
+ }
+ }
+ }
+ }
+ }, { # 'OS!="win"'
+ 'libraries': [
+ '<!@(pkg-config pixman-1 --libs)',
+ '<!@(pkg-config cairo --libs)',
+ '<!@(pkg-config libpng --libs)',
+ '<!@(pkg-config pangocairo --libs)',
+ '<!@(pkg-config freetype2 --libs)'
+ ],
+ 'include_dirs': [
+ '<!@(pkg-config cairo --cflags-only-I | sed s/-I//g)',
+ '<!@(pkg-config libpng --cflags-only-I | sed s/-I//g)',
+ '<!@(pkg-config pangocairo --cflags-only-I | sed s/-I//g)',
+ '<!@(pkg-config freetype2 --cflags-only-I | sed s/-I//g)'
+ ],
+ 'cflags': ['-Wno-cast-function-type'],
+ 'cflags!': ['-fno-exceptions'],
+ 'cflags_cc!': ['-fno-exceptions']
+ }],
+ ['OS=="mac"', {
+ 'xcode_settings': {
+ 'GCC_ENABLE_CPP_EXCEPTIONS': 'YES'
+ }
+ }],
+ ['with_jpeg=="true"', {
+ 'defines': [
+ 'HAVE_JPEG'
+ ],
+ 'conditions': [
+ ['OS=="win"', {
+ 'copies': [{
+ 'destination': '<(PRODUCT_DIR)',
+ 'files': [
+ '<(jpeg_root)/bin/jpeg62.dll',
+ ]
+ }],
+ 'include_dirs': [
+ '<(jpeg_root)/include'
+ ],
+ 'libraries': [
+ '-l<(jpeg_root)/lib/jpeg.lib',
+ ]
+ }, {
+ 'include_dirs': [
+ '<!@(pkg-config libjpeg --cflags-only-I | sed s/-I//g)'
+ ],
+ 'libraries': [
+ '<!@(pkg-config libjpeg --libs)'
+ ]
+ }]
+ ]
+ }],
+ ['with_gif=="true"', {
+ 'defines': [
+ 'HAVE_GIF'
+ ],
+ 'conditions': [
+ ['OS=="win"', {
+ 'libraries': [
+ '-l<(GTK_Root)/lib/gif.lib'
+ ]
+ }, {
+ 'include_dirs': [
+ '/opt/homebrew/include'
+ ],
+ 'libraries': [
+ '-L/opt/homebrew/lib',
+ '-lgif'
+ ]
+ }]
+ ]
+ }],
+ ['with_rsvg=="true"', {
+ 'defines': [
+ 'HAVE_RSVG'
+ ],
+ 'conditions': [
+ ['OS=="win"', {
+ 'copies': [{
+ 'destination': '<(PRODUCT_DIR)',
+ 'files': [
+ '<(GTK_Root)/bin/librsvg-2-2.dll',
+ '<(GTK_Root)/bin/libgdk_pixbuf-2.0-0.dll',
+ '<(GTK_Root)/bin/libgio-2.0-0.dll',
+ '<(GTK_Root)/bin/libcroco-0.6-3.dll',
+ '<(GTK_Root)/bin/libgsf-1-114.dll',
+ '<(GTK_Root)/bin/libxml2-2.dll'
+ ]
+ }],
+ 'libraries': [
+ '-l<(GTK_Root)/lib/librsvg-2-2.lib'
+ ]
+ }, {
+ 'include_dirs': [
+ '<!@(pkg-config librsvg-2.0 --cflags-only-I | sed s/-I//g)'
+ ],
+ 'libraries': [
+ '<!@(pkg-config librsvg-2.0 --libs)'
+ ]
+ }]
+ ]
+ }]
+ ]
+ }
+ ]
+}
diff --git a/node_modules/canvas/browser.js b/node_modules/canvas/browser.js
new file mode 100644
index 0000000..0267a75
--- /dev/null
+++ b/node_modules/canvas/browser.js
@@ -0,0 +1,35 @@
+/* globals document, ImageData */
+
+const parseFont = require('./lib/parse-font')
+
+exports.parseFont = parseFont
+
+exports.createCanvas = function (width, height) {
+ return Object.assign(document.createElement('canvas'), { width: width, height: height })
+}
+
+exports.createImageData = function (array, width, height) {
+ // Browser implementation of ImageData looks at the number of arguments passed
+ switch (arguments.length) {
+ case 0: return new ImageData()
+ case 1: return new ImageData(array)
+ case 2: return new ImageData(array, width)
+ default: return new ImageData(array, width, height)
+ }
+}
+
+exports.loadImage = function (src, options) {
+ return new Promise(function (resolve, reject) {
+ const image = Object.assign(document.createElement('img'), options)
+
+ function cleanup () {
+ image.onload = null
+ image.onerror = null
+ }
+
+ image.onload = function () { cleanup(); resolve(image) }
+ image.onerror = function () { cleanup(); reject(new Error('Failed to load the image "' + src + '"')) }
+
+ image.src = src
+ })
+}
diff --git a/node_modules/canvas/build/Release/canvas.exp b/node_modules/canvas/build/Release/canvas.exp
new file mode 100644
index 0000000..61b5fa7
--- /dev/null
+++ b/node_modules/canvas/build/Release/canvas.exp
Binary files differ
diff --git a/node_modules/canvas/build/Release/canvas.iobj b/node_modules/canvas/build/Release/canvas.iobj
new file mode 100644
index 0000000..dff7cd1
--- /dev/null
+++ b/node_modules/canvas/build/Release/canvas.iobj
Binary files differ
diff --git a/node_modules/canvas/build/Release/canvas.ipdb b/node_modules/canvas/build/Release/canvas.ipdb
new file mode 100644
index 0000000..6f2bf29
--- /dev/null
+++ b/node_modules/canvas/build/Release/canvas.ipdb
Binary files differ
diff --git a/node_modules/canvas/build/Release/canvas.lib b/node_modules/canvas/build/Release/canvas.lib
new file mode 100644
index 0000000..55cd6a7
--- /dev/null
+++ b/node_modules/canvas/build/Release/canvas.lib
Binary files differ
diff --git a/node_modules/canvas/build/Release/canvas.node b/node_modules/canvas/build/Release/canvas.node
new file mode 100644
index 0000000..9916cf1
--- /dev/null
+++ b/node_modules/canvas/build/Release/canvas.node
Binary files differ
diff --git a/node_modules/canvas/build/Release/canvas.pdb b/node_modules/canvas/build/Release/canvas.pdb
new file mode 100644
index 0000000..fdf6a4b
--- /dev/null
+++ b/node_modules/canvas/build/Release/canvas.pdb
Binary files differ
diff --git a/node_modules/canvas/build/Release/libbrotlicommon.dll b/node_modules/canvas/build/Release/libbrotlicommon.dll
new file mode 100644
index 0000000..450cd7f
--- /dev/null
+++ b/node_modules/canvas/build/Release/libbrotlicommon.dll
Binary files differ
diff --git a/node_modules/canvas/build/Release/libbrotlidec.dll b/node_modules/canvas/build/Release/libbrotlidec.dll
new file mode 100644
index 0000000..a789d54
--- /dev/null
+++ b/node_modules/canvas/build/Release/libbrotlidec.dll
Binary files differ
diff --git a/node_modules/canvas/build/Release/libbz2-1.dll b/node_modules/canvas/build/Release/libbz2-1.dll
new file mode 100644
index 0000000..2a9346f
--- /dev/null
+++ b/node_modules/canvas/build/Release/libbz2-1.dll
Binary files differ
diff --git a/node_modules/canvas/build/Release/libcairo-2.dll b/node_modules/canvas/build/Release/libcairo-2.dll
new file mode 100644
index 0000000..f4b4624
--- /dev/null
+++ b/node_modules/canvas/build/Release/libcairo-2.dll
Binary files differ
diff --git a/node_modules/canvas/build/Release/libcairo-gobject-2.dll b/node_modules/canvas/build/Release/libcairo-gobject-2.dll
new file mode 100644
index 0000000..5dcfa93
--- /dev/null
+++ b/node_modules/canvas/build/Release/libcairo-gobject-2.dll
Binary files differ
diff --git a/node_modules/canvas/build/Release/libdatrie-1.dll b/node_modules/canvas/build/Release/libdatrie-1.dll
new file mode 100644
index 0000000..f796316
--- /dev/null
+++ b/node_modules/canvas/build/Release/libdatrie-1.dll
Binary files differ
diff --git a/node_modules/canvas/build/Release/libexpat-1.dll b/node_modules/canvas/build/Release/libexpat-1.dll
new file mode 100644
index 0000000..0fdae99
--- /dev/null
+++ b/node_modules/canvas/build/Release/libexpat-1.dll
Binary files differ
diff --git a/node_modules/canvas/build/Release/libffi-8.dll b/node_modules/canvas/build/Release/libffi-8.dll
new file mode 100644
index 0000000..4d39987
--- /dev/null
+++ b/node_modules/canvas/build/Release/libffi-8.dll
Binary files differ
diff --git a/node_modules/canvas/build/Release/libfontconfig-1.dll b/node_modules/canvas/build/Release/libfontconfig-1.dll
new file mode 100644
index 0000000..f694de6
--- /dev/null
+++ b/node_modules/canvas/build/Release/libfontconfig-1.dll
Binary files differ
diff --git a/node_modules/canvas/build/Release/libfreetype-6.dll b/node_modules/canvas/build/Release/libfreetype-6.dll
new file mode 100644
index 0000000..bab2900
--- /dev/null
+++ b/node_modules/canvas/build/Release/libfreetype-6.dll
Binary files differ
diff --git a/node_modules/canvas/build/Release/libfribidi-0.dll b/node_modules/canvas/build/Release/libfribidi-0.dll
new file mode 100644
index 0000000..b97d205
--- /dev/null
+++ b/node_modules/canvas/build/Release/libfribidi-0.dll
Binary files differ
diff --git a/node_modules/canvas/build/Release/libgcc_s_seh-1.dll b/node_modules/canvas/build/Release/libgcc_s_seh-1.dll
new file mode 100644
index 0000000..77d962c
--- /dev/null
+++ b/node_modules/canvas/build/Release/libgcc_s_seh-1.dll
Binary files differ
diff --git a/node_modules/canvas/build/Release/libgdk_pixbuf-2.0-0.dll b/node_modules/canvas/build/Release/libgdk_pixbuf-2.0-0.dll
new file mode 100644
index 0000000..66f5d8b
--- /dev/null
+++ b/node_modules/canvas/build/Release/libgdk_pixbuf-2.0-0.dll
Binary files differ
diff --git a/node_modules/canvas/build/Release/libgif-7.dll b/node_modules/canvas/build/Release/libgif-7.dll
new file mode 100644
index 0000000..d87bb21
--- /dev/null
+++ b/node_modules/canvas/build/Release/libgif-7.dll
Binary files differ
diff --git a/node_modules/canvas/build/Release/libgio-2.0-0.dll b/node_modules/canvas/build/Release/libgio-2.0-0.dll
new file mode 100644
index 0000000..ab58b78
--- /dev/null
+++ b/node_modules/canvas/build/Release/libgio-2.0-0.dll
Binary files differ
diff --git a/node_modules/canvas/build/Release/libglib-2.0-0.dll b/node_modules/canvas/build/Release/libglib-2.0-0.dll
new file mode 100644
index 0000000..ff0379c
--- /dev/null
+++ b/node_modules/canvas/build/Release/libglib-2.0-0.dll
Binary files differ
diff --git a/node_modules/canvas/build/Release/libgmodule-2.0-0.dll b/node_modules/canvas/build/Release/libgmodule-2.0-0.dll
new file mode 100644
index 0000000..ac15366
--- /dev/null
+++ b/node_modules/canvas/build/Release/libgmodule-2.0-0.dll
Binary files differ
diff --git a/node_modules/canvas/build/Release/libgobject-2.0-0.dll b/node_modules/canvas/build/Release/libgobject-2.0-0.dll
new file mode 100644
index 0000000..91eaca8
--- /dev/null
+++ b/node_modules/canvas/build/Release/libgobject-2.0-0.dll
Binary files differ
diff --git a/node_modules/canvas/build/Release/libgraphite2.dll b/node_modules/canvas/build/Release/libgraphite2.dll
new file mode 100644
index 0000000..83b88fa
--- /dev/null
+++ b/node_modules/canvas/build/Release/libgraphite2.dll
Binary files differ
diff --git a/node_modules/canvas/build/Release/libharfbuzz-0.dll b/node_modules/canvas/build/Release/libharfbuzz-0.dll
new file mode 100644
index 0000000..6f06160
--- /dev/null
+++ b/node_modules/canvas/build/Release/libharfbuzz-0.dll
Binary files differ
diff --git a/node_modules/canvas/build/Release/libiconv-2.dll b/node_modules/canvas/build/Release/libiconv-2.dll
new file mode 100644
index 0000000..10b9496
--- /dev/null
+++ b/node_modules/canvas/build/Release/libiconv-2.dll
Binary files differ
diff --git a/node_modules/canvas/build/Release/libintl-8.dll b/node_modules/canvas/build/Release/libintl-8.dll
new file mode 100644
index 0000000..b63e54d
--- /dev/null
+++ b/node_modules/canvas/build/Release/libintl-8.dll
Binary files differ
diff --git a/node_modules/canvas/build/Release/libjpeg-8.dll b/node_modules/canvas/build/Release/libjpeg-8.dll
new file mode 100644
index 0000000..92bcb97
--- /dev/null
+++ b/node_modules/canvas/build/Release/libjpeg-8.dll
Binary files differ
diff --git a/node_modules/canvas/build/Release/liblzma-5.dll b/node_modules/canvas/build/Release/liblzma-5.dll
new file mode 100644
index 0000000..a95ba91
--- /dev/null
+++ b/node_modules/canvas/build/Release/liblzma-5.dll
Binary files differ
diff --git a/node_modules/canvas/build/Release/libpango-1.0-0.dll b/node_modules/canvas/build/Release/libpango-1.0-0.dll
new file mode 100644
index 0000000..2f2a42c
--- /dev/null
+++ b/node_modules/canvas/build/Release/libpango-1.0-0.dll
Binary files differ
diff --git a/node_modules/canvas/build/Release/libpangocairo-1.0-0.dll b/node_modules/canvas/build/Release/libpangocairo-1.0-0.dll
new file mode 100644
index 0000000..8187163
--- /dev/null
+++ b/node_modules/canvas/build/Release/libpangocairo-1.0-0.dll
Binary files differ
diff --git a/node_modules/canvas/build/Release/libpangoft2-1.0-0.dll b/node_modules/canvas/build/Release/libpangoft2-1.0-0.dll
new file mode 100644
index 0000000..ce8708a
--- /dev/null
+++ b/node_modules/canvas/build/Release/libpangoft2-1.0-0.dll
Binary files differ
diff --git a/node_modules/canvas/build/Release/libpangowin32-1.0-0.dll b/node_modules/canvas/build/Release/libpangowin32-1.0-0.dll
new file mode 100644
index 0000000..5922e89
--- /dev/null
+++ b/node_modules/canvas/build/Release/libpangowin32-1.0-0.dll
Binary files differ
diff --git a/node_modules/canvas/build/Release/libpcre2-8-0.dll b/node_modules/canvas/build/Release/libpcre2-8-0.dll
new file mode 100644
index 0000000..ddf3ead
--- /dev/null
+++ b/node_modules/canvas/build/Release/libpcre2-8-0.dll
Binary files differ
diff --git a/node_modules/canvas/build/Release/libpixman-1-0.dll b/node_modules/canvas/build/Release/libpixman-1-0.dll
new file mode 100644
index 0000000..00b214b
--- /dev/null
+++ b/node_modules/canvas/build/Release/libpixman-1-0.dll
Binary files differ
diff --git a/node_modules/canvas/build/Release/libpng16-16.dll b/node_modules/canvas/build/Release/libpng16-16.dll
new file mode 100644
index 0000000..24f294e
--- /dev/null
+++ b/node_modules/canvas/build/Release/libpng16-16.dll
Binary files differ
diff --git a/node_modules/canvas/build/Release/librsvg-2-2.dll b/node_modules/canvas/build/Release/librsvg-2-2.dll
new file mode 100644
index 0000000..85dab57
--- /dev/null
+++ b/node_modules/canvas/build/Release/librsvg-2-2.dll
Binary files differ
diff --git a/node_modules/canvas/build/Release/libstdc++-6.dll b/node_modules/canvas/build/Release/libstdc++-6.dll
new file mode 100644
index 0000000..49518fa
--- /dev/null
+++ b/node_modules/canvas/build/Release/libstdc++-6.dll
Binary files differ
diff --git a/node_modules/canvas/build/Release/libthai-0.dll b/node_modules/canvas/build/Release/libthai-0.dll
new file mode 100644
index 0000000..fe356cb
--- /dev/null
+++ b/node_modules/canvas/build/Release/libthai-0.dll
Binary files differ
diff --git a/node_modules/canvas/build/Release/libwinpthread-1.dll b/node_modules/canvas/build/Release/libwinpthread-1.dll
new file mode 100644
index 0000000..858ef60
--- /dev/null
+++ b/node_modules/canvas/build/Release/libwinpthread-1.dll
Binary files differ
diff --git a/node_modules/canvas/build/Release/libxml2-2.dll b/node_modules/canvas/build/Release/libxml2-2.dll
new file mode 100644
index 0000000..9fad8f2
--- /dev/null
+++ b/node_modules/canvas/build/Release/libxml2-2.dll
Binary files differ
diff --git a/node_modules/canvas/build/Release/obj/canvas/canvas.node.recipe b/node_modules/canvas/build/Release/obj/canvas/canvas.node.recipe
new file mode 100644
index 0000000..fb13b7e
--- /dev/null
+++ b/node_modules/canvas/build/Release/obj/canvas/canvas.node.recipe
@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project>
+ <ProjectOutputs>
+ <ProjectOutput>
+ <FullPath>D:\a\node-canvas\node-canvas\build\Release\canvas.node</FullPath>
+ </ProjectOutput>
+ </ProjectOutputs>
+ <ContentFiles />
+ <SatelliteDlls />
+ <NonRecipeFileRefs />
+</Project>
\ No newline at end of file
diff --git a/node_modules/canvas/build/Release/obj/canvas/canvas.tlog/CL.command.1.tlog b/node_modules/canvas/build/Release/obj/canvas/canvas.tlog/CL.command.1.tlog
new file mode 100644
index 0000000..ec471d4
--- /dev/null
+++ b/node_modules/canvas/build/Release/obj/canvas/canvas.tlog/CL.command.1.tlog
Binary files differ
diff --git a/node_modules/canvas/build/Release/obj/canvas/canvas.tlog/CL.read.1.tlog b/node_modules/canvas/build/Release/obj/canvas/canvas.tlog/CL.read.1.tlog
new file mode 100644
index 0000000..10c77d0
--- /dev/null
+++ b/node_modules/canvas/build/Release/obj/canvas/canvas.tlog/CL.read.1.tlog
Binary files differ
diff --git a/node_modules/canvas/build/Release/obj/canvas/canvas.tlog/CL.write.1.tlog b/node_modules/canvas/build/Release/obj/canvas/canvas.tlog/CL.write.1.tlog
new file mode 100644
index 0000000..2c66452
--- /dev/null
+++ b/node_modules/canvas/build/Release/obj/canvas/canvas.tlog/CL.write.1.tlog
Binary files differ
diff --git a/node_modules/canvas/build/Release/obj/canvas/canvas.tlog/canvas.lastbuildstate b/node_modules/canvas/build/Release/obj/canvas/canvas.tlog/canvas.lastbuildstate
new file mode 100644
index 0000000..943adcc
--- /dev/null
+++ b/node_modules/canvas/build/Release/obj/canvas/canvas.tlog/canvas.lastbuildstate
@@ -0,0 +1,2 @@
+PlatformToolSet=v142:VCToolArchitecture=Native64Bit:VCToolsVersion=14.29.30133:VCServicingVersionMFC=14.29.30136:TargetPlatformVersion=10.0.22000.0:
+Release|x64|D:\a\node-canvas\node-canvas\build\|
diff --git a/node_modules/canvas/build/Release/obj/canvas/canvas.tlog/canvas.write.1u.tlog b/node_modules/canvas/build/Release/obj/canvas/canvas.tlog/canvas.write.1u.tlog
new file mode 100644
index 0000000..59dd971
--- /dev/null
+++ b/node_modules/canvas/build/Release/obj/canvas/canvas.tlog/canvas.write.1u.tlog
Binary files differ
diff --git a/node_modules/canvas/build/Release/obj/canvas/canvas.tlog/link.command.1.tlog b/node_modules/canvas/build/Release/obj/canvas/canvas.tlog/link.command.1.tlog
new file mode 100644
index 0000000..337824b
--- /dev/null
+++ b/node_modules/canvas/build/Release/obj/canvas/canvas.tlog/link.command.1.tlog
Binary files differ
diff --git a/node_modules/canvas/build/Release/obj/canvas/canvas.tlog/link.read.1.tlog b/node_modules/canvas/build/Release/obj/canvas/canvas.tlog/link.read.1.tlog
new file mode 100644
index 0000000..c33ad16
--- /dev/null
+++ b/node_modules/canvas/build/Release/obj/canvas/canvas.tlog/link.read.1.tlog
Binary files differ
diff --git a/node_modules/canvas/build/Release/obj/canvas/canvas.tlog/link.write.1.tlog b/node_modules/canvas/build/Release/obj/canvas/canvas.tlog/link.write.1.tlog
new file mode 100644
index 0000000..0abd7e1
--- /dev/null
+++ b/node_modules/canvas/build/Release/obj/canvas/canvas.tlog/link.write.1.tlog
Binary files differ
diff --git a/node_modules/canvas/build/Release/obj/canvas/src/Backends.obj b/node_modules/canvas/build/Release/obj/canvas/src/Backends.obj
new file mode 100644
index 0000000..c2611ad
--- /dev/null
+++ b/node_modules/canvas/build/Release/obj/canvas/src/Backends.obj
Binary files differ
diff --git a/node_modules/canvas/build/Release/obj/canvas/src/Canvas.obj b/node_modules/canvas/build/Release/obj/canvas/src/Canvas.obj
new file mode 100644
index 0000000..c14a9fd
--- /dev/null
+++ b/node_modules/canvas/build/Release/obj/canvas/src/Canvas.obj
Binary files differ
diff --git a/node_modules/canvas/build/Release/obj/canvas/src/CanvasGradient.obj b/node_modules/canvas/build/Release/obj/canvas/src/CanvasGradient.obj
new file mode 100644
index 0000000..e54ab6a
--- /dev/null
+++ b/node_modules/canvas/build/Release/obj/canvas/src/CanvasGradient.obj
Binary files differ
diff --git a/node_modules/canvas/build/Release/obj/canvas/src/CanvasPattern.obj b/node_modules/canvas/build/Release/obj/canvas/src/CanvasPattern.obj
new file mode 100644
index 0000000..5af7b04
--- /dev/null
+++ b/node_modules/canvas/build/Release/obj/canvas/src/CanvasPattern.obj
Binary files differ
diff --git a/node_modules/canvas/build/Release/obj/canvas/src/CanvasRenderingContext2d.obj b/node_modules/canvas/build/Release/obj/canvas/src/CanvasRenderingContext2d.obj
new file mode 100644
index 0000000..3415f8d
--- /dev/null
+++ b/node_modules/canvas/build/Release/obj/canvas/src/CanvasRenderingContext2d.obj
Binary files differ
diff --git a/node_modules/canvas/build/Release/obj/canvas/src/Image.obj b/node_modules/canvas/build/Release/obj/canvas/src/Image.obj
new file mode 100644
index 0000000..801d5d8
--- /dev/null
+++ b/node_modules/canvas/build/Release/obj/canvas/src/Image.obj
Binary files differ
diff --git a/node_modules/canvas/build/Release/obj/canvas/src/ImageData.obj b/node_modules/canvas/build/Release/obj/canvas/src/ImageData.obj
new file mode 100644
index 0000000..9496d8c
--- /dev/null
+++ b/node_modules/canvas/build/Release/obj/canvas/src/ImageData.obj
Binary files differ
diff --git a/node_modules/canvas/build/Release/obj/canvas/src/backend/Backend.obj b/node_modules/canvas/build/Release/obj/canvas/src/backend/Backend.obj
new file mode 100644
index 0000000..796e250
--- /dev/null
+++ b/node_modules/canvas/build/Release/obj/canvas/src/backend/Backend.obj
Binary files differ
diff --git a/node_modules/canvas/build/Release/obj/canvas/src/backend/ImageBackend.obj b/node_modules/canvas/build/Release/obj/canvas/src/backend/ImageBackend.obj
new file mode 100644
index 0000000..86e2561
--- /dev/null
+++ b/node_modules/canvas/build/Release/obj/canvas/src/backend/ImageBackend.obj
Binary files differ
diff --git a/node_modules/canvas/build/Release/obj/canvas/src/backend/PdfBackend.obj b/node_modules/canvas/build/Release/obj/canvas/src/backend/PdfBackend.obj
new file mode 100644
index 0000000..dcbd3ab
--- /dev/null
+++ b/node_modules/canvas/build/Release/obj/canvas/src/backend/PdfBackend.obj
Binary files differ
diff --git a/node_modules/canvas/build/Release/obj/canvas/src/backend/SvgBackend.obj b/node_modules/canvas/build/Release/obj/canvas/src/backend/SvgBackend.obj
new file mode 100644
index 0000000..efa1e73
--- /dev/null
+++ b/node_modules/canvas/build/Release/obj/canvas/src/backend/SvgBackend.obj
Binary files differ
diff --git a/node_modules/canvas/build/Release/obj/canvas/src/bmp/BMPParser.obj b/node_modules/canvas/build/Release/obj/canvas/src/bmp/BMPParser.obj
new file mode 100644
index 0000000..c054b50
--- /dev/null
+++ b/node_modules/canvas/build/Release/obj/canvas/src/bmp/BMPParser.obj
Binary files differ
diff --git a/node_modules/canvas/build/Release/obj/canvas/src/closure.obj b/node_modules/canvas/build/Release/obj/canvas/src/closure.obj
new file mode 100644
index 0000000..e8f141a
--- /dev/null
+++ b/node_modules/canvas/build/Release/obj/canvas/src/closure.obj
Binary files differ
diff --git a/node_modules/canvas/build/Release/obj/canvas/src/color.obj b/node_modules/canvas/build/Release/obj/canvas/src/color.obj
new file mode 100644
index 0000000..708e6d8
--- /dev/null
+++ b/node_modules/canvas/build/Release/obj/canvas/src/color.obj
Binary files differ
diff --git a/node_modules/canvas/build/Release/obj/canvas/src/init.obj b/node_modules/canvas/build/Release/obj/canvas/src/init.obj
new file mode 100644
index 0000000..20f5282
--- /dev/null
+++ b/node_modules/canvas/build/Release/obj/canvas/src/init.obj
Binary files differ
diff --git a/node_modules/canvas/build/Release/obj/canvas/src/register_font.obj b/node_modules/canvas/build/Release/obj/canvas/src/register_font.obj
new file mode 100644
index 0000000..b19f36e
--- /dev/null
+++ b/node_modules/canvas/build/Release/obj/canvas/src/register_font.obj
Binary files differ
diff --git a/node_modules/canvas/build/Release/obj/canvas/win_delay_load_hook.obj b/node_modules/canvas/build/Release/obj/canvas/win_delay_load_hook.obj
new file mode 100644
index 0000000..8b57f0c
--- /dev/null
+++ b/node_modules/canvas/build/Release/obj/canvas/win_delay_load_hook.obj
Binary files differ
diff --git a/node_modules/canvas/build/Release/zlib1.dll b/node_modules/canvas/build/Release/zlib1.dll
new file mode 100644
index 0000000..1e8bd80
--- /dev/null
+++ b/node_modules/canvas/build/Release/zlib1.dll
Binary files differ
diff --git a/node_modules/canvas/changes b/node_modules/canvas/changes
new file mode 100644
index 0000000..a80b84b
--- /dev/null
+++ b/node_modules/canvas/changes
@@ -0,0 +1,19 @@
+toBuffer and other canvas methods were static and unwrapped
+the this arg. this seemed weird. they are now instance
+methods since that's how object wrap works, XXX add
+instanceof checks?
+
+node-canvas no lunger flushes microtasks when calling stream
+cbs XXX wait now that I say it that sounds wrong?
+
+we don't need CHECK_RECEIVER anymore? dbl check that?
+
+TODO: check changes from As<X> to AsX. bad assumption.
+
+dbl check try catch changes?
+
+Error is now CairoError
+
+global this in all callbacks, streamPNGSync now flushes microtasks
+
+streamPDF uses MakeCallback, not runInAsyncScope
diff --git a/node_modules/canvas/index.js b/node_modules/canvas/index.js
new file mode 100644
index 0000000..f605077
--- /dev/null
+++ b/node_modules/canvas/index.js
@@ -0,0 +1,94 @@
+const Canvas = require('./lib/canvas')
+const Image = require('./lib/image')
+const CanvasRenderingContext2D = require('./lib/context2d')
+const CanvasPattern = require('./lib/pattern')
+const parseFont = require('./lib/parse-font')
+const packageJson = require('./package.json')
+const bindings = require('./lib/bindings')
+const fs = require('fs')
+const PNGStream = require('./lib/pngstream')
+const PDFStream = require('./lib/pdfstream')
+const JPEGStream = require('./lib/jpegstream')
+const { DOMPoint, DOMMatrix } = require('./lib/DOMMatrix')
+
+function createCanvas (width, height, type) {
+ return new Canvas(width, height, type)
+}
+
+function createImageData (array, width, height) {
+ return new bindings.ImageData(array, width, height)
+}
+
+function loadImage (src) {
+ return new Promise((resolve, reject) => {
+ const image = new Image()
+
+ function cleanup () {
+ image.onload = null
+ image.onerror = null
+ }
+
+ image.onload = () => { cleanup(); resolve(image) }
+ image.onerror = (err) => { cleanup(); reject(err) }
+
+ image.src = src
+ })
+}
+
+/**
+ * Resolve paths for registerFont. Must be called *before* creating a Canvas
+ * instance.
+ * @param src {string} Path to font file.
+ * @param fontFace {{family: string, weight?: string, style?: string}} Object
+ * specifying font information. `weight` and `style` default to `"normal"`.
+ */
+function registerFont (src, fontFace) {
+ // TODO this doesn't need to be on Canvas; it should just be a static method
+ // of `bindings`.
+ return Canvas._registerFont(fs.realpathSync(src), fontFace)
+}
+
+/**
+ * Unload all fonts from pango to free up memory
+ */
+function deregisterAllFonts () {
+ return Canvas._deregisterAllFonts()
+}
+
+exports.Canvas = Canvas
+exports.Context2d = CanvasRenderingContext2D // Legacy/compat export
+exports.CanvasRenderingContext2D = CanvasRenderingContext2D
+exports.CanvasGradient = bindings.CanvasGradient
+exports.CanvasPattern = CanvasPattern
+exports.Image = Image
+exports.ImageData = bindings.ImageData
+exports.PNGStream = PNGStream
+exports.PDFStream = PDFStream
+exports.JPEGStream = JPEGStream
+exports.DOMMatrix = DOMMatrix
+exports.DOMPoint = DOMPoint
+
+exports.registerFont = registerFont
+exports.deregisterAllFonts = deregisterAllFonts
+exports.parseFont = parseFont
+
+exports.createCanvas = createCanvas
+exports.createImageData = createImageData
+exports.loadImage = loadImage
+
+exports.backends = bindings.Backends
+
+/** Library version. */
+exports.version = packageJson.version
+/** Cairo version. */
+exports.cairoVersion = bindings.cairoVersion
+/** jpeglib version. */
+exports.jpegVersion = bindings.jpegVersion
+/** gif_lib version. */
+exports.gifVersion = bindings.gifVersion ? bindings.gifVersion.replace(/[^.\d]/g, '') : undefined
+/** freetype version. */
+exports.freetypeVersion = bindings.freetypeVersion
+/** rsvg version. */
+exports.rsvgVersion = bindings.rsvgVersion
+/** pango version. */
+exports.pangoVersion = bindings.pangoVersion
diff --git a/node_modules/canvas/lib/DOMMatrix.js b/node_modules/canvas/lib/DOMMatrix.js
new file mode 100644
index 0000000..479e7e6
--- /dev/null
+++ b/node_modules/canvas/lib/DOMMatrix.js
@@ -0,0 +1,620 @@
+'use strict'
+
+const util = require('util')
+
+// DOMMatrix per https://drafts.fxtf.org/geometry/#DOMMatrix
+
+class DOMPoint {
+ constructor (x, y, z, w) {
+ if (typeof x === 'object' && x !== null) {
+ w = x.w
+ z = x.z
+ y = x.y
+ x = x.x
+ }
+ this.x = typeof x === 'number' ? x : 0
+ this.y = typeof y === 'number' ? y : 0
+ this.z = typeof z === 'number' ? z : 0
+ this.w = typeof w === 'number' ? w : 1
+ }
+}
+
+// Constants to index into _values (col-major)
+const M11 = 0; const M12 = 1; const M13 = 2; const M14 = 3
+const M21 = 4; const M22 = 5; const M23 = 6; const M24 = 7
+const M31 = 8; const M32 = 9; const M33 = 10; const M34 = 11
+const M41 = 12; const M42 = 13; const M43 = 14; const M44 = 15
+
+const DEGREE_PER_RAD = 180 / Math.PI
+const RAD_PER_DEGREE = Math.PI / 180
+
+function parseMatrix (init) {
+ let parsed = init.replace('matrix(', '')
+ parsed = parsed.split(',', 7) // 6 + 1 to handle too many params
+ if (parsed.length !== 6) throw new Error(`Failed to parse ${init}`)
+ parsed = parsed.map(parseFloat)
+ return [
+ parsed[0], parsed[1], 0, 0,
+ parsed[2], parsed[3], 0, 0,
+ 0, 0, 1, 0,
+ parsed[4], parsed[5], 0, 1
+ ]
+}
+
+function parseMatrix3d (init) {
+ let parsed = init.replace('matrix3d(', '')
+ parsed = parsed.split(',', 17) // 16 + 1 to handle too many params
+ if (parsed.length !== 16) throw new Error(`Failed to parse ${init}`)
+ return parsed.map(parseFloat)
+}
+
+function parseTransform (tform) {
+ const type = tform.split('(', 1)[0]
+ switch (type) {
+ case 'matrix':
+ return parseMatrix(tform)
+ case 'matrix3d':
+ return parseMatrix3d(tform)
+ // TODO This is supposed to support any CSS transform value.
+ default:
+ throw new Error(`${type} parsing not implemented`)
+ }
+}
+
+class DOMMatrix {
+ constructor (init) {
+ this._is2D = true
+ this._values = new Float64Array([
+ 1, 0, 0, 0,
+ 0, 1, 0, 0,
+ 0, 0, 1, 0,
+ 0, 0, 0, 1
+ ])
+
+ let i
+
+ if (typeof init === 'string') { // parse CSS transformList
+ if (init === '') return // default identity matrix
+ const tforms = init.split(/\)\s+/, 20).map(parseTransform)
+ if (tforms.length === 0) return
+ init = tforms[0]
+ for (i = 1; i < tforms.length; i++) init = multiply(tforms[i], init)
+ }
+
+ i = 0
+ if (init && init.length === 6) {
+ setNumber2D(this, M11, init[i++])
+ setNumber2D(this, M12, init[i++])
+ setNumber2D(this, M21, init[i++])
+ setNumber2D(this, M22, init[i++])
+ setNumber2D(this, M41, init[i++])
+ setNumber2D(this, M42, init[i++])
+ } else if (init && init.length === 16) {
+ setNumber2D(this, M11, init[i++])
+ setNumber2D(this, M12, init[i++])
+ setNumber3D(this, M13, init[i++])
+ setNumber3D(this, M14, init[i++])
+ setNumber2D(this, M21, init[i++])
+ setNumber2D(this, M22, init[i++])
+ setNumber3D(this, M23, init[i++])
+ setNumber3D(this, M24, init[i++])
+ setNumber3D(this, M31, init[i++])
+ setNumber3D(this, M32, init[i++])
+ setNumber3D(this, M33, init[i++])
+ setNumber3D(this, M34, init[i++])
+ setNumber2D(this, M41, init[i++])
+ setNumber2D(this, M42, init[i++])
+ setNumber3D(this, M43, init[i++])
+ setNumber3D(this, M44, init[i])
+ } else if (init !== undefined) {
+ throw new TypeError('Expected string or array.')
+ }
+ }
+
+ toString () {
+ return this.is2D
+ ? `matrix(${this.a}, ${this.b}, ${this.c}, ${this.d}, ${this.e}, ${this.f})`
+ : `matrix3d(${this._values.join(', ')})`
+ }
+
+ multiply (other) {
+ return newInstance(this._values).multiplySelf(other)
+ }
+
+ multiplySelf (other) {
+ this._values = multiply(other._values, this._values)
+ if (!other.is2D) this._is2D = false
+ return this
+ }
+
+ preMultiplySelf (other) {
+ this._values = multiply(this._values, other._values)
+ if (!other.is2D) this._is2D = false
+ return this
+ }
+
+ translate (tx, ty, tz) {
+ return newInstance(this._values).translateSelf(tx, ty, tz)
+ }
+
+ translateSelf (tx, ty, tz) {
+ if (typeof tx !== 'number') tx = 0
+ if (typeof ty !== 'number') ty = 0
+ if (typeof tz !== 'number') tz = 0
+ this._values = multiply([
+ 1, 0, 0, 0,
+ 0, 1, 0, 0,
+ 0, 0, 1, 0,
+ tx, ty, tz, 1
+ ], this._values)
+ if (tz !== 0) this._is2D = false
+ return this
+ }
+
+ scale (scaleX, scaleY, scaleZ, originX, originY, originZ) {
+ return newInstance(this._values).scaleSelf(scaleX, scaleY, scaleZ, originX, originY, originZ)
+ }
+
+ scale3d (scale, originX, originY, originZ) {
+ return newInstance(this._values).scale3dSelf(scale, originX, originY, originZ)
+ }
+
+ scale3dSelf (scale, originX, originY, originZ) {
+ return this.scaleSelf(scale, scale, scale, originX, originY, originZ)
+ }
+
+ scaleSelf (scaleX, scaleY, scaleZ, originX, originY, originZ) {
+ // Not redundant with translate's checks because we need to negate the values later.
+ if (typeof originX !== 'number') originX = 0
+ if (typeof originY !== 'number') originY = 0
+ if (typeof originZ !== 'number') originZ = 0
+ this.translateSelf(originX, originY, originZ)
+ if (typeof scaleX !== 'number') scaleX = 1
+ if (typeof scaleY !== 'number') scaleY = scaleX
+ if (typeof scaleZ !== 'number') scaleZ = 1
+ this._values = multiply([
+ scaleX, 0, 0, 0,
+ 0, scaleY, 0, 0,
+ 0, 0, scaleZ, 0,
+ 0, 0, 0, 1
+ ], this._values)
+ this.translateSelf(-originX, -originY, -originZ)
+ if (scaleZ !== 1 || originZ !== 0) this._is2D = false
+ return this
+ }
+
+ rotateFromVector (x, y) {
+ return newInstance(this._values).rotateFromVectorSelf(x, y)
+ }
+
+ rotateFromVectorSelf (x, y) {
+ if (typeof x !== 'number') x = 0
+ if (typeof y !== 'number') y = 0
+ const theta = (x === 0 && y === 0) ? 0 : Math.atan2(y, x) * DEGREE_PER_RAD
+ return this.rotateSelf(theta)
+ }
+
+ rotate (rotX, rotY, rotZ) {
+ return newInstance(this._values).rotateSelf(rotX, rotY, rotZ)
+ }
+
+ rotateSelf (rotX, rotY, rotZ) {
+ if (rotY === undefined && rotZ === undefined) {
+ rotZ = rotX
+ rotX = rotY = 0
+ }
+ if (typeof rotY !== 'number') rotY = 0
+ if (typeof rotZ !== 'number') rotZ = 0
+ if (rotX !== 0 || rotY !== 0) this._is2D = false
+ rotX *= RAD_PER_DEGREE
+ rotY *= RAD_PER_DEGREE
+ rotZ *= RAD_PER_DEGREE
+ let c, s
+ c = Math.cos(rotZ)
+ s = Math.sin(rotZ)
+ this._values = multiply([
+ c, s, 0, 0,
+ -s, c, 0, 0,
+ 0, 0, 1, 0,
+ 0, 0, 0, 1
+ ], this._values)
+ c = Math.cos(rotY)
+ s = Math.sin(rotY)
+ this._values = multiply([
+ c, 0, -s, 0,
+ 0, 1, 0, 0,
+ s, 0, c, 0,
+ 0, 0, 0, 1
+ ], this._values)
+ c = Math.cos(rotX)
+ s = Math.sin(rotX)
+ this._values = multiply([
+ 1, 0, 0, 0,
+ 0, c, s, 0,
+ 0, -s, c, 0,
+ 0, 0, 0, 1
+ ], this._values)
+ return this
+ }
+
+ rotateAxisAngle (x, y, z, angle) {
+ return newInstance(this._values).rotateAxisAngleSelf(x, y, z, angle)
+ }
+
+ rotateAxisAngleSelf (x, y, z, angle) {
+ if (typeof x !== 'number') x = 0
+ if (typeof y !== 'number') y = 0
+ if (typeof z !== 'number') z = 0
+ // Normalize axis
+ const length = Math.sqrt(x * x + y * y + z * z)
+ if (length === 0) return this
+ if (length !== 1) {
+ x /= length
+ y /= length
+ z /= length
+ }
+ angle *= RAD_PER_DEGREE
+ const c = Math.cos(angle)
+ const s = Math.sin(angle)
+ const t = 1 - c
+ const tx = t * x
+ const ty = t * y
+ // NB: This is the generic transform. If the axis is a major axis, there are
+ // faster transforms.
+ this._values = multiply([
+ tx * x + c, tx * y + s * z, tx * z - s * y, 0,
+ tx * y - s * z, ty * y + c, ty * z + s * x, 0,
+ tx * z + s * y, ty * z - s * x, t * z * z + c, 0,
+ 0, 0, 0, 1
+ ], this._values)
+ if (x !== 0 || y !== 0) this._is2D = false
+ return this
+ }
+
+ skewX (sx) {
+ return newInstance(this._values).skewXSelf(sx)
+ }
+
+ skewXSelf (sx) {
+ if (typeof sx !== 'number') return this
+ const t = Math.tan(sx * RAD_PER_DEGREE)
+ this._values = multiply([
+ 1, 0, 0, 0,
+ t, 1, 0, 0,
+ 0, 0, 1, 0,
+ 0, 0, 0, 1
+ ], this._values)
+ return this
+ }
+
+ skewY (sy) {
+ return newInstance(this._values).skewYSelf(sy)
+ }
+
+ skewYSelf (sy) {
+ if (typeof sy !== 'number') return this
+ const t = Math.tan(sy * RAD_PER_DEGREE)
+ this._values = multiply([
+ 1, t, 0, 0,
+ 0, 1, 0, 0,
+ 0, 0, 1, 0,
+ 0, 0, 0, 1
+ ], this._values)
+ return this
+ }
+
+ flipX () {
+ return newInstance(multiply([
+ -1, 0, 0, 0,
+ 0, 1, 0, 0,
+ 0, 0, 1, 0,
+ 0, 0, 0, 1
+ ], this._values))
+ }
+
+ flipY () {
+ return newInstance(multiply([
+ 1, 0, 0, 0,
+ 0, -1, 0, 0,
+ 0, 0, 1, 0,
+ 0, 0, 0, 1
+ ], this._values))
+ }
+
+ inverse () {
+ return newInstance(this._values).invertSelf()
+ }
+
+ invertSelf () {
+ const m = this._values
+ const inv = m.map(v => 0)
+
+ inv[0] = m[5] * m[10] * m[15] -
+ m[5] * m[11] * m[14] -
+ m[9] * m[6] * m[15] +
+ m[9] * m[7] * m[14] +
+ m[13] * m[6] * m[11] -
+ m[13] * m[7] * m[10]
+
+ inv[4] = -m[4] * m[10] * m[15] +
+ m[4] * m[11] * m[14] +
+ m[8] * m[6] * m[15] -
+ m[8] * m[7] * m[14] -
+ m[12] * m[6] * m[11] +
+ m[12] * m[7] * m[10]
+
+ inv[8] = m[4] * m[9] * m[15] -
+ m[4] * m[11] * m[13] -
+ m[8] * m[5] * m[15] +
+ m[8] * m[7] * m[13] +
+ m[12] * m[5] * m[11] -
+ m[12] * m[7] * m[9]
+
+ inv[12] = -m[4] * m[9] * m[14] +
+ m[4] * m[10] * m[13] +
+ m[8] * m[5] * m[14] -
+ m[8] * m[6] * m[13] -
+ m[12] * m[5] * m[10] +
+ m[12] * m[6] * m[9]
+
+ // If the determinant is zero, this matrix cannot be inverted, and all
+ // values should be set to NaN, with the is2D flag set to false.
+
+ const det = m[0] * inv[0] + m[1] * inv[4] + m[2] * inv[8] + m[3] * inv[12]
+
+ if (det === 0) {
+ this._values = m.map(v => NaN)
+ this._is2D = false
+ return this
+ }
+
+ inv[1] = -m[1] * m[10] * m[15] +
+ m[1] * m[11] * m[14] +
+ m[9] * m[2] * m[15] -
+ m[9] * m[3] * m[14] -
+ m[13] * m[2] * m[11] +
+ m[13] * m[3] * m[10]
+
+ inv[5] = m[0] * m[10] * m[15] -
+ m[0] * m[11] * m[14] -
+ m[8] * m[2] * m[15] +
+ m[8] * m[3] * m[14] +
+ m[12] * m[2] * m[11] -
+ m[12] * m[3] * m[10]
+
+ inv[9] = -m[0] * m[9] * m[15] +
+ m[0] * m[11] * m[13] +
+ m[8] * m[1] * m[15] -
+ m[8] * m[3] * m[13] -
+ m[12] * m[1] * m[11] +
+ m[12] * m[3] * m[9]
+
+ inv[13] = m[0] * m[9] * m[14] -
+ m[0] * m[10] * m[13] -
+ m[8] * m[1] * m[14] +
+ m[8] * m[2] * m[13] +
+ m[12] * m[1] * m[10] -
+ m[12] * m[2] * m[9]
+
+ inv[2] = m[1] * m[6] * m[15] -
+ m[1] * m[7] * m[14] -
+ m[5] * m[2] * m[15] +
+ m[5] * m[3] * m[14] +
+ m[13] * m[2] * m[7] -
+ m[13] * m[3] * m[6]
+
+ inv[6] = -m[0] * m[6] * m[15] +
+ m[0] * m[7] * m[14] +
+ m[4] * m[2] * m[15] -
+ m[4] * m[3] * m[14] -
+ m[12] * m[2] * m[7] +
+ m[12] * m[3] * m[6]
+
+ inv[10] = m[0] * m[5] * m[15] -
+ m[0] * m[7] * m[13] -
+ m[4] * m[1] * m[15] +
+ m[4] * m[3] * m[13] +
+ m[12] * m[1] * m[7] -
+ m[12] * m[3] * m[5]
+
+ inv[14] = -m[0] * m[5] * m[14] +
+ m[0] * m[6] * m[13] +
+ m[4] * m[1] * m[14] -
+ m[4] * m[2] * m[13] -
+ m[12] * m[1] * m[6] +
+ m[12] * m[2] * m[5]
+
+ inv[3] = -m[1] * m[6] * m[11] +
+ m[1] * m[7] * m[10] +
+ m[5] * m[2] * m[11] -
+ m[5] * m[3] * m[10] -
+ m[9] * m[2] * m[7] +
+ m[9] * m[3] * m[6]
+
+ inv[7] = m[0] * m[6] * m[11] -
+ m[0] * m[7] * m[10] -
+ m[4] * m[2] * m[11] +
+ m[4] * m[3] * m[10] +
+ m[8] * m[2] * m[7] -
+ m[8] * m[3] * m[6]
+
+ inv[11] = -m[0] * m[5] * m[11] +
+ m[0] * m[7] * m[9] +
+ m[4] * m[1] * m[11] -
+ m[4] * m[3] * m[9] -
+ m[8] * m[1] * m[7] +
+ m[8] * m[3] * m[5]
+
+ inv[15] = m[0] * m[5] * m[10] -
+ m[0] * m[6] * m[9] -
+ m[4] * m[1] * m[10] +
+ m[4] * m[2] * m[9] +
+ m[8] * m[1] * m[6] -
+ m[8] * m[2] * m[5]
+
+ inv.forEach((v, i) => { inv[i] = v / det })
+ this._values = inv
+ return this
+ }
+
+ setMatrixValue (transformList) {
+ const temp = new DOMMatrix(transformList)
+ this._values = temp._values
+ this._is2D = temp._is2D
+ return this
+ }
+
+ transformPoint (point) {
+ point = new DOMPoint(point)
+ const x = point.x
+ const y = point.y
+ const z = point.z
+ const w = point.w
+ const values = this._values
+ const nx = values[M11] * x + values[M21] * y + values[M31] * z + values[M41] * w
+ const ny = values[M12] * x + values[M22] * y + values[M32] * z + values[M42] * w
+ const nz = values[M13] * x + values[M23] * y + values[M33] * z + values[M43] * w
+ const nw = values[M14] * x + values[M24] * y + values[M34] * z + values[M44] * w
+ return new DOMPoint(nx, ny, nz, nw)
+ }
+
+ toFloat32Array () {
+ return Float32Array.from(this._values)
+ }
+
+ toFloat64Array () {
+ return this._values.slice(0)
+ }
+
+ static fromMatrix (init) {
+ if (!(init instanceof DOMMatrix)) throw new TypeError('Expected DOMMatrix')
+ return new DOMMatrix(init._values)
+ }
+
+ static fromFloat32Array (init) {
+ if (!(init instanceof Float32Array)) throw new TypeError('Expected Float32Array')
+ return new DOMMatrix(init)
+ }
+
+ static fromFloat64Array (init) {
+ if (!(init instanceof Float64Array)) throw new TypeError('Expected Float64Array')
+ return new DOMMatrix(init)
+ }
+
+ [util.inspect.custom || 'inspect'] (depth, options) {
+ if (depth < 0) return '[DOMMatrix]'
+
+ return `DOMMatrix [
+ a: ${this.a}
+ b: ${this.b}
+ c: ${this.c}
+ d: ${this.d}
+ e: ${this.e}
+ f: ${this.f}
+ m11: ${this.m11}
+ m12: ${this.m12}
+ m13: ${this.m13}
+ m14: ${this.m14}
+ m21: ${this.m21}
+ m22: ${this.m22}
+ m23: ${this.m23}
+ m23: ${this.m23}
+ m31: ${this.m31}
+ m32: ${this.m32}
+ m33: ${this.m33}
+ m34: ${this.m34}
+ m41: ${this.m41}
+ m42: ${this.m42}
+ m43: ${this.m43}
+ m44: ${this.m44}
+ is2D: ${this.is2D}
+ isIdentity: ${this.isIdentity} ]`
+ }
+}
+
+/**
+ * Checks that `value` is a number and sets the value.
+ */
+function setNumber2D (receiver, index, value) {
+ if (typeof value !== 'number') throw new TypeError('Expected number')
+ return (receiver._values[index] = value)
+}
+
+/**
+ * Checks that `value` is a number, sets `_is2D = false` if necessary and sets
+ * the value.
+ */
+function setNumber3D (receiver, index, value) {
+ if (typeof value !== 'number') throw new TypeError('Expected number')
+ if (index === M33 || index === M44) {
+ if (value !== 1) receiver._is2D = false
+ } else if (value !== 0) receiver._is2D = false
+ return (receiver._values[index] = value)
+}
+
+Object.defineProperties(DOMMatrix.prototype, {
+ m11: { get () { return this._values[M11] }, set (v) { return setNumber2D(this, M11, v) } },
+ m12: { get () { return this._values[M12] }, set (v) { return setNumber2D(this, M12, v) } },
+ m13: { get () { return this._values[M13] }, set (v) { return setNumber3D(this, M13, v) } },
+ m14: { get () { return this._values[M14] }, set (v) { return setNumber3D(this, M14, v) } },
+ m21: { get () { return this._values[M21] }, set (v) { return setNumber2D(this, M21, v) } },
+ m22: { get () { return this._values[M22] }, set (v) { return setNumber2D(this, M22, v) } },
+ m23: { get () { return this._values[M23] }, set (v) { return setNumber3D(this, M23, v) } },
+ m24: { get () { return this._values[M24] }, set (v) { return setNumber3D(this, M24, v) } },
+ m31: { get () { return this._values[M31] }, set (v) { return setNumber3D(this, M31, v) } },
+ m32: { get () { return this._values[M32] }, set (v) { return setNumber3D(this, M32, v) } },
+ m33: { get () { return this._values[M33] }, set (v) { return setNumber3D(this, M33, v) } },
+ m34: { get () { return this._values[M34] }, set (v) { return setNumber3D(this, M34, v) } },
+ m41: { get () { return this._values[M41] }, set (v) { return setNumber2D(this, M41, v) } },
+ m42: { get () { return this._values[M42] }, set (v) { return setNumber2D(this, M42, v) } },
+ m43: { get () { return this._values[M43] }, set (v) { return setNumber3D(this, M43, v) } },
+ m44: { get () { return this._values[M44] }, set (v) { return setNumber3D(this, M44, v) } },
+
+ a: { get () { return this.m11 }, set (v) { return (this.m11 = v) } },
+ b: { get () { return this.m12 }, set (v) { return (this.m12 = v) } },
+ c: { get () { return this.m21 }, set (v) { return (this.m21 = v) } },
+ d: { get () { return this.m22 }, set (v) { return (this.m22 = v) } },
+ e: { get () { return this.m41 }, set (v) { return (this.m41 = v) } },
+ f: { get () { return this.m42 }, set (v) { return (this.m42 = v) } },
+
+ is2D: { get () { return this._is2D } }, // read-only
+
+ isIdentity: {
+ get () {
+ const values = this._values
+ return (values[M11] === 1 && values[M12] === 0 && values[M13] === 0 && values[M14] === 0 &&
+ values[M21] === 0 && values[M22] === 1 && values[M23] === 0 && values[M24] === 0 &&
+ values[M31] === 0 && values[M32] === 0 && values[M33] === 1 && values[M34] === 0 &&
+ values[M41] === 0 && values[M42] === 0 && values[M43] === 0 && values[M44] === 1)
+ }
+ }
+})
+
+/**
+ * Instantiates a DOMMatrix, bypassing the constructor.
+ * @param {Float64Array} values Value to assign to `_values`. This is assigned
+ * without copying (okay because all usages are followed by a multiply).
+ */
+function newInstance (values) {
+ const instance = Object.create(DOMMatrix.prototype)
+ instance.constructor = DOMMatrix
+ instance._is2D = true
+ instance._values = values
+ return instance
+}
+
+function multiply (A, B) {
+ const dest = new Float64Array(16)
+ for (let i = 0; i < 4; i++) {
+ for (let j = 0; j < 4; j++) {
+ let sum = 0
+ for (let k = 0; k < 4; k++) {
+ sum += A[i * 4 + k] * B[k * 4 + j]
+ }
+ dest[i * 4 + j] = sum
+ }
+ }
+ return dest
+}
+
+module.exports = { DOMMatrix, DOMPoint }
diff --git a/node_modules/canvas/lib/bindings.js b/node_modules/canvas/lib/bindings.js
new file mode 100644
index 0000000..c638a58
--- /dev/null
+++ b/node_modules/canvas/lib/bindings.js
@@ -0,0 +1,13 @@
+'use strict'
+
+const bindings = require('../build/Release/canvas.node')
+
+module.exports = bindings
+
+bindings.ImageData.prototype.toString = function () {
+ return '[object ImageData]'
+}
+
+bindings.CanvasGradient.prototype.toString = function () {
+ return '[object CanvasGradient]'
+}
diff --git a/node_modules/canvas/lib/canvas.js b/node_modules/canvas/lib/canvas.js
new file mode 100644
index 0000000..03fa1a9
--- /dev/null
+++ b/node_modules/canvas/lib/canvas.js
@@ -0,0 +1,113 @@
+'use strict'
+
+/*!
+ * Canvas
+ * Copyright (c) 2010 LearnBoost <tj@learnboost.com>
+ * MIT Licensed
+ */
+
+const bindings = require('./bindings')
+const Canvas = module.exports = bindings.Canvas
+const Context2d = require('./context2d')
+const PNGStream = require('./pngstream')
+const PDFStream = require('./pdfstream')
+const JPEGStream = require('./jpegstream')
+const FORMATS = ['image/png', 'image/jpeg']
+const util = require('util')
+
+// TODO || is for Node.js pre-v6.6.0
+Canvas.prototype[util.inspect.custom || 'inspect'] = function () {
+ return `[Canvas ${this.width}x${this.height}]`
+}
+
+Canvas.prototype.getContext = function (contextType, contextAttributes) {
+ if (contextType == '2d') {
+ const ctx = this._context2d || (this._context2d = new Context2d(this, contextAttributes))
+ this.context = ctx
+ ctx.canvas = this
+ return ctx
+ }
+}
+
+Canvas.prototype.pngStream =
+Canvas.prototype.createPNGStream = function (options) {
+ return new PNGStream(this, options)
+}
+
+Canvas.prototype.pdfStream =
+Canvas.prototype.createPDFStream = function (options) {
+ return new PDFStream(this, options)
+}
+
+Canvas.prototype.jpegStream =
+Canvas.prototype.createJPEGStream = function (options) {
+ return new JPEGStream(this, options)
+}
+
+Canvas.prototype.toDataURL = function (a1, a2, a3) {
+ // valid arg patterns (args -> [type, opts, fn]):
+ // [] -> ['image/png', null, null]
+ // [qual] -> ['image/png', null, null]
+ // [undefined] -> ['image/png', null, null]
+ // ['image/png'] -> ['image/png', null, null]
+ // ['image/png', qual] -> ['image/png', null, null]
+ // [fn] -> ['image/png', null, fn]
+ // [type, fn] -> [type, null, fn]
+ // [undefined, fn] -> ['image/png', null, fn]
+ // ['image/png', qual, fn] -> ['image/png', null, fn]
+ // ['image/jpeg', fn] -> ['image/jpeg', null, fn]
+ // ['image/jpeg', opts, fn] -> ['image/jpeg', opts, fn]
+ // ['image/jpeg', qual, fn] -> ['image/jpeg', {quality: qual}, fn]
+ // ['image/jpeg', undefined, fn] -> ['image/jpeg', null, fn]
+ // ['image/jpeg'] -> ['image/jpeg', null, fn]
+ // ['image/jpeg', opts] -> ['image/jpeg', opts, fn]
+ // ['image/jpeg', qual] -> ['image/jpeg', {quality: qual}, fn]
+
+ let type = 'image/png'
+ let opts = {}
+ let fn
+
+ if (typeof a1 === 'function') {
+ fn = a1
+ } else {
+ if (typeof a1 === 'string' && FORMATS.includes(a1.toLowerCase())) {
+ type = a1.toLowerCase()
+ }
+
+ if (typeof a2 === 'function') {
+ fn = a2
+ } else {
+ if (typeof a2 === 'object') {
+ opts = a2
+ } else if (typeof a2 === 'number') {
+ opts = { quality: Math.max(0, Math.min(1, a2)) }
+ }
+
+ if (typeof a3 === 'function') {
+ fn = a3
+ } else if (undefined !== a3) {
+ throw new TypeError(`${typeof a3} is not a function`)
+ }
+ }
+ }
+
+ if (this.width === 0 || this.height === 0) {
+ // Per spec, if the bitmap has no pixels, return this string:
+ const str = 'data:,'
+ if (fn) {
+ setTimeout(() => fn(null, str))
+ return
+ } else {
+ return str
+ }
+ }
+
+ if (fn) {
+ this.toBuffer((err, buf) => {
+ if (err) return fn(err)
+ fn(null, `data:${type};base64,${buf.toString('base64')}`)
+ }, type, opts)
+ } else {
+ return `data:${type};base64,${this.toBuffer(type, opts).toString('base64')}`
+ }
+}
diff --git a/node_modules/canvas/lib/context2d.js b/node_modules/canvas/lib/context2d.js
new file mode 100644
index 0000000..75f5063
--- /dev/null
+++ b/node_modules/canvas/lib/context2d.js
@@ -0,0 +1,14 @@
+'use strict'
+
+/*!
+ * Canvas - Context2d
+ * Copyright (c) 2010 LearnBoost <tj@learnboost.com>
+ * MIT Licensed
+ */
+
+const bindings = require('./bindings')
+const parseFont = require('./parse-font')
+const { DOMMatrix } = require('./DOMMatrix')
+
+bindings.CanvasRenderingContext2dInit(DOMMatrix, parseFont)
+module.exports = bindings.CanvasRenderingContext2d
diff --git a/node_modules/canvas/lib/image.js b/node_modules/canvas/lib/image.js
new file mode 100644
index 0000000..4a37849
--- /dev/null
+++ b/node_modules/canvas/lib/image.js
@@ -0,0 +1,96 @@
+'use strict'
+
+/*!
+ * Canvas - Image
+ * Copyright (c) 2010 LearnBoost <tj@learnboost.com>
+ * MIT Licensed
+ */
+
+/**
+ * Module dependencies.
+ */
+
+const bindings = require('./bindings')
+const Image = module.exports = bindings.Image
+const util = require('util')
+
+// Lazily loaded simple-get
+let get
+
+const { GetSource, SetSource } = bindings
+
+Object.defineProperty(Image.prototype, 'src', {
+ /**
+ * src setter. Valid values:
+ * * `data:` URI
+ * * Local file path
+ * * HTTP or HTTPS URL
+ * * Buffer containing image data (i.e. not a `data:` URI stored in a Buffer)
+ *
+ * @param {String|Buffer} val filename, buffer, data URI, URL
+ * @api public
+ */
+ set (val) {
+ if (typeof val === 'string') {
+ if (/^\s*data:/.test(val)) { // data: URI
+ const commaI = val.indexOf(',')
+ // 'base64' must come before the comma
+ const isBase64 = val.lastIndexOf('base64', commaI) !== -1
+ const content = val.slice(commaI + 1)
+ setSource(this, Buffer.from(content, isBase64 ? 'base64' : 'utf8'), val)
+ } else if (/^\s*https?:\/\//.test(val)) { // remote URL
+ const onerror = err => {
+ if (typeof this.onerror === 'function') {
+ this.onerror(err)
+ } else {
+ throw err
+ }
+ }
+
+ if (!get) get = require('simple-get')
+
+ get.concat({
+ url: val,
+ headers: { 'User-Agent': 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/102.0.0.0 Safari/537.36' }
+ }, (err, res, data) => {
+ if (err) return onerror(err)
+
+ if (res.statusCode < 200 || res.statusCode >= 300) {
+ return onerror(new Error(`Server responded with ${res.statusCode}`))
+ }
+
+ setSource(this, data)
+ })
+ } else { // local file path assumed
+ setSource(this, val)
+ }
+ } else if (Buffer.isBuffer(val)) {
+ setSource(this, val)
+ }
+ },
+
+ get () {
+ // TODO https://github.com/Automattic/node-canvas/issues/118
+ return getSource(this)
+ },
+
+ configurable: true
+})
+
+// TODO || is for Node.js pre-v6.6.0
+Image.prototype[util.inspect.custom || 'inspect'] = function () {
+ return '[Image' +
+ (this.complete ? ':' + this.width + 'x' + this.height : '') +
+ (this.src ? ' ' + this.src : '') +
+ (this.complete ? ' complete' : '') +
+ ']'
+}
+
+function getSource (img) {
+ return img._originalSource || GetSource.call(img)
+}
+
+function setSource (img, src, origSrc) {
+ SetSource.call(img, src)
+ img._originalSource = origSrc
+}
diff --git a/node_modules/canvas/lib/jpegstream.js b/node_modules/canvas/lib/jpegstream.js
new file mode 100644
index 0000000..701d2f8
--- /dev/null
+++ b/node_modules/canvas/lib/jpegstream.js
@@ -0,0 +1,41 @@
+'use strict'
+
+/*!
+ * Canvas - JPEGStream
+ * Copyright (c) 2010 LearnBoost <tj@learnboost.com>
+ * MIT Licensed
+ */
+
+const { Readable } = require('stream')
+function noop () {}
+
+class JPEGStream extends Readable {
+ constructor (canvas, options) {
+ super()
+
+ if (canvas.streamJPEGSync === undefined) {
+ throw new Error('node-canvas was built without JPEG support.')
+ }
+
+ this.options = options
+ this.canvas = canvas
+ }
+
+ _read () {
+ // For now we're not controlling the c++ code's data emission, so we only
+ // call canvas.streamJPEGSync once and let it emit data at will.
+ this._read = noop
+
+ this.canvas.streamJPEGSync(this.options, (err, chunk) => {
+ if (err) {
+ this.emit('error', err)
+ } else if (chunk) {
+ this.push(chunk)
+ } else {
+ this.push(null)
+ }
+ })
+ }
+};
+
+module.exports = JPEGStream
diff --git a/node_modules/canvas/lib/parse-font.js b/node_modules/canvas/lib/parse-font.js
new file mode 100644
index 0000000..713db50
--- /dev/null
+++ b/node_modules/canvas/lib/parse-font.js
@@ -0,0 +1,101 @@
+'use strict'
+
+/**
+ * Font RegExp helpers.
+ */
+
+const weights = 'bold|bolder|lighter|[1-9]00'
+const styles = 'italic|oblique'
+const variants = 'small-caps'
+const stretches = 'ultra-condensed|extra-condensed|condensed|semi-condensed|semi-expanded|expanded|extra-expanded|ultra-expanded'
+const units = 'px|pt|pc|in|cm|mm|%|em|ex|ch|rem|q'
+const string = '\'([^\']+)\'|"([^"]+)"|[\\w\\s-]+'
+
+// [ [ <‘font-style’> || <font-variant-css21> || <‘font-weight’> || <‘font-stretch’> ]?
+// <‘font-size’> [ / <‘line-height’> ]? <‘font-family’> ]
+// https://drafts.csswg.org/css-fonts-3/#font-prop
+const weightRe = new RegExp(`(${weights}) +`, 'i')
+const styleRe = new RegExp(`(${styles}) +`, 'i')
+const variantRe = new RegExp(`(${variants}) +`, 'i')
+const stretchRe = new RegExp(`(${stretches}) +`, 'i')
+const sizeFamilyRe = new RegExp(
+ `([\\d\\.]+)(${units}) *((?:${string})( *, *(?:${string}))*)`)
+
+/**
+ * Cache font parsing.
+ */
+
+const cache = {}
+
+const defaultHeight = 16 // pt, common browser default
+
+/**
+ * Parse font `str`.
+ *
+ * @param {String} str
+ * @return {Object} Parsed font. `size` is in device units. `unit` is the unit
+ * appearing in the input string.
+ * @api private
+ */
+
+module.exports = str => {
+ // Cached
+ if (cache[str]) return cache[str]
+
+ // Try for required properties first.
+ const sizeFamily = sizeFamilyRe.exec(str)
+ if (!sizeFamily) return // invalid
+
+ // Default values and required properties
+ const font = {
+ weight: 'normal',
+ style: 'normal',
+ stretch: 'normal',
+ variant: 'normal',
+ size: parseFloat(sizeFamily[1]),
+ unit: sizeFamily[2],
+ family: sizeFamily[3].replace(/["']/g, '').replace(/ *, */g, ',')
+ }
+
+ // Optional, unordered properties.
+ let weight, style, variant, stretch
+ // Stop search at `sizeFamily.index`
+ const substr = str.substring(0, sizeFamily.index)
+ if ((weight = weightRe.exec(substr))) font.weight = weight[1]
+ if ((style = styleRe.exec(substr))) font.style = style[1]
+ if ((variant = variantRe.exec(substr))) font.variant = variant[1]
+ if ((stretch = stretchRe.exec(substr))) font.stretch = stretch[1]
+
+ // Convert to device units. (`font.unit` is the original unit)
+ // TODO: ch, ex
+ switch (font.unit) {
+ case 'pt':
+ font.size /= 0.75
+ break
+ case 'pc':
+ font.size *= 16
+ break
+ case 'in':
+ font.size *= 96
+ break
+ case 'cm':
+ font.size *= 96.0 / 2.54
+ break
+ case 'mm':
+ font.size *= 96.0 / 25.4
+ break
+ case '%':
+ // TODO disabled because existing unit tests assume 100
+ // font.size *= defaultHeight / 100 / 0.75
+ break
+ case 'em':
+ case 'rem':
+ font.size *= defaultHeight / 0.75
+ break
+ case 'q':
+ font.size *= 96 / 25.4 / 4
+ break
+ }
+
+ return (cache[str] = font)
+}
diff --git a/node_modules/canvas/lib/pattern.js b/node_modules/canvas/lib/pattern.js
new file mode 100644
index 0000000..1de4976
--- /dev/null
+++ b/node_modules/canvas/lib/pattern.js
@@ -0,0 +1,17 @@
+'use strict'
+
+/*!
+ * Canvas - CanvasPattern
+ * Copyright (c) 2010 LearnBoost <tj@learnboost.com>
+ * MIT Licensed
+ */
+
+const bindings = require('./bindings')
+const { DOMMatrix } = require('./DOMMatrix')
+
+bindings.CanvasPatternInit(DOMMatrix)
+module.exports = bindings.CanvasPattern
+
+bindings.CanvasPattern.prototype.toString = function () {
+ return '[object CanvasPattern]'
+}
diff --git a/node_modules/canvas/lib/pdfstream.js b/node_modules/canvas/lib/pdfstream.js
new file mode 100644
index 0000000..8643af7
--- /dev/null
+++ b/node_modules/canvas/lib/pdfstream.js
@@ -0,0 +1,35 @@
+'use strict'
+
+/*!
+ * Canvas - PDFStream
+ */
+
+const { Readable } = require('stream')
+function noop () {}
+
+class PDFStream extends Readable {
+ constructor (canvas, options) {
+ super()
+
+ this.canvas = canvas
+ this.options = options
+ }
+
+ _read () {
+ // For now we're not controlling the c++ code's data emission, so we only
+ // call canvas.streamPDFSync once and let it emit data at will.
+ this._read = noop
+
+ this.canvas.streamPDFSync((err, chunk, len) => {
+ if (err) {
+ this.emit('error', err)
+ } else if (len) {
+ this.push(chunk)
+ } else {
+ this.push(null)
+ }
+ }, this.options)
+ }
+}
+
+module.exports = PDFStream
diff --git a/node_modules/canvas/lib/pngstream.js b/node_modules/canvas/lib/pngstream.js
new file mode 100644
index 0000000..db8fdb4
--- /dev/null
+++ b/node_modules/canvas/lib/pngstream.js
@@ -0,0 +1,42 @@
+'use strict'
+
+/*!
+ * Canvas - PNGStream
+ * Copyright (c) 2010 LearnBoost <tj@learnboost.com>
+ * MIT Licensed
+ */
+
+const { Readable } = require('stream')
+function noop () {}
+
+class PNGStream extends Readable {
+ constructor (canvas, options) {
+ super()
+
+ if (options &&
+ options.palette instanceof Uint8ClampedArray &&
+ options.palette.length % 4 !== 0) {
+ throw new Error('Palette length must be a multiple of 4.')
+ }
+ this.canvas = canvas
+ this.options = options || {}
+ }
+
+ _read () {
+ // For now we're not controlling the c++ code's data emission, so we only
+ // call canvas.streamPNGSync once and let it emit data at will.
+ this._read = noop
+
+ this.canvas.streamPNGSync((err, chunk, len) => {
+ if (err) {
+ this.emit('error', err)
+ } else if (len) {
+ this.push(chunk)
+ } else {
+ this.push(null)
+ }
+ }, this.options)
+ }
+}
+
+module.exports = PNGStream
diff --git a/node_modules/canvas/package.json b/node_modules/canvas/package.json
new file mode 100644
index 0000000..77e7232
--- /dev/null
+++ b/node_modules/canvas/package.json
@@ -0,0 +1,72 @@
+{
+ "name": "canvas",
+ "description": "Canvas graphics API backed by Cairo",
+ "version": "2.11.2",
+ "author": "TJ Holowaychuk <tj@learnboost.com>",
+ "main": "index.js",
+ "browser": "browser.js",
+ "contributors": [
+ "Nathan Rajlich <nathan@tootallnate.net>",
+ "Rod Vagg <r@va.gg>",
+ "Juriy Zaytsev <kangax@gmail.com>"
+ ],
+ "keywords": [
+ "canvas",
+ "graphic",
+ "graphics",
+ "pixman",
+ "cairo",
+ "image",
+ "images",
+ "pdf"
+ ],
+ "homepage": "https://github.com/Automattic/node-canvas",
+ "repository": "git://github.com/Automattic/node-canvas.git",
+ "scripts": {
+ "prebenchmark": "node-gyp build",
+ "benchmark": "node benchmarks/run.js",
+ "lint": "standard examples/*.js test/server.js test/public/*.js benchmarks/run.js lib/context2d.js util/has_lib.js browser.js index.js",
+ "test": "mocha test/*.test.js",
+ "pretest-server": "node-gyp build",
+ "test-server": "node test/server.js",
+ "generate-wpt": "node ./test/wpt/generate.js",
+ "test-wpt": "mocha test/wpt/generated/*.js",
+ "install": "node-pre-gyp install --fallback-to-build --update-binary",
+ "dtslint": "dtslint types"
+ },
+ "binary": {
+ "module_name": "canvas",
+ "module_path": "build/Release",
+ "host": "https://github.com/Automattic/node-canvas/releases/download/",
+ "remote_path": "v{version}",
+ "package_name": "{module_name}-v{version}-{node_abi}-{platform}-{libc}-{arch}.tar.gz"
+ },
+ "files": [
+ "binding.gyp",
+ "lib/",
+ "src/",
+ "util/",
+ "types/index.d.ts"
+ ],
+ "types": "types/index.d.ts",
+ "dependencies": {
+ "@mapbox/node-pre-gyp": "^1.0.0",
+ "nan": "^2.17.0",
+ "simple-get": "^3.0.3"
+ },
+ "devDependencies": {
+ "@types/node": "^10.12.18",
+ "assert-rejects": "^1.0.0",
+ "dtslint": "^4.0.7",
+ "express": "^4.16.3",
+ "js-yaml": "^4.1.0",
+ "mocha": "^5.2.0",
+ "pixelmatch": "^4.0.2",
+ "standard": "^12.0.1",
+ "typescript": "^4.2.2"
+ },
+ "engines": {
+ "node": ">=6"
+ },
+ "license": "MIT"
+}
diff --git a/node_modules/canvas/src/Backends.cc b/node_modules/canvas/src/Backends.cc
new file mode 100644
index 0000000..2256c32
--- /dev/null
+++ b/node_modules/canvas/src/Backends.cc
@@ -0,0 +1,18 @@
+#include "Backends.h"
+
+#include "backend/ImageBackend.h"
+#include "backend/PdfBackend.h"
+#include "backend/SvgBackend.h"
+
+using namespace v8;
+
+void Backends::Initialize(Local<Object> target) {
+ Nan::HandleScope scope;
+
+ Local<Object> obj = Nan::New<Object>();
+ ImageBackend::Initialize(obj);
+ PdfBackend::Initialize(obj);
+ SvgBackend::Initialize(obj);
+
+ Nan::Set(target, Nan::New<String>("Backends").ToLocalChecked(), obj).Check();
+}
diff --git a/node_modules/canvas/src/Backends.h b/node_modules/canvas/src/Backends.h
new file mode 100644
index 0000000..dbea053
--- /dev/null
+++ b/node_modules/canvas/src/Backends.h
@@ -0,0 +1,10 @@
+#pragma once
+
+#include "backend/Backend.h"
+#include <nan.h>
+#include <v8.h>
+
+class Backends : public Nan::ObjectWrap {
+ public:
+ static void Initialize(v8::Local<v8::Object> target);
+};
diff --git a/node_modules/canvas/src/Canvas.cc b/node_modules/canvas/src/Canvas.cc
new file mode 100644
index 0000000..860d5bb
--- /dev/null
+++ b/node_modules/canvas/src/Canvas.cc
@@ -0,0 +1,965 @@
+// Copyright (c) 2010 LearnBoost <tj@learnboost.com>
+
+#include "Canvas.h"
+
+#include <algorithm> // std::min
+#include <assert.h>
+#include <cairo-pdf.h>
+#include <cairo-svg.h>
+#include "CanvasRenderingContext2d.h"
+#include "closure.h"
+#include <cstring>
+#include <cctype>
+#include <ctime>
+#include <glib.h>
+#include "PNG.h"
+#include "register_font.h"
+#include <sstream>
+#include <stdlib.h>
+#include <string>
+#include <unordered_set>
+#include "Util.h"
+#include <vector>
+#include "node_buffer.h"
+
+#ifdef HAVE_JPEG
+#include "JPEGStream.h"
+#endif
+
+#include "backend/ImageBackend.h"
+#include "backend/PdfBackend.h"
+#include "backend/SvgBackend.h"
+
+#define GENERIC_FACE_ERROR \
+ "The second argument to registerFont is required, and should be an object " \
+ "with at least a family (string) and optionally weight (string/number) " \
+ "and style (string)."
+
+#define CHECK_RECEIVER(prop) \
+ if (!Canvas::constructor.Get(info.GetIsolate())->HasInstance(info.This())) { \
+ Nan::ThrowTypeError("Method " #prop " called on incompatible receiver"); \
+ return; \
+ }
+
+using namespace v8;
+using namespace std;
+
+Nan::Persistent<FunctionTemplate> Canvas::constructor;
+
+std::vector<FontFace> font_face_list;
+
+/*
+ * Initialize Canvas.
+ */
+
+void
+Canvas::Initialize(Nan::ADDON_REGISTER_FUNCTION_ARGS_TYPE target) {
+ Nan::HandleScope scope;
+
+ // Constructor
+ Local<FunctionTemplate> ctor = Nan::New<FunctionTemplate>(Canvas::New);
+ constructor.Reset(ctor);
+ ctor->InstanceTemplate()->SetInternalFieldCount(1);
+ ctor->SetClassName(Nan::New("Canvas").ToLocalChecked());
+
+ // Prototype
+ Local<ObjectTemplate> proto = ctor->PrototypeTemplate();
+ Nan::SetPrototypeMethod(ctor, "toBuffer", ToBuffer);
+ Nan::SetPrototypeMethod(ctor, "streamPNGSync", StreamPNGSync);
+ Nan::SetPrototypeMethod(ctor, "streamPDFSync", StreamPDFSync);
+#ifdef HAVE_JPEG
+ Nan::SetPrototypeMethod(ctor, "streamJPEGSync", StreamJPEGSync);
+#endif
+ Nan::SetAccessor(proto, Nan::New("type").ToLocalChecked(), GetType);
+ Nan::SetAccessor(proto, Nan::New("stride").ToLocalChecked(), GetStride);
+ Nan::SetAccessor(proto, Nan::New("width").ToLocalChecked(), GetWidth, SetWidth);
+ Nan::SetAccessor(proto, Nan::New("height").ToLocalChecked(), GetHeight, SetHeight);
+
+ Nan::SetTemplate(proto, "PNG_NO_FILTERS", Nan::New<Uint32>(PNG_NO_FILTERS));
+ Nan::SetTemplate(proto, "PNG_FILTER_NONE", Nan::New<Uint32>(PNG_FILTER_NONE));
+ Nan::SetTemplate(proto, "PNG_FILTER_SUB", Nan::New<Uint32>(PNG_FILTER_SUB));
+ Nan::SetTemplate(proto, "PNG_FILTER_UP", Nan::New<Uint32>(PNG_FILTER_UP));
+ Nan::SetTemplate(proto, "PNG_FILTER_AVG", Nan::New<Uint32>(PNG_FILTER_AVG));
+ Nan::SetTemplate(proto, "PNG_FILTER_PAETH", Nan::New<Uint32>(PNG_FILTER_PAETH));
+ Nan::SetTemplate(proto, "PNG_ALL_FILTERS", Nan::New<Uint32>(PNG_ALL_FILTERS));
+
+ // Class methods
+ Nan::SetMethod(ctor, "_registerFont", RegisterFont);
+ Nan::SetMethod(ctor, "_deregisterAllFonts", DeregisterAllFonts);
+
+ Local<Context> ctx = Nan::GetCurrentContext();
+ Nan::Set(target,
+ Nan::New("Canvas").ToLocalChecked(),
+ ctor->GetFunction(ctx).ToLocalChecked());
+}
+
+/*
+ * Initialize a Canvas with the given width and height.
+ */
+
+NAN_METHOD(Canvas::New) {
+ if (!info.IsConstructCall()) {
+ return Nan::ThrowTypeError("Class constructors cannot be invoked without 'new'");
+ }
+
+ Backend* backend = NULL;
+ if (info[0]->IsNumber()) {
+ int width = Nan::To<uint32_t>(info[0]).FromMaybe(0), height = 0;
+
+ if (info[1]->IsNumber()) height = Nan::To<uint32_t>(info[1]).FromMaybe(0);
+
+ if (info[2]->IsString()) {
+ if (0 == strcmp("pdf", *Nan::Utf8String(info[2])))
+ backend = new PdfBackend(width, height);
+ else if (0 == strcmp("svg", *Nan::Utf8String(info[2])))
+ backend = new SvgBackend(width, height);
+ else
+ backend = new ImageBackend(width, height);
+ }
+ else
+ backend = new ImageBackend(width, height);
+ }
+ else if (info[0]->IsObject()) {
+ if (Nan::New(ImageBackend::constructor)->HasInstance(info[0]) ||
+ Nan::New(PdfBackend::constructor)->HasInstance(info[0]) ||
+ Nan::New(SvgBackend::constructor)->HasInstance(info[0])) {
+ backend = Nan::ObjectWrap::Unwrap<Backend>(Nan::To<Object>(info[0]).ToLocalChecked());
+ }else{
+ return Nan::ThrowTypeError("Invalid arguments");
+ }
+ }
+ else {
+ backend = new ImageBackend(0, 0);
+ }
+
+ if (!backend->isSurfaceValid()) {
+ delete backend;
+ return Nan::ThrowError(backend->getError());
+ }
+
+ Canvas* canvas = new Canvas(backend);
+ canvas->Wrap(info.This());
+
+ backend->setCanvas(canvas);
+
+ info.GetReturnValue().Set(info.This());
+}
+
+/*
+ * Get type string.
+ */
+
+NAN_GETTER(Canvas::GetType) {
+ CHECK_RECEIVER(Canvas.GetType);
+ Canvas *canvas = Nan::ObjectWrap::Unwrap<Canvas>(info.This());
+ info.GetReturnValue().Set(Nan::New<String>(canvas->backend()->getName()).ToLocalChecked());
+}
+
+/*
+ * Get stride.
+ */
+NAN_GETTER(Canvas::GetStride) {
+ CHECK_RECEIVER(Canvas.GetStride);
+ Canvas *canvas = Nan::ObjectWrap::Unwrap<Canvas>(info.This());
+ info.GetReturnValue().Set(Nan::New<Number>(canvas->stride()));
+}
+
+/*
+ * Get width.
+ */
+
+NAN_GETTER(Canvas::GetWidth) {
+ CHECK_RECEIVER(Canvas.GetWidth);
+ Canvas *canvas = Nan::ObjectWrap::Unwrap<Canvas>(info.This());
+ info.GetReturnValue().Set(Nan::New<Number>(canvas->getWidth()));
+}
+
+/*
+ * Set width.
+ */
+
+NAN_SETTER(Canvas::SetWidth) {
+ CHECK_RECEIVER(Canvas.SetWidth);
+ if (value->IsNumber()) {
+ Canvas *canvas = Nan::ObjectWrap::Unwrap<Canvas>(info.This());
+ canvas->backend()->setWidth(Nan::To<uint32_t>(value).FromMaybe(0));
+ canvas->resurface(info.This());
+ }
+}
+
+/*
+ * Get height.
+ */
+
+NAN_GETTER(Canvas::GetHeight) {
+ CHECK_RECEIVER(Canvas.GetHeight);
+ Canvas *canvas = Nan::ObjectWrap::Unwrap<Canvas>(info.This());
+ info.GetReturnValue().Set(Nan::New<Number>(canvas->getHeight()));
+}
+
+/*
+ * Set height.
+ */
+
+NAN_SETTER(Canvas::SetHeight) {
+ CHECK_RECEIVER(Canvas.SetHeight);
+ if (value->IsNumber()) {
+ Canvas *canvas = Nan::ObjectWrap::Unwrap<Canvas>(info.This());
+ canvas->backend()->setHeight(Nan::To<uint32_t>(value).FromMaybe(0));
+ canvas->resurface(info.This());
+ }
+}
+
+/*
+ * EIO toBuffer callback.
+ */
+
+void
+Canvas::ToPngBufferAsync(uv_work_t *req) {
+ PngClosure* closure = static_cast<PngClosure*>(req->data);
+
+ closure->status = canvas_write_to_png_stream(
+ closure->canvas->surface(),
+ PngClosure::writeVec,
+ closure);
+}
+
+#ifdef HAVE_JPEG
+void
+Canvas::ToJpegBufferAsync(uv_work_t *req) {
+ JpegClosure* closure = static_cast<JpegClosure*>(req->data);
+ write_to_jpeg_buffer(closure->canvas->surface(), closure);
+}
+#endif
+
+/*
+ * EIO after toBuffer callback.
+ */
+
+void
+Canvas::ToBufferAsyncAfter(uv_work_t *req) {
+ Nan::HandleScope scope;
+ Nan::AsyncResource async("canvas:ToBufferAsyncAfter");
+ Closure* closure = static_cast<Closure*>(req->data);
+ delete req;
+
+ if (closure->status) {
+ Local<Value> argv[1] = { Canvas::Error(closure->status) };
+ closure->cb.Call(1, argv, &async);
+ } else {
+ Local<Object> buf = Nan::CopyBuffer((char*)&closure->vec[0], closure->vec.size()).ToLocalChecked();
+ Local<Value> argv[2] = { Nan::Null(), buf };
+ closure->cb.Call(sizeof argv / sizeof *argv, argv, &async);
+ }
+
+ closure->canvas->Unref();
+ delete closure;
+}
+
+static void parsePNGArgs(Local<Value> arg, PngClosure& pngargs) {
+ if (arg->IsObject()) {
+ Local<Object> obj = Nan::To<Object>(arg).ToLocalChecked();
+
+ Local<Value> cLevel = Nan::Get(obj, Nan::New("compressionLevel").ToLocalChecked()).ToLocalChecked();
+ if (cLevel->IsUint32()) {
+ uint32_t val = Nan::To<uint32_t>(cLevel).FromMaybe(0);
+ // See quote below from spec section 4.12.5.5.
+ if (val <= 9) pngargs.compressionLevel = val;
+ }
+
+ Local<Value> rez = Nan::Get(obj, Nan::New("resolution").ToLocalChecked()).ToLocalChecked();
+ if (rez->IsUint32()) {
+ uint32_t val = Nan::To<uint32_t>(rez).FromMaybe(0);
+ if (val > 0) pngargs.resolution = val;
+ }
+
+ Local<Value> filters = Nan::Get(obj, Nan::New("filters").ToLocalChecked()).ToLocalChecked();
+ if (filters->IsUint32()) pngargs.filters = Nan::To<uint32_t>(filters).FromMaybe(0);
+
+ Local<Value> palette = Nan::Get(obj, Nan::New("palette").ToLocalChecked()).ToLocalChecked();
+ if (palette->IsUint8ClampedArray()) {
+ Local<Uint8ClampedArray> palette_ta = palette.As<Uint8ClampedArray>();
+ pngargs.nPaletteColors = palette_ta->Length();
+ if (pngargs.nPaletteColors % 4 != 0) {
+ throw "Palette length must be a multiple of 4.";
+ }
+ pngargs.nPaletteColors /= 4;
+ Nan::TypedArrayContents<uint8_t> _paletteColors(palette_ta);
+ pngargs.palette = *_paletteColors;
+ // Optional background color index:
+ Local<Value> backgroundIndexVal = Nan::Get(obj, Nan::New("backgroundIndex").ToLocalChecked()).ToLocalChecked();
+ if (backgroundIndexVal->IsUint32()) {
+ pngargs.backgroundIndex = static_cast<uint8_t>(Nan::To<uint32_t>(backgroundIndexVal).FromMaybe(0));
+ }
+ }
+ }
+}
+
+#ifdef HAVE_JPEG
+static void parseJPEGArgs(Local<Value> arg, JpegClosure& jpegargs) {
+ // "If Type(quality) is not Number, or if quality is outside that range, the
+ // user agent must use its default quality value, as if the quality argument
+ // had not been given." - 4.12.5.5
+ if (arg->IsObject()) {
+ Local<Object> obj = Nan::To<Object>(arg).ToLocalChecked();
+
+ Local<Value> qual = Nan::Get(obj, Nan::New("quality").ToLocalChecked()).ToLocalChecked();
+ if (qual->IsNumber()) {
+ double quality = Nan::To<double>(qual).FromMaybe(0);
+ if (quality >= 0.0 && quality <= 1.0) {
+ jpegargs.quality = static_cast<uint32_t>(100.0 * quality);
+ }
+ }
+
+ Local<Value> chroma = Nan::Get(obj, Nan::New("chromaSubsampling").ToLocalChecked()).ToLocalChecked();
+ if (chroma->IsBoolean()) {
+ bool subsample = Nan::To<bool>(chroma).FromMaybe(0);
+ jpegargs.chromaSubsampling = subsample ? 2 : 1;
+ } else if (chroma->IsNumber()) {
+ jpegargs.chromaSubsampling = Nan::To<uint32_t>(chroma).FromMaybe(0);
+ }
+
+ Local<Value> progressive = Nan::Get(obj, Nan::New("progressive").ToLocalChecked()).ToLocalChecked();
+ if (!progressive->IsUndefined()) {
+ jpegargs.progressive = Nan::To<bool>(progressive).FromMaybe(0);
+ }
+ }
+}
+#endif
+
+#if CAIRO_VERSION >= CAIRO_VERSION_ENCODE(1, 16, 0)
+
+static inline void setPdfMetaStr(cairo_surface_t* surf, Local<Object> opts,
+ cairo_pdf_metadata_t t, const char* pName) {
+ auto propName = Nan::New(pName).ToLocalChecked();
+ auto propValue = Nan::Get(opts, propName).ToLocalChecked();
+ if (propValue->IsString()) {
+ // (copies char data)
+ cairo_pdf_surface_set_metadata(surf, t, *Nan::Utf8String(propValue));
+ }
+}
+
+static inline void setPdfMetaDate(cairo_surface_t* surf, Local<Object> opts,
+ cairo_pdf_metadata_t t, const char* pName) {
+ auto propName = Nan::New(pName).ToLocalChecked();
+ auto propValue = Nan::Get(opts, propName).ToLocalChecked();
+ if (propValue->IsDate()) {
+ auto date = static_cast<time_t>(propValue.As<v8::Date>()->ValueOf() / 1000); // ms -> s
+ char buf[sizeof "2011-10-08T07:07:09Z"];
+ strftime(buf, sizeof buf, "%FT%TZ", gmtime(&date));
+ cairo_pdf_surface_set_metadata(surf, t, buf);
+ }
+}
+
+static void setPdfMetadata(Canvas* canvas, Local<Object> opts) {
+ cairo_surface_t* surf = canvas->surface();
+
+ setPdfMetaStr(surf, opts, CAIRO_PDF_METADATA_TITLE, "title");
+ setPdfMetaStr(surf, opts, CAIRO_PDF_METADATA_AUTHOR, "author");
+ setPdfMetaStr(surf, opts, CAIRO_PDF_METADATA_SUBJECT, "subject");
+ setPdfMetaStr(surf, opts, CAIRO_PDF_METADATA_KEYWORDS, "keywords");
+ setPdfMetaStr(surf, opts, CAIRO_PDF_METADATA_CREATOR, "creator");
+ setPdfMetaDate(surf, opts, CAIRO_PDF_METADATA_CREATE_DATE, "creationDate");
+ setPdfMetaDate(surf, opts, CAIRO_PDF_METADATA_MOD_DATE, "modDate");
+}
+
+#endif // CAIRO 16+
+
+/*
+ * Converts/encodes data to a Buffer. Async when a callback function is passed.
+
+ * PDF canvases:
+ (any) => Buffer
+ ("application/pdf", config) => Buffer
+
+ * SVG canvases:
+ (any) => Buffer
+
+ * ARGB data:
+ ("raw") => Buffer
+
+ * PNG-encoded
+ () => Buffer
+ (undefined|"image/png", {compressionLevel?: number, filter?: number}) => Buffer
+ ((err: null|Error, buffer) => any)
+ ((err: null|Error, buffer) => any, undefined|"image/png", {compressionLevel?: number, filter?: number})
+
+ * JPEG-encoded
+ ("image/jpeg") => Buffer
+ ("image/jpeg", {quality?: number, progressive?: Boolean, chromaSubsampling?: Boolean|number}) => Buffer
+ ((err: null|Error, buffer) => any, "image/jpeg")
+ ((err: null|Error, buffer) => any, "image/jpeg", {quality?: number, progressive?: Boolean, chromaSubsampling?: Boolean|number})
+ */
+
+NAN_METHOD(Canvas::ToBuffer) {
+ cairo_status_t status;
+ Canvas *canvas = Nan::ObjectWrap::Unwrap<Canvas>(info.This());
+
+ // Vector canvases, sync only
+ const std::string name = canvas->backend()->getName();
+ if (name == "pdf" || name == "svg") {
+ // mime type may be present, but it's not checked
+ PdfSvgClosure* closure;
+ if (name == "pdf") {
+ closure = static_cast<PdfBackend*>(canvas->backend())->closure();
+#if CAIRO_VERSION >= CAIRO_VERSION_ENCODE(1, 16, 0)
+ if (info[1]->IsObject()) { // toBuffer("application/pdf", config)
+ setPdfMetadata(canvas, Nan::To<Object>(info[1]).ToLocalChecked());
+ }
+#endif // CAIRO 16+
+ } else {
+ closure = static_cast<SvgBackend*>(canvas->backend())->closure();
+ }
+
+ cairo_surface_finish(canvas->surface());
+ Local<Object> buf = Nan::CopyBuffer((char*)&closure->vec[0], closure->vec.size()).ToLocalChecked();
+ info.GetReturnValue().Set(buf);
+ return;
+ }
+
+ // Raw ARGB data -- just a memcpy()
+ if (info[0]->StrictEquals(Nan::New<String>("raw").ToLocalChecked())) {
+ cairo_surface_t *surface = canvas->surface();
+ cairo_surface_flush(surface);
+ if (canvas->nBytes() > node::Buffer::kMaxLength) {
+ Nan::ThrowError("Data exceeds maximum buffer length.");
+ return;
+ }
+ const unsigned char *data = cairo_image_surface_get_data(surface);
+ Isolate* iso = Nan::GetCurrentContext()->GetIsolate();
+ Local<Object> buf = node::Buffer::Copy(iso, reinterpret_cast<const char*>(data), canvas->nBytes()).ToLocalChecked();
+ info.GetReturnValue().Set(buf);
+ return;
+ }
+
+ // Sync PNG, default
+ if (info[0]->IsUndefined() || info[0]->StrictEquals(Nan::New<String>("image/png").ToLocalChecked())) {
+ try {
+ PngClosure closure(canvas);
+ parsePNGArgs(info[1], closure);
+ if (closure.nPaletteColors == 0xFFFFFFFF) {
+ Nan::ThrowError("Palette length must be a multiple of 4.");
+ return;
+ }
+
+ Nan::TryCatch try_catch;
+ status = canvas_write_to_png_stream(canvas->surface(), PngClosure::writeVec, &closure);
+
+ if (try_catch.HasCaught()) {
+ try_catch.ReThrow();
+ } else if (status) {
+ throw status;
+ } else {
+ // TODO it's possible to avoid this copy
+ Local<Object> buf = Nan::CopyBuffer((char *)&closure.vec[0], closure.vec.size()).ToLocalChecked();
+ info.GetReturnValue().Set(buf);
+ }
+ } catch (cairo_status_t ex) {
+ Nan::ThrowError(Canvas::Error(ex));
+ } catch (const char* ex) {
+ Nan::ThrowError(ex);
+ }
+ return;
+ }
+
+ // Async PNG
+ if (info[0]->IsFunction() &&
+ (info[1]->IsUndefined() || info[1]->StrictEquals(Nan::New<String>("image/png").ToLocalChecked()))) {
+
+ PngClosure* closure;
+ try {
+ closure = new PngClosure(canvas);
+ parsePNGArgs(info[2], *closure);
+ } catch (cairo_status_t ex) {
+ Nan::ThrowError(Canvas::Error(ex));
+ return;
+ } catch (const char* ex) {
+ Nan::ThrowError(ex);
+ return;
+ }
+
+ canvas->Ref();
+ closure->cb.Reset(info[0].As<Function>());
+
+ uv_work_t* req = new uv_work_t;
+ req->data = closure;
+ // Make sure the surface exists since we won't have an isolate context in the async block:
+ canvas->surface();
+ uv_queue_work(uv_default_loop(), req, ToPngBufferAsync, (uv_after_work_cb)ToBufferAsyncAfter);
+
+ return;
+ }
+
+#ifdef HAVE_JPEG
+ // Sync JPEG
+ Local<Value> jpegStr = Nan::New<String>("image/jpeg").ToLocalChecked();
+ if (info[0]->StrictEquals(jpegStr)) {
+ try {
+ JpegClosure closure(canvas);
+ parseJPEGArgs(info[1], closure);
+
+ Nan::TryCatch try_catch;
+ write_to_jpeg_buffer(canvas->surface(), &closure);
+
+ if (try_catch.HasCaught()) {
+ try_catch.ReThrow();
+ } else {
+ // TODO it's possible to avoid this copy.
+ Local<Object> buf = Nan::CopyBuffer((char *)&closure.vec[0], closure.vec.size()).ToLocalChecked();
+ info.GetReturnValue().Set(buf);
+ }
+ } catch (cairo_status_t ex) {
+ Nan::ThrowError(Canvas::Error(ex));
+ }
+ return;
+ }
+
+ // Async JPEG
+ if (info[0]->IsFunction() && info[1]->StrictEquals(jpegStr)) {
+ JpegClosure* closure = new JpegClosure(canvas);
+ parseJPEGArgs(info[2], *closure);
+
+ canvas->Ref();
+ closure->cb.Reset(info[0].As<Function>());
+
+ uv_work_t* req = new uv_work_t;
+ req->data = closure;
+ // Make sure the surface exists since we won't have an isolate context in the async block:
+ canvas->surface();
+ uv_queue_work(uv_default_loop(), req, ToJpegBufferAsync, (uv_after_work_cb)ToBufferAsyncAfter);
+
+ return;
+ }
+#endif
+}
+
+/*
+ * Canvas::StreamPNG callback.
+ */
+
+static cairo_status_t
+streamPNG(void *c, const uint8_t *data, unsigned len) {
+ Nan::HandleScope scope;
+ Nan::AsyncResource async("canvas:StreamPNG");
+ PngClosure* closure = (PngClosure*) c;
+ Local<Object> buf = Nan::CopyBuffer((char *)data, len).ToLocalChecked();
+ Local<Value> argv[3] = {
+ Nan::Null()
+ , buf
+ , Nan::New<Number>(len) };
+ closure->cb.Call(sizeof argv / sizeof *argv, argv, &async);
+ return CAIRO_STATUS_SUCCESS;
+}
+
+/*
+ * Stream PNG data synchronously. TODO async
+ * StreamPngSync(this, options: {palette?: Uint8ClampedArray, backgroundIndex?: uint32, compressionLevel: uint32, filters: uint32})
+ */
+
+NAN_METHOD(Canvas::StreamPNGSync) {
+ if (!info[0]->IsFunction())
+ return Nan::ThrowTypeError("callback function required");
+
+ Canvas *canvas = Nan::ObjectWrap::Unwrap<Canvas>(info.This());
+
+ PngClosure closure(canvas);
+ parsePNGArgs(info[1], closure);
+
+ closure.cb.Reset(Local<Function>::Cast(info[0]));
+
+ Nan::TryCatch try_catch;
+
+ cairo_status_t status = canvas_write_to_png_stream(canvas->surface(), streamPNG, &closure);
+
+ if (try_catch.HasCaught()) {
+ try_catch.ReThrow();
+ return;
+ } else if (status) {
+ Local<Value> argv[1] = { Canvas::Error(status) };
+ Nan::Call(closure.cb, Nan::GetCurrentContext()->Global(), sizeof argv / sizeof *argv, argv);
+ } else {
+ Local<Value> argv[3] = {
+ Nan::Null()
+ , Nan::Null()
+ , Nan::New<Uint32>(0) };
+ Nan::Call(closure.cb, Nan::GetCurrentContext()->Global(), sizeof argv / sizeof *argv, argv);
+ }
+ return;
+}
+
+
+struct PdfStreamInfo {
+ Local<Function> fn;
+ uint32_t len;
+ uint8_t* data;
+};
+
+
+/*
+ * Canvas::StreamPDF FreeCallback
+ */
+
+void stream_pdf_free(char *, void *) {}
+
+/*
+ * Canvas::StreamPDF callback.
+ */
+
+static cairo_status_t
+streamPDF(void *c, const uint8_t *data, unsigned len) {
+ Nan::HandleScope scope;
+ Nan::AsyncResource async("canvas:StreamPDF");
+ PdfStreamInfo* streaminfo = static_cast<PdfStreamInfo*>(c);
+ // TODO this is technically wrong, we're returning a pointer to the data in a
+ // vector in a class with automatic storage duration. If the canvas goes out
+ // of scope while we're in the handler, a use-after-free could happen.
+ Local<Object> buf = Nan::NewBuffer(const_cast<char *>(reinterpret_cast<const char *>(data)), len, stream_pdf_free, 0).ToLocalChecked();
+ Local<Value> argv[3] = {
+ Nan::Null()
+ , buf
+ , Nan::New<Number>(len) };
+ async.runInAsyncScope(Nan::GetCurrentContext()->Global(), streaminfo->fn, sizeof argv / sizeof *argv, argv);
+ return CAIRO_STATUS_SUCCESS;
+}
+
+
+cairo_status_t canvas_write_to_pdf_stream(cairo_surface_t *surface, cairo_write_func_t write_func, PdfStreamInfo* streaminfo) {
+ size_t whole_chunks = streaminfo->len / PAGE_SIZE;
+ size_t remainder = streaminfo->len - whole_chunks * PAGE_SIZE;
+
+ for (size_t i = 0; i < whole_chunks; ++i) {
+ write_func(streaminfo, &streaminfo->data[i * PAGE_SIZE], PAGE_SIZE);
+ }
+
+ if (remainder) {
+ write_func(streaminfo, &streaminfo->data[whole_chunks * PAGE_SIZE], remainder);
+ }
+
+ return CAIRO_STATUS_SUCCESS;
+}
+
+/*
+ * Stream PDF data synchronously.
+ */
+
+NAN_METHOD(Canvas::StreamPDFSync) {
+ if (!info[0]->IsFunction())
+ return Nan::ThrowTypeError("callback function required");
+
+ Canvas *canvas = Nan::ObjectWrap::Unwrap<Canvas>(info.Holder());
+
+ if (canvas->backend()->getName() != "pdf")
+ return Nan::ThrowTypeError("wrong canvas type");
+
+#if CAIRO_VERSION >= CAIRO_VERSION_ENCODE(1, 16, 0)
+ if (info[1]->IsObject()) {
+ setPdfMetadata(canvas, Nan::To<Object>(info[1]).ToLocalChecked());
+ }
+#endif
+
+ cairo_surface_finish(canvas->surface());
+
+ PdfSvgClosure* closure = static_cast<PdfBackend*>(canvas->backend())->closure();
+ Local<Function> fn = info[0].As<Function>();
+ PdfStreamInfo streaminfo;
+ streaminfo.fn = fn;
+ streaminfo.data = &closure->vec[0];
+ streaminfo.len = closure->vec.size();
+
+ Nan::TryCatch try_catch;
+
+ cairo_status_t status = canvas_write_to_pdf_stream(canvas->surface(), streamPDF, &streaminfo);
+
+ if (try_catch.HasCaught()) {
+ try_catch.ReThrow();
+ } else if (status) {
+ Local<Value> error = Canvas::Error(status);
+ Nan::Call(fn, Nan::GetCurrentContext()->Global(), 1, &error);
+ } else {
+ Local<Value> argv[3] = {
+ Nan::Null()
+ , Nan::Null()
+ , Nan::New<Uint32>(0) };
+ Nan::Call(fn, Nan::GetCurrentContext()->Global(), sizeof argv / sizeof *argv, argv);
+ }
+}
+
+/*
+ * Stream JPEG data synchronously.
+ */
+
+#ifdef HAVE_JPEG
+static uint32_t getSafeBufSize(Canvas* canvas) {
+ // Don't allow the buffer size to exceed the size of the canvas (#674)
+ // TODO not sure if this is really correct, but it fixed #674
+ return (std::min)(canvas->getWidth() * canvas->getHeight() * 4, static_cast<int>(PAGE_SIZE));
+}
+
+NAN_METHOD(Canvas::StreamJPEGSync) {
+ if (!info[1]->IsFunction())
+ return Nan::ThrowTypeError("callback function required");
+
+ Canvas *canvas = Nan::ObjectWrap::Unwrap<Canvas>(info.This());
+ JpegClosure closure(canvas);
+ parseJPEGArgs(info[0], closure);
+ closure.cb.Reset(Local<Function>::Cast(info[1]));
+
+ Nan::TryCatch try_catch;
+ uint32_t bufsize = getSafeBufSize(canvas);
+ write_to_jpeg_stream(canvas->surface(), bufsize, &closure);
+
+ if (try_catch.HasCaught()) {
+ try_catch.ReThrow();
+ }
+ return;
+}
+#endif
+
+char *
+str_value(Local<Value> val, const char *fallback, bool can_be_number) {
+ if (val->IsString() || (can_be_number && val->IsNumber())) {
+ return strdup(*Nan::Utf8String(val));
+ } else if (fallback) {
+ return strdup(fallback);
+ } else {
+ return NULL;
+ }
+}
+
+NAN_METHOD(Canvas::RegisterFont) {
+ if (!info[0]->IsString()) {
+ return Nan::ThrowError("Wrong argument type");
+ } else if (!info[1]->IsObject()) {
+ return Nan::ThrowError(GENERIC_FACE_ERROR);
+ }
+
+ Nan::Utf8String filePath(info[0]);
+ PangoFontDescription *sys_desc = get_pango_font_description((unsigned char *) *filePath);
+
+ if (!sys_desc) return Nan::ThrowError("Could not parse font file");
+
+ PangoFontDescription *user_desc = pango_font_description_new();
+
+ // now check the attrs, there are many ways to be wrong
+ Local<Object> js_user_desc = Nan::To<Object>(info[1]).ToLocalChecked();
+ Local<String> family_prop = Nan::New<String>("family").ToLocalChecked();
+ Local<String> weight_prop = Nan::New<String>("weight").ToLocalChecked();
+ Local<String> style_prop = Nan::New<String>("style").ToLocalChecked();
+
+ char *family = str_value(Nan::Get(js_user_desc, family_prop).ToLocalChecked(), NULL, false);
+ char *weight = str_value(Nan::Get(js_user_desc, weight_prop).ToLocalChecked(), "normal", true);
+ char *style = str_value(Nan::Get(js_user_desc, style_prop).ToLocalChecked(), "normal", false);
+
+ if (family && weight && style) {
+ pango_font_description_set_weight(user_desc, Canvas::GetWeightFromCSSString(weight));
+ pango_font_description_set_style(user_desc, Canvas::GetStyleFromCSSString(style));
+ pango_font_description_set_family(user_desc, family);
+
+ auto found = std::find_if(font_face_list.begin(), font_face_list.end(), [&](FontFace& f) {
+ return pango_font_description_equal(f.sys_desc, sys_desc);
+ });
+
+ if (found != font_face_list.end()) {
+ pango_font_description_free(found->user_desc);
+ found->user_desc = user_desc;
+ } else if (register_font((unsigned char *) *filePath)) {
+ FontFace face;
+ face.user_desc = user_desc;
+ face.sys_desc = sys_desc;
+ strncpy((char *)face.file_path, (char *) *filePath, 1023);
+ font_face_list.push_back(face);
+ } else {
+ pango_font_description_free(user_desc);
+ Nan::ThrowError("Could not load font to the system's font host");
+ }
+ } else {
+ pango_font_description_free(user_desc);
+ Nan::ThrowError(GENERIC_FACE_ERROR);
+ }
+
+ free(family);
+ free(weight);
+ free(style);
+}
+
+NAN_METHOD(Canvas::DeregisterAllFonts) {
+ // Unload all fonts from pango to free up memory
+ bool success = true;
+
+ std::for_each(font_face_list.begin(), font_face_list.end(), [&](FontFace& f) {
+ if (!deregister_font( (unsigned char *)f.file_path )) success = false;
+ pango_font_description_free(f.user_desc);
+ pango_font_description_free(f.sys_desc);
+ });
+
+ font_face_list.clear();
+ if (!success) Nan::ThrowError("Could not deregister one or more fonts");
+}
+
+/*
+ * Initialize cairo surface.
+ */
+
+Canvas::Canvas(Backend* backend) : ObjectWrap() {
+ _backend = backend;
+}
+
+/*
+ * Destroy cairo surface.
+ */
+
+Canvas::~Canvas() {
+ if (_backend != NULL) {
+ delete _backend;
+ }
+}
+
+/*
+ * Get a PangoStyle from a CSS string (like "italic")
+ */
+
+PangoStyle
+Canvas::GetStyleFromCSSString(const char *style) {
+ PangoStyle s = PANGO_STYLE_NORMAL;
+
+ if (strlen(style) > 0) {
+ if (0 == strcmp("italic", style)) {
+ s = PANGO_STYLE_ITALIC;
+ } else if (0 == strcmp("oblique", style)) {
+ s = PANGO_STYLE_OBLIQUE;
+ }
+ }
+
+ return s;
+}
+
+/*
+ * Get a PangoWeight from a CSS string ("bold", "100", etc)
+ */
+
+PangoWeight
+Canvas::GetWeightFromCSSString(const char *weight) {
+ PangoWeight w = PANGO_WEIGHT_NORMAL;
+
+ if (strlen(weight) > 0) {
+ if (0 == strcmp("bold", weight)) {
+ w = PANGO_WEIGHT_BOLD;
+ } else if (0 == strcmp("100", weight)) {
+ w = PANGO_WEIGHT_THIN;
+ } else if (0 == strcmp("200", weight)) {
+ w = PANGO_WEIGHT_ULTRALIGHT;
+ } else if (0 == strcmp("300", weight)) {
+ w = PANGO_WEIGHT_LIGHT;
+ } else if (0 == strcmp("400", weight)) {
+ w = PANGO_WEIGHT_NORMAL;
+ } else if (0 == strcmp("500", weight)) {
+ w = PANGO_WEIGHT_MEDIUM;
+ } else if (0 == strcmp("600", weight)) {
+ w = PANGO_WEIGHT_SEMIBOLD;
+ } else if (0 == strcmp("700", weight)) {
+ w = PANGO_WEIGHT_BOLD;
+ } else if (0 == strcmp("800", weight)) {
+ w = PANGO_WEIGHT_ULTRABOLD;
+ } else if (0 == strcmp("900", weight)) {
+ w = PANGO_WEIGHT_HEAVY;
+ }
+ }
+
+ return w;
+}
+
+/*
+ * Given a user description, return a description that will select the
+ * font either from the system or @font-face
+ */
+
+PangoFontDescription *
+Canvas::ResolveFontDescription(const PangoFontDescription *desc) {
+ // One of the user-specified families could map to multiple SFNT family names
+ // if someone registered two different fonts under the same family name.
+ // https://drafts.csswg.org/css-fonts-3/#font-style-matching
+ FontFace best;
+ istringstream families(pango_font_description_get_family(desc));
+ unordered_set<string> seen_families;
+ string resolved_families;
+ bool first = true;
+
+ for (string family; getline(families, family, ','); ) {
+ string renamed_families;
+ for (auto& ff : font_face_list) {
+ string pangofamily = string(pango_font_description_get_family(ff.user_desc));
+ if (streq_casein(family, pangofamily)) {
+ const char* sys_desc_family_name = pango_font_description_get_family(ff.sys_desc);
+ bool unseen = seen_families.find(sys_desc_family_name) == seen_families.end();
+ bool better = best.user_desc == nullptr || pango_font_description_better_match(desc, best.user_desc, ff.user_desc);
+
+ // Avoid sending duplicate SFNT font names due to a bug in Pango for macOS:
+ // https://bugzilla.gnome.org/show_bug.cgi?id=762873
+ if (unseen) {
+ seen_families.insert(sys_desc_family_name);
+
+ if (better) {
+ renamed_families = string(sys_desc_family_name) + (renamed_families.size() ? "," : "") + renamed_families;
+ } else {
+ renamed_families = renamed_families + (renamed_families.size() ? "," : "") + sys_desc_family_name;
+ }
+ }
+
+ if (first && better) best = ff;
+ }
+ }
+
+ if (resolved_families.size()) resolved_families += ',';
+ resolved_families += renamed_families.size() ? renamed_families : family;
+ first = false;
+ }
+
+ PangoFontDescription* ret = pango_font_description_copy(best.sys_desc ? best.sys_desc : desc);
+ pango_font_description_set_family(ret, resolved_families.c_str());
+
+ return ret;
+}
+
+/*
+ * Re-alloc the surface, destroying the previous.
+ */
+
+void
+Canvas::resurface(Local<Object> canvas) {
+ Nan::HandleScope scope;
+ Local<Value> context;
+
+ backend()->recreateSurface();
+
+ // Reset context
+ context = Nan::Get(canvas, Nan::New<String>("context").ToLocalChecked()).ToLocalChecked();
+ if (!context->IsUndefined()) {
+ Context2d *context2d = ObjectWrap::Unwrap<Context2d>(Nan::To<Object>(context).ToLocalChecked());
+ cairo_t *prev = context2d->context();
+ context2d->setContext(createCairoContext());
+ context2d->resetState();
+ cairo_destroy(prev);
+ }
+}
+
+/**
+ * Wrapper around cairo_create()
+ * (do not call cairo_create directly, call this instead)
+ */
+cairo_t*
+Canvas::createCairoContext() {
+ cairo_t* ret = cairo_create(surface());
+ cairo_set_line_width(ret, 1); // Cairo defaults to 2
+ return ret;
+}
+
+/*
+ * Construct an Error from the given cairo status.
+ */
+
+Local<Value>
+Canvas::Error(cairo_status_t status) {
+ return Exception::Error(Nan::New<String>(cairo_status_to_string(status)).ToLocalChecked());
+}
+
+#undef CHECK_RECEIVER
diff --git a/node_modules/canvas/src/Canvas.h b/node_modules/canvas/src/Canvas.h
new file mode 100644
index 0000000..60d3b42
--- /dev/null
+++ b/node_modules/canvas/src/Canvas.h
@@ -0,0 +1,96 @@
+// Copyright (c) 2010 LearnBoost <tj@learnboost.com>
+
+#pragma once
+
+#include "backend/Backend.h"
+#include <cairo.h>
+#include "dll_visibility.h"
+#include <nan.h>
+#include <pango/pangocairo.h>
+#include <v8.h>
+#include <vector>
+#include <cstddef>
+
+/*
+ * FontFace describes a font file in terms of one PangoFontDescription that
+ * will resolve to it and one that the user describes it as (like @font-face)
+ */
+class FontFace {
+ public:
+ PangoFontDescription *sys_desc = nullptr;
+ PangoFontDescription *user_desc = nullptr;
+ unsigned char file_path[1024];
+};
+
+enum text_baseline_t : uint8_t {
+ TEXT_BASELINE_ALPHABETIC = 0,
+ TEXT_BASELINE_TOP = 1,
+ TEXT_BASELINE_BOTTOM = 2,
+ TEXT_BASELINE_MIDDLE = 3,
+ TEXT_BASELINE_IDEOGRAPHIC = 4,
+ TEXT_BASELINE_HANGING = 5
+};
+
+enum text_align_t : int8_t {
+ TEXT_ALIGNMENT_LEFT = -1,
+ TEXT_ALIGNMENT_CENTER = 0,
+ TEXT_ALIGNMENT_RIGHT = 1,
+ // Currently same as LEFT and RIGHT without RTL support:
+ TEXT_ALIGNMENT_START = -2,
+ TEXT_ALIGNMENT_END = 2
+};
+
+enum canvas_draw_mode_t : uint8_t {
+ TEXT_DRAW_PATHS,
+ TEXT_DRAW_GLYPHS
+};
+
+/*
+ * Canvas.
+ */
+
+class Canvas: public Nan::ObjectWrap {
+ public:
+ static Nan::Persistent<v8::FunctionTemplate> constructor;
+ static void Initialize(Nan::ADDON_REGISTER_FUNCTION_ARGS_TYPE target);
+ static NAN_METHOD(New);
+ static NAN_METHOD(ToBuffer);
+ static NAN_GETTER(GetType);
+ static NAN_GETTER(GetStride);
+ static NAN_GETTER(GetWidth);
+ static NAN_GETTER(GetHeight);
+ static NAN_SETTER(SetWidth);
+ static NAN_SETTER(SetHeight);
+ static NAN_METHOD(StreamPNGSync);
+ static NAN_METHOD(StreamPDFSync);
+ static NAN_METHOD(StreamJPEGSync);
+ static NAN_METHOD(RegisterFont);
+ static NAN_METHOD(DeregisterAllFonts);
+ static v8::Local<v8::Value> Error(cairo_status_t status);
+ static void ToPngBufferAsync(uv_work_t *req);
+ static void ToJpegBufferAsync(uv_work_t *req);
+ static void ToBufferAsyncAfter(uv_work_t *req);
+ static PangoWeight GetWeightFromCSSString(const char *weight);
+ static PangoStyle GetStyleFromCSSString(const char *style);
+ static PangoFontDescription *ResolveFontDescription(const PangoFontDescription *desc);
+
+ DLL_PUBLIC inline Backend* backend() { return _backend; }
+ DLL_PUBLIC inline cairo_surface_t* surface(){ return backend()->getSurface(); }
+ cairo_t* createCairoContext();
+
+ DLL_PUBLIC inline uint8_t *data(){ return cairo_image_surface_get_data(surface()); }
+ DLL_PUBLIC inline int stride(){ return cairo_image_surface_get_stride(surface()); }
+ DLL_PUBLIC inline std::size_t nBytes(){
+ return static_cast<std::size_t>(getHeight()) * stride();
+ }
+
+ DLL_PUBLIC inline int getWidth() { return backend()->getWidth(); }
+ DLL_PUBLIC inline int getHeight() { return backend()->getHeight(); }
+
+ Canvas(Backend* backend);
+ void resurface(v8::Local<v8::Object> canvas);
+
+ private:
+ ~Canvas();
+ Backend* _backend;
+};
diff --git a/node_modules/canvas/src/CanvasError.h b/node_modules/canvas/src/CanvasError.h
new file mode 100644
index 0000000..cb751e3
--- /dev/null
+++ b/node_modules/canvas/src/CanvasError.h
@@ -0,0 +1,23 @@
+#pragma once
+
+#include <string>
+
+class CanvasError {
+ public:
+ std::string message;
+ std::string syscall;
+ std::string path;
+ int cerrno = 0;
+ void set(const char* iMessage = NULL, const char* iSyscall = NULL, int iErrno = 0, const char* iPath = NULL) {
+ if (iMessage) message.assign(iMessage);
+ if (iSyscall) syscall.assign(iSyscall);
+ cerrno = iErrno;
+ if (iPath) path.assign(iPath);
+ }
+ void reset() {
+ message.clear();
+ syscall.clear();
+ path.clear();
+ cerrno = 0;
+ }
+};
diff --git a/node_modules/canvas/src/CanvasGradient.cc b/node_modules/canvas/src/CanvasGradient.cc
new file mode 100644
index 0000000..280fc2e
--- /dev/null
+++ b/node_modules/canvas/src/CanvasGradient.cc
@@ -0,0 +1,123 @@
+// Copyright (c) 2010 LearnBoost <tj@learnboost.com>
+
+#include "CanvasGradient.h"
+
+#include "Canvas.h"
+#include "color.h"
+
+using namespace v8;
+
+Nan::Persistent<FunctionTemplate> Gradient::constructor;
+
+/*
+ * Initialize CanvasGradient.
+ */
+
+void
+Gradient::Initialize(Nan::ADDON_REGISTER_FUNCTION_ARGS_TYPE target) {
+ Nan::HandleScope scope;
+
+ // Constructor
+ Local<FunctionTemplate> ctor = Nan::New<FunctionTemplate>(Gradient::New);
+ constructor.Reset(ctor);
+ ctor->InstanceTemplate()->SetInternalFieldCount(1);
+ ctor->SetClassName(Nan::New("CanvasGradient").ToLocalChecked());
+
+ // Prototype
+ Nan::SetPrototypeMethod(ctor, "addColorStop", AddColorStop);
+ Local<Context> ctx = Nan::GetCurrentContext();
+ Nan::Set(target,
+ Nan::New("CanvasGradient").ToLocalChecked(),
+ ctor->GetFunction(ctx).ToLocalChecked());
+}
+
+/*
+ * Initialize a new CanvasGradient.
+ */
+
+NAN_METHOD(Gradient::New) {
+ if (!info.IsConstructCall()) {
+ return Nan::ThrowTypeError("Class constructors cannot be invoked without 'new'");
+ }
+
+ // Linear
+ if (4 == info.Length()) {
+ Gradient *grad = new Gradient(
+ Nan::To<double>(info[0]).FromMaybe(0)
+ , Nan::To<double>(info[1]).FromMaybe(0)
+ , Nan::To<double>(info[2]).FromMaybe(0)
+ , Nan::To<double>(info[3]).FromMaybe(0));
+ grad->Wrap(info.This());
+ info.GetReturnValue().Set(info.This());
+ return;
+ }
+
+ // Radial
+ if (6 == info.Length()) {
+ Gradient *grad = new Gradient(
+ Nan::To<double>(info[0]).FromMaybe(0)
+ , Nan::To<double>(info[1]).FromMaybe(0)
+ , Nan::To<double>(info[2]).FromMaybe(0)
+ , Nan::To<double>(info[3]).FromMaybe(0)
+ , Nan::To<double>(info[4]).FromMaybe(0)
+ , Nan::To<double>(info[5]).FromMaybe(0));
+ grad->Wrap(info.This());
+ info.GetReturnValue().Set(info.This());
+ return;
+ }
+
+ return Nan::ThrowTypeError("invalid arguments");
+}
+
+/*
+ * Add color stop.
+ */
+
+NAN_METHOD(Gradient::AddColorStop) {
+ if (!info[0]->IsNumber())
+ return Nan::ThrowTypeError("offset required");
+ if (!info[1]->IsString())
+ return Nan::ThrowTypeError("color string required");
+
+ Gradient *grad = Nan::ObjectWrap::Unwrap<Gradient>(info.This());
+ short ok;
+ Nan::Utf8String str(info[1]);
+ uint32_t rgba = rgba_from_string(*str, &ok);
+
+ if (ok) {
+ rgba_t color = rgba_create(rgba);
+ cairo_pattern_add_color_stop_rgba(
+ grad->pattern()
+ , Nan::To<double>(info[0]).FromMaybe(0)
+ , color.r
+ , color.g
+ , color.b
+ , color.a);
+ } else {
+ return Nan::ThrowTypeError("parse color failed");
+ }
+}
+
+/*
+ * Initialize linear gradient.
+ */
+
+Gradient::Gradient(double x0, double y0, double x1, double y1) {
+ _pattern = cairo_pattern_create_linear(x0, y0, x1, y1);
+}
+
+/*
+ * Initialize radial gradient.
+ */
+
+Gradient::Gradient(double x0, double y0, double r0, double x1, double y1, double r1) {
+ _pattern = cairo_pattern_create_radial(x0, y0, r0, x1, y1, r1);
+}
+
+/*
+ * Destroy the pattern.
+ */
+
+Gradient::~Gradient() {
+ cairo_pattern_destroy(_pattern);
+}
diff --git a/node_modules/canvas/src/CanvasGradient.h b/node_modules/canvas/src/CanvasGradient.h
new file mode 100644
index 0000000..b6902c4
--- /dev/null
+++ b/node_modules/canvas/src/CanvasGradient.h
@@ -0,0 +1,22 @@
+// Copyright (c) 2010 LearnBoost <tj@learnboost.com>
+
+#pragma once
+
+#include <nan.h>
+#include <v8.h>
+#include <cairo.h>
+
+class Gradient: public Nan::ObjectWrap {
+ public:
+ static Nan::Persistent<v8::FunctionTemplate> constructor;
+ static void Initialize(Nan::ADDON_REGISTER_FUNCTION_ARGS_TYPE target);
+ static NAN_METHOD(New);
+ static NAN_METHOD(AddColorStop);
+ Gradient(double x0, double y0, double x1, double y1);
+ Gradient(double x0, double y0, double r0, double x1, double y1, double r1);
+ inline cairo_pattern_t *pattern(){ return _pattern; }
+
+ private:
+ ~Gradient();
+ cairo_pattern_t *_pattern;
+};
diff --git a/node_modules/canvas/src/CanvasPattern.cc b/node_modules/canvas/src/CanvasPattern.cc
new file mode 100644
index 0000000..fa3848b
--- /dev/null
+++ b/node_modules/canvas/src/CanvasPattern.cc
@@ -0,0 +1,136 @@
+// Copyright (c) 2010 LearnBoost <tj@learnboost.com>
+
+#include "CanvasPattern.h"
+
+#include "Canvas.h"
+#include "Image.h"
+
+using namespace v8;
+
+const cairo_user_data_key_t *pattern_repeat_key;
+
+Nan::Persistent<FunctionTemplate> Pattern::constructor;
+Nan::Persistent<Function> Pattern::_DOMMatrix;
+
+/*
+ * Initialize CanvasPattern.
+ */
+
+void
+Pattern::Initialize(Nan::ADDON_REGISTER_FUNCTION_ARGS_TYPE target) {
+ Nan::HandleScope scope;
+
+ // Constructor
+ Local<FunctionTemplate> ctor = Nan::New<FunctionTemplate>(Pattern::New);
+ constructor.Reset(ctor);
+ ctor->InstanceTemplate()->SetInternalFieldCount(1);
+ ctor->SetClassName(Nan::New("CanvasPattern").ToLocalChecked());
+ Nan::SetPrototypeMethod(ctor, "setTransform", SetTransform);
+
+ // Prototype
+ Local<Context> ctx = Nan::GetCurrentContext();
+ Nan::Set(target, Nan::New("CanvasPattern").ToLocalChecked(), ctor->GetFunction(ctx).ToLocalChecked());
+ Nan::Set(target, Nan::New("CanvasPatternInit").ToLocalChecked(), Nan::New<Function>(SaveExternalModules));
+}
+
+/*
+ * Save some external modules as private references.
+ */
+
+NAN_METHOD(Pattern::SaveExternalModules) {
+ _DOMMatrix.Reset(Nan::To<Function>(info[0]).ToLocalChecked());
+}
+
+/*
+ * Initialize a new CanvasPattern.
+ */
+
+NAN_METHOD(Pattern::New) {
+ if (!info.IsConstructCall()) {
+ return Nan::ThrowTypeError("Class constructors cannot be invoked without 'new'");
+ }
+
+ cairo_surface_t *surface;
+
+ Local<Object> obj = Nan::To<Object>(info[0]).ToLocalChecked();
+
+ // Image
+ if (Nan::New(Image::constructor)->HasInstance(obj)) {
+ Image *img = Nan::ObjectWrap::Unwrap<Image>(obj);
+ if (!img->isComplete()) {
+ return Nan::ThrowError("Image given has not completed loading");
+ }
+ surface = img->surface();
+
+ // Canvas
+ } else if (Nan::New(Canvas::constructor)->HasInstance(obj)) {
+ Canvas *canvas = Nan::ObjectWrap::Unwrap<Canvas>(obj);
+ surface = canvas->surface();
+ // Invalid
+ } else {
+ return Nan::ThrowTypeError("Image or Canvas expected");
+ }
+ repeat_type_t repeat = REPEAT;
+ if (0 == strcmp("no-repeat", *Nan::Utf8String(info[1]))) {
+ repeat = NO_REPEAT;
+ } else if (0 == strcmp("repeat-x", *Nan::Utf8String(info[1]))) {
+ repeat = REPEAT_X;
+ } else if (0 == strcmp("repeat-y", *Nan::Utf8String(info[1]))) {
+ repeat = REPEAT_Y;
+ }
+ Pattern *pattern = new Pattern(surface, repeat);
+ pattern->Wrap(info.This());
+ info.GetReturnValue().Set(info.This());
+}
+
+/*
+ * Set the pattern-space to user-space transform.
+ */
+NAN_METHOD(Pattern::SetTransform) {
+ Pattern *pattern = Nan::ObjectWrap::Unwrap<Pattern>(info.This());
+ Local<Context> ctx = Nan::GetCurrentContext();
+ Local<Object> mat = Nan::To<Object>(info[0]).ToLocalChecked();
+
+#if NODE_MAJOR_VERSION >= 8
+ if (!mat->InstanceOf(ctx, _DOMMatrix.Get(Isolate::GetCurrent())).ToChecked()) {
+ return Nan::ThrowTypeError("Expected DOMMatrix");
+ }
+#endif
+
+ cairo_matrix_t matrix;
+ cairo_matrix_init(&matrix,
+ Nan::To<double>(Nan::Get(mat, Nan::New("a").ToLocalChecked()).ToLocalChecked()).FromMaybe(1),
+ Nan::To<double>(Nan::Get(mat, Nan::New("b").ToLocalChecked()).ToLocalChecked()).FromMaybe(0),
+ Nan::To<double>(Nan::Get(mat, Nan::New("c").ToLocalChecked()).ToLocalChecked()).FromMaybe(0),
+ Nan::To<double>(Nan::Get(mat, Nan::New("d").ToLocalChecked()).ToLocalChecked()).FromMaybe(1),
+ Nan::To<double>(Nan::Get(mat, Nan::New("e").ToLocalChecked()).ToLocalChecked()).FromMaybe(0),
+ Nan::To<double>(Nan::Get(mat, Nan::New("f").ToLocalChecked()).ToLocalChecked()).FromMaybe(0)
+ );
+
+ cairo_matrix_invert(&matrix);
+ cairo_pattern_set_matrix(pattern->_pattern, &matrix);
+}
+
+
+/*
+ * Initialize pattern.
+ */
+
+Pattern::Pattern(cairo_surface_t *surface, repeat_type_t repeat) {
+ _pattern = cairo_pattern_create_for_surface(surface);
+ _repeat = repeat;
+ cairo_pattern_set_user_data(_pattern, pattern_repeat_key, &_repeat, NULL);
+}
+
+repeat_type_t Pattern::get_repeat_type_for_cairo_pattern(cairo_pattern_t *pattern) {
+ void *ud = cairo_pattern_get_user_data(pattern, pattern_repeat_key);
+ return *reinterpret_cast<repeat_type_t*>(ud);
+}
+
+/*
+ * Destroy the pattern.
+ */
+
+Pattern::~Pattern() {
+ cairo_pattern_destroy(_pattern);
+}
diff --git a/node_modules/canvas/src/CanvasPattern.h b/node_modules/canvas/src/CanvasPattern.h
new file mode 100644
index 0000000..29e2171
--- /dev/null
+++ b/node_modules/canvas/src/CanvasPattern.h
@@ -0,0 +1,37 @@
+// Copyright (c) 2011 LearnBoost <tj@learnboost.com>
+
+#pragma once
+
+#include <cairo.h>
+#include <nan.h>
+#include <v8.h>
+
+/*
+ * Canvas types.
+ */
+
+typedef enum {
+ NO_REPEAT, // match CAIRO_EXTEND_NONE
+ REPEAT, // match CAIRO_EXTEND_REPEAT
+ REPEAT_X, // needs custom processing
+ REPEAT_Y // needs custom processing
+} repeat_type_t;
+
+extern const cairo_user_data_key_t *pattern_repeat_key;
+
+class Pattern: public Nan::ObjectWrap {
+ public:
+ static Nan::Persistent<v8::FunctionTemplate> constructor;
+ static Nan::Persistent<v8::Function> _DOMMatrix;
+ static void Initialize(Nan::ADDON_REGISTER_FUNCTION_ARGS_TYPE target);
+ static NAN_METHOD(New);
+ static NAN_METHOD(SaveExternalModules);
+ static NAN_METHOD(SetTransform);
+ static repeat_type_t get_repeat_type_for_cairo_pattern(cairo_pattern_t *pattern);
+ Pattern(cairo_surface_t *surface, repeat_type_t repeat);
+ inline cairo_pattern_t *pattern(){ return _pattern; }
+ private:
+ ~Pattern();
+ cairo_pattern_t *_pattern;
+ repeat_type_t _repeat;
+};
diff --git a/node_modules/canvas/src/CanvasRenderingContext2d.cc b/node_modules/canvas/src/CanvasRenderingContext2d.cc
new file mode 100644
index 0000000..b99c016
--- /dev/null
+++ b/node_modules/canvas/src/CanvasRenderingContext2d.cc
@@ -0,0 +1,3360 @@
+// Copyright (c) 2010 LearnBoost <tj@learnboost.com>
+
+#include "CanvasRenderingContext2d.h"
+
+#include <algorithm>
+#include "backend/ImageBackend.h"
+#include <cairo-pdf.h>
+#include "Canvas.h"
+#include "CanvasGradient.h"
+#include "CanvasPattern.h"
+#include <cmath>
+#include <cstdlib>
+#include "Image.h"
+#include "ImageData.h"
+#include <limits>
+#include <map>
+#include "Point.h"
+#include <string>
+#include "Util.h"
+#include <vector>
+
+using namespace v8;
+
+Nan::Persistent<FunctionTemplate> Context2d::constructor;
+
+/*
+ * Rectangle arg assertions.
+ */
+
+#define RECT_ARGS \
+ double args[4]; \
+ if(!checkArgs(info, args, 4)) \
+ return; \
+ double x = args[0]; \
+ double y = args[1]; \
+ double width = args[2]; \
+ double height = args[3];
+
+#define CHECK_RECEIVER(prop) \
+ if (!Context2d::constructor.Get(info.GetIsolate())->HasInstance(info.This())) { \
+ Nan::ThrowTypeError("Method " #prop " called on incompatible receiver"); \
+ return; \
+ }
+
+constexpr double twoPi = M_PI * 2.;
+
+/*
+ * Simple helper macro for a rather verbose function call.
+ */
+
+#define PANGO_LAYOUT_GET_METRICS(LAYOUT) pango_context_get_metrics( \
+ pango_layout_get_context(LAYOUT), \
+ pango_layout_get_font_description(LAYOUT), \
+ pango_context_get_language(pango_layout_get_context(LAYOUT)))
+
+inline static bool checkArgs(const Nan::FunctionCallbackInfo<Value> &info, double *args, int argsNum, int offset = 0){
+ int argsEnd = offset + argsNum;
+ bool areArgsValid = true;
+
+ for (int i = offset; i < argsEnd; i++) {
+ double val = Nan::To<double>(info[i]).FromMaybe(0);
+
+ if (areArgsValid) {
+ if (!std::isfinite(val)) {
+ // We should continue the loop instead of returning immediately
+ // See https://html.spec.whatwg.org/multipage/canvas.html
+
+ areArgsValid = false;
+ continue;
+ }
+
+ args[i - offset] = val;
+ }
+ }
+
+ return areArgsValid;
+}
+
+Nan::Persistent<Function> Context2d::_DOMMatrix;
+Nan::Persistent<Function> Context2d::_parseFont;
+
+/*
+ * Initialize Context2d.
+ */
+
+void
+Context2d::Initialize(Nan::ADDON_REGISTER_FUNCTION_ARGS_TYPE target) {
+ Nan::HandleScope scope;
+
+ // Constructor
+ Local<FunctionTemplate> ctor = Nan::New<FunctionTemplate>(Context2d::New);
+ constructor.Reset(ctor);
+ ctor->InstanceTemplate()->SetInternalFieldCount(1);
+ ctor->SetClassName(Nan::New("CanvasRenderingContext2D").ToLocalChecked());
+
+ // Prototype
+ Local<ObjectTemplate> proto = ctor->PrototypeTemplate();
+ Nan::SetPrototypeMethod(ctor, "drawImage", DrawImage);
+ Nan::SetPrototypeMethod(ctor, "putImageData", PutImageData);
+ Nan::SetPrototypeMethod(ctor, "getImageData", GetImageData);
+ Nan::SetPrototypeMethod(ctor, "createImageData", CreateImageData);
+ Nan::SetPrototypeMethod(ctor, "addPage", AddPage);
+ Nan::SetPrototypeMethod(ctor, "save", Save);
+ Nan::SetPrototypeMethod(ctor, "restore", Restore);
+ Nan::SetPrototypeMethod(ctor, "rotate", Rotate);
+ Nan::SetPrototypeMethod(ctor, "translate", Translate);
+ Nan::SetPrototypeMethod(ctor, "transform", Transform);
+ Nan::SetPrototypeMethod(ctor, "getTransform", GetTransform);
+ Nan::SetPrototypeMethod(ctor, "resetTransform", ResetTransform);
+ Nan::SetPrototypeMethod(ctor, "setTransform", SetTransform);
+ Nan::SetPrototypeMethod(ctor, "isPointInPath", IsPointInPath);
+ Nan::SetPrototypeMethod(ctor, "scale", Scale);
+ Nan::SetPrototypeMethod(ctor, "clip", Clip);
+ Nan::SetPrototypeMethod(ctor, "fill", Fill);
+ Nan::SetPrototypeMethod(ctor, "stroke", Stroke);
+ Nan::SetPrototypeMethod(ctor, "fillText", FillText);
+ Nan::SetPrototypeMethod(ctor, "strokeText", StrokeText);
+ Nan::SetPrototypeMethod(ctor, "fillRect", FillRect);
+ Nan::SetPrototypeMethod(ctor, "strokeRect", StrokeRect);
+ Nan::SetPrototypeMethod(ctor, "clearRect", ClearRect);
+ Nan::SetPrototypeMethod(ctor, "rect", Rect);
+ Nan::SetPrototypeMethod(ctor, "roundRect", RoundRect);
+ Nan::SetPrototypeMethod(ctor, "measureText", MeasureText);
+ Nan::SetPrototypeMethod(ctor, "moveTo", MoveTo);
+ Nan::SetPrototypeMethod(ctor, "lineTo", LineTo);
+ Nan::SetPrototypeMethod(ctor, "bezierCurveTo", BezierCurveTo);
+ Nan::SetPrototypeMethod(ctor, "quadraticCurveTo", QuadraticCurveTo);
+ Nan::SetPrototypeMethod(ctor, "beginPath", BeginPath);
+ Nan::SetPrototypeMethod(ctor, "closePath", ClosePath);
+ Nan::SetPrototypeMethod(ctor, "arc", Arc);
+ Nan::SetPrototypeMethod(ctor, "arcTo", ArcTo);
+ Nan::SetPrototypeMethod(ctor, "ellipse", Ellipse);
+ Nan::SetPrototypeMethod(ctor, "setLineDash", SetLineDash);
+ Nan::SetPrototypeMethod(ctor, "getLineDash", GetLineDash);
+ Nan::SetPrototypeMethod(ctor, "createPattern", CreatePattern);
+ Nan::SetPrototypeMethod(ctor, "createLinearGradient", CreateLinearGradient);
+ Nan::SetPrototypeMethod(ctor, "createRadialGradient", CreateRadialGradient);
+ Nan::SetAccessor(proto, Nan::New("pixelFormat").ToLocalChecked(), GetFormat);
+ Nan::SetAccessor(proto, Nan::New("patternQuality").ToLocalChecked(), GetPatternQuality, SetPatternQuality);
+ Nan::SetAccessor(proto, Nan::New("imageSmoothingEnabled").ToLocalChecked(), GetImageSmoothingEnabled, SetImageSmoothingEnabled);
+ Nan::SetAccessor(proto, Nan::New("globalCompositeOperation").ToLocalChecked(), GetGlobalCompositeOperation, SetGlobalCompositeOperation);
+ Nan::SetAccessor(proto, Nan::New("globalAlpha").ToLocalChecked(), GetGlobalAlpha, SetGlobalAlpha);
+ Nan::SetAccessor(proto, Nan::New("shadowColor").ToLocalChecked(), GetShadowColor, SetShadowColor);
+ Nan::SetAccessor(proto, Nan::New("miterLimit").ToLocalChecked(), GetMiterLimit, SetMiterLimit);
+ Nan::SetAccessor(proto, Nan::New("lineWidth").ToLocalChecked(), GetLineWidth, SetLineWidth);
+ Nan::SetAccessor(proto, Nan::New("lineCap").ToLocalChecked(), GetLineCap, SetLineCap);
+ Nan::SetAccessor(proto, Nan::New("lineJoin").ToLocalChecked(), GetLineJoin, SetLineJoin);
+ Nan::SetAccessor(proto, Nan::New("lineDashOffset").ToLocalChecked(), GetLineDashOffset, SetLineDashOffset);
+ Nan::SetAccessor(proto, Nan::New("shadowOffsetX").ToLocalChecked(), GetShadowOffsetX, SetShadowOffsetX);
+ Nan::SetAccessor(proto, Nan::New("shadowOffsetY").ToLocalChecked(), GetShadowOffsetY, SetShadowOffsetY);
+ Nan::SetAccessor(proto, Nan::New("shadowBlur").ToLocalChecked(), GetShadowBlur, SetShadowBlur);
+ Nan::SetAccessor(proto, Nan::New("antialias").ToLocalChecked(), GetAntiAlias, SetAntiAlias);
+ Nan::SetAccessor(proto, Nan::New("textDrawingMode").ToLocalChecked(), GetTextDrawingMode, SetTextDrawingMode);
+ Nan::SetAccessor(proto, Nan::New("quality").ToLocalChecked(), GetQuality, SetQuality);
+ Nan::SetAccessor(proto, Nan::New("currentTransform").ToLocalChecked(), GetCurrentTransform, SetCurrentTransform);
+ Nan::SetAccessor(proto, Nan::New("fillStyle").ToLocalChecked(), GetFillStyle, SetFillStyle);
+ Nan::SetAccessor(proto, Nan::New("strokeStyle").ToLocalChecked(), GetStrokeStyle, SetStrokeStyle);
+ Nan::SetAccessor(proto, Nan::New("font").ToLocalChecked(), GetFont, SetFont);
+ Nan::SetAccessor(proto, Nan::New("textBaseline").ToLocalChecked(), GetTextBaseline, SetTextBaseline);
+ Nan::SetAccessor(proto, Nan::New("textAlign").ToLocalChecked(), GetTextAlign, SetTextAlign);
+ Local<Context> ctx = Nan::GetCurrentContext();
+ Nan::Set(target, Nan::New("CanvasRenderingContext2d").ToLocalChecked(), ctor->GetFunction(ctx).ToLocalChecked());
+ Nan::Set(target, Nan::New("CanvasRenderingContext2dInit").ToLocalChecked(), Nan::New<Function>(SaveExternalModules));
+}
+
+/*
+ * Create a cairo context.
+ */
+
+Context2d::Context2d(Canvas *canvas) {
+ _canvas = canvas;
+ _context = canvas->createCairoContext();
+ _layout = pango_cairo_create_layout(_context);
+
+ // As of January 2023, Pango rounds glyph positions which renders text wider
+ // or narrower than the browser. See #2184 for more information
+#if PANGO_VERSION_CHECK(1, 44, 0)
+ pango_context_set_round_glyph_positions(pango_layout_get_context(_layout), FALSE);
+#endif
+
+ states.emplace();
+ state = &states.top();
+ pango_layout_set_font_description(_layout, state->fontDescription);
+}
+
+/*
+ * Destroy cairo context.
+ */
+
+Context2d::~Context2d() {
+ g_object_unref(_layout);
+ cairo_destroy(_context);
+ _resetPersistentHandles();
+}
+
+/*
+ * Reset canvas state.
+ */
+
+void Context2d::resetState() {
+ states.pop();
+ states.emplace();
+ pango_layout_set_font_description(_layout, state->fontDescription);
+ _resetPersistentHandles();
+}
+
+void Context2d::_resetPersistentHandles() {
+ _fillStyle.Reset();
+ _strokeStyle.Reset();
+}
+
+/*
+ * Save cairo / canvas state.
+ */
+
+void
+Context2d::save() {
+ cairo_save(_context);
+ states.emplace(states.top());
+ state = &states.top();
+}
+
+/*
+ * Restore cairo / canvas state.
+ */
+
+void
+Context2d::restore() {
+ if (states.size() > 1) {
+ cairo_restore(_context);
+ states.pop();
+ state = &states.top();
+ pango_layout_set_font_description(_layout, state->fontDescription);
+ }
+}
+
+/*
+ * Save flat path.
+ */
+
+void
+Context2d::savePath() {
+ _path = cairo_copy_path_flat(_context);
+ cairo_new_path(_context);
+}
+
+/*
+ * Restore flat path.
+ */
+
+void
+Context2d::restorePath() {
+ cairo_new_path(_context);
+ cairo_append_path(_context, _path);
+ cairo_path_destroy(_path);
+}
+
+/*
+ * Create temporary surface for gradient or pattern transparency
+ */
+cairo_pattern_t*
+create_transparent_gradient(cairo_pattern_t *source, float alpha) {
+ double x0;
+ double y0;
+ double x1;
+ double y1;
+ double r0;
+ double r1;
+ int count;
+ int i;
+ double offset;
+ double r;
+ double g;
+ double b;
+ double a;
+ cairo_pattern_t *newGradient;
+ cairo_pattern_type_t type = cairo_pattern_get_type(source);
+ cairo_pattern_get_color_stop_count(source, &count);
+ if (type == CAIRO_PATTERN_TYPE_LINEAR) {
+ cairo_pattern_get_linear_points (source, &x0, &y0, &x1, &y1);
+ newGradient = cairo_pattern_create_linear(x0, y0, x1, y1);
+ } else if (type == CAIRO_PATTERN_TYPE_RADIAL) {
+ cairo_pattern_get_radial_circles(source, &x0, &y0, &r0, &x1, &y1, &r1);
+ newGradient = cairo_pattern_create_radial(x0, y0, r0, x1, y1, r1);
+ } else {
+ Nan::ThrowError("Unexpected gradient type");
+ return NULL;
+ }
+ for ( i = 0; i < count; i++ ) {
+ cairo_pattern_get_color_stop_rgba(source, i, &offset, &r, &g, &b, &a);
+ cairo_pattern_add_color_stop_rgba(newGradient, offset, r, g, b, a * alpha);
+ }
+ return newGradient;
+}
+
+cairo_pattern_t*
+create_transparent_pattern(cairo_pattern_t *source, float alpha) {
+ cairo_surface_t *surface;
+ cairo_pattern_get_surface(source, &surface);
+ int width = cairo_image_surface_get_width(surface);
+ int height = cairo_image_surface_get_height(surface);
+ cairo_surface_t *mask_surface = cairo_image_surface_create(
+ CAIRO_FORMAT_ARGB32,
+ width,
+ height);
+ cairo_t *mask_context = cairo_create(mask_surface);
+ if (cairo_status(mask_context) != CAIRO_STATUS_SUCCESS) {
+ Nan::ThrowError("Failed to initialize context");
+ return NULL;
+ }
+ cairo_set_source(mask_context, source);
+ cairo_paint_with_alpha(mask_context, alpha);
+ cairo_destroy(mask_context);
+ cairo_pattern_t* newPattern = cairo_pattern_create_for_surface(mask_surface);
+ cairo_surface_destroy(mask_surface);
+ return newPattern;
+}
+
+/*
+ * Fill and apply shadow.
+ */
+
+void
+Context2d::setFillRule(v8::Local<v8::Value> value) {
+ cairo_fill_rule_t rule = CAIRO_FILL_RULE_WINDING;
+ if (value->IsString()) {
+ Nan::Utf8String str(value);
+ if (std::strcmp(*str, "evenodd") == 0) {
+ rule = CAIRO_FILL_RULE_EVEN_ODD;
+ }
+ }
+ cairo_set_fill_rule(_context, rule);
+}
+
+void
+Context2d::fill(bool preserve) {
+ cairo_pattern_t *new_pattern;
+ bool needsRestore = false;
+ if (state->fillPattern) {
+ if (state->globalAlpha < 1) {
+ new_pattern = create_transparent_pattern(state->fillPattern, state->globalAlpha);
+ if (new_pattern == NULL) {
+ // failed to allocate; Nan::ThrowError has already been called, so return from this fn.
+ return;
+ }
+ cairo_set_source(_context, new_pattern);
+ cairo_pattern_destroy(new_pattern);
+ } else {
+ cairo_pattern_set_filter(state->fillPattern, state->patternQuality);
+ cairo_set_source(_context, state->fillPattern);
+ }
+ repeat_type_t repeat = Pattern::get_repeat_type_for_cairo_pattern(state->fillPattern);
+ if (repeat == NO_REPEAT) {
+ cairo_pattern_set_extend(cairo_get_source(_context), CAIRO_EXTEND_NONE);
+ } else if (repeat == REPEAT) {
+ cairo_pattern_set_extend(cairo_get_source(_context), CAIRO_EXTEND_REPEAT);
+ } else {
+ cairo_save(_context);
+ cairo_path_t *savedPath = cairo_copy_path(_context);
+ cairo_surface_t *patternSurface = nullptr;
+ cairo_pattern_get_surface(cairo_get_source(_context), &patternSurface);
+
+ double width, height;
+ if (repeat == REPEAT_X) {
+ double x1, x2;
+ cairo_path_extents(_context, &x1, nullptr, &x2, nullptr);
+ width = x2 - x1;
+ height = cairo_image_surface_get_height(patternSurface);
+ } else {
+ double y1, y2;
+ cairo_path_extents(_context, nullptr, &y1, nullptr, &y2);
+ width = cairo_image_surface_get_width(patternSurface);
+ height = y2 - y1;
+ }
+
+ cairo_new_path(_context);
+ cairo_rectangle(_context, 0, 0, width, height);
+ cairo_clip(_context);
+ cairo_append_path(_context, savedPath);
+ cairo_path_destroy(savedPath);
+ cairo_pattern_set_extend(cairo_get_source(_context), CAIRO_EXTEND_REPEAT);
+ needsRestore = true;
+ }
+ } else if (state->fillGradient) {
+ if (state->globalAlpha < 1) {
+ new_pattern = create_transparent_gradient(state->fillGradient, state->globalAlpha);
+ if (new_pattern == NULL) {
+ // failed to recognize gradient; Nan::ThrowError has already been called, so return from this fn.
+ return;
+ }
+ cairo_pattern_set_filter(new_pattern, state->patternQuality);
+ cairo_set_source(_context, new_pattern);
+ cairo_pattern_destroy(new_pattern);
+ } else {
+ cairo_pattern_set_filter(state->fillGradient, state->patternQuality);
+ cairo_set_source(_context, state->fillGradient);
+ }
+ } else {
+ setSourceRGBA(state->fill);
+ }
+ if (preserve) {
+ hasShadow()
+ ? shadow(cairo_fill_preserve)
+ : cairo_fill_preserve(_context);
+ } else {
+ hasShadow()
+ ? shadow(cairo_fill)
+ : cairo_fill(_context);
+ }
+ if (needsRestore) {
+ cairo_restore(_context);
+ }
+}
+
+/*
+ * Stroke and apply shadow.
+ */
+
+void
+Context2d::stroke(bool preserve) {
+ cairo_pattern_t *new_pattern;
+ if (state->strokePattern) {
+ if (state->globalAlpha < 1) {
+ new_pattern = create_transparent_pattern(state->strokePattern, state->globalAlpha);
+ if (new_pattern == NULL) {
+ // failed to allocate; Nan::ThrowError has already been called, so return from this fn.
+ return;
+ }
+ cairo_set_source(_context, new_pattern);
+ cairo_pattern_destroy(new_pattern);
+ } else {
+ cairo_pattern_set_filter(state->strokePattern, state->patternQuality);
+ cairo_set_source(_context, state->strokePattern);
+ }
+ repeat_type_t repeat = Pattern::get_repeat_type_for_cairo_pattern(state->strokePattern);
+ if (NO_REPEAT == repeat) {
+ cairo_pattern_set_extend(cairo_get_source(_context), CAIRO_EXTEND_NONE);
+ } else {
+ cairo_pattern_set_extend(cairo_get_source(_context), CAIRO_EXTEND_REPEAT);
+ }
+ } else if (state->strokeGradient) {
+ if (state->globalAlpha < 1) {
+ new_pattern = create_transparent_gradient(state->strokeGradient, state->globalAlpha);
+ if (new_pattern == NULL) {
+ // failed to recognize gradient; Nan::ThrowError has already been called, so return from this fn.
+ return;
+ }
+ cairo_pattern_set_filter(new_pattern, state->patternQuality);
+ cairo_set_source(_context, new_pattern);
+ cairo_pattern_destroy(new_pattern);
+ } else {
+ cairo_pattern_set_filter(state->strokeGradient, state->patternQuality);
+ cairo_set_source(_context, state->strokeGradient);
+ }
+ } else {
+ setSourceRGBA(state->stroke);
+ }
+
+ if (preserve) {
+ hasShadow()
+ ? shadow(cairo_stroke_preserve)
+ : cairo_stroke_preserve(_context);
+ } else {
+ hasShadow()
+ ? shadow(cairo_stroke)
+ : cairo_stroke(_context);
+ }
+}
+
+/*
+ * Apply shadow with the given draw fn.
+ */
+
+void
+Context2d::shadow(void (fn)(cairo_t *cr)) {
+ cairo_path_t *path = cairo_copy_path_flat(_context);
+ cairo_save(_context);
+
+ // shadowOffset is unaffected by current transform
+ cairo_matrix_t path_matrix;
+ cairo_get_matrix(_context, &path_matrix);
+ cairo_identity_matrix(_context);
+
+ // Apply shadow
+ cairo_push_group(_context);
+
+ // No need to invoke blur if shadowBlur is 0
+ if (state->shadowBlur) {
+ // find out extent of path
+ double x1, y1, x2, y2;
+ if (fn == cairo_fill || fn == cairo_fill_preserve) {
+ cairo_fill_extents(_context, &x1, &y1, &x2, &y2);
+ } else {
+ cairo_stroke_extents(_context, &x1, &y1, &x2, &y2);
+ }
+
+ // create new image surface that size + padding for blurring
+ double dx = x2-x1, dy = y2-y1;
+ cairo_user_to_device_distance(_context, &dx, &dy);
+ int pad = state->shadowBlur * 2;
+ cairo_surface_t *shadow_surface = cairo_image_surface_create(
+ CAIRO_FORMAT_ARGB32,
+ dx + 2 * pad,
+ dy + 2 * pad);
+ cairo_t *shadow_context = cairo_create(shadow_surface);
+
+ // transform path to the right place
+ cairo_translate(shadow_context, pad-x1, pad-y1);
+ cairo_transform(shadow_context, &path_matrix);
+
+ // set lineCap lineJoin lineDash
+ cairo_set_line_cap(shadow_context, cairo_get_line_cap(_context));
+ cairo_set_line_join(shadow_context, cairo_get_line_join(_context));
+
+ double offset;
+ int dashes = cairo_get_dash_count(_context);
+ std::vector<double> a(dashes);
+ cairo_get_dash(_context, a.data(), &offset);
+ cairo_set_dash(shadow_context, a.data(), dashes, offset);
+
+ // draw the path and blur
+ cairo_set_line_width(shadow_context, cairo_get_line_width(_context));
+ cairo_new_path(shadow_context);
+ cairo_append_path(shadow_context, path);
+ setSourceRGBA(shadow_context, state->shadow);
+ fn(shadow_context);
+ blur(shadow_surface, state->shadowBlur);
+
+ // paint to original context
+ cairo_set_source_surface(_context, shadow_surface,
+ x1 - pad + state->shadowOffsetX + 1,
+ y1 - pad + state->shadowOffsetY + 1);
+ cairo_paint(_context);
+ cairo_destroy(shadow_context);
+ cairo_surface_destroy(shadow_surface);
+ } else {
+ // Offset first, then apply path's transform
+ cairo_translate(
+ _context
+ , state->shadowOffsetX
+ , state->shadowOffsetY);
+ cairo_transform(_context, &path_matrix);
+
+ // Apply shadow
+ cairo_new_path(_context);
+ cairo_append_path(_context, path);
+ setSourceRGBA(state->shadow);
+
+ fn(_context);
+ }
+
+ // Paint the shadow
+ cairo_pop_group_to_source(_context);
+ cairo_paint(_context);
+
+ // Restore state
+ cairo_restore(_context);
+ cairo_new_path(_context);
+ cairo_append_path(_context, path);
+ fn(_context);
+
+ cairo_path_destroy(path);
+}
+
+/*
+ * Set source RGBA for the current context
+ */
+
+void
+Context2d::setSourceRGBA(rgba_t color) {
+ setSourceRGBA(_context, color);
+}
+
+/*
+ * Set source RGBA
+ */
+
+void
+Context2d::setSourceRGBA(cairo_t *ctx, rgba_t color) {
+ cairo_set_source_rgba(
+ ctx
+ , color.r
+ , color.g
+ , color.b
+ , color.a * state->globalAlpha);
+}
+
+/*
+ * Check if the context has a drawable shadow.
+ */
+
+bool
+Context2d::hasShadow() {
+ return state->shadow.a
+ && (state->shadowBlur || state->shadowOffsetX || state->shadowOffsetY);
+}
+
+/*
+ * Blur the given surface with the given radius.
+ */
+
+void
+Context2d::blur(cairo_surface_t *surface, int radius) {
+ // Steve Hanov, 2009
+ // Released into the public domain.
+ radius = radius * 0.57735f + 0.5f;
+ // get width, height
+ int width = cairo_image_surface_get_width( surface );
+ int height = cairo_image_surface_get_height( surface );
+ unsigned* precalc =
+ (unsigned*)malloc(width*height*sizeof(unsigned));
+ cairo_surface_flush( surface );
+ unsigned char* src = cairo_image_surface_get_data( surface );
+ double mul=1.f/((radius*2)*(radius*2));
+ int channel;
+
+ // The number of times to perform the averaging. According to wikipedia,
+ // three iterations is good enough to pass for a gaussian.
+ const int MAX_ITERATIONS = 3;
+ int iteration;
+
+ for ( iteration = 0; iteration < MAX_ITERATIONS; iteration++ ) {
+ for( channel = 0; channel < 4; channel++ ) {
+ int x,y;
+
+ // precomputation step.
+ unsigned char* pix = src;
+ unsigned* pre = precalc;
+
+ pix += channel;
+ for (y=0;y<height;y++) {
+ for (x=0;x<width;x++) {
+ int tot=pix[0];
+ if (x>0) tot+=pre[-1];
+ if (y>0) tot+=pre[-width];
+ if (x>0 && y>0) tot-=pre[-width-1];
+ *pre++=tot;
+ pix += 4;
+ }
+ }
+
+ // blur step.
+ pix = src + (int)radius * width * 4 + (int)radius * 4 + channel;
+ for (y=radius;y<height-radius;y++) {
+ for (x=radius;x<width-radius;x++) {
+ int l = x < radius ? 0 : x - radius;
+ int t = y < radius ? 0 : y - radius;
+ int r = x + radius >= width ? width - 1 : x + radius;
+ int b = y + radius >= height ? height - 1 : y + radius;
+ int tot = precalc[r+b*width] + precalc[l+t*width] -
+ precalc[l+b*width] - precalc[r+t*width];
+ *pix=(unsigned char)(tot*mul);
+ pix += 4;
+ }
+ pix += (int)radius * 2 * 4;
+ }
+ }
+ }
+
+ cairo_surface_mark_dirty(surface);
+ free(precalc);
+}
+
+/*
+ * Initialize a new Context2d with the given canvas.
+ */
+
+NAN_METHOD(Context2d::New) {
+ if (!info.IsConstructCall()) {
+ return Nan::ThrowTypeError("Class constructors cannot be invoked without 'new'");
+ }
+
+ if (!info[0]->IsObject())
+ return Nan::ThrowTypeError("Canvas expected");
+ Local<Object> obj = Nan::To<Object>(info[0]).ToLocalChecked();
+ if (!Nan::New(Canvas::constructor)->HasInstance(obj))
+ return Nan::ThrowTypeError("Canvas expected");
+ Canvas *canvas = Nan::ObjectWrap::Unwrap<Canvas>(obj);
+
+ bool isImageBackend = canvas->backend()->getName() == "image";
+ if (isImageBackend) {
+ cairo_format_t format = ImageBackend::DEFAULT_FORMAT;
+ if (info[1]->IsObject()) {
+ Local<Object> ctxAttributes = Nan::To<Object>(info[1]).ToLocalChecked();
+
+ Local<Value> pixelFormat = Nan::Get(ctxAttributes, Nan::New("pixelFormat").ToLocalChecked()).ToLocalChecked();
+ if (pixelFormat->IsString()) {
+ Nan::Utf8String utf8PixelFormat(pixelFormat);
+ if (!strcmp(*utf8PixelFormat, "RGBA32")) format = CAIRO_FORMAT_ARGB32;
+ else if (!strcmp(*utf8PixelFormat, "RGB24")) format = CAIRO_FORMAT_RGB24;
+ else if (!strcmp(*utf8PixelFormat, "A8")) format = CAIRO_FORMAT_A8;
+ else if (!strcmp(*utf8PixelFormat, "RGB16_565")) format = CAIRO_FORMAT_RGB16_565;
+ else if (!strcmp(*utf8PixelFormat, "A1")) format = CAIRO_FORMAT_A1;
+#ifdef CAIRO_FORMAT_RGB30
+ else if (!strcmp(utf8PixelFormat, "RGB30")) format = CAIRO_FORMAT_RGB30;
+#endif
+ }
+
+ // alpha: false forces use of RGB24
+ Local<Value> alpha = Nan::Get(ctxAttributes, Nan::New("alpha").ToLocalChecked()).ToLocalChecked();
+ if (alpha->IsBoolean() && !Nan::To<bool>(alpha).FromMaybe(false)) {
+ format = CAIRO_FORMAT_RGB24;
+ }
+ }
+ static_cast<ImageBackend*>(canvas->backend())->setFormat(format);
+ }
+
+ Context2d *context = new Context2d(canvas);
+
+ context->Wrap(info.This());
+ info.GetReturnValue().Set(info.This());
+}
+
+/*
+ * Save some external modules as private references.
+ */
+
+NAN_METHOD(Context2d::SaveExternalModules) {
+ _DOMMatrix.Reset(Nan::To<Function>(info[0]).ToLocalChecked());
+ _parseFont.Reset(Nan::To<Function>(info[1]).ToLocalChecked());
+}
+
+/*
+* Get format (string).
+*/
+
+NAN_GETTER(Context2d::GetFormat) {
+ CHECK_RECEIVER(Context2d.GetFormat);
+ Context2d *context = Nan::ObjectWrap::Unwrap<Context2d>(info.This());
+ std::string pixelFormatString;
+ switch (context->canvas()->backend()->getFormat()) {
+ case CAIRO_FORMAT_ARGB32: pixelFormatString = "RGBA32"; break;
+ case CAIRO_FORMAT_RGB24: pixelFormatString = "RGB24"; break;
+ case CAIRO_FORMAT_A8: pixelFormatString = "A8"; break;
+ case CAIRO_FORMAT_A1: pixelFormatString = "A1"; break;
+ case CAIRO_FORMAT_RGB16_565: pixelFormatString = "RGB16_565"; break;
+#ifdef CAIRO_FORMAT_RGB30
+ case CAIRO_FORMAT_RGB30: pixelFormatString = "RGB30"; break;
+#endif
+ default: return info.GetReturnValue().SetNull();
+ }
+ info.GetReturnValue().Set(Nan::New<String>(pixelFormatString).ToLocalChecked());
+}
+
+/*
+ * Create a new page.
+ */
+
+NAN_METHOD(Context2d::AddPage) {
+ Context2d *context = Nan::ObjectWrap::Unwrap<Context2d>(info.This());
+ if (context->canvas()->backend()->getName() != "pdf") {
+ return Nan::ThrowError("only PDF canvases support .addPage()");
+ }
+ cairo_show_page(context->context());
+ int width = Nan::To<int32_t>(info[0]).FromMaybe(0);
+ int height = Nan::To<int32_t>(info[1]).FromMaybe(0);
+ if (width < 1) width = context->canvas()->getWidth();
+ if (height < 1) height = context->canvas()->getHeight();
+ cairo_pdf_surface_set_size(context->canvas()->surface(), width, height);
+ return;
+}
+
+/*
+ * Put image data.
+ *
+ * - imageData, dx, dy
+ * - imageData, dx, dy, sx, sy, sw, sh
+ *
+ */
+
+NAN_METHOD(Context2d::PutImageData) {
+ if (!info[0]->IsObject())
+ return Nan::ThrowTypeError("ImageData expected");
+ Local<Object> obj = Nan::To<Object>(info[0]).ToLocalChecked();
+ if (!Nan::New(ImageData::constructor)->HasInstance(obj))
+ return Nan::ThrowTypeError("ImageData expected");
+
+ Context2d *context = Nan::ObjectWrap::Unwrap<Context2d>(info.This());
+ ImageData *imageData = Nan::ObjectWrap::Unwrap<ImageData>(obj);
+
+ uint8_t *src = imageData->data();
+ uint8_t *dst = context->canvas()->data();
+
+ int dstStride = context->canvas()->stride();
+ int Bpp = dstStride / context->canvas()->getWidth();
+ int srcStride = Bpp * imageData->width();
+
+ int sx = 0
+ , sy = 0
+ , sw = 0
+ , sh = 0
+ , dx = Nan::To<int32_t>(info[1]).FromMaybe(0)
+ , dy = Nan::To<int32_t>(info[2]).FromMaybe(0)
+ , rows
+ , cols;
+
+ switch (info.Length()) {
+ // imageData, dx, dy
+ case 3:
+ sw = imageData->width();
+ sh = imageData->height();
+ break;
+ // imageData, dx, dy, sx, sy, sw, sh
+ case 7:
+ sx = Nan::To<int32_t>(info[3]).FromMaybe(0);
+ sy = Nan::To<int32_t>(info[4]).FromMaybe(0);
+ sw = Nan::To<int32_t>(info[5]).FromMaybe(0);
+ sh = Nan::To<int32_t>(info[6]).FromMaybe(0);
+ // fix up negative height, width
+ if (sw < 0) sx += sw, sw = -sw;
+ if (sh < 0) sy += sh, sh = -sh;
+ // clamp the left edge
+ if (sx < 0) sw += sx, sx = 0;
+ if (sy < 0) sh += sy, sy = 0;
+ // clamp the right edge
+ if (sx + sw > imageData->width()) sw = imageData->width() - sx;
+ if (sy + sh > imageData->height()) sh = imageData->height() - sy;
+ // start destination at source offset
+ dx += sx;
+ dy += sy;
+ break;
+ default:
+ return Nan::ThrowError("invalid arguments");
+ }
+
+ // chop off outlying source data
+ if (dx < 0) sw += dx, sx -= dx, dx = 0;
+ if (dy < 0) sh += dy, sy -= dy, dy = 0;
+ // clamp width at canvas size
+ // Need to wrap std::min calls using parens to prevent macro expansion on
+ // windows. See http://stackoverflow.com/questions/5004858/stdmin-gives-error
+ cols = (std::min)(sw, context->canvas()->getWidth() - dx);
+ rows = (std::min)(sh, context->canvas()->getHeight() - dy);
+
+ if (cols <= 0 || rows <= 0) return;
+
+ switch (context->canvas()->backend()->getFormat()) {
+ case CAIRO_FORMAT_ARGB32: {
+ src += sy * srcStride + sx * 4;
+ dst += dstStride * dy + 4 * dx;
+ for (int y = 0; y < rows; ++y) {
+ uint8_t *dstRow = dst;
+ uint8_t *srcRow = src;
+ for (int x = 0; x < cols; ++x) {
+ // rgba
+ uint8_t r = *srcRow++;
+ uint8_t g = *srcRow++;
+ uint8_t b = *srcRow++;
+ uint8_t a = *srcRow++;
+
+ // argb
+ // performance optimization: fully transparent/opaque pixels can be
+ // processed more efficiently.
+ if (a == 0) {
+ *dstRow++ = 0;
+ *dstRow++ = 0;
+ *dstRow++ = 0;
+ *dstRow++ = 0;
+ } else if (a == 255) {
+ *dstRow++ = b;
+ *dstRow++ = g;
+ *dstRow++ = r;
+ *dstRow++ = a;
+ } else {
+ float alpha = (float)a / 255;
+ *dstRow++ = b * alpha;
+ *dstRow++ = g * alpha;
+ *dstRow++ = r * alpha;
+ *dstRow++ = a;
+ }
+ }
+ dst += dstStride;
+ src += srcStride;
+ }
+ break;
+ }
+ case CAIRO_FORMAT_RGB24: {
+ src += sy * srcStride + sx * 4;
+ dst += dstStride * dy + 4 * dx;
+ for (int y = 0; y < rows; ++y) {
+ uint8_t *dstRow = dst;
+ uint8_t *srcRow = src;
+ for (int x = 0; x < cols; ++x) {
+ // rgba
+ uint8_t r = *srcRow++;
+ uint8_t g = *srcRow++;
+ uint8_t b = *srcRow++;
+ srcRow++;
+
+ // argb
+ *dstRow++ = b;
+ *dstRow++ = g;
+ *dstRow++ = r;
+ *dstRow++ = 255;
+ }
+ dst += dstStride;
+ src += srcStride;
+ }
+ break;
+ }
+ case CAIRO_FORMAT_A8: {
+ src += sy * srcStride + sx;
+ dst += dstStride * dy + dx;
+ if (srcStride == dstStride && cols == dstStride) {
+ // fast path: strides are the same and doing a full-width put
+ memcpy(dst, src, cols * rows);
+ } else {
+ for (int y = 0; y < rows; ++y) {
+ memcpy(dst, src, cols);
+ dst += dstStride;
+ src += srcStride;
+ }
+ }
+ break;
+ }
+ case CAIRO_FORMAT_A1: {
+ // TODO Should this be totally packed, or maintain a stride divisible by 4?
+ Nan::ThrowError("putImageData for CANVAS_FORMAT_A1 is not yet implemented");
+ break;
+ }
+ case CAIRO_FORMAT_RGB16_565: {
+ src += sy * srcStride + sx * 2;
+ dst += dstStride * dy + 2 * dx;
+ for (int y = 0; y < rows; ++y) {
+ memcpy(dst, src, cols * 2);
+ dst += dstStride;
+ src += srcStride;
+ }
+ break;
+ }
+#ifdef CAIRO_FORMAT_RGB30
+ case CAIRO_FORMAT_RGB30: {
+ // TODO
+ Nan::ThrowError("putImageData for CANVAS_FORMAT_RGB30 is not yet implemented");
+ break;
+ }
+#endif
+ default: {
+ Nan::ThrowError("Invalid pixel format or not an image canvas");
+ return;
+ }
+ }
+
+ cairo_surface_mark_dirty_rectangle(
+ context->canvas()->surface()
+ , dx
+ , dy
+ , cols
+ , rows);
+}
+
+/*
+ * Get image data.
+ *
+ * - sx, sy, sw, sh
+ *
+ */
+
+NAN_METHOD(Context2d::GetImageData) {
+ Context2d *context = Nan::ObjectWrap::Unwrap<Context2d>(info.This());
+ Canvas *canvas = context->canvas();
+
+ int sx = Nan::To<int32_t>(info[0]).FromMaybe(0);
+ int sy = Nan::To<int32_t>(info[1]).FromMaybe(0);
+ int sw = Nan::To<int32_t>(info[2]).FromMaybe(0);
+ int sh = Nan::To<int32_t>(info[3]).FromMaybe(0);
+
+ if (!sw)
+ return Nan::ThrowError("IndexSizeError: The source width is 0.");
+ if (!sh)
+ return Nan::ThrowError("IndexSizeError: The source height is 0.");
+
+ int width = canvas->getWidth();
+ int height = canvas->getHeight();
+
+ if (!width)
+ return Nan::ThrowTypeError("Canvas width is 0");
+ if (!height)
+ return Nan::ThrowTypeError("Canvas height is 0");
+
+ // WebKit and Firefox have this behavior:
+ // Flip the coordinates so the origin is top/left-most:
+ if (sw < 0) {
+ sx += sw;
+ sw = -sw;
+ }
+ if (sh < 0) {
+ sy += sh;
+ sh = -sh;
+ }
+
+ if (sx + sw > width) sw = width - sx;
+ if (sy + sh > height) sh = height - sy;
+
+ // WebKit/moz functionality. node-canvas used to return in either case.
+ if (sw <= 0) sw = 1;
+ if (sh <= 0) sh = 1;
+
+ // Non-compliant. "Pixels outside the canvas must be returned as transparent
+ // black." This instead clips the returned array to the canvas area.
+ if (sx < 0) {
+ sw += sx;
+ sx = 0;
+ }
+ if (sy < 0) {
+ sh += sy;
+ sy = 0;
+ }
+
+ int srcStride = canvas->stride();
+ int bpp = srcStride / width;
+ int size = sw * sh * bpp;
+ int dstStride = sw * bpp;
+
+ uint8_t *src = canvas->data();
+
+ Local<ArrayBuffer> buffer = ArrayBuffer::New(Isolate::GetCurrent(), size);
+ Local<TypedArray> dataArray;
+
+ if (canvas->backend()->getFormat() == CAIRO_FORMAT_RGB16_565) {
+ dataArray = Uint16Array::New(buffer, 0, size >> 1);
+ } else {
+ dataArray = Uint8ClampedArray::New(buffer, 0, size);
+ }
+
+ Nan::TypedArrayContents<uint8_t> typedArrayContents(dataArray);
+ uint8_t* dst = *typedArrayContents;
+
+ switch (canvas->backend()->getFormat()) {
+ case CAIRO_FORMAT_ARGB32: {
+ // Rearrange alpha (argb -> rgba), undo alpha pre-multiplication,
+ // and store in big-endian format
+ for (int y = 0; y < sh; ++y) {
+ uint32_t *row = (uint32_t *)(src + srcStride * (y + sy));
+ for (int x = 0; x < sw; ++x) {
+ int bx = x * 4;
+ uint32_t *pixel = row + x + sx;
+ uint8_t a = *pixel >> 24;
+ uint8_t r = *pixel >> 16;
+ uint8_t g = *pixel >> 8;
+ uint8_t b = *pixel;
+ dst[bx + 3] = a;
+
+ // Performance optimization: fully transparent/opaque pixels can be
+ // processed more efficiently.
+ if (a == 0 || a == 255) {
+ dst[bx + 0] = r;
+ dst[bx + 1] = g;
+ dst[bx + 2] = b;
+ } else {
+ // Undo alpha pre-multiplication
+ float alphaR = (float)255 / a;
+ dst[bx + 0] = (int)((float)r * alphaR);
+ dst[bx + 1] = (int)((float)g * alphaR);
+ dst[bx + 2] = (int)((float)b * alphaR);
+ }
+
+ }
+ dst += dstStride;
+ }
+ break;
+ }
+ case CAIRO_FORMAT_RGB24: {
+ // Rearrange alpha (argb -> rgba) and store in big-endian format
+ for (int y = 0; y < sh; ++y) {
+ uint32_t *row = (uint32_t *)(src + srcStride * (y + sy));
+ for (int x = 0; x < sw; ++x) {
+ int bx = x * 4;
+ uint32_t *pixel = row + x + sx;
+ uint8_t r = *pixel >> 16;
+ uint8_t g = *pixel >> 8;
+ uint8_t b = *pixel;
+
+ dst[bx + 0] = r;
+ dst[bx + 1] = g;
+ dst[bx + 2] = b;
+ dst[bx + 3] = 255;
+ }
+ dst += dstStride;
+ }
+ break;
+ }
+ case CAIRO_FORMAT_A8: {
+ for (int y = 0; y < sh; ++y) {
+ uint8_t *row = (uint8_t *)(src + srcStride * (y + sy));
+ memcpy(dst, row + sx, dstStride);
+ dst += dstStride;
+ }
+ break;
+ }
+ case CAIRO_FORMAT_A1: {
+ // TODO Should this be totally packed, or maintain a stride divisible by 4?
+ Nan::ThrowError("getImageData for CANVAS_FORMAT_A1 is not yet implemented");
+ break;
+ }
+ case CAIRO_FORMAT_RGB16_565: {
+ for (int y = 0; y < sh; ++y) {
+ uint16_t *row = (uint16_t *)(src + srcStride * (y + sy));
+ memcpy(dst, row + sx, dstStride);
+ dst += dstStride;
+ }
+ break;
+ }
+#ifdef CAIRO_FORMAT_RGB30
+ case CAIRO_FORMAT_RGB30: {
+ // TODO
+ Nan::ThrowError("getImageData for CANVAS_FORMAT_RGB30 is not yet implemented");
+ break;
+ }
+#endif
+ default: {
+ // Unlikely
+ Nan::ThrowError("Invalid pixel format or not an image canvas");
+ return;
+ }
+ }
+
+ const int argc = 3;
+ Local<Int32> swHandle = Nan::New(sw);
+ Local<Int32> shHandle = Nan::New(sh);
+ Local<Value> argv[argc] = { dataArray, swHandle, shHandle };
+
+ Local<Function> ctor = Nan::GetFunction(Nan::New(ImageData::constructor)).ToLocalChecked();
+ Local<Object> instance = Nan::NewInstance(ctor, argc, argv).ToLocalChecked();
+
+ info.GetReturnValue().Set(instance);
+}
+
+/**
+ * Create `ImageData` with the given dimensions or
+ * `ImageData` instance for dimensions.
+ */
+
+NAN_METHOD(Context2d::CreateImageData){
+ Isolate *iso = Isolate::GetCurrent();
+ Context2d *context = Nan::ObjectWrap::Unwrap<Context2d>(info.This());
+ Canvas *canvas = context->canvas();
+ int32_t width, height;
+
+ if (info[0]->IsObject()) {
+ Local<Object> obj = Nan::To<Object>(info[0]).ToLocalChecked();
+ width = Nan::To<int32_t>(Nan::Get(obj, Nan::New("width").ToLocalChecked()).ToLocalChecked()).FromMaybe(0);
+ height = Nan::To<int32_t>(Nan::Get(obj, Nan::New("height").ToLocalChecked()).ToLocalChecked()).FromMaybe(0);
+ } else {
+ width = Nan::To<int32_t>(info[0]).FromMaybe(0);
+ height = Nan::To<int32_t>(info[1]).FromMaybe(0);
+ }
+
+ int stride = canvas->stride();
+ double Bpp = static_cast<double>(stride) / canvas->getWidth();
+ int nBytes = static_cast<int>(Bpp * width * height + .5);
+
+ Local<ArrayBuffer> ab = ArrayBuffer::New(iso, nBytes);
+ Local<Object> arr;
+
+ if (canvas->backend()->getFormat() == CAIRO_FORMAT_RGB16_565)
+ arr = Uint16Array::New(ab, 0, nBytes / 2);
+ else
+ arr = Uint8ClampedArray::New(ab, 0, nBytes);
+
+ const int argc = 3;
+ Local<Value> argv[argc] = { arr, Nan::New(width), Nan::New(height) };
+
+ Local<Function> ctor = Nan::GetFunction(Nan::New(ImageData::constructor)).ToLocalChecked();
+ Local<Object> instance = Nan::NewInstance(ctor, argc, argv).ToLocalChecked();
+
+ info.GetReturnValue().Set(instance);
+}
+
+/*
+ * Take a transform matrix and return its components
+ * 0: angle, 1: scaleX, 2: scaleY, 3: skewX, 4: translateX, 5: translateY
+ */
+void decompose_matrix(cairo_matrix_t matrix, double *destination) {
+ double denom = pow(matrix.xx, 2) + pow(matrix.yx, 2);
+ destination[0] = atan2(matrix.yx, matrix.xx);
+ destination[1] = sqrt(denom);
+ destination[2] = (matrix.xx * matrix.yy - matrix.xy * matrix.yx) / destination[1];
+ destination[3] = atan2(matrix.xx * matrix.xy + matrix.yx * matrix.yy, denom);
+ destination[4] = matrix.x0;
+ destination[5] = matrix.y0;
+}
+
+/*
+ * Draw image src image to the destination (context).
+ *
+ * - dx, dy
+ * - dx, dy, dw, dh
+ * - sx, sy, sw, sh, dx, dy, dw, dh
+ *
+ */
+
+NAN_METHOD(Context2d::DrawImage) {
+ int infoLen = info.Length();
+ if (infoLen != 3 && infoLen != 5 && infoLen != 9)
+ return Nan::ThrowTypeError("Invalid arguments");
+
+ if (!info[0]->IsObject())
+ return Nan::ThrowTypeError("The first argument must be an object");
+
+ double args[8];
+ if(!checkArgs(info, args, infoLen - 1, 1))
+ return;
+
+ double sx = 0
+ , sy = 0
+ , sw = 0
+ , sh = 0
+ , dx = 0
+ , dy = 0
+ , dw = 0
+ , dh = 0
+ , source_w = 0
+ , source_h = 0;
+
+ cairo_surface_t *surface;
+
+ Local<Object> obj = Nan::To<Object>(info[0]).ToLocalChecked();
+
+ // Image
+ if (Nan::New(Image::constructor)->HasInstance(obj)) {
+ Image *img = Nan::ObjectWrap::Unwrap<Image>(obj);
+ if (!img->isComplete()) {
+ return Nan::ThrowError("Image given has not completed loading");
+ }
+ source_w = sw = img->width;
+ source_h = sh = img->height;
+ surface = img->surface();
+
+ // Canvas
+ } else if (Nan::New(Canvas::constructor)->HasInstance(obj)) {
+ Canvas *canvas = Nan::ObjectWrap::Unwrap<Canvas>(obj);
+ source_w = sw = canvas->getWidth();
+ source_h = sh = canvas->getHeight();
+ surface = canvas->surface();
+
+ // Invalid
+ } else {
+ return Nan::ThrowTypeError("Image or Canvas expected");
+ }
+
+ Context2d *context = Nan::ObjectWrap::Unwrap<Context2d>(info.This());
+ cairo_t *ctx = context->context();
+
+ // Arguments
+ switch (infoLen) {
+ // img, sx, sy, sw, sh, dx, dy, dw, dh
+ case 9:
+ sx = args[0];
+ sy = args[1];
+ sw = args[2];
+ sh = args[3];
+ dx = args[4];
+ dy = args[5];
+ dw = args[6];
+ dh = args[7];
+ break;
+ // img, dx, dy, dw, dh
+ case 5:
+ dx = args[0];
+ dy = args[1];
+ dw = args[2];
+ dh = args[3];
+ break;
+ // img, dx, dy
+ case 3:
+ dx = args[0];
+ dy = args[1];
+ dw = sw;
+ dh = sh;
+ break;
+ }
+
+ if (!(sw && sh && dw && dh))
+ return;
+
+ // Start draw
+ cairo_save(ctx);
+
+ cairo_matrix_t matrix;
+ double transforms[6];
+ cairo_get_matrix(context->context(), &matrix);
+ decompose_matrix(matrix, transforms);
+ // extract the scale value from the current transform so that we know how many pixels we
+ // need for our extra canvas in the drawImage operation.
+ double current_scale_x = std::abs(transforms[1]);
+ double current_scale_y = std::abs(transforms[2]);
+ double extra_dx = 0;
+ double extra_dy = 0;
+ double fx = dw / sw * current_scale_x; // transforms[1] is scale on X
+ double fy = dh / sh * current_scale_y; // transforms[2] is scale on X
+ bool needScale = dw != sw || dh != sh;
+ bool needCut = sw != source_w || sh != source_h || sx < 0 || sy < 0;
+ bool sameCanvas = surface == context->canvas()->surface();
+ bool needsExtraSurface = sameCanvas || needCut || needScale;
+ cairo_surface_t *surfTemp = NULL;
+ cairo_t *ctxTemp = NULL;
+
+ if (needsExtraSurface) {
+ // we want to create the extra surface as small as possible.
+ // fx and fy are the total scaling we need to apply to sw, sh.
+ // from sw and sh we want to remove the part that is outside the source_w and soruce_h
+ double real_w = sw;
+ double real_h = sh;
+ double translate_x = 0;
+ double translate_y = 0;
+ // if sx or sy are negative, a part of the area represented by sw and sh is empty
+ // because there are empty pixels, so we cut it out.
+ // On the other hand if sx or sy are positive, but sw and sh extend outside the real
+ // source pixels, we cut the area in that case too.
+ if (sx < 0) {
+ extra_dx = -sx * fx;
+ real_w = sw + sx;
+ } else if (sx + sw > source_w) {
+ real_w = sw - (sx + sw - source_w);
+ }
+ if (sy < 0) {
+ extra_dy = -sy * fy;
+ real_h = sh + sy;
+ } else if (sy + sh > source_h) {
+ real_h = sh - (sy + sh - source_h);
+ }
+ // if after cutting we are still bigger than source pixels, we restrict again
+ if (real_w > source_w) {
+ real_w = source_w;
+ }
+ if (real_h > source_h) {
+ real_h = source_h;
+ }
+ // TODO: find a way to limit the surfTemp to real_w and real_h if fx and fy are bigger than 1.
+ // there are no more pixel than the one available in the source, no need to create a bigger surface.
+ surfTemp = cairo_image_surface_create(CAIRO_FORMAT_ARGB32, round(real_w * fx), round(real_h * fy));
+ ctxTemp = cairo_create(surfTemp);
+ cairo_scale(ctxTemp, fx, fy);
+ if (sx > 0) {
+ translate_x = sx;
+ }
+ if (sy > 0) {
+ translate_y = sy;
+ }
+ cairo_set_source_surface(ctxTemp, surface, -translate_x, -translate_y);
+ cairo_pattern_set_filter(cairo_get_source(ctxTemp), context->state->imageSmoothingEnabled ? context->state->patternQuality : CAIRO_FILTER_NEAREST);
+ cairo_pattern_set_extend(cairo_get_source(ctxTemp), CAIRO_EXTEND_REFLECT);
+ cairo_paint_with_alpha(ctxTemp, 1);
+ surface = surfTemp;
+ }
+ // apply shadow if there is one
+ if (context->hasShadow()) {
+ if(context->state->shadowBlur) {
+ // we need to create a new surface in order to blur
+ int pad = context->state->shadowBlur * 2;
+ cairo_surface_t *shadow_surface = cairo_image_surface_create(CAIRO_FORMAT_ARGB32, dw + 2 * pad, dh + 2 * pad);
+ cairo_t *shadow_context = cairo_create(shadow_surface);
+
+ // mask and blur
+ context->setSourceRGBA(shadow_context, context->state->shadow);
+ cairo_mask_surface(shadow_context, surface, pad, pad);
+ context->blur(shadow_surface, context->state->shadowBlur);
+
+ // paint
+ // @note: ShadowBlur looks different in each browser. This implementation matches chrome as close as possible.
+ // The 1.4 offset comes from visual tests with Chrome. I have read the spec and part of the shadowBlur
+ // implementation, and its not immediately clear why an offset is necessary, but without it, the result
+ // in chrome is different.
+ cairo_set_source_surface(ctx, shadow_surface,
+ dx + context->state->shadowOffsetX - pad + 1.4,
+ dy + context->state->shadowOffsetY - pad + 1.4);
+ cairo_paint(ctx);
+ // cleanup
+ cairo_destroy(shadow_context);
+ cairo_surface_destroy(shadow_surface);
+ } else {
+ context->setSourceRGBA(context->state->shadow);
+ cairo_mask_surface(ctx, surface,
+ dx + (context->state->shadowOffsetX),
+ dy + (context->state->shadowOffsetY));
+ }
+ }
+
+ double scaled_dx = dx;
+ double scaled_dy = dy;
+
+ if (needsExtraSurface && (current_scale_x != 1 || current_scale_y != 1)) {
+ // in this case our surface contains already current_scale_x, we need to scale back
+ cairo_scale(ctx, 1 / current_scale_x, 1 / current_scale_y);
+ scaled_dx *= current_scale_x;
+ scaled_dy *= current_scale_y;
+ }
+ // Paint
+ cairo_set_source_surface(ctx, surface, scaled_dx + extra_dx, scaled_dy + extra_dy);
+ cairo_pattern_set_filter(cairo_get_source(ctx), context->state->imageSmoothingEnabled ? context->state->patternQuality : CAIRO_FILTER_NEAREST);
+ cairo_pattern_set_extend(cairo_get_source(ctx), CAIRO_EXTEND_NONE);
+ cairo_paint_with_alpha(ctx, context->state->globalAlpha);
+
+ cairo_restore(ctx);
+
+ if (needsExtraSurface) {
+ cairo_destroy(ctxTemp);
+ cairo_surface_destroy(surfTemp);
+ }
+}
+
+/*
+ * Get global alpha.
+ */
+
+NAN_GETTER(Context2d::GetGlobalAlpha) {
+ CHECK_RECEIVER(Context2d.GetGlobalAlpha);
+ Context2d *context = Nan::ObjectWrap::Unwrap<Context2d>(info.This());
+ info.GetReturnValue().Set(Nan::New<Number>(context->state->globalAlpha));
+}
+
+/*
+ * Set global alpha.
+ */
+
+NAN_SETTER(Context2d::SetGlobalAlpha) {
+ CHECK_RECEIVER(Context2d.SetGlobalAlpha);
+ double n = Nan::To<double>(value).FromMaybe(0);
+ if (n >= 0 && n <= 1) {
+ Context2d *context = Nan::ObjectWrap::Unwrap<Context2d>(info.This());
+ context->state->globalAlpha = n;
+ }
+}
+
+/*
+ * Get global composite operation.
+ */
+
+NAN_GETTER(Context2d::GetGlobalCompositeOperation) {
+ CHECK_RECEIVER(Context2d.GetGlobalCompositeOperation);
+ Context2d *context = Nan::ObjectWrap::Unwrap<Context2d>(info.This());
+ cairo_t *ctx = context->context();
+
+ const char *op = "source-over";
+ switch (cairo_get_operator(ctx)) {
+ // composite modes:
+ case CAIRO_OPERATOR_CLEAR: op = "clear"; break;
+ case CAIRO_OPERATOR_SOURCE: op = "copy"; break;
+ case CAIRO_OPERATOR_DEST: op = "destination"; break;
+ case CAIRO_OPERATOR_OVER: op = "source-over"; break;
+ case CAIRO_OPERATOR_DEST_OVER: op = "destination-over"; break;
+ case CAIRO_OPERATOR_IN: op = "source-in"; break;
+ case CAIRO_OPERATOR_DEST_IN: op = "destination-in"; break;
+ case CAIRO_OPERATOR_OUT: op = "source-out"; break;
+ case CAIRO_OPERATOR_DEST_OUT: op = "destination-out"; break;
+ case CAIRO_OPERATOR_ATOP: op = "source-atop"; break;
+ case CAIRO_OPERATOR_DEST_ATOP: op = "destination-atop"; break;
+ case CAIRO_OPERATOR_XOR: op = "xor"; break;
+ case CAIRO_OPERATOR_ADD: op = "lighter"; break;
+ // blend modes:
+ // Note: "source-over" and "normal" are synonyms. Chrome and FF both report
+ // "source-over" after setting gCO to "normal".
+ // case CAIRO_OPERATOR_OVER: op = "normal";
+ case CAIRO_OPERATOR_MULTIPLY: op = "multiply"; break;
+ case CAIRO_OPERATOR_SCREEN: op = "screen"; break;
+ case CAIRO_OPERATOR_OVERLAY: op = "overlay"; break;
+ case CAIRO_OPERATOR_DARKEN: op = "darken"; break;
+ case CAIRO_OPERATOR_LIGHTEN: op = "lighten"; break;
+ case CAIRO_OPERATOR_COLOR_DODGE: op = "color-dodge"; break;
+ case CAIRO_OPERATOR_COLOR_BURN: op = "color-burn"; break;
+ case CAIRO_OPERATOR_HARD_LIGHT: op = "hard-light"; break;
+ case CAIRO_OPERATOR_SOFT_LIGHT: op = "soft-light"; break;
+ case CAIRO_OPERATOR_DIFFERENCE: op = "difference"; break;
+ case CAIRO_OPERATOR_EXCLUSION: op = "exclusion"; break;
+ case CAIRO_OPERATOR_HSL_HUE: op = "hue"; break;
+ case CAIRO_OPERATOR_HSL_SATURATION: op = "saturation"; break;
+ case CAIRO_OPERATOR_HSL_COLOR: op = "color"; break;
+ case CAIRO_OPERATOR_HSL_LUMINOSITY: op = "luminosity"; break;
+ // non-standard:
+ case CAIRO_OPERATOR_SATURATE: op = "saturate"; break;
+ }
+
+ info.GetReturnValue().Set(Nan::New(op).ToLocalChecked());
+}
+
+/*
+ * Set pattern quality.
+ */
+
+NAN_SETTER(Context2d::SetPatternQuality) {
+ CHECK_RECEIVER(Context2d.SetPatternQuality);
+ Context2d *context = Nan::ObjectWrap::Unwrap<Context2d>(info.This());
+ Nan::Utf8String quality(Nan::To<String>(value).ToLocalChecked());
+ if (0 == strcmp("fast", *quality)) {
+ context->state->patternQuality = CAIRO_FILTER_FAST;
+ } else if (0 == strcmp("good", *quality)) {
+ context->state->patternQuality = CAIRO_FILTER_GOOD;
+ } else if (0 == strcmp("best", *quality)) {
+ context->state->patternQuality = CAIRO_FILTER_BEST;
+ } else if (0 == strcmp("nearest", *quality)) {
+ context->state->patternQuality = CAIRO_FILTER_NEAREST;
+ } else if (0 == strcmp("bilinear", *quality)) {
+ context->state->patternQuality = CAIRO_FILTER_BILINEAR;
+ }
+}
+
+/*
+ * Get pattern quality.
+ */
+
+NAN_GETTER(Context2d::GetPatternQuality) {
+ CHECK_RECEIVER(Context2d.GetPatternQuality);
+ Context2d *context = Nan::ObjectWrap::Unwrap<Context2d>(info.This());
+ const char *quality;
+ switch (context->state->patternQuality) {
+ case CAIRO_FILTER_FAST: quality = "fast"; break;
+ case CAIRO_FILTER_BEST: quality = "best"; break;
+ case CAIRO_FILTER_NEAREST: quality = "nearest"; break;
+ case CAIRO_FILTER_BILINEAR: quality = "bilinear"; break;
+ default: quality = "good";
+ }
+ info.GetReturnValue().Set(Nan::New(quality).ToLocalChecked());
+}
+
+/*
+ * Set ImageSmoothingEnabled value.
+ */
+
+NAN_SETTER(Context2d::SetImageSmoothingEnabled) {
+ CHECK_RECEIVER(Context2d.SetImageSmoothingEnabled);
+ Context2d *context = Nan::ObjectWrap::Unwrap<Context2d>(info.This());
+ context->state->imageSmoothingEnabled = Nan::To<bool>(value).FromMaybe(false);
+}
+
+/*
+ * Get pattern quality.
+ */
+
+NAN_GETTER(Context2d::GetImageSmoothingEnabled) {
+ CHECK_RECEIVER(Context2d.GetImageSmoothingEnabled);
+ Context2d *context = Nan::ObjectWrap::Unwrap<Context2d>(info.This());
+ info.GetReturnValue().Set(Nan::New<Boolean>(context->state->imageSmoothingEnabled));
+}
+
+/*
+ * Set global composite operation.
+ */
+
+NAN_SETTER(Context2d::SetGlobalCompositeOperation) {
+ CHECK_RECEIVER(Context2d.SetGlobalCompositeOperation);
+ Context2d *context = Nan::ObjectWrap::Unwrap<Context2d>(info.This());
+ cairo_t *ctx = context->context();
+ Nan::Utf8String opStr(Nan::To<String>(value).ToLocalChecked()); // Unlike CSS colors, this *is* case-sensitive
+ const std::map<std::string, cairo_operator_t> blendmodes = {
+ // composite modes:
+ {"clear", CAIRO_OPERATOR_CLEAR},
+ {"copy", CAIRO_OPERATOR_SOURCE},
+ {"destination", CAIRO_OPERATOR_DEST}, // this seems to have been omitted from the spec
+ {"source-over", CAIRO_OPERATOR_OVER},
+ {"destination-over", CAIRO_OPERATOR_DEST_OVER},
+ {"source-in", CAIRO_OPERATOR_IN},
+ {"destination-in", CAIRO_OPERATOR_DEST_IN},
+ {"source-out", CAIRO_OPERATOR_OUT},
+ {"destination-out", CAIRO_OPERATOR_DEST_OUT},
+ {"source-atop", CAIRO_OPERATOR_ATOP},
+ {"destination-atop", CAIRO_OPERATOR_DEST_ATOP},
+ {"xor", CAIRO_OPERATOR_XOR},
+ {"lighter", CAIRO_OPERATOR_ADD},
+ // blend modes:
+ {"normal", CAIRO_OPERATOR_OVER},
+ {"multiply", CAIRO_OPERATOR_MULTIPLY},
+ {"screen", CAIRO_OPERATOR_SCREEN},
+ {"overlay", CAIRO_OPERATOR_OVERLAY},
+ {"darken", CAIRO_OPERATOR_DARKEN},
+ {"lighten", CAIRO_OPERATOR_LIGHTEN},
+ {"color-dodge", CAIRO_OPERATOR_COLOR_DODGE},
+ {"color-burn", CAIRO_OPERATOR_COLOR_BURN},
+ {"hard-light", CAIRO_OPERATOR_HARD_LIGHT},
+ {"soft-light", CAIRO_OPERATOR_SOFT_LIGHT},
+ {"difference", CAIRO_OPERATOR_DIFFERENCE},
+ {"exclusion", CAIRO_OPERATOR_EXCLUSION},
+ {"hue", CAIRO_OPERATOR_HSL_HUE},
+ {"saturation", CAIRO_OPERATOR_HSL_SATURATION},
+ {"color", CAIRO_OPERATOR_HSL_COLOR},
+ {"luminosity", CAIRO_OPERATOR_HSL_LUMINOSITY},
+ // non-standard:
+ {"saturate", CAIRO_OPERATOR_SATURATE}
+ };
+ auto op = blendmodes.find(*opStr);
+ if (op != blendmodes.end()) cairo_set_operator(ctx, op->second);
+}
+
+/*
+ * Get shadow offset x.
+ */
+
+NAN_GETTER(Context2d::GetShadowOffsetX) {
+ CHECK_RECEIVER(Context2d.GetShadowOffsetX);
+ Context2d *context = Nan::ObjectWrap::Unwrap<Context2d>(info.This());
+ info.GetReturnValue().Set(Nan::New<Number>(context->state->shadowOffsetX));
+}
+
+/*
+ * Set shadow offset x.
+ */
+
+NAN_SETTER(Context2d::SetShadowOffsetX) {
+ CHECK_RECEIVER(Context2d.SetShadowOffsetX);
+ Context2d *context = Nan::ObjectWrap::Unwrap<Context2d>(info.This());
+ context->state->shadowOffsetX = Nan::To<double>(value).FromMaybe(0);
+}
+
+/*
+ * Get shadow offset y.
+ */
+
+NAN_GETTER(Context2d::GetShadowOffsetY) {
+ CHECK_RECEIVER(Context2d.GetShadowOffsetY);
+ Context2d *context = Nan::ObjectWrap::Unwrap<Context2d>(info.This());
+ info.GetReturnValue().Set(Nan::New<Number>(context->state->shadowOffsetY));
+}
+
+/*
+ * Set shadow offset y.
+ */
+
+NAN_SETTER(Context2d::SetShadowOffsetY) {
+ CHECK_RECEIVER(Context2d.SetShadowOffsetY);
+ Context2d *context = Nan::ObjectWrap::Unwrap<Context2d>(info.This());
+ context->state->shadowOffsetY = Nan::To<double>(value).FromMaybe(0);
+}
+
+/*
+ * Get shadow blur.
+ */
+
+NAN_GETTER(Context2d::GetShadowBlur) {
+ CHECK_RECEIVER(Context2d.GetShadowBlur);
+ Context2d *context = Nan::ObjectWrap::Unwrap<Context2d>(info.This());
+ info.GetReturnValue().Set(Nan::New<Number>(context->state->shadowBlur));
+}
+
+/*
+ * Set shadow blur.
+ */
+
+NAN_SETTER(Context2d::SetShadowBlur) {
+ CHECK_RECEIVER(Context2d.SetShadowBlur);
+ int n = Nan::To<double>(value).FromMaybe(0);
+ if (n >= 0) {
+ Context2d *context = Nan::ObjectWrap::Unwrap<Context2d>(info.This());
+ context->state->shadowBlur = n;
+ }
+}
+
+/*
+ * Get current antialiasing setting.
+ */
+
+NAN_GETTER(Context2d::GetAntiAlias) {
+ CHECK_RECEIVER(Context2d.GetAntiAlias);
+ Context2d *context = Nan::ObjectWrap::Unwrap<Context2d>(info.This());
+ const char *aa;
+ switch (cairo_get_antialias(context->context())) {
+ case CAIRO_ANTIALIAS_NONE: aa = "none"; break;
+ case CAIRO_ANTIALIAS_GRAY: aa = "gray"; break;
+ case CAIRO_ANTIALIAS_SUBPIXEL: aa = "subpixel"; break;
+ default: aa = "default";
+ }
+ info.GetReturnValue().Set(Nan::New(aa).ToLocalChecked());
+}
+
+/*
+ * Set antialiasing.
+ */
+
+NAN_SETTER(Context2d::SetAntiAlias) {
+ CHECK_RECEIVER(Context2d.SetAntiAlias);
+ Nan::Utf8String str(Nan::To<String>(value).ToLocalChecked());
+ Context2d *context = Nan::ObjectWrap::Unwrap<Context2d>(info.This());
+ cairo_t *ctx = context->context();
+ cairo_antialias_t a;
+ if (0 == strcmp("none", *str)) {
+ a = CAIRO_ANTIALIAS_NONE;
+ } else if (0 == strcmp("default", *str)) {
+ a = CAIRO_ANTIALIAS_DEFAULT;
+ } else if (0 == strcmp("gray", *str)) {
+ a = CAIRO_ANTIALIAS_GRAY;
+ } else if (0 == strcmp("subpixel", *str)) {
+ a = CAIRO_ANTIALIAS_SUBPIXEL;
+ } else {
+ a = cairo_get_antialias(ctx);
+ }
+ cairo_set_antialias(ctx, a);
+}
+
+/*
+ * Get text drawing mode.
+ */
+
+NAN_GETTER(Context2d::GetTextDrawingMode) {
+ CHECK_RECEIVER(Context2d.GetTextDrawingMode);
+ Context2d *context = Nan::ObjectWrap::Unwrap<Context2d>(info.This());
+ const char *mode;
+ if (context->state->textDrawingMode == TEXT_DRAW_PATHS) {
+ mode = "path";
+ } else if (context->state->textDrawingMode == TEXT_DRAW_GLYPHS) {
+ mode = "glyph";
+ } else {
+ mode = "unknown";
+ }
+ info.GetReturnValue().Set(Nan::New(mode).ToLocalChecked());
+}
+
+/*
+ * Set text drawing mode.
+ */
+
+NAN_SETTER(Context2d::SetTextDrawingMode) {
+ CHECK_RECEIVER(Context2d.SetTextDrawingMode);
+ Nan::Utf8String str(Nan::To<String>(value).ToLocalChecked());
+ Context2d *context = Nan::ObjectWrap::Unwrap<Context2d>(info.This());
+ if (0 == strcmp("path", *str)) {
+ context->state->textDrawingMode = TEXT_DRAW_PATHS;
+ } else if (0 == strcmp("glyph", *str)) {
+ context->state->textDrawingMode = TEXT_DRAW_GLYPHS;
+ }
+}
+
+/*
+ * Get filter.
+ */
+
+NAN_GETTER(Context2d::GetQuality) {
+ CHECK_RECEIVER(Context2d.GetQuality);
+ Context2d *context = Nan::ObjectWrap::Unwrap<Context2d>(info.This());
+ const char *filter;
+ switch (cairo_pattern_get_filter(cairo_get_source(context->context()))) {
+ case CAIRO_FILTER_FAST: filter = "fast"; break;
+ case CAIRO_FILTER_BEST: filter = "best"; break;
+ case CAIRO_FILTER_NEAREST: filter = "nearest"; break;
+ case CAIRO_FILTER_BILINEAR: filter = "bilinear"; break;
+ default: filter = "good";
+ }
+ info.GetReturnValue().Set(Nan::New(filter).ToLocalChecked());
+}
+
+/*
+ * Set filter.
+ */
+
+NAN_SETTER(Context2d::SetQuality) {
+ CHECK_RECEIVER(Context2d.SetQuality);
+ Nan::Utf8String str(Nan::To<String>(value).ToLocalChecked());
+ Context2d *context = Nan::ObjectWrap::Unwrap<Context2d>(info.This());
+ cairo_filter_t filter;
+ if (0 == strcmp("fast", *str)) {
+ filter = CAIRO_FILTER_FAST;
+ } else if (0 == strcmp("best", *str)) {
+ filter = CAIRO_FILTER_BEST;
+ } else if (0 == strcmp("nearest", *str)) {
+ filter = CAIRO_FILTER_NEAREST;
+ } else if (0 == strcmp("bilinear", *str)) {
+ filter = CAIRO_FILTER_BILINEAR;
+ } else {
+ filter = CAIRO_FILTER_GOOD;
+ }
+ cairo_pattern_set_filter(cairo_get_source(context->context()), filter);
+}
+
+/*
+ * Helper for get current transform matrix
+ */
+
+Local<Object>
+get_current_transform(Context2d *context) {
+ Isolate *iso = Isolate::GetCurrent();
+
+ Local<Float64Array> arr = Float64Array::New(ArrayBuffer::New(iso, 48), 0, 6);
+ Nan::TypedArrayContents<double> dest(arr);
+ cairo_matrix_t matrix;
+ cairo_get_matrix(context->context(), &matrix);
+ (*dest)[0] = matrix.xx;
+ (*dest)[1] = matrix.yx;
+ (*dest)[2] = matrix.xy;
+ (*dest)[3] = matrix.yy;
+ (*dest)[4] = matrix.x0;
+ (*dest)[5] = matrix.y0;
+
+ const int argc = 1;
+ Local<Value> argv[argc] = { arr };
+ return Nan::NewInstance(context->_DOMMatrix.Get(iso), argc, argv).ToLocalChecked();
+}
+
+/*
+ * Helper for get/set transform.
+ */
+
+void parse_matrix_from_object(cairo_matrix_t &matrix, Local<Object> mat) {
+ cairo_matrix_init(&matrix,
+ Nan::To<double>(Nan::Get(mat, Nan::New("a").ToLocalChecked()).ToLocalChecked()).FromMaybe(0),
+ Nan::To<double>(Nan::Get(mat, Nan::New("b").ToLocalChecked()).ToLocalChecked()).FromMaybe(0),
+ Nan::To<double>(Nan::Get(mat, Nan::New("c").ToLocalChecked()).ToLocalChecked()).FromMaybe(0),
+ Nan::To<double>(Nan::Get(mat, Nan::New("d").ToLocalChecked()).ToLocalChecked()).FromMaybe(0),
+ Nan::To<double>(Nan::Get(mat, Nan::New("e").ToLocalChecked()).ToLocalChecked()).FromMaybe(0),
+ Nan::To<double>(Nan::Get(mat, Nan::New("f").ToLocalChecked()).ToLocalChecked()).FromMaybe(0)
+ );
+}
+
+
+/*
+ * Get current transform.
+ */
+
+NAN_GETTER(Context2d::GetCurrentTransform) {
+ CHECK_RECEIVER(Context2d.GetCurrentTransform);
+ Context2d *context = Nan::ObjectWrap::Unwrap<Context2d>(info.This());
+ Local<Object> instance = get_current_transform(context);
+
+ info.GetReturnValue().Set(instance);
+}
+
+/*
+ * Set current transform.
+ */
+
+NAN_SETTER(Context2d::SetCurrentTransform) {
+ CHECK_RECEIVER(Context2d.SetCurrentTransform);
+ Context2d *context = Nan::ObjectWrap::Unwrap<Context2d>(info.This());
+ Local<Context> ctx = Nan::GetCurrentContext();
+ Local<Object> mat = Nan::To<Object>(value).ToLocalChecked();
+
+#if NODE_MAJOR_VERSION >= 8
+ if (!mat->InstanceOf(ctx, _DOMMatrix.Get(Isolate::GetCurrent())).ToChecked()) {
+ return Nan::ThrowTypeError("Expected DOMMatrix");
+ }
+#endif
+
+ cairo_matrix_t matrix;
+ parse_matrix_from_object(matrix, mat);
+
+ cairo_transform(context->context(), &matrix);
+}
+
+/*
+ * Get current fill style.
+ */
+
+NAN_GETTER(Context2d::GetFillStyle) {
+ CHECK_RECEIVER(Context2d.GetFillStyle);
+ Context2d *context = Nan::ObjectWrap::Unwrap<Context2d>(info.This());
+ Isolate *iso = Isolate::GetCurrent();
+ Local<Value> style;
+
+ if (context->_fillStyle.IsEmpty())
+ style = context->_getFillColor();
+ else
+ style = context->_fillStyle.Get(iso);
+
+ info.GetReturnValue().Set(style);
+}
+
+/*
+ * Set current fill style.
+ */
+
+NAN_SETTER(Context2d::SetFillStyle) {
+ CHECK_RECEIVER(Context2d.SetFillStyle);
+ Context2d *context = Nan::ObjectWrap::Unwrap<Context2d>(info.This());
+
+ if (value->IsString()) {
+ MaybeLocal<String> mstr = Nan::To<String>(value);
+ if (mstr.IsEmpty()) return;
+ Local<String> str = mstr.ToLocalChecked();
+ context->_fillStyle.Reset();
+ context->_setFillColor(str);
+ } else if (value->IsObject()) {
+ Local<Object> obj = Nan::To<Object>(value).ToLocalChecked();
+ if (Nan::New(Gradient::constructor)->HasInstance(obj)) {
+ context->_fillStyle.Reset(value);
+ Gradient *grad = Nan::ObjectWrap::Unwrap<Gradient>(obj);
+ context->state->fillGradient = grad->pattern();
+ } else if (Nan::New(Pattern::constructor)->HasInstance(obj)) {
+ context->_fillStyle.Reset(value);
+ Pattern *pattern = Nan::ObjectWrap::Unwrap<Pattern>(obj);
+ context->state->fillPattern = pattern->pattern();
+ }
+ }
+}
+
+/*
+ * Get current stroke style.
+ */
+
+NAN_GETTER(Context2d::GetStrokeStyle) {
+ CHECK_RECEIVER(Context2d.GetStrokeStyle);
+ Context2d *context = Nan::ObjectWrap::Unwrap<Context2d>(info.This());
+ Local<Value> style;
+
+ if (context->_strokeStyle.IsEmpty())
+ style = context->_getStrokeColor();
+ else
+ style = context->_strokeStyle.Get(Isolate::GetCurrent());
+
+ info.GetReturnValue().Set(style);
+}
+
+/*
+ * Set current stroke style.
+ */
+
+NAN_SETTER(Context2d::SetStrokeStyle) {
+ CHECK_RECEIVER(Context2d.SetStrokeStyle);
+ Context2d *context = Nan::ObjectWrap::Unwrap<Context2d>(info.This());
+
+ if (value->IsString()) {
+ MaybeLocal<String> mstr = Nan::To<String>(value);
+ if (mstr.IsEmpty()) return;
+ Local<String> str = mstr.ToLocalChecked();
+ context->_strokeStyle.Reset();
+ context->_setStrokeColor(str);
+ } else if (value->IsObject()) {
+ Local<Object> obj = Nan::To<Object>(value).ToLocalChecked();
+ if (Nan::New(Gradient::constructor)->HasInstance(obj)) {
+ context->_strokeStyle.Reset(value);
+ Gradient *grad = Nan::ObjectWrap::Unwrap<Gradient>(obj);
+ context->state->strokeGradient = grad->pattern();
+ } else if (Nan::New(Pattern::constructor)->HasInstance(obj)) {
+ context->_strokeStyle.Reset(value);
+ Pattern *pattern = Nan::ObjectWrap::Unwrap<Pattern>(obj);
+ context->state->strokePattern = pattern->pattern();
+ }
+ }
+}
+
+/*
+ * Get miter limit.
+ */
+
+NAN_GETTER(Context2d::GetMiterLimit) {
+ CHECK_RECEIVER(Context2d.GetMiterLimit);
+ Context2d *context = Nan::ObjectWrap::Unwrap<Context2d>(info.This());
+ info.GetReturnValue().Set(Nan::New<Number>(cairo_get_miter_limit(context->context())));
+}
+
+/*
+ * Set miter limit.
+ */
+
+NAN_SETTER(Context2d::SetMiterLimit) {
+ CHECK_RECEIVER(Context2d.SetMiterLimit);
+ double n = Nan::To<double>(value).FromMaybe(0);
+ if (n > 0) {
+ Context2d *context = Nan::ObjectWrap::Unwrap<Context2d>(info.This());
+ cairo_set_miter_limit(context->context(), n);
+ }
+}
+
+/*
+ * Get line width.
+ */
+
+NAN_GETTER(Context2d::GetLineWidth) {
+ CHECK_RECEIVER(Context2d.GetLineWidth);
+ Context2d *context = Nan::ObjectWrap::Unwrap<Context2d>(info.This());
+ info.GetReturnValue().Set(Nan::New<Number>(cairo_get_line_width(context->context())));
+}
+
+/*
+ * Set line width.
+ */
+
+NAN_SETTER(Context2d::SetLineWidth) {
+ CHECK_RECEIVER(Context2d.SetLineWidth);
+ double n = Nan::To<double>(value).FromMaybe(0);
+ if (n > 0 && n != std::numeric_limits<double>::infinity()) {
+ Context2d *context = Nan::ObjectWrap::Unwrap<Context2d>(info.This());
+ cairo_set_line_width(context->context(), n);
+ }
+}
+
+/*
+ * Get line join.
+ */
+
+NAN_GETTER(Context2d::GetLineJoin) {
+ CHECK_RECEIVER(Context2d.GetLineJoin);
+ Context2d *context = Nan::ObjectWrap::Unwrap<Context2d>(info.This());
+ const char *join;
+ switch (cairo_get_line_join(context->context())) {
+ case CAIRO_LINE_JOIN_BEVEL: join = "bevel"; break;
+ case CAIRO_LINE_JOIN_ROUND: join = "round"; break;
+ default: join = "miter";
+ }
+ info.GetReturnValue().Set(Nan::New(join).ToLocalChecked());
+}
+
+/*
+ * Set line join.
+ */
+
+NAN_SETTER(Context2d::SetLineJoin) {
+ CHECK_RECEIVER(Context2d.SetLineJoin);
+ Context2d *context = Nan::ObjectWrap::Unwrap<Context2d>(info.This());
+ cairo_t *ctx = context->context();
+ Nan::Utf8String type(Nan::To<String>(value).ToLocalChecked());
+ if (0 == strcmp("round", *type)) {
+ cairo_set_line_join(ctx, CAIRO_LINE_JOIN_ROUND);
+ } else if (0 == strcmp("bevel", *type)) {
+ cairo_set_line_join(ctx, CAIRO_LINE_JOIN_BEVEL);
+ } else {
+ cairo_set_line_join(ctx, CAIRO_LINE_JOIN_MITER);
+ }
+}
+
+/*
+ * Get line cap.
+ */
+
+NAN_GETTER(Context2d::GetLineCap) {
+ CHECK_RECEIVER(Context2d.GetLineCap);
+ Context2d *context = Nan::ObjectWrap::Unwrap<Context2d>(info.This());
+ const char *cap;
+ switch (cairo_get_line_cap(context->context())) {
+ case CAIRO_LINE_CAP_ROUND: cap = "round"; break;
+ case CAIRO_LINE_CAP_SQUARE: cap = "square"; break;
+ default: cap = "butt";
+ }
+ info.GetReturnValue().Set(Nan::New(cap).ToLocalChecked());
+}
+
+/*
+ * Set line cap.
+ */
+
+NAN_SETTER(Context2d::SetLineCap) {
+ CHECK_RECEIVER(Context2d.SetLineCap);
+ Context2d *context = Nan::ObjectWrap::Unwrap<Context2d>(info.This());
+ cairo_t *ctx = context->context();
+ Nan::Utf8String type(Nan::To<String>(value).ToLocalChecked());
+ if (0 == strcmp("round", *type)) {
+ cairo_set_line_cap(ctx, CAIRO_LINE_CAP_ROUND);
+ } else if (0 == strcmp("square", *type)) {
+ cairo_set_line_cap(ctx, CAIRO_LINE_CAP_SQUARE);
+ } else {
+ cairo_set_line_cap(ctx, CAIRO_LINE_CAP_BUTT);
+ }
+}
+
+/*
+ * Check if the given point is within the current path.
+ */
+
+NAN_METHOD(Context2d::IsPointInPath) {
+ if (info[0]->IsNumber() && info[1]->IsNumber()) {
+ Context2d *context = Nan::ObjectWrap::Unwrap<Context2d>(info.This());
+ cairo_t *ctx = context->context();
+ double x = Nan::To<double>(info[0]).FromMaybe(0)
+ , y = Nan::To<double>(info[1]).FromMaybe(0);
+ context->setFillRule(info[2]);
+ info.GetReturnValue().Set(Nan::New<Boolean>(cairo_in_fill(ctx, x, y) || cairo_in_stroke(ctx, x, y)));
+ return;
+ }
+ info.GetReturnValue().Set(Nan::False());
+}
+
+/*
+ * Set shadow color.
+ */
+
+NAN_SETTER(Context2d::SetShadowColor) {
+ CHECK_RECEIVER(Context2d.SetShadowColor);
+ short ok;
+ Nan::Utf8String str(Nan::To<String>(value).ToLocalChecked());
+ uint32_t rgba = rgba_from_string(*str, &ok);
+ if (ok) {
+ Context2d *context = Nan::ObjectWrap::Unwrap<Context2d>(info.This());
+ context->state->shadow = rgba_create(rgba);
+ }
+}
+
+/*
+ * Get shadow color.
+ */
+
+NAN_GETTER(Context2d::GetShadowColor) {
+ CHECK_RECEIVER(Context2d.GetShadowColor);
+ char buf[64];
+ Context2d *context = Nan::ObjectWrap::Unwrap<Context2d>(info.This());
+ rgba_to_string(context->state->shadow, buf, sizeof(buf));
+ info.GetReturnValue().Set(Nan::New<String>(buf).ToLocalChecked());
+}
+
+/*
+ * Set fill color, used internally for fillStyle=
+ */
+
+void Context2d::_setFillColor(Local<Value> arg) {
+ short ok;
+ Nan::Utf8String str(arg);
+ uint32_t rgba = rgba_from_string(*str, &ok);
+ if (!ok) return;
+ state->fillPattern = state->fillGradient = NULL;
+ state->fill = rgba_create(rgba);
+}
+
+/*
+ * Get fill color.
+ */
+
+Local<Value> Context2d::_getFillColor() {
+ char buf[64];
+ rgba_to_string(state->fill, buf, sizeof(buf));
+ return Nan::New<String>(buf).ToLocalChecked();
+}
+
+/*
+ * Set stroke color, used internally for strokeStyle=
+ */
+
+void Context2d::_setStrokeColor(Local<Value> arg) {
+ short ok;
+ Nan::Utf8String str(arg);
+ uint32_t rgba = rgba_from_string(*str, &ok);
+ if (!ok) return;
+ state->strokePattern = state->strokeGradient = NULL;
+ state->stroke = rgba_create(rgba);
+}
+
+/*
+ * Get stroke color.
+ */
+
+Local<Value> Context2d::_getStrokeColor() {
+ char buf[64];
+ rgba_to_string(state->stroke, buf, sizeof(buf));
+ return Nan::New<String>(buf).ToLocalChecked();
+}
+
+NAN_METHOD(Context2d::CreatePattern) {
+ Local<Value> image = info[0];
+ Local<Value> repetition = info[1];
+
+ if (!Nan::To<bool>(repetition).FromMaybe(false))
+ repetition = Nan::New("repeat").ToLocalChecked();
+
+ const int argc = 2;
+ Local<Value> argv[argc] = { image, repetition };
+
+ Local<Function> ctor = Nan::GetFunction(Nan::New(Pattern::constructor)).ToLocalChecked();
+ Local<Object> instance = Nan::NewInstance(ctor, argc, argv).ToLocalChecked();
+
+ info.GetReturnValue().Set(instance);
+}
+
+NAN_METHOD(Context2d::CreateLinearGradient) {
+ const int argc = 4;
+ Local<Value> argv[argc] = { info[0], info[1], info[2], info[3] };
+
+ Local<Function> ctor = Nan::GetFunction(Nan::New(Gradient::constructor)).ToLocalChecked();
+ Local<Object> instance = Nan::NewInstance(ctor, argc, argv).ToLocalChecked();
+
+ info.GetReturnValue().Set(instance);
+}
+
+NAN_METHOD(Context2d::CreateRadialGradient) {
+ const int argc = 6;
+ Local<Value> argv[argc] = { info[0], info[1], info[2], info[3], info[4], info[5] };
+
+ Local<Function> ctor = Nan::GetFunction(Nan::New(Gradient::constructor)).ToLocalChecked();
+ Local<Object> instance = Nan::NewInstance(ctor, argc, argv).ToLocalChecked();
+
+ info.GetReturnValue().Set(instance);
+}
+
+/*
+ * Bezier curve.
+ */
+
+NAN_METHOD(Context2d::BezierCurveTo) {
+ double args[6];
+ if(!checkArgs(info, args, 6))
+ return;
+
+ Context2d *context = Nan::ObjectWrap::Unwrap<Context2d>(info.This());
+ cairo_curve_to(context->context()
+ , args[0]
+ , args[1]
+ , args[2]
+ , args[3]
+ , args[4]
+ , args[5]);
+}
+
+/*
+ * Quadratic curve approximation from libsvg-cairo.
+ */
+
+NAN_METHOD(Context2d::QuadraticCurveTo) {
+ double args[4];
+ if(!checkArgs(info, args, 4))
+ return;
+
+ Context2d *context = Nan::ObjectWrap::Unwrap<Context2d>(info.This());
+ cairo_t *ctx = context->context();
+
+ double x, y
+ , x1 = args[0]
+ , y1 = args[1]
+ , x2 = args[2]
+ , y2 = args[3];
+
+ cairo_get_current_point(ctx, &x, &y);
+
+ if (0 == x && 0 == y) {
+ x = x1;
+ y = y1;
+ }
+
+ cairo_curve_to(ctx
+ , x + 2.0 / 3.0 * (x1 - x), y + 2.0 / 3.0 * (y1 - y)
+ , x2 + 2.0 / 3.0 * (x1 - x2), y2 + 2.0 / 3.0 * (y1 - y2)
+ , x2
+ , y2);
+}
+
+/*
+ * Save state.
+ */
+
+NAN_METHOD(Context2d::Save) {
+ Context2d *context = Nan::ObjectWrap::Unwrap<Context2d>(info.This());
+ context->save();
+}
+
+/*
+ * Restore state.
+ */
+
+NAN_METHOD(Context2d::Restore) {
+ Context2d *context = Nan::ObjectWrap::Unwrap<Context2d>(info.This());
+ context->restore();
+}
+
+/*
+ * Creates a new subpath.
+ */
+
+NAN_METHOD(Context2d::BeginPath) {
+ Context2d *context = Nan::ObjectWrap::Unwrap<Context2d>(info.This());
+ cairo_new_path(context->context());
+}
+
+/*
+ * Marks the subpath as closed.
+ */
+
+NAN_METHOD(Context2d::ClosePath) {
+ Context2d *context = Nan::ObjectWrap::Unwrap<Context2d>(info.This());
+ cairo_close_path(context->context());
+}
+
+/*
+ * Rotate transformation.
+ */
+
+NAN_METHOD(Context2d::Rotate) {
+ double args[1];
+ if(!checkArgs(info, args, 1))
+ return;
+
+ Context2d *context = Nan::ObjectWrap::Unwrap<Context2d>(info.This());
+ cairo_rotate(context->context(), args[0]);
+}
+
+/*
+ * Modify the CTM.
+ */
+
+NAN_METHOD(Context2d::Transform) {
+ double args[6];
+ if(!checkArgs(info, args, 6))
+ return;
+
+ cairo_matrix_t matrix;
+ cairo_matrix_init(&matrix
+ , args[0]
+ , args[1]
+ , args[2]
+ , args[3]
+ , args[4]
+ , args[5]);
+
+ Context2d *context = Nan::ObjectWrap::Unwrap<Context2d>(info.This());
+ cairo_transform(context->context(), &matrix);
+}
+
+/*
+ * Get the CTM
+ */
+
+NAN_METHOD(Context2d::GetTransform) {
+ Context2d *context = Nan::ObjectWrap::Unwrap<Context2d>(info.This());
+ Local<Object> instance = get_current_transform(context);
+
+ info.GetReturnValue().Set(instance);
+}
+
+/*
+ * Reset the CTM, used internally by setTransform().
+ */
+
+NAN_METHOD(Context2d::ResetTransform) {
+ Context2d *context = Nan::ObjectWrap::Unwrap<Context2d>(info.This());
+ cairo_identity_matrix(context->context());
+}
+
+/*
+ * Reset transform matrix to identity, then apply the given args.
+ */
+
+NAN_METHOD(Context2d::SetTransform) {
+ Context2d *context = Nan::ObjectWrap::Unwrap<Context2d>(info.This());
+ if (info.Length() == 1) {
+ Local<Object> mat = Nan::To<Object>(info[0]).ToLocalChecked();
+
+ #if NODE_MAJOR_VERSION >= 8
+ Local<Context> ctx = Nan::GetCurrentContext();
+ if (!mat->InstanceOf(ctx, _DOMMatrix.Get(Isolate::GetCurrent())).ToChecked()) {
+ return Nan::ThrowTypeError("Expected DOMMatrix");
+ }
+ #endif
+
+ cairo_matrix_t matrix;
+ parse_matrix_from_object(matrix, mat);
+
+ cairo_set_matrix(context->context(), &matrix);
+ } else {
+ cairo_identity_matrix(context->context());
+ Context2d::Transform(info);
+ }
+}
+
+/*
+ * Translate transformation.
+ */
+
+NAN_METHOD(Context2d::Translate) {
+ double args[2];
+ if(!checkArgs(info, args, 2))
+ return;
+
+ Context2d *context = Nan::ObjectWrap::Unwrap<Context2d>(info.This());
+ cairo_translate(context->context(), args[0], args[1]);
+}
+
+/*
+ * Scale transformation.
+ */
+
+NAN_METHOD(Context2d::Scale) {
+ double args[2];
+ if(!checkArgs(info, args, 2))
+ return;
+
+ Context2d *context = Nan::ObjectWrap::Unwrap<Context2d>(info.This());
+ cairo_scale(context->context(), args[0], args[1]);
+}
+
+/*
+ * Use path as clipping region.
+ */
+
+NAN_METHOD(Context2d::Clip) {
+ Context2d *context = Nan::ObjectWrap::Unwrap<Context2d>(info.This());
+ context->setFillRule(info[0]);
+ cairo_t *ctx = context->context();
+ cairo_clip_preserve(ctx);
+}
+
+/*
+ * Fill the path.
+ */
+
+NAN_METHOD(Context2d::Fill) {
+ Context2d *context = Nan::ObjectWrap::Unwrap<Context2d>(info.This());
+ context->setFillRule(info[0]);
+ context->fill(true);
+}
+
+/*
+ * Stroke the path.
+ */
+
+NAN_METHOD(Context2d::Stroke) {
+ Context2d *context = Nan::ObjectWrap::Unwrap<Context2d>(info.This());
+ context->stroke(true);
+}
+
+/*
+ * Helper for fillText/strokeText
+ */
+
+double
+get_text_scale(PangoLayout *layout, double maxWidth) {
+
+ PangoRectangle logical_rect;
+ pango_layout_get_pixel_extents(layout, NULL, &logical_rect);
+
+ if (logical_rect.width > maxWidth) {
+ return maxWidth / logical_rect.width;
+ } else {
+ return 1.0;
+ }
+}
+
+void
+paintText(const Nan::FunctionCallbackInfo<Value> &info, bool stroke) {
+ int argsNum = info.Length() >= 4 ? 3 : 2;
+
+ if (argsNum == 3 && info[3]->IsUndefined())
+ argsNum = 2;
+
+ double args[3];
+ if(!checkArgs(info, args, argsNum, 1))
+ return;
+
+ Nan::Utf8String str(Nan::To<String>(info[0]).ToLocalChecked());
+ double x = args[0];
+ double y = args[1];
+ double scaled_by = 1;
+
+ Context2d *context = Nan::ObjectWrap::Unwrap<Context2d>(info.This());
+ PangoLayout *layout = context->layout();
+
+ pango_layout_set_text(layout, *str, -1);
+ pango_cairo_update_layout(context->context(), layout);
+
+ if (argsNum == 3) {
+ scaled_by = get_text_scale(layout, args[2]);
+ cairo_save(context->context());
+ cairo_scale(context->context(), scaled_by, 1);
+ }
+
+ context->savePath();
+ if (context->state->textDrawingMode == TEXT_DRAW_GLYPHS) {
+ if (stroke == true) { context->stroke(); } else { context->fill(); }
+ context->setTextPath(x / scaled_by, y);
+ } else if (context->state->textDrawingMode == TEXT_DRAW_PATHS) {
+ context->setTextPath(x / scaled_by, y);
+ if (stroke == true) { context->stroke(); } else { context->fill(); }
+ }
+ context->restorePath();
+ if (argsNum == 3) {
+ cairo_restore(context->context());
+ }
+}
+
+/*
+ * Fill text at (x, y).
+ */
+
+NAN_METHOD(Context2d::FillText) {
+ paintText(info, false);
+}
+
+/*
+ * Stroke text at (x ,y).
+ */
+
+NAN_METHOD(Context2d::StrokeText) {
+ paintText(info, true);
+}
+
+/*
+ * Gets the baseline adjustment in device pixels
+ */
+inline double getBaselineAdjustment(PangoLayout* layout, short baseline) {
+ PangoRectangle logical_rect;
+ pango_layout_line_get_extents(pango_layout_get_line(layout, 0), NULL, &logical_rect);
+
+ double scale = 1.0 / PANGO_SCALE;
+ double ascent = scale * pango_layout_get_baseline(layout);
+ double descent = scale * logical_rect.height - ascent;
+
+ switch (baseline) {
+ case TEXT_BASELINE_ALPHABETIC:
+ return ascent;
+ case TEXT_BASELINE_MIDDLE:
+ return (ascent + descent) / 2.0;
+ case TEXT_BASELINE_BOTTOM:
+ return ascent + descent;
+ default:
+ return 0;
+ }
+}
+
+/*
+ * Set text path for the string in the layout at (x, y).
+ * This function is called by paintText and won't behave correctly
+ * if is not called from there.
+ * it needs pango_layout_set_text and pango_cairo_update_layout to be called before
+ */
+
+void
+Context2d::setTextPath(double x, double y) {
+ PangoRectangle logical_rect;
+
+ switch (state->textAlignment) {
+ case TEXT_ALIGNMENT_CENTER:
+ pango_layout_get_pixel_extents(_layout, NULL, &logical_rect);
+ x -= logical_rect.width / 2;
+ break;
+ case TEXT_ALIGNMENT_END:
+ case TEXT_ALIGNMENT_RIGHT:
+ pango_layout_get_pixel_extents(_layout, NULL, &logical_rect);
+ x -= logical_rect.width;
+ break;
+ }
+
+ y -= getBaselineAdjustment(_layout, state->textBaseline);
+
+ cairo_move_to(_context, x, y);
+ if (state->textDrawingMode == TEXT_DRAW_PATHS) {
+ pango_cairo_layout_path(_context, _layout);
+ } else if (state->textDrawingMode == TEXT_DRAW_GLYPHS) {
+ pango_cairo_show_layout(_context, _layout);
+ }
+}
+
+/*
+ * Adds a point to the current subpath.
+ */
+
+NAN_METHOD(Context2d::LineTo) {
+ double args[2];
+ if(!checkArgs(info, args, 2))
+ return;
+
+ Context2d *context = Nan::ObjectWrap::Unwrap<Context2d>(info.This());
+ cairo_line_to(context->context(), args[0], args[1]);
+}
+
+/*
+ * Creates a new subpath at the given point.
+ */
+
+NAN_METHOD(Context2d::MoveTo) {
+ double args[2];
+ if(!checkArgs(info, args, 2))
+ return;
+
+ Context2d *context = Nan::ObjectWrap::Unwrap<Context2d>(info.This());
+ cairo_move_to(context->context(), args[0], args[1]);
+}
+
+/*
+ * Get font.
+ */
+
+NAN_GETTER(Context2d::GetFont) {
+ CHECK_RECEIVER(Context2d.GetFont);
+ Context2d *context = Nan::ObjectWrap::Unwrap<Context2d>(info.This());
+
+ info.GetReturnValue().Set(Nan::New(context->state->font).ToLocalChecked());
+}
+
+/*
+ * Set font:
+ * - weight
+ * - style
+ * - size
+ * - unit
+ * - family
+ */
+
+NAN_SETTER(Context2d::SetFont) {
+ CHECK_RECEIVER(Context2d.SetFont);
+ if (!value->IsString()) return;
+
+ Isolate *iso = Isolate::GetCurrent();
+ Local<Context> ctx = Nan::GetCurrentContext();
+
+ Local<String> str = Nan::To<String>(value).ToLocalChecked();
+ if (!str->Length()) return;
+
+ const int argc = 1;
+ Local<Value> argv[argc] = { value };
+
+ Local<Value> mparsed = Nan::Call(_parseFont.Get(iso), ctx->Global(), argc, argv).ToLocalChecked();
+ // parseFont returns undefined for invalid CSS font strings
+ if (mparsed->IsUndefined()) return;
+ Local<Object> font = Nan::To<Object>(mparsed).ToLocalChecked();
+
+ Nan::Utf8String weight(Nan::Get(font, Nan::New("weight").ToLocalChecked()).ToLocalChecked());
+ Nan::Utf8String style(Nan::Get(font, Nan::New("style").ToLocalChecked()).ToLocalChecked());
+ double size = Nan::To<double>(Nan::Get(font, Nan::New("size").ToLocalChecked()).ToLocalChecked()).FromMaybe(0);
+ Nan::Utf8String unit(Nan::Get(font, Nan::New("unit").ToLocalChecked()).ToLocalChecked());
+ Nan::Utf8String family(Nan::Get(font, Nan::New("family").ToLocalChecked()).ToLocalChecked());
+
+ Context2d *context = Nan::ObjectWrap::Unwrap<Context2d>(info.This());
+
+ PangoFontDescription *desc = pango_font_description_copy(context->state->fontDescription);
+ pango_font_description_free(context->state->fontDescription);
+
+ pango_font_description_set_style(desc, Canvas::GetStyleFromCSSString(*style));
+ pango_font_description_set_weight(desc, Canvas::GetWeightFromCSSString(*weight));
+
+ if (strlen(*family) > 0) {
+ // See #1643 - Pango understands "sans" whereas CSS uses "sans-serif"
+ std::string s1(*family);
+ std::string s2("sans-serif");
+ if (streq_casein(s1, s2)) {
+ pango_font_description_set_family(desc, "sans");
+ } else {
+ pango_font_description_set_family(desc, *family);
+ }
+ }
+
+ PangoFontDescription *sys_desc = Canvas::ResolveFontDescription(desc);
+ pango_font_description_free(desc);
+
+ if (size > 0) pango_font_description_set_absolute_size(sys_desc, size * PANGO_SCALE);
+
+ context->state->fontDescription = sys_desc;
+ pango_layout_set_font_description(context->_layout, sys_desc);
+
+ context->state->font = *Nan::Utf8String(value);
+}
+
+/*
+ * Get text baseline.
+ */
+
+NAN_GETTER(Context2d::GetTextBaseline) {
+ CHECK_RECEIVER(Context2d.GetTextBaseline);
+ Context2d *context = Nan::ObjectWrap::Unwrap<Context2d>(info.This());
+ const char* baseline;
+ switch (context->state->textBaseline) {
+ default:
+ case TEXT_BASELINE_ALPHABETIC: baseline = "alphabetic"; break;
+ case TEXT_BASELINE_TOP: baseline = "top"; break;
+ case TEXT_BASELINE_BOTTOM: baseline = "bottom"; break;
+ case TEXT_BASELINE_MIDDLE: baseline = "middle"; break;
+ case TEXT_BASELINE_IDEOGRAPHIC: baseline = "ideographic"; break;
+ case TEXT_BASELINE_HANGING: baseline = "hanging"; break;
+ }
+ info.GetReturnValue().Set(Nan::New(baseline).ToLocalChecked());
+}
+
+/*
+ * Set text baseline.
+ */
+
+NAN_SETTER(Context2d::SetTextBaseline) {
+ CHECK_RECEIVER(Context2d.SetTextBaseline);
+ if (!value->IsString()) return;
+
+ Nan::Utf8String opStr(Nan::To<String>(value).ToLocalChecked());
+ const std::map<std::string, text_baseline_t> modes = {
+ {"alphabetic", TEXT_BASELINE_ALPHABETIC},
+ {"top", TEXT_BASELINE_TOP},
+ {"bottom", TEXT_BASELINE_BOTTOM},
+ {"middle", TEXT_BASELINE_MIDDLE},
+ {"ideographic", TEXT_BASELINE_IDEOGRAPHIC},
+ {"hanging", TEXT_BASELINE_HANGING}
+ };
+ auto op = modes.find(*opStr);
+ if (op == modes.end()) return;
+
+ Context2d *context = Nan::ObjectWrap::Unwrap<Context2d>(info.This());
+ context->state->textBaseline = op->second;
+}
+
+/*
+ * Get text align.
+ */
+
+NAN_GETTER(Context2d::GetTextAlign) {
+ CHECK_RECEIVER(Context2d.GetTextAlign);
+ Context2d *context = Nan::ObjectWrap::Unwrap<Context2d>(info.This());
+ const char* align;
+ switch (context->state->textAlignment) {
+ default:
+ // TODO the default is supposed to be "start"
+ case TEXT_ALIGNMENT_LEFT: align = "left"; break;
+ case TEXT_ALIGNMENT_START: align = "start"; break;
+ case TEXT_ALIGNMENT_CENTER: align = "center"; break;
+ case TEXT_ALIGNMENT_RIGHT: align = "right"; break;
+ case TEXT_ALIGNMENT_END: align = "end"; break;
+ }
+ info.GetReturnValue().Set(Nan::New(align).ToLocalChecked());
+}
+
+/*
+ * Set text align.
+ */
+
+NAN_SETTER(Context2d::SetTextAlign) {
+ CHECK_RECEIVER(Context2d.SetTextAlign);
+ if (!value->IsString()) return;
+
+ Nan::Utf8String opStr(Nan::To<String>(value).ToLocalChecked());
+ const std::map<std::string, text_align_t> modes = {
+ {"center", TEXT_ALIGNMENT_CENTER},
+ {"left", TEXT_ALIGNMENT_LEFT},
+ {"start", TEXT_ALIGNMENT_START},
+ {"right", TEXT_ALIGNMENT_RIGHT},
+ {"end", TEXT_ALIGNMENT_END}
+ };
+ auto op = modes.find(*opStr);
+ if (op == modes.end()) return;
+
+ Context2d *context = Nan::ObjectWrap::Unwrap<Context2d>(info.This());
+ context->state->textAlignment = op->second;
+}
+
+/*
+ * Return the given text extents.
+ * TODO: Support for:
+ * hangingBaseline, ideographicBaseline,
+ * fontBoundingBoxAscent, fontBoundingBoxDescent
+ */
+
+NAN_METHOD(Context2d::MeasureText) {
+ Context2d *context = Nan::ObjectWrap::Unwrap<Context2d>(info.This());
+ cairo_t *ctx = context->context();
+
+ Nan::Utf8String str(Nan::To<String>(info[0]).ToLocalChecked());
+ Local<Object> obj = Nan::New<Object>();
+
+ PangoRectangle _ink_rect, _logical_rect;
+ float_rectangle ink_rect, logical_rect;
+ PangoFontMetrics *metrics;
+ PangoLayout *layout = context->layout();
+
+ pango_layout_set_text(layout, *str, -1);
+ pango_cairo_update_layout(ctx, layout);
+
+ // Normally you could use pango_layout_get_pixel_extents and be done, or use
+ // pango_extents_to_pixels, but both of those round the pixels, so we have to
+ // divide by PANGO_SCALE manually
+ pango_layout_get_extents(layout, &_ink_rect, &_logical_rect);
+
+ float inverse_pango_scale = 1. / PANGO_SCALE;
+
+ logical_rect.x = _logical_rect.x * inverse_pango_scale;
+ logical_rect.y = _logical_rect.y * inverse_pango_scale;
+ logical_rect.width = _logical_rect.width * inverse_pango_scale;
+ logical_rect.height = _logical_rect.height * inverse_pango_scale;
+
+ ink_rect.x = _ink_rect.x * inverse_pango_scale;
+ ink_rect.y = _ink_rect.y * inverse_pango_scale;
+ ink_rect.width = _ink_rect.width * inverse_pango_scale;
+ ink_rect.height = _ink_rect.height * inverse_pango_scale;
+
+ metrics = PANGO_LAYOUT_GET_METRICS(layout);
+
+ double x_offset;
+ switch (context->state->textAlignment) {
+ case TEXT_ALIGNMENT_CENTER:
+ x_offset = logical_rect.width / 2.;
+ break;
+ case TEXT_ALIGNMENT_END:
+ case TEXT_ALIGNMENT_RIGHT:
+ x_offset = logical_rect.width;
+ break;
+ case TEXT_ALIGNMENT_START:
+ case TEXT_ALIGNMENT_LEFT:
+ default:
+ x_offset = 0.0;
+ }
+
+ cairo_matrix_t matrix;
+ cairo_get_matrix(ctx, &matrix);
+ double y_offset = getBaselineAdjustment(layout, context->state->textBaseline);
+
+ Nan::Set(obj,
+ Nan::New<String>("width").ToLocalChecked(),
+ Nan::New<Number>(logical_rect.width)).Check();
+ Nan::Set(obj,
+ Nan::New<String>("actualBoundingBoxLeft").ToLocalChecked(),
+ Nan::New<Number>(PANGO_LBEARING(ink_rect) + x_offset)).Check();
+ Nan::Set(obj,
+ Nan::New<String>("actualBoundingBoxRight").ToLocalChecked(),
+ Nan::New<Number>(PANGO_RBEARING(ink_rect) - x_offset)).Check();
+ Nan::Set(obj,
+ Nan::New<String>("actualBoundingBoxAscent").ToLocalChecked(),
+ Nan::New<Number>(y_offset + PANGO_ASCENT(ink_rect))).Check();
+ Nan::Set(obj,
+ Nan::New<String>("actualBoundingBoxDescent").ToLocalChecked(),
+ Nan::New<Number>(PANGO_DESCENT(ink_rect) - y_offset)).Check();
+ Nan::Set(obj,
+ Nan::New<String>("emHeightAscent").ToLocalChecked(),
+ Nan::New<Number>(-(PANGO_ASCENT(logical_rect) - y_offset))).Check();
+ Nan::Set(obj,
+ Nan::New<String>("emHeightDescent").ToLocalChecked(),
+ Nan::New<Number>(PANGO_DESCENT(logical_rect) - y_offset)).Check();
+ Nan::Set(obj,
+ Nan::New<String>("alphabeticBaseline").ToLocalChecked(),
+ Nan::New<Number>(-(pango_font_metrics_get_ascent(metrics) * inverse_pango_scale - y_offset))).Check();
+
+ pango_font_metrics_unref(metrics);
+
+ info.GetReturnValue().Set(obj);
+}
+
+/*
+ * Set line dash
+ * ref: http://www.w3.org/TR/2dcontext/#dom-context-2d-setlinedash
+ */
+
+NAN_METHOD(Context2d::SetLineDash) {
+ if (!info[0]->IsArray()) return;
+ Local<Array> dash = Local<Array>::Cast(info[0]);
+ uint32_t dashes = dash->Length() & 1 ? dash->Length() * 2 : dash->Length();
+ uint32_t zero_dashes = 0;
+ std::vector<double> a(dashes);
+ for (uint32_t i=0; i<dashes; i++) {
+ Local<Value> d = Nan::Get(dash, i % dash->Length()).ToLocalChecked();
+ if (!d->IsNumber()) return;
+ a[i] = Nan::To<double>(d).FromMaybe(0);
+ if (a[i] == 0) zero_dashes++;
+ if (a[i] < 0 || !std::isfinite(a[i])) return;
+ }
+
+ Context2d *context = Nan::ObjectWrap::Unwrap<Context2d>(info.This());
+ cairo_t *ctx = context->context();
+ double offset;
+ cairo_get_dash(ctx, NULL, &offset);
+ if (zero_dashes == dashes) {
+ std::vector<double> b(0);
+ cairo_set_dash(ctx, b.data(), 0, offset);
+ } else {
+ cairo_set_dash(ctx, a.data(), dashes, offset);
+ }
+}
+
+/*
+ * Get line dash
+ * ref: http://www.w3.org/TR/2dcontext/#dom-context-2d-setlinedash
+ */
+NAN_METHOD(Context2d::GetLineDash) {
+ Context2d *context = Nan::ObjectWrap::Unwrap<Context2d>(info.This());
+ cairo_t *ctx = context->context();
+ int dashes = cairo_get_dash_count(ctx);
+ std::vector<double> a(dashes);
+ cairo_get_dash(ctx, a.data(), NULL);
+
+ Local<Array> dash = Nan::New<Array>(dashes);
+ for (int i=0; i<dashes; i++) {
+ Nan::Set(dash, Nan::New<Number>(i), Nan::New<Number>(a[i])).Check();
+ }
+
+ info.GetReturnValue().Set(dash);
+}
+
+/*
+ * Set line dash offset
+ * ref: http://www.w3.org/TR/2dcontext/#dom-context-2d-setlinedash
+ */
+NAN_SETTER(Context2d::SetLineDashOffset) {
+ CHECK_RECEIVER(Context2d.SetLineDashOffset);
+ double offset = Nan::To<double>(value).FromMaybe(0);
+ if (!std::isfinite(offset)) return;
+
+ Context2d *context = Nan::ObjectWrap::Unwrap<Context2d>(info.This());
+ cairo_t *ctx = context->context();
+
+ int dashes = cairo_get_dash_count(ctx);
+ std::vector<double> a(dashes);
+ cairo_get_dash(ctx, a.data(), NULL);
+ cairo_set_dash(ctx, a.data(), dashes, offset);
+}
+
+/*
+ * Get line dash offset
+ * ref: http://www.w3.org/TR/2dcontext/#dom-context-2d-setlinedash
+ */
+NAN_GETTER(Context2d::GetLineDashOffset) {
+ CHECK_RECEIVER(Context2d.GetLineDashOffset);
+ Context2d *context = Nan::ObjectWrap::Unwrap<Context2d>(info.This());
+ cairo_t *ctx = context->context();
+ double offset;
+ cairo_get_dash(ctx, NULL, &offset);
+
+ info.GetReturnValue().Set(Nan::New<Number>(offset));
+}
+
+/*
+ * Fill the rectangle defined by x, y, width and height.
+ */
+
+NAN_METHOD(Context2d::FillRect) {
+ RECT_ARGS;
+ if (0 == width || 0 == height) return;
+ Context2d *context = Nan::ObjectWrap::Unwrap<Context2d>(info.This());
+ cairo_t *ctx = context->context();
+ context->savePath();
+ cairo_rectangle(ctx, x, y, width, height);
+ context->fill();
+ context->restorePath();
+}
+
+/*
+ * Stroke the rectangle defined by x, y, width and height.
+ */
+
+NAN_METHOD(Context2d::StrokeRect) {
+ RECT_ARGS;
+ if (0 == width && 0 == height) return;
+ Context2d *context = Nan::ObjectWrap::Unwrap<Context2d>(info.This());
+ cairo_t *ctx = context->context();
+ context->savePath();
+ cairo_rectangle(ctx, x, y, width, height);
+ context->stroke();
+ context->restorePath();
+}
+
+/*
+ * Clears all pixels defined by x, y, width and height.
+ */
+
+NAN_METHOD(Context2d::ClearRect) {
+ RECT_ARGS;
+ if (0 == width || 0 == height) return;
+ Context2d *context = Nan::ObjectWrap::Unwrap<Context2d>(info.This());
+ cairo_t *ctx = context->context();
+ cairo_save(ctx);
+ context->savePath();
+ cairo_rectangle(ctx, x, y, width, height);
+ cairo_set_operator(ctx, CAIRO_OPERATOR_CLEAR);
+ cairo_fill(ctx);
+ context->restorePath();
+ cairo_restore(ctx);
+}
+
+/*
+ * Adds a rectangle subpath.
+ */
+
+NAN_METHOD(Context2d::Rect) {
+ RECT_ARGS;
+ Context2d *context = Nan::ObjectWrap::Unwrap<Context2d>(info.This());
+ cairo_t *ctx = context->context();
+ if (width == 0) {
+ cairo_move_to(ctx, x, y);
+ cairo_line_to(ctx, x, y + height);
+ } else if (height == 0) {
+ cairo_move_to(ctx, x, y);
+ cairo_line_to(ctx, x + width, y);
+ } else {
+ cairo_rectangle(ctx, x, y, width, height);
+ }
+}
+
+// Draws an arc with two potentially different radii.
+inline static
+void elli_arc(cairo_t* ctx, double xc, double yc, double rx, double ry, double a1, double a2, bool clockwise=true) {
+ if (rx == 0. || ry == 0.) {
+ cairo_line_to(ctx, xc + rx, yc + ry);
+ } else {
+ cairo_save(ctx);
+ cairo_translate(ctx, xc, yc);
+ cairo_scale(ctx, rx, ry);
+ if (clockwise)
+ cairo_arc(ctx, 0., 0., 1., a1, a2);
+ else
+ cairo_arc_negative(ctx, 0., 0., 1., a2, a1);
+ cairo_restore(ctx);
+ }
+}
+
+inline static
+bool getRadius(Point<double>& p, const Local<Value>& v) {
+ if (v->IsObject()) { // 5.1 DOMPointInit
+ auto rx = Nan::Get(v.As<Object>(), Nan::New("x").ToLocalChecked()).ToLocalChecked();
+ auto ry = Nan::Get(v.As<Object>(), Nan::New("y").ToLocalChecked()).ToLocalChecked();
+ if (rx->IsNumber() && ry->IsNumber()) {
+ auto rxv = Nan::To<double>(rx).FromJust();
+ auto ryv = Nan::To<double>(ry).FromJust();
+ if (!std::isfinite(rxv) || !std::isfinite(ryv))
+ return true;
+ if (rxv < 0 || ryv < 0) {
+ Nan::ThrowRangeError("radii must be positive.");
+ return true;
+ }
+ p.x = rxv;
+ p.y = ryv;
+ return false;
+ }
+ } else if (v->IsNumber()) { // 5.2 unrestricted double
+ auto rv = Nan::To<double>(v).FromJust();
+ if (!std::isfinite(rv))
+ return true;
+ if (rv < 0) {
+ Nan::ThrowRangeError("radii must be positive.");
+ return true;
+ }
+ p.x = p.y = rv;
+ return false;
+ }
+ return true;
+}
+
+/**
+ * https://html.spec.whatwg.org/multipage/canvas.html#dom-context-2d-roundrect
+ * x, y, w, h, [radius|[radii]]
+ */
+NAN_METHOD(Context2d::RoundRect) {
+ RECT_ARGS;
+ Context2d *context = Nan::ObjectWrap::Unwrap<Context2d>(info.This());
+ cairo_t *ctx = context->context();
+
+ // 4. Let normalizedRadii be an empty list
+ Point<double> normalizedRadii[4];
+ size_t nRadii = 4;
+
+ if (info[4]->IsUndefined()) {
+ for (size_t i = 0; i < 4; i++)
+ normalizedRadii[i].x = normalizedRadii[i].y = 0.;
+
+ } else if (info[4]->IsArray()) {
+ auto radiiList = info[4].As<v8::Array>();
+ nRadii = radiiList->Length();
+ if (!(nRadii >= 1 && nRadii <= 4)) {
+ Nan::ThrowRangeError("radii must be a list of one, two, three or four radii.");
+ return;
+ }
+ // 5. For each radius of radii
+ for (size_t i = 0; i < nRadii; i++) {
+ auto r = Nan::Get(radiiList, i).ToLocalChecked();
+ if (getRadius(normalizedRadii[i], r))
+ return;
+ }
+
+ } else {
+ // 2. If radii is a double, then set radii to <<radii>>
+ if (getRadius(normalizedRadii[0], info[4]))
+ return;
+ for (size_t i = 1; i < 4; i++) {
+ normalizedRadii[i].x = normalizedRadii[0].x;
+ normalizedRadii[i].y = normalizedRadii[0].y;
+ }
+ }
+
+ Point<double> upperLeft, upperRight, lowerRight, lowerLeft;
+ if (nRadii == 4) {
+ upperLeft = normalizedRadii[0];
+ upperRight = normalizedRadii[1];
+ lowerRight = normalizedRadii[2];
+ lowerLeft = normalizedRadii[3];
+ } else if (nRadii == 3) {
+ upperLeft = normalizedRadii[0];
+ upperRight = normalizedRadii[1];
+ lowerLeft = normalizedRadii[1];
+ lowerRight = normalizedRadii[2];
+ } else if (nRadii == 2) {
+ upperLeft = normalizedRadii[0];
+ lowerRight = normalizedRadii[0];
+ upperRight = normalizedRadii[1];
+ lowerLeft = normalizedRadii[1];
+ } else {
+ upperLeft = normalizedRadii[0];
+ upperRight = normalizedRadii[0];
+ lowerRight = normalizedRadii[0];
+ lowerLeft = normalizedRadii[0];
+ }
+
+ bool clockwise = true;
+ if (width < 0) {
+ clockwise = false;
+ x += width;
+ width = -width;
+ std::swap(upperLeft, upperRight);
+ std::swap(lowerLeft, lowerRight);
+ }
+
+ if (height < 0) {
+ clockwise = !clockwise;
+ y += height;
+ height = -height;
+ std::swap(upperLeft, lowerLeft);
+ std::swap(upperRight, lowerRight);
+ }
+
+ // 11. Corner curves must not overlap. Scale radii to prevent this.
+ {
+ auto top = upperLeft.x + upperRight.x;
+ auto right = upperRight.y + lowerRight.y;
+ auto bottom = lowerRight.x + lowerLeft.x;
+ auto left = upperLeft.y + lowerLeft.y;
+ auto scale = std::min({ width / top, height / right, width / bottom, height / left });
+ if (scale < 1.) {
+ upperLeft.x *= scale;
+ upperLeft.y *= scale;
+ upperRight.x *= scale;
+ upperRight.x *= scale;
+ lowerLeft.y *= scale;
+ lowerLeft.y *= scale;
+ lowerRight.y *= scale;
+ lowerRight.y *= scale;
+ }
+ }
+
+ // 12. Draw
+ cairo_move_to(ctx, x + upperLeft.x, y);
+ if (clockwise) {
+ cairo_line_to(ctx, x + width - upperRight.x, y);
+ elli_arc(ctx, x + width - upperRight.x, y + upperRight.y, upperRight.x, upperRight.y, 3. * M_PI / 2., 0.);
+ cairo_line_to(ctx, x + width, y + height - lowerRight.y);
+ elli_arc(ctx, x + width - lowerRight.x, y + height - lowerRight.y, lowerRight.x, lowerRight.y, 0, M_PI / 2.);
+ cairo_line_to(ctx, x + lowerLeft.x, y + height);
+ elli_arc(ctx, x + lowerLeft.x, y + height - lowerLeft.y, lowerLeft.x, lowerLeft.y, M_PI / 2., M_PI);
+ cairo_line_to(ctx, x, y + upperLeft.y);
+ elli_arc(ctx, x + upperLeft.x, y + upperLeft.y, upperLeft.x, upperLeft.y, M_PI, 3. * M_PI / 2.);
+ } else {
+ elli_arc(ctx, x + upperLeft.x, y + upperLeft.y, upperLeft.x, upperLeft.y, M_PI, 3. * M_PI / 2., false);
+ cairo_line_to(ctx, x, y + upperLeft.y);
+ elli_arc(ctx, x + lowerLeft.x, y + height - lowerLeft.y, lowerLeft.x, lowerLeft.y, M_PI / 2., M_PI, false);
+ cairo_line_to(ctx, x + lowerLeft.x, y + height);
+ elli_arc(ctx, x + width - lowerRight.x, y + height - lowerRight.y, lowerRight.x, lowerRight.y, 0, M_PI / 2., false);
+ cairo_line_to(ctx, x + width, y + height - lowerRight.y);
+ elli_arc(ctx, x + width - upperRight.x, y + upperRight.y, upperRight.x, upperRight.y, 3. * M_PI / 2., 0., false);
+ cairo_line_to(ctx, x + width - upperRight.x, y);
+ }
+ cairo_close_path(ctx);
+}
+
+// Adapted from https://chromium.googlesource.com/chromium/blink/+/refs/heads/main/Source/modules/canvas2d/CanvasPathMethods.cpp
+static void canonicalizeAngle(double& startAngle, double& endAngle) {
+ // Make 0 <= startAngle < 2*PI
+ double newStartAngle = std::fmod(startAngle, twoPi);
+ if (newStartAngle < 0) {
+ newStartAngle += twoPi;
+ // Check for possible catastrophic cancellation in cases where
+ // newStartAngle was a tiny negative number (c.f. crbug.com/503422)
+ if (newStartAngle >= twoPi)
+ newStartAngle -= twoPi;
+ }
+ double delta = newStartAngle - startAngle;
+ startAngle = newStartAngle;
+ endAngle = endAngle + delta;
+}
+
+// Adapted from https://chromium.googlesource.com/chromium/blink/+/refs/heads/main/Source/modules/canvas2d/CanvasPathMethods.cpp
+static double adjustEndAngle(double startAngle, double endAngle, bool counterclockwise) {
+ double newEndAngle = endAngle;
+ /* http://www.whatwg.org/specs/web-apps/current-work/multipage/the-canvas-element.html#dom-context-2d-arc
+ * If the counterclockwise argument is false and endAngle-startAngle is equal to or greater than 2pi, or,
+ * if the counterclockwise argument is true and startAngle-endAngle is equal to or greater than 2pi,
+ * then the arc is the whole circumference of this ellipse, and the point at startAngle along this circle's circumference,
+ * measured in radians clockwise from the ellipse's semi-major axis, acts as both the start point and the end point.
+ */
+ if (!counterclockwise && endAngle - startAngle >= twoPi)
+ newEndAngle = startAngle + twoPi;
+ else if (counterclockwise && startAngle - endAngle >= twoPi)
+ newEndAngle = startAngle - twoPi;
+ /*
+ * Otherwise, the arc is the path along the circumference of this ellipse from the start point to the end point,
+ * going anti-clockwise if the counterclockwise argument is true, and clockwise otherwise.
+ * Since the points are on the ellipse, as opposed to being simply angles from zero,
+ * the arc can never cover an angle greater than 2pi radians.
+ */
+ /* NOTE: When startAngle = 0, endAngle = 2Pi and counterclockwise = true, the spec does not indicate clearly.
+ * We draw the entire circle, because some web sites use arc(x, y, r, 0, 2*Math.PI, true) to draw circle.
+ * We preserve backward-compatibility.
+ */
+ else if (!counterclockwise && startAngle > endAngle)
+ newEndAngle = startAngle + (twoPi - std::fmod(startAngle - endAngle, twoPi));
+ else if (counterclockwise && startAngle < endAngle)
+ newEndAngle = startAngle - (twoPi - std::fmod(endAngle - startAngle, twoPi));
+ return newEndAngle;
+}
+
+/*
+ * Adds an arc at x, y with the given radii and start/end angles.
+ */
+
+NAN_METHOD(Context2d::Arc) {
+ double args[5];
+ if(!checkArgs(info, args, 5))
+ return;
+
+ auto x = args[0];
+ auto y = args[1];
+ auto radius = args[2];
+ auto startAngle = args[3];
+ auto endAngle = args[4];
+
+ if (radius < 0) {
+ Nan::ThrowRangeError("The radius provided is negative.");
+ return;
+ }
+
+ bool counterclockwise = Nan::To<bool>(info[5]).FromMaybe(false);
+
+ Context2d *context = Nan::ObjectWrap::Unwrap<Context2d>(info.This());
+ cairo_t *ctx = context->context();
+
+ canonicalizeAngle(startAngle, endAngle);
+ endAngle = adjustEndAngle(startAngle, endAngle, counterclockwise);
+
+ if (counterclockwise) {
+ cairo_arc_negative(ctx, x, y, radius, startAngle, endAngle);
+ } else {
+ cairo_arc(ctx, x, y, radius, startAngle, endAngle);
+ }
+}
+
+/*
+ * Adds an arcTo point (x0,y0) to (x1,y1) with the given radius.
+ *
+ * Implementation influenced by WebKit.
+ */
+
+NAN_METHOD(Context2d::ArcTo) {
+ double args[5];
+ if(!checkArgs(info, args, 5))
+ return;
+
+ Context2d *context = Nan::ObjectWrap::Unwrap<Context2d>(info.This());
+ cairo_t *ctx = context->context();
+
+ // Current path point
+ double x, y;
+ cairo_get_current_point(ctx, &x, &y);
+ Point<float> p0(x, y);
+
+ // Point (x0,y0)
+ Point<float> p1(args[0], args[1]);
+
+ // Point (x1,y1)
+ Point<float> p2(args[2], args[3]);
+
+ float radius = args[4];
+
+ if ((p1.x == p0.x && p1.y == p0.y)
+ || (p1.x == p2.x && p1.y == p2.y)
+ || radius == 0.f) {
+ cairo_line_to(ctx, p1.x, p1.y);
+ return;
+ }
+
+ Point<float> p1p0((p0.x - p1.x),(p0.y - p1.y));
+ Point<float> p1p2((p2.x - p1.x),(p2.y - p1.y));
+ float p1p0_length = sqrtf(p1p0.x * p1p0.x + p1p0.y * p1p0.y);
+ float p1p2_length = sqrtf(p1p2.x * p1p2.x + p1p2.y * p1p2.y);
+
+ double cos_phi = (p1p0.x * p1p2.x + p1p0.y * p1p2.y) / (p1p0_length * p1p2_length);
+ // all points on a line logic
+ if (-1 == cos_phi) {
+ cairo_line_to(ctx, p1.x, p1.y);
+ return;
+ }
+
+ if (1 == cos_phi) {
+ // add infinite far away point
+ unsigned int max_length = 65535;
+ double factor_max = max_length / p1p0_length;
+ Point<float> ep((p0.x + factor_max * p1p0.x), (p0.y + factor_max * p1p0.y));
+ cairo_line_to(ctx, ep.x, ep.y);
+ return;
+ }
+
+ float tangent = radius / tan(acos(cos_phi) / 2);
+ float factor_p1p0 = tangent / p1p0_length;
+ Point<float> t_p1p0((p1.x + factor_p1p0 * p1p0.x), (p1.y + factor_p1p0 * p1p0.y));
+
+ Point<float> orth_p1p0(p1p0.y, -p1p0.x);
+ float orth_p1p0_length = sqrt(orth_p1p0.x * orth_p1p0.x + orth_p1p0.y * orth_p1p0.y);
+ float factor_ra = radius / orth_p1p0_length;
+
+ double cos_alpha = (orth_p1p0.x * p1p2.x + orth_p1p0.y * p1p2.y) / (orth_p1p0_length * p1p2_length);
+ if (cos_alpha < 0.f)
+ orth_p1p0 = Point<float>(-orth_p1p0.x, -orth_p1p0.y);
+
+ Point<float> p((t_p1p0.x + factor_ra * orth_p1p0.x), (t_p1p0.y + factor_ra * orth_p1p0.y));
+
+ orth_p1p0 = Point<float>(-orth_p1p0.x, -orth_p1p0.y);
+ float sa = acos(orth_p1p0.x / orth_p1p0_length);
+ if (orth_p1p0.y < 0.f)
+ sa = 2 * M_PI - sa;
+
+ bool anticlockwise = false;
+
+ float factor_p1p2 = tangent / p1p2_length;
+ Point<float> t_p1p2((p1.x + factor_p1p2 * p1p2.x), (p1.y + factor_p1p2 * p1p2.y));
+ Point<float> orth_p1p2((t_p1p2.x - p.x),(t_p1p2.y - p.y));
+ float orth_p1p2_length = sqrtf(orth_p1p2.x * orth_p1p2.x + orth_p1p2.y * orth_p1p2.y);
+ float ea = acos(orth_p1p2.x / orth_p1p2_length);
+
+ if (orth_p1p2.y < 0) ea = 2 * M_PI - ea;
+ if ((sa > ea) && ((sa - ea) < M_PI)) anticlockwise = true;
+ if ((sa < ea) && ((ea - sa) > M_PI)) anticlockwise = true;
+
+ cairo_line_to(ctx, t_p1p0.x, t_p1p0.y);
+
+ if (anticlockwise && M_PI * 2 != radius) {
+ cairo_arc_negative(ctx
+ , p.x
+ , p.y
+ , radius
+ , sa
+ , ea);
+ } else {
+ cairo_arc(ctx
+ , p.x
+ , p.y
+ , radius
+ , sa
+ , ea);
+ }
+}
+
+/*
+ * Adds an ellipse to the path which is centered at (x, y) position with the
+ * radii radiusX and radiusY starting at startAngle and ending at endAngle
+ * going in the given direction by anticlockwise (defaulting to clockwise).
+ */
+
+NAN_METHOD(Context2d::Ellipse) {
+ double args[7];
+ if(!checkArgs(info, args, 7))
+ return;
+
+ double radiusX = args[2];
+ double radiusY = args[3];
+
+ if (radiusX == 0 || radiusY == 0) return;
+
+ double x = args[0];
+ double y = args[1];
+ double rotation = args[4];
+ double startAngle = args[5];
+ double endAngle = args[6];
+ bool anticlockwise = Nan::To<bool>(info[7]).FromMaybe(false);
+
+ Context2d *context = Nan::ObjectWrap::Unwrap<Context2d>(info.This());
+ cairo_t *ctx = context->context();
+
+ // See https://www.cairographics.org/cookbook/ellipses/
+ double xRatio = radiusX / radiusY;
+
+ cairo_matrix_t save_matrix;
+ cairo_get_matrix(ctx, &save_matrix);
+ cairo_translate(ctx, x, y);
+ cairo_rotate(ctx, rotation);
+ cairo_scale(ctx, xRatio, 1.0);
+ cairo_translate(ctx, -x, -y);
+ if (anticlockwise && M_PI * 2 != args[4]) {
+ cairo_arc_negative(ctx,
+ x,
+ y,
+ radiusY,
+ startAngle,
+ endAngle);
+ } else {
+ cairo_arc(ctx,
+ x,
+ y,
+ radiusY,
+ startAngle,
+ endAngle);
+ }
+ cairo_set_matrix(ctx, &save_matrix);
+}
+
+#undef CHECK_RECEIVER
diff --git a/node_modules/canvas/src/CanvasRenderingContext2d.cc.orig b/node_modules/canvas/src/CanvasRenderingContext2d.cc.orig
new file mode 100644
index 0000000..6dbc727
--- /dev/null
+++ b/node_modules/canvas/src/CanvasRenderingContext2d.cc.orig
@@ -0,0 +1,3381 @@
+// Copyright (c) 2010 LearnBoost <tj@learnboost.com>
+
+#include "CanvasRenderingContext2d.h"
+
+#include <algorithm>
+#include "backend/ImageBackend.h"
+#include <cairo-pdf.h>
+#include "Canvas.h"
+#include "CanvasGradient.h"
+#include "CanvasPattern.h"
+#include <cmath>
+#include <cstdlib>
+#include "Image.h"
+#include "ImageData.h"
+#include <limits>
+#include <map>
+#include "Point.h"
+#include <string>
+#include "Util.h"
+#include <vector>
+
+using namespace Napi;
+
+Napi::FunctionReference Context2d::constructor;
+
+/*
+ * Rectangle arg assertions.
+ */
+
+#define RECT_ARGS \
+ double args[4]; \
+ if(!checkArgs(info, args, 4)) \
+ return; \
+ double x = args[0]; \
+ double y = args[1]; \
+ double width = args[2]; \
+ double height = args[3];
+
+#define CHECK_RECEIVER(prop) \
+ if (!Context2d::constructor.Get(info.GetIsolate())->HasInstance(info.This())) { \
+ Napi::TypeError::New(env, "Method " #prop " called on incompatible receiver").ThrowAsJavaScriptException();
+ \
+ return; \
+ }
+
+constexpr double twoPi = M_PI * 2.;
+
+/*
+ * Simple helper macro for a rather verbose function call.
+ */
+
+#define PANGO_LAYOUT_GET_METRICS(LAYOUT) pango_context_get_metrics( \
+ pango_layout_get_context(LAYOUT), \
+ pango_layout_get_font_description(LAYOUT), \
+ pango_context_get_language(pango_layout_get_context(LAYOUT)))
+
+inline static bool checkArgs(const Napi::CallbackInfo&info, double *args, int argsNum, int offset = 0){
+ int argsEnd = offset + argsNum;
+ bool areArgsValid = true;
+
+ for (int i = offset; i < argsEnd; i++) {
+ double val = info[i].As<Napi::Number>().DoubleValue().FromMaybe(0);
+
+ if (areArgsValid) {
+ if (!std::isfinite(val)) {
+ // We should continue the loop instead of returning immediately
+ // See https://html.spec.whatwg.org/multipage/canvas.html
+
+ areArgsValid = false;
+ continue;
+ }
+
+ args[i - offset] = val;
+ }
+ }
+
+ return areArgsValid;
+}
+
+Napi::FunctionReference Context2d::_DOMMatrix;
+Napi::FunctionReference Context2d::_parseFont;
+
+/*
+ * Initialize Context2d.
+ */
+
+void
+Context2d::Initialize(Napi::Env& env, Napi::Object& target) {
+ Napi::HandleScope scope(env);
+
+ // Constructor
+ Napi::FunctionReference ctor = Napi::Function::New(env, Context2d::New);
+ constructor.Reset(ctor);
+
+ ctor->SetClassName(Napi::String::New(env, "CanvasRenderingContext2D"));
+
+ // Prototype
+ Local<ObjectTemplate> proto = ctor->PrototypeTemplate();
+ InstanceMethod("drawImage", &DrawImage),
+ InstanceMethod("putImageData", &PutImageData),
+ InstanceMethod("getImageData", &GetImageData),
+ InstanceMethod("createImageData", &CreateImageData),
+ InstanceMethod("addPage", &AddPage),
+ InstanceMethod("save", &Save),
+ InstanceMethod("restore", &Restore),
+ InstanceMethod("rotate", &Rotate),
+ InstanceMethod("translate", &Translate),
+ InstanceMethod("transform", &Transform),
+ InstanceMethod("getTransform", &GetTransform),
+ InstanceMethod("resetTransform", &ResetTransform),
+ InstanceMethod("setTransform", &SetTransform),
+ InstanceMethod("isPointInPath", &IsPointInPath),
+ InstanceMethod("scale", &Scale),
+ InstanceMethod("clip", &Clip),
+ InstanceMethod("fill", &Fill),
+ InstanceMethod("stroke", &Stroke),
+ InstanceMethod("fillText", &FillText),
+ InstanceMethod("strokeText", &StrokeText),
+ InstanceMethod("fillRect", &FillRect),
+ InstanceMethod("strokeRect", &StrokeRect),
+ InstanceMethod("clearRect", &ClearRect),
+ InstanceMethod("rect", &Rect),
+ InstanceMethod("roundRect", &RoundRect),
+ InstanceMethod("measureText", &MeasureText),
+ InstanceMethod("moveTo", &MoveTo),
+ InstanceMethod("lineTo", &LineTo),
+ InstanceMethod("bezierCurveTo", &BezierCurveTo),
+ InstanceMethod("quadraticCurveTo", &QuadraticCurveTo),
+ InstanceMethod("beginPath", &BeginPath),
+ InstanceMethod("closePath", &ClosePath),
+ InstanceMethod("arc", &Arc),
+ InstanceMethod("arcTo", &ArcTo),
+ InstanceMethod("ellipse", &Ellipse),
+ InstanceMethod("setLineDash", &SetLineDash),
+ InstanceMethod("getLineDash", &GetLineDash),
+ InstanceMethod("createPattern", &CreatePattern),
+ InstanceMethod("createLinearGradient", &CreateLinearGradient),
+ InstanceMethod("createRadialGradient", &CreateRadialGradient),
+ Napi::SetAccessor(proto, Napi::String::New(env, "pixelFormat"), GetFormat);
+ Napi::SetAccessor(proto, Napi::String::New(env, "patternQuality"), GetPatternQuality, SetPatternQuality);
+ Napi::SetAccessor(proto, Napi::String::New(env, "imageSmoothingEnabled"), GetImageSmoothingEnabled, SetImageSmoothingEnabled);
+ Napi::SetAccessor(proto, Napi::String::New(env, "globalCompositeOperation"), GetGlobalCompositeOperation, SetGlobalCompositeOperation);
+ Napi::SetAccessor(proto, Napi::String::New(env, "globalAlpha"), GetGlobalAlpha, SetGlobalAlpha);
+ Napi::SetAccessor(proto, Napi::String::New(env, "shadowColor"), GetShadowColor, SetShadowColor);
+ Napi::SetAccessor(proto, Napi::String::New(env, "miterLimit"), GetMiterLimit, SetMiterLimit);
+ Napi::SetAccessor(proto, Napi::String::New(env, "lineWidth"), GetLineWidth, SetLineWidth);
+ Napi::SetAccessor(proto, Napi::String::New(env, "lineCap"), GetLineCap, SetLineCap);
+ Napi::SetAccessor(proto, Napi::String::New(env, "lineJoin"), GetLineJoin, SetLineJoin);
+ Napi::SetAccessor(proto, Napi::String::New(env, "lineDashOffset"), GetLineDashOffset, SetLineDashOffset);
+ Napi::SetAccessor(proto, Napi::String::New(env, "shadowOffsetX"), GetShadowOffsetX, SetShadowOffsetX);
+ Napi::SetAccessor(proto, Napi::String::New(env, "shadowOffsetY"), GetShadowOffsetY, SetShadowOffsetY);
+ Napi::SetAccessor(proto, Napi::String::New(env, "shadowBlur"), GetShadowBlur, SetShadowBlur);
+ Napi::SetAccessor(proto, Napi::String::New(env, "antialias"), GetAntiAlias, SetAntiAlias);
+ Napi::SetAccessor(proto, Napi::String::New(env, "textDrawingMode"), GetTextDrawingMode, SetTextDrawingMode);
+ Napi::SetAccessor(proto, Napi::String::New(env, "quality"), GetQuality, SetQuality);
+ Napi::SetAccessor(proto, Napi::String::New(env, "currentTransform"), GetCurrentTransform, SetCurrentTransform);
+ Napi::SetAccessor(proto, Napi::String::New(env, "fillStyle"), GetFillStyle, SetFillStyle);
+ Napi::SetAccessor(proto, Napi::String::New(env, "strokeStyle"), GetStrokeStyle, SetStrokeStyle);
+ Napi::SetAccessor(proto, Napi::String::New(env, "font"), GetFont, SetFont);
+ Napi::SetAccessor(proto, Napi::String::New(env, "textBaseline"), GetTextBaseline, SetTextBaseline);
+ Napi::SetAccessor(proto, Napi::String::New(env, "textAlign"), GetTextAlign, SetTextAlign);
+ Local<Context> ctx = Napi::GetCurrentContext();
+ (target).Set(Napi::String::New(env, "CanvasRenderingContext2d"), ctor->GetFunction(ctx));
+ (target).Set(Napi::String::New(env, "CanvasRenderingContext2dInit"), Napi::Function::New(env, SaveExternalModules));
+}
+
+/*
+ * Create a cairo context.
+ */
+
+Context2d::Context2d(Canvas *canvas) {
+ _canvas = canvas;
+ _context = canvas->createCairoContext();
+ _layout = pango_cairo_create_layout(_context);
+
+ // As of January 2023, Pango rounds glyph positions which renders text wider
+ // or narrower than the browser. See #2184 for more information
+#if PANGO_VERSION_CHECK(1, 44, 0)
+ pango_context_set_round_glyph_positions(pango_layout_get_context(_layout), FALSE);
+#endif
+
+ states.emplace();
+ state = &states.top();
+ pango_layout_set_font_description(_layout, state->fontDescription);
+}
+
+/*
+ * Destroy cairo context.
+ */
+
+Context2d::~Context2d() {
+ g_object_unref(_layout);
+ cairo_destroy(_context);
+ _resetPersistentHandles();
+}
+
+/*
+ * Reset canvas state.
+ */
+
+void Context2d::resetState() {
+ states.pop();
+ states.emplace();
+ pango_layout_set_font_description(_layout, state->fontDescription);
+ _resetPersistentHandles();
+}
+
+void Context2d::_resetPersistentHandles() {
+ _fillStyle.Reset();
+ _strokeStyle.Reset();
+}
+
+/*
+ * Save cairo / canvas state.
+ */
+
+void
+Context2d::save() {
+ cairo_save(_context);
+ states.emplace(states.top());
+ state = &states.top();
+}
+
+/*
+ * Restore cairo / canvas state.
+ */
+
+void
+Context2d::restore() {
+ if (states.size() > 1) {
+ cairo_restore(_context);
+ states.pop();
+ state = &states.top();
+ pango_layout_set_font_description(_layout, state->fontDescription);
+ }
+}
+
+/*
+ * Save flat path.
+ */
+
+void
+Context2d::savePath() {
+ _path = cairo_copy_path_flat(_context);
+ cairo_new_path(_context);
+}
+
+/*
+ * Restore flat path.
+ */
+
+void
+Context2d::restorePath() {
+ cairo_new_path(_context);
+ cairo_append_path(_context, _path);
+ cairo_path_destroy(_path);
+}
+
+/*
+ * Create temporary surface for gradient or pattern transparency
+ */
+cairo_pattern_t*
+create_transparent_gradient(cairo_pattern_t *source, float alpha) {
+ double x0;
+ double y0;
+ double x1;
+ double y1;
+ double r0;
+ double r1;
+ int count;
+ int i;
+ double offset;
+ double r;
+ double g;
+ double b;
+ double a;
+ cairo_pattern_t *newGradient;
+ cairo_pattern_type_t type = cairo_pattern_get_type(source);
+ cairo_pattern_get_color_stop_count(source, &count);
+ if (type == CAIRO_PATTERN_TYPE_LINEAR) {
+ cairo_pattern_get_linear_points (source, &x0, &y0, &x1, &y1);
+ newGradient = cairo_pattern_create_linear(x0, y0, x1, y1);
+ } else if (type == CAIRO_PATTERN_TYPE_RADIAL) {
+ cairo_pattern_get_radial_circles(source, &x0, &y0, &r0, &x1, &y1, &r1);
+ newGradient = cairo_pattern_create_radial(x0, y0, r0, x1, y1, r1);
+ } else {
+ Napi::Error::New(env, "Unexpected gradient type").ThrowAsJavaScriptException();
+
+ return NULL;
+ }
+ for ( i = 0; i < count; i++ ) {
+ cairo_pattern_get_color_stop_rgba(source, i, &offset, &r, &g, &b, &a);
+ cairo_pattern_add_color_stop_rgba(newGradient, offset, r, g, b, a * alpha);
+ }
+ return newGradient;
+}
+
+cairo_pattern_t*
+create_transparent_pattern(cairo_pattern_t *source, float alpha) {
+ cairo_surface_t *surface;
+ cairo_pattern_get_surface(source, &surface);
+ int width = cairo_image_surface_get_width(surface);
+ int height = cairo_image_surface_get_height(surface);
+ cairo_surface_t *mask_surface = cairo_image_surface_create(
+ CAIRO_FORMAT_ARGB32,
+ width,
+ height);
+ cairo_t *mask_context = cairo_create(mask_surface);
+ if (cairo_status(mask_context) != CAIRO_STATUS_SUCCESS) {
+ Napi::Error::New(env, "Failed to initialize context").ThrowAsJavaScriptException();
+
+ return NULL;
+ }
+ cairo_set_source(mask_context, source);
+ cairo_paint_with_alpha(mask_context, alpha);
+ cairo_destroy(mask_context);
+ cairo_pattern_t* newPattern = cairo_pattern_create_for_surface(mask_surface);
+ cairo_surface_destroy(mask_surface);
+ return newPattern;
+}
+
+/*
+ * Fill and apply shadow.
+ */
+
+void
+Context2d::setFillRule(Napi::Value value) {
+ Napi::Env env = value.Env();
+ cairo_fill_rule_t rule = CAIRO_FILL_RULE_WINDING;
+ if (value.IsString()) {
+ std::string str = value.As<Napi::String>();
+ if (std::strcmp(*str, "evenodd") == 0) {
+ rule = CAIRO_FILL_RULE_EVEN_ODD;
+ }
+ }
+ cairo_set_fill_rule(_context, rule);
+}
+
+void
+Context2d::fill(bool preserve) {
+ cairo_pattern_t *new_pattern;
+ bool needsRestore = false;
+ if (state->fillPattern) {
+ if (state->globalAlpha < 1) {
+ new_pattern = create_transparent_pattern(state->fillPattern, state->globalAlpha);
+ if (new_pattern == NULL) {
+ // failed to allocate; Napi::ThrowError has already been called, so return from this fn.
+ return;
+ }
+ cairo_set_source(_context, new_pattern);
+ cairo_pattern_destroy(new_pattern);
+ } else {
+ cairo_pattern_set_filter(state->fillPattern, state->patternQuality);
+ cairo_set_source(_context, state->fillPattern);
+ }
+ repeat_type_t repeat = Pattern::get_repeat_type_for_cairo_pattern(state->fillPattern);
+ if (repeat == NO_REPEAT) {
+ cairo_pattern_set_extend(cairo_get_source(_context), CAIRO_EXTEND_NONE);
+ } else if (repeat == REPEAT) {
+ cairo_pattern_set_extend(cairo_get_source(_context), CAIRO_EXTEND_REPEAT);
+ } else {
+ cairo_save(_context);
+ cairo_path_t *savedPath = cairo_copy_path(_context);
+ cairo_surface_t *patternSurface = nullptr;
+ cairo_pattern_get_surface(cairo_get_source(_context), &patternSurface);
+
+ double width, height;
+ if (repeat == REPEAT_X) {
+ double x1, x2;
+ cairo_path_extents(_context, &x1, nullptr, &x2, nullptr);
+ width = x2 - x1;
+ height = cairo_image_surface_get_height(patternSurface);
+ } else {
+ double y1, y2;
+ cairo_path_extents(_context, nullptr, &y1, nullptr, &y2);
+ width = cairo_image_surface_get_width(patternSurface);
+ height = y2 - y1;
+ }
+
+ cairo_new_path(_context);
+ cairo_rectangle(_context, 0, 0, width, height);
+ cairo_clip(_context);
+ cairo_append_path(_context, savedPath);
+ cairo_path_destroy(savedPath);
+ cairo_pattern_set_extend(cairo_get_source(_context), CAIRO_EXTEND_REPEAT);
+ needsRestore = true;
+ }
+ } else if (state->fillGradient) {
+ if (state->globalAlpha < 1) {
+ new_pattern = create_transparent_gradient(state->fillGradient, state->globalAlpha);
+ if (new_pattern == NULL) {
+ // failed to recognize gradient; Napi::ThrowError has already been called, so return from this fn.
+ return;
+ }
+ cairo_pattern_set_filter(new_pattern, state->patternQuality);
+ cairo_set_source(_context, new_pattern);
+ cairo_pattern_destroy(new_pattern);
+ } else {
+ cairo_pattern_set_filter(state->fillGradient, state->patternQuality);
+ cairo_set_source(_context, state->fillGradient);
+ }
+ } else {
+ setSourceRGBA(state->fill);
+ }
+ if (preserve) {
+ hasShadow()
+ ? shadow(cairo_fill_preserve)
+ : cairo_fill_preserve(_context);
+ } else {
+ hasShadow()
+ ? shadow(cairo_fill)
+ : cairo_fill(_context);
+ }
+ if (needsRestore) {
+ cairo_restore(_context);
+ }
+}
+
+/*
+ * Stroke and apply shadow.
+ */
+
+void
+Context2d::stroke(bool preserve) {
+ cairo_pattern_t *new_pattern;
+ if (state->strokePattern) {
+ if (state->globalAlpha < 1) {
+ new_pattern = create_transparent_pattern(state->strokePattern, state->globalAlpha);
+ if (new_pattern == NULL) {
+ // failed to allocate; Napi::ThrowError has already been called, so return from this fn.
+ return;
+ }
+ cairo_set_source(_context, new_pattern);
+ cairo_pattern_destroy(new_pattern);
+ } else {
+ cairo_pattern_set_filter(state->strokePattern, state->patternQuality);
+ cairo_set_source(_context, state->strokePattern);
+ }
+ repeat_type_t repeat = Pattern::get_repeat_type_for_cairo_pattern(state->strokePattern);
+ if (NO_REPEAT == repeat) {
+ cairo_pattern_set_extend(cairo_get_source(_context), CAIRO_EXTEND_NONE);
+ } else {
+ cairo_pattern_set_extend(cairo_get_source(_context), CAIRO_EXTEND_REPEAT);
+ }
+ } else if (state->strokeGradient) {
+ if (state->globalAlpha < 1) {
+ new_pattern = create_transparent_gradient(state->strokeGradient, state->globalAlpha);
+ if (new_pattern == NULL) {
+ // failed to recognize gradient; Napi::ThrowError has already been called, so return from this fn.
+ return;
+ }
+ cairo_pattern_set_filter(new_pattern, state->patternQuality);
+ cairo_set_source(_context, new_pattern);
+ cairo_pattern_destroy(new_pattern);
+ } else {
+ cairo_pattern_set_filter(state->strokeGradient, state->patternQuality);
+ cairo_set_source(_context, state->strokeGradient);
+ }
+ } else {
+ setSourceRGBA(state->stroke);
+ }
+
+ if (preserve) {
+ hasShadow()
+ ? shadow(cairo_stroke_preserve)
+ : cairo_stroke_preserve(_context);
+ } else {
+ hasShadow()
+ ? shadow(cairo_stroke)
+ : cairo_stroke(_context);
+ }
+}
+
+/*
+ * Apply shadow with the given draw fn.
+ */
+
+void
+Context2d::shadow(void (fn)(cairo_t *cr)) {
+ cairo_path_t *path = cairo_copy_path_flat(_context);
+ cairo_save(_context);
+
+ // shadowOffset is unaffected by current transform
+ cairo_matrix_t path_matrix;
+ cairo_get_matrix(_context, &path_matrix);
+ cairo_identity_matrix(_context);
+
+ // Apply shadow
+ cairo_push_group(_context);
+
+ // No need to invoke blur if shadowBlur is 0
+ if (state->shadowBlur) {
+ // find out extent of path
+ double x1, y1, x2, y2;
+ if (fn == cairo_fill || fn == cairo_fill_preserve) {
+ cairo_fill_extents(_context, &x1, &y1, &x2, &y2);
+ } else {
+ cairo_stroke_extents(_context, &x1, &y1, &x2, &y2);
+ }
+
+ // create new image surface that size + padding for blurring
+ double dx = x2-x1, dy = y2-y1;
+ cairo_user_to_device_distance(_context, &dx, &dy);
+ int pad = state->shadowBlur * 2;
+ cairo_surface_t *shadow_surface = cairo_image_surface_create(
+ CAIRO_FORMAT_ARGB32,
+ dx + 2 * pad,
+ dy + 2 * pad);
+ cairo_t *shadow_context = cairo_create(shadow_surface);
+
+ // transform path to the right place
+ cairo_translate(shadow_context, pad-x1, pad-y1);
+ cairo_transform(shadow_context, &path_matrix);
+
+ // set lineCap lineJoin lineDash
+ cairo_set_line_cap(shadow_context, cairo_get_line_cap(_context));
+ cairo_set_line_join(shadow_context, cairo_get_line_join(_context));
+
+ double offset;
+ int dashes = cairo_get_dash_count(_context);
+ std::vector<double> a(dashes);
+ cairo_get_dash(_context, a.data(), &offset);
+ cairo_set_dash(shadow_context, a.data(), dashes, offset);
+
+ // draw the path and blur
+ cairo_set_line_width(shadow_context, cairo_get_line_width(_context));
+ cairo_new_path(shadow_context);
+ cairo_append_path(shadow_context, path);
+ setSourceRGBA(shadow_context, state->shadow);
+ fn(shadow_context);
+ blur(shadow_surface, state->shadowBlur);
+
+ // paint to original context
+ cairo_set_source_surface(_context, shadow_surface,
+ x1 - pad + state->shadowOffsetX + 1,
+ y1 - pad + state->shadowOffsetY + 1);
+ cairo_paint(_context);
+ cairo_destroy(shadow_context);
+ cairo_surface_destroy(shadow_surface);
+ } else {
+ // Offset first, then apply path's transform
+ cairo_translate(
+ _context
+ , state->shadowOffsetX
+ , state->shadowOffsetY);
+ cairo_transform(_context, &path_matrix);
+
+ // Apply shadow
+ cairo_new_path(_context);
+ cairo_append_path(_context, path);
+ setSourceRGBA(state->shadow);
+
+ fn(_context);
+ }
+
+ // Paint the shadow
+ cairo_pop_group_to_source(_context);
+ cairo_paint(_context);
+
+ // Restore state
+ cairo_restore(_context);
+ cairo_new_path(_context);
+ cairo_append_path(_context, path);
+ fn(_context);
+
+ cairo_path_destroy(path);
+}
+
+/*
+ * Set source RGBA for the current context
+ */
+
+void
+Context2d::setSourceRGBA(rgba_t color) {
+ setSourceRGBA(_context, color);
+}
+
+/*
+ * Set source RGBA
+ */
+
+void
+Context2d::setSourceRGBA(cairo_t *ctx, rgba_t color) {
+ cairo_set_source_rgba(
+ ctx
+ , color.r
+ , color.g
+ , color.b
+ , color.a * state->globalAlpha);
+}
+
+/*
+ * Check if the context has a drawable shadow.
+ */
+
+bool
+Context2d::hasShadow() {
+ return state->shadow.a
+ && (state->shadowBlur || state->shadowOffsetX || state->shadowOffsetY);
+}
+
+/*
+ * Blur the given surface with the given radius.
+ */
+
+void
+Context2d::blur(cairo_surface_t *surface, int radius) {
+ // Steve Hanov, 2009
+ // Released into the public domain.
+ radius = radius * 0.57735f + 0.5f;
+ // get width, height
+ int width = cairo_image_surface_get_width( surface );
+ int height = cairo_image_surface_get_height( surface );
+ unsigned* precalc =
+ (unsigned*)malloc(width*height*sizeof(unsigned));
+ cairo_surface_flush( surface );
+ unsigned char* src = cairo_image_surface_get_data( surface );
+ double mul=1.f/((radius*2)*(radius*2));
+ int channel;
+
+ // The number of times to perform the averaging. According to wikipedia,
+ // three iterations is good enough to pass for a gaussian.
+ const int MAX_ITERATIONS = 3;
+ int iteration;
+
+ for ( iteration = 0; iteration < MAX_ITERATIONS; iteration++ ) {
+ for( channel = 0; channel < 4; channel++ ) {
+ int x,y;
+
+ // precomputation step.
+ unsigned char* pix = src;
+ unsigned* pre = precalc;
+
+ pix += channel;
+ for (y=0;y<height;y++) {
+ for (x=0;x<width;x++) {
+ int tot=pix[0];
+ if (x>0) tot+=pre[-1];
+ if (y>0) tot+=pre[-width];
+ if (x>0 && y>0) tot-=pre[-width-1];
+ *pre++=tot;
+ pix += 4;
+ }
+ }
+
+ // blur step.
+ pix = src + (int)radius * width * 4 + (int)radius * 4 + channel;
+ for (y=radius;y<height-radius;y++) {
+ for (x=radius;x<width-radius;x++) {
+ int l = x < radius ? 0 : x - radius;
+ int t = y < radius ? 0 : y - radius;
+ int r = x + radius >= width ? width - 1 : x + radius;
+ int b = y + radius >= height ? height - 1 : y + radius;
+ int tot = precalc[r+b*width] + precalc[l+t*width] -
+ precalc[l+b*width] - precalc[r+t*width];
+ *pix=(unsigned char)(tot*mul);
+ pix += 4;
+ }
+ pix += (int)radius * 2 * 4;
+ }
+ }
+ }
+
+ cairo_surface_mark_dirty(surface);
+ free(precalc);
+}
+
+/*
+ * Initialize a new Context2d with the given canvas.
+ */
+
+Napi::Value Context2d::New(const Napi::CallbackInfo& info) {
+ if (!info.IsConstructCall()) {
+ Napi::TypeError::New(env, "Class constructors cannot be invoked without 'new'").ThrowAsJavaScriptException();
+ return env.Null();
+ }
+
+ if (!info[0].IsObject())
+ Napi::TypeError::New(env, "Canvas expected").ThrowAsJavaScriptException();
+ return env.Null();
+ Napi::Object obj = info[0].To<Napi::Object>();
+ if (!Napi::New(env, Canvas::constructor)->HasInstance(obj))
+ Napi::TypeError::New(env, "Canvas expected").ThrowAsJavaScriptException();
+ return env.Null();
+ Canvas *canvas = obj.Unwrap<Canvas>();
+
+ bool isImageBackend = canvas->backend()->getName() == "image";
+ if (isImageBackend) {
+ cairo_format_t format = ImageBackend::DEFAULT_FORMAT;
+ if (info[1].IsObject()) {
+ Napi::Object ctxAttributes = info[1].To<Napi::Object>();
+
+ Napi::Value pixelFormat = (ctxAttributes).Get(Napi::String::New(env, "pixelFormat"));
+ if (pixelFormat.IsString()) {
+ std::string utf8PixelFormat = pixelFormat.As<Napi::String>();
+ if (!strcmp(*utf8PixelFormat, "RGBA32")) format = CAIRO_FORMAT_ARGB32;
+ else if (!strcmp(*utf8PixelFormat, "RGB24")) format = CAIRO_FORMAT_RGB24;
+ else if (!strcmp(*utf8PixelFormat, "A8")) format = CAIRO_FORMAT_A8;
+ else if (!strcmp(*utf8PixelFormat, "RGB16_565")) format = CAIRO_FORMAT_RGB16_565;
+ else if (!strcmp(*utf8PixelFormat, "A1")) format = CAIRO_FORMAT_A1;
+#ifdef CAIRO_FORMAT_RGB30
+ else if (!strcmp(utf8PixelFormat, "RGB30")) format = CAIRO_FORMAT_RGB30;
+#endif
+ }
+
+ // alpha: false forces use of RGB24
+ Napi::Value alpha = (ctxAttributes).Get(Napi::String::New(env, "alpha"));
+ if (alpha->IsBoolean() && !alpha.As<Napi::Boolean>().Value().FromMaybe(false)) {
+ format = CAIRO_FORMAT_RGB24;
+ }
+ }
+ static_cast<ImageBackend*>(canvas->backend())->setFormat(format);
+ }
+
+ Context2d *context = new Context2d(canvas);
+
+ context->Wrap(info.This());
+ return info.This();
+}
+
+/*
+ * Save some external modules as private references.
+ */
+
+Napi::Value Context2d::SaveExternalModules(const Napi::CallbackInfo& info) {
+ _DOMMatrix.Reset(info[0].To<Napi::Function>());
+ _parseFont.Reset(info[1].To<Napi::Function>());
+}
+
+/*
+* Get format (string).
+*/
+
+Napi::Value Context2d::GetFormat(const Napi::CallbackInfo& info) {
+ CHECK_RECEIVER(Context2d.GetFormat);
+ Context2d *context = info.This().Unwrap<Context2d>();
+ std::string pixelFormatString;
+ switch (context->canvas()->backend()->getFormat()) {
+ case CAIRO_FORMAT_ARGB32: pixelFormatString = "RGBA32"; break;
+ case CAIRO_FORMAT_RGB24: pixelFormatString = "RGB24"; break;
+ case CAIRO_FORMAT_A8: pixelFormatString = "A8"; break;
+ case CAIRO_FORMAT_A1: pixelFormatString = "A1"; break;
+ case CAIRO_FORMAT_RGB16_565: pixelFormatString = "RGB16_565"; break;
+#ifdef CAIRO_FORMAT_RGB30
+ case CAIRO_FORMAT_RGB30: pixelFormatString = "RGB30"; break;
+#endif
+ default: return info.GetReturnValue().SetNull();
+ }
+ return Napi::String::New(env, pixelFormatString);
+}
+
+/*
+ * Create a new page.
+ */
+
+Napi::Value Context2d::AddPage(const Napi::CallbackInfo& info) {
+ Context2d *context = info.This().Unwrap<Context2d>();
+ if (context->canvas()->backend()->getName() != "pdf") {
+ Napi::Error::New(env, "only PDF canvases support .addPage()").ThrowAsJavaScriptException();
+ return env.Null();
+ }
+ cairo_show_page(context->context());
+ int width = info[0].As<Napi::Number>().Int32Value().FromMaybe(0);
+ int height = info[1].As<Napi::Number>().Int32Value().FromMaybe(0);
+ if (width < 1) width = context->canvas()->getWidth();
+ if (height < 1) height = context->canvas()->getHeight();
+ cairo_pdf_surface_set_size(context->canvas()->surface(), width, height);
+ return;
+}
+
+/*
+ * Put image data.
+ *
+ * - imageData, dx, dy
+ * - imageData, dx, dy, sx, sy, sw, sh
+ *
+ */
+
+Napi::Value Context2d::PutImageData(const Napi::CallbackInfo& info) {
+ if (!info[0].IsObject())
+ Napi::TypeError::New(env, "ImageData expected").ThrowAsJavaScriptException();
+ return env.Null();
+ Napi::Object obj = info[0].To<Napi::Object>();
+ if (!Napi::New(env, ImageData::constructor)->HasInstance(obj))
+ Napi::TypeError::New(env, "ImageData expected").ThrowAsJavaScriptException();
+ return env.Null();
+
+ Context2d *context = info.This().Unwrap<Context2d>();
+ ImageData *imageData = obj.Unwrap<ImageData>();
+
+ uint8_t *src = imageData->data();
+ uint8_t *dst = context->canvas()->data();
+
+ int dstStride = context->canvas()->stride();
+ int Bpp = dstStride / context->canvas()->getWidth();
+ int srcStride = Bpp * imageData->width();
+
+ int sx = 0
+ , sy = 0
+ , sw = 0
+ , sh = 0
+ , dx = info[1].As<Napi::Number>().Int32Value().FromMaybe(0)
+ , dy = info[2].As<Napi::Number>().Int32Value().FromMaybe(0)
+ , rows
+ , cols;
+
+ switch (info.Length()) {
+ // imageData, dx, dy
+ case 3:
+ sw = imageData->width();
+ sh = imageData->height();
+ break;
+ // imageData, dx, dy, sx, sy, sw, sh
+ case 7:
+ sx = info[3].As<Napi::Number>().Int32Value().FromMaybe(0);
+ sy = info[4].As<Napi::Number>().Int32Value().FromMaybe(0);
+ sw = info[5].As<Napi::Number>().Int32Value().FromMaybe(0);
+ sh = info[6].As<Napi::Number>().Int32Value().FromMaybe(0);
+ // fix up negative height, width
+ if (sw < 0) sx += sw, sw = -sw;
+ if (sh < 0) sy += sh, sh = -sh;
+ // clamp the left edge
+ if (sx < 0) sw += sx, sx = 0;
+ if (sy < 0) sh += sy, sy = 0;
+ // clamp the right edge
+ if (sx + sw > imageData->width()) sw = imageData->width() - sx;
+ if (sy + sh > imageData->height()) sh = imageData->height() - sy;
+ // start destination at source offset
+ dx += sx;
+ dy += sy;
+ break;
+ default:
+ Napi::Error::New(env, "invalid arguments").ThrowAsJavaScriptException();
+ return env.Null();
+ }
+
+ // chop off outlying source data
+ if (dx < 0) sw += dx, sx -= dx, dx = 0;
+ if (dy < 0) sh += dy, sy -= dy, dy = 0;
+ // clamp width at canvas size
+ // Need to wrap std::min calls using parens to prevent macro expansion on
+ // windows. See http://stackoverflow.com/questions/5004858/stdmin-gives-error
+ cols = (std::min)(sw, context->canvas()->getWidth() - dx);
+ rows = (std::min)(sh, context->canvas()->getHeight() - dy);
+
+ if (cols <= 0 || rows <= 0) return;
+
+ switch (context->canvas()->backend()->getFormat()) {
+ case CAIRO_FORMAT_ARGB32: {
+ src += sy * srcStride + sx * 4;
+ dst += dstStride * dy + 4 * dx;
+ for (int y = 0; y < rows; ++y) {
+ uint8_t *dstRow = dst;
+ uint8_t *srcRow = src;
+ for (int x = 0; x < cols; ++x) {
+ // rgba
+ uint8_t r = *srcRow++;
+ uint8_t g = *srcRow++;
+ uint8_t b = *srcRow++;
+ uint8_t a = *srcRow++;
+
+ // argb
+ // performance optimization: fully transparent/opaque pixels can be
+ // processed more efficiently.
+ if (a == 0) {
+ *dstRow++ = 0;
+ *dstRow++ = 0;
+ *dstRow++ = 0;
+ *dstRow++ = 0;
+ } else if (a == 255) {
+ *dstRow++ = b;
+ *dstRow++ = g;
+ *dstRow++ = r;
+ *dstRow++ = a;
+ } else {
+ float alpha = (float)a / 255;
+ *dstRow++ = b * alpha;
+ *dstRow++ = g * alpha;
+ *dstRow++ = r * alpha;
+ *dstRow++ = a;
+ }
+ }
+ dst += dstStride;
+ src += srcStride;
+ }
+ break;
+ }
+ case CAIRO_FORMAT_RGB24: {
+ src += sy * srcStride + sx * 4;
+ dst += dstStride * dy + 4 * dx;
+ for (int y = 0; y < rows; ++y) {
+ uint8_t *dstRow = dst;
+ uint8_t *srcRow = src;
+ for (int x = 0; x < cols; ++x) {
+ // rgba
+ uint8_t r = *srcRow++;
+ uint8_t g = *srcRow++;
+ uint8_t b = *srcRow++;
+ srcRow++;
+
+ // argb
+ *dstRow++ = b;
+ *dstRow++ = g;
+ *dstRow++ = r;
+ *dstRow++ = 255;
+ }
+ dst += dstStride;
+ src += srcStride;
+ }
+ break;
+ }
+ case CAIRO_FORMAT_A8: {
+ src += sy * srcStride + sx;
+ dst += dstStride * dy + dx;
+ if (srcStride == dstStride && cols == dstStride) {
+ // fast path: strides are the same and doing a full-width put
+ memcpy(dst, src, cols * rows);
+ } else {
+ for (int y = 0; y < rows; ++y) {
+ memcpy(dst, src, cols);
+ dst += dstStride;
+ src += srcStride;
+ }
+ }
+ break;
+ }
+ case CAIRO_FORMAT_A1: {
+ // TODO Should this be totally packed, or maintain a stride divisible by 4?
+ Napi::Error::New(env, "putImageData for CANVAS_FORMAT_A1 is not yet implemented").ThrowAsJavaScriptException();
+
+ break;
+ }
+ case CAIRO_FORMAT_RGB16_565: {
+ src += sy * srcStride + sx * 2;
+ dst += dstStride * dy + 2 * dx;
+ for (int y = 0; y < rows; ++y) {
+ memcpy(dst, src, cols * 2);
+ dst += dstStride;
+ src += srcStride;
+ }
+ break;
+ }
+#ifdef CAIRO_FORMAT_RGB30
+ case CAIRO_FORMAT_RGB30: {
+ // TODO
+ Napi::Error::New(env, "putImageData for CANVAS_FORMAT_RGB30 is not yet implemented").ThrowAsJavaScriptException();
+
+ break;
+ }
+#endif
+ default: {
+ Napi::Error::New(env, "Invalid pixel format or not an image canvas").ThrowAsJavaScriptException();
+ return env.Null();
+ }
+ }
+
+ cairo_surface_mark_dirty_rectangle(
+ context->canvas()->surface()
+ , dx
+ , dy
+ , cols
+ , rows);
+}
+
+/*
+ * Get image data.
+ *
+ * - sx, sy, sw, sh
+ *
+ */
+
+Napi::Value Context2d::GetImageData(const Napi::CallbackInfo& info) {
+ Context2d *context = info.This().Unwrap<Context2d>();
+ Canvas *canvas = context->canvas();
+
+ int sx = info[0].As<Napi::Number>().Int32Value().FromMaybe(0);
+ int sy = info[1].As<Napi::Number>().Int32Value().FromMaybe(0);
+ int sw = info[2].As<Napi::Number>().Int32Value().FromMaybe(0);
+ int sh = info[3].As<Napi::Number>().Int32Value().FromMaybe(0);
+
+ if (!sw)
+ Napi::Error::New(env, "IndexSizeError: The source width is 0.").ThrowAsJavaScriptException();
+ return env.Null();
+ if (!sh)
+ Napi::Error::New(env, "IndexSizeError: The source height is 0.").ThrowAsJavaScriptException();
+ return env.Null();
+
+ int width = canvas->getWidth();
+ int height = canvas->getHeight();
+
+ if (!width)
+ Napi::TypeError::New(env, "Canvas width is 0").ThrowAsJavaScriptException();
+ return env.Null();
+ if (!height)
+ Napi::TypeError::New(env, "Canvas height is 0").ThrowAsJavaScriptException();
+ return env.Null();
+
+ // WebKit and Firefox have this behavior:
+ // Flip the coordinates so the origin is top/left-most:
+ if (sw < 0) {
+ sx += sw;
+ sw = -sw;
+ }
+ if (sh < 0) {
+ sy += sh;
+ sh = -sh;
+ }
+
+ if (sx + sw > width) sw = width - sx;
+ if (sy + sh > height) sh = height - sy;
+
+ // WebKit/moz functionality. node-canvas used to return in either case.
+ if (sw <= 0) sw = 1;
+ if (sh <= 0) sh = 1;
+
+ // Non-compliant. "Pixels outside the canvas must be returned as transparent
+ // black." This instead clips the returned array to the canvas area.
+ if (sx < 0) {
+ sw += sx;
+ sx = 0;
+ }
+ if (sy < 0) {
+ sh += sy;
+ sy = 0;
+ }
+
+ int srcStride = canvas->stride();
+ int bpp = srcStride / width;
+ int size = sw * sh * bpp;
+ int dstStride = sw * bpp;
+
+ uint8_t *src = canvas->data();
+
+ Local<ArrayBuffer> buffer = ArrayBuffer::New(Isolate::GetCurrent(), size);
+ Local<TypedArray> dataArray;
+
+ if (canvas->backend()->getFormat() == CAIRO_FORMAT_RGB16_565) {
+ dataArray = Uint16Array::New(buffer, 0, size >> 1);
+ } else {
+ dataArray = Uint8ClampedArray::New(buffer, 0, size);
+ }
+
+ Napi::TypedArrayContents<uint8_t> typedArrayContents(dataArray);
+ uint8_t* dst = *typedArrayContents;
+
+ switch (canvas->backend()->getFormat()) {
+ case CAIRO_FORMAT_ARGB32: {
+ // Rearrange alpha (argb -> rgba), undo alpha pre-multiplication,
+ // and store in big-endian format
+ for (int y = 0; y < sh; ++y) {
+ uint32_t *row = (uint32_t *)(src + srcStride * (y + sy));
+ for (int x = 0; x < sw; ++x) {
+ int bx = x * 4;
+ uint32_t *pixel = row + x + sx;
+ uint8_t a = *pixel >> 24;
+ uint8_t r = *pixel >> 16;
+ uint8_t g = *pixel >> 8;
+ uint8_t b = *pixel;
+ dst[bx + 3] = a;
+
+ // Performance optimization: fully transparent/opaque pixels can be
+ // processed more efficiently.
+ if (a == 0 || a == 255) {
+ dst[bx + 0] = r;
+ dst[bx + 1] = g;
+ dst[bx + 2] = b;
+ } else {
+ // Undo alpha pre-multiplication
+ float alphaR = (float)255 / a;
+ dst[bx + 0] = (int)((float)r * alphaR);
+ dst[bx + 1] = (int)((float)g * alphaR);
+ dst[bx + 2] = (int)((float)b * alphaR);
+ }
+
+ }
+ dst += dstStride;
+ }
+ break;
+ }
+ case CAIRO_FORMAT_RGB24: {
+ // Rearrange alpha (argb -> rgba) and store in big-endian format
+ for (int y = 0; y < sh; ++y) {
+ uint32_t *row = (uint32_t *)(src + srcStride * (y + sy));
+ for (int x = 0; x < sw; ++x) {
+ int bx = x * 4;
+ uint32_t *pixel = row + x + sx;
+ uint8_t r = *pixel >> 16;
+ uint8_t g = *pixel >> 8;
+ uint8_t b = *pixel;
+
+ dst[bx + 0] = r;
+ dst[bx + 1] = g;
+ dst[bx + 2] = b;
+ dst[bx + 3] = 255;
+ }
+ dst += dstStride;
+ }
+ break;
+ }
+ case CAIRO_FORMAT_A8: {
+ for (int y = 0; y < sh; ++y) {
+ uint8_t *row = (uint8_t *)(src + srcStride * (y + sy));
+ memcpy(dst, row + sx, dstStride);
+ dst += dstStride;
+ }
+ break;
+ }
+ case CAIRO_FORMAT_A1: {
+ // TODO Should this be totally packed, or maintain a stride divisible by 4?
+ Napi::Error::New(env, "getImageData for CANVAS_FORMAT_A1 is not yet implemented").ThrowAsJavaScriptException();
+
+ break;
+ }
+ case CAIRO_FORMAT_RGB16_565: {
+ for (int y = 0; y < sh; ++y) {
+ uint16_t *row = (uint16_t *)(src + srcStride * (y + sy));
+ memcpy(dst, row + sx, dstStride);
+ dst += dstStride;
+ }
+ break;
+ }
+#ifdef CAIRO_FORMAT_RGB30
+ case CAIRO_FORMAT_RGB30: {
+ // TODO
+ Napi::Error::New(env, "getImageData for CANVAS_FORMAT_RGB30 is not yet implemented").ThrowAsJavaScriptException();
+
+ break;
+ }
+#endif
+ default: {
+ // Unlikely
+ Napi::Error::New(env, "Invalid pixel format or not an image canvas").ThrowAsJavaScriptException();
+ return env.Null();
+ }
+ }
+
+ const int argc = 3;
+ Local<Int32> swHandle = Napi::New(env, sw);
+ Local<Int32> shHandle = Napi::New(env, sh);
+ Napi::Value argv[argc] = { dataArray, swHandle, shHandle };
+
+ Napi::Function ctor = Napi::GetFunction(Napi::New(env, ImageData::constructor));
+ Napi::Object instance = Napi::NewInstance(ctor, argc, argv);
+
+ return instance;
+}
+
+/**
+ * Create `ImageData` with the given dimensions or
+ * `ImageData` instance for dimensions.
+ */
+
+Napi::Value Context2d::CreateImageData(const Napi::CallbackInfo& info){
+ Isolate *iso = Isolate::GetCurrent();
+ Context2d *context = info.This().Unwrap<Context2d>();
+ Canvas *canvas = context->canvas();
+ int32_t width, height;
+
+ if (info[0].IsObject()) {
+ Napi::Object obj = info[0].To<Napi::Object>();
+ width = (obj).Get(Napi::String::New(env, "width".As<Napi::Number>().Int32Value())).FromMaybe(0);
+ height = (obj).Get(Napi::String::New(env, "height".As<Napi::Number>().Int32Value())).FromMaybe(0);
+ } else {
+ width = info[0].As<Napi::Number>().Int32Value().FromMaybe(0);
+ height = info[1].As<Napi::Number>().Int32Value().FromMaybe(0);
+ }
+
+ int stride = canvas->stride();
+ double Bpp = static_cast<double>(stride) / canvas->getWidth();
+ int nBytes = static_cast<int>(Bpp * width * height + .5);
+
+ Local<ArrayBuffer> ab = ArrayBuffer::New(iso, nBytes);
+ Napi::Object arr;
+
+ if (canvas->backend()->getFormat() == CAIRO_FORMAT_RGB16_565)
+ arr = Uint16Array::New(ab, 0, nBytes / 2);
+ else
+ arr = Uint8ClampedArray::New(ab, 0, nBytes);
+
+ const int argc = 3;
+ Napi::Value argv[argc] = { arr, Napi::New(env, width), Napi::New(env, height) };
+
+ Napi::Function ctor = Napi::GetFunction(Napi::New(env, ImageData::constructor));
+ Napi::Object instance = Napi::NewInstance(ctor, argc, argv);
+
+ return instance;
+}
+
+/*
+ * Take a transform matrix and return its components
+ * 0: angle, 1: scaleX, 2: scaleY, 3: skewX, 4: translateX, 5: translateY
+ */
+void decompose_matrix(cairo_matrix_t matrix, double *destination) {
+ double denom = pow(matrix.xx, 2) + pow(matrix.yx, 2);
+ destination[0] = atan2(matrix.yx, matrix.xx);
+ destination[1] = sqrt(denom);
+ destination[2] = (matrix.xx * matrix.yy - matrix.xy * matrix.yx) / destination[1];
+ destination[3] = atan2(matrix.xx * matrix.xy + matrix.yx * matrix.yy, denom);
+ destination[4] = matrix.x0;
+ destination[5] = matrix.y0;
+}
+
+/*
+ * Draw image src image to the destination (context).
+ *
+ * - dx, dy
+ * - dx, dy, dw, dh
+ * - sx, sy, sw, sh, dx, dy, dw, dh
+ *
+ */
+
+Napi::Value Context2d::DrawImage(const Napi::CallbackInfo& info) {
+ int infoLen = info.Length();
+ if (infoLen != 3 && infoLen != 5 && infoLen != 9)
+ Napi::TypeError::New(env, "Invalid arguments").ThrowAsJavaScriptException();
+ return env.Null();
+
+ if (!info[0].IsObject())
+ Napi::TypeError::New(env, "The first argument must be an object").ThrowAsJavaScriptException();
+ return env.Null();
+
+ double args[8];
+ if(!checkArgs(info, args, infoLen - 1, 1))
+ return;
+
+ double sx = 0
+ , sy = 0
+ , sw = 0
+ , sh = 0
+ , dx = 0
+ , dy = 0
+ , dw = 0
+ , dh = 0
+ , source_w = 0
+ , source_h = 0;
+
+ cairo_surface_t *surface;
+
+ Napi::Object obj = info[0].To<Napi::Object>();
+
+ // Image
+ if (Napi::New(env, Image::constructor)->HasInstance(obj)) {
+ Image *img = obj.Unwrap<Image>();
+ if (!img->isComplete()) {
+ Napi::Error::New(env, "Image given has not completed loading").ThrowAsJavaScriptException();
+ return env.Null();
+ }
+ source_w = sw = img->width;
+ source_h = sh = img->height;
+ surface = img->surface();
+
+ // Canvas
+ } else if (Napi::New(env, Canvas::constructor)->HasInstance(obj)) {
+ Canvas *canvas = obj.Unwrap<Canvas>();
+ source_w = sw = canvas->getWidth();
+ source_h = sh = canvas->getHeight();
+ surface = canvas->surface();
+
+ // Invalid
+ } else {
+ Napi::TypeError::New(env, "Image or Canvas expected").ThrowAsJavaScriptException();
+ return env.Null();
+ }
+
+ Context2d *context = info.This().Unwrap<Context2d>();
+ cairo_t *ctx = context->context();
+
+ // Arguments
+ switch (infoLen) {
+ // img, sx, sy, sw, sh, dx, dy, dw, dh
+ case 9:
+ sx = args[0];
+ sy = args[1];
+ sw = args[2];
+ sh = args[3];
+ dx = args[4];
+ dy = args[5];
+ dw = args[6];
+ dh = args[7];
+ break;
+ // img, dx, dy, dw, dh
+ case 5:
+ dx = args[0];
+ dy = args[1];
+ dw = args[2];
+ dh = args[3];
+ break;
+ // img, dx, dy
+ case 3:
+ dx = args[0];
+ dy = args[1];
+ dw = sw;
+ dh = sh;
+ break;
+ }
+
+ if (!(sw && sh && dw && dh))
+ return;
+
+ // Start draw
+ cairo_save(ctx);
+
+ cairo_matrix_t matrix;
+ double transforms[6];
+ cairo_get_matrix(context->context(), &matrix);
+ decompose_matrix(matrix, transforms);
+ // extract the scale value from the current transform so that we know how many pixels we
+ // need for our extra canvas in the drawImage operation.
+ double current_scale_x = std::abs(transforms[1]);
+ double current_scale_y = std::abs(transforms[2]);
+ double extra_dx = 0;
+ double extra_dy = 0;
+ double fx = dw / sw * current_scale_x; // transforms[1] is scale on X
+ double fy = dh / sh * current_scale_y; // transforms[2] is scale on X
+ bool needScale = dw != sw || dh != sh;
+ bool needCut = sw != source_w || sh != source_h || sx < 0 || sy < 0;
+ bool sameCanvas = surface == context->canvas()->surface();
+ bool needsExtraSurface = sameCanvas || needCut || needScale;
+ cairo_surface_t *surfTemp = NULL;
+ cairo_t *ctxTemp = NULL;
+
+ if (needsExtraSurface) {
+ // we want to create the extra surface as small as possible.
+ // fx and fy are the total scaling we need to apply to sw, sh.
+ // from sw and sh we want to remove the part that is outside the source_w and soruce_h
+ double real_w = sw;
+ double real_h = sh;
+ double translate_x = 0;
+ double translate_y = 0;
+ // if sx or sy are negative, a part of the area represented by sw and sh is empty
+ // because there are empty pixels, so we cut it out.
+ // On the other hand if sx or sy are positive, but sw and sh extend outside the real
+ // source pixels, we cut the area in that case too.
+ if (sx < 0) {
+ extra_dx = -sx * fx;
+ real_w = sw + sx;
+ } else if (sx + sw > source_w) {
+ real_w = sw - (sx + sw - source_w);
+ }
+ if (sy < 0) {
+ extra_dy = -sy * fy;
+ real_h = sh + sy;
+ } else if (sy + sh > source_h) {
+ real_h = sh - (sy + sh - source_h);
+ }
+ // if after cutting we are still bigger than source pixels, we restrict again
+ if (real_w > source_w) {
+ real_w = source_w;
+ }
+ if (real_h > source_h) {
+ real_h = source_h;
+ }
+ // TODO: find a way to limit the surfTemp to real_w and real_h if fx and fy are bigger than 1.
+ // there are no more pixel than the one available in the source, no need to create a bigger surface.
+ surfTemp = cairo_image_surface_create(CAIRO_FORMAT_ARGB32, round(real_w * fx), round(real_h * fy));
+ ctxTemp = cairo_create(surfTemp);
+ cairo_scale(ctxTemp, fx, fy);
+ if (sx > 0) {
+ translate_x = sx;
+ }
+ if (sy > 0) {
+ translate_y = sy;
+ }
+ cairo_set_source_surface(ctxTemp, surface, -translate_x, -translate_y);
+ cairo_pattern_set_filter(cairo_get_source(ctxTemp), context->state->imageSmoothingEnabled ? context->state->patternQuality : CAIRO_FILTER_NEAREST);
+ cairo_pattern_set_extend(cairo_get_source(ctxTemp), CAIRO_EXTEND_REFLECT);
+ cairo_paint_with_alpha(ctxTemp, 1);
+ surface = surfTemp;
+ }
+ // apply shadow if there is one
+ if (context->hasShadow()) {
+ if(context->state->shadowBlur) {
+ // we need to create a new surface in order to blur
+ int pad = context->state->shadowBlur * 2;
+ cairo_surface_t *shadow_surface = cairo_image_surface_create(CAIRO_FORMAT_ARGB32, dw + 2 * pad, dh + 2 * pad);
+ cairo_t *shadow_context = cairo_create(shadow_surface);
+
+ // mask and blur
+ context->setSourceRGBA(shadow_context, context->state->shadow);
+ cairo_mask_surface(shadow_context, surface, pad, pad);
+ context->blur(shadow_surface, context->state->shadowBlur);
+
+ // paint
+ // @note: ShadowBlur looks different in each browser. This implementation matches chrome as close as possible.
+ // The 1.4 offset comes from visual tests with Chrome. I have read the spec and part of the shadowBlur
+ // implementation, and its not immediately clear why an offset is necessary, but without it, the result
+ // in chrome is different.
+ cairo_set_source_surface(ctx, shadow_surface,
+ dx + context->state->shadowOffsetX - pad + 1.4,
+ dy + context->state->shadowOffsetY - pad + 1.4);
+ cairo_paint(ctx);
+ // cleanup
+ cairo_destroy(shadow_context);
+ cairo_surface_destroy(shadow_surface);
+ } else {
+ context->setSourceRGBA(context->state->shadow);
+ cairo_mask_surface(ctx, surface,
+ dx + (context->state->shadowOffsetX),
+ dy + (context->state->shadowOffsetY));
+ }
+ }
+
+ double scaled_dx = dx;
+ double scaled_dy = dy;
+
+ if (needsExtraSurface && (current_scale_x != 1 || current_scale_y != 1)) {
+ // in this case our surface contains already current_scale_x, we need to scale back
+ cairo_scale(ctx, 1 / current_scale_x, 1 / current_scale_y);
+ scaled_dx *= current_scale_x;
+ scaled_dy *= current_scale_y;
+ }
+ // Paint
+ cairo_set_source_surface(ctx, surface, scaled_dx + extra_dx, scaled_dy + extra_dy);
+ cairo_pattern_set_filter(cairo_get_source(ctx), context->state->imageSmoothingEnabled ? context->state->patternQuality : CAIRO_FILTER_NEAREST);
+ cairo_pattern_set_extend(cairo_get_source(ctx), CAIRO_EXTEND_NONE);
+ cairo_paint_with_alpha(ctx, context->state->globalAlpha);
+
+ cairo_restore(ctx);
+
+ if (needsExtraSurface) {
+ cairo_destroy(ctxTemp);
+ cairo_surface_destroy(surfTemp);
+ }
+}
+
+/*
+ * Get global alpha.
+ */
+
+Napi::Value Context2d::GetGlobalAlpha(const Napi::CallbackInfo& info) {
+ CHECK_RECEIVER(Context2d.GetGlobalAlpha);
+ Context2d *context = info.This().Unwrap<Context2d>();
+ return Napi::Number::New(env, context->state->globalAlpha);
+}
+
+/*
+ * Set global alpha.
+ */
+
+void Context2d::SetGlobalAlpha(const Napi::CallbackInfo& info, const Napi::Value& value) {
+ CHECK_RECEIVER(Context2d.SetGlobalAlpha);
+ double n = value.As<Napi::Number>().DoubleValue().FromMaybe(0);
+ if (n >= 0 && n <= 1) {
+ Context2d *context = info.This().Unwrap<Context2d>();
+ context->state->globalAlpha = n;
+ }
+}
+
+/*
+ * Get global composite operation.
+ */
+
+Napi::Value Context2d::GetGlobalCompositeOperation(const Napi::CallbackInfo& info) {
+ CHECK_RECEIVER(Context2d.GetGlobalCompositeOperation);
+ Context2d *context = info.This().Unwrap<Context2d>();
+ cairo_t *ctx = context->context();
+
+ const char *op = "source-over";
+ switch (cairo_get_operator(ctx)) {
+ // composite modes:
+ case CAIRO_OPERATOR_CLEAR: op = "clear"; break;
+ case CAIRO_OPERATOR_SOURCE: op = "copy"; break;
+ case CAIRO_OPERATOR_DEST: op = "destination"; break;
+ case CAIRO_OPERATOR_OVER: op = "source-over"; break;
+ case CAIRO_OPERATOR_DEST_OVER: op = "destination-over"; break;
+ case CAIRO_OPERATOR_IN: op = "source-in"; break;
+ case CAIRO_OPERATOR_DEST_IN: op = "destination-in"; break;
+ case CAIRO_OPERATOR_OUT: op = "source-out"; break;
+ case CAIRO_OPERATOR_DEST_OUT: op = "destination-out"; break;
+ case CAIRO_OPERATOR_ATOP: op = "source-atop"; break;
+ case CAIRO_OPERATOR_DEST_ATOP: op = "destination-atop"; break;
+ case CAIRO_OPERATOR_XOR: op = "xor"; break;
+ case CAIRO_OPERATOR_ADD: op = "lighter"; break;
+ // blend modes:
+ // Note: "source-over" and "normal" are synonyms. Chrome and FF both report
+ // "source-over" after setting gCO to "normal".
+ // case CAIRO_OPERATOR_OVER: op = "normal";
+ case CAIRO_OPERATOR_MULTIPLY: op = "multiply"; break;
+ case CAIRO_OPERATOR_SCREEN: op = "screen"; break;
+ case CAIRO_OPERATOR_OVERLAY: op = "overlay"; break;
+ case CAIRO_OPERATOR_DARKEN: op = "darken"; break;
+ case CAIRO_OPERATOR_LIGHTEN: op = "lighten"; break;
+ case CAIRO_OPERATOR_COLOR_DODGE: op = "color-dodge"; break;
+ case CAIRO_OPERATOR_COLOR_BURN: op = "color-burn"; break;
+ case CAIRO_OPERATOR_HARD_LIGHT: op = "hard-light"; break;
+ case CAIRO_OPERATOR_SOFT_LIGHT: op = "soft-light"; break;
+ case CAIRO_OPERATOR_DIFFERENCE: op = "difference"; break;
+ case CAIRO_OPERATOR_EXCLUSION: op = "exclusion"; break;
+ case CAIRO_OPERATOR_HSL_HUE: op = "hue"; break;
+ case CAIRO_OPERATOR_HSL_SATURATION: op = "saturation"; break;
+ case CAIRO_OPERATOR_HSL_COLOR: op = "color"; break;
+ case CAIRO_OPERATOR_HSL_LUMINOSITY: op = "luminosity"; break;
+ // non-standard:
+ case CAIRO_OPERATOR_SATURATE: op = "saturate"; break;
+ }
+
+ return Napi::New(env, op);
+}
+
+/*
+ * Set pattern quality.
+ */
+
+void Context2d::SetPatternQuality(const Napi::CallbackInfo& info, const Napi::Value& value) {
+ CHECK_RECEIVER(Context2d.SetPatternQuality);
+ Context2d *context = info.This().Unwrap<Context2d>();
+ std::string quality = value.As<Napi::String>(.To<Napi::String>());
+ if (0 == strcmp("fast", *quality)) {
+ context->state->patternQuality = CAIRO_FILTER_FAST;
+ } else if (0 == strcmp("good", *quality)) {
+ context->state->patternQuality = CAIRO_FILTER_GOOD;
+ } else if (0 == strcmp("best", *quality)) {
+ context->state->patternQuality = CAIRO_FILTER_BEST;
+ } else if (0 == strcmp("nearest", *quality)) {
+ context->state->patternQuality = CAIRO_FILTER_NEAREST;
+ } else if (0 == strcmp("bilinear", *quality)) {
+ context->state->patternQuality = CAIRO_FILTER_BILINEAR;
+ }
+}
+
+/*
+ * Get pattern quality.
+ */
+
+Napi::Value Context2d::GetPatternQuality(const Napi::CallbackInfo& info) {
+ CHECK_RECEIVER(Context2d.GetPatternQuality);
+ Context2d *context = info.This().Unwrap<Context2d>();
+ const char *quality;
+ switch (context->state->patternQuality) {
+ case CAIRO_FILTER_FAST: quality = "fast"; break;
+ case CAIRO_FILTER_BEST: quality = "best"; break;
+ case CAIRO_FILTER_NEAREST: quality = "nearest"; break;
+ case CAIRO_FILTER_BILINEAR: quality = "bilinear"; break;
+ default: quality = "good";
+ }
+ return Napi::New(env, quality);
+}
+
+/*
+ * Set ImageSmoothingEnabled value.
+ */
+
+void Context2d::SetImageSmoothingEnabled(const Napi::CallbackInfo& info, const Napi::Value& value) {
+ CHECK_RECEIVER(Context2d.SetImageSmoothingEnabled);
+ Context2d *context = info.This().Unwrap<Context2d>();
+ context->state->imageSmoothingEnabled = value.As<Napi::Boolean>().Value().FromMaybe(false);
+}
+
+/*
+ * Get pattern quality.
+ */
+
+Napi::Value Context2d::GetImageSmoothingEnabled(const Napi::CallbackInfo& info) {
+ CHECK_RECEIVER(Context2d.GetImageSmoothingEnabled);
+ Context2d *context = info.This().Unwrap<Context2d>();
+ return Napi::Boolean::New(env, context->state->imageSmoothingEnabled);
+}
+
+/*
+ * Set global composite operation.
+ */
+
+void Context2d::SetGlobalCompositeOperation(const Napi::CallbackInfo& info, const Napi::Value& value) {
+ CHECK_RECEIVER(Context2d.SetGlobalCompositeOperation);
+ Context2d *context = info.This().Unwrap<Context2d>();
+ cairo_t *ctx = context->context();
+ std::string opStr = value.As<Napi::String>(.To<Napi::String>()); // Unlike CSS colors, this *is* case-sensitive
+ const std::map<std::string, cairo_operator_t> blendmodes = {
+ // composite modes:
+ {"clear", CAIRO_OPERATOR_CLEAR},
+ {"copy", CAIRO_OPERATOR_SOURCE},
+ {"destination", CAIRO_OPERATOR_DEST}, // this seems to have been omitted from the spec
+ {"source-over", CAIRO_OPERATOR_OVER},
+ {"destination-over", CAIRO_OPERATOR_DEST_OVER},
+ {"source-in", CAIRO_OPERATOR_IN},
+ {"destination-in", CAIRO_OPERATOR_DEST_IN},
+ {"source-out", CAIRO_OPERATOR_OUT},
+ {"destination-out", CAIRO_OPERATOR_DEST_OUT},
+ {"source-atop", CAIRO_OPERATOR_ATOP},
+ {"destination-atop", CAIRO_OPERATOR_DEST_ATOP},
+ {"xor", CAIRO_OPERATOR_XOR},
+ {"lighter", CAIRO_OPERATOR_ADD},
+ // blend modes:
+ {"normal", CAIRO_OPERATOR_OVER},
+ {"multiply", CAIRO_OPERATOR_MULTIPLY},
+ {"screen", CAIRO_OPERATOR_SCREEN},
+ {"overlay", CAIRO_OPERATOR_OVERLAY},
+ {"darken", CAIRO_OPERATOR_DARKEN},
+ {"lighten", CAIRO_OPERATOR_LIGHTEN},
+ {"color-dodge", CAIRO_OPERATOR_COLOR_DODGE},
+ {"color-burn", CAIRO_OPERATOR_COLOR_BURN},
+ {"hard-light", CAIRO_OPERATOR_HARD_LIGHT},
+ {"soft-light", CAIRO_OPERATOR_SOFT_LIGHT},
+ {"difference", CAIRO_OPERATOR_DIFFERENCE},
+ {"exclusion", CAIRO_OPERATOR_EXCLUSION},
+ {"hue", CAIRO_OPERATOR_HSL_HUE},
+ {"saturation", CAIRO_OPERATOR_HSL_SATURATION},
+ {"color", CAIRO_OPERATOR_HSL_COLOR},
+ {"luminosity", CAIRO_OPERATOR_HSL_LUMINOSITY},
+ // non-standard:
+ {"saturate", CAIRO_OPERATOR_SATURATE}
+ };
+ auto op = blendmodes.find(*opStr);
+ if (op != blendmodes.end()) cairo_set_operator(ctx, op->second);
+}
+
+/*
+ * Get shadow offset x.
+ */
+
+Napi::Value Context2d::GetShadowOffsetX(const Napi::CallbackInfo& info) {
+ CHECK_RECEIVER(Context2d.GetShadowOffsetX);
+ Context2d *context = info.This().Unwrap<Context2d>();
+ return Napi::Number::New(env, context->state->shadowOffsetX);
+}
+
+/*
+ * Set shadow offset x.
+ */
+
+void Context2d::SetShadowOffsetX(const Napi::CallbackInfo& info, const Napi::Value& value) {
+ CHECK_RECEIVER(Context2d.SetShadowOffsetX);
+ Context2d *context = info.This().Unwrap<Context2d>();
+ context->state->shadowOffsetX = value.As<Napi::Number>().DoubleValue().FromMaybe(0);
+}
+
+/*
+ * Get shadow offset y.
+ */
+
+Napi::Value Context2d::GetShadowOffsetY(const Napi::CallbackInfo& info) {
+ CHECK_RECEIVER(Context2d.GetShadowOffsetY);
+ Context2d *context = info.This().Unwrap<Context2d>();
+ return Napi::Number::New(env, context->state->shadowOffsetY);
+}
+
+/*
+ * Set shadow offset y.
+ */
+
+void Context2d::SetShadowOffsetY(const Napi::CallbackInfo& info, const Napi::Value& value) {
+ CHECK_RECEIVER(Context2d.SetShadowOffsetY);
+ Context2d *context = info.This().Unwrap<Context2d>();
+ context->state->shadowOffsetY = value.As<Napi::Number>().DoubleValue().FromMaybe(0);
+}
+
+/*
+ * Get shadow blur.
+ */
+
+Napi::Value Context2d::GetShadowBlur(const Napi::CallbackInfo& info) {
+ CHECK_RECEIVER(Context2d.GetShadowBlur);
+ Context2d *context = info.This().Unwrap<Context2d>();
+ return Napi::Number::New(env, context->state->shadowBlur);
+}
+
+/*
+ * Set shadow blur.
+ */
+
+void Context2d::SetShadowBlur(const Napi::CallbackInfo& info, const Napi::Value& value) {
+ CHECK_RECEIVER(Context2d.SetShadowBlur);
+ int n = value.As<Napi::Number>().DoubleValue().FromMaybe(0);
+ if (n >= 0) {
+ Context2d *context = info.This().Unwrap<Context2d>();
+ context->state->shadowBlur = n;
+ }
+}
+
+/*
+ * Get current antialiasing setting.
+ */
+
+Napi::Value Context2d::GetAntiAlias(const Napi::CallbackInfo& info) {
+ CHECK_RECEIVER(Context2d.GetAntiAlias);
+ Context2d *context = info.This().Unwrap<Context2d>();
+ const char *aa;
+ switch (cairo_get_antialias(context->context())) {
+ case CAIRO_ANTIALIAS_NONE: aa = "none"; break;
+ case CAIRO_ANTIALIAS_GRAY: aa = "gray"; break;
+ case CAIRO_ANTIALIAS_SUBPIXEL: aa = "subpixel"; break;
+ default: aa = "default";
+ }
+ return Napi::New(env, aa);
+}
+
+/*
+ * Set antialiasing.
+ */
+
+void Context2d::SetAntiAlias(const Napi::CallbackInfo& info, const Napi::Value& value) {
+ CHECK_RECEIVER(Context2d.SetAntiAlias);
+ std::string str = value.As<Napi::String>(.To<Napi::String>());
+ Context2d *context = info.This().Unwrap<Context2d>();
+ cairo_t *ctx = context->context();
+ cairo_antialias_t a;
+ if (0 == strcmp("none", *str)) {
+ a = CAIRO_ANTIALIAS_NONE;
+ } else if (0 == strcmp("default", *str)) {
+ a = CAIRO_ANTIALIAS_DEFAULT;
+ } else if (0 == strcmp("gray", *str)) {
+ a = CAIRO_ANTIALIAS_GRAY;
+ } else if (0 == strcmp("subpixel", *str)) {
+ a = CAIRO_ANTIALIAS_SUBPIXEL;
+ } else {
+ a = cairo_get_antialias(ctx);
+ }
+ cairo_set_antialias(ctx, a);
+}
+
+/*
+ * Get text drawing mode.
+ */
+
+Napi::Value Context2d::GetTextDrawingMode(const Napi::CallbackInfo& info) {
+ CHECK_RECEIVER(Context2d.GetTextDrawingMode);
+ Context2d *context = info.This().Unwrap<Context2d>();
+ const char *mode;
+ if (context->state->textDrawingMode == TEXT_DRAW_PATHS) {
+ mode = "path";
+ } else if (context->state->textDrawingMode == TEXT_DRAW_GLYPHS) {
+ mode = "glyph";
+ } else {
+ mode = "unknown";
+ }
+ return Napi::New(env, mode);
+}
+
+/*
+ * Set text drawing mode.
+ */
+
+void Context2d::SetTextDrawingMode(const Napi::CallbackInfo& info, const Napi::Value& value) {
+ CHECK_RECEIVER(Context2d.SetTextDrawingMode);
+ std::string str = value.As<Napi::String>(.To<Napi::String>());
+ Context2d *context = info.This().Unwrap<Context2d>();
+ if (0 == strcmp("path", *str)) {
+ context->state->textDrawingMode = TEXT_DRAW_PATHS;
+ } else if (0 == strcmp("glyph", *str)) {
+ context->state->textDrawingMode = TEXT_DRAW_GLYPHS;
+ }
+}
+
+/*
+ * Get filter.
+ */
+
+Napi::Value Context2d::GetQuality(const Napi::CallbackInfo& info) {
+ CHECK_RECEIVER(Context2d.GetQuality);
+ Context2d *context = info.This().Unwrap<Context2d>();
+ const char *filter;
+ switch (cairo_pattern_get_filter(cairo_get_source(context->context()))) {
+ case CAIRO_FILTER_FAST: filter = "fast"; break;
+ case CAIRO_FILTER_BEST: filter = "best"; break;
+ case CAIRO_FILTER_NEAREST: filter = "nearest"; break;
+ case CAIRO_FILTER_BILINEAR: filter = "bilinear"; break;
+ default: filter = "good";
+ }
+ return Napi::New(env, filter);
+}
+
+/*
+ * Set filter.
+ */
+
+void Context2d::SetQuality(const Napi::CallbackInfo& info, const Napi::Value& value) {
+ CHECK_RECEIVER(Context2d.SetQuality);
+ std::string str = value.As<Napi::String>(.To<Napi::String>());
+ Context2d *context = info.This().Unwrap<Context2d>();
+ cairo_filter_t filter;
+ if (0 == strcmp("fast", *str)) {
+ filter = CAIRO_FILTER_FAST;
+ } else if (0 == strcmp("best", *str)) {
+ filter = CAIRO_FILTER_BEST;
+ } else if (0 == strcmp("nearest", *str)) {
+ filter = CAIRO_FILTER_NEAREST;
+ } else if (0 == strcmp("bilinear", *str)) {
+ filter = CAIRO_FILTER_BILINEAR;
+ } else {
+ filter = CAIRO_FILTER_GOOD;
+ }
+ cairo_pattern_set_filter(cairo_get_source(context->context()), filter);
+}
+
+/*
+ * Helper for get current transform matrix
+ */
+
+Napi::Object
+get_current_transform(Context2d *context) {
+ Isolate *iso = Isolate::GetCurrent();
+
+ Local<Float64Array> arr = Float64Array::New(ArrayBuffer::New(iso, 48), 0, 6);
+ Napi::TypedArrayContents<double> dest(arr);
+ cairo_matrix_t matrix;
+ cairo_get_matrix(context->context(), &matrix);
+ (*dest)[0] = matrix.xx;
+ (*dest)[1] = matrix.yx;
+ (*dest)[2] = matrix.xy;
+ (*dest)[3] = matrix.yy;
+ (*dest)[4] = matrix.x0;
+ (*dest)[5] = matrix.y0;
+
+ const int argc = 1;
+ Napi::Value argv[argc] = { arr };
+ return Napi::NewInstance(context->_DOMMatrix.Get(iso), argc, argv);
+}
+
+/*
+ * Helper for get/set transform.
+ */
+
+void parse_matrix_from_object(cairo_matrix_t &matrix, Napi::Object mat) {
+ cairo_matrix_init(&matrix,
+ (mat).Get(Napi::String::New(env, "a".As<Napi::Number>().DoubleValue())).FromMaybe(0),
+ (mat).Get(Napi::String::New(env, "b".As<Napi::Number>().DoubleValue())).FromMaybe(0),
+ (mat).Get(Napi::String::New(env, "c".As<Napi::Number>().DoubleValue())).FromMaybe(0),
+ (mat).Get(Napi::String::New(env, "d".As<Napi::Number>().DoubleValue())).FromMaybe(0),
+ (mat).Get(Napi::String::New(env, "e".As<Napi::Number>().DoubleValue())).FromMaybe(0),
+ (mat).Get(Napi::String::New(env, "f".As<Napi::Number>().DoubleValue())).FromMaybe(0)
+ );
+}
+
+
+/*
+ * Get current transform.
+ */
+
+Napi::Value Context2d::GetCurrentTransform(const Napi::CallbackInfo& info) {
+ CHECK_RECEIVER(Context2d.GetCurrentTransform);
+ Context2d *context = info.This().Unwrap<Context2d>();
+ Napi::Object instance = get_current_transform(context);
+
+ return instance;
+}
+
+/*
+ * Set current transform.
+ */
+
+void Context2d::SetCurrentTransform(const Napi::CallbackInfo& info, const Napi::Value& value) {
+ CHECK_RECEIVER(Context2d.SetCurrentTransform);
+ Context2d *context = info.This().Unwrap<Context2d>();
+ Local<Context> ctx = Napi::GetCurrentContext();
+ Napi::Object mat = value.To<Napi::Object>();
+
+#if NODE_MAJOR_VERSION >= 8
+ if (!mat->InstanceOf(ctx, _DOMMatrix.Get(Isolate::GetCurrent())).ToChecked()) {
+ Napi::TypeError::New(env, "Expected DOMMatrix").ThrowAsJavaScriptException();
+ return env.Null();
+ }
+#endif
+
+ cairo_matrix_t matrix;
+ parse_matrix_from_object(matrix, mat);
+
+ cairo_transform(context->context(), &matrix);
+}
+
+/*
+ * Get current fill style.
+ */
+
+Napi::Value Context2d::GetFillStyle(const Napi::CallbackInfo& info) {
+ CHECK_RECEIVER(Context2d.GetFillStyle);
+ Context2d *context = info.This().Unwrap<Context2d>();
+ Isolate *iso = Isolate::GetCurrent();
+ Napi::Value style;
+
+ if (context->_fillStyle.IsEmpty())
+ style = context->_getFillColor();
+ else
+ style = context->_fillStyle.Get(iso);
+
+ return style;
+}
+
+/*
+ * Set current fill style.
+ */
+
+void Context2d::SetFillStyle(const Napi::CallbackInfo& info, const Napi::Value& value) {
+ CHECK_RECEIVER(Context2d.SetFillStyle);
+ Context2d *context = info.This().Unwrap<Context2d>();
+
+ if (value.IsString()) {
+ MaybeNapi::String mstr = value.To<Napi::String>();
+ if (mstr.IsEmpty()) return;
+ Napi::String str = mstr;
+ context->_fillStyle.Reset();
+ context->_setFillColor(str);
+ } else if (value.IsObject()) {
+ Napi::Object obj = value.To<Napi::Object>();
+ if (Napi::New(env, Gradient::constructor)->HasInstance(obj)) {
+ context->_fillStyle.Reset(value);
+ Gradient *grad = obj.Unwrap<Gradient>();
+ context->state->fillGradient = grad->pattern();
+ } else if (Napi::New(env, Pattern::constructor)->HasInstance(obj)) {
+ context->_fillStyle.Reset(value);
+ Pattern *pattern = obj.Unwrap<Pattern>();
+ context->state->fillPattern = pattern->pattern();
+ }
+ }
+}
+
+/*
+ * Get current stroke style.
+ */
+
+Napi::Value Context2d::GetStrokeStyle(const Napi::CallbackInfo& info) {
+ CHECK_RECEIVER(Context2d.GetStrokeStyle);
+ Context2d *context = info.This().Unwrap<Context2d>();
+ Napi::Value style;
+
+ if (context->_strokeStyle.IsEmpty())
+ style = context->_getStrokeColor();
+ else
+ style = context->_strokeStyle.Get(Isolate::GetCurrent());
+
+ return style;
+}
+
+/*
+ * Set current stroke style.
+ */
+
+void Context2d::SetStrokeStyle(const Napi::CallbackInfo& info, const Napi::Value& value) {
+ CHECK_RECEIVER(Context2d.SetStrokeStyle);
+ Context2d *context = info.This().Unwrap<Context2d>();
+
+ if (value.IsString()) {
+ MaybeNapi::String mstr = value.To<Napi::String>();
+ if (mstr.IsEmpty()) return;
+ Napi::String str = mstr;
+ context->_strokeStyle.Reset();
+ context->_setStrokeColor(str);
+ } else if (value.IsObject()) {
+ Napi::Object obj = value.To<Napi::Object>();
+ if (Napi::New(env, Gradient::constructor)->HasInstance(obj)) {
+ context->_strokeStyle.Reset(value);
+ Gradient *grad = obj.Unwrap<Gradient>();
+ context->state->strokeGradient = grad->pattern();
+ } else if (Napi::New(env, Pattern::constructor)->HasInstance(obj)) {
+ context->_strokeStyle.Reset(value);
+ Pattern *pattern = obj.Unwrap<Pattern>();
+ context->state->strokePattern = pattern->pattern();
+ }
+ }
+}
+
+/*
+ * Get miter limit.
+ */
+
+Napi::Value Context2d::GetMiterLimit(const Napi::CallbackInfo& info) {
+ CHECK_RECEIVER(Context2d.GetMiterLimit);
+ Context2d *context = info.This().Unwrap<Context2d>();
+ return Napi::Number::New(env, cairo_get_miter_limit(context->context()));
+}
+
+/*
+ * Set miter limit.
+ */
+
+void Context2d::SetMiterLimit(const Napi::CallbackInfo& info, const Napi::Value& value) {
+ CHECK_RECEIVER(Context2d.SetMiterLimit);
+ double n = value.As<Napi::Number>().DoubleValue().FromMaybe(0);
+ if (n > 0) {
+ Context2d *context = info.This().Unwrap<Context2d>();
+ cairo_set_miter_limit(context->context(), n);
+ }
+}
+
+/*
+ * Get line width.
+ */
+
+Napi::Value Context2d::GetLineWidth(const Napi::CallbackInfo& info) {
+ CHECK_RECEIVER(Context2d.GetLineWidth);
+ Context2d *context = info.This().Unwrap<Context2d>();
+ return Napi::Number::New(env, cairo_get_line_width(context->context()));
+}
+
+/*
+ * Set line width.
+ */
+
+void Context2d::SetLineWidth(const Napi::CallbackInfo& info, const Napi::Value& value) {
+ CHECK_RECEIVER(Context2d.SetLineWidth);
+ double n = value.As<Napi::Number>().DoubleValue().FromMaybe(0);
+ if (n > 0 && n != std::numeric_limits<double>::infinity()) {
+ Context2d *context = info.This().Unwrap<Context2d>();
+ cairo_set_line_width(context->context(), n);
+ }
+}
+
+/*
+ * Get line join.
+ */
+
+Napi::Value Context2d::GetLineJoin(const Napi::CallbackInfo& info) {
+ CHECK_RECEIVER(Context2d.GetLineJoin);
+ Context2d *context = info.This().Unwrap<Context2d>();
+ const char *join;
+ switch (cairo_get_line_join(context->context())) {
+ case CAIRO_LINE_JOIN_BEVEL: join = "bevel"; break;
+ case CAIRO_LINE_JOIN_ROUND: join = "round"; break;
+ default: join = "miter";
+ }
+ return Napi::New(env, join);
+}
+
+/*
+ * Set line join.
+ */
+
+void Context2d::SetLineJoin(const Napi::CallbackInfo& info, const Napi::Value& value) {
+ CHECK_RECEIVER(Context2d.SetLineJoin);
+ Context2d *context = info.This().Unwrap<Context2d>();
+ cairo_t *ctx = context->context();
+ std::string type = value.As<Napi::String>(.To<Napi::String>());
+ if (0 == strcmp("round", *type)) {
+ cairo_set_line_join(ctx, CAIRO_LINE_JOIN_ROUND);
+ } else if (0 == strcmp("bevel", *type)) {
+ cairo_set_line_join(ctx, CAIRO_LINE_JOIN_BEVEL);
+ } else {
+ cairo_set_line_join(ctx, CAIRO_LINE_JOIN_MITER);
+ }
+}
+
+/*
+ * Get line cap.
+ */
+
+Napi::Value Context2d::GetLineCap(const Napi::CallbackInfo& info) {
+ CHECK_RECEIVER(Context2d.GetLineCap);
+ Context2d *context = info.This().Unwrap<Context2d>();
+ const char *cap;
+ switch (cairo_get_line_cap(context->context())) {
+ case CAIRO_LINE_CAP_ROUND: cap = "round"; break;
+ case CAIRO_LINE_CAP_SQUARE: cap = "square"; break;
+ default: cap = "butt";
+ }
+ return Napi::New(env, cap);
+}
+
+/*
+ * Set line cap.
+ */
+
+void Context2d::SetLineCap(const Napi::CallbackInfo& info, const Napi::Value& value) {
+ CHECK_RECEIVER(Context2d.SetLineCap);
+ Context2d *context = info.This().Unwrap<Context2d>();
+ cairo_t *ctx = context->context();
+ std::string type = value.As<Napi::String>(.To<Napi::String>());
+ if (0 == strcmp("round", *type)) {
+ cairo_set_line_cap(ctx, CAIRO_LINE_CAP_ROUND);
+ } else if (0 == strcmp("square", *type)) {
+ cairo_set_line_cap(ctx, CAIRO_LINE_CAP_SQUARE);
+ } else {
+ cairo_set_line_cap(ctx, CAIRO_LINE_CAP_BUTT);
+ }
+}
+
+/*
+ * Check if the given point is within the current path.
+ */
+
+Napi::Value Context2d::IsPointInPath(const Napi::CallbackInfo& info) {
+ if (info[0].IsNumber() && info[1].IsNumber()) {
+ Context2d *context = info.This().Unwrap<Context2d>();
+ cairo_t *ctx = context->context();
+ double x = info[0].As<Napi::Number>().DoubleValue().FromMaybe(0)
+ , y = info[1].As<Napi::Number>().DoubleValue().FromMaybe(0);
+ context->setFillRule(info[2]);
+ return Napi::Boolean::New(env, cairo_in_fill(ctx, x, y) || cairo_in_stroke(ctx, x, y));
+ return;
+ }
+ return env.False();
+}
+
+/*
+ * Set shadow color.
+ */
+
+void Context2d::SetShadowColor(const Napi::CallbackInfo& info, const Napi::Value& value) {
+ CHECK_RECEIVER(Context2d.SetShadowColor);
+ short ok;
+ std::string str = value.As<Napi::String>(.To<Napi::String>());
+ uint32_t rgba = rgba_from_string(*str, &ok);
+ if (ok) {
+ Context2d *context = info.This().Unwrap<Context2d>();
+ context->state->shadow = rgba_create(rgba);
+ }
+}
+
+/*
+ * Get shadow color.
+ */
+
+Napi::Value Context2d::GetShadowColor(const Napi::CallbackInfo& info) {
+ CHECK_RECEIVER(Context2d.GetShadowColor);
+ char buf[64];
+ Context2d *context = info.This().Unwrap<Context2d>();
+ rgba_to_string(context->state->shadow, buf, sizeof(buf));
+ return Napi::String::New(env, buf);
+}
+
+/*
+ * Set fill color, used internally for fillStyle=
+ */
+
+void Context2d::_setFillColor(Napi::Value arg) {
+ Napi::Env env = arg.Env();
+ short ok;
+ std::string str = arg.As<Napi::String>();
+ uint32_t rgba = rgba_from_string(*str, &ok);
+ if (!ok) return;
+ state->fillPattern = state->fillGradient = NULL;
+ state->fill = rgba_create(rgba);
+}
+
+/*
+ * Get fill color.
+ */
+
+Napi::Value Context2d::_getFillColor() {
+ char buf[64];
+ rgba_to_string(state->fill, buf, sizeof(buf));
+ return Napi::String::New(env, buf);
+}
+
+/*
+ * Set stroke color, used internally for strokeStyle=
+ */
+
+void Context2d::_setStrokeColor(Napi::Value arg) {
+ Napi::Env env = arg.Env();
+ short ok;
+ std::string str = arg.As<Napi::String>();
+ uint32_t rgba = rgba_from_string(*str, &ok);
+ if (!ok) return;
+ state->strokePattern = state->strokeGradient = NULL;
+ state->stroke = rgba_create(rgba);
+}
+
+/*
+ * Get stroke color.
+ */
+
+Napi::Value Context2d::_getStrokeColor() {
+ char buf[64];
+ rgba_to_string(state->stroke, buf, sizeof(buf));
+ return Napi::String::New(env, buf);
+}
+
+Napi::Value Context2d::CreatePattern(const Napi::CallbackInfo& info) {
+ Napi::Value image = info[0];
+ Napi::Value repetition = info[1];
+
+ if (!repetition.As<Napi::Boolean>().Value().FromMaybe(false))
+ repetition = Napi::String::New(env, "repeat");
+
+ const int argc = 2;
+ Napi::Value argv[argc] = { image, repetition };
+
+ Napi::Function ctor = Napi::GetFunction(Napi::New(env, Pattern::constructor));
+ Napi::Object instance = Napi::NewInstance(ctor, argc, argv);
+
+ return instance;
+}
+
+Napi::Value Context2d::CreateLinearGradient(const Napi::CallbackInfo& info) {
+ const int argc = 4;
+ Napi::Value argv[argc] = { info[0], info[1], info[2], info[3] };
+
+ Napi::Function ctor = Napi::GetFunction(Napi::New(env, Gradient::constructor));
+ Napi::Object instance = Napi::NewInstance(ctor, argc, argv);
+
+ return instance;
+}
+
+Napi::Value Context2d::CreateRadialGradient(const Napi::CallbackInfo& info) {
+ const int argc = 6;
+ Napi::Value argv[argc] = { info[0], info[1], info[2], info[3], info[4], info[5] };
+
+ Napi::Function ctor = Napi::GetFunction(Napi::New(env, Gradient::constructor));
+ Napi::Object instance = Napi::NewInstance(ctor, argc, argv);
+
+ return instance;
+}
+
+/*
+ * Bezier curve.
+ */
+
+Napi::Value Context2d::BezierCurveTo(const Napi::CallbackInfo& info) {
+ double args[6];
+ if(!checkArgs(info, args, 6))
+ return;
+
+ Context2d *context = info.This().Unwrap<Context2d>();
+ cairo_curve_to(context->context()
+ , args[0]
+ , args[1]
+ , args[2]
+ , args[3]
+ , args[4]
+ , args[5]);
+}
+
+/*
+ * Quadratic curve approximation from libsvg-cairo.
+ */
+
+Napi::Value Context2d::QuadraticCurveTo(const Napi::CallbackInfo& info) {
+ double args[4];
+ if(!checkArgs(info, args, 4))
+ return;
+
+ Context2d *context = info.This().Unwrap<Context2d>();
+ cairo_t *ctx = context->context();
+
+ double x, y
+ , x1 = args[0]
+ , y1 = args[1]
+ , x2 = args[2]
+ , y2 = args[3];
+
+ cairo_get_current_point(ctx, &x, &y);
+
+ if (0 == x && 0 == y) {
+ x = x1;
+ y = y1;
+ }
+
+ cairo_curve_to(ctx
+ , x + 2.0 / 3.0 * (x1 - x), y + 2.0 / 3.0 * (y1 - y)
+ , x2 + 2.0 / 3.0 * (x1 - x2), y2 + 2.0 / 3.0 * (y1 - y2)
+ , x2
+ , y2);
+}
+
+/*
+ * Save state.
+ */
+
+Napi::Value Context2d::Save(const Napi::CallbackInfo& info) {
+ Context2d *context = info.This().Unwrap<Context2d>();
+ context->save();
+}
+
+/*
+ * Restore state.
+ */
+
+Napi::Value Context2d::Restore(const Napi::CallbackInfo& info) {
+ Context2d *context = info.This().Unwrap<Context2d>();
+ context->restore();
+}
+
+/*
+ * Creates a new subpath.
+ */
+
+Napi::Value Context2d::BeginPath(const Napi::CallbackInfo& info) {
+ Context2d *context = info.This().Unwrap<Context2d>();
+ cairo_new_path(context->context());
+}
+
+/*
+ * Marks the subpath as closed.
+ */
+
+Napi::Value Context2d::ClosePath(const Napi::CallbackInfo& info) {
+ Context2d *context = info.This().Unwrap<Context2d>();
+ cairo_close_path(context->context());
+}
+
+/*
+ * Rotate transformation.
+ */
+
+Napi::Value Context2d::Rotate(const Napi::CallbackInfo& info) {
+ double args[1];
+ if(!checkArgs(info, args, 1))
+ return;
+
+ Context2d *context = info.This().Unwrap<Context2d>();
+ cairo_rotate(context->context(), args[0]);
+}
+
+/*
+ * Modify the CTM.
+ */
+
+Napi::Value Context2d::Transform(const Napi::CallbackInfo& info) {
+ double args[6];
+ if(!checkArgs(info, args, 6))
+ return;
+
+ cairo_matrix_t matrix;
+ cairo_matrix_init(&matrix
+ , args[0]
+ , args[1]
+ , args[2]
+ , args[3]
+ , args[4]
+ , args[5]);
+
+ Context2d *context = info.This().Unwrap<Context2d>();
+ cairo_transform(context->context(), &matrix);
+}
+
+/*
+ * Get the CTM
+ */
+
+Napi::Value Context2d::GetTransform(const Napi::CallbackInfo& info) {
+ Context2d *context = info.This().Unwrap<Context2d>();
+ Napi::Object instance = get_current_transform(context);
+
+ return instance;
+}
+
+/*
+ * Reset the CTM, used internally by setTransform().
+ */
+
+Napi::Value Context2d::ResetTransform(const Napi::CallbackInfo& info) {
+ Context2d *context = info.This().Unwrap<Context2d>();
+ cairo_identity_matrix(context->context());
+}
+
+/*
+ * Reset transform matrix to identity, then apply the given args.
+ */
+
+Napi::Value Context2d::SetTransform(const Napi::CallbackInfo& info) {
+ Context2d *context = info.This().Unwrap<Context2d>();
+ if (info.Length() == 1) {
+ Napi::Object mat = info[0].To<Napi::Object>();
+
+ #if NODE_MAJOR_VERSION >= 8
+ Local<Context> ctx = Napi::GetCurrentContext();
+ if (!mat->InstanceOf(ctx, _DOMMatrix.Get(Isolate::GetCurrent())).ToChecked()) {
+ Napi::TypeError::New(env, "Expected DOMMatrix").ThrowAsJavaScriptException();
+ return env.Null();
+ }
+ #endif
+
+ cairo_matrix_t matrix;
+ parse_matrix_from_object(matrix, mat);
+
+ cairo_set_matrix(context->context(), &matrix);
+ } else {
+ cairo_identity_matrix(context->context());
+ Context2d::Transform(info);
+ }
+}
+
+/*
+ * Translate transformation.
+ */
+
+Napi::Value Context2d::Translate(const Napi::CallbackInfo& info) {
+ double args[2];
+ if(!checkArgs(info, args, 2))
+ return;
+
+ Context2d *context = info.This().Unwrap<Context2d>();
+ cairo_translate(context->context(), args[0], args[1]);
+}
+
+/*
+ * Scale transformation.
+ */
+
+Napi::Value Context2d::Scale(const Napi::CallbackInfo& info) {
+ double args[2];
+ if(!checkArgs(info, args, 2))
+ return;
+
+ Context2d *context = info.This().Unwrap<Context2d>();
+ cairo_scale(context->context(), args[0], args[1]);
+}
+
+/*
+ * Use path as clipping region.
+ */
+
+Napi::Value Context2d::Clip(const Napi::CallbackInfo& info) {
+ Context2d *context = info.This().Unwrap<Context2d>();
+ context->setFillRule(info[0]);
+ cairo_t *ctx = context->context();
+ cairo_clip_preserve(ctx);
+}
+
+/*
+ * Fill the path.
+ */
+
+Napi::Value Context2d::Fill(const Napi::CallbackInfo& info) {
+ Context2d *context = info.This().Unwrap<Context2d>();
+ context->setFillRule(info[0]);
+ context->fill(true);
+}
+
+/*
+ * Stroke the path.
+ */
+
+Napi::Value Context2d::Stroke(const Napi::CallbackInfo& info) {
+ Context2d *context = info.This().Unwrap<Context2d>();
+ context->stroke(true);
+}
+
+/*
+ * Helper for fillText/strokeText
+ */
+
+double
+get_text_scale(PangoLayout *layout, double maxWidth) {
+
+ PangoRectangle logical_rect;
+ pango_layout_get_pixel_extents(layout, NULL, &logical_rect);
+
+ if (logical_rect.width > maxWidth) {
+ return maxWidth / logical_rect.width;
+ } else {
+ return 1.0;
+ }
+}
+
+void
+paintText(const Napi::CallbackInfo&info, bool stroke) {
+ int argsNum = info.Length() >= 4 ? 3 : 2;
+
+ if (argsNum == 3 && info[3].IsUndefined())
+ argsNum = 2;
+
+ double args[3];
+ if(!checkArgs(info, args, argsNum, 1))
+ return;
+
+ std::string str = info[0].As<Napi::String>(.To<Napi::String>());
+ double x = args[0];
+ double y = args[1];
+ double scaled_by = 1;
+
+ Context2d *context = info.This().Unwrap<Context2d>();
+ PangoLayout *layout = context->layout();
+
+ pango_layout_set_text(layout, *str, -1);
+ pango_cairo_update_layout(context->context(), layout);
+
+ if (argsNum == 3) {
+ scaled_by = get_text_scale(layout, args[2]);
+ cairo_save(context->context());
+ cairo_scale(context->context(), scaled_by, 1);
+ }
+
+ context->savePath();
+ if (context->state->textDrawingMode == TEXT_DRAW_GLYPHS) {
+ if (stroke == true) { context->stroke(); } else { context->fill(); }
+ context->setTextPath(x / scaled_by, y);
+ } else if (context->state->textDrawingMode == TEXT_DRAW_PATHS) {
+ context->setTextPath(x / scaled_by, y);
+ if (stroke == true) { context->stroke(); } else { context->fill(); }
+ }
+ context->restorePath();
+ if (argsNum == 3) {
+ cairo_restore(context->context());
+ }
+}
+
+/*
+ * Fill text at (x, y).
+ */
+
+Napi::Value Context2d::FillText(const Napi::CallbackInfo& info) {
+ paintText(info, false);
+}
+
+/*
+ * Stroke text at (x ,y).
+ */
+
+Napi::Value Context2d::StrokeText(const Napi::CallbackInfo& info) {
+ paintText(info, true);
+}
+
+/*
+ * Gets the baseline adjustment in device pixels
+ */
+inline double getBaselineAdjustment(PangoLayout* layout, short baseline) {
+ PangoRectangle logical_rect;
+ pango_layout_line_get_extents(pango_layout_get_line(layout, 0), NULL, &logical_rect);
+
+ double scale = 1.0 / PANGO_SCALE;
+ double ascent = scale * pango_layout_get_baseline(layout);
+ double descent = scale * logical_rect.height - ascent;
+
+ switch (baseline) {
+ case TEXT_BASELINE_ALPHABETIC:
+ return ascent;
+ case TEXT_BASELINE_MIDDLE:
+ return (ascent + descent) / 2.0;
+ case TEXT_BASELINE_BOTTOM:
+ return ascent + descent;
+ default:
+ return 0;
+ }
+}
+
+/*
+ * Set text path for the string in the layout at (x, y).
+ * This function is called by paintText and won't behave correctly
+ * if is not called from there.
+ * it needs pango_layout_set_text and pango_cairo_update_layout to be called before
+ */
+
+void
+Context2d::setTextPath(double x, double y) {
+ PangoRectangle logical_rect;
+
+ switch (state->textAlignment) {
+ case TEXT_ALIGNMENT_CENTER:
+ pango_layout_get_pixel_extents(_layout, NULL, &logical_rect);
+ x -= logical_rect.width / 2;
+ break;
+ case TEXT_ALIGNMENT_END:
+ case TEXT_ALIGNMENT_RIGHT:
+ pango_layout_get_pixel_extents(_layout, NULL, &logical_rect);
+ x -= logical_rect.width;
+ break;
+ }
+
+ y -= getBaselineAdjustment(_layout, state->textBaseline);
+
+ cairo_move_to(_context, x, y);
+ if (state->textDrawingMode == TEXT_DRAW_PATHS) {
+ pango_cairo_layout_path(_context, _layout);
+ } else if (state->textDrawingMode == TEXT_DRAW_GLYPHS) {
+ pango_cairo_show_layout(_context, _layout);
+ }
+}
+
+/*
+ * Adds a point to the current subpath.
+ */
+
+Napi::Value Context2d::LineTo(const Napi::CallbackInfo& info) {
+ double args[2];
+ if(!checkArgs(info, args, 2))
+ return;
+
+ Context2d *context = info.This().Unwrap<Context2d>();
+ cairo_line_to(context->context(), args[0], args[1]);
+}
+
+/*
+ * Creates a new subpath at the given point.
+ */
+
+Napi::Value Context2d::MoveTo(const Napi::CallbackInfo& info) {
+ double args[2];
+ if(!checkArgs(info, args, 2))
+ return;
+
+ Context2d *context = info.This().Unwrap<Context2d>();
+ cairo_move_to(context->context(), args[0], args[1]);
+}
+
+/*
+ * Get font.
+ */
+
+Napi::Value Context2d::GetFont(const Napi::CallbackInfo& info) {
+ CHECK_RECEIVER(Context2d.GetFont);
+ Context2d *context = info.This().Unwrap<Context2d>();
+
+ return Napi::New(env, context->state->font);
+}
+
+/*
+ * Set font:
+ * - weight
+ * - style
+ * - size
+ * - unit
+ * - family
+ */
+
+void Context2d::SetFont(const Napi::CallbackInfo& info, const Napi::Value& value) {
+ CHECK_RECEIVER(Context2d.SetFont);
+ if (!value.IsString()) return;
+
+ Isolate *iso = Isolate::GetCurrent();
+ Local<Context> ctx = Napi::GetCurrentContext();
+
+ Napi::String str = value.To<Napi::String>();
+ if (!str->Length()) return;
+
+ const int argc = 1;
+ Napi::Value argv[argc] = { value };
+
+ Napi::Value mparsed = Napi::Call(_parseFont.Get(iso), ctx->Global(), argc, argv);
+ // parseFont returns undefined for invalid CSS font strings
+ if (mparsed->IsUndefined()) return;
+ Napi::Object font = mparsed.To<Napi::Object>();
+
+ std::string weight = (font).Get(Napi::New(env, "weight".As<Napi::String>()));
+ std::string style = (font).Get(Napi::New(env, "style".As<Napi::String>()));
+ double size = (font).Get(Napi::String::New(env, "size".As<Napi::Number>().DoubleValue())).FromMaybe(0);
+ std::string unit = (font).Get(Napi::New(env, "unit".As<Napi::String>()));
+ std::string family = (font).Get(Napi::New(env, "family".As<Napi::String>()));
+
+ Context2d *context = info.This().Unwrap<Context2d>();
+
+ PangoFontDescription *desc = pango_font_description_copy(context->state->fontDescription);
+ pango_font_description_free(context->state->fontDescription);
+
+ pango_font_description_set_style(desc, Canvas::GetStyleFromCSSString(*style));
+ pango_font_description_set_weight(desc, Canvas::GetWeightFromCSSString(*weight));
+
+ if (strlen(*family) > 0) {
+ // See #1643 - Pango understands "sans" whereas CSS uses "sans-serif"
+ std::string s1(*family);
+ std::string s2("sans-serif");
+ if (streq_casein(s1, s2)) {
+ pango_font_description_set_family(desc, "sans");
+ } else {
+ pango_font_description_set_family(desc, *family);
+ }
+ }
+
+ PangoFontDescription *sys_desc = Canvas::ResolveFontDescription(desc);
+ pango_font_description_free(desc);
+
+ if (size > 0) pango_font_description_set_absolute_size(sys_desc, size * PANGO_SCALE);
+
+ context->state->fontDescription = sys_desc;
+ pango_layout_set_font_description(context->_layout, sys_desc);
+
+ context->state->font = value->As<Napi::String>().Utf8Value().c_str();
+}
+
+/*
+ * Get text baseline.
+ */
+
+Napi::Value Context2d::GetTextBaseline(const Napi::CallbackInfo& info) {
+ CHECK_RECEIVER(Context2d.GetTextBaseline);
+ Context2d *context = info.This().Unwrap<Context2d>();
+ const char* baseline;
+ switch (context->state->textBaseline) {
+ default:
+ case TEXT_BASELINE_ALPHABETIC: baseline = "alphabetic"; break;
+ case TEXT_BASELINE_TOP: baseline = "top"; break;
+ case TEXT_BASELINE_BOTTOM: baseline = "bottom"; break;
+ case TEXT_BASELINE_MIDDLE: baseline = "middle"; break;
+ case TEXT_BASELINE_IDEOGRAPHIC: baseline = "ideographic"; break;
+ case TEXT_BASELINE_HANGING: baseline = "hanging"; break;
+ }
+ return Napi::New(env, baseline);
+}
+
+/*
+ * Set text baseline.
+ */
+
+void Context2d::SetTextBaseline(const Napi::CallbackInfo& info, const Napi::Value& value) {
+ CHECK_RECEIVER(Context2d.SetTextBaseline);
+ if (!value.IsString()) return;
+
+ std::string opStr = value.As<Napi::String>(.To<Napi::String>());
+ const std::map<std::string, text_baseline_t> modes = {
+ {"alphabetic", TEXT_BASELINE_ALPHABETIC},
+ {"top", TEXT_BASELINE_TOP},
+ {"bottom", TEXT_BASELINE_BOTTOM},
+ {"middle", TEXT_BASELINE_MIDDLE},
+ {"ideographic", TEXT_BASELINE_IDEOGRAPHIC},
+ {"hanging", TEXT_BASELINE_HANGING}
+ };
+ auto op = modes.find(*opStr);
+ if (op == modes.end()) return;
+
+ Context2d *context = info.This().Unwrap<Context2d>();
+ context->state->textBaseline = op->second;
+}
+
+/*
+ * Get text align.
+ */
+
+Napi::Value Context2d::GetTextAlign(const Napi::CallbackInfo& info) {
+ CHECK_RECEIVER(Context2d.GetTextAlign);
+ Context2d *context = info.This().Unwrap<Context2d>();
+ const char* align;
+ switch (context->state->textAlignment) {
+ default:
+ // TODO the default is supposed to be "start"
+ case TEXT_ALIGNMENT_LEFT: align = "left"; break;
+ case TEXT_ALIGNMENT_START: align = "start"; break;
+ case TEXT_ALIGNMENT_CENTER: align = "center"; break;
+ case TEXT_ALIGNMENT_RIGHT: align = "right"; break;
+ case TEXT_ALIGNMENT_END: align = "end"; break;
+ }
+ return Napi::New(env, align);
+}
+
+/*
+ * Set text align.
+ */
+
+void Context2d::SetTextAlign(const Napi::CallbackInfo& info, const Napi::Value& value) {
+ CHECK_RECEIVER(Context2d.SetTextAlign);
+ if (!value.IsString()) return;
+
+ std::string opStr = value.As<Napi::String>(.To<Napi::String>());
+ const std::map<std::string, text_align_t> modes = {
+ {"center", TEXT_ALIGNMENT_CENTER},
+ {"left", TEXT_ALIGNMENT_LEFT},
+ {"start", TEXT_ALIGNMENT_START},
+ {"right", TEXT_ALIGNMENT_RIGHT},
+ {"end", TEXT_ALIGNMENT_END}
+ };
+ auto op = modes.find(*opStr);
+ if (op == modes.end()) return;
+
+ Context2d *context = info.This().Unwrap<Context2d>();
+ context->state->textAlignment = op->second;
+}
+
+/*
+ * Return the given text extents.
+ * TODO: Support for:
+ * hangingBaseline, ideographicBaseline,
+ * fontBoundingBoxAscent, fontBoundingBoxDescent
+ */
+
+Napi::Value Context2d::MeasureText(const Napi::CallbackInfo& info) {
+ Context2d *context = info.This().Unwrap<Context2d>();
+ cairo_t *ctx = context->context();
+
+ std::string str = info[0].As<Napi::String>(.To<Napi::String>());
+ Napi::Object obj = Napi::Object::New(env);
+
+ PangoRectangle _ink_rect, _logical_rect;
+ float_rectangle ink_rect, logical_rect;
+ PangoFontMetrics *metrics;
+ PangoLayout *layout = context->layout();
+
+ pango_layout_set_text(layout, *str, -1);
+ pango_cairo_update_layout(ctx, layout);
+
+ // Normally you could use pango_layout_get_pixel_extents and be done, or use
+ // pango_extents_to_pixels, but both of those round the pixels, so we have to
+ // divide by PANGO_SCALE manually
+ pango_layout_get_extents(layout, &_ink_rect, &_logical_rect);
+
+ float inverse_pango_scale = 1. / PANGO_SCALE;
+
+ logical_rect.x = _logical_rect.x * inverse_pango_scale;
+ logical_rect.y = _logical_rect.y * inverse_pango_scale;
+ logical_rect.width = _logical_rect.width * inverse_pango_scale;
+ logical_rect.height = _logical_rect.height * inverse_pango_scale;
+
+ ink_rect.x = _ink_rect.x * inverse_pango_scale;
+ ink_rect.y = _ink_rect.y * inverse_pango_scale;
+ ink_rect.width = _ink_rect.width * inverse_pango_scale;
+ ink_rect.height = _ink_rect.height * inverse_pango_scale;
+
+ metrics = PANGO_LAYOUT_GET_METRICS(layout);
+
+ double x_offset;
+ switch (context->state->textAlignment) {
+ case TEXT_ALIGNMENT_CENTER:
+ x_offset = logical_rect.width / 2.;
+ break;
+ case TEXT_ALIGNMENT_END:
+ case TEXT_ALIGNMENT_RIGHT:
+ x_offset = logical_rect.width;
+ break;
+ case TEXT_ALIGNMENT_START:
+ case TEXT_ALIGNMENT_LEFT:
+ default:
+ x_offset = 0.0;
+ }
+
+ cairo_matrix_t matrix;
+ cairo_get_matrix(ctx, &matrix);
+ double y_offset = getBaselineAdjustment(layout, context->state->textBaseline);
+
+ (obj).Set(Napi::String::New(env, "width"),
+ Napi::Number::New(env, logical_rect.width)).Check();
+ (obj).Set(Napi::String::New(env, "actualBoundingBoxLeft"),
+ Napi::Number::New(env, PANGO_LBEARING(ink_rect) + x_offset)).Check();
+ (obj).Set(Napi::String::New(env, "actualBoundingBoxRight"),
+ Napi::Number::New(env, PANGO_RBEARING(ink_rect) - x_offset)).Check();
+ (obj).Set(Napi::String::New(env, "actualBoundingBoxAscent"),
+ Napi::Number::New(env, y_offset + PANGO_ASCENT(ink_rect))).Check();
+ (obj).Set(Napi::String::New(env, "actualBoundingBoxDescent"),
+ Napi::Number::New(env, PANGO_DESCENT(ink_rect) - y_offset)).Check();
+ (obj).Set(Napi::String::New(env, "emHeightAscent"),
+ Napi::Number::New(env, -(PANGO_ASCENT(logical_rect) - y_offset))).Check();
+ (obj).Set(Napi::String::New(env, "emHeightDescent"),
+ Napi::Number::New(env, PANGO_DESCENT(logical_rect) - y_offset)).Check();
+ (obj).Set(Napi::String::New(env, "alphabeticBaseline"),
+ Napi::Number::New(env, -(pango_font_metrics_get_ascent(metrics) * inverse_pango_scale - y_offset))).Check();
+
+ pango_font_metrics_unref(metrics);
+
+ return obj;
+}
+
+/*
+ * Set line dash
+ * ref: http://www.w3.org/TR/2dcontext/#dom-context-2d-setlinedash
+ */
+
+Napi::Value Context2d::SetLineDash(const Napi::CallbackInfo& info) {
+ if (!info[0].IsArray()) return;
+ Napi::Array dash = info[0].As<Napi::Array>();
+ uint32_t dashes = dash->Length() & 1 ? dash->Length() * 2 : dash->Length();
+ uint32_t zero_dashes = 0;
+ std::vector<double> a(dashes);
+ for (uint32_t i=0; i<dashes; i++) {
+ Napi::Value d = (dash).Get(i % dash->Length());
+ if (!d.IsNumber()) return;
+ a[i] = d.As<Napi::Number>().DoubleValue().FromMaybe(0);
+ if (a[i] == 0) zero_dashes++;
+ if (a[i] < 0 || !std::isfinite(a[i])) return;
+ }
+
+ Context2d *context = info.This().Unwrap<Context2d>();
+ cairo_t *ctx = context->context();
+ double offset;
+ cairo_get_dash(ctx, NULL, &offset);
+ if (zero_dashes == dashes) {
+ std::vector<double> b(0);
+ cairo_set_dash(ctx, b.data(), 0, offset);
+ } else {
+ cairo_set_dash(ctx, a.data(), dashes, offset);
+ }
+}
+
+/*
+ * Get line dash
+ * ref: http://www.w3.org/TR/2dcontext/#dom-context-2d-setlinedash
+ */
+Napi::Value Context2d::GetLineDash(const Napi::CallbackInfo& info) {
+ Context2d *context = info.This().Unwrap<Context2d>();
+ cairo_t *ctx = context->context();
+ int dashes = cairo_get_dash_count(ctx);
+ std::vector<double> a(dashes);
+ cairo_get_dash(ctx, a.data(), NULL);
+
+ Napi::Array dash = Napi::Array::New(env, dashes);
+ for (int i=0; i<dashes; i++) {
+ (dash).Set(Napi::Number::New(env, i), Napi::Number::New(env, a[i])).Check();
+ }
+
+ return dash;
+}
+
+/*
+ * Set line dash offset
+ * ref: http://www.w3.org/TR/2dcontext/#dom-context-2d-setlinedash
+ */
+void Context2d::SetLineDashOffset(const Napi::CallbackInfo& info, const Napi::Value& value) {
+ CHECK_RECEIVER(Context2d.SetLineDashOffset);
+ double offset = value.As<Napi::Number>().DoubleValue().FromMaybe(0);
+ if (!std::isfinite(offset)) return;
+
+ Context2d *context = info.This().Unwrap<Context2d>();
+ cairo_t *ctx = context->context();
+
+ int dashes = cairo_get_dash_count(ctx);
+ std::vector<double> a(dashes);
+ cairo_get_dash(ctx, a.data(), NULL);
+ cairo_set_dash(ctx, a.data(), dashes, offset);
+}
+
+/*
+ * Get line dash offset
+ * ref: http://www.w3.org/TR/2dcontext/#dom-context-2d-setlinedash
+ */
+Napi::Value Context2d::GetLineDashOffset(const Napi::CallbackInfo& info) {
+ CHECK_RECEIVER(Context2d.GetLineDashOffset);
+ Context2d *context = info.This().Unwrap<Context2d>();
+ cairo_t *ctx = context->context();
+ double offset;
+ cairo_get_dash(ctx, NULL, &offset);
+
+ return Napi::Number::New(env, offset);
+}
+
+/*
+ * Fill the rectangle defined by x, y, width and height.
+ */
+
+Napi::Value Context2d::FillRect(const Napi::CallbackInfo& info) {
+ RECT_ARGS;
+ if (0 == width || 0 == height) return;
+ Context2d *context = info.This().Unwrap<Context2d>();
+ cairo_t *ctx = context->context();
+ context->savePath();
+ cairo_rectangle(ctx, x, y, width, height);
+ context->fill();
+ context->restorePath();
+}
+
+/*
+ * Stroke the rectangle defined by x, y, width and height.
+ */
+
+Napi::Value Context2d::StrokeRect(const Napi::CallbackInfo& info) {
+ RECT_ARGS;
+ if (0 == width && 0 == height) return;
+ Context2d *context = info.This().Unwrap<Context2d>();
+ cairo_t *ctx = context->context();
+ context->savePath();
+ cairo_rectangle(ctx, x, y, width, height);
+ context->stroke();
+ context->restorePath();
+}
+
+/*
+ * Clears all pixels defined by x, y, width and height.
+ */
+
+Napi::Value Context2d::ClearRect(const Napi::CallbackInfo& info) {
+ RECT_ARGS;
+ if (0 == width || 0 == height) return;
+ Context2d *context = info.This().Unwrap<Context2d>();
+ cairo_t *ctx = context->context();
+ cairo_save(ctx);
+ context->savePath();
+ cairo_rectangle(ctx, x, y, width, height);
+ cairo_set_operator(ctx, CAIRO_OPERATOR_CLEAR);
+ cairo_fill(ctx);
+ context->restorePath();
+ cairo_restore(ctx);
+}
+
+/*
+ * Adds a rectangle subpath.
+ */
+
+Napi::Value Context2d::Rect(const Napi::CallbackInfo& info) {
+ RECT_ARGS;
+ Context2d *context = info.This().Unwrap<Context2d>();
+ cairo_t *ctx = context->context();
+ if (width == 0) {
+ cairo_move_to(ctx, x, y);
+ cairo_line_to(ctx, x, y + height);
+ } else if (height == 0) {
+ cairo_move_to(ctx, x, y);
+ cairo_line_to(ctx, x + width, y);
+ } else {
+ cairo_rectangle(ctx, x, y, width, height);
+ }
+}
+
+// Draws an arc with two potentially different radii.
+inline static
+void elli_arc(cairo_t* ctx, double xc, double yc, double rx, double ry, double a1, double a2, bool clockwise=true) {
+ if (rx == 0. || ry == 0.) {
+ cairo_line_to(ctx, xc + rx, yc + ry);
+ } else {
+ cairo_save(ctx);
+ cairo_translate(ctx, xc, yc);
+ cairo_scale(ctx, rx, ry);
+ if (clockwise)
+ cairo_arc(ctx, 0., 0., 1., a1, a2);
+ else
+ cairo_arc_negative(ctx, 0., 0., 1., a2, a1);
+ cairo_restore(ctx);
+ }
+}
+
+inline static
+bool getRadius(Point<double>& p, const Napi::Value& v) {
+ if (v.IsObject()) { // 5.1 DOMPointInit
+ auto rx = (v.As<Napi::Object>()).Get(Napi::String::New(env, "x"));
+ auto ry = (v.As<Napi::Object>()).Get(Napi::String::New(env, "y"));
+ if (rx.IsNumber() && ry.IsNumber()) {
+ auto rxv = rx.As<Napi::Number>().DoubleValue();
+ auto ryv = ry.As<Napi::Number>().DoubleValue();
+ if (!std::isfinite(rxv) || !std::isfinite(ryv))
+ return true;
+ if (rxv < 0 || ryv < 0) {
+ Napi::RangeError::New(env, "radii must be positive.").ThrowAsJavaScriptException();
+
+ return true;
+ }
+ p.x = rxv;
+ p.y = ryv;
+ return false;
+ }
+ } else if (v.IsNumber()) { // 5.2 unrestricted double
+ auto rv = v.As<Napi::Number>().DoubleValue();
+ if (!std::isfinite(rv))
+ return true;
+ if (rv < 0) {
+ Napi::RangeError::New(env, "radii must be positive.").ThrowAsJavaScriptException();
+
+ return true;
+ }
+ p.x = p.y = rv;
+ return false;
+ }
+ return true;
+}
+
+/**
+ * https://html.spec.whatwg.org/multipage/canvas.html#dom-context-2d-roundrect
+ * x, y, w, h, [radius|[radii]]
+ */
+Napi::Value Context2d::RoundRect(const Napi::CallbackInfo& info) {
+ RECT_ARGS;
+ Context2d *context = info.This().Unwrap<Context2d>();
+ cairo_t *ctx = context->context();
+
+ // 4. Let normalizedRadii be an empty list
+ Point<double> normalizedRadii[4];
+ size_t nRadii = 4;
+
+ if (info[4].IsUndefined()) {
+ for (size_t i = 0; i < 4; i++)
+ normalizedRadii[i].x = normalizedRadii[i].y = 0.;
+
+ } else if (info[4].IsArray()) {
+ auto radiiList = info[4].As<Napi::Array>();
+ nRadii = radiiList->Length();
+ if (!(nRadii >= 1 && nRadii <= 4)) {
+ Napi::RangeError::New(env, "radii must be a list of one, two, three or four radii.").ThrowAsJavaScriptException();
+ return env.Null();
+ }
+ // 5. For each radius of radii
+ for (size_t i = 0; i < nRadii; i++) {
+ auto r = (radiiList).Get(i);
+ if (getRadius(normalizedRadii[i], r))
+ return;
+ }
+
+ } else {
+ // 2. If radii is a double, then set radii to <<radii>>
+ if (getRadius(normalizedRadii[0], info[4]))
+ return;
+ for (size_t i = 1; i < 4; i++) {
+ normalizedRadii[i].x = normalizedRadii[0].x;
+ normalizedRadii[i].y = normalizedRadii[0].y;
+ }
+ }
+
+ Point<double> upperLeft, upperRight, lowerRight, lowerLeft;
+ if (nRadii == 4) {
+ upperLeft = normalizedRadii[0];
+ upperRight = normalizedRadii[1];
+ lowerRight = normalizedRadii[2];
+ lowerLeft = normalizedRadii[3];
+ } else if (nRadii == 3) {
+ upperLeft = normalizedRadii[0];
+ upperRight = normalizedRadii[1];
+ lowerLeft = normalizedRadii[1];
+ lowerRight = normalizedRadii[2];
+ } else if (nRadii == 2) {
+ upperLeft = normalizedRadii[0];
+ lowerRight = normalizedRadii[0];
+ upperRight = normalizedRadii[1];
+ lowerLeft = normalizedRadii[1];
+ } else {
+ upperLeft = normalizedRadii[0];
+ upperRight = normalizedRadii[0];
+ lowerRight = normalizedRadii[0];
+ lowerLeft = normalizedRadii[0];
+ }
+
+ bool clockwise = true;
+ if (width < 0) {
+ clockwise = false;
+ x += width;
+ width = -width;
+ std::swap(upperLeft, upperRight);
+ std::swap(lowerLeft, lowerRight);
+ }
+
+ if (height < 0) {
+ clockwise = !clockwise;
+ y += height;
+ height = -height;
+ std::swap(upperLeft, lowerLeft);
+ std::swap(upperRight, lowerRight);
+ }
+
+ // 11. Corner curves must not overlap. Scale radii to prevent this.
+ {
+ auto top = upperLeft.x + upperRight.x;
+ auto right = upperRight.y + lowerRight.y;
+ auto bottom = lowerRight.x + lowerLeft.x;
+ auto left = upperLeft.y + lowerLeft.y;
+ auto scale = std::min({ width / top, height / right, width / bottom, height / left });
+ if (scale < 1.) {
+ upperLeft.x *= scale;
+ upperLeft.y *= scale;
+ upperRight.x *= scale;
+ upperRight.x *= scale;
+ lowerLeft.y *= scale;
+ lowerLeft.y *= scale;
+ lowerRight.y *= scale;
+ lowerRight.y *= scale;
+ }
+ }
+
+ // 12. Draw
+ cairo_move_to(ctx, x + upperLeft.x, y);
+ if (clockwise) {
+ cairo_line_to(ctx, x + width - upperRight.x, y);
+ elli_arc(ctx, x + width - upperRight.x, y + upperRight.y, upperRight.x, upperRight.y, 3. * M_PI / 2., 0.);
+ cairo_line_to(ctx, x + width, y + height - lowerRight.y);
+ elli_arc(ctx, x + width - lowerRight.x, y + height - lowerRight.y, lowerRight.x, lowerRight.y, 0, M_PI / 2.);
+ cairo_line_to(ctx, x + lowerLeft.x, y + height);
+ elli_arc(ctx, x + lowerLeft.x, y + height - lowerLeft.y, lowerLeft.x, lowerLeft.y, M_PI / 2., M_PI);
+ cairo_line_to(ctx, x, y + upperLeft.y);
+ elli_arc(ctx, x + upperLeft.x, y + upperLeft.y, upperLeft.x, upperLeft.y, M_PI, 3. * M_PI / 2.);
+ } else {
+ elli_arc(ctx, x + upperLeft.x, y + upperLeft.y, upperLeft.x, upperLeft.y, M_PI, 3. * M_PI / 2., false);
+ cairo_line_to(ctx, x, y + upperLeft.y);
+ elli_arc(ctx, x + lowerLeft.x, y + height - lowerLeft.y, lowerLeft.x, lowerLeft.y, M_PI / 2., M_PI, false);
+ cairo_line_to(ctx, x + lowerLeft.x, y + height);
+ elli_arc(ctx, x + width - lowerRight.x, y + height - lowerRight.y, lowerRight.x, lowerRight.y, 0, M_PI / 2., false);
+ cairo_line_to(ctx, x + width, y + height - lowerRight.y);
+ elli_arc(ctx, x + width - upperRight.x, y + upperRight.y, upperRight.x, upperRight.y, 3. * M_PI / 2., 0., false);
+ cairo_line_to(ctx, x + width - upperRight.x, y);
+ }
+ cairo_close_path(ctx);
+}
+
+// Adapted from https://chromium.googlesource.com/chromium/blink/+/refs/heads/main/Source/modules/canvas2d/CanvasPathMethods.cpp
+static void canonicalizeAngle(double& startAngle, double& endAngle) {
+ // Make 0 <= startAngle < 2*PI
+ double newStartAngle = std::fmod(startAngle, twoPi);
+ if (newStartAngle < 0) {
+ newStartAngle += twoPi;
+ // Check for possible catastrophic cancellation in cases where
+ // newStartAngle was a tiny negative number (c.f. crbug.com/503422)
+ if (newStartAngle >= twoPi)
+ newStartAngle -= twoPi;
+ }
+ double delta = newStartAngle - startAngle;
+ startAngle = newStartAngle;
+ endAngle = endAngle + delta;
+}
+
+// Adapted from https://chromium.googlesource.com/chromium/blink/+/refs/heads/main/Source/modules/canvas2d/CanvasPathMethods.cpp
+static double adjustEndAngle(double startAngle, double endAngle, bool counterclockwise) {
+ double newEndAngle = endAngle;
+ /* http://www.whatwg.org/specs/web-apps/current-work/multipage/the-canvas-element.html#dom-context-2d-arc
+ * If the counterclockwise argument is false and endAngle-startAngle is equal to or greater than 2pi, or,
+ * if the counterclockwise argument is true and startAngle-endAngle is equal to or greater than 2pi,
+ * then the arc is the whole circumference of this ellipse, and the point at startAngle along this circle's circumference,
+ * measured in radians clockwise from the ellipse's semi-major axis, acts as both the start point and the end point.
+ */
+ if (!counterclockwise && endAngle - startAngle >= twoPi)
+ newEndAngle = startAngle + twoPi;
+ else if (counterclockwise && startAngle - endAngle >= twoPi)
+ newEndAngle = startAngle - twoPi;
+ /*
+ * Otherwise, the arc is the path along the circumference of this ellipse from the start point to the end point,
+ * going anti-clockwise if the counterclockwise argument is true, and clockwise otherwise.
+ * Since the points are on the ellipse, as opposed to being simply angles from zero,
+ * the arc can never cover an angle greater than 2pi radians.
+ */
+ /* NOTE: When startAngle = 0, endAngle = 2Pi and counterclockwise = true, the spec does not indicate clearly.
+ * We draw the entire circle, because some web sites use arc(x, y, r, 0, 2*Math.PI, true) to draw circle.
+ * We preserve backward-compatibility.
+ */
+ else if (!counterclockwise && startAngle > endAngle)
+ newEndAngle = startAngle + (twoPi - std::fmod(startAngle - endAngle, twoPi));
+ else if (counterclockwise && startAngle < endAngle)
+ newEndAngle = startAngle - (twoPi - std::fmod(endAngle - startAngle, twoPi));
+ return newEndAngle;
+}
+
+/*
+ * Adds an arc at x, y with the given radii and start/end angles.
+ */
+
+Napi::Value Context2d::Arc(const Napi::CallbackInfo& info) {
+ double args[5];
+ if(!checkArgs(info, args, 5))
+ return;
+
+ auto x = args[0];
+ auto y = args[1];
+ auto radius = args[2];
+ auto startAngle = args[3];
+ auto endAngle = args[4];
+
+ if (radius < 0) {
+ Napi::RangeError::New(env, "The radius provided is negative.").ThrowAsJavaScriptException();
+ return env.Null();
+ }
+
+ bool counterclockwise = info[5].As<Napi::Boolean>().Value().FromMaybe(false);
+
+ Context2d *context = info.This().Unwrap<Context2d>();
+ cairo_t *ctx = context->context();
+
+ canonicalizeAngle(startAngle, endAngle);
+ endAngle = adjustEndAngle(startAngle, endAngle, counterclockwise);
+
+ if (counterclockwise) {
+ cairo_arc_negative(ctx, x, y, radius, startAngle, endAngle);
+ } else {
+ cairo_arc(ctx, x, y, radius, startAngle, endAngle);
+ }
+}
+
+/*
+ * Adds an arcTo point (x0,y0) to (x1,y1) with the given radius.
+ *
+ * Implementation influenced by WebKit.
+ */
+
+Napi::Value Context2d::ArcTo(const Napi::CallbackInfo& info) {
+ double args[5];
+ if(!checkArgs(info, args, 5))
+ return;
+
+ Context2d *context = info.This().Unwrap<Context2d>();
+ cairo_t *ctx = context->context();
+
+ // Current path point
+ double x, y;
+ cairo_get_current_point(ctx, &x, &y);
+ Point<float> p0(x, y);
+
+ // Point (x0,y0)
+ Point<float> p1(args[0], args[1]);
+
+ // Point (x1,y1)
+ Point<float> p2(args[2], args[3]);
+
+ float radius = args[4];
+
+ if ((p1.x == p0.x && p1.y == p0.y)
+ || (p1.x == p2.x && p1.y == p2.y)
+ || radius == 0.f) {
+ cairo_line_to(ctx, p1.x, p1.y);
+ return;
+ }
+
+ Point<float> p1p0((p0.x - p1.x),(p0.y - p1.y));
+ Point<float> p1p2((p2.x - p1.x),(p2.y - p1.y));
+ float p1p0_length = sqrtf(p1p0.x * p1p0.x + p1p0.y * p1p0.y);
+ float p1p2_length = sqrtf(p1p2.x * p1p2.x + p1p2.y * p1p2.y);
+
+ double cos_phi = (p1p0.x * p1p2.x + p1p0.y * p1p2.y) / (p1p0_length * p1p2_length);
+ // all points on a line logic
+ if (-1 == cos_phi) {
+ cairo_line_to(ctx, p1.x, p1.y);
+ return;
+ }
+
+ if (1 == cos_phi) {
+ // add infinite far away point
+ unsigned int max_length = 65535;
+ double factor_max = max_length / p1p0_length;
+ Point<float> ep((p0.x + factor_max * p1p0.x), (p0.y + factor_max * p1p0.y));
+ cairo_line_to(ctx, ep.x, ep.y);
+ return;
+ }
+
+ float tangent = radius / tan(acos(cos_phi) / 2);
+ float factor_p1p0 = tangent / p1p0_length;
+ Point<float> t_p1p0((p1.x + factor_p1p0 * p1p0.x), (p1.y + factor_p1p0 * p1p0.y));
+
+ Point<float> orth_p1p0(p1p0.y, -p1p0.x);
+ float orth_p1p0_length = sqrt(orth_p1p0.x * orth_p1p0.x + orth_p1p0.y * orth_p1p0.y);
+ float factor_ra = radius / orth_p1p0_length;
+
+ double cos_alpha = (orth_p1p0.x * p1p2.x + orth_p1p0.y * p1p2.y) / (orth_p1p0_length * p1p2_length);
+ if (cos_alpha < 0.f)
+ orth_p1p0 = Point<float>(-orth_p1p0.x, -orth_p1p0.y);
+
+ Point<float> p((t_p1p0.x + factor_ra * orth_p1p0.x), (t_p1p0.y + factor_ra * orth_p1p0.y));
+
+ orth_p1p0 = Point<float>(-orth_p1p0.x, -orth_p1p0.y);
+ float sa = acos(orth_p1p0.x / orth_p1p0_length);
+ if (orth_p1p0.y < 0.f)
+ sa = 2 * M_PI - sa;
+
+ bool anticlockwise = false;
+
+ float factor_p1p2 = tangent / p1p2_length;
+ Point<float> t_p1p2((p1.x + factor_p1p2 * p1p2.x), (p1.y + factor_p1p2 * p1p2.y));
+ Point<float> orth_p1p2((t_p1p2.x - p.x),(t_p1p2.y - p.y));
+ float orth_p1p2_length = sqrtf(orth_p1p2.x * orth_p1p2.x + orth_p1p2.y * orth_p1p2.y);
+ float ea = acos(orth_p1p2.x / orth_p1p2_length);
+
+ if (orth_p1p2.y < 0) ea = 2 * M_PI - ea;
+ if ((sa > ea) && ((sa - ea) < M_PI)) anticlockwise = true;
+ if ((sa < ea) && ((ea - sa) > M_PI)) anticlockwise = true;
+
+ cairo_line_to(ctx, t_p1p0.x, t_p1p0.y);
+
+ if (anticlockwise && M_PI * 2 != radius) {
+ cairo_arc_negative(ctx
+ , p.x
+ , p.y
+ , radius
+ , sa
+ , ea);
+ } else {
+ cairo_arc(ctx
+ , p.x
+ , p.y
+ , radius
+ , sa
+ , ea);
+ }
+}
+
+/*
+ * Adds an ellipse to the path which is centered at (x, y) position with the
+ * radii radiusX and radiusY starting at startAngle and ending at endAngle
+ * going in the given direction by anticlockwise (defaulting to clockwise).
+ */
+
+Napi::Value Context2d::Ellipse(const Napi::CallbackInfo& info) {
+ double args[7];
+ if(!checkArgs(info, args, 7))
+ return;
+
+ double radiusX = args[2];
+ double radiusY = args[3];
+
+ if (radiusX == 0 || radiusY == 0) return;
+
+ double x = args[0];
+ double y = args[1];
+ double rotation = args[4];
+ double startAngle = args[5];
+ double endAngle = args[6];
+ bool anticlockwise = info[7].As<Napi::Boolean>().Value().FromMaybe(false);
+
+ Context2d *context = info.This().Unwrap<Context2d>();
+ cairo_t *ctx = context->context();
+
+ // See https://www.cairographics.org/cookbook/ellipses/
+ double xRatio = radiusX / radiusY;
+
+ cairo_matrix_t save_matrix;
+ cairo_get_matrix(ctx, &save_matrix);
+ cairo_translate(ctx, x, y);
+ cairo_rotate(ctx, rotation);
+ cairo_scale(ctx, xRatio, 1.0);
+ cairo_translate(ctx, -x, -y);
+ if (anticlockwise && M_PI * 2 != args[4]) {
+ cairo_arc_negative(ctx,
+ x,
+ y,
+ radiusY,
+ startAngle,
+ endAngle);
+ } else {
+ cairo_arc(ctx,
+ x,
+ y,
+ radiusY,
+ startAngle,
+ endAngle);
+ }
+ cairo_set_matrix(ctx, &save_matrix);
+}
+
+#undef CHECK_RECEIVER
diff --git a/node_modules/canvas/src/CanvasRenderingContext2d.h b/node_modules/canvas/src/CanvasRenderingContext2d.h
new file mode 100644
index 0000000..8ea4d60
--- /dev/null
+++ b/node_modules/canvas/src/CanvasRenderingContext2d.h
@@ -0,0 +1,225 @@
+// Copyright (c) 2010 LearnBoost <tj@learnboost.com>
+
+#pragma once
+
+#include "cairo.h"
+#include "Canvas.h"
+#include "color.h"
+#include "nan.h"
+#include <pango/pangocairo.h>
+#include <stack>
+
+/*
+ * State struct.
+ *
+ * Used in conjunction with Save() / Restore() since
+ * cairo's gstate maintains only a single source pattern at a time.
+ */
+
+struct canvas_state_t {
+ rgba_t fill = { 0, 0, 0, 1 };
+ rgba_t stroke = { 0, 0, 0, 1 };
+ rgba_t shadow = { 0, 0, 0, 0 };
+ double shadowOffsetX = 0.;
+ double shadowOffsetY = 0.;
+ cairo_pattern_t* fillPattern = nullptr;
+ cairo_pattern_t* strokePattern = nullptr;
+ cairo_pattern_t* fillGradient = nullptr;
+ cairo_pattern_t* strokeGradient = nullptr;
+ PangoFontDescription* fontDescription = nullptr;
+ std::string font = "10px sans-serif";
+ cairo_filter_t patternQuality = CAIRO_FILTER_GOOD;
+ float globalAlpha = 1.f;
+ int shadowBlur = 0;
+ text_align_t textAlignment = TEXT_ALIGNMENT_LEFT; // TODO default is supposed to be START
+ text_baseline_t textBaseline = TEXT_BASELINE_ALPHABETIC;
+ canvas_draw_mode_t textDrawingMode = TEXT_DRAW_PATHS;
+ bool imageSmoothingEnabled = true;
+
+ canvas_state_t() {
+ fontDescription = pango_font_description_from_string("sans");
+ pango_font_description_set_absolute_size(fontDescription, 10 * PANGO_SCALE);
+ }
+
+ canvas_state_t(const canvas_state_t& other) {
+ fill = other.fill;
+ stroke = other.stroke;
+ patternQuality = other.patternQuality;
+ fillPattern = other.fillPattern;
+ strokePattern = other.strokePattern;
+ fillGradient = other.fillGradient;
+ strokeGradient = other.strokeGradient;
+ globalAlpha = other.globalAlpha;
+ textAlignment = other.textAlignment;
+ textBaseline = other.textBaseline;
+ shadow = other.shadow;
+ shadowBlur = other.shadowBlur;
+ shadowOffsetX = other.shadowOffsetX;
+ shadowOffsetY = other.shadowOffsetY;
+ textDrawingMode = other.textDrawingMode;
+ fontDescription = pango_font_description_copy(other.fontDescription);
+ font = other.font;
+ imageSmoothingEnabled = other.imageSmoothingEnabled;
+ }
+
+ ~canvas_state_t() {
+ pango_font_description_free(fontDescription);
+ }
+};
+
+/*
+ * Equivalent to a PangoRectangle but holds floats instead of ints
+ * (software pixels are stored here instead of pango units)
+ *
+ * Should be compatible with PANGO_ASCENT, PANGO_LBEARING, etc.
+ */
+
+typedef struct {
+ float x;
+ float y;
+ float width;
+ float height;
+} float_rectangle;
+
+class Context2d : public Nan::ObjectWrap {
+ public:
+ std::stack<canvas_state_t> states;
+ canvas_state_t *state;
+ Context2d(Canvas *canvas);
+ static Nan::Persistent<v8::Function> _DOMMatrix;
+ static Nan::Persistent<v8::Function> _parseFont;
+ static Nan::Persistent<v8::FunctionTemplate> constructor;
+ static void Initialize(Nan::ADDON_REGISTER_FUNCTION_ARGS_TYPE target);
+ static NAN_METHOD(New);
+ static NAN_METHOD(SaveExternalModules);
+ static NAN_METHOD(DrawImage);
+ static NAN_METHOD(PutImageData);
+ static NAN_METHOD(Save);
+ static NAN_METHOD(Restore);
+ static NAN_METHOD(Rotate);
+ static NAN_METHOD(Translate);
+ static NAN_METHOD(Scale);
+ static NAN_METHOD(Transform);
+ static NAN_METHOD(GetTransform);
+ static NAN_METHOD(ResetTransform);
+ static NAN_METHOD(SetTransform);
+ static NAN_METHOD(IsPointInPath);
+ static NAN_METHOD(BeginPath);
+ static NAN_METHOD(ClosePath);
+ static NAN_METHOD(AddPage);
+ static NAN_METHOD(Clip);
+ static NAN_METHOD(Fill);
+ static NAN_METHOD(Stroke);
+ static NAN_METHOD(FillText);
+ static NAN_METHOD(StrokeText);
+ static NAN_METHOD(SetFont);
+ static NAN_METHOD(SetFillColor);
+ static NAN_METHOD(SetStrokeColor);
+ static NAN_METHOD(SetStrokePattern);
+ static NAN_METHOD(SetTextAlignment);
+ static NAN_METHOD(SetLineDash);
+ static NAN_METHOD(GetLineDash);
+ static NAN_METHOD(MeasureText);
+ static NAN_METHOD(BezierCurveTo);
+ static NAN_METHOD(QuadraticCurveTo);
+ static NAN_METHOD(LineTo);
+ static NAN_METHOD(MoveTo);
+ static NAN_METHOD(FillRect);
+ static NAN_METHOD(StrokeRect);
+ static NAN_METHOD(ClearRect);
+ static NAN_METHOD(Rect);
+ static NAN_METHOD(RoundRect);
+ static NAN_METHOD(Arc);
+ static NAN_METHOD(ArcTo);
+ static NAN_METHOD(Ellipse);
+ static NAN_METHOD(GetImageData);
+ static NAN_METHOD(CreateImageData);
+ static NAN_METHOD(GetStrokeColor);
+ static NAN_METHOD(CreatePattern);
+ static NAN_METHOD(CreateLinearGradient);
+ static NAN_METHOD(CreateRadialGradient);
+ static NAN_GETTER(GetFormat);
+ static NAN_GETTER(GetPatternQuality);
+ static NAN_GETTER(GetImageSmoothingEnabled);
+ static NAN_GETTER(GetGlobalCompositeOperation);
+ static NAN_GETTER(GetGlobalAlpha);
+ static NAN_GETTER(GetShadowColor);
+ static NAN_GETTER(GetMiterLimit);
+ static NAN_GETTER(GetLineCap);
+ static NAN_GETTER(GetLineJoin);
+ static NAN_GETTER(GetLineWidth);
+ static NAN_GETTER(GetLineDashOffset);
+ static NAN_GETTER(GetShadowOffsetX);
+ static NAN_GETTER(GetShadowOffsetY);
+ static NAN_GETTER(GetShadowBlur);
+ static NAN_GETTER(GetAntiAlias);
+ static NAN_GETTER(GetTextDrawingMode);
+ static NAN_GETTER(GetQuality);
+ static NAN_GETTER(GetCurrentTransform);
+ static NAN_GETTER(GetFillStyle);
+ static NAN_GETTER(GetStrokeStyle);
+ static NAN_GETTER(GetFont);
+ static NAN_GETTER(GetTextBaseline);
+ static NAN_GETTER(GetTextAlign);
+ static NAN_SETTER(SetPatternQuality);
+ static NAN_SETTER(SetImageSmoothingEnabled);
+ static NAN_SETTER(SetGlobalCompositeOperation);
+ static NAN_SETTER(SetGlobalAlpha);
+ static NAN_SETTER(SetShadowColor);
+ static NAN_SETTER(SetMiterLimit);
+ static NAN_SETTER(SetLineCap);
+ static NAN_SETTER(SetLineJoin);
+ static NAN_SETTER(SetLineWidth);
+ static NAN_SETTER(SetLineDashOffset);
+ static NAN_SETTER(SetShadowOffsetX);
+ static NAN_SETTER(SetShadowOffsetY);
+ static NAN_SETTER(SetShadowBlur);
+ static NAN_SETTER(SetAntiAlias);
+ static NAN_SETTER(SetTextDrawingMode);
+ static NAN_SETTER(SetQuality);
+ static NAN_SETTER(SetCurrentTransform);
+ static NAN_SETTER(SetFillStyle);
+ static NAN_SETTER(SetStrokeStyle);
+ static NAN_SETTER(SetFont);
+ static NAN_SETTER(SetTextBaseline);
+ static NAN_SETTER(SetTextAlign);
+ inline void setContext(cairo_t *ctx) { _context = ctx; }
+ inline cairo_t *context(){ return _context; }
+ inline Canvas *canvas(){ return _canvas; }
+ inline bool hasShadow();
+ void inline setSourceRGBA(rgba_t color);
+ void inline setSourceRGBA(cairo_t *ctx, rgba_t color);
+ void setTextPath(double x, double y);
+ void blur(cairo_surface_t *surface, int radius);
+ void shadow(void (fn)(cairo_t *cr));
+ void shadowStart();
+ void shadowApply();
+ void savePath();
+ void restorePath();
+ void saveState();
+ void restoreState();
+ void inline setFillRule(v8::Local<v8::Value> value);
+ void fill(bool preserve = false);
+ void stroke(bool preserve = false);
+ void save();
+ void restore();
+ void setFontFromState();
+ void resetState();
+ inline PangoLayout *layout(){ return _layout; }
+
+ private:
+ ~Context2d();
+ void _resetPersistentHandles();
+ v8::Local<v8::Value> _getFillColor();
+ v8::Local<v8::Value> _getStrokeColor();
+ void _setFillColor(v8::Local<v8::Value> arg);
+ void _setFillPattern(v8::Local<v8::Value> arg);
+ void _setStrokeColor(v8::Local<v8::Value> arg);
+ void _setStrokePattern(v8::Local<v8::Value> arg);
+ Nan::Persistent<v8::Value> _fillStyle;
+ Nan::Persistent<v8::Value> _strokeStyle;
+ Canvas *_canvas;
+ cairo_t *_context;
+ cairo_path_t *_path;
+ PangoLayout *_layout;
+};
diff --git a/node_modules/canvas/src/CanvasRenderingContext2d.h.orig b/node_modules/canvas/src/CanvasRenderingContext2d.h.orig
new file mode 100644
index 0000000..94bcfd5
--- /dev/null
+++ b/node_modules/canvas/src/CanvasRenderingContext2d.h.orig
@@ -0,0 +1,226 @@
+// Copyright (c) 2010 LearnBoost <tj@learnboost.com>
+
+#pragma once
+
+#include "cairo.h"
+#include "Canvas.h"
+#include "color.h"
+#include "napi.h"
+#include "uv.h"
+#include <pango/pangocairo.h>
+#include <stack>
+
+/*
+ * State struct.
+ *
+ * Used in conjunction with Save() / Restore() since
+ * cairo's gstate maintains only a single source pattern at a time.
+ */
+
+struct canvas_state_t {
+ rgba_t fill = { 0, 0, 0, 1 };
+ rgba_t stroke = { 0, 0, 0, 1 };
+ rgba_t shadow = { 0, 0, 0, 0 };
+ double shadowOffsetX = 0.;
+ double shadowOffsetY = 0.;
+ cairo_pattern_t* fillPattern = nullptr;
+ cairo_pattern_t* strokePattern = nullptr;
+ cairo_pattern_t* fillGradient = nullptr;
+ cairo_pattern_t* strokeGradient = nullptr;
+ PangoFontDescription* fontDescription = nullptr;
+ std::string font = "10px sans-serif";
+ cairo_filter_t patternQuality = CAIRO_FILTER_GOOD;
+ float globalAlpha = 1.f;
+ int shadowBlur = 0;
+ text_align_t textAlignment = TEXT_ALIGNMENT_LEFT; // TODO default is supposed to be START
+ text_baseline_t textBaseline = TEXT_BASELINE_ALPHABETIC;
+ canvas_draw_mode_t textDrawingMode = TEXT_DRAW_PATHS;
+ bool imageSmoothingEnabled = true;
+
+ canvas_state_t() {
+ fontDescription = pango_font_description_from_string("sans");
+ pango_font_description_set_absolute_size(fontDescription, 10 * PANGO_SCALE);
+ }
+
+ canvas_state_t(const canvas_state_t& other) {
+ fill = other.fill;
+ stroke = other.stroke;
+ patternQuality = other.patternQuality;
+ fillPattern = other.fillPattern;
+ strokePattern = other.strokePattern;
+ fillGradient = other.fillGradient;
+ strokeGradient = other.strokeGradient;
+ globalAlpha = other.globalAlpha;
+ textAlignment = other.textAlignment;
+ textBaseline = other.textBaseline;
+ shadow = other.shadow;
+ shadowBlur = other.shadowBlur;
+ shadowOffsetX = other.shadowOffsetX;
+ shadowOffsetY = other.shadowOffsetY;
+ textDrawingMode = other.textDrawingMode;
+ fontDescription = pango_font_description_copy(other.fontDescription);
+ font = other.font;
+ imageSmoothingEnabled = other.imageSmoothingEnabled;
+ }
+
+ ~canvas_state_t() {
+ pango_font_description_free(fontDescription);
+ }
+};
+
+/*
+ * Equivalent to a PangoRectangle but holds floats instead of ints
+ * (software pixels are stored here instead of pango units)
+ *
+ * Should be compatible with PANGO_ASCENT, PANGO_LBEARING, etc.
+ */
+
+typedef struct {
+ float x;
+ float y;
+ float width;
+ float height;
+} float_rectangle;
+
+class Context2d : public Napi::ObjectWrap<Context2d> {
+ public:
+ std::stack<canvas_state_t> states;
+ canvas_state_t *state;
+ Context2d(Canvas *canvas);
+ static Napi::FunctionReference _DOMMatrix;
+ static Napi::FunctionReference _parseFont;
+ static Napi::FunctionReference constructor;
+ static void Initialize(Napi::Env& env, Napi::Object& target);
+ static Napi::Value New(const Napi::CallbackInfo& info);
+ static Napi::Value SaveExternalModules(const Napi::CallbackInfo& info);
+ static Napi::Value DrawImage(const Napi::CallbackInfo& info);
+ static Napi::Value PutImageData(const Napi::CallbackInfo& info);
+ static Napi::Value Save(const Napi::CallbackInfo& info);
+ static Napi::Value Restore(const Napi::CallbackInfo& info);
+ static Napi::Value Rotate(const Napi::CallbackInfo& info);
+ static Napi::Value Translate(const Napi::CallbackInfo& info);
+ static Napi::Value Scale(const Napi::CallbackInfo& info);
+ static Napi::Value Transform(const Napi::CallbackInfo& info);
+ static Napi::Value GetTransform(const Napi::CallbackInfo& info);
+ static Napi::Value ResetTransform(const Napi::CallbackInfo& info);
+ static Napi::Value SetTransform(const Napi::CallbackInfo& info);
+ static Napi::Value IsPointInPath(const Napi::CallbackInfo& info);
+ static Napi::Value BeginPath(const Napi::CallbackInfo& info);
+ static Napi::Value ClosePath(const Napi::CallbackInfo& info);
+ static Napi::Value AddPage(const Napi::CallbackInfo& info);
+ static Napi::Value Clip(const Napi::CallbackInfo& info);
+ static Napi::Value Fill(const Napi::CallbackInfo& info);
+ static Napi::Value Stroke(const Napi::CallbackInfo& info);
+ static Napi::Value FillText(const Napi::CallbackInfo& info);
+ static Napi::Value StrokeText(const Napi::CallbackInfo& info);
+ static Napi::Value SetFont(const Napi::CallbackInfo& info);
+ static Napi::Value SetFillColor(const Napi::CallbackInfo& info);
+ static Napi::Value SetStrokeColor(const Napi::CallbackInfo& info);
+ static Napi::Value SetStrokePattern(const Napi::CallbackInfo& info);
+ static Napi::Value SetTextAlignment(const Napi::CallbackInfo& info);
+ static Napi::Value SetLineDash(const Napi::CallbackInfo& info);
+ static Napi::Value GetLineDash(const Napi::CallbackInfo& info);
+ static Napi::Value MeasureText(const Napi::CallbackInfo& info);
+ static Napi::Value BezierCurveTo(const Napi::CallbackInfo& info);
+ static Napi::Value QuadraticCurveTo(const Napi::CallbackInfo& info);
+ static Napi::Value LineTo(const Napi::CallbackInfo& info);
+ static Napi::Value MoveTo(const Napi::CallbackInfo& info);
+ static Napi::Value FillRect(const Napi::CallbackInfo& info);
+ static Napi::Value StrokeRect(const Napi::CallbackInfo& info);
+ static Napi::Value ClearRect(const Napi::CallbackInfo& info);
+ static Napi::Value Rect(const Napi::CallbackInfo& info);
+ static Napi::Value RoundRect(const Napi::CallbackInfo& info);
+ static Napi::Value Arc(const Napi::CallbackInfo& info);
+ static Napi::Value ArcTo(const Napi::CallbackInfo& info);
+ static Napi::Value Ellipse(const Napi::CallbackInfo& info);
+ static Napi::Value GetImageData(const Napi::CallbackInfo& info);
+ static Napi::Value CreateImageData(const Napi::CallbackInfo& info);
+ static Napi::Value GetStrokeColor(const Napi::CallbackInfo& info);
+ static Napi::Value CreatePattern(const Napi::CallbackInfo& info);
+ static Napi::Value CreateLinearGradient(const Napi::CallbackInfo& info);
+ static Napi::Value CreateRadialGradient(const Napi::CallbackInfo& info);
+ Napi::Value GetFormat(const Napi::CallbackInfo& info);
+ Napi::Value GetPatternQuality(const Napi::CallbackInfo& info);
+ Napi::Value GetImageSmoothingEnabled(const Napi::CallbackInfo& info);
+ Napi::Value GetGlobalCompositeOperation(const Napi::CallbackInfo& info);
+ Napi::Value GetGlobalAlpha(const Napi::CallbackInfo& info);
+ Napi::Value GetShadowColor(const Napi::CallbackInfo& info);
+ Napi::Value GetMiterLimit(const Napi::CallbackInfo& info);
+ Napi::Value GetLineCap(const Napi::CallbackInfo& info);
+ Napi::Value GetLineJoin(const Napi::CallbackInfo& info);
+ Napi::Value GetLineWidth(const Napi::CallbackInfo& info);
+ Napi::Value GetLineDashOffset(const Napi::CallbackInfo& info);
+ Napi::Value GetShadowOffsetX(const Napi::CallbackInfo& info);
+ Napi::Value GetShadowOffsetY(const Napi::CallbackInfo& info);
+ Napi::Value GetShadowBlur(const Napi::CallbackInfo& info);
+ Napi::Value GetAntiAlias(const Napi::CallbackInfo& info);
+ Napi::Value GetTextDrawingMode(const Napi::CallbackInfo& info);
+ Napi::Value GetQuality(const Napi::CallbackInfo& info);
+ Napi::Value GetCurrentTransform(const Napi::CallbackInfo& info);
+ Napi::Value GetFillStyle(const Napi::CallbackInfo& info);
+ Napi::Value GetStrokeStyle(const Napi::CallbackInfo& info);
+ Napi::Value GetFont(const Napi::CallbackInfo& info);
+ Napi::Value GetTextBaseline(const Napi::CallbackInfo& info);
+ Napi::Value GetTextAlign(const Napi::CallbackInfo& info);
+ void SetPatternQuality(const Napi::CallbackInfo& info, const Napi::Value& value);
+ void SetImageSmoothingEnabled(const Napi::CallbackInfo& info, const Napi::Value& value);
+ void SetGlobalCompositeOperation(const Napi::CallbackInfo& info, const Napi::Value& value);
+ void SetGlobalAlpha(const Napi::CallbackInfo& info, const Napi::Value& value);
+ void SetShadowColor(const Napi::CallbackInfo& info, const Napi::Value& value);
+ void SetMiterLimit(const Napi::CallbackInfo& info, const Napi::Value& value);
+ void SetLineCap(const Napi::CallbackInfo& info, const Napi::Value& value);
+ void SetLineJoin(const Napi::CallbackInfo& info, const Napi::Value& value);
+ void SetLineWidth(const Napi::CallbackInfo& info, const Napi::Value& value);
+ void SetLineDashOffset(const Napi::CallbackInfo& info, const Napi::Value& value);
+ void SetShadowOffsetX(const Napi::CallbackInfo& info, const Napi::Value& value);
+ void SetShadowOffsetY(const Napi::CallbackInfo& info, const Napi::Value& value);
+ void SetShadowBlur(const Napi::CallbackInfo& info, const Napi::Value& value);
+ void SetAntiAlias(const Napi::CallbackInfo& info, const Napi::Value& value);
+ void SetTextDrawingMode(const Napi::CallbackInfo& info, const Napi::Value& value);
+ void SetQuality(const Napi::CallbackInfo& info, const Napi::Value& value);
+ void SetCurrentTransform(const Napi::CallbackInfo& info, const Napi::Value& value);
+ void SetFillStyle(const Napi::CallbackInfo& info, const Napi::Value& value);
+ void SetStrokeStyle(const Napi::CallbackInfo& info, const Napi::Value& value);
+ void SetFont(const Napi::CallbackInfo& info, const Napi::Value& value);
+ void SetTextBaseline(const Napi::CallbackInfo& info, const Napi::Value& value);
+ void SetTextAlign(const Napi::CallbackInfo& info, const Napi::Value& value);
+ inline void setContext(cairo_t *ctx) { _context = ctx; }
+ inline cairo_t *context(){ return _context; }
+ inline Canvas *canvas(){ return _canvas; }
+ inline bool hasShadow();
+ void inline setSourceRGBA(rgba_t color);
+ void inline setSourceRGBA(cairo_t *ctx, rgba_t color);
+ void setTextPath(double x, double y);
+ void blur(cairo_surface_t *surface, int radius);
+ void shadow(void (fn)(cairo_t *cr));
+ void shadowStart();
+ void shadowApply();
+ void savePath();
+ void restorePath();
+ void saveState();
+ void restoreState();
+ void inline setFillRule(Napi::Value value);
+ void fill(bool preserve = false);
+ void stroke(bool preserve = false);
+ void save();
+ void restore();
+ void setFontFromState();
+ void resetState();
+ inline PangoLayout *layout(){ return _layout; }
+
+ private:
+ ~Context2d();
+ void _resetPersistentHandles();
+ Napi::Value _getFillColor();
+ Napi::Value _getStrokeColor();
+ void _setFillColor(Napi::Value arg);
+ void _setFillPattern(Napi::Value arg);
+ void _setStrokeColor(Napi::Value arg);
+ void _setStrokePattern(Napi::Value arg);
+ Napi::Persistent<v8::Value> _fillStyle;
+ Napi::Persistent<v8::Value> _strokeStyle;
+ Canvas *_canvas;
+ cairo_t *_context;
+ cairo_path_t *_path;
+ PangoLayout *_layout;
+};
diff --git a/node_modules/canvas/src/Image.cc b/node_modules/canvas/src/Image.cc
new file mode 100644
index 0000000..35ee794
--- /dev/null
+++ b/node_modules/canvas/src/Image.cc
@@ -0,0 +1,1434 @@
+// Copyright (c) 2010 LearnBoost <tj@learnboost.com>
+
+#include "Image.h"
+
+#include "bmp/BMPParser.h"
+#include "Canvas.h"
+#include <cerrno>
+#include <cstdlib>
+#include <cstring>
+#include <node_buffer.h>
+
+/* Cairo limit:
+ * https://lists.cairographics.org/archives/cairo/2010-December/021422.html
+ */
+static constexpr int canvas_max_side = (1 << 15) - 1;
+
+#ifdef HAVE_GIF
+typedef struct {
+ uint8_t *buf;
+ unsigned len;
+ unsigned pos;
+} gif_data_t;
+#endif
+
+#ifdef HAVE_JPEG
+#include <csetjmp>
+
+struct canvas_jpeg_error_mgr: jpeg_error_mgr {
+ Image* image;
+ jmp_buf setjmp_buffer;
+};
+#endif
+
+/*
+ * Read closure used by loadFromBuffer.
+ */
+
+typedef struct {
+ unsigned len;
+ uint8_t *buf;
+} read_closure_t;
+
+using namespace v8;
+
+Nan::Persistent<FunctionTemplate> Image::constructor;
+
+/*
+ * Initialize Image.
+ */
+
+void
+Image::Initialize(Nan::ADDON_REGISTER_FUNCTION_ARGS_TYPE target) {
+ Nan::HandleScope scope;
+
+ Local<FunctionTemplate> ctor = Nan::New<FunctionTemplate>(Image::New);
+ constructor.Reset(ctor);
+ ctor->InstanceTemplate()->SetInternalFieldCount(1);
+ ctor->SetClassName(Nan::New("Image").ToLocalChecked());
+
+ // Prototype
+ Local<ObjectTemplate> proto = ctor->PrototypeTemplate();
+ Nan::SetAccessor(proto, Nan::New("complete").ToLocalChecked(), GetComplete);
+ Nan::SetAccessor(proto, Nan::New("width").ToLocalChecked(), GetWidth, SetWidth);
+ Nan::SetAccessor(proto, Nan::New("height").ToLocalChecked(), GetHeight, SetHeight);
+ Nan::SetAccessor(proto, Nan::New("naturalWidth").ToLocalChecked(), GetNaturalWidth);
+ Nan::SetAccessor(proto, Nan::New("naturalHeight").ToLocalChecked(), GetNaturalHeight);
+ Nan::SetAccessor(proto, Nan::New("dataMode").ToLocalChecked(), GetDataMode, SetDataMode);
+
+ ctor->Set(Nan::New("MODE_IMAGE").ToLocalChecked(), Nan::New<Number>(DATA_IMAGE));
+ ctor->Set(Nan::New("MODE_MIME").ToLocalChecked(), Nan::New<Number>(DATA_MIME));
+
+ Local<Context> ctx = Nan::GetCurrentContext();
+ Nan::Set(target, Nan::New("Image").ToLocalChecked(), ctor->GetFunction(ctx).ToLocalChecked());
+
+ // Used internally in lib/image.js
+ NAN_EXPORT(target, GetSource);
+ NAN_EXPORT(target, SetSource);
+}
+
+/*
+ * Initialize a new Image.
+ */
+
+NAN_METHOD(Image::New) {
+ if (!info.IsConstructCall()) {
+ return Nan::ThrowTypeError("Class constructors cannot be invoked without 'new'");
+ }
+
+ Image *img = new Image;
+ img->data_mode = DATA_IMAGE;
+ img->Wrap(info.This());
+ Nan::Set(info.This(), Nan::New("onload").ToLocalChecked(), Nan::Null()).Check();
+ Nan::Set(info.This(), Nan::New("onerror").ToLocalChecked(), Nan::Null()).Check();
+ info.GetReturnValue().Set(info.This());
+}
+
+/*
+ * Get complete boolean.
+ */
+
+NAN_GETTER(Image::GetComplete) {
+ info.GetReturnValue().Set(Nan::New<Boolean>(true));
+}
+
+/*
+ * Get dataMode.
+ */
+
+NAN_GETTER(Image::GetDataMode) {
+ if (!Image::constructor.Get(info.GetIsolate())->HasInstance(info.This())) {
+ Nan::ThrowTypeError("Method Image.GetDataMode called on incompatible receiver");
+ return;
+ }
+ Image *img = Nan::ObjectWrap::Unwrap<Image>(info.This());
+ info.GetReturnValue().Set(Nan::New<Number>(img->data_mode));
+}
+
+/*
+ * Set dataMode.
+ */
+
+NAN_SETTER(Image::SetDataMode) {
+ if (!Image::constructor.Get(info.GetIsolate())->HasInstance(info.This())) {
+ Nan::ThrowTypeError("Method Image.SetDataMode called on incompatible receiver");
+ return;
+ }
+ if (value->IsNumber()) {
+ Image *img = Nan::ObjectWrap::Unwrap<Image>(info.This());
+ int mode = Nan::To<uint32_t>(value).FromMaybe(0);
+ img->data_mode = (data_mode_t) mode;
+ }
+}
+
+/*
+ * Get natural width
+ */
+
+NAN_GETTER(Image::GetNaturalWidth) {
+ if (!Image::constructor.Get(info.GetIsolate())->HasInstance(info.This())) {
+ Nan::ThrowTypeError("Method Image.GetNaturalWidth called on incompatible receiver");
+ return;
+ }
+ Image *img = Nan::ObjectWrap::Unwrap<Image>(info.This());
+ info.GetReturnValue().Set(Nan::New<Number>(img->naturalWidth));
+}
+
+/*
+ * Get width.
+ */
+
+NAN_GETTER(Image::GetWidth) {
+ if (!Image::constructor.Get(info.GetIsolate())->HasInstance(info.This())) {
+ Nan::ThrowTypeError("Method Image.GetWidth called on incompatible receiver");
+ return;
+ }
+ Image *img = Nan::ObjectWrap::Unwrap<Image>(info.This());
+ info.GetReturnValue().Set(Nan::New<Number>(img->width));
+}
+
+/*
+ * Set width.
+ */
+
+NAN_SETTER(Image::SetWidth) {
+ if (!Image::constructor.Get(info.GetIsolate())->HasInstance(info.This())) {
+ Nan::ThrowTypeError("Method Image.SetWidth called on incompatible receiver");
+ return;
+ }
+ if (value->IsNumber()) {
+ Image *img = Nan::ObjectWrap::Unwrap<Image>(info.This());
+ img->width = Nan::To<uint32_t>(value).FromMaybe(0);
+ }
+}
+
+/*
+ * Get natural height
+ */
+
+NAN_GETTER(Image::GetNaturalHeight) {
+ if (!Image::constructor.Get(info.GetIsolate())->HasInstance(info.This())) {
+ Nan::ThrowTypeError("Method Image.GetNaturalHeight called on incompatible receiver");
+ return;
+ }
+ Image *img = Nan::ObjectWrap::Unwrap<Image>(info.This());
+ info.GetReturnValue().Set(Nan::New<Number>(img->naturalHeight));
+}
+
+/*
+ * Get height.
+ */
+
+NAN_GETTER(Image::GetHeight) {
+ if (!Image::constructor.Get(info.GetIsolate())->HasInstance(info.This())) {
+ Nan::ThrowTypeError("Method Image.GetHeight called on incompatible receiver");
+ return;
+ }
+ Image *img = Nan::ObjectWrap::Unwrap<Image>(info.This());
+ info.GetReturnValue().Set(Nan::New<Number>(img->height));
+}
+/*
+ * Set height.
+ */
+
+NAN_SETTER(Image::SetHeight) {
+ if (!Image::constructor.Get(info.GetIsolate())->HasInstance(info.This())) {
+ // #1534
+ Nan::ThrowTypeError("Method Image.SetHeight called on incompatible receiver");
+ return;
+ }
+ if (value->IsNumber()) {
+ Image *img = Nan::ObjectWrap::Unwrap<Image>(info.This());
+ img->height = Nan::To<uint32_t>(value).FromMaybe(0);
+ }
+}
+
+/*
+ * Get src path.
+ */
+
+NAN_METHOD(Image::GetSource){
+ if (!Image::constructor.Get(info.GetIsolate())->HasInstance(info.This())) {
+ // #1534
+ Nan::ThrowTypeError("Method Image.GetSource called on incompatible receiver");
+ return;
+ }
+ Image *img = Nan::ObjectWrap::Unwrap<Image>(info.This());
+ info.GetReturnValue().Set(Nan::New<String>(img->filename ? img->filename : "").ToLocalChecked());
+}
+
+/*
+ * Clean up assets and variables.
+ */
+
+void
+Image::clearData() {
+ if (_surface) {
+ cairo_surface_destroy(_surface);
+ Nan::AdjustExternalMemory(-_data_len);
+ _data_len = 0;
+ _surface = NULL;
+ }
+
+ delete[] _data;
+ _data = nullptr;
+
+ free(filename);
+ filename = NULL;
+
+#ifdef HAVE_RSVG
+ if (_rsvg != NULL) {
+ g_object_unref(_rsvg);
+ _rsvg = NULL;
+ }
+#endif
+
+ width = height = 0;
+ naturalWidth = naturalHeight = 0;
+ state = DEFAULT;
+}
+
+/*
+ * Set src path.
+ */
+
+NAN_METHOD(Image::SetSource){
+ if (!Image::constructor.Get(info.GetIsolate())->HasInstance(info.This())) {
+ // #1534
+ Nan::ThrowTypeError("Method Image.SetSource called on incompatible receiver");
+ return;
+ }
+ Image *img = Nan::ObjectWrap::Unwrap<Image>(info.This());
+ cairo_status_t status = CAIRO_STATUS_READ_ERROR;
+
+ Local<Value> value = info[0];
+
+ img->clearData();
+ // Clear errno in case some unrelated previous syscall failed
+ errno = 0;
+
+ // url string
+ if (value->IsString()) {
+ Nan::Utf8String src(value);
+ if (img->filename) free(img->filename);
+ img->filename = strdup(*src);
+ status = img->load();
+ // Buffer
+ } else if (node::Buffer::HasInstance(value)) {
+ uint8_t *buf = (uint8_t *) node::Buffer::Data(Nan::To<Object>(value).ToLocalChecked());
+ unsigned len = node::Buffer::Length(Nan::To<Object>(value).ToLocalChecked());
+ status = img->loadFromBuffer(buf, len);
+ }
+
+ if (status) {
+ Local<Value> onerrorFn = Nan::Get(info.This(), Nan::New("onerror").ToLocalChecked()).ToLocalChecked();
+ if (onerrorFn->IsFunction()) {
+ Local<Value> argv[1];
+ CanvasError errorInfo = img->errorInfo;
+ if (errorInfo.cerrno) {
+ argv[0] = Nan::ErrnoException(errorInfo.cerrno, errorInfo.syscall.c_str(), errorInfo.message.c_str(), errorInfo.path.c_str());
+ } else if (!errorInfo.message.empty()) {
+ argv[0] = Nan::Error(Nan::New(errorInfo.message).ToLocalChecked());
+ } else {
+ argv[0] = Nan::Error(Nan::New(cairo_status_to_string(status)).ToLocalChecked());
+ }
+ Local<Context> ctx = Nan::GetCurrentContext();
+ Nan::Call(onerrorFn.As<Function>(), ctx->Global(), 1, argv);
+ }
+ } else {
+ img->loaded();
+ Local<Value> onloadFn = Nan::Get(info.This(), Nan::New("onload").ToLocalChecked()).ToLocalChecked();
+ if (onloadFn->IsFunction()) {
+ Local<Context> ctx = Nan::GetCurrentContext();
+ Nan::Call(onloadFn.As<Function>(), ctx->Global(), 0, NULL);
+ }
+ }
+}
+
+/*
+ * Load image data from `buf` by sniffing
+ * the bytes to determine format.
+ */
+
+cairo_status_t
+Image::loadFromBuffer(uint8_t *buf, unsigned len) {
+ uint8_t data[4] = {0};
+ memcpy(data, buf, (len < 4 ? len : 4) * sizeof(uint8_t));
+
+ if (isPNG(data)) return loadPNGFromBuffer(buf);
+
+ if (isGIF(data)) {
+#ifdef HAVE_GIF
+ return loadGIFFromBuffer(buf, len);
+#else
+ this->errorInfo.set("node-canvas was built without GIF support");
+ return CAIRO_STATUS_READ_ERROR;
+#endif
+ }
+
+ if (isJPEG(data)) {
+#ifdef HAVE_JPEG
+ if (DATA_IMAGE == data_mode) return loadJPEGFromBuffer(buf, len);
+ if (DATA_MIME == data_mode) return decodeJPEGBufferIntoMimeSurface(buf, len);
+ if ((DATA_IMAGE | DATA_MIME) == data_mode) {
+ cairo_status_t status;
+ status = loadJPEGFromBuffer(buf, len);
+ if (status) return status;
+ return assignDataAsMime(buf, len, CAIRO_MIME_TYPE_JPEG);
+ }
+#else // HAVE_JPEG
+ this->errorInfo.set("node-canvas was built without JPEG support");
+ return CAIRO_STATUS_READ_ERROR;
+#endif
+ }
+
+ // confirm svg using first 1000 chars
+ // if a very long comment precedes the root <svg> tag, isSVG returns false
+ unsigned head_len = (len < 1000 ? len : 1000);
+ if (isSVG(buf, head_len)) {
+#ifdef HAVE_RSVG
+ return loadSVGFromBuffer(buf, len);
+#else
+ this->errorInfo.set("node-canvas was built without SVG support");
+ return CAIRO_STATUS_READ_ERROR;
+#endif
+ }
+
+ if (isBMP(buf, len))
+ return loadBMPFromBuffer(buf, len);
+
+ this->errorInfo.set("Unsupported image type");
+ return CAIRO_STATUS_READ_ERROR;
+}
+
+/*
+ * Load PNG data from `buf`.
+ */
+
+cairo_status_t
+Image::loadPNGFromBuffer(uint8_t *buf) {
+ read_closure_t closure;
+ closure.len = 0;
+ closure.buf = buf;
+ _surface = cairo_image_surface_create_from_png_stream(readPNG, &closure);
+ cairo_status_t status = cairo_surface_status(_surface);
+ if (status) return status;
+ return CAIRO_STATUS_SUCCESS;
+}
+
+/*
+ * Read PNG data.
+ */
+
+cairo_status_t
+Image::readPNG(void *c, uint8_t *data, unsigned int len) {
+ read_closure_t *closure = (read_closure_t *) c;
+ memcpy(data, closure->buf + closure->len, len);
+ closure->len += len;
+ return CAIRO_STATUS_SUCCESS;
+}
+
+/*
+ * Initialize a new Image.
+ */
+
+Image::Image() {
+ filename = NULL;
+ _data = nullptr;
+ _data_len = 0;
+ _surface = NULL;
+ width = height = 0;
+ naturalWidth = naturalHeight = 0;
+ state = DEFAULT;
+#ifdef HAVE_RSVG
+ _rsvg = NULL;
+ _is_svg = false;
+ _svg_last_width = _svg_last_height = 0;
+#endif
+}
+
+/*
+ * Destroy image and associated surface.
+ */
+
+Image::~Image() {
+ clearData();
+}
+
+/*
+ * Initiate image loading.
+ */
+
+cairo_status_t
+Image::load() {
+ if (LOADING != state) {
+ state = LOADING;
+ return loadSurface();
+ }
+ return CAIRO_STATUS_READ_ERROR;
+}
+
+/*
+ * Set state, assign dimensions.
+ */
+
+void
+Image::loaded() {
+ Nan::HandleScope scope;
+ state = COMPLETE;
+
+ width = naturalWidth = cairo_image_surface_get_width(_surface);
+ height = naturalHeight = cairo_image_surface_get_height(_surface);
+ _data_len = naturalHeight * cairo_image_surface_get_stride(_surface);
+ Nan::AdjustExternalMemory(_data_len);
+}
+
+/*
+ * Returns this image's surface.
+ */
+cairo_surface_t *Image::surface() {
+#ifdef HAVE_RSVG
+ if (_is_svg && (_svg_last_width != width || _svg_last_height != height)) {
+ if (_surface != NULL) {
+ cairo_surface_destroy(_surface);
+ _surface = NULL;
+ }
+
+ cairo_status_t status = renderSVGToSurface();
+ if (status != CAIRO_STATUS_SUCCESS) {
+ g_object_unref(_rsvg);
+ Nan::ThrowError(Canvas::Error(status));
+ return NULL;
+ }
+ }
+#endif
+ return _surface;
+}
+
+/*
+ * Load cairo surface from the image src.
+ *
+ * TODO: support more formats
+ * TODO: use node IO or at least thread pool
+ */
+
+cairo_status_t
+Image::loadSurface() {
+ FILE *stream = fopen(filename, "rb");
+ if (!stream) {
+ this->errorInfo.set(NULL, "fopen", errno, filename);
+ return CAIRO_STATUS_READ_ERROR;
+ }
+ uint8_t buf[5];
+ if (1 != fread(&buf, 5, 1, stream)) {
+ fclose(stream);
+ return CAIRO_STATUS_READ_ERROR;
+ }
+ rewind(stream);
+
+ // png
+ if (isPNG(buf)) {
+ fclose(stream);
+ return loadPNG();
+ }
+
+
+ if (isGIF(buf)) {
+#ifdef HAVE_GIF
+ return loadGIF(stream);
+#else
+ this->errorInfo.set("node-canvas was built without GIF support");
+ return CAIRO_STATUS_READ_ERROR;
+#endif
+ }
+
+ if (isJPEG(buf)) {
+#ifdef HAVE_JPEG
+ return loadJPEG(stream);
+#else
+ this->errorInfo.set("node-canvas was built without JPEG support");
+ return CAIRO_STATUS_READ_ERROR;
+#endif
+ }
+
+ // confirm svg using first 1000 chars
+ // if a very long comment precedes the root <svg> tag, isSVG returns false
+ uint8_t head[1000] = {0};
+ fseek(stream, 0 , SEEK_END);
+ long len = ftell(stream);
+ unsigned head_len = (len < 1000 ? len : 1000);
+ unsigned head_size = head_len * sizeof(uint8_t);
+ rewind(stream);
+ if (head_size != fread(&head, 1, head_size, stream)) {
+ fclose(stream);
+ return CAIRO_STATUS_READ_ERROR;
+ }
+ rewind(stream);
+ if (isSVG(head, head_len)) {
+#ifdef HAVE_RSVG
+ return loadSVG(stream);
+#else
+ this->errorInfo.set("node-canvas was built without SVG support");
+ return CAIRO_STATUS_READ_ERROR;
+#endif
+ }
+
+ if (isBMP(buf, 2))
+ return loadBMP(stream);
+
+ fclose(stream);
+
+ this->errorInfo.set("Unsupported image type");
+ return CAIRO_STATUS_READ_ERROR;
+}
+
+/*
+ * Load PNG.
+ */
+
+cairo_status_t
+Image::loadPNG() {
+ _surface = cairo_image_surface_create_from_png(filename);
+ return cairo_surface_status(_surface);
+}
+
+// GIF support
+
+#ifdef HAVE_GIF
+
+/*
+ * Return the alpha color for `gif` at `frame`, or -1.
+ */
+
+int
+get_gif_transparent_color(GifFileType *gif, int frame) {
+ ExtensionBlock *ext = gif->SavedImages[frame].ExtensionBlocks;
+ int len = gif->SavedImages[frame].ExtensionBlockCount;
+ for (int x = 0; x < len; ++x, ++ext) {
+ if ((ext->Function == GRAPHICS_EXT_FUNC_CODE) && (ext->Bytes[0] & 1)) {
+ return ext->Bytes[3] == 0 ? 0 : (uint8_t) ext->Bytes[3];
+ }
+ }
+ return -1;
+}
+
+/*
+ * Memory GIF reader callback.
+ */
+
+int
+read_gif_from_memory(GifFileType *gif, GifByteType *buf, int len) {
+ gif_data_t *data = (gif_data_t *) gif->UserData;
+ if ((data->pos + len) > data->len) len = data->len - data->pos;
+ memcpy(buf, data->pos + data->buf, len);
+ data->pos += len;
+ return len;
+}
+
+/*
+ * Load GIF.
+ */
+
+cairo_status_t
+Image::loadGIF(FILE *stream) {
+ struct stat s;
+ int fd = fileno(stream);
+
+ // stat
+ if (fstat(fd, &s) < 0) {
+ fclose(stream);
+ return CAIRO_STATUS_READ_ERROR;
+ }
+
+ uint8_t *buf = (uint8_t *) malloc(s.st_size);
+
+ if (!buf) {
+ fclose(stream);
+ this->errorInfo.set(NULL, "malloc", errno);
+ return CAIRO_STATUS_NO_MEMORY;
+ }
+
+ size_t read = fread(buf, s.st_size, 1, stream);
+ fclose(stream);
+
+ cairo_status_t result = CAIRO_STATUS_READ_ERROR;
+ if (1 == read) result = loadGIFFromBuffer(buf, s.st_size);
+ free(buf);
+
+ return result;
+}
+
+/*
+ * Load give from `buf` and the given `len`.
+ */
+
+cairo_status_t
+Image::loadGIFFromBuffer(uint8_t *buf, unsigned len) {
+ int i = 0;
+ GifFileType* gif;
+
+ gif_data_t gifd = { buf, len, 0 };
+
+#if GIFLIB_MAJOR >= 5
+ int errorcode;
+ if ((gif = DGifOpen((void*) &gifd, read_gif_from_memory, &errorcode)) == NULL)
+ return CAIRO_STATUS_READ_ERROR;
+#else
+ if ((gif = DGifOpen((void*) &gifd, read_gif_from_memory)) == NULL)
+ return CAIRO_STATUS_READ_ERROR;
+#endif
+
+ if (GIF_OK != DGifSlurp(gif)) {
+ GIF_CLOSE_FILE(gif);
+ return CAIRO_STATUS_READ_ERROR;
+ }
+
+ if (gif->SWidth > canvas_max_side || gif->SHeight > canvas_max_side) {
+ GIF_CLOSE_FILE(gif);
+ return CAIRO_STATUS_INVALID_SIZE;
+ }
+
+ width = naturalWidth = gif->SWidth;
+ height = naturalHeight = gif->SHeight;
+
+ uint8_t *data = new uint8_t[naturalWidth * naturalHeight * 4];
+ if (!data) {
+ GIF_CLOSE_FILE(gif);
+ this->errorInfo.set(NULL, "malloc", errno);
+ return CAIRO_STATUS_NO_MEMORY;
+ }
+
+ GifImageDesc *img = &gif->SavedImages[i].ImageDesc;
+
+ // local colormap takes precedence over global
+ ColorMapObject *colormap = img->ColorMap
+ ? img->ColorMap
+ : gif->SColorMap;
+
+ if (colormap == nullptr) {
+ GIF_CLOSE_FILE(gif);
+ return CAIRO_STATUS_READ_ERROR;
+ }
+
+ int bgColor = 0;
+ int alphaColor = get_gif_transparent_color(gif, i);
+ if (gif->SColorMap) bgColor = (uint8_t) gif->SBackGroundColor;
+ else if(alphaColor >= 0) bgColor = alphaColor;
+
+ uint8_t *src_data = (uint8_t*) gif->SavedImages[i].RasterBits;
+ uint32_t *dst_data = (uint32_t*) data;
+
+ if (!gif->Image.Interlace) {
+ if (naturalWidth == img->Width && naturalHeight == img->Height) {
+ for (int y = 0; y < naturalHeight; ++y) {
+ for (int x = 0; x < naturalWidth; ++x) {
+ *dst_data = ((*src_data == alphaColor) ? 0 : 255) << 24
+ | colormap->Colors[*src_data].Red << 16
+ | colormap->Colors[*src_data].Green << 8
+ | colormap->Colors[*src_data].Blue;
+
+ dst_data++;
+ src_data++;
+ }
+ }
+ } else {
+ // Image does not take up whole "screen" so we need to fill-in the background
+ int bottom = img->Top + img->Height;
+ int right = img->Left + img->Width;
+
+ uint32_t bgPixel =
+ ((bgColor == alphaColor) ? 0 : 255) << 24
+ | colormap->Colors[bgColor].Red << 16
+ | colormap->Colors[bgColor].Green << 8
+ | colormap->Colors[bgColor].Blue;
+
+ for (int y = 0; y < naturalHeight; ++y) {
+ for (int x = 0; x < naturalWidth; ++x) {
+ if (y < img->Top || y >= bottom || x < img->Left || x >= right) {
+ *dst_data = bgPixel;
+ dst_data++;
+ } else {
+ *dst_data = ((*src_data == alphaColor) ? 0 : 255) << 24
+ | colormap->Colors[*src_data].Red << 16
+ | colormap->Colors[*src_data].Green << 8
+ | colormap->Colors[*src_data].Blue;
+ dst_data++;
+ src_data++;
+ }
+ }
+ }
+ }
+ } else {
+ // Image is interlaced so that it streams nice over 14.4k and 28.8k modems :)
+ // We first load in 1/8 of the image, followed by another 1/8, followed by
+ // 1/4 and finally the remaining 1/2.
+ int ioffs[] = { 0, 4, 2, 1 };
+ int ijumps[] = { 8, 8, 4, 2 };
+
+ uint8_t *src_ptr = src_data;
+ uint32_t *dst_ptr;
+
+ for(int z = 0; z < 4; z++) {
+ for(int y = ioffs[z]; y < naturalHeight; y += ijumps[z]) {
+ dst_ptr = dst_data + naturalWidth * y;
+ for(int x = 0; x < naturalWidth; ++x) {
+ *dst_ptr = ((*src_ptr == alphaColor) ? 0 : 255) << 24
+ | (colormap->Colors[*src_ptr].Red) << 16
+ | (colormap->Colors[*src_ptr].Green) << 8
+ | (colormap->Colors[*src_ptr].Blue);
+
+ dst_ptr++;
+ src_ptr++;
+ }
+ }
+ }
+ }
+
+ GIF_CLOSE_FILE(gif);
+
+ // New image surface
+ _surface = cairo_image_surface_create_for_data(
+ data
+ , CAIRO_FORMAT_ARGB32
+ , naturalWidth
+ , naturalHeight
+ , cairo_format_stride_for_width(CAIRO_FORMAT_ARGB32, naturalWidth));
+
+ cairo_status_t status = cairo_surface_status(_surface);
+
+ if (status) {
+ delete[] data;
+ return status;
+ }
+
+ _data = data;
+
+ return CAIRO_STATUS_SUCCESS;
+}
+#endif /* HAVE_GIF */
+
+// JPEG support
+
+#ifdef HAVE_JPEG
+
+// libjpeg 6.2 does not have jpeg_mem_src; define it ourselves here unless
+// libjpeg 8 is installed.
+#if JPEG_LIB_VERSION < 80 && !defined(MEM_SRCDST_SUPPORTED)
+
+/* Read JPEG image from a memory segment */
+static void
+init_source(j_decompress_ptr cinfo) {}
+
+static boolean
+fill_input_buffer(j_decompress_ptr cinfo) {
+ ERREXIT(cinfo, JERR_INPUT_EMPTY);
+ return TRUE;
+}
+static void
+skip_input_data(j_decompress_ptr cinfo, long num_bytes) {
+ struct jpeg_source_mgr* src = (struct jpeg_source_mgr*) cinfo->src;
+ if (num_bytes > 0) {
+ src->next_input_byte += (size_t) num_bytes;
+ src->bytes_in_buffer -= (size_t) num_bytes;
+ }
+}
+
+static void term_source (j_decompress_ptr cinfo) {}
+static void jpeg_mem_src (j_decompress_ptr cinfo, void* buffer, long nbytes) {
+ struct jpeg_source_mgr* src;
+
+ if (cinfo->src == NULL) {
+ cinfo->src = (struct jpeg_source_mgr *)
+ (*cinfo->mem->alloc_small) ((j_common_ptr) cinfo, JPOOL_PERMANENT,
+ sizeof(struct jpeg_source_mgr));
+ }
+
+ src = (struct jpeg_source_mgr*) cinfo->src;
+ src->init_source = init_source;
+ src->fill_input_buffer = fill_input_buffer;
+ src->skip_input_data = skip_input_data;
+ src->resync_to_restart = jpeg_resync_to_restart; /* use default method */
+ src->term_source = term_source;
+ src->bytes_in_buffer = nbytes;
+ src->next_input_byte = (JOCTET*)buffer;
+}
+
+#endif
+
+void Image::jpegToARGB(jpeg_decompress_struct* args, uint8_t* data, uint8_t* src, JPEGDecodeL decode) {
+ int stride = naturalWidth * 4;
+ for (int y = 0; y < naturalHeight; ++y) {
+ jpeg_read_scanlines(args, &src, 1);
+ uint32_t *row = (uint32_t*)(data + stride * y);
+ for (int x = 0; x < naturalWidth; ++x) {
+ int bx = args->output_components * x;
+ row[x] = decode(src + bx);
+ }
+ }
+}
+
+/*
+ * Takes an initialised jpeg_decompress_struct and decodes the
+ * data into _surface.
+ */
+
+cairo_status_t
+Image::decodeJPEGIntoSurface(jpeg_decompress_struct *args) {
+ cairo_status_t status = CAIRO_STATUS_SUCCESS;
+
+ uint8_t *data = new uint8_t[naturalWidth * naturalHeight * 4];
+ if (!data) {
+ jpeg_abort_decompress(args);
+ jpeg_destroy_decompress(args);
+ this->errorInfo.set(NULL, "malloc", errno);
+ return CAIRO_STATUS_NO_MEMORY;
+ }
+
+ uint8_t *src = new uint8_t[naturalWidth * args->output_components];
+ if (!src) {
+ free(data);
+ jpeg_abort_decompress(args);
+ jpeg_destroy_decompress(args);
+ this->errorInfo.set(NULL, "malloc", errno);
+ return CAIRO_STATUS_NO_MEMORY;
+ }
+
+ // These are the three main cases to handle. libjpeg converts YCCK to CMYK
+ // and YCbCr to RGB by default.
+ switch (args->out_color_space) {
+ case JCS_CMYK:
+ jpegToARGB(args, data, src, [](uint8_t const* src) {
+ uint16_t k = static_cast<uint16_t>(src[3]);
+ uint8_t r = k * src[0] / 255;
+ uint8_t g = k * src[1] / 255;
+ uint8_t b = k * src[2] / 255;
+ return 255 << 24 | r << 16 | g << 8 | b;
+ });
+ break;
+ case JCS_RGB:
+ jpegToARGB(args, data, src, [](uint8_t const* src) {
+ uint8_t r = src[0], g = src[1], b = src[2];
+ return 255 << 24 | r << 16 | g << 8 | b;
+ });
+ break;
+ case JCS_GRAYSCALE:
+ jpegToARGB(args, data, src, [](uint8_t const* src) {
+ uint8_t v = src[0];
+ return 255 << 24 | v << 16 | v << 8 | v;
+ });
+ break;
+ default:
+ this->errorInfo.set("Unsupported JPEG encoding");
+ status = CAIRO_STATUS_READ_ERROR;
+ break;
+ }
+
+ if (!status) {
+ _surface = cairo_image_surface_create_for_data(
+ data
+ , CAIRO_FORMAT_ARGB32
+ , naturalWidth
+ , naturalHeight
+ , cairo_format_stride_for_width(CAIRO_FORMAT_ARGB32, naturalWidth));
+ }
+
+ jpeg_finish_decompress(args);
+ jpeg_destroy_decompress(args);
+ status = cairo_surface_status(_surface);
+
+ delete[] src;
+
+ if (status) {
+ delete[] data;
+ return status;
+ }
+
+ _data = data;
+
+ return CAIRO_STATUS_SUCCESS;
+}
+
+/*
+ * Callback to recover from jpeg errors
+ */
+
+static void canvas_jpeg_error_exit(j_common_ptr cinfo) {
+ canvas_jpeg_error_mgr *cjerr = static_cast<canvas_jpeg_error_mgr*>(cinfo->err);
+ cjerr->output_message(cinfo);
+ // Return control to the setjmp point
+ longjmp(cjerr->setjmp_buffer, 1);
+}
+
+// Capture libjpeg errors instead of writing stdout
+static void canvas_jpeg_output_message(j_common_ptr cinfo) {
+ canvas_jpeg_error_mgr *cjerr = static_cast<canvas_jpeg_error_mgr*>(cinfo->err);
+ char buff[JMSG_LENGTH_MAX];
+ cjerr->format_message(cinfo, buff);
+ // (Only the last message will be returned to JS land.)
+ cjerr->image->errorInfo.set(buff);
+}
+
+/*
+ * Takes a jpeg data buffer and assigns it as mime data to a
+ * dummy surface
+ */
+
+cairo_status_t
+Image::decodeJPEGBufferIntoMimeSurface(uint8_t *buf, unsigned len) {
+ // TODO: remove this duplicate logic
+ // JPEG setup
+ struct jpeg_decompress_struct args;
+ struct canvas_jpeg_error_mgr err;
+
+ err.image = this;
+ args.err = jpeg_std_error(&err);
+ args.err->error_exit = canvas_jpeg_error_exit;
+ args.err->output_message = canvas_jpeg_output_message;
+
+ // Establish the setjmp return context for canvas_jpeg_error_exit to use
+ if (setjmp(err.setjmp_buffer)) {
+ // If we get here, the JPEG code has signaled an error.
+ // We need to clean up the JPEG object, close the input file, and return.
+ jpeg_destroy_decompress(&args);
+ return CAIRO_STATUS_READ_ERROR;
+ }
+
+ jpeg_create_decompress(&args);
+
+ jpeg_mem_src(&args, buf, len);
+
+ jpeg_read_header(&args, 1);
+ jpeg_start_decompress(&args);
+ width = naturalWidth = args.output_width;
+ height = naturalHeight = args.output_height;
+
+ // Data alloc
+ // 8 pixels per byte using Alpha Channel format to reduce memory requirement.
+ int buf_size = naturalHeight * cairo_format_stride_for_width(CAIRO_FORMAT_A1, naturalWidth);
+ uint8_t *data = new uint8_t[buf_size];
+ if (!data) {
+ this->errorInfo.set(NULL, "malloc", errno);
+ return CAIRO_STATUS_NO_MEMORY;
+ }
+
+ // New image surface
+ _surface = cairo_image_surface_create_for_data(
+ data
+ , CAIRO_FORMAT_A1
+ , naturalWidth
+ , naturalHeight
+ , cairo_format_stride_for_width(CAIRO_FORMAT_A1, naturalWidth));
+
+ // Cleanup
+ jpeg_abort_decompress(&args);
+ jpeg_destroy_decompress(&args);
+ cairo_status_t status = cairo_surface_status(_surface);
+
+ if (status) {
+ delete[] data;
+ return status;
+ }
+
+ _data = data;
+
+ return assignDataAsMime(buf, len, CAIRO_MIME_TYPE_JPEG);
+}
+
+/*
+ * Helper function for disposing of a mime data closure.
+ */
+
+void
+clearMimeData(void *closure) {
+ Nan::AdjustExternalMemory(
+ -static_cast<int>((static_cast<read_closure_t *>(closure)->len)));
+ free(static_cast<read_closure_t *>(closure)->buf);
+ free(closure);
+}
+
+/*
+ * Assign a given buffer as mime data against the surface.
+ * The provided buffer will be copied, and the copy will
+ * be automatically freed when the surface is destroyed.
+ */
+
+cairo_status_t
+Image::assignDataAsMime(uint8_t *data, int len, const char *mime_type) {
+ uint8_t *mime_data = (uint8_t *) malloc(len);
+ if (!mime_data) {
+ this->errorInfo.set(NULL, "malloc", errno);
+ return CAIRO_STATUS_NO_MEMORY;
+ }
+
+ read_closure_t *mime_closure = (read_closure_t *) malloc(sizeof(read_closure_t));
+ if (!mime_closure) {
+ free(mime_data);
+ this->errorInfo.set(NULL, "malloc", errno);
+ return CAIRO_STATUS_NO_MEMORY;
+ }
+
+ memcpy(mime_data, data, len);
+
+ mime_closure->buf = mime_data;
+ mime_closure->len = len;
+
+ Nan::AdjustExternalMemory(len);
+
+ return cairo_surface_set_mime_data(_surface
+ , mime_type
+ , mime_data
+ , len
+ , clearMimeData
+ , mime_closure);
+}
+
+/*
+ * Load jpeg from buffer.
+ */
+
+cairo_status_t
+Image::loadJPEGFromBuffer(uint8_t *buf, unsigned len) {
+ // TODO: remove this duplicate logic
+ // JPEG setup
+ struct jpeg_decompress_struct args;
+ struct canvas_jpeg_error_mgr err;
+
+ err.image = this;
+ args.err = jpeg_std_error(&err);
+ args.err->error_exit = canvas_jpeg_error_exit;
+ args.err->output_message = canvas_jpeg_output_message;
+
+ // Establish the setjmp return context for canvas_jpeg_error_exit to use
+ if (setjmp(err.setjmp_buffer)) {
+ // If we get here, the JPEG code has signaled an error.
+ // We need to clean up the JPEG object, close the input file, and return.
+ jpeg_destroy_decompress(&args);
+ return CAIRO_STATUS_READ_ERROR;
+ }
+
+ jpeg_create_decompress(&args);
+
+ jpeg_mem_src(&args, buf, len);
+
+ jpeg_read_header(&args, 1);
+ jpeg_start_decompress(&args);
+ width = naturalWidth = args.output_width;
+ height = naturalHeight = args.output_height;
+
+ return decodeJPEGIntoSurface(&args);
+}
+
+/*
+ * Load JPEG, convert RGB to ARGB.
+ */
+
+cairo_status_t
+Image::loadJPEG(FILE *stream) {
+ cairo_status_t status;
+
+#if defined(_MSC_VER)
+ if (false) { // Force using loadJPEGFromBuffer
+#else
+ if (data_mode == DATA_IMAGE) { // Can lazily read in the JPEG.
+#endif
+ // JPEG setup
+ struct jpeg_decompress_struct args;
+ struct canvas_jpeg_error_mgr err;
+
+ err.image = this;
+ args.err = jpeg_std_error(&err);
+ args.err->error_exit = canvas_jpeg_error_exit;
+ args.err->output_message = canvas_jpeg_output_message;
+
+ // Establish the setjmp return context for canvas_jpeg_error_exit to use
+ if (setjmp(err.setjmp_buffer)) {
+ // If we get here, the JPEG code has signaled an error.
+ // We need to clean up the JPEG object, close the input file, and return.
+ jpeg_destroy_decompress(&args);
+ return CAIRO_STATUS_READ_ERROR;
+ }
+
+ jpeg_create_decompress(&args);
+
+ jpeg_stdio_src(&args, stream);
+
+ jpeg_read_header(&args, 1);
+ jpeg_start_decompress(&args);
+
+ if (args.output_width > canvas_max_side || args.output_height > canvas_max_side) {
+ jpeg_destroy_decompress(&args);
+ return CAIRO_STATUS_INVALID_SIZE;
+ }
+
+ width = naturalWidth = args.output_width;
+ height = naturalHeight = args.output_height;
+
+ status = decodeJPEGIntoSurface(&args);
+ fclose(stream);
+ } else { // We'll need the actual source jpeg data, so read fully.
+ uint8_t *buf;
+ unsigned len;
+
+ fseek(stream, 0, SEEK_END);
+ len = ftell(stream);
+ fseek(stream, 0, SEEK_SET);
+
+ buf = (uint8_t *) malloc(len);
+ if (!buf) {
+ this->errorInfo.set(NULL, "malloc", errno);
+ return CAIRO_STATUS_NO_MEMORY;
+ }
+
+ if (fread(buf, len, 1, stream) != 1) {
+ status = CAIRO_STATUS_READ_ERROR;
+ } else if ((DATA_IMAGE | DATA_MIME) == data_mode) {
+ status = loadJPEGFromBuffer(buf, len);
+ if (!status) status = assignDataAsMime(buf, len, CAIRO_MIME_TYPE_JPEG);
+ } else if (DATA_MIME == data_mode) {
+ status = decodeJPEGBufferIntoMimeSurface(buf, len);
+ }
+#if defined(_MSC_VER)
+ else if (DATA_IMAGE == data_mode) {
+ status = loadJPEGFromBuffer(buf, len);
+ }
+#endif
+ else {
+ status = CAIRO_STATUS_READ_ERROR;
+ }
+
+ fclose(stream);
+ free(buf);
+ }
+
+ return status;
+}
+
+#endif /* HAVE_JPEG */
+
+#ifdef HAVE_RSVG
+
+/*
+ * Load SVG from buffer
+ */
+
+cairo_status_t
+Image::loadSVGFromBuffer(uint8_t *buf, unsigned len) {
+ _is_svg = true;
+
+ cairo_status_t status;
+ GError *gerr = NULL;
+
+ if (NULL == (_rsvg = rsvg_handle_new_from_data(buf, len, &gerr))) {
+ return CAIRO_STATUS_READ_ERROR;
+ }
+
+ RsvgDimensionData *dims = new RsvgDimensionData();
+ rsvg_handle_get_dimensions(_rsvg, dims);
+
+ width = naturalWidth = dims->width;
+ height = naturalHeight = dims->height;
+
+ status = renderSVGToSurface();
+ if (status != CAIRO_STATUS_SUCCESS) {
+ g_object_unref(_rsvg);
+ return status;
+ }
+
+ return CAIRO_STATUS_SUCCESS;
+}
+
+/*
+ * Renders the Rsvg handle to this image's surface
+ */
+cairo_status_t
+Image::renderSVGToSurface() {
+ cairo_status_t status;
+
+ _surface = cairo_image_surface_create(CAIRO_FORMAT_ARGB32, width, height);
+
+ status = cairo_surface_status(_surface);
+ if (status != CAIRO_STATUS_SUCCESS) {
+ g_object_unref(_rsvg);
+ return status;
+ }
+
+ cairo_t *cr = cairo_create(_surface);
+ cairo_scale(cr,
+ (double)width / (double)naturalWidth,
+ (double)height / (double)naturalHeight);
+ status = cairo_status(cr);
+ if (status != CAIRO_STATUS_SUCCESS) {
+ g_object_unref(_rsvg);
+ return status;
+ }
+
+ gboolean render_ok = rsvg_handle_render_cairo(_rsvg, cr);
+ if (!render_ok) {
+ g_object_unref(_rsvg);
+ cairo_destroy(cr);
+ return CAIRO_STATUS_READ_ERROR; // or WRITE?
+ }
+
+ cairo_destroy(cr);
+
+ _svg_last_width = width;
+ _svg_last_height = height;
+
+ return status;
+}
+
+/*
+ * Load SVG
+ */
+
+cairo_status_t
+Image::loadSVG(FILE *stream) {
+ _is_svg = true;
+
+ struct stat s;
+ int fd = fileno(stream);
+
+ // stat
+ if (fstat(fd, &s) < 0) {
+ fclose(stream);
+ return CAIRO_STATUS_READ_ERROR;
+ }
+
+ uint8_t *buf = (uint8_t *) malloc(s.st_size);
+
+ if (!buf) {
+ fclose(stream);
+ return CAIRO_STATUS_NO_MEMORY;
+ }
+
+ size_t read = fread(buf, s.st_size, 1, stream);
+ fclose(stream);
+
+ cairo_status_t result = CAIRO_STATUS_READ_ERROR;
+ if (1 == read) result = loadSVGFromBuffer(buf, s.st_size);
+ free(buf);
+
+ return result;
+}
+
+#endif /* HAVE_RSVG */
+
+/*
+ * Load BMP from buffer.
+ */
+
+cairo_status_t Image::loadBMPFromBuffer(uint8_t *buf, unsigned len){
+ BMPParser::Parser parser;
+
+ // Reversed ARGB32 with pre-multiplied alpha
+ uint8_t pixFmt[5] = {2, 1, 0, 3, 1};
+ parser.parse(buf, len, pixFmt);
+
+ if (parser.getStatus() != BMPParser::Status::OK) {
+ errorInfo.reset();
+ errorInfo.message = parser.getErrMsg();
+ return CAIRO_STATUS_READ_ERROR;
+ }
+
+ width = naturalWidth = parser.getWidth();
+ height = naturalHeight = parser.getHeight();
+ uint8_t *data = parser.getImgd();
+
+ _surface = cairo_image_surface_create_for_data(
+ data,
+ CAIRO_FORMAT_ARGB32,
+ width,
+ height,
+ cairo_format_stride_for_width(CAIRO_FORMAT_ARGB32, width)
+ );
+
+ // No need to delete the data
+ cairo_status_t status = cairo_surface_status(_surface);
+ if (status) return status;
+
+ _data = data;
+ parser.clearImgd();
+
+ return CAIRO_STATUS_SUCCESS;
+}
+
+/*
+ * Load BMP.
+ */
+
+cairo_status_t Image::loadBMP(FILE *stream){
+ struct stat s;
+ int fd = fileno(stream);
+
+ // Stat
+ if (fstat(fd, &s) < 0) {
+ fclose(stream);
+ return CAIRO_STATUS_READ_ERROR;
+ }
+
+ uint8_t *buf = new uint8_t[s.st_size];
+
+ if (!buf) {
+ fclose(stream);
+ errorInfo.set(NULL, "malloc", errno);
+ return CAIRO_STATUS_NO_MEMORY;
+ }
+
+ size_t read = fread(buf, s.st_size, 1, stream);
+ fclose(stream);
+
+ cairo_status_t result = CAIRO_STATUS_READ_ERROR;
+ if (read == 1) result = loadBMPFromBuffer(buf, s.st_size);
+ delete[] buf;
+
+ return result;
+}
+
+/*
+ * Return UNKNOWN, SVG, GIF, JPEG, or PNG based on the filename.
+ */
+
+Image::type
+Image::extension(const char *filename) {
+ size_t len = strlen(filename);
+ filename += len;
+ if (len >= 5 && 0 == strcmp(".jpeg", filename - 5)) return Image::JPEG;
+ if (len >= 4 && 0 == strcmp(".gif", filename - 4)) return Image::GIF;
+ if (len >= 4 && 0 == strcmp(".jpg", filename - 4)) return Image::JPEG;
+ if (len >= 4 && 0 == strcmp(".png", filename - 4)) return Image::PNG;
+ if (len >= 4 && 0 == strcmp(".svg", filename - 4)) return Image::SVG;
+ return Image::UNKNOWN;
+}
+
+/*
+ * Sniff bytes 0..1 for JPEG's magic number ff d8.
+ */
+
+int
+Image::isJPEG(uint8_t *data) {
+ return 0xff == data[0] && 0xd8 == data[1];
+}
+
+/*
+ * Sniff bytes 0..2 for "GIF".
+ */
+
+int
+Image::isGIF(uint8_t *data) {
+ return 'G' == data[0] && 'I' == data[1] && 'F' == data[2];
+}
+
+/*
+ * Sniff bytes 1..3 for "PNG".
+ */
+
+int
+Image::isPNG(uint8_t *data) {
+ return 'P' == data[1] && 'N' == data[2] && 'G' == data[3];
+}
+
+/*
+ * Skip "<?" and "<!" tags to test if root tag starts "<svg"
+ */
+int
+Image::isSVG(uint8_t *data, unsigned len) {
+ for (unsigned i = 3; i < len; i++) {
+ if ('<' == data[i-3]) {
+ switch (data[i-2]) {
+ case '?':
+ case '!':
+ break;
+ case 's':
+ return ('v' == data[i-1] && 'g' == data[i]);
+ default:
+ return false;
+ }
+ }
+ }
+ return false;
+}
+
+/*
+ * Check for valid BMP signatures
+ */
+
+int Image::isBMP(uint8_t *data, unsigned len) {
+ if(len < 2) return false;
+ std::string sig = std::string(1, (char)data[0]) + (char)data[1];
+ return sig == "BM" ||
+ sig == "BA" ||
+ sig == "CI" ||
+ sig == "CP" ||
+ sig == "IC" ||
+ sig == "PT";
+}
diff --git a/node_modules/canvas/src/Image.h b/node_modules/canvas/src/Image.h
new file mode 100644
index 0000000..62bc3f1
--- /dev/null
+++ b/node_modules/canvas/src/Image.h
@@ -0,0 +1,127 @@
+// Copyright (c) 2010 LearnBoost <tj@learnboost.com>
+
+#pragma once
+
+#include <cairo.h>
+#include "CanvasError.h"
+#include <functional>
+#include <nan.h>
+#include <stdint.h> // node < 7 uses libstdc++ on macOS which lacks complete c++11
+#include <v8.h>
+
+#ifdef HAVE_JPEG
+#include <jpeglib.h>
+#include <jerror.h>
+#endif
+
+#ifdef HAVE_GIF
+#include <gif_lib.h>
+
+ #if GIFLIB_MAJOR > 5 || GIFLIB_MAJOR == 5 && GIFLIB_MINOR >= 1
+ #define GIF_CLOSE_FILE(gif) DGifCloseFile(gif, NULL)
+ #else
+ #define GIF_CLOSE_FILE(gif) DGifCloseFile(gif)
+ #endif
+#endif
+
+#ifdef HAVE_RSVG
+#include <librsvg/rsvg.h>
+ // librsvg <= 2.36.1, identified by undefined macro, needs an extra include
+ #ifndef LIBRSVG_CHECK_VERSION
+ #include <librsvg/rsvg-cairo.h>
+ #endif
+#endif
+
+using JPEGDecodeL = std::function<uint32_t (uint8_t* const src)>;
+
+class Image: public Nan::ObjectWrap {
+ public:
+ char *filename;
+ int width, height;
+ int naturalWidth, naturalHeight;
+ static Nan::Persistent<v8::FunctionTemplate> constructor;
+ static void Initialize(Nan::ADDON_REGISTER_FUNCTION_ARGS_TYPE target);
+ static NAN_METHOD(New);
+ static NAN_GETTER(GetComplete);
+ static NAN_GETTER(GetWidth);
+ static NAN_GETTER(GetHeight);
+ static NAN_GETTER(GetNaturalWidth);
+ static NAN_GETTER(GetNaturalHeight);
+ static NAN_GETTER(GetDataMode);
+ static NAN_SETTER(SetDataMode);
+ static NAN_SETTER(SetWidth);
+ static NAN_SETTER(SetHeight);
+ static NAN_METHOD(GetSource);
+ static NAN_METHOD(SetSource);
+ inline uint8_t *data(){ return cairo_image_surface_get_data(_surface); }
+ inline int stride(){ return cairo_image_surface_get_stride(_surface); }
+ static int isPNG(uint8_t *data);
+ static int isJPEG(uint8_t *data);
+ static int isGIF(uint8_t *data);
+ static int isSVG(uint8_t *data, unsigned len);
+ static int isBMP(uint8_t *data, unsigned len);
+ static cairo_status_t readPNG(void *closure, unsigned char *data, unsigned len);
+ inline int isComplete(){ return COMPLETE == state; }
+ cairo_surface_t *surface();
+ cairo_status_t loadSurface();
+ cairo_status_t loadFromBuffer(uint8_t *buf, unsigned len);
+ cairo_status_t loadPNGFromBuffer(uint8_t *buf);
+ cairo_status_t loadPNG();
+ void clearData();
+#ifdef HAVE_RSVG
+ cairo_status_t loadSVGFromBuffer(uint8_t *buf, unsigned len);
+ cairo_status_t loadSVG(FILE *stream);
+ cairo_status_t renderSVGToSurface();
+#endif
+#ifdef HAVE_GIF
+ cairo_status_t loadGIFFromBuffer(uint8_t *buf, unsigned len);
+ cairo_status_t loadGIF(FILE *stream);
+#endif
+#ifdef HAVE_JPEG
+ cairo_status_t loadJPEGFromBuffer(uint8_t *buf, unsigned len);
+ cairo_status_t loadJPEG(FILE *stream);
+ void jpegToARGB(jpeg_decompress_struct* args, uint8_t* data, uint8_t* src, JPEGDecodeL decode);
+ cairo_status_t decodeJPEGIntoSurface(jpeg_decompress_struct *info);
+ cairo_status_t decodeJPEGBufferIntoMimeSurface(uint8_t *buf, unsigned len);
+ cairo_status_t assignDataAsMime(uint8_t *data, int len, const char *mime_type);
+#endif
+ cairo_status_t loadBMPFromBuffer(uint8_t *buf, unsigned len);
+ cairo_status_t loadBMP(FILE *stream);
+ CanvasError errorInfo;
+ void loaded();
+ cairo_status_t load();
+ Image();
+
+ enum {
+ DEFAULT
+ , LOADING
+ , COMPLETE
+ } state;
+
+ enum data_mode_t {
+ DATA_IMAGE = 1
+ , DATA_MIME = 2
+ } data_mode;
+
+ typedef enum {
+ UNKNOWN
+ , GIF
+ , JPEG
+ , PNG
+ , SVG
+ } type;
+
+ static type extension(const char *filename);
+
+ private:
+ cairo_surface_t *_surface;
+ uint8_t *_data = nullptr;
+ int _data_len;
+#ifdef HAVE_RSVG
+ RsvgHandle *_rsvg;
+ bool _is_svg;
+ int _svg_last_width;
+ int _svg_last_height;
+#endif
+ ~Image();
+};
diff --git a/node_modules/canvas/src/ImageData.cc b/node_modules/canvas/src/ImageData.cc
new file mode 100644
index 0000000..03da2e2
--- /dev/null
+++ b/node_modules/canvas/src/ImageData.cc
@@ -0,0 +1,146 @@
+// Copyright (c) 2010 LearnBoost <tj@learnboost.com>
+
+#include "ImageData.h"
+
+using namespace v8;
+
+Nan::Persistent<FunctionTemplate> ImageData::constructor;
+
+/*
+ * Initialize ImageData.
+ */
+
+void
+ImageData::Initialize(Nan::ADDON_REGISTER_FUNCTION_ARGS_TYPE target) {
+ Nan::HandleScope scope;
+
+ // Constructor
+ Local<FunctionTemplate> ctor = Nan::New<FunctionTemplate>(ImageData::New);
+ constructor.Reset(ctor);
+ ctor->InstanceTemplate()->SetInternalFieldCount(1);
+ ctor->SetClassName(Nan::New("ImageData").ToLocalChecked());
+
+ // Prototype
+ Local<ObjectTemplate> proto = ctor->PrototypeTemplate();
+ Nan::SetAccessor(proto, Nan::New("width").ToLocalChecked(), GetWidth);
+ Nan::SetAccessor(proto, Nan::New("height").ToLocalChecked(), GetHeight);
+ Local<Context> ctx = Nan::GetCurrentContext();
+ Nan::Set(target, Nan::New("ImageData").ToLocalChecked(), ctor->GetFunction(ctx).ToLocalChecked());
+}
+
+/*
+ * Initialize a new ImageData object.
+ */
+
+NAN_METHOD(ImageData::New) {
+ if (!info.IsConstructCall()) {
+ return Nan::ThrowTypeError("Class constructors cannot be invoked without 'new'");
+ }
+
+ Local<TypedArray> dataArray;
+ uint32_t width;
+ uint32_t height;
+ int length;
+
+ if (info[0]->IsUint32() && info[1]->IsUint32()) {
+ width = Nan::To<uint32_t>(info[0]).FromMaybe(0);
+ if (width == 0) {
+ Nan::ThrowRangeError("The source width is zero.");
+ return;
+ }
+ height = Nan::To<uint32_t>(info[1]).FromMaybe(0);
+ if (height == 0) {
+ Nan::ThrowRangeError("The source height is zero.");
+ return;
+ }
+ length = width * height * 4; // ImageData(w, h) constructor assumes 4 BPP; documented.
+
+ dataArray = Uint8ClampedArray::New(ArrayBuffer::New(Isolate::GetCurrent(), length), 0, length);
+
+ } else if (info[0]->IsUint8ClampedArray() && info[1]->IsUint32()) {
+ dataArray = info[0].As<Uint8ClampedArray>();
+
+ length = dataArray->Length();
+ if (length == 0) {
+ Nan::ThrowRangeError("The input data has a zero byte length.");
+ return;
+ }
+
+ // Don't assert that the ImageData length is a multiple of four because some
+ // data formats are not 4 BPP.
+
+ width = Nan::To<uint32_t>(info[1]).FromMaybe(0);
+ if (width == 0) {
+ Nan::ThrowRangeError("The source width is zero.");
+ return;
+ }
+
+ // Don't assert that the byte length is a multiple of 4 * width, ditto.
+
+ if (info[2]->IsUint32()) { // Explicit height given
+ height = Nan::To<uint32_t>(info[2]).FromMaybe(0);
+ } else { // Calculate height assuming 4 BPP
+ int size = length / 4;
+ height = size / width;
+ }
+
+ } else if (info[0]->IsUint16Array() && info[1]->IsUint32()) { // Intended for RGB16_565 format
+ dataArray = info[0].As<Uint16Array>();
+
+ length = dataArray->Length();
+ if (length == 0) {
+ Nan::ThrowRangeError("The input data has a zero byte length.");
+ return;
+ }
+
+ width = Nan::To<uint32_t>(info[1]).FromMaybe(0);
+ if (width == 0) {
+ Nan::ThrowRangeError("The source width is zero.");
+ return;
+ }
+
+ if (info[2]->IsUint32()) { // Explicit height given
+ height = Nan::To<uint32_t>(info[2]).FromMaybe(0);
+ } else { // Calculate height assuming 2 BPP
+ int size = length / 2;
+ height = size / width;
+ }
+
+ } else {
+ Nan::ThrowTypeError("Expected (Uint8ClampedArray, width[, height]), (Uint16Array, width[, height]) or (width, height)");
+ return;
+ }
+
+ Nan::TypedArrayContents<uint8_t> dataPtr(dataArray);
+
+ ImageData *imageData = new ImageData(reinterpret_cast<uint8_t*>(*dataPtr), width, height);
+ imageData->Wrap(info.This());
+ Nan::Set(info.This(), Nan::New("data").ToLocalChecked(), dataArray).Check();
+ info.GetReturnValue().Set(info.This());
+}
+
+/*
+ * Get width.
+ */
+
+NAN_GETTER(ImageData::GetWidth) {
+ if (!ImageData::constructor.Get(info.GetIsolate())->HasInstance(info.This())) {
+ Nan::ThrowTypeError("Method ImageData.GetWidth called on incompatible receiver");
+ return;
+ }
+ ImageData *imageData = Nan::ObjectWrap::Unwrap<ImageData>(info.This());
+ info.GetReturnValue().Set(Nan::New<Number>(imageData->width()));
+}
+
+/*
+ * Get height.
+ */
+
+NAN_GETTER(ImageData::GetHeight) {
+ if (!ImageData::constructor.Get(info.GetIsolate())->HasInstance(info.This())) {
+ Nan::ThrowTypeError("Method ImageData.GetHeight called on incompatible receiver");
+ return;
+ }
+ ImageData *imageData = Nan::ObjectWrap::Unwrap<ImageData>(info.This());
+ info.GetReturnValue().Set(Nan::New<Number>(imageData->height()));
+}
diff --git a/node_modules/canvas/src/ImageData.h b/node_modules/canvas/src/ImageData.h
new file mode 100644
index 0000000..4832b37
--- /dev/null
+++ b/node_modules/canvas/src/ImageData.h
@@ -0,0 +1,27 @@
+// Copyright (c) 2010 LearnBoost <tj@learnboost.com>
+
+#pragma once
+
+#include <nan.h>
+#include <stdint.h> // node < 7 uses libstdc++ on macOS which lacks complete c++11
+#include <v8.h>
+
+class ImageData: public Nan::ObjectWrap {
+ public:
+ static Nan::Persistent<v8::FunctionTemplate> constructor;
+ static void Initialize(Nan::ADDON_REGISTER_FUNCTION_ARGS_TYPE target);
+ static NAN_METHOD(New);
+ static NAN_GETTER(GetWidth);
+ static NAN_GETTER(GetHeight);
+
+ inline int width() { return _width; }
+ inline int height() { return _height; }
+ inline uint8_t *data() { return _data; }
+ ImageData(uint8_t *data, int width, int height) : _width(width), _height(height), _data(data) {}
+
+ private:
+ int _width;
+ int _height;
+ uint8_t *_data;
+
+};
diff --git a/node_modules/canvas/src/InstanceData.h b/node_modules/canvas/src/InstanceData.h
new file mode 100644
index 0000000..9fb3cf4
--- /dev/null
+++ b/node_modules/canvas/src/InstanceData.h
@@ -0,0 +1,8 @@
+#include <napi.h>
+
+struct InstanceData {
+ Napi::FunctionReference ImageBackendCtor;
+ Napi::FunctionReference PdfBackendCtor;
+ Napi::FunctionReference SvgBackendCtor;
+ Napi::FunctionReference CanvasCtor;
+};
diff --git a/node_modules/canvas/src/JPEGStream.h b/node_modules/canvas/src/JPEGStream.h
new file mode 100644
index 0000000..b8efeed
--- /dev/null
+++ b/node_modules/canvas/src/JPEGStream.h
@@ -0,0 +1,167 @@
+#pragma once
+
+#include "closure.h"
+#include <jpeglib.h>
+#include <jerror.h>
+
+/*
+ * Expanded data destination object for closure output,
+ * inspired by IJG's jdatadst.c
+ */
+
+struct closure_destination_mgr {
+ jpeg_destination_mgr pub;
+ JpegClosure* closure;
+ JOCTET *buffer;
+ int bufsize;
+};
+
+void
+init_closure_destination(j_compress_ptr cinfo){
+ // we really don't have to do anything here
+}
+
+boolean
+empty_closure_output_buffer(j_compress_ptr cinfo){
+ Nan::HandleScope scope;
+ Nan::AsyncResource async("canvas:empty_closure_output_buffer");
+ closure_destination_mgr *dest = (closure_destination_mgr *) cinfo->dest;
+
+ v8::Local<v8::Object> buf = Nan::NewBuffer((char *)dest->buffer, dest->bufsize).ToLocalChecked();
+
+ // emit "data"
+ v8::Local<v8::Value> argv[2] = {
+ Nan::Null()
+ , buf
+ };
+ dest->closure->cb.Call(sizeof argv / sizeof *argv, argv, &async);
+
+ dest->buffer = (JOCTET *)malloc(dest->bufsize);
+ cinfo->dest->next_output_byte = dest->buffer;
+ cinfo->dest->free_in_buffer = dest->bufsize;
+ return true;
+}
+
+void
+term_closure_destination(j_compress_ptr cinfo){
+ Nan::HandleScope scope;
+ Nan::AsyncResource async("canvas:term_closure_destination");
+ closure_destination_mgr *dest = (closure_destination_mgr *) cinfo->dest;
+
+ /* emit remaining data */
+ v8::Local<v8::Object> buf = Nan::NewBuffer((char *)dest->buffer, dest->bufsize - dest->pub.free_in_buffer).ToLocalChecked();
+
+ v8::Local<v8::Value> data_argv[2] = {
+ Nan::Null()
+ , buf
+ };
+ dest->closure->cb.Call(sizeof data_argv / sizeof *data_argv, data_argv, &async);
+
+ // emit "end"
+ v8::Local<v8::Value> end_argv[2] = {
+ Nan::Null()
+ , Nan::Null()
+ };
+ dest->closure->cb.Call(sizeof end_argv / sizeof *end_argv, end_argv, &async);
+}
+
+void
+jpeg_closure_dest(j_compress_ptr cinfo, JpegClosure* closure, int bufsize){
+ closure_destination_mgr * dest;
+
+ /* The destination object is made permanent so that multiple JPEG images
+ * can be written to the same buffer without re-executing jpeg_mem_dest.
+ */
+ if (cinfo->dest == NULL) { /* first time for this JPEG object? */
+ cinfo->dest = (struct jpeg_destination_mgr *)
+ (*cinfo->mem->alloc_small) ((j_common_ptr) cinfo, JPOOL_PERMANENT,
+ sizeof(closure_destination_mgr));
+ }
+
+ dest = (closure_destination_mgr *) cinfo->dest;
+
+ cinfo->dest->init_destination = &init_closure_destination;
+ cinfo->dest->empty_output_buffer = &empty_closure_output_buffer;
+ cinfo->dest->term_destination = &term_closure_destination;
+
+ dest->closure = closure;
+ dest->bufsize = bufsize;
+ dest->buffer = (JOCTET *)malloc(bufsize);
+
+ cinfo->dest->next_output_byte = dest->buffer;
+ cinfo->dest->free_in_buffer = dest->bufsize;
+}
+
+void encode_jpeg(jpeg_compress_struct cinfo, cairo_surface_t *surface, int quality, bool progressive, int chromaHSampFactor, int chromaVSampFactor) {
+ int w = cairo_image_surface_get_width(surface);
+ int h = cairo_image_surface_get_height(surface);
+
+ cinfo.in_color_space = JCS_RGB;
+ cinfo.input_components = 3;
+ cinfo.image_width = w;
+ cinfo.image_height = h;
+ jpeg_set_defaults(&cinfo);
+ if (progressive)
+ jpeg_simple_progression(&cinfo);
+ jpeg_set_quality(&cinfo, quality, (quality < 25) ? 0 : 1);
+ cinfo.comp_info[0].h_samp_factor = chromaHSampFactor;
+ cinfo.comp_info[0].v_samp_factor = chromaVSampFactor;
+
+ JSAMPROW slr;
+ jpeg_start_compress(&cinfo, TRUE);
+ unsigned char *dst;
+ unsigned int *src = (unsigned int *)cairo_image_surface_get_data(surface);
+ int sl = 0;
+ dst = (unsigned char *)malloc(w * 3);
+ while (sl < h) {
+ unsigned char *dp = dst;
+ int x = 0;
+ while (x < w) {
+ dp[0] = (*src >> 16) & 255;
+ dp[1] = (*src >> 8) & 255;
+ dp[2] = *src & 255;
+ src++;
+ dp += 3;
+ x++;
+ }
+ slr = dst;
+ jpeg_write_scanlines(&cinfo, &slr, 1);
+ sl++;
+ }
+ free(dst);
+ jpeg_finish_compress(&cinfo);
+ jpeg_destroy_compress(&cinfo);
+}
+
+void
+write_to_jpeg_stream(cairo_surface_t *surface, int bufsize, JpegClosure* closure) {
+ jpeg_compress_struct cinfo;
+ jpeg_error_mgr jerr;
+ cinfo.err = jpeg_std_error(&jerr);
+ jpeg_create_compress(&cinfo);
+ jpeg_closure_dest(&cinfo, closure, bufsize);
+ encode_jpeg(
+ cinfo,
+ surface,
+ closure->quality,
+ closure->progressive,
+ closure->chromaSubsampling,
+ closure->chromaSubsampling);
+}
+
+void
+write_to_jpeg_buffer(cairo_surface_t* surface, JpegClosure* closure) {
+ jpeg_compress_struct cinfo;
+ jpeg_error_mgr jerr;
+ cinfo.err = jpeg_std_error(&jerr);
+ jpeg_create_compress(&cinfo);
+ cinfo.client_data = closure;
+ cinfo.dest = closure->jpeg_dest_mgr;
+ encode_jpeg(
+ cinfo,
+ surface,
+ closure->quality,
+ closure->progressive,
+ closure->chromaSubsampling,
+ closure->chromaSubsampling);
+}
diff --git a/node_modules/canvas/src/PNG.h b/node_modules/canvas/src/PNG.h
new file mode 100644
index 0000000..30b88f8
--- /dev/null
+++ b/node_modules/canvas/src/PNG.h
@@ -0,0 +1,292 @@
+#pragma once
+
+#include <cairo.h>
+#include "closure.h"
+#include <cmath> // round
+#include <cstdlib>
+#include <cstring>
+#include <png.h>
+#include <pngconf.h>
+
+#if defined(__GNUC__) && (__GNUC__ > 2) && defined(__OPTIMIZE__)
+#define likely(expr) (__builtin_expect (!!(expr), 1))
+#define unlikely(expr) (__builtin_expect (!!(expr), 0))
+#else
+#define likely(expr) (expr)
+#define unlikely(expr) (expr)
+#endif
+
+static void canvas_png_flush(png_structp png_ptr) {
+ /* Do nothing; fflush() is said to be just a waste of energy. */
+ (void) png_ptr; /* Stifle compiler warning */
+}
+
+/* Converts native endian xRGB => RGBx bytes */
+static void canvas_convert_data_to_bytes(png_structp png, png_row_infop row_info, png_bytep data) {
+ unsigned int i;
+
+ for (i = 0; i < row_info->rowbytes; i += 4) {
+ uint8_t *b = &data[i];
+ uint32_t pixel;
+
+ memcpy(&pixel, b, sizeof (uint32_t));
+
+ b[0] = (pixel & 0xff0000) >> 16;
+ b[1] = (pixel & 0x00ff00) >> 8;
+ b[2] = (pixel & 0x0000ff) >> 0;
+ b[3] = 0;
+ }
+}
+
+/* Unpremultiplies data and converts native endian ARGB => RGBA bytes */
+static void canvas_unpremultiply_data(png_structp png, png_row_infop row_info, png_bytep data) {
+ unsigned int i;
+
+ for (i = 0; i < row_info->rowbytes; i += 4) {
+ uint8_t *b = &data[i];
+ uint32_t pixel;
+ uint8_t alpha;
+
+ memcpy(&pixel, b, sizeof (uint32_t));
+ alpha = (pixel & 0xff000000) >> 24;
+ if (alpha == 0) {
+ b[0] = b[1] = b[2] = b[3] = 0;
+ } else {
+ b[0] = (((pixel & 0xff0000) >> 16) * 255 + alpha / 2) / alpha;
+ b[1] = (((pixel & 0x00ff00) >> 8) * 255 + alpha / 2) / alpha;
+ b[2] = (((pixel & 0x0000ff) >> 0) * 255 + alpha / 2) / alpha;
+ b[3] = alpha;
+ }
+ }
+}
+
+/* Converts RGB16_565 format data to RGBA32 */
+static void canvas_convert_565_to_888(png_structp png, png_row_infop row_info, png_bytep data) {
+ // Loop in reverse to unpack in-place.
+ for (ptrdiff_t col = row_info->width - 1; col >= 0; col--) {
+ uint8_t* src = &data[col * sizeof(uint16_t)];
+ uint8_t* dst = &data[col * 3];
+ uint16_t pixel;
+
+ memcpy(&pixel, src, sizeof(uint16_t));
+
+ // Convert and rescale to the full 0-255 range
+ // See http://stackoverflow.com/a/29326693
+ const uint8_t red5 = (pixel & 0xF800) >> 11;
+ const uint8_t green6 = (pixel & 0x7E0) >> 5;
+ const uint8_t blue5 = (pixel & 0x001F);
+
+ dst[0] = ((red5 * 255 + 15) / 31);
+ dst[1] = ((green6 * 255 + 31) / 63);
+ dst[2] = ((blue5 * 255 + 15) / 31);
+ }
+}
+
+struct canvas_png_write_closure_t {
+ cairo_write_func_t write_func;
+ PngClosure* closure;
+};
+
+#ifdef PNG_SETJMP_SUPPORTED
+bool setjmp_wrapper(png_structp png) {
+ return setjmp(png_jmpbuf(png));
+}
+#endif
+
+static cairo_status_t canvas_write_png(cairo_surface_t *surface, png_rw_ptr write_func, canvas_png_write_closure_t *closure) {
+ unsigned int i;
+ cairo_status_t status = CAIRO_STATUS_SUCCESS;
+ uint8_t *data;
+ png_structp png;
+ png_infop info;
+ png_bytep *volatile rows = NULL;
+ png_color_16 white;
+ int png_color_type;
+ int bpc;
+ unsigned int width = cairo_image_surface_get_width(surface);
+ unsigned int height = cairo_image_surface_get_height(surface);
+
+ data = cairo_image_surface_get_data(surface);
+ if (data == NULL) {
+ status = CAIRO_STATUS_SURFACE_TYPE_MISMATCH;
+ return status;
+ }
+ cairo_surface_flush(surface);
+
+ if (width == 0 || height == 0) {
+ status = CAIRO_STATUS_WRITE_ERROR;
+ return status;
+ }
+
+ rows = (png_bytep *) malloc(height * sizeof (png_byte*));
+ if (unlikely(rows == NULL)) {
+ status = CAIRO_STATUS_NO_MEMORY;
+ return status;
+ }
+
+ int stride = cairo_image_surface_get_stride(surface);
+ for (i = 0; i < height; i++) {
+ rows[i] = (png_byte *) data + i * stride;
+ }
+
+#ifdef PNG_USER_MEM_SUPPORTED
+ png = png_create_write_struct_2(PNG_LIBPNG_VER_STRING, NULL, NULL, NULL, NULL, NULL, NULL);
+#else
+ png = png_create_write_struct(PNG_LIBPNG_VER_STRING, NULL, NULL, NULL);
+#endif
+
+ if (unlikely(png == NULL)) {
+ status = CAIRO_STATUS_NO_MEMORY;
+ free(rows);
+ return status;
+ }
+
+ info = png_create_info_struct (png);
+ if (unlikely(info == NULL)) {
+ status = CAIRO_STATUS_NO_MEMORY;
+ png_destroy_write_struct(&png, &info);
+ free(rows);
+ return status;
+
+ }
+
+#ifdef PNG_SETJMP_SUPPORTED
+ if (setjmp_wrapper(png)) {
+ png_destroy_write_struct(&png, &info);
+ free(rows);
+ return status;
+ }
+#endif
+
+ png_set_write_fn(png, closure, write_func, canvas_png_flush);
+ png_set_compression_level(png, closure->closure->compressionLevel);
+ png_set_filter(png, 0, closure->closure->filters);
+ if (closure->closure->resolution != 0) {
+ uint32_t res = static_cast<uint32_t>(round(static_cast<double>(closure->closure->resolution) * 39.3701));
+ png_set_pHYs(png, info, res, res, PNG_RESOLUTION_METER);
+ }
+
+ cairo_format_t format = cairo_image_surface_get_format(surface);
+
+ switch (format) {
+ case CAIRO_FORMAT_ARGB32:
+ bpc = 8;
+ png_color_type = PNG_COLOR_TYPE_RGB_ALPHA;
+ break;
+#ifdef CAIRO_FORMAT_RGB30
+ case CAIRO_FORMAT_RGB30:
+ bpc = 10;
+ png_color_type = PNG_COLOR_TYPE_RGB;
+ break;
+#endif
+ case CAIRO_FORMAT_RGB24:
+ bpc = 8;
+ png_color_type = PNG_COLOR_TYPE_RGB;
+ break;
+ case CAIRO_FORMAT_A8:
+ bpc = 8;
+ png_color_type = PNG_COLOR_TYPE_GRAY;
+ break;
+ case CAIRO_FORMAT_A1:
+ bpc = 1;
+ png_color_type = PNG_COLOR_TYPE_GRAY;
+#ifndef WORDS_BIGENDIAN
+ png_set_packswap(png);
+#endif
+ break;
+ case CAIRO_FORMAT_RGB16_565:
+ bpc = 8; // 565 gets upconverted to 888
+ png_color_type = PNG_COLOR_TYPE_RGB;
+ break;
+ case CAIRO_FORMAT_INVALID:
+ default:
+ status = CAIRO_STATUS_INVALID_FORMAT;
+ png_destroy_write_struct(&png, &info);
+ free(rows);
+ return status;
+ }
+
+ if ((format == CAIRO_FORMAT_A8 || format == CAIRO_FORMAT_A1) &&
+ closure->closure->palette != NULL) {
+ png_color_type = PNG_COLOR_TYPE_PALETTE;
+ }
+
+ png_set_IHDR(png, info, width, height, bpc, png_color_type, PNG_INTERLACE_NONE, PNG_COMPRESSION_TYPE_DEFAULT, PNG_FILTER_TYPE_DEFAULT);
+
+ if (png_color_type == PNG_COLOR_TYPE_PALETTE) {
+ size_t nColors = closure->closure->nPaletteColors;
+ uint8_t* colors = closure->closure->palette;
+ uint8_t backgroundIndex = closure->closure->backgroundIndex;
+ png_colorp pngPalette = (png_colorp)png_malloc(png, nColors * sizeof(png_colorp));
+ png_bytep transparency = (png_bytep)png_malloc(png, nColors * sizeof(png_bytep));
+ for (i = 0; i < nColors; i++) {
+ pngPalette[i].red = colors[4 * i];
+ pngPalette[i].green = colors[4 * i + 1];
+ pngPalette[i].blue = colors[4 * i + 2];
+ transparency[i] = colors[4 * i + 3];
+ }
+ png_set_PLTE(png, info, pngPalette, nColors);
+ png_set_tRNS(png, info, transparency, nColors, NULL);
+ png_set_packing(png); // pack pixels
+ // have libpng free palette and trans:
+ png_data_freer(png, info, PNG_DESTROY_WILL_FREE_DATA, PNG_FREE_PLTE | PNG_FREE_TRNS);
+ png_color_16 bkg;
+ bkg.index = backgroundIndex;
+ png_set_bKGD(png, info, &bkg);
+ }
+
+ if (png_color_type != PNG_COLOR_TYPE_PALETTE) {
+ white.gray = (1 << bpc) - 1;
+ white.red = white.blue = white.green = white.gray;
+ png_set_bKGD(png, info, &white);
+ }
+
+ /* We have to call png_write_info() before setting up the write
+ * transformation, since it stores data internally in 'png'
+ * that is needed for the write transformation functions to work.
+ */
+ png_write_info(png, info);
+ if (png_color_type == PNG_COLOR_TYPE_RGB_ALPHA) {
+ png_set_write_user_transform_fn(png, canvas_unpremultiply_data);
+ } else if (format == CAIRO_FORMAT_RGB16_565) {
+ png_set_write_user_transform_fn(png, canvas_convert_565_to_888);
+ } else if (png_color_type == PNG_COLOR_TYPE_RGB) {
+ png_set_write_user_transform_fn(png, canvas_convert_data_to_bytes);
+ png_set_filler(png, 0, PNG_FILLER_AFTER);
+ }
+
+ png_write_image(png, rows);
+ png_write_end(png, info);
+
+ png_destroy_write_struct(&png, &info);
+ free(rows);
+ return status;
+}
+
+static void canvas_stream_write_func(png_structp png, png_bytep data, png_size_t size) {
+ cairo_status_t status;
+ struct canvas_png_write_closure_t *png_closure;
+
+ png_closure = (struct canvas_png_write_closure_t *) png_get_io_ptr(png);
+ status = png_closure->write_func(png_closure->closure, data, size);
+ if (unlikely(status)) {
+ cairo_status_t *error = (cairo_status_t *) png_get_error_ptr(png);
+ if (*error == CAIRO_STATUS_SUCCESS) {
+ *error = status;
+ }
+ png_error(png, NULL);
+ }
+}
+
+static cairo_status_t canvas_write_to_png_stream(cairo_surface_t *surface, cairo_write_func_t write_func, PngClosure* closure) {
+ struct canvas_png_write_closure_t png_closure;
+
+ if (cairo_surface_status(surface)) {
+ return cairo_surface_status(surface);
+ }
+
+ png_closure.write_func = write_func;
+ png_closure.closure = closure;
+
+ return canvas_write_png(surface, canvas_stream_write_func, &png_closure);
+}
diff --git a/node_modules/canvas/src/Point.h b/node_modules/canvas/src/Point.h
new file mode 100644
index 0000000..a61f8b1
--- /dev/null
+++ b/node_modules/canvas/src/Point.h
@@ -0,0 +1,11 @@
+// Copyright (c) 2010 LearnBoost <tj@learnboost.com>
+#pragma once
+
+template <typename T>
+class Point {
+ public:
+ T x, y;
+ Point(T x=0, T y=0): x(x), y(y) {}
+ Point(const Point&) = default;
+ Point& operator=(const Point&) = default;
+};
diff --git a/node_modules/canvas/src/Util.h b/node_modules/canvas/src/Util.h
new file mode 100644
index 0000000..0e6d1d8
--- /dev/null
+++ b/node_modules/canvas/src/Util.h
@@ -0,0 +1,9 @@
+#pragma once
+
+#include <cctype>
+
+inline bool streq_casein(std::string& str1, std::string& str2) {
+ return str1.size() == str2.size() && std::equal(str1.begin(), str1.end(), str2.begin(), [](char& c1, char& c2) {
+ return c1 == c2 || std::toupper(c1) == std::toupper(c2);
+ });
+}
diff --git a/node_modules/canvas/src/backend/Backend.cc b/node_modules/canvas/src/backend/Backend.cc
new file mode 100644
index 0000000..528f61a
--- /dev/null
+++ b/node_modules/canvas/src/backend/Backend.cc
@@ -0,0 +1,112 @@
+#include "Backend.h"
+#include <string>
+
+Backend::Backend(std::string name, int width, int height)
+ : name(name)
+ , width(width)
+ , height(height)
+{}
+
+Backend::~Backend()
+{
+ this->destroySurface();
+}
+
+void Backend::init(const Nan::FunctionCallbackInfo<v8::Value> &info) {
+ int width = 0;
+ int height = 0;
+ if (info[0]->IsNumber()) width = Nan::To<uint32_t>(info[0]).FromMaybe(0);
+ if (info[1]->IsNumber()) height = Nan::To<uint32_t>(info[1]).FromMaybe(0);
+
+ Backend *backend = construct(width, height);
+
+ backend->Wrap(info.This());
+ info.GetReturnValue().Set(info.This());
+}
+
+void Backend::setCanvas(Canvas* _canvas)
+{
+ this->canvas = _canvas;
+}
+
+
+cairo_surface_t* Backend::recreateSurface()
+{
+ this->destroySurface();
+
+ return this->createSurface();
+}
+
+DLL_PUBLIC cairo_surface_t* Backend::getSurface() {
+ if (!surface) createSurface();
+ return surface;
+}
+
+void Backend::destroySurface()
+{
+ if(this->surface)
+ {
+ cairo_surface_destroy(this->surface);
+ this->surface = NULL;
+ }
+}
+
+
+std::string Backend::getName()
+{
+ return name;
+}
+
+int Backend::getWidth()
+{
+ return this->width;
+}
+void Backend::setWidth(int width_)
+{
+ this->width = width_;
+ this->recreateSurface();
+}
+
+int Backend::getHeight()
+{
+ return this->height;
+}
+void Backend::setHeight(int height_)
+{
+ this->height = height_;
+ this->recreateSurface();
+}
+
+bool Backend::isSurfaceValid(){
+ bool hadSurface = surface != NULL;
+ bool isValid = true;
+
+ cairo_status_t status = cairo_surface_status(getSurface());
+
+ if (status != CAIRO_STATUS_SUCCESS) {
+ error = cairo_status_to_string(status);
+ isValid = false;
+ }
+
+ if (!hadSurface)
+ destroySurface();
+
+ return isValid;
+}
+
+
+BackendOperationNotAvailable::BackendOperationNotAvailable(Backend* backend,
+ std::string operation_name)
+ : backend(backend)
+ , operation_name(operation_name)
+{
+ msg = "operation " + operation_name +
+ " not supported by backend " + backend->getName();
+};
+
+BackendOperationNotAvailable::~BackendOperationNotAvailable() throw() {};
+
+const char* BackendOperationNotAvailable::what() const throw()
+{
+ return msg.c_str();
+};
diff --git a/node_modules/canvas/src/backend/Backend.h b/node_modules/canvas/src/backend/Backend.h
new file mode 100644
index 0000000..df65194
--- /dev/null
+++ b/node_modules/canvas/src/backend/Backend.h
@@ -0,0 +1,69 @@
+#pragma once
+
+#include <cairo.h>
+#include "../dll_visibility.h"
+#include <exception>
+#include <nan.h>
+#include <string>
+#include <v8.h>
+
+class Canvas;
+
+class Backend : public Nan::ObjectWrap
+{
+ private:
+ const std::string name;
+ const char* error = NULL;
+
+ protected:
+ int width;
+ int height;
+ cairo_surface_t* surface = nullptr;
+ Canvas* canvas = nullptr;
+
+ Backend(std::string name, int width, int height);
+ static void init(const Nan::FunctionCallbackInfo<v8::Value> &info);
+ static Backend *construct(int width, int height){ return nullptr; }
+
+ public:
+ virtual ~Backend();
+
+ void setCanvas(Canvas* canvas);
+
+ virtual cairo_surface_t* createSurface() = 0;
+ virtual cairo_surface_t* recreateSurface();
+
+ DLL_PUBLIC cairo_surface_t* getSurface();
+ virtual void destroySurface();
+
+ DLL_PUBLIC std::string getName();
+
+ DLL_PUBLIC int getWidth();
+ virtual void setWidth(int width);
+
+ DLL_PUBLIC int getHeight();
+ virtual void setHeight(int height);
+
+ // Overridden by ImageBackend. SVG and PDF thus always return INVALID.
+ virtual cairo_format_t getFormat() {
+ return CAIRO_FORMAT_INVALID;
+ }
+
+ bool isSurfaceValid();
+ inline const char* getError(){ return error; }
+};
+
+
+class BackendOperationNotAvailable: public std::exception
+{
+ private:
+ Backend* backend;
+ std::string operation_name;
+ std::string msg;
+
+ public:
+ BackendOperationNotAvailable(Backend* backend, std::string operation_name);
+ ~BackendOperationNotAvailable() throw();
+
+ const char* what() const throw();
+};
diff --git a/node_modules/canvas/src/backend/ImageBackend.cc b/node_modules/canvas/src/backend/ImageBackend.cc
new file mode 100644
index 0000000..d354d92
--- /dev/null
+++ b/node_modules/canvas/src/backend/ImageBackend.cc
@@ -0,0 +1,74 @@
+#include "ImageBackend.h"
+
+using namespace v8;
+
+ImageBackend::ImageBackend(int width, int height)
+ : Backend("image", width, height)
+ {}
+
+Backend *ImageBackend::construct(int width, int height){
+ return new ImageBackend(width, height);
+}
+
+// This returns an approximate value only, suitable for Nan::AdjustExternalMemory.
+// The formats that don't map to intrinsic types (RGB30, A1) round up.
+int32_t ImageBackend::approxBytesPerPixel() {
+ switch (format) {
+ case CAIRO_FORMAT_ARGB32:
+ case CAIRO_FORMAT_RGB24:
+ return 4;
+#ifdef CAIRO_FORMAT_RGB30
+ case CAIRO_FORMAT_RGB30:
+ return 3;
+#endif
+ case CAIRO_FORMAT_RGB16_565:
+ return 2;
+ case CAIRO_FORMAT_A8:
+ case CAIRO_FORMAT_A1:
+ return 1;
+ default:
+ return 0;
+ }
+}
+
+cairo_surface_t* ImageBackend::createSurface() {
+ assert(!surface);
+ surface = cairo_image_surface_create(format, width, height);
+ assert(surface);
+ Nan::AdjustExternalMemory(approxBytesPerPixel() * width * height);
+ return surface;
+}
+
+void ImageBackend::destroySurface() {
+ if (surface) {
+ cairo_surface_destroy(surface);
+ surface = nullptr;
+ Nan::AdjustExternalMemory(-approxBytesPerPixel() * width * height);
+ }
+}
+
+cairo_format_t ImageBackend::getFormat() {
+ return format;
+}
+
+void ImageBackend::setFormat(cairo_format_t _format) {
+ this->format = _format;
+}
+
+Nan::Persistent<FunctionTemplate> ImageBackend::constructor;
+
+void ImageBackend::Initialize(Local<Object> target) {
+ Nan::HandleScope scope;
+
+ Local<FunctionTemplate> ctor = Nan::New<FunctionTemplate>(ImageBackend::New);
+ ImageBackend::constructor.Reset(ctor);
+ ctor->InstanceTemplate()->SetInternalFieldCount(1);
+ ctor->SetClassName(Nan::New<String>("ImageBackend").ToLocalChecked());
+ Nan::Set(target,
+ Nan::New<String>("ImageBackend").ToLocalChecked(),
+ Nan::GetFunction(ctor).ToLocalChecked()).Check();
+}
+
+NAN_METHOD(ImageBackend::New) {
+ init(info);
+}
diff --git a/node_modules/canvas/src/backend/ImageBackend.h b/node_modules/canvas/src/backend/ImageBackend.h
new file mode 100644
index 0000000..f68dacf
--- /dev/null
+++ b/node_modules/canvas/src/backend/ImageBackend.h
@@ -0,0 +1,26 @@
+#pragma once
+
+#include "Backend.h"
+#include <v8.h>
+
+class ImageBackend : public Backend
+{
+ private:
+ cairo_surface_t* createSurface();
+ void destroySurface();
+ cairo_format_t format = DEFAULT_FORMAT;
+
+ public:
+ ImageBackend(int width, int height);
+ static Backend *construct(int width, int height);
+
+ cairo_format_t getFormat();
+ void setFormat(cairo_format_t format);
+
+ int32_t approxBytesPerPixel();
+
+ static Nan::Persistent<v8::FunctionTemplate> constructor;
+ static void Initialize(v8::Local<v8::Object> target);
+ static NAN_METHOD(New);
+ const static cairo_format_t DEFAULT_FORMAT = CAIRO_FORMAT_ARGB32;
+};
diff --git a/node_modules/canvas/src/backend/PdfBackend.cc b/node_modules/canvas/src/backend/PdfBackend.cc
new file mode 100644
index 0000000..d8bd234
--- /dev/null
+++ b/node_modules/canvas/src/backend/PdfBackend.cc
@@ -0,0 +1,53 @@
+#include "PdfBackend.h"
+
+#include <cairo-pdf.h>
+#include "../Canvas.h"
+#include "../closure.h"
+
+using namespace v8;
+
+PdfBackend::PdfBackend(int width, int height)
+ : Backend("pdf", width, height) {
+ createSurface();
+}
+
+PdfBackend::~PdfBackend() {
+ cairo_surface_finish(surface);
+ if (_closure) delete _closure;
+ destroySurface();
+}
+
+Backend *PdfBackend::construct(int width, int height){
+ return new PdfBackend(width, height);
+}
+
+cairo_surface_t* PdfBackend::createSurface() {
+ if (!_closure) _closure = new PdfSvgClosure(canvas);
+ surface = cairo_pdf_surface_create_for_stream(PdfSvgClosure::writeVec, _closure, width, height);
+ return surface;
+}
+
+cairo_surface_t* PdfBackend::recreateSurface() {
+ cairo_pdf_surface_set_size(surface, width, height);
+
+ return surface;
+}
+
+
+Nan::Persistent<FunctionTemplate> PdfBackend::constructor;
+
+void PdfBackend::Initialize(Local<Object> target) {
+ Nan::HandleScope scope;
+
+ Local<FunctionTemplate> ctor = Nan::New<FunctionTemplate>(PdfBackend::New);
+ PdfBackend::constructor.Reset(ctor);
+ ctor->InstanceTemplate()->SetInternalFieldCount(1);
+ ctor->SetClassName(Nan::New<String>("PdfBackend").ToLocalChecked());
+ Nan::Set(target,
+ Nan::New<String>("PdfBackend").ToLocalChecked(),
+ Nan::GetFunction(ctor).ToLocalChecked()).Check();
+}
+
+NAN_METHOD(PdfBackend::New) {
+ init(info);
+}
diff --git a/node_modules/canvas/src/backend/PdfBackend.h b/node_modules/canvas/src/backend/PdfBackend.h
new file mode 100644
index 0000000..03656f5
--- /dev/null
+++ b/node_modules/canvas/src/backend/PdfBackend.h
@@ -0,0 +1,24 @@
+#pragma once
+
+#include "Backend.h"
+#include "../closure.h"
+#include <v8.h>
+
+class PdfBackend : public Backend
+{
+ private:
+ cairo_surface_t* createSurface();
+ cairo_surface_t* recreateSurface();
+
+ public:
+ PdfSvgClosure* _closure = NULL;
+ inline PdfSvgClosure* closure() { return _closure; }
+
+ PdfBackend(int width, int height);
+ ~PdfBackend();
+ static Backend *construct(int width, int height);
+
+ static Nan::Persistent<v8::FunctionTemplate> constructor;
+ static void Initialize(v8::Local<v8::Object> target);
+ static NAN_METHOD(New);
+};
diff --git a/node_modules/canvas/src/backend/SvgBackend.cc b/node_modules/canvas/src/backend/SvgBackend.cc
new file mode 100644
index 0000000..10bf4ca
--- /dev/null
+++ b/node_modules/canvas/src/backend/SvgBackend.cc
@@ -0,0 +1,61 @@
+#include "SvgBackend.h"
+
+#include <cairo-svg.h>
+#include "../Canvas.h"
+#include "../closure.h"
+#include <cassert>
+
+using namespace v8;
+
+SvgBackend::SvgBackend(int width, int height)
+ : Backend("svg", width, height) {
+ createSurface();
+}
+
+SvgBackend::~SvgBackend() {
+ cairo_surface_finish(surface);
+ if (_closure) {
+ delete _closure;
+ _closure = nullptr;
+ }
+ destroySurface();
+}
+
+Backend *SvgBackend::construct(int width, int height){
+ return new SvgBackend(width, height);
+}
+
+cairo_surface_t* SvgBackend::createSurface() {
+ assert(!_closure);
+ _closure = new PdfSvgClosure(canvas);
+ surface = cairo_svg_surface_create_for_stream(PdfSvgClosure::writeVec, _closure, width, height);
+ return surface;
+}
+
+cairo_surface_t* SvgBackend::recreateSurface() {
+ cairo_surface_finish(surface);
+ delete _closure;
+ _closure = nullptr;
+ cairo_surface_destroy(surface);
+
+ return createSurface();
+ }
+
+
+Nan::Persistent<FunctionTemplate> SvgBackend::constructor;
+
+void SvgBackend::Initialize(Local<Object> target) {
+ Nan::HandleScope scope;
+
+ Local<FunctionTemplate> ctor = Nan::New<FunctionTemplate>(SvgBackend::New);
+ SvgBackend::constructor.Reset(ctor);
+ ctor->InstanceTemplate()->SetInternalFieldCount(1);
+ ctor->SetClassName(Nan::New<String>("SvgBackend").ToLocalChecked());
+ Nan::Set(target,
+ Nan::New<String>("SvgBackend").ToLocalChecked(),
+ Nan::GetFunction(ctor).ToLocalChecked()).Check();
+}
+
+NAN_METHOD(SvgBackend::New) {
+ init(info);
+}
diff --git a/node_modules/canvas/src/backend/SvgBackend.h b/node_modules/canvas/src/backend/SvgBackend.h
new file mode 100644
index 0000000..6377b43
--- /dev/null
+++ b/node_modules/canvas/src/backend/SvgBackend.h
@@ -0,0 +1,24 @@
+#pragma once
+
+#include "Backend.h"
+#include "../closure.h"
+#include <v8.h>
+
+class SvgBackend : public Backend
+{
+ private:
+ cairo_surface_t* createSurface();
+ cairo_surface_t* recreateSurface();
+
+ public:
+ PdfSvgClosure* _closure = NULL;
+ inline PdfSvgClosure* closure() { return _closure; }
+
+ SvgBackend(int width, int height);
+ ~SvgBackend();
+ static Backend *construct(int width, int height);
+
+ static Nan::Persistent<v8::FunctionTemplate> constructor;
+ static void Initialize(v8::Local<v8::Object> target);
+ static NAN_METHOD(New);
+};
diff --git a/node_modules/canvas/src/bmp/BMPParser.cc b/node_modules/canvas/src/bmp/BMPParser.cc
new file mode 100644
index 0000000..032eb8e
--- /dev/null
+++ b/node_modules/canvas/src/bmp/BMPParser.cc
@@ -0,0 +1,457 @@
+#include "BMPParser.h"
+
+#include <cassert>
+
+using namespace std;
+using namespace BMPParser;
+
+#define MAX_IMG_SIZE 10000
+
+#define E(cond, msg) if(cond) return setErr(msg)
+#define EU(cond, msg) if(cond) return setErrUnsupported(msg)
+#define EX(cond, msg) if(cond) return setErrUnknown(msg)
+
+#define I1() get<char>()
+#define U1() get<uint8_t>()
+#define I2() get<int16_t>()
+#define U2() get<uint16_t>()
+#define I4() get<int32_t>()
+#define U4() get<uint32_t>()
+
+#define I1UC() get<char, false>()
+#define U1UC() get<uint8_t, false>()
+#define I2UC() get<int16_t, false>()
+#define U2UC() get<uint16_t, false>()
+#define I4UC() get<int32_t, false>()
+#define U4UC() get<uint32_t, false>()
+
+#define CHECK_OVERRUN(ptr, size, type) \
+ if((ptr) + (size) - data > len){ \
+ setErr("unexpected end of file"); \
+ return type(); \
+ }
+
+Parser::~Parser(){
+ data = nullptr;
+ ptr = nullptr;
+
+ if(imgd){
+ delete[] imgd;
+ imgd = nullptr;
+ }
+}
+
+void Parser::parse(uint8_t *buf, int bufSize, uint8_t *format){
+ assert(status == Status::EMPTY);
+
+ data = ptr = buf;
+ len = bufSize;
+
+ // Start parsing file header
+ setOp("file header");
+
+ // File header signature
+ string fhSig = getStr(2);
+ string temp = "file header signature";
+ EU(fhSig == "BA", temp + " \"BA\"");
+ EU(fhSig == "CI", temp + " \"CI\"");
+ EU(fhSig == "CP", temp + " \"CP\"");
+ EU(fhSig == "IC", temp + " \"IC\"");
+ EU(fhSig == "PT", temp + " \"PT\"");
+ EX(fhSig != "BM", temp); // BM
+
+ // Length of the file should not be larger than `len`
+ E(U4() > static_cast<uint32_t>(len), "inconsistent file size");
+
+ // Skip unused values
+ skip(4);
+
+ // Offset where the pixel array (bitmap data) can be found
+ auto imgdOffset = U4();
+
+ // Start parsing DIB header
+ setOp("DIB header");
+
+ // Prepare some variables in case they are needed
+ uint32_t compr = 0;
+ uint32_t redShift = 0, greenShift = 0, blueShift = 0, alphaShift = 0;
+ uint32_t redMask = 0, greenMask = 0, blueMask = 0, alphaMask = 0;
+ double redMultp = 0, greenMultp = 0, blueMultp = 0, alphaMultp = 0;
+
+ /**
+ * Type of the DIB (device-independent bitmap) header
+ * is determined by its size. Most BMP files use BITMAPINFOHEADER.
+ */
+ auto dibSize = U4();
+ temp = "DIB header";
+ EU(dibSize == 64, temp + " \"OS22XBITMAPHEADER\"");
+ EU(dibSize == 16, temp + " \"OS22XBITMAPHEADER\"");
+
+ uint32_t infoHeader = dibSize == 40 ? 1 :
+ dibSize == 52 ? 2 :
+ dibSize == 56 ? 3 :
+ dibSize == 108 ? 4 :
+ dibSize == 124 ? 5 : 0;
+
+ // BITMAPCOREHEADER, BITMAP*INFOHEADER, BITMAP*HEADER
+ auto isDibValid = dibSize == 12 || infoHeader;
+ EX(!isDibValid, temp);
+
+ // Image width
+ w = dibSize == 12 ? U2() : I4();
+ E(!w, "image width is 0");
+ E(w < 0, "negative image width");
+ E(w > MAX_IMG_SIZE, "too large image width");
+
+ // Image height (specification allows negative values)
+ h = dibSize == 12 ? U2() : I4();
+ E(!h, "image height is 0");
+ E(h > MAX_IMG_SIZE, "too large image height");
+
+ bool isHeightNegative = h < 0;
+ if(isHeightNegative) h = -h;
+
+ // Number of color planes (must be 1)
+ E(U2() != 1, "number of color planes must be 1");
+
+ // Bits per pixel (color depth)
+ auto bpp = U2();
+ auto isBppValid = bpp == 1 || bpp == 4 || bpp == 8 || bpp == 16 || bpp == 24 || bpp == 32;
+ EU(!isBppValid, "color depth");
+
+ // Calculate image data size and padding
+ uint32_t expectedImgdSize = (((w * bpp + 31) >> 5) << 2) * h;
+ uint32_t rowPadding = (-w * bpp & 31) >> 3;
+ uint32_t imgdSize = 0;
+
+ // Color palette data
+ uint8_t* paletteStart = nullptr;
+ uint32_t palColNum = 0;
+
+ if(infoHeader){
+ // Compression type
+ compr = U4();
+ temp = "compression type";
+ EU(compr == 1, temp + " \"BI_RLE8\"");
+ EU(compr == 2, temp + " \"BI_RLE4\"");
+ EU(compr == 4, temp + " \"BI_JPEG\"");
+ EU(compr == 5, temp + " \"BI_PNG\"");
+ EU(compr == 6, temp + " \"BI_ALPHABITFIELDS\"");
+ EU(compr == 11, temp + " \"BI_CMYK\"");
+ EU(compr == 12, temp + " \"BI_CMYKRLE8\"");
+ EU(compr == 13, temp + " \"BI_CMYKRLE4\"");
+
+ // BI_RGB and BI_BITFIELDS
+ auto isComprValid = compr == 0 || compr == 3;
+ EX(!isComprValid, temp);
+
+ // Ensure that BI_BITFIELDS appears only with 16-bit or 32-bit color
+ E(compr == 3 && !(bpp == 16 || bpp == 32), "compression BI_BITFIELDS can be used only with 16-bit and 32-bit color depth");
+
+ // Size of the image data
+ imgdSize = U4();
+
+ // Horizontal and vertical resolution (ignored)
+ skip(8);
+
+ // Number of colors in the palette or 0 if no palette is present
+ palColNum = U4();
+ EU(palColNum && bpp > 8, "color palette and bit depth combination");
+ if(palColNum) paletteStart = data + dibSize + 14;
+
+ // Number of important colors used or 0 if all colors are important (generally ignored)
+ skip(4);
+
+ if(infoHeader >= 2){
+ // If BI_BITFIELDS are used, calculate masks, otherwise ignore them
+ if(compr == 3){
+ calcMaskShift(redShift, redMask, redMultp);
+ calcMaskShift(greenShift, greenMask, greenMultp);
+ calcMaskShift(blueShift, blueMask, blueMultp);
+ if(infoHeader >= 3) calcMaskShift(alphaShift, alphaMask, alphaMultp);
+ if(status == Status::ERROR) return;
+ }else{
+ skip(16);
+ }
+
+ // Ensure that the color space is LCS_WINDOWS_COLOR_SPACE or sRGB
+ if(infoHeader >= 4 && !palColNum){
+ string colSpace = getStr(4, 1);
+ EU(colSpace != "Win " && colSpace != "sRGB", "color space \"" + colSpace + "\"");
+ }
+ }
+ }
+
+ // Skip to the image data (there may be other chunks between, but they are optional)
+ E(ptr - data > imgdOffset, "image data overlaps with another structure");
+ ptr = data + imgdOffset;
+
+ // Start parsing image data
+ setOp("image data");
+
+ if(!imgdSize){
+ // Value 0 is allowed only for BI_RGB compression type
+ E(compr != 0, "missing image data size");
+ imgdSize = expectedImgdSize;
+ }else{
+ E(imgdSize < expectedImgdSize, "invalid image data size");
+ }
+
+ // Ensure that all image data is present
+ E(ptr - data + imgdSize > len, "not enough image data");
+
+ // Direction of reading rows
+ int yStart = h - 1;
+ int yEnd = -1;
+ int dy = isHeightNegative ? 1 : -1;
+
+ // In case of negative height, read rows backward
+ if(isHeightNegative){
+ yStart = 0;
+ yEnd = h;
+ }
+
+ // Allocate output image data array
+ int buffLen = w * h << 2;
+ imgd = new (nothrow) uint8_t[buffLen];
+ E(!imgd, "unable to allocate memory");
+
+ // Prepare color values
+ uint8_t color[4] = {0};
+ uint8_t &red = color[0];
+ uint8_t &green = color[1];
+ uint8_t &blue = color[2];
+ uint8_t &alpha = color[3];
+
+ // Check if pre-multiplied alpha is used
+ bool premul = format ? format[4] : 0;
+
+ // Main loop
+ for(int y = yStart; y != yEnd; y += dy){
+ // Use in-byte offset for bpp < 8
+ uint8_t colOffset = 0;
+ uint8_t cval = 0;
+ uint32_t val = 0;
+
+ for(int x = 0; x != w; x++){
+ // Index in the output image data
+ int i = (x + y * w) << 2;
+
+ switch(compr){
+ case 0: // BI_RGB
+ switch(bpp){
+ case 1:
+ if(colOffset) ptr--;
+ cval = (U1UC() >> (7 - colOffset)) & 1;
+
+ if(palColNum){
+ uint8_t* entry = paletteStart + (cval << 2);
+ blue = get<uint8_t>(entry);
+ green = get<uint8_t>(entry + 1);
+ red = get<uint8_t>(entry + 2);
+ if(status == Status::ERROR) return;
+ }else{
+ red = green = blue = cval ? 255 : 0;
+ }
+
+ alpha = 255;
+ colOffset = (colOffset + 1) & 7;
+ break;
+
+ case 4:
+ if(colOffset) ptr--;
+ cval = (U1UC() >> (4 - colOffset)) & 15;
+
+ if(palColNum){
+ uint8_t* entry = paletteStart + (cval << 2);
+ blue = get<uint8_t>(entry);
+ green = get<uint8_t>(entry + 1);
+ red = get<uint8_t>(entry + 2);
+ if(status == Status::ERROR) return;
+ }else{
+ red = green = blue = cval << 4;
+ }
+
+ alpha = 255;
+ colOffset = (colOffset + 4) & 7;
+ break;
+
+ case 8:
+ cval = U1UC();
+
+ if(palColNum){
+ uint8_t* entry = paletteStart + (cval << 2);
+ blue = get<uint8_t>(entry);
+ green = get<uint8_t>(entry + 1);
+ red = get<uint8_t>(entry + 2);
+ if(status == Status::ERROR) return;
+ }else{
+ red = green = blue = cval;
+ }
+
+ alpha = 255;
+ break;
+
+ case 16:
+ // RGB555
+ val = U1UC();
+ val |= U1UC() << 8;
+ red = (val >> 10) << 3;
+ green = (val >> 5) << 3;
+ blue = val << 3;
+ alpha = 255;
+ break;
+
+ case 24:
+ blue = U1UC();
+ green = U1UC();
+ red = U1UC();
+ alpha = 255;
+ break;
+
+ case 32:
+ blue = U1UC();
+ green = U1UC();
+ red = U1UC();
+
+ if(infoHeader >= 3){
+ alpha = U1UC();
+ }else{
+ alpha = 255;
+ skip(1);
+ }
+ break;
+ }
+ break;
+
+ case 3: // BI_BITFIELDS
+ uint32_t col = bpp == 16 ? U2UC() : U4UC();
+ red = ((col >> redShift) & redMask) * redMultp + .5;
+ green = ((col >> greenShift) & greenMask) * greenMultp + .5;
+ blue = ((col >> blueShift) & blueMask) * blueMultp + .5;
+ alpha = alphaMask ? ((col >> alphaShift) & alphaMask) * alphaMultp + .5 : 255;
+ break;
+ }
+
+ /**
+ * Pixel format:
+ * red,
+ * green,
+ * blue,
+ * alpha,
+ * is alpha pre-multiplied
+ * Default is [0, 1, 2, 3, 0]
+ */
+
+ if(premul && alpha != 255){
+ double a = alpha / 255.;
+ red = static_cast<uint8_t>(red * a + .5);
+ green = static_cast<uint8_t>(green * a + .5);
+ blue = static_cast<uint8_t>(blue * a + .5);
+ }
+
+ if(format){
+ imgd[i] = color[format[0]];
+ imgd[i + 1] = color[format[1]];
+ imgd[i + 2] = color[format[2]];
+ imgd[i + 3] = color[format[3]];
+ }else{
+ imgd[i] = red;
+ imgd[i + 1] = green;
+ imgd[i + 2] = blue;
+ imgd[i + 3] = alpha;
+ }
+ }
+
+ // Skip unused bytes in the current row
+ skip(rowPadding);
+ }
+
+ if(status == Status::ERROR) return;
+ status = Status::OK;
+};
+
+void Parser::clearImgd(){ imgd = nullptr; }
+int32_t Parser::getWidth() const{ return w; }
+int32_t Parser::getHeight() const{ return h; }
+uint8_t *Parser::getImgd() const{ return imgd; }
+Status Parser::getStatus() const{ return status; }
+
+string Parser::getErrMsg() const{
+ return "Error while processing " + getOp() + " - " + err;
+}
+
+template <typename T, bool check> inline T Parser::get(){
+ if(check)
+ CHECK_OVERRUN(ptr, sizeof(T), T);
+ T val = *(T*)ptr;
+ ptr += sizeof(T);
+ return val;
+}
+
+template <typename T, bool check> inline T Parser::get(uint8_t* pointer){
+ if(check)
+ CHECK_OVERRUN(pointer, sizeof(T), T);
+ T val = *(T*)pointer;
+ return val;
+}
+
+string Parser::getStr(int size, bool reverse){
+ CHECK_OVERRUN(ptr, size, string);
+ string val = "";
+
+ while(size--){
+ if(reverse) val = string(1, static_cast<char>(*ptr++)) + val;
+ else val += static_cast<char>(*ptr++);
+ }
+
+ return val;
+}
+
+inline void Parser::skip(int size){
+ CHECK_OVERRUN(ptr, size, void);
+ ptr += size;
+}
+
+void Parser::calcMaskShift(uint32_t& shift, uint32_t& mask, double& multp){
+ mask = U4();
+ shift = 0;
+
+ if(mask == 0) return;
+
+ while(~mask & 1){
+ mask >>= 1;
+ shift++;
+ }
+
+ E(mask & (mask + 1), "invalid color mask");
+
+ multp = 255. / mask;
+}
+
+void Parser::setOp(string val){
+ if(status != Status::EMPTY) return;
+ op = val;
+}
+
+string Parser::getOp() const{
+ return op;
+}
+
+void Parser::setErrUnsupported(string msg){
+ setErr("unsupported " + msg);
+}
+
+void Parser::setErrUnknown(string msg){
+ setErr("unknown " + msg);
+}
+
+void Parser::setErr(string msg){
+ if(status != Status::EMPTY) return;
+ err = msg;
+ status = Status::ERROR;
+}
+
+string Parser::getErr() const{
+ return err;
+}
diff --git a/node_modules/canvas/src/bmp/BMPParser.h b/node_modules/canvas/src/bmp/BMPParser.h
new file mode 100644
index 0000000..c35f51a
--- /dev/null
+++ b/node_modules/canvas/src/bmp/BMPParser.h
@@ -0,0 +1,60 @@
+#pragma once
+
+#ifdef ERROR
+#define ERROR_ ERROR
+#undef ERROR
+#endif
+
+#include <stdint.h> // node < 7 uses libstdc++ on macOS which lacks complete c++11
+#include <string>
+
+namespace BMPParser{
+ enum Status{
+ EMPTY,
+ OK,
+ ERROR,
+ };
+
+ class Parser{
+ public:
+ Parser()=default;
+ ~Parser();
+ void parse(uint8_t *buf, int bufSize, uint8_t *format=nullptr);
+ void clearImgd();
+ int32_t getWidth() const;
+ int32_t getHeight() const;
+ uint8_t *getImgd() const;
+ Status getStatus() const;
+ std::string getErrMsg() const;
+
+ private:
+ Status status = Status::EMPTY;
+ uint8_t *data = nullptr;
+ uint8_t *ptr = nullptr;
+ int len = 0;
+ int32_t w = 0;
+ int32_t h = 0;
+ uint8_t *imgd = nullptr;
+ std::string err = "";
+ std::string op = "";
+
+ template <typename T, bool check=true> inline T get();
+ template <typename T, bool check=true> inline T get(uint8_t* pointer);
+ std::string getStr(int len, bool reverse=false);
+ inline void skip(int len);
+ void calcMaskShift(uint32_t& shift, uint32_t& mask, double& multp);
+
+ void setOp(std::string val);
+ std::string getOp() const;
+
+ void setErrUnsupported(std::string msg);
+ void setErrUnknown(std::string msg);
+ void setErr(std::string msg);
+ std::string getErr() const;
+ };
+}
+
+#ifdef ERROR_
+#define ERROR ERROR_
+#undef ERROR_
+#endif
diff --git a/node_modules/canvas/src/bmp/LICENSE.md b/node_modules/canvas/src/bmp/LICENSE.md
new file mode 100644
index 0000000..6bb8a29
--- /dev/null
+++ b/node_modules/canvas/src/bmp/LICENSE.md
@@ -0,0 +1,24 @@
+This is free and unencumbered software released into the public domain.
+
+Anyone is free to copy, modify, publish, use, compile, sell, or
+distribute this software, either in source code form or as a compiled
+binary, for any purpose, commercial or non-commercial, and by any
+means.
+
+In jurisdictions that recognize copyright laws, the author or authors
+of this software dedicate any and all copyright interest in the
+software to the public domain. We make this dedication for the benefit
+of the public at large and to the detriment of our heirs and
+successors. We intend this dedication to be an overt act of
+relinquishment in perpetuity of all present and future rights to this
+software under copyright law.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
+IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR
+OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
+ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
+OTHER DEALINGS IN THE SOFTWARE.
+
+For more information, please refer to <http://unlicense.org>
\ No newline at end of file
diff --git a/node_modules/canvas/src/closure.cc b/node_modules/canvas/src/closure.cc
new file mode 100644
index 0000000..e821e7f
--- /dev/null
+++ b/node_modules/canvas/src/closure.cc
@@ -0,0 +1,26 @@
+#include "closure.h"
+
+#ifdef HAVE_JPEG
+void JpegClosure::init_destination(j_compress_ptr cinfo) {
+ JpegClosure* closure = (JpegClosure*)cinfo->client_data;
+ closure->vec.resize(PAGE_SIZE);
+ closure->jpeg_dest_mgr->next_output_byte = &closure->vec[0];
+ closure->jpeg_dest_mgr->free_in_buffer = closure->vec.size();
+}
+
+boolean JpegClosure::empty_output_buffer(j_compress_ptr cinfo) {
+ JpegClosure* closure = (JpegClosure*)cinfo->client_data;
+ size_t currentSize = closure->vec.size();
+ closure->vec.resize(currentSize * 1.5);
+ closure->jpeg_dest_mgr->next_output_byte = &closure->vec[currentSize];
+ closure->jpeg_dest_mgr->free_in_buffer = closure->vec.size() - currentSize;
+ return true;
+}
+
+void JpegClosure::term_destination(j_compress_ptr cinfo) {
+ JpegClosure* closure = (JpegClosure*)cinfo->client_data;
+ size_t finalSize = closure->vec.size() - closure->jpeg_dest_mgr->free_in_buffer;
+ closure->vec.resize(finalSize);
+}
+#endif
+
diff --git a/node_modules/canvas/src/closure.h b/node_modules/canvas/src/closure.h
new file mode 100644
index 0000000..3126114
--- /dev/null
+++ b/node_modules/canvas/src/closure.h
@@ -0,0 +1,81 @@
+// Copyright (c) 2010 LearnBoost <tj@learnboost.com>
+
+#pragma once
+
+#include "Canvas.h"
+
+#ifdef HAVE_JPEG
+#include <jpeglib.h>
+#endif
+
+#include <nan.h>
+#include <png.h>
+#include <stdint.h> // node < 7 uses libstdc++ on macOS which lacks complete c++11
+#include <vector>
+
+#ifndef PAGE_SIZE
+ #define PAGE_SIZE 4096
+#endif
+
+/*
+ * Image encoding closures.
+ */
+
+struct Closure {
+ std::vector<uint8_t> vec;
+ Nan::Callback cb;
+ Canvas* canvas = nullptr;
+ cairo_status_t status = CAIRO_STATUS_SUCCESS;
+
+ static cairo_status_t writeVec(void *c, const uint8_t *odata, unsigned len) {
+ Closure* closure = static_cast<Closure*>(c);
+ try {
+ closure->vec.insert(closure->vec.end(), odata, odata + len);
+ } catch (const std::bad_alloc &) {
+ return CAIRO_STATUS_NO_MEMORY;
+ }
+ return CAIRO_STATUS_SUCCESS;
+ }
+
+ Closure(Canvas* canvas) : canvas(canvas) {};
+};
+
+struct PdfSvgClosure : Closure {
+ PdfSvgClosure(Canvas* canvas) : Closure(canvas) {};
+};
+
+struct PngClosure : Closure {
+ uint32_t compressionLevel = 6;
+ uint32_t filters = PNG_ALL_FILTERS;
+ uint32_t resolution = 0; // 0 = unspecified
+ // Indexed PNGs:
+ uint32_t nPaletteColors = 0;
+ uint8_t* palette = nullptr;
+ uint8_t backgroundIndex = 0;
+
+ PngClosure(Canvas* canvas) : Closure(canvas) {};
+};
+
+#ifdef HAVE_JPEG
+struct JpegClosure : Closure {
+ uint32_t quality = 75;
+ uint32_t chromaSubsampling = 2;
+ bool progressive = false;
+ jpeg_destination_mgr* jpeg_dest_mgr = nullptr;
+
+ static void init_destination(j_compress_ptr cinfo);
+ static boolean empty_output_buffer(j_compress_ptr cinfo);
+ static void term_destination(j_compress_ptr cinfo);
+
+ JpegClosure(Canvas* canvas) : Closure(canvas) {
+ jpeg_dest_mgr = new jpeg_destination_mgr;
+ jpeg_dest_mgr->init_destination = init_destination;
+ jpeg_dest_mgr->empty_output_buffer = empty_output_buffer;
+ jpeg_dest_mgr->term_destination = term_destination;
+ };
+
+ ~JpegClosure() {
+ delete jpeg_dest_mgr;
+ }
+};
+#endif
diff --git a/node_modules/canvas/src/color.cc b/node_modules/canvas/src/color.cc
new file mode 100644
index 0000000..230fb8d
--- /dev/null
+++ b/node_modules/canvas/src/color.cc
@@ -0,0 +1,779 @@
+// Copyright (c) 2010 LearnBoost <tj@learnboost.com>
+
+#include "color.h"
+
+#include <algorithm>
+#include <cmath>
+#include <cstdlib>
+#include <cstring>
+#include <limits>
+#include <map>
+#include <string>
+
+// Compatibility with Visual Studio versions prior to VS2015
+#if defined(_MSC_VER) && _MSC_VER < 1900
+#define snprintf _snprintf
+#endif
+
+/*
+ * Parse integer value
+ */
+
+template <typename parsed_t>
+static bool
+parse_integer(const char** pStr, parsed_t *pParsed) {
+ parsed_t& c = *pParsed;
+ const char*& str = *pStr;
+ int8_t sign=1;
+
+ c = 0;
+ if (*str == '-') {
+ sign=-1;
+ ++str;
+ }
+ else if (*str == '+')
+ ++str;
+
+ if (*str >= '0' && *str <= '9') {
+ do {
+ c *= 10;
+ c += *str++ - '0';
+ } while (*str >= '0' && *str <= '9');
+ } else {
+ return false;
+ }
+ if (sign<0)
+ c=-c;
+ return true;
+}
+
+
+/*
+ * Parse CSS <number> value
+ * Adapted from http://crackprogramming.blogspot.co.il/2012/10/implement-atof.html
+ */
+
+template <typename parsed_t>
+static bool
+parse_css_number(const char** pStr, parsed_t *pParsed) {
+ parsed_t &parsed = *pParsed;
+ const char*& str = *pStr;
+ const char* startStr = str;
+ if (!str || !*str)
+ return false;
+ parsed_t integerPart = 0;
+ parsed_t fractionPart = 0;
+ int divisorForFraction = 1;
+ int sign = 1;
+ int exponent = 0;
+ int digits = 0;
+ bool inFraction = false;
+
+ if (*str == '-') {
+ ++str;
+ sign = -1;
+ }
+ else if (*str == '+')
+ ++str;
+ while (*str != '\0') {
+ if (*str >= '0' && *str <= '9') {
+ if (digits>=std::numeric_limits<parsed_t>::digits10) {
+ if (!inFraction)
+ return false;
+ }
+ else {
+ ++digits;
+
+ if (inFraction) {
+ fractionPart = fractionPart*10 + (*str - '0');
+ divisorForFraction *= 10;
+ }
+ else {
+ integerPart = integerPart*10 + (*str - '0');
+ }
+ }
+ }
+ else if (*str == '.') {
+ if (inFraction)
+ break;
+ else
+ inFraction = true;
+ }
+ else if (*str == 'e') {
+ ++str;
+ if (!parse_integer(&str, &exponent))
+ return false;
+ break;
+ }
+ else
+ break;
+ ++str;
+ }
+ if (str != startStr) {
+ parsed = sign * (integerPart + fractionPart/divisorForFraction);
+ for (;exponent>0;--exponent)
+ parsed *= 10;
+ for (;exponent<0;++exponent)
+ parsed /= 10;
+ return true;
+ }
+ return false;
+}
+
+/*
+ * Clip value to the range [minValue, maxValue]
+ */
+
+template <typename T>
+static T
+clip(T value, T minValue, T maxValue) {
+ if (value > maxValue)
+ value = maxValue;
+ if (value < minValue)
+ value = minValue;
+ return value;
+}
+
+/*
+ * Wrap value to the range [0, limit]
+ */
+
+template <typename T>
+static T
+wrap_float(T value, T limit) {
+ return fmod(fmod(value, limit) + limit, limit);
+}
+
+/*
+ * Wrap value to the range [0, limit] - currently-unused integer version of wrap_float
+ */
+
+// template <typename T>
+// static T wrap_int(T value, T limit) {
+// return (value % limit + limit) % limit;
+// }
+
+/*
+ * Parse color channel value
+ */
+
+static bool
+parse_rgb_channel(const char** pStr, uint8_t *pChannel) {
+ int channel;
+ if (parse_integer(pStr, &channel)) {
+ *pChannel = clip(channel, 0, 255);
+ return true;
+ }
+ return false;
+}
+
+/*
+ * Parse a value in degrees
+ */
+
+static bool
+parse_degrees(const char** pStr, float *pDegrees) {
+ float degrees;
+ if (parse_css_number(pStr, °rees)) {
+ *pDegrees = wrap_float(degrees, 360.0f);
+ return true;
+ }
+ return false;
+}
+
+/*
+ * Parse and clip a percentage value. Returns a float in the range [0, 1].
+ */
+
+static bool
+parse_clipped_percentage(const char** pStr, float *pFraction) {
+ float percentage;
+ bool result = parse_css_number(pStr,&percentage);
+ const char*& str = *pStr;
+ if (result) {
+ if (*str == '%') {
+ ++str;
+ *pFraction = clip(percentage, 0.0f, 100.0f) / 100.0f;
+ return result;
+ }
+ }
+ return false;
+}
+
+/*
+ * Macros to help with parsing inside rgba_from_*_string
+ */
+
+#define WHITESPACE \
+ while (' ' == *str) ++str;
+
+#define WHITESPACE_OR_COMMA \
+ while (' ' == *str || ',' == *str) ++str;
+
+#define CHANNEL(NAME) \
+ if (!parse_rgb_channel(&str, &NAME)) \
+ return 0; \
+
+#define HUE(NAME) \
+ if (!parse_degrees(&str, &NAME)) \
+ return 0;
+
+#define SATURATION(NAME) \
+ if (!parse_clipped_percentage(&str, &NAME)) \
+ return 0;
+
+#define LIGHTNESS(NAME) SATURATION(NAME)
+
+#define ALPHA(NAME) \
+ if (*str >= '1' && *str <= '9') { \
+ NAME = 1; \
+ } else { \
+ if ('0' == *str) { \
+ NAME = 0; \
+ ++str; \
+ } \
+ if ('.' == *str) { \
+ ++str; \
+ NAME = 0; \
+ float n = .1f; \
+ while (*str >= '0' && *str <= '9') { \
+ NAME += (*str++ - '0') * n; \
+ n *= .1f; \
+ } \
+ } \
+ } \
+ do {} while (0) // require trailing semicolon
+
+/*
+ * Named colors.
+ */
+static const std::map<std::string, uint32_t> named_colors = {
+ { "transparent", 0xFFFFFF00}
+ , { "aliceblue", 0xF0F8FFFF }
+ , { "antiquewhite", 0xFAEBD7FF }
+ , { "aqua", 0x00FFFFFF }
+ , { "aquamarine", 0x7FFFD4FF }
+ , { "azure", 0xF0FFFFFF }
+ , { "beige", 0xF5F5DCFF }
+ , { "bisque", 0xFFE4C4FF }
+ , { "black", 0x000000FF }
+ , { "blanchedalmond", 0xFFEBCDFF }
+ , { "blue", 0x0000FFFF }
+ , { "blueviolet", 0x8A2BE2FF }
+ , { "brown", 0xA52A2AFF }
+ , { "burlywood", 0xDEB887FF }
+ , { "cadetblue", 0x5F9EA0FF }
+ , { "chartreuse", 0x7FFF00FF }
+ , { "chocolate", 0xD2691EFF }
+ , { "coral", 0xFF7F50FF }
+ , { "cornflowerblue", 0x6495EDFF }
+ , { "cornsilk", 0xFFF8DCFF }
+ , { "crimson", 0xDC143CFF }
+ , { "cyan", 0x00FFFFFF }
+ , { "darkblue", 0x00008BFF }
+ , { "darkcyan", 0x008B8BFF }
+ , { "darkgoldenrod", 0xB8860BFF }
+ , { "darkgray", 0xA9A9A9FF }
+ , { "darkgreen", 0x006400FF }
+ , { "darkgrey", 0xA9A9A9FF }
+ , { "darkkhaki", 0xBDB76BFF }
+ , { "darkmagenta", 0x8B008BFF }
+ , { "darkolivegreen", 0x556B2FFF }
+ , { "darkorange", 0xFF8C00FF }
+ , { "darkorchid", 0x9932CCFF }
+ , { "darkred", 0x8B0000FF }
+ , { "darksalmon", 0xE9967AFF }
+ , { "darkseagreen", 0x8FBC8FFF }
+ , { "darkslateblue", 0x483D8BFF }
+ , { "darkslategray", 0x2F4F4FFF }
+ , { "darkslategrey", 0x2F4F4FFF }
+ , { "darkturquoise", 0x00CED1FF }
+ , { "darkviolet", 0x9400D3FF }
+ , { "deeppink", 0xFF1493FF }
+ , { "deepskyblue", 0x00BFFFFF }
+ , { "dimgray", 0x696969FF }
+ , { "dimgrey", 0x696969FF }
+ , { "dodgerblue", 0x1E90FFFF }
+ , { "firebrick", 0xB22222FF }
+ , { "floralwhite", 0xFFFAF0FF }
+ , { "forestgreen", 0x228B22FF }
+ , { "fuchsia", 0xFF00FFFF }
+ , { "gainsboro", 0xDCDCDCFF }
+ , { "ghostwhite", 0xF8F8FFFF }
+ , { "gold", 0xFFD700FF }
+ , { "goldenrod", 0xDAA520FF }
+ , { "gray", 0x808080FF }
+ , { "green", 0x008000FF }
+ , { "greenyellow", 0xADFF2FFF }
+ , { "grey", 0x808080FF }
+ , { "honeydew", 0xF0FFF0FF }
+ , { "hotpink", 0xFF69B4FF }
+ , { "indianred", 0xCD5C5CFF }
+ , { "indigo", 0x4B0082FF }
+ , { "ivory", 0xFFFFF0FF }
+ , { "khaki", 0xF0E68CFF }
+ , { "lavender", 0xE6E6FAFF }
+ , { "lavenderblush", 0xFFF0F5FF }
+ , { "lawngreen", 0x7CFC00FF }
+ , { "lemonchiffon", 0xFFFACDFF }
+ , { "lightblue", 0xADD8E6FF }
+ , { "lightcoral", 0xF08080FF }
+ , { "lightcyan", 0xE0FFFFFF }
+ , { "lightgoldenrodyellow", 0xFAFAD2FF }
+ , { "lightgray", 0xD3D3D3FF }
+ , { "lightgreen", 0x90EE90FF }
+ , { "lightgrey", 0xD3D3D3FF }
+ , { "lightpink", 0xFFB6C1FF }
+ , { "lightsalmon", 0xFFA07AFF }
+ , { "lightseagreen", 0x20B2AAFF }
+ , { "lightskyblue", 0x87CEFAFF }
+ , { "lightslategray", 0x778899FF }
+ , { "lightslategrey", 0x778899FF }
+ , { "lightsteelblue", 0xB0C4DEFF }
+ , { "lightyellow", 0xFFFFE0FF }
+ , { "lime", 0x00FF00FF }
+ , { "limegreen", 0x32CD32FF }
+ , { "linen", 0xFAF0E6FF }
+ , { "magenta", 0xFF00FFFF }
+ , { "maroon", 0x800000FF }
+ , { "mediumaquamarine", 0x66CDAAFF }
+ , { "mediumblue", 0x0000CDFF }
+ , { "mediumorchid", 0xBA55D3FF }
+ , { "mediumpurple", 0x9370DBFF }
+ , { "mediumseagreen", 0x3CB371FF }
+ , { "mediumslateblue", 0x7B68EEFF }
+ , { "mediumspringgreen", 0x00FA9AFF }
+ , { "mediumturquoise", 0x48D1CCFF }
+ , { "mediumvioletred", 0xC71585FF }
+ , { "midnightblue", 0x191970FF }
+ , { "mintcream", 0xF5FFFAFF }
+ , { "mistyrose", 0xFFE4E1FF }
+ , { "moccasin", 0xFFE4B5FF }
+ , { "navajowhite", 0xFFDEADFF }
+ , { "navy", 0x000080FF }
+ , { "oldlace", 0xFDF5E6FF }
+ , { "olive", 0x808000FF }
+ , { "olivedrab", 0x6B8E23FF }
+ , { "orange", 0xFFA500FF }
+ , { "orangered", 0xFF4500FF }
+ , { "orchid", 0xDA70D6FF }
+ , { "palegoldenrod", 0xEEE8AAFF }
+ , { "palegreen", 0x98FB98FF }
+ , { "paleturquoise", 0xAFEEEEFF }
+ , { "palevioletred", 0xDB7093FF }
+ , { "papayawhip", 0xFFEFD5FF }
+ , { "peachpuff", 0xFFDAB9FF }
+ , { "peru", 0xCD853FFF }
+ , { "pink", 0xFFC0CBFF }
+ , { "plum", 0xDDA0DDFF }
+ , { "powderblue", 0xB0E0E6FF }
+ , { "purple", 0x800080FF }
+ , { "rebeccapurple", 0x663399FF } // Source: CSS Color Level 4 draft
+ , { "red", 0xFF0000FF }
+ , { "rosybrown", 0xBC8F8FFF }
+ , { "royalblue", 0x4169E1FF }
+ , { "saddlebrown", 0x8B4513FF }
+ , { "salmon", 0xFA8072FF }
+ , { "sandybrown", 0xF4A460FF }
+ , { "seagreen", 0x2E8B57FF }
+ , { "seashell", 0xFFF5EEFF }
+ , { "sienna", 0xA0522DFF }
+ , { "silver", 0xC0C0C0FF }
+ , { "skyblue", 0x87CEEBFF }
+ , { "slateblue", 0x6A5ACDFF }
+ , { "slategray", 0x708090FF }
+ , { "slategrey", 0x708090FF }
+ , { "snow", 0xFFFAFAFF }
+ , { "springgreen", 0x00FF7FFF }
+ , { "steelblue", 0x4682B4FF }
+ , { "tan", 0xD2B48CFF }
+ , { "teal", 0x008080FF }
+ , { "thistle", 0xD8BFD8FF }
+ , { "tomato", 0xFF6347FF }
+ , { "turquoise", 0x40E0D0FF }
+ , { "violet", 0xEE82EEFF }
+ , { "wheat", 0xF5DEB3FF }
+ , { "white", 0xFFFFFFFF }
+ , { "whitesmoke", 0xF5F5F5FF }
+ , { "yellow", 0xFFFF00FF }
+ , { "yellowgreen", 0x9ACD32FF }
+};
+
+/*
+ * Hex digit int val.
+ */
+
+static int
+h(char c) {
+ switch (c) {
+ case '0':
+ case '1':
+ case '2':
+ case '3':
+ case '4':
+ case '5':
+ case '6':
+ case '7':
+ case '8':
+ case '9':
+ return c - '0';
+ case 'a':
+ case 'b':
+ case 'c':
+ case 'd':
+ case 'e':
+ case 'f':
+ return (c - 'a') + 10;
+ case 'A':
+ case 'B':
+ case 'C':
+ case 'D':
+ case 'E':
+ case 'F':
+ return (c - 'A') + 10;
+ }
+ return 0;
+}
+
+/*
+ * Return rgba_t from rgba.
+ */
+
+rgba_t
+rgba_create(uint32_t rgba) {
+ rgba_t color;
+ color.r = (double) (rgba >> 24) / 255;
+ color.g = (double) (rgba >> 16 & 0xff) / 255;
+ color.b = (double) (rgba >> 8 & 0xff) / 255;
+ color.a = (double) (rgba & 0xff) / 255;
+ return color;
+}
+
+/*
+ * Return a string representation of the color.
+ */
+
+void
+rgba_to_string(rgba_t rgba, char *buf, size_t len) {
+ if (1 == rgba.a) {
+ snprintf(buf, len, "#%.2x%.2x%.2x",
+ static_cast<int>(round(rgba.r * 255)),
+ static_cast<int>(round(rgba.g * 255)),
+ static_cast<int>(round(rgba.b * 255)));
+ } else {
+ snprintf(buf, len, "rgba(%d, %d, %d, %.2f)",
+ static_cast<int>(round(rgba.r * 255)),
+ static_cast<int>(round(rgba.g * 255)),
+ static_cast<int>(round(rgba.b * 255)),
+ rgba.a);
+ }
+}
+
+/*
+ * Return rgba from (r,g,b,a).
+ */
+
+static inline int32_t
+rgba_from_rgba(uint8_t r, uint8_t g, uint8_t b, uint8_t a) {
+ return
+ r << 24
+ | g << 16
+ | b << 8
+ | a;
+}
+
+/*
+ * Helper function used in rgba_from_hsla().
+ * Based on http://dev.w3.org/csswg/css-color-4/#hsl-to-rgb
+ */
+
+static float
+hue_to_rgb(float t1, float t2, float hue) {
+ if (hue < 0)
+ hue += 6;
+ if (hue >= 6)
+ hue -= 6;
+
+ if (hue < 1)
+ return (t2 - t1) * hue + t1;
+ else if (hue < 3)
+ return t2;
+ else if (hue < 4)
+ return (t2 - t1) * (4 - hue) + t1;
+ else
+ return t1;
+}
+
+/*
+ * Return rgba from (h,s,l,a).
+ * Expects h values in the range [0, 360), and s, l, a in the range [0, 1].
+ * Adapted from http://dev.w3.org/csswg/css-color-4/#hsl-to-rgb
+ */
+
+static inline int32_t
+rgba_from_hsla(float h_deg, float s, float l, float a) {
+ uint8_t r, g, b;
+ float h = (6 * h_deg) / 360.0f, m1, m2;
+
+ if (l<=0.5)
+ m2=l*(s+1);
+ else
+ m2=l+s-l*s;
+ m1 = l*2 - m2;
+
+ // Scale and round the RGB components
+ r = (uint8_t)floor(hue_to_rgb(m1, m2, h + 2) * 255 + 0.5);
+ g = (uint8_t)floor(hue_to_rgb(m1, m2, h ) * 255 + 0.5);
+ b = (uint8_t)floor(hue_to_rgb(m1, m2, h - 2) * 255 + 0.5);
+
+ return rgba_from_rgba(r, g, b, (uint8_t) (a * 255));
+}
+
+/*
+ * Return rgba from (h,s,l).
+ * Expects h values in the range [0, 360), and s, l in the range [0, 1].
+ */
+
+static inline int32_t
+rgba_from_hsl(float h_deg, float s, float l) {
+ return rgba_from_hsla(h_deg, s, l, 1.0);
+}
+
+
+/*
+ * Return rgba from (r,g,b).
+ */
+
+static int32_t
+rgba_from_rgb(uint8_t r, uint8_t g, uint8_t b) {
+ return rgba_from_rgba(r, g, b, 255);
+}
+
+/*
+ * Return rgba from #RRGGBBAA
+ */
+
+static int32_t
+rgba_from_hex8_string(const char *str) {
+ return rgba_from_rgba(
+ (h(str[0]) << 4) + h(str[1]),
+ (h(str[2]) << 4) + h(str[3]),
+ (h(str[4]) << 4) + h(str[5]),
+ (h(str[6]) << 4) + h(str[7])
+ );
+}
+
+/*
+ * Return rgb from "#RRGGBB".
+ */
+
+static int32_t
+rgba_from_hex6_string(const char *str) {
+ return rgba_from_rgb(
+ (h(str[0]) << 4) + h(str[1])
+ , (h(str[2]) << 4) + h(str[3])
+ , (h(str[4]) << 4) + h(str[5])
+ );
+}
+
+/*
+* Return rgba from #RGBA
+*/
+
+static int32_t
+rgba_from_hex4_string(const char *str) {
+ return rgba_from_rgba(
+ (h(str[0]) << 4) + h(str[0]),
+ (h(str[1]) << 4) + h(str[1]),
+ (h(str[2]) << 4) + h(str[2]),
+ (h(str[3]) << 4) + h(str[3])
+ );
+}
+
+/*
+ * Return rgb from "#RGB"
+ */
+
+static int32_t
+rgba_from_hex3_string(const char *str) {
+ return rgba_from_rgb(
+ (h(str[0]) << 4) + h(str[0])
+ , (h(str[1]) << 4) + h(str[1])
+ , (h(str[2]) << 4) + h(str[2])
+ );
+}
+
+/*
+ * Return rgb from "rgb()"
+ */
+
+static int32_t
+rgba_from_rgb_string(const char *str, short *ok) {
+ if (str == strstr(str, "rgb(")) {
+ str += 4;
+ WHITESPACE;
+ uint8_t r = 0, g = 0, b = 0;
+ CHANNEL(r);
+ WHITESPACE_OR_COMMA;
+ CHANNEL(g);
+ WHITESPACE_OR_COMMA;
+ CHANNEL(b);
+ WHITESPACE;
+ return *ok = 1, rgba_from_rgb(r, g, b);
+ }
+ return *ok = 0;
+}
+
+/*
+ * Return rgb from "rgba()"
+ */
+
+static int32_t
+rgba_from_rgba_string(const char *str, short *ok) {
+ if (str == strstr(str, "rgba(")) {
+ str += 5;
+ WHITESPACE;
+ uint8_t r = 0, g = 0, b = 0;
+ float a = 1.f;
+ CHANNEL(r);
+ WHITESPACE_OR_COMMA;
+ CHANNEL(g);
+ WHITESPACE_OR_COMMA;
+ CHANNEL(b);
+ WHITESPACE_OR_COMMA;
+ ALPHA(a);
+ WHITESPACE;
+ return *ok = 1, rgba_from_rgba(r, g, b, (int) (a * 255));
+ }
+ return *ok = 0;
+}
+
+/*
+ * Return rgb from "hsla()"
+ */
+
+static int32_t
+rgba_from_hsla_string(const char *str, short *ok) {
+ if (str == strstr(str, "hsla(")) {
+ str += 5;
+ WHITESPACE;
+ float h_deg = 0;
+ float s = 0, l = 0;
+ float a = 0;
+ HUE(h_deg);
+ WHITESPACE_OR_COMMA;
+ SATURATION(s);
+ WHITESPACE_OR_COMMA;
+ LIGHTNESS(l);
+ WHITESPACE_OR_COMMA;
+ ALPHA(a);
+ WHITESPACE;
+ return *ok = 1, rgba_from_hsla(h_deg, s, l, a);
+ }
+ return *ok = 0;
+}
+
+/*
+ * Return rgb from "hsl()"
+ */
+
+static int32_t
+rgba_from_hsl_string(const char *str, short *ok) {
+ if (str == strstr(str, "hsl(")) {
+ str += 4;
+ WHITESPACE;
+ float h_deg = 0;
+ float s = 0, l = 0;
+ HUE(h_deg);
+ WHITESPACE_OR_COMMA;
+ SATURATION(s);
+ WHITESPACE_OR_COMMA;
+ LIGHTNESS(l);
+ WHITESPACE;
+ return *ok = 1, rgba_from_hsl(h_deg, s, l);
+ }
+ return *ok = 0;
+}
+
+
+/*
+ * Return rgb from:
+ *
+ * - "#RGB"
+ * - "#RGBA"
+ * - "#RRGGBB"
+ * - "#RRGGBBAA"
+ *
+ */
+
+static int32_t
+rgba_from_hex_string(const char *str, short *ok) {
+ size_t len = strlen(str);
+ *ok = 1;
+ switch (len) {
+ case 8: return rgba_from_hex8_string(str);
+ case 6: return rgba_from_hex6_string(str);
+ case 4: return rgba_from_hex4_string(str);
+ case 3: return rgba_from_hex3_string(str);
+ }
+ return *ok = 0;
+}
+
+/*
+ * Return named color value.
+ */
+
+static int32_t
+rgba_from_name_string(const char *str, short *ok) {
+ std::string lowered(str);
+ std::transform(lowered.begin(), lowered.end(), lowered.begin(), tolower);
+ auto color = named_colors.find(lowered);
+ if (color != named_colors.end()) {
+ return *ok = 1, color->second;
+ }
+ return *ok = 0;
+}
+
+/*
+ * Return rgb from:
+ *
+ * - #RGB
+ * - #RGBA
+ * - #RRGGBB
+ * - #RRGGBBAA
+ * - rgb(r,g,b)
+ * - rgba(r,g,b,a)
+ * - hsl(h,s,l)
+ * - hsla(h,s,l,a)
+ * - name
+ *
+ */
+
+int32_t
+rgba_from_string(const char *str, short *ok) {
+ if ('#' == str[0])
+ return rgba_from_hex_string(++str, ok);
+ if (str == strstr(str, "rgba"))
+ return rgba_from_rgba_string(str, ok);
+ if (str == strstr(str, "rgb"))
+ return rgba_from_rgb_string(str, ok);
+ if (str == strstr(str, "hsla"))
+ return rgba_from_hsla_string(str, ok);
+ if (str == strstr(str, "hsl"))
+ return rgba_from_hsl_string(str, ok);
+ return rgba_from_name_string(str, ok);
+}
+
+/*
+ * Inspect the given rgba color.
+ */
+
+void
+rgba_inspect(int32_t rgba) {
+ printf("rgba(%d,%d,%d,%d)\n"
+ , rgba >> 24 & 0xff
+ , rgba >> 16 & 0xff
+ , rgba >> 8 & 0xff
+ , rgba & 0xff
+ );
+}
diff --git a/node_modules/canvas/src/color.h b/node_modules/canvas/src/color.h
new file mode 100644
index 0000000..137c1d6
--- /dev/null
+++ b/node_modules/canvas/src/color.h
@@ -0,0 +1,30 @@
+// Copyright (c) 2010 LearnBoost <tj@learnboost.com>
+
+#pragma once
+
+#include <stdint.h> // node < 7 uses libstdc++ on macOS which lacks complete c++11
+#include <cstdlib>
+
+/*
+ * RGBA struct.
+ */
+
+typedef struct {
+ double r, g, b, a;
+} rgba_t;
+
+/*
+ * Prototypes.
+ */
+
+rgba_t
+rgba_create(uint32_t rgba);
+
+int32_t
+rgba_from_string(const char *str, short *ok);
+
+void
+rgba_to_string(rgba_t rgba, char *buf, size_t len);
+
+void
+rgba_inspect(int32_t rgba);
diff --git a/node_modules/canvas/src/dll_visibility.h b/node_modules/canvas/src/dll_visibility.h
new file mode 100644
index 0000000..7a1f984
--- /dev/null
+++ b/node_modules/canvas/src/dll_visibility.h
@@ -0,0 +1,20 @@
+#ifndef DLL_PUBLIC
+
+#if defined _WIN32
+ #ifdef __GNUC__
+ #define DLL_PUBLIC __attribute__ ((dllexport))
+ #else
+ #define DLL_PUBLIC __declspec(dllexport)
+ #endif
+ #define DLL_LOCAL
+#else
+ #if __GNUC__ >= 4
+ #define DLL_PUBLIC __attribute__ ((visibility ("default")))
+ #define DLL_LOCAL __attribute__ ((visibility ("hidden")))
+ #else
+ #define DLL_PUBLIC
+ #define DLL_LOCAL
+ #endif
+#endif
+
+#endif
diff --git a/node_modules/canvas/src/init.cc b/node_modules/canvas/src/init.cc
new file mode 100644
index 0000000..fd14397
--- /dev/null
+++ b/node_modules/canvas/src/init.cc
@@ -0,0 +1,94 @@
+// Copyright (c) 2010 LearnBoost <tj@learnboost.com>
+
+#include <cstdio>
+#include <pango/pango.h>
+
+#include <cairo.h>
+#if CAIRO_VERSION < CAIRO_VERSION_ENCODE(1, 10, 0)
+// CAIRO_FORMAT_RGB16_565: undeprecated in v1.10.0
+// CAIRO_STATUS_INVALID_SIZE: v1.10.0
+// CAIRO_FORMAT_INVALID: v1.10.0
+// Lots of the compositing operators: v1.10.0
+// JPEG MIME tracking: v1.10.0
+// Note: CAIRO_FORMAT_RGB30 is v1.12.0 and still optional
+#error("cairo v1.10.0 or later is required")
+#endif
+
+#include "Backends.h"
+#include "Canvas.h"
+#include "CanvasGradient.h"
+#include "CanvasPattern.h"
+#include "CanvasRenderingContext2d.h"
+#include "Image.h"
+#include "ImageData.h"
+
+#include <ft2build.h>
+#include FT_FREETYPE_H
+
+using namespace v8;
+
+// Compatibility with Visual Studio versions prior to VS2015
+#if defined(_MSC_VER) && _MSC_VER < 1900
+#define snprintf _snprintf
+#endif
+
+NAN_MODULE_INIT(init) {
+ Backends::Initialize(target);
+ Canvas::Initialize(target);
+ Image::Initialize(target);
+ ImageData::Initialize(target);
+ Context2d::Initialize(target);
+ Gradient::Initialize(target);
+ Pattern::Initialize(target);
+
+ Nan::Set(target, Nan::New<String>("cairoVersion").ToLocalChecked(), Nan::New<String>(cairo_version_string()).ToLocalChecked()).Check();
+#ifdef HAVE_JPEG
+
+#ifndef JPEG_LIB_VERSION_MAJOR
+#ifdef JPEG_LIB_VERSION
+#define JPEG_LIB_VERSION_MAJOR (JPEG_LIB_VERSION / 10)
+#else
+#define JPEG_LIB_VERSION_MAJOR 0
+#endif
+#endif
+
+#ifndef JPEG_LIB_VERSION_MINOR
+#ifdef JPEG_LIB_VERSION
+#define JPEG_LIB_VERSION_MINOR (JPEG_LIB_VERSION % 10)
+#else
+#define JPEG_LIB_VERSION_MINOR 0
+#endif
+#endif
+
+ char jpeg_version[10];
+ static bool minor_gt_0 = JPEG_LIB_VERSION_MINOR > 0;
+ if (minor_gt_0) {
+ snprintf(jpeg_version, 10, "%d%c", JPEG_LIB_VERSION_MAJOR, JPEG_LIB_VERSION_MINOR + 'a' - 1);
+ } else {
+ snprintf(jpeg_version, 10, "%d", JPEG_LIB_VERSION_MAJOR);
+ }
+ Nan::Set(target, Nan::New<String>("jpegVersion").ToLocalChecked(), Nan::New<String>(jpeg_version).ToLocalChecked()).Check();
+#endif
+
+#ifdef HAVE_GIF
+#ifndef GIF_LIB_VERSION
+ char gif_version[10];
+ snprintf(gif_version, 10, "%d.%d.%d", GIFLIB_MAJOR, GIFLIB_MINOR, GIFLIB_RELEASE);
+ Nan::Set(target, Nan::New<String>("gifVersion").ToLocalChecked(), Nan::New<String>(gif_version).ToLocalChecked()).Check();
+#else
+ Nan::Set(target, Nan::New<String>("gifVersion").ToLocalChecked(), Nan::New<String>(GIF_LIB_VERSION).ToLocalChecked()).Check();
+#endif
+#endif
+
+#ifdef HAVE_RSVG
+ Nan::Set(target, Nan::New<String>("rsvgVersion").ToLocalChecked(), Nan::New<String>(LIBRSVG_VERSION).ToLocalChecked()).Check();
+#endif
+
+ Nan::Set(target, Nan::New<String>("pangoVersion").ToLocalChecked(), Nan::New<String>(PANGO_VERSION_STRING).ToLocalChecked()).Check();
+
+ char freetype_version[10];
+ snprintf(freetype_version, 10, "%d.%d.%d", FREETYPE_MAJOR, FREETYPE_MINOR, FREETYPE_PATCH);
+ Nan::Set(target, Nan::New<String>("freetypeVersion").ToLocalChecked(), Nan::New<String>(freetype_version).ToLocalChecked()).Check();
+}
+
+NODE_MODULE(canvas, init);
diff --git a/node_modules/canvas/src/register_font.cc b/node_modules/canvas/src/register_font.cc
new file mode 100644
index 0000000..e43dd81
--- /dev/null
+++ b/node_modules/canvas/src/register_font.cc
@@ -0,0 +1,408 @@
+#include "register_font.h"
+
+#include <string>
+#include <pango/pangocairo.h>
+#include <pango/pango-fontmap.h>
+#include <pango/pango.h>
+
+#ifdef __APPLE__
+#include <CoreText/CoreText.h>
+#elif defined(_WIN32)
+#include <windows.h>
+#include <memory>
+#else
+#include <fontconfig/fontconfig.h>
+#include <pango/pangofc-fontmap.h>
+#endif
+
+#include <ft2build.h>
+#include FT_FREETYPE_H
+#include FT_TRUETYPE_TABLES_H
+#include FT_SFNT_NAMES_H
+#include FT_TRUETYPE_IDS_H
+#ifndef FT_SFNT_OS2
+#define FT_SFNT_OS2 ft_sfnt_os2
+#endif
+
+// OSX seems to read the strings in MacRoman encoding and ignore Unicode entries.
+// You can verify this by opening a TTF with both Unicode and Macroman on OSX.
+// It uses the MacRoman name, while Fontconfig and Windows use Unicode
+#ifdef __APPLE__
+#define PREFERRED_PLATFORM_ID TT_PLATFORM_MACINTOSH
+#define PREFERRED_ENCODING_ID TT_MAC_ID_ROMAN
+#else
+#define PREFERRED_PLATFORM_ID TT_PLATFORM_MICROSOFT
+#define PREFERRED_ENCODING_ID TT_MS_ID_UNICODE_CS
+#endif
+
+// With PangoFcFontMaps (the pango font module on Linux) we're able to add a
+// hook that lets us get perfect matching. Tie the conditions for enabling that
+// feature to one variable
+#if !defined(__APPLE__) && !defined(_WIN32) && PANGO_VERSION_CHECK(1, 47, 0)
+#define PERFECT_MATCHES_ENABLED
+#endif
+
+#define IS_PREFERRED_ENC(X) \
+ X.platform_id == PREFERRED_PLATFORM_ID && X.encoding_id == PREFERRED_ENCODING_ID
+
+#ifdef PERFECT_MATCHES_ENABLED
+// On Linux-like OSes using FontConfig, the PostScript name ranks higher than
+// preferred family and family name since we'll use it to get perfect font
+// matching (see fc_font_map_substitute_hook)
+#define GET_NAME_RANK(X) \
+ ((IS_PREFERRED_ENC(X) ? 1 : 0) << 2) | \
+ ((X.name_id == TT_NAME_ID_PS_NAME ? 1 : 0) << 1) | \
+ (X.name_id == TT_NAME_ID_PREFERRED_FAMILY ? 1 : 0)
+#else
+#define GET_NAME_RANK(X) \
+ ((IS_PREFERRED_ENC(X) ? 1 : 0) << 1) | \
+ (X.name_id == TT_NAME_ID_PREFERRED_FAMILY ? 1 : 0)
+#endif
+
+/*
+ * Return a UTF-8 encoded string given a TrueType name buf+len
+ * and its platform and encoding
+ */
+
+char *
+to_utf8(FT_Byte* buf, FT_UInt len, FT_UShort pid, FT_UShort eid) {
+ size_t ret_len = len * 4; // max chars in a utf8 string
+ char *ret = (char*)malloc(ret_len + 1); // utf8 string + null
+
+ if (!ret) return NULL;
+
+ // In my testing of hundreds of fonts from the Google Font repo, the two types
+ // of fonts are TT_PLATFORM_MICROSOFT with TT_MS_ID_UNICODE_CS encoding, or
+ // TT_PLATFORM_MACINTOSH with TT_MAC_ID_ROMAN encoding. Usually both, never neither
+
+ char const *fromcode;
+
+ if (pid == TT_PLATFORM_MACINTOSH && eid == TT_MAC_ID_ROMAN) {
+ fromcode = "MAC";
+ } else if (pid == TT_PLATFORM_MICROSOFT && eid == TT_MS_ID_UNICODE_CS) {
+ fromcode = "UTF-16BE";
+ } else {
+ free(ret);
+ return NULL;
+ }
+
+ GIConv cd = g_iconv_open("UTF-8", fromcode);
+
+ if (cd == (GIConv)-1) {
+ free(ret);
+ return NULL;
+ }
+
+ size_t inbytesleft = len;
+ size_t outbytesleft = ret_len;
+
+ size_t n_converted = g_iconv(cd, (char**)&buf, &inbytesleft, &ret, &outbytesleft);
+
+ ret -= ret_len - outbytesleft; // rewind the pointers to their
+ buf -= len - inbytesleft; // original starting positions
+
+ if (n_converted == (size_t)-1) {
+ free(ret);
+ return NULL;
+ } else {
+ ret[ret_len - outbytesleft] = '\0';
+ return ret;
+ }
+}
+
+/*
+ * Find a family name in the face's name table, preferring the one the
+ * system, fall back to the other
+ */
+
+char *
+get_family_name(FT_Face face) {
+ FT_SfntName name;
+
+ int best_rank = -1;
+ char* best_buf = NULL;
+
+ for (unsigned i = 0; i < FT_Get_Sfnt_Name_Count(face); ++i) {
+ FT_Get_Sfnt_Name(face, i, &name);
+
+ if (
+ name.name_id == TT_NAME_ID_FONT_FAMILY ||
+#ifdef PERFECT_MATCHES_ENABLED
+ name.name_id == TT_NAME_ID_PS_NAME ||
+#endif
+ name.name_id == TT_NAME_ID_PREFERRED_FAMILY
+ ) {
+ int rank = GET_NAME_RANK(name);
+
+ if (rank > best_rank) {
+ char *buf = to_utf8(name.string, name.string_len, name.platform_id, name.encoding_id);
+ if (buf) {
+ best_rank = rank;
+ if (best_buf) free(best_buf);
+ best_buf = buf;
+
+#ifdef PERFECT_MATCHES_ENABLED
+ // Prepend an '@' to the postscript name
+ if (name.name_id == TT_NAME_ID_PS_NAME) {
+ std::string best_buf_modified = "@";
+ best_buf_modified += best_buf;
+ free(best_buf);
+ best_buf = strdup(best_buf_modified.c_str());
+ }
+#endif
+ } else {
+ free(buf);
+ }
+ }
+ }
+ }
+
+ return best_buf;
+}
+
+PangoWeight
+get_pango_weight(FT_UShort weight) {
+ switch (weight) {
+ case 100: return PANGO_WEIGHT_THIN;
+ case 200: return PANGO_WEIGHT_ULTRALIGHT;
+ case 300: return PANGO_WEIGHT_LIGHT;
+ #if PANGO_VERSION >= PANGO_VERSION_ENCODE(1, 36, 7)
+ case 350: return PANGO_WEIGHT_SEMILIGHT;
+ #endif
+ case 380: return PANGO_WEIGHT_BOOK;
+ case 400: return PANGO_WEIGHT_NORMAL;
+ case 500: return PANGO_WEIGHT_MEDIUM;
+ case 600: return PANGO_WEIGHT_SEMIBOLD;
+ case 700: return PANGO_WEIGHT_BOLD;
+ case 800: return PANGO_WEIGHT_ULTRABOLD;
+ case 900: return PANGO_WEIGHT_HEAVY;
+ case 1000: return PANGO_WEIGHT_ULTRAHEAVY;
+ default: return PANGO_WEIGHT_NORMAL;
+ }
+}
+
+PangoStretch
+get_pango_stretch(FT_UShort width) {
+ switch (width) {
+ case 1: return PANGO_STRETCH_ULTRA_CONDENSED;
+ case 2: return PANGO_STRETCH_EXTRA_CONDENSED;
+ case 3: return PANGO_STRETCH_CONDENSED;
+ case 4: return PANGO_STRETCH_SEMI_CONDENSED;
+ case 5: return PANGO_STRETCH_NORMAL;
+ case 6: return PANGO_STRETCH_SEMI_EXPANDED;
+ case 7: return PANGO_STRETCH_EXPANDED;
+ case 8: return PANGO_STRETCH_EXTRA_EXPANDED;
+ case 9: return PANGO_STRETCH_ULTRA_EXPANDED;
+ default: return PANGO_STRETCH_NORMAL;
+ }
+}
+
+PangoStyle
+get_pango_style(FT_Long flags) {
+ if (flags & FT_STYLE_FLAG_ITALIC) {
+ return PANGO_STYLE_ITALIC;
+ } else {
+ return PANGO_STYLE_NORMAL;
+ }
+}
+
+#ifdef _WIN32
+std::unique_ptr<wchar_t[]>
+u8ToWide(const char* str) {
+ int iBufferSize = MultiByteToWideChar(CP_UTF8, 0, str, -1, (wchar_t*)NULL, 0);
+ if(!iBufferSize){
+ return nullptr;
+ }
+ std::unique_ptr<wchar_t[]> wpBufWString = std::unique_ptr<wchar_t[]>{ new wchar_t[static_cast<size_t>(iBufferSize)] };
+ if(!MultiByteToWideChar(CP_UTF8, 0, str, -1, wpBufWString.get(), iBufferSize)){
+ return nullptr;
+ }
+ return wpBufWString;
+}
+
+static unsigned long
+stream_read_func(FT_Stream stream, unsigned long offset, unsigned char* buffer, unsigned long count){
+ HANDLE hFile = reinterpret_cast<HANDLE>(stream->descriptor.pointer);
+ DWORD numberOfBytesRead;
+ OVERLAPPED overlapped;
+ overlapped.Offset = offset;
+ overlapped.OffsetHigh = 0;
+ overlapped.hEvent = NULL;
+ if(!ReadFile(hFile, buffer, count, &numberOfBytesRead, &overlapped)){
+ return 0;
+ }
+ return numberOfBytesRead;
+};
+
+static void
+stream_close_func(FT_Stream stream){
+ HANDLE hFile = reinterpret_cast<HANDLE>(stream->descriptor.pointer);
+ CloseHandle(hFile);
+}
+#endif
+
+/*
+ * Return a PangoFontDescription that will resolve to the font file
+ */
+
+PangoFontDescription *
+get_pango_font_description(unsigned char* filepath) {
+ FT_Library library;
+ FT_Face face;
+ PangoFontDescription *desc = pango_font_description_new();
+#ifdef _WIN32
+ // FT_New_Face use fopen.
+ // Unable to find the file when supplied the multibyte string path on the Windows platform and throw error "Could not parse font file".
+ // This workaround fixes this by reading the font file uses win32 wide character API.
+ std::unique_ptr<wchar_t[]> wFilepath = u8ToWide((char*)filepath);
+ if(!wFilepath){
+ return NULL;
+ }
+ HANDLE hFile = CreateFileW(
+ wFilepath.get(),
+ GENERIC_READ,
+ FILE_SHARE_READ,
+ NULL,
+ OPEN_EXISTING,
+ FILE_ATTRIBUTE_NORMAL,
+ NULL
+ );
+ if(!hFile){
+ return NULL;
+ }
+ LARGE_INTEGER liSize;
+ if(!GetFileSizeEx(hFile, &liSize)) {
+ CloseHandle(hFile);
+ return NULL;
+ }
+ FT_Open_Args args;
+ args.flags = FT_OPEN_STREAM;
+ FT_StreamRec stream;
+ stream.base = NULL;
+ stream.size = liSize.QuadPart;
+ stream.pos = 0;
+ stream.descriptor.pointer = hFile;
+ stream.read = stream_read_func;
+ stream.close = stream_close_func;
+ args.stream = &stream;
+ if (
+ !FT_Init_FreeType(&library) &&
+ !FT_Open_Face(library, &args, 0, &face)) {
+#else
+ if (!FT_Init_FreeType(&library) && !FT_New_Face(library, (const char*)filepath, 0, &face)) {
+#endif
+ TT_OS2 *table = (TT_OS2*)FT_Get_Sfnt_Table(face, FT_SFNT_OS2);
+ if (table) {
+ char *family = get_family_name(face);
+
+ if (!family) {
+ pango_font_description_free(desc);
+ FT_Done_Face(face);
+ FT_Done_FreeType(library);
+
+ return NULL;
+ }
+
+ pango_font_description_set_family_static(desc, family);
+ pango_font_description_set_weight(desc, get_pango_weight(table->usWeightClass));
+ pango_font_description_set_stretch(desc, get_pango_stretch(table->usWidthClass));
+ pango_font_description_set_style(desc, get_pango_style(face->style_flags));
+
+ FT_Done_Face(face);
+ FT_Done_FreeType(library);
+
+ return desc;
+ }
+ }
+ pango_font_description_free(desc);
+
+ return NULL;
+}
+
+#ifdef PERFECT_MATCHES_ENABLED
+static void
+fc_font_map_substitute_hook(FcPattern *pat, gpointer data) {
+ FcChar8 *family;
+
+ for (int i = 0; FcPatternGetString(pat, FC_FAMILY, i, &family) == FcResultMatch; i++) {
+ if (family[0] == '@') {
+ FcPatternAddString(pat, FC_POSTSCRIPT_NAME, (FcChar8 *)family + 1);
+ FcPatternRemove(pat, FC_FAMILY, i);
+ i -= 1;
+ }
+ }
+}
+#endif
+
+/*
+ * Register font with the OS
+ */
+
+bool
+register_font(unsigned char *filepath) {
+ bool success;
+
+ #ifdef __APPLE__
+ CFURLRef filepathUrl = CFURLCreateFromFileSystemRepresentation(NULL, filepath, strlen((char*)filepath), false);
+ success = CTFontManagerRegisterFontsForURL(filepathUrl, kCTFontManagerScopeProcess, NULL);
+ #elif defined(_WIN32)
+ std::unique_ptr<wchar_t[]> wFilepath = u8ToWide((char*)filepath);
+ if(wFilepath){
+ success = AddFontResourceExW(wFilepath.get(), FR_PRIVATE, 0) != 0;
+ }else{
+ success = false;
+ }
+
+ #else
+ success = FcConfigAppFontAddFile(FcConfigGetCurrent(), (FcChar8 *)(filepath));
+ #endif
+
+ if (!success) return false;
+
+ // Tell Pango to throw away the current FontMap and create a new one. This
+ // has the effect of registering the new font in Pango by re-looking up all
+ // font families.
+ pango_cairo_font_map_set_default(NULL);
+
+#ifdef PERFECT_MATCHES_ENABLED
+ PangoFontMap* map = pango_cairo_font_map_get_default();
+ PangoFcFontMap* fc_map = PANGO_FC_FONT_MAP(map);
+ pango_fc_font_map_set_default_substitute(fc_map, fc_font_map_substitute_hook, NULL, NULL);
+#endif
+
+ return true;
+}
+
+/*
+ * Deregister font from the OS
+ * Note that Linux (FontConfig) can only dereregister ALL fonts at once.
+ */
+
+bool
+deregister_font(unsigned char *filepath) {
+ bool success;
+
+ #ifdef __APPLE__
+ CFURLRef filepathUrl = CFURLCreateFromFileSystemRepresentation(NULL, filepath, strlen((char*)filepath), false);
+ success = CTFontManagerUnregisterFontsForURL(filepathUrl, kCTFontManagerScopeProcess, NULL);
+ #elif defined(_WIN32)
+ std::unique_ptr<wchar_t[]> wFilepath = u8ToWide((char*)filepath);
+ if(wFilepath){
+ success = RemoveFontResourceExW(wFilepath.get(), FR_PRIVATE, 0) != 0;
+ }else{
+ success = false;
+ }
+ #else
+ FcConfigAppFontClear(FcConfigGetCurrent());
+ success = true;
+ #endif
+
+ if (!success) return false;
+
+ // Tell Pango to throw away the current FontMap and create a new one. This
+ // has the effect of deregistering the font in Pango by re-looking up all
+ // font families.
+ pango_cairo_font_map_set_default(NULL);
+
+ return true;
+}
diff --git a/node_modules/canvas/src/register_font.h b/node_modules/canvas/src/register_font.h
new file mode 100644
index 0000000..a4fcd59
--- /dev/null
+++ b/node_modules/canvas/src/register_font.h
@@ -0,0 +1,7 @@
+#pragma once
+
+#include <pango/pango.h>
+
+PangoFontDescription *get_pango_font_description(unsigned char *filepath);
+bool register_font(unsigned char *filepath);
+bool deregister_font(unsigned char *filepath);
diff --git a/node_modules/canvas/types/Readme.md b/node_modules/canvas/types/Readme.md
new file mode 100644
index 0000000..4beb7f5
--- /dev/null
+++ b/node_modules/canvas/types/Readme.md
@@ -0,0 +1,3 @@
+Notes:
+
+* `"unified-signatures": false` because of https://github.com/Microsoft/dtslint/issues/183
diff --git a/node_modules/canvas/types/index.d.ts b/node_modules/canvas/types/index.d.ts
new file mode 100644
index 0000000..8bcfd10
--- /dev/null
+++ b/node_modules/canvas/types/index.d.ts
@@ -0,0 +1,484 @@
+// TypeScript Version: 3.0
+
+import { Readable } from 'stream'
+
+export interface PngConfig {
+ /** Specifies the ZLIB compression level. Defaults to 6. */
+ compressionLevel?: 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9
+ /**
+ * Any bitwise combination of `PNG_FILTER_NONE`, `PNG_FILTER_SUB`,
+ * `PNG_FILTER_UP`, `PNG_FILTER_AVG` and `PNG_FILTER_PATETH`; or one of
+ * `PNG_ALL_FILTERS` or `PNG_NO_FILTERS` (all are properties of the canvas
+ * instance). These specify which filters *may* be used by libpng. During
+ * encoding, libpng will select the best filter from this list of allowed
+ * filters. Defaults to `canvas.PNG_ALL_FILTERS`.
+ */
+ filters?: number
+ /**
+ * _For creating indexed PNGs._ The palette of colors. Entries should be in
+ * RGBA order.
+ */
+ palette?: Uint8ClampedArray
+ /**
+ * _For creating indexed PNGs._ The index of the background color. Defaults
+ * to 0.
+ */
+ backgroundIndex?: number
+ /** pixels per inch */
+ resolution?: number
+}
+
+export interface JpegConfig {
+ /** Specifies the quality, between 0 and 1. Defaults to 0.75. */
+ quality?: number
+ /** Enables progressive encoding. Defaults to `false`. */
+ progressive?: boolean
+ /** Enables 2x2 chroma subsampling. Defaults to `true`. */
+ chromaSubsampling?: boolean
+}
+
+export interface PdfConfig {
+ title?: string
+ author?: string
+ subject?: string
+ keywords?: string
+ creator?: string
+ creationDate?: Date
+ modDate?: Date
+}
+
+export interface NodeCanvasRenderingContext2DSettings {
+ alpha?: boolean
+ pixelFormat?: 'RGBA32' | 'RGB24' | 'A8' | 'RGB16_565' | 'A1' | 'RGB30'
+}
+
+export class Canvas {
+ width: number
+ height: number
+
+ /** _Non standard._ The type of the canvas. */
+ readonly type: 'image'|'pdf'|'svg'
+
+ /** _Non standard._ Getter. The stride used by the canvas. */
+ readonly stride: number;
+
+ /** Constant used in PNG encoding methods. */
+ readonly PNG_NO_FILTERS: number
+ /** Constant used in PNG encoding methods. */
+ readonly PNG_ALL_FILTERS: number
+ /** Constant used in PNG encoding methods. */
+ readonly PNG_FILTER_NONE: number
+ /** Constant used in PNG encoding methods. */
+ readonly PNG_FILTER_SUB: number
+ /** Constant used in PNG encoding methods. */
+ readonly PNG_FILTER_UP: number
+ /** Constant used in PNG encoding methods. */
+ readonly PNG_FILTER_AVG: number
+ /** Constant used in PNG encoding methods. */
+ readonly PNG_FILTER_PAETH: number
+
+ constructor(width: number, height: number, type?: 'image'|'pdf'|'svg')
+
+ getContext(contextId: '2d', contextAttributes?: NodeCanvasRenderingContext2DSettings): CanvasRenderingContext2D
+
+ /**
+ * For image canvases, encodes the canvas as a PNG. For PDF canvases,
+ * encodes the canvas as a PDF. For SVG canvases, encodes the canvas as an
+ * SVG.
+ */
+ toBuffer(cb: (err: Error|null, result: Buffer) => void): void
+ toBuffer(cb: (err: Error|null, result: Buffer) => void, mimeType: 'image/png', config?: PngConfig): void
+ toBuffer(cb: (err: Error|null, result: Buffer) => void, mimeType: 'image/jpeg', config?: JpegConfig): void
+
+ /**
+ * For image canvases, encodes the canvas as a PNG. For PDF canvases,
+ * encodes the canvas as a PDF. For SVG canvases, encodes the canvas as an
+ * SVG.
+ */
+ toBuffer(): Buffer
+ toBuffer(mimeType: 'image/png', config?: PngConfig): Buffer
+ toBuffer(mimeType: 'image/jpeg', config?: JpegConfig): Buffer
+ toBuffer(mimeType: 'application/pdf', config?: PdfConfig): Buffer
+
+ /**
+ * Returns the unencoded pixel data, top-to-bottom. On little-endian (most)
+ * systems, the array will be ordered BGRA; on big-endian systems, it will
+ * be ARGB.
+ */
+ toBuffer(mimeType: 'raw'): Buffer
+
+ createPNGStream(config?: PngConfig): PNGStream
+ createJPEGStream(config?: JpegConfig): JPEGStream
+ createPDFStream(config?: PdfConfig): PDFStream
+
+ /** Defaults to PNG image. */
+ toDataURL(): string
+ toDataURL(mimeType: 'image/png'): string
+ toDataURL(mimeType: 'image/jpeg', quality?: number): string
+ /** _Non-standard._ Defaults to PNG image. */
+ toDataURL(cb: (err: Error|null, result: string) => void): void
+ /** _Non-standard._ */
+ toDataURL(mimeType: 'image/png', cb: (err: Error|null, result: string) => void): void
+ /** _Non-standard._ */
+ toDataURL(mimeType: 'image/jpeg', cb: (err: Error|null, result: string) => void): void
+ /** _Non-standard._ */
+ toDataURL(mimeType: 'image/jpeg', config: JpegConfig, cb: (err: Error|null, result: string) => void): void
+ /** _Non-standard._ */
+ toDataURL(mimeType: 'image/jpeg', quality: number, cb: (err: Error|null, result: string) => void): void
+}
+
+export interface TextMetrics {
+ readonly actualBoundingBoxAscent: number;
+ readonly actualBoundingBoxDescent: number;
+ readonly actualBoundingBoxLeft: number;
+ readonly actualBoundingBoxRight: number;
+ readonly fontBoundingBoxAscent: number;
+ readonly fontBoundingBoxDescent: number;
+ readonly width: number;
+}
+
+export type CanvasFillRule = 'evenodd' | 'nonzero';
+
+export type GlobalCompositeOperation =
+ | 'clear'
+ | 'copy'
+ | 'destination'
+ | 'source-over'
+ | 'destination-over'
+ | 'source-in'
+ | 'destination-in'
+ | 'source-out'
+ | 'destination-out'
+ | 'source-atop'
+ | 'destination-atop'
+ | 'xor'
+ | 'lighter'
+ | 'normal'
+ | 'multiply'
+ | 'screen'
+ | 'overlay'
+ | 'darken'
+ | 'lighten'
+ | 'color-dodge'
+ | 'color-burn'
+ | 'hard-light'
+ | 'soft-light'
+ | 'difference'
+ | 'exclusion'
+ | 'hue'
+ | 'saturation'
+ | 'color'
+ | 'luminosity'
+ | 'saturate';
+
+export type CanvasLineCap = 'butt' | 'round' | 'square';
+
+export type CanvasLineJoin = 'bevel' | 'miter' | 'round';
+
+export type CanvasTextBaseline = 'alphabetic' | 'bottom' | 'hanging' | 'ideographic' | 'middle' | 'top';
+
+export type CanvasTextAlign = 'center' | 'end' | 'left' | 'right' | 'start';
+
+export class CanvasRenderingContext2D {
+ drawImage(image: Canvas|Image, dx: number, dy: number): void
+ drawImage(image: Canvas|Image, dx: number, dy: number, dw: number, dh: number): void
+ drawImage(image: Canvas|Image, sx: number, sy: number, sw: number, sh: number, dx: number, dy: number, dw: number, dh: number): void
+ putImageData(imagedata: ImageData, dx: number, dy: number): void;
+ putImageData(imagedata: ImageData, dx: number, dy: number, dirtyX: number, dirtyY: number, dirtyWidth: number, dirtyHeight: number): void;
+ getImageData(sx: number, sy: number, sw: number, sh: number): ImageData;
+ createImageData(sw: number, sh: number): ImageData;
+ createImageData(imagedata: ImageData): ImageData;
+ /**
+ * For PDF canvases, adds another page. If width and/or height are omitted,
+ * the canvas's initial size is used.
+ */
+ addPage(width?: number, height?: number): void
+ save(): void;
+ restore(): void;
+ rotate(angle: number): void;
+ translate(x: number, y: number): void;
+ transform(a: number, b: number, c: number, d: number, e: number, f: number): void;
+ getTransform(): DOMMatrix;
+ resetTransform(): void;
+ setTransform(transform?: DOMMatrix): void;
+ isPointInPath(x: number, y: number, fillRule?: CanvasFillRule): boolean;
+ scale(x: number, y: number): void;
+ clip(fillRule?: CanvasFillRule): void;
+ fill(fillRule?: CanvasFillRule): void;
+ stroke(): void;
+ fillText(text: string, x: number, y: number, maxWidth?: number): void;
+ strokeText(text: string, x: number, y: number, maxWidth?: number): void;
+ fillRect(x: number, y: number, w: number, h: number): void;
+ strokeRect(x: number, y: number, w: number, h: number): void;
+ clearRect(x: number, y: number, w: number, h: number): void;
+ rect(x: number, y: number, w: number, h: number): void;
+ roundRect(x: number, y: number, w: number, h: number, radii?: number | number[]): void;
+ measureText(text: string): TextMetrics;
+ moveTo(x: number, y: number): void;
+ lineTo(x: number, y: number): void;
+ bezierCurveTo(cp1x: number, cp1y: number, cp2x: number, cp2y: number, x: number, y: number): void;
+ quadraticCurveTo(cpx: number, cpy: number, x: number, y: number): void;
+ beginPath(): void;
+ closePath(): void;
+ arc(x: number, y: number, radius: number, startAngle: number, endAngle: number, counterclockwise?: boolean): void;
+ arcTo(x1: number, y1: number, x2: number, y2: number, radius: number): void;
+ ellipse(x: number, y: number, radiusX: number, radiusY: number, rotation: number, startAngle: number, endAngle: number, counterclockwise?: boolean): void;
+ setLineDash(segments: number[]): void;
+ getLineDash(): number[];
+ createPattern(image: Canvas|Image, repetition: 'repeat' | 'repeat-x' | 'repeat-y' | 'no-repeat' | '' | null): CanvasPattern
+ createLinearGradient(x0: number, y0: number, x1: number, y1: number): CanvasGradient;
+ createRadialGradient(x0: number, y0: number, r0: number, x1: number, y1: number, r1: number): CanvasGradient;
+ /**
+ * _Non-standard_. Defaults to 'good'. Affects pattern (gradient, image,
+ * etc.) rendering quality.
+ */
+ patternQuality: 'fast' | 'good' | 'best' | 'nearest' | 'bilinear'
+ imageSmoothingEnabled: boolean;
+ globalCompositeOperation: GlobalCompositeOperation;
+ globalAlpha: number;
+ shadowColor: string;
+ miterLimit: number;
+ lineWidth: number;
+ lineCap: CanvasLineCap;
+ lineJoin: CanvasLineJoin;
+ lineDashOffset: number;
+ shadowOffsetX: number;
+ shadowOffsetY: number;
+ shadowBlur: number;
+ /** _Non-standard_. Sets the antialiasing mode. */
+ antialias: 'default' | 'gray' | 'none' | 'subpixel'
+ /**
+ * Defaults to 'path'. The effect depends on the canvas type:
+ *
+ * * **Standard (image)** `'glyph'` and `'path'` both result in rasterized
+ * text. Glyph mode is faster than path, but may result in lower-quality
+ * text, especially when rotated or translated.
+ *
+ * * **PDF** `'glyph'` will embed text instead of paths into the PDF. This
+ * is faster to encode, faster to open with PDF viewers, yields a smaller
+ * file size and makes the text selectable. The subset of the font needed
+ * to render the glyphs will be embedded in the PDF. This is usually the
+ * mode you want to use with PDF canvases.
+ *
+ * * **SVG** glyph does not cause `<text>` elements to be produced as one
+ * might expect ([cairo bug](https://gitlab.freedesktop.org/cairo/cairo/issues/253)).
+ * Rather, glyph will create a `<defs>` section with a `<symbol>` for each
+ * glyph, then those glyphs be reused via `<use>` elements. `'path'` mode
+ * creates a `<path>` element for each text string. glyph mode is faster
+ * and yields a smaller file size.
+ *
+ * In glyph mode, `ctx.strokeText()` and `ctx.fillText()` behave the same
+ * (aside from using the stroke and fill style, respectively).
+ */
+ textDrawingMode: 'path' | 'glyph'
+ /**
+ * _Non-standard_. Defaults to 'good'. Like `patternQuality`, but applies to
+ * transformations affecting more than just patterns.
+ */
+ quality: 'fast' | 'good' | 'best' | 'nearest' | 'bilinear'
+ /** Returns or sets a `DOMMatrix` for the current transformation matrix. */
+ currentTransform: DOMMatrix
+ fillStyle: string | CanvasGradient | CanvasPattern;
+ strokeStyle: string | CanvasGradient | CanvasPattern;
+ font: string;
+ textBaseline: CanvasTextBaseline;
+ textAlign: CanvasTextAlign;
+ canvas: Canvas;
+}
+
+export class CanvasGradient {
+ addColorStop(offset: number, color: string): void;
+}
+
+export class CanvasPattern {
+ setTransform(transform?: DOMMatrix): void;
+}
+
+// This does not extend HTMLImageElement because there are dozens of inherited
+// methods and properties that we do not provide.
+export class Image {
+ /** Track image data */
+ static readonly MODE_IMAGE: number
+ /** Track MIME data */
+ static readonly MODE_MIME: number
+
+ /**
+ * The URL, `data:` URI or local file path of the image to be loaded, or a
+ * Buffer instance containing an encoded image.
+ */
+ src: string | Buffer
+ /** Retrieves whether the object is fully loaded. */
+ readonly complete: boolean
+ /** Sets or retrieves the height of the image. */
+ height: number
+ /** Sets or retrieves the width of the image. */
+ width: number
+
+ /** The original height of the image resource before sizing. */
+ readonly naturalHeight: number
+ /** The original width of the image resource before sizing. */
+ readonly naturalWidth: number
+ /**
+ * Applies to JPEG images drawn to PDF canvases only. Setting
+ * `img.dataMode = Image.MODE_MIME` or `Image.MODE_MIME|Image.MODE_IMAGE`
+ * enables image MIME data tracking. When MIME data is tracked, PDF canvases
+ * can embed JPEGs directly into the output, rather than re-encoding into
+ * PNG. This can drastically reduce filesize and speed up rendering.
+ */
+ dataMode: number
+
+ onload: (() => void) | null;
+ onerror: ((err: Error) => void) | null;
+}
+
+/**
+ * Creates a Canvas instance. This function works in both Node.js and Web
+ * browsers, where there is no Canvas constructor.
+ * @param type Optionally specify to create a PDF or SVG canvas. Defaults to an
+ * image canvas.
+ */
+export function createCanvas(width: number, height: number, type?: 'pdf'|'svg'): Canvas
+
+/**
+ * Creates an ImageData instance. This function works in both Node.js and Web
+ * browsers.
+ * @param data An array containing the pixel representation of the image.
+ * @param height If omitted, the height is calculated based on the array's size
+ * and `width`.
+ */
+export function createImageData(data: Uint8ClampedArray, width: number, height?: number): ImageData
+/**
+ * _Non-standard._ Creates an ImageData instance for an alternative pixel
+ * format, such as RGB16_565
+ * @param data An array containing the pixel representation of the image.
+ * @param height If omitted, the height is calculated based on the array's size
+ * and `width`.
+ */
+export function createImageData(data: Uint16Array, width: number, height?: number): ImageData
+/**
+ * Creates an ImageData instance. This function works in both Node.js and Web
+ * browsers.
+ */
+export function createImageData(width: number, height: number): ImageData
+
+/**
+ * Convenience function for loading an image with a Promise interface. This
+ * function works in both Node.js and Web browsers; however, the `src` must be
+ * a string in Web browsers (it can only be a Buffer in Node.js).
+ * @param src URL, `data: ` URI or (Node.js only) a local file path or Buffer
+ * instance.
+ */
+export function loadImage(src: string|Buffer, options?: any): Promise<Image>
+
+/**
+ * Registers a font that is not installed as a system font. This must be used
+ * before creating Canvas instances.
+ * @param path Path to local font file.
+ * @param fontFace Description of the font face, corresponding to CSS properties
+ * used in `@font-face` rules.
+ */
+export function registerFont(path: string, fontFace: {family: string, weight?: string, style?: string}): void
+
+/**
+ * Unloads all fonts
+ */
+export function deregisterAllFonts(): void;
+
+/** This class must not be constructed directly; use `canvas.createPNGStream()`. */
+export class PNGStream extends Readable {}
+/** This class must not be constructed directly; use `canvas.createJPEGStream()`. */
+export class JPEGStream extends Readable {}
+/** This class must not be constructed directly; use `canvas.createPDFStream()`. */
+export class PDFStream extends Readable {}
+
+export class DOMPoint {
+ w: number;
+ x: number;
+ y: number;
+ z: number;
+}
+
+export class DOMMatrix {
+ constructor(init: string | number[]);
+ toString(): string;
+ multiply(other?: DOMMatrix): DOMMatrix;
+ multiplySelf(other?: DOMMatrix): DOMMatrix;
+ preMultiplySelf(other?: DOMMatrix): DOMMatrix;
+ translate(tx?: number, ty?: number, tz?: number): DOMMatrix;
+ translateSelf(tx?: number, ty?: number, tz?: number): DOMMatrix;
+ scale(scaleX?: number, scaleY?: number, scaleZ?: number, originX?: number, originY?: number, originZ?: number): DOMMatrix;
+ scale3d(scale?: number, originX?: number, originY?: number, originZ?: number): DOMMatrix;
+ scale3dSelf(scale?: number, originX?: number, originY?: number, originZ?: number): DOMMatrix;
+ scaleSelf(scaleX?: number, scaleY?: number, scaleZ?: number, originX?: number, originY?: number, originZ?: number): DOMMatrix;
+ rotateFromVector(x?: number, y?: number): DOMMatrix;
+ rotateFromVectorSelf(x?: number, y?: number): DOMMatrix;
+ rotate(rotX?: number, rotY?: number, rotZ?: number): DOMMatrix;
+ rotateSelf(rotX?: number, rotY?: number, rotZ?: number): DOMMatrix;
+ rotateAxisAngle(x?: number, y?: number, z?: number, angle?: number): DOMMatrix;
+ rotateAxisAngleSelf(x?: number, y?: number, z?: number, angle?: number): DOMMatrix;
+ skewX(sx?: number): DOMMatrix;
+ skewXSelf(sx?: number): DOMMatrix;
+ skewY(sy?: number): DOMMatrix;
+ skewYSelf(sy?: number): DOMMatrix;
+ flipX(): DOMMatrix;
+ flipY(): DOMMatrix;
+ inverse(): DOMMatrix;
+ invertSelf(): DOMMatrix;
+ setMatrixValue(transformList: string): DOMMatrix;
+ transformPoint(point?: DOMPoint): DOMPoint;
+ toFloat32Array(): Float32Array;
+ toFloat64Array(): Float64Array;
+ readonly is2D: boolean;
+ readonly isIdentity: boolean;
+ a: number;
+ b: number;
+ c: number;
+ d: number;
+ e: number;
+ f: number;
+ m11: number;
+ m12: number;
+ m13: number;
+ m14: number;
+ m21: number;
+ m22: number;
+ m23: number;
+ m24: number;
+ m31: number;
+ m32: number;
+ m33: number;
+ m34: number;
+ m41: number;
+ m42: number;
+ m43: number;
+ m44: number;
+ static fromMatrix(other: DOMMatrix): DOMMatrix;
+ static fromFloat32Array(a: Float32Array): DOMMatrix;
+ static fromFloat64Array(a: Float64Array): DOMMatrix;
+}
+
+export class ImageData {
+ constructor(sw: number, sh: number);
+ constructor(data: Uint8ClampedArray, sw: number, sh?: number);
+ readonly data: Uint8ClampedArray;
+ readonly height: number;
+ readonly width: number;
+}
+
+// This is marked private, but is exported...
+// export function parseFont(description: string): object
+
+// Not documented: backends
+
+/** Library version. */
+export const version: string
+/** Cairo version. */
+export const cairoVersion: string
+/** jpeglib version, if built with JPEG support. */
+export const jpegVersion: string | undefined
+/** giflib version, if built with GIF support. */
+export const gifVersion: string | undefined
+/** freetype version. */
+export const freetypeVersion: string
+/** rsvg version. */
+export const rsvgVersion: string | undefined
diff --git a/node_modules/canvas/util/has_lib.js b/node_modules/canvas/util/has_lib.js
new file mode 100644
index 0000000..02d7090
--- /dev/null
+++ b/node_modules/canvas/util/has_lib.js
@@ -0,0 +1,119 @@
+const query = process.argv[2]
+const fs = require('fs')
+const childProcess = require('child_process')
+
+const SYSTEM_PATHS = [
+ '/lib',
+ '/usr/lib',
+ '/usr/lib64',
+ '/usr/local/lib',
+ '/opt/local/lib',
+ '/opt/homebrew/lib',
+ '/usr/lib/x86_64-linux-gnu',
+ '/usr/lib/i386-linux-gnu',
+ '/usr/lib/arm-linux-gnueabihf',
+ '/usr/lib/arm-linux-gnueabi',
+ '/usr/lib/aarch64-linux-gnu'
+]
+
+/**
+ * Checks for lib using ldconfig if present, or searching SYSTEM_PATHS
+ * otherwise.
+ * @param {string} lib - library name, e.g. 'jpeg' in 'libjpeg64.so' (see first line)
+ * @return {boolean} exists
+ */
+function hasSystemLib (lib) {
+ const libName = 'lib' + lib + '.+(so|dylib)'
+ const libNameRegex = new RegExp(libName)
+
+ // Try using ldconfig on linux systems
+ if (hasLdconfig()) {
+ try {
+ if (childProcess.execSync('ldconfig -p 2>/dev/null | grep -E "' + libName + '"').length) {
+ return true
+ }
+ } catch (err) {
+ // noop -- proceed to other search methods
+ }
+ }
+
+ // Try checking common library locations
+ return SYSTEM_PATHS.some(function (systemPath) {
+ try {
+ const dirListing = fs.readdirSync(systemPath)
+ return dirListing.some(function (file) {
+ return libNameRegex.test(file)
+ })
+ } catch (err) {
+ return false
+ }
+ })
+}
+
+/**
+ * Checks for ldconfig on the path and /sbin
+ * @return {boolean} exists
+ */
+function hasLdconfig () {
+ try {
+ // Add /sbin to path as ldconfig is located there on some systems -- e.g.
+ // Debian (and it can still be used by unprivileged users):
+ childProcess.execSync('export PATH="$PATH:/sbin"')
+ process.env.PATH = '...'
+ // execSync throws on nonzero exit
+ childProcess.execSync('hash ldconfig 2>/dev/null')
+ return true
+ } catch (err) {
+ return false
+ }
+}
+
+/**
+ * Checks for freetype2 with --cflags-only-I
+ * @return Boolean exists
+ */
+function hasFreetype () {
+ try {
+ if (childProcess.execSync('pkg-config cairo --cflags-only-I 2>/dev/null | grep freetype2').length) {
+ return true
+ }
+ } catch (err) {
+ // noop
+ }
+ return false
+}
+
+/**
+ * Checks for lib using pkg-config.
+ * @param {string} lib - library name
+ * @return {boolean} exists
+ */
+function hasPkgconfigLib (lib) {
+ try {
+ // execSync throws on nonzero exit
+ childProcess.execSync('pkg-config --exists "' + lib + '" 2>/dev/null')
+ return true
+ } catch (err) {
+ return false
+ }
+}
+
+function main (query) {
+ switch (query) {
+ case 'gif':
+ case 'cairo':
+ return hasSystemLib(query)
+ case 'pango':
+ return hasPkgconfigLib(query)
+ case 'freetype':
+ return hasFreetype()
+ case 'jpeg':
+ return hasPkgconfigLib('libjpeg')
+ case 'rsvg':
+ return hasPkgconfigLib('librsvg-2.0')
+ default:
+ throw new Error('Unknown library: ' + query)
+ }
+}
+
+process.stdout.write(main(query).toString())
diff --git a/node_modules/canvas/util/win_jpeg_lookup.js b/node_modules/canvas/util/win_jpeg_lookup.js
new file mode 100644
index 0000000..79815f6
--- /dev/null
+++ b/node_modules/canvas/util/win_jpeg_lookup.js
@@ -0,0 +1,21 @@
+const fs = require('fs')
+const paths = ['C:/libjpeg-turbo']
+
+if (process.arch === 'x64') {
+ paths.unshift('C:/libjpeg-turbo64')
+}
+
+paths.forEach(function (path) {
+ if (exists(path)) {
+ process.stdout.write(path)
+ process.exit()
+ }
+})
+
+function exists (path) {
+ try {
+ return fs.lstatSync(path).isDirectory()
+ } catch (e) {
+ return false
+ }
+}
diff --git a/node_modules/crypto-js/CONTRIBUTING.md b/node_modules/crypto-js/CONTRIBUTING.md
new file mode 100644
index 0000000..09bf774
--- /dev/null
+++ b/node_modules/crypto-js/CONTRIBUTING.md
@@ -0,0 +1,28 @@
+# Contribution
+
+# Git Flow
+
+The crypto-js project uses [git flow](https://github.com/nvie/gitflow) to manage branches.
+Do your changes on the `develop` or even better on a `feature/*` branch. Don't do any changes on the `master` branch.
+
+# Pull request
+
+Target your pull request on `develop` branch. Other pull request won't be accepted.
+
+# How to build
+
+1. Clone
+
+2. Run
+
+ ```sh
+ npm install
+ ```
+
+3. Run
+
+ ```sh
+ npm run build
+ ```
+
+4. Check `build` folder
\ No newline at end of file
diff --git a/node_modules/crypto-js/LICENSE b/node_modules/crypto-js/LICENSE
new file mode 100644
index 0000000..b0828e5
--- /dev/null
+++ b/node_modules/crypto-js/LICENSE
@@ -0,0 +1,24 @@
+# License
+
+[The MIT License (MIT)](http://opensource.org/licenses/MIT)
+
+Copyright (c) 2009-2013 Jeff Mott
+Copyright (c) 2013-2016 Evan Vosberg
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in
+all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+THE SOFTWARE.
diff --git a/node_modules/crypto-js/README.md b/node_modules/crypto-js/README.md
new file mode 100644
index 0000000..6a9bcdf
--- /dev/null
+++ b/node_modules/crypto-js/README.md
@@ -0,0 +1,275 @@
+# crypto-js
+
+JavaScript library of crypto standards.
+
+## Discontinued
+
+Active development of CryptoJS has been discontinued. This library is no longer maintained.
+
+Nowadays, NodeJS and modern browsers have a native `Crypto` module. The latest version of CryptoJS already uses the native Crypto module for random number generation, since `Math.random()` is not crypto-safe. Further development of CryptoJS would result in it only being a wrapper of native Crypto. Therefore, development and maintenance has been discontinued, it is time to go for the native `crypto` module.
+
+## Node.js (Install)
+
+Requirements:
+
+- Node.js
+- npm (Node.js package manager)
+
+```bash
+npm install crypto-js
+```
+
+### Usage
+
+ES6 import for typical API call signing use case:
+
+```javascript
+import sha256 from 'crypto-js/sha256';
+import hmacSHA512 from 'crypto-js/hmac-sha512';
+import Base64 from 'crypto-js/enc-base64';
+
+const message, nonce, path, privateKey; // ...
+const hashDigest = sha256(nonce + message);
+const hmacDigest = Base64.stringify(hmacSHA512(path + hashDigest, privateKey));
+```
+
+Modular include:
+
+```javascript
+var AES = require("crypto-js/aes");
+var SHA256 = require("crypto-js/sha256");
+...
+console.log(SHA256("Message"));
+```
+
+Including all libraries, for access to extra methods:
+
+```javascript
+var CryptoJS = require("crypto-js");
+console.log(CryptoJS.HmacSHA1("Message", "Key"));
+```
+
+## Client (browser)
+
+Requirements:
+
+- Node.js
+- Bower (package manager for frontend)
+
+```bash
+bower install crypto-js
+```
+
+### Usage
+
+Modular include:
+
+```javascript
+require.config({
+ packages: [
+ {
+ name: 'crypto-js',
+ location: 'path-to/bower_components/crypto-js',
+ main: 'index'
+ }
+ ]
+});
+
+require(["crypto-js/aes", "crypto-js/sha256"], function (AES, SHA256) {
+ console.log(SHA256("Message"));
+});
+```
+
+Including all libraries, for access to extra methods:
+
+```javascript
+// Above-mentioned will work or use this simple form
+require.config({
+ paths: {
+ 'crypto-js': 'path-to/bower_components/crypto-js/crypto-js'
+ }
+});
+
+require(["crypto-js"], function (CryptoJS) {
+ console.log(CryptoJS.HmacSHA1("Message", "Key"));
+});
+```
+
+### Usage without RequireJS
+
+```html
+<script type="text/javascript" src="path-to/bower_components/crypto-js/crypto-js.js"></script>
+<script type="text/javascript">
+ var encrypted = CryptoJS.AES(...);
+ var encrypted = CryptoJS.SHA256(...);
+</script>
+```
+
+## API
+
+See: https://cryptojs.gitbook.io/docs/
+
+### AES Encryption
+
+#### Plain text encryption
+
+```javascript
+var CryptoJS = require("crypto-js");
+
+// Encrypt
+var ciphertext = CryptoJS.AES.encrypt('my message', 'secret key 123').toString();
+
+// Decrypt
+var bytes = CryptoJS.AES.decrypt(ciphertext, 'secret key 123');
+var originalText = bytes.toString(CryptoJS.enc.Utf8);
+
+console.log(originalText); // 'my message'
+```
+
+#### Object encryption
+
+```javascript
+var CryptoJS = require("crypto-js");
+
+var data = [{id: 1}, {id: 2}]
+
+// Encrypt
+var ciphertext = CryptoJS.AES.encrypt(JSON.stringify(data), 'secret key 123').toString();
+
+// Decrypt
+var bytes = CryptoJS.AES.decrypt(ciphertext, 'secret key 123');
+var decryptedData = JSON.parse(bytes.toString(CryptoJS.enc.Utf8));
+
+console.log(decryptedData); // [{id: 1}, {id: 2}]
+```
+
+### List of modules
+
+
+- ```crypto-js/core```
+- ```crypto-js/x64-core```
+- ```crypto-js/lib-typedarrays```
+
+---
+
+- ```crypto-js/md5```
+- ```crypto-js/sha1```
+- ```crypto-js/sha256```
+- ```crypto-js/sha224```
+- ```crypto-js/sha512```
+- ```crypto-js/sha384```
+- ```crypto-js/sha3```
+- ```crypto-js/ripemd160```
+
+---
+
+- ```crypto-js/hmac-md5```
+- ```crypto-js/hmac-sha1```
+- ```crypto-js/hmac-sha256```
+- ```crypto-js/hmac-sha224```
+- ```crypto-js/hmac-sha512```
+- ```crypto-js/hmac-sha384```
+- ```crypto-js/hmac-sha3```
+- ```crypto-js/hmac-ripemd160```
+
+---
+
+- ```crypto-js/pbkdf2```
+
+---
+
+- ```crypto-js/aes```
+- ```crypto-js/tripledes```
+- ```crypto-js/rc4```
+- ```crypto-js/rabbit```
+- ```crypto-js/rabbit-legacy```
+- ```crypto-js/evpkdf```
+
+---
+
+- ```crypto-js/format-openssl```
+- ```crypto-js/format-hex```
+
+---
+
+- ```crypto-js/enc-latin1```
+- ```crypto-js/enc-utf8```
+- ```crypto-js/enc-hex```
+- ```crypto-js/enc-utf16```
+- ```crypto-js/enc-base64```
+
+---
+
+- ```crypto-js/mode-cfb```
+- ```crypto-js/mode-ctr```
+- ```crypto-js/mode-ctr-gladman```
+- ```crypto-js/mode-ofb```
+- ```crypto-js/mode-ecb```
+
+---
+
+- ```crypto-js/pad-pkcs7```
+- ```crypto-js/pad-ansix923```
+- ```crypto-js/pad-iso10126```
+- ```crypto-js/pad-iso97971```
+- ```crypto-js/pad-zeropadding```
+- ```crypto-js/pad-nopadding```
+
+
+## Release notes
+
+### 4.2.0
+
+Change default hash algorithm and iteration's for PBKDF2 to prevent weak security by using the default configuration.
+
+Custom KDF Hasher
+
+Blowfish support
+
+### 4.1.1
+
+Fix module order in bundled release.
+
+Include the browser field in the released package.json.
+
+### 4.1.0
+
+Added url safe variant of base64 encoding. [357](https://github.com/brix/crypto-js/pull/357)
+
+Avoid webpack to add crypto-browser package. [364](https://github.com/brix/crypto-js/pull/364)
+
+### 4.0.0
+
+This is an update including breaking changes for some environments.
+
+In this version `Math.random()` has been replaced by the random methods of the native crypto module.
+
+For this reason CryptoJS might not run in some JavaScript environments without native crypto module. Such as IE 10 or before or React Native.
+
+### 3.3.0
+
+Rollback, `3.3.0` is the same as `3.1.9-1`.
+
+The move of using native secure crypto module will be shifted to a new `4.x.x` version. As it is a breaking change the impact is too big for a minor release.
+
+### 3.2.1
+
+The usage of the native crypto module has been fixed. The import and access of the native crypto module has been improved.
+
+### 3.2.0
+
+In this version `Math.random()` has been replaced by the random methods of the native crypto module.
+
+For this reason CryptoJS might does not run in some JavaScript environments without native crypto module. Such as IE 10 or before.
+
+If it's absolute required to run CryptoJS in such an environment, stay with `3.1.x` version. Encrypting and decrypting stays compatible. But keep in mind `3.1.x` versions still use `Math.random()` which is cryptographically not secure, as it's not random enough.
+
+This version came along with `CRITICAL` `BUG`.
+
+DO NOT USE THIS VERSION! Please, go for a newer version!
+
+### 3.1.x
+
+The `3.1.x` are based on the original CryptoJS, wrapped in CommonJS modules.
+
+
diff --git a/node_modules/crypto-js/aes.js b/node_modules/crypto-js/aes.js
new file mode 100644
index 0000000..166e3ea
--- /dev/null
+++ b/node_modules/crypto-js/aes.js
@@ -0,0 +1,234 @@
+;(function (root, factory, undef) {
+ if (typeof exports === "object") {
+ // CommonJS
+ module.exports = exports = factory(require("./core"), require("./enc-base64"), require("./md5"), require("./evpkdf"), require("./cipher-core"));
+ }
+ else if (typeof define === "function" && define.amd) {
+ // AMD
+ define(["./core", "./enc-base64", "./md5", "./evpkdf", "./cipher-core"], factory);
+ }
+ else {
+ // Global (browser)
+ factory(root.CryptoJS);
+ }
+}(this, function (CryptoJS) {
+
+ (function () {
+ // Shortcuts
+ var C = CryptoJS;
+ var C_lib = C.lib;
+ var BlockCipher = C_lib.BlockCipher;
+ var C_algo = C.algo;
+
+ // Lookup tables
+ var SBOX = [];
+ var INV_SBOX = [];
+ var SUB_MIX_0 = [];
+ var SUB_MIX_1 = [];
+ var SUB_MIX_2 = [];
+ var SUB_MIX_3 = [];
+ var INV_SUB_MIX_0 = [];
+ var INV_SUB_MIX_1 = [];
+ var INV_SUB_MIX_2 = [];
+ var INV_SUB_MIX_3 = [];
+
+ // Compute lookup tables
+ (function () {
+ // Compute double table
+ var d = [];
+ for (var i = 0; i < 256; i++) {
+ if (i < 128) {
+ d[i] = i << 1;
+ } else {
+ d[i] = (i << 1) ^ 0x11b;
+ }
+ }
+
+ // Walk GF(2^8)
+ var x = 0;
+ var xi = 0;
+ for (var i = 0; i < 256; i++) {
+ // Compute sbox
+ var sx = xi ^ (xi << 1) ^ (xi << 2) ^ (xi << 3) ^ (xi << 4);
+ sx = (sx >>> 8) ^ (sx & 0xff) ^ 0x63;
+ SBOX[x] = sx;
+ INV_SBOX[sx] = x;
+
+ // Compute multiplication
+ var x2 = d[x];
+ var x4 = d[x2];
+ var x8 = d[x4];
+
+ // Compute sub bytes, mix columns tables
+ var t = (d[sx] * 0x101) ^ (sx * 0x1010100);
+ SUB_MIX_0[x] = (t << 24) | (t >>> 8);
+ SUB_MIX_1[x] = (t << 16) | (t >>> 16);
+ SUB_MIX_2[x] = (t << 8) | (t >>> 24);
+ SUB_MIX_3[x] = t;
+
+ // Compute inv sub bytes, inv mix columns tables
+ var t = (x8 * 0x1010101) ^ (x4 * 0x10001) ^ (x2 * 0x101) ^ (x * 0x1010100);
+ INV_SUB_MIX_0[sx] = (t << 24) | (t >>> 8);
+ INV_SUB_MIX_1[sx] = (t << 16) | (t >>> 16);
+ INV_SUB_MIX_2[sx] = (t << 8) | (t >>> 24);
+ INV_SUB_MIX_3[sx] = t;
+
+ // Compute next counter
+ if (!x) {
+ x = xi = 1;
+ } else {
+ x = x2 ^ d[d[d[x8 ^ x2]]];
+ xi ^= d[d[xi]];
+ }
+ }
+ }());
+
+ // Precomputed Rcon lookup
+ var RCON = [0x00, 0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80, 0x1b, 0x36];
+
+ /**
+ * AES block cipher algorithm.
+ */
+ var AES = C_algo.AES = BlockCipher.extend({
+ _doReset: function () {
+ var t;
+
+ // Skip reset of nRounds has been set before and key did not change
+ if (this._nRounds && this._keyPriorReset === this._key) {
+ return;
+ }
+
+ // Shortcuts
+ var key = this._keyPriorReset = this._key;
+ var keyWords = key.words;
+ var keySize = key.sigBytes / 4;
+
+ // Compute number of rounds
+ var nRounds = this._nRounds = keySize + 6;
+
+ // Compute number of key schedule rows
+ var ksRows = (nRounds + 1) * 4;
+
+ // Compute key schedule
+ var keySchedule = this._keySchedule = [];
+ for (var ksRow = 0; ksRow < ksRows; ksRow++) {
+ if (ksRow < keySize) {
+ keySchedule[ksRow] = keyWords[ksRow];
+ } else {
+ t = keySchedule[ksRow - 1];
+
+ if (!(ksRow % keySize)) {
+ // Rot word
+ t = (t << 8) | (t >>> 24);
+
+ // Sub word
+ t = (SBOX[t >>> 24] << 24) | (SBOX[(t >>> 16) & 0xff] << 16) | (SBOX[(t >>> 8) & 0xff] << 8) | SBOX[t & 0xff];
+
+ // Mix Rcon
+ t ^= RCON[(ksRow / keySize) | 0] << 24;
+ } else if (keySize > 6 && ksRow % keySize == 4) {
+ // Sub word
+ t = (SBOX[t >>> 24] << 24) | (SBOX[(t >>> 16) & 0xff] << 16) | (SBOX[(t >>> 8) & 0xff] << 8) | SBOX[t & 0xff];
+ }
+
+ keySchedule[ksRow] = keySchedule[ksRow - keySize] ^ t;
+ }
+ }
+
+ // Compute inv key schedule
+ var invKeySchedule = this._invKeySchedule = [];
+ for (var invKsRow = 0; invKsRow < ksRows; invKsRow++) {
+ var ksRow = ksRows - invKsRow;
+
+ if (invKsRow % 4) {
+ var t = keySchedule[ksRow];
+ } else {
+ var t = keySchedule[ksRow - 4];
+ }
+
+ if (invKsRow < 4 || ksRow <= 4) {
+ invKeySchedule[invKsRow] = t;
+ } else {
+ invKeySchedule[invKsRow] = INV_SUB_MIX_0[SBOX[t >>> 24]] ^ INV_SUB_MIX_1[SBOX[(t >>> 16) & 0xff]] ^
+ INV_SUB_MIX_2[SBOX[(t >>> 8) & 0xff]] ^ INV_SUB_MIX_3[SBOX[t & 0xff]];
+ }
+ }
+ },
+
+ encryptBlock: function (M, offset) {
+ this._doCryptBlock(M, offset, this._keySchedule, SUB_MIX_0, SUB_MIX_1, SUB_MIX_2, SUB_MIX_3, SBOX);
+ },
+
+ decryptBlock: function (M, offset) {
+ // Swap 2nd and 4th rows
+ var t = M[offset + 1];
+ M[offset + 1] = M[offset + 3];
+ M[offset + 3] = t;
+
+ this._doCryptBlock(M, offset, this._invKeySchedule, INV_SUB_MIX_0, INV_SUB_MIX_1, INV_SUB_MIX_2, INV_SUB_MIX_3, INV_SBOX);
+
+ // Inv swap 2nd and 4th rows
+ var t = M[offset + 1];
+ M[offset + 1] = M[offset + 3];
+ M[offset + 3] = t;
+ },
+
+ _doCryptBlock: function (M, offset, keySchedule, SUB_MIX_0, SUB_MIX_1, SUB_MIX_2, SUB_MIX_3, SBOX) {
+ // Shortcut
+ var nRounds = this._nRounds;
+
+ // Get input, add round key
+ var s0 = M[offset] ^ keySchedule[0];
+ var s1 = M[offset + 1] ^ keySchedule[1];
+ var s2 = M[offset + 2] ^ keySchedule[2];
+ var s3 = M[offset + 3] ^ keySchedule[3];
+
+ // Key schedule row counter
+ var ksRow = 4;
+
+ // Rounds
+ for (var round = 1; round < nRounds; round++) {
+ // Shift rows, sub bytes, mix columns, add round key
+ var t0 = SUB_MIX_0[s0 >>> 24] ^ SUB_MIX_1[(s1 >>> 16) & 0xff] ^ SUB_MIX_2[(s2 >>> 8) & 0xff] ^ SUB_MIX_3[s3 & 0xff] ^ keySchedule[ksRow++];
+ var t1 = SUB_MIX_0[s1 >>> 24] ^ SUB_MIX_1[(s2 >>> 16) & 0xff] ^ SUB_MIX_2[(s3 >>> 8) & 0xff] ^ SUB_MIX_3[s0 & 0xff] ^ keySchedule[ksRow++];
+ var t2 = SUB_MIX_0[s2 >>> 24] ^ SUB_MIX_1[(s3 >>> 16) & 0xff] ^ SUB_MIX_2[(s0 >>> 8) & 0xff] ^ SUB_MIX_3[s1 & 0xff] ^ keySchedule[ksRow++];
+ var t3 = SUB_MIX_0[s3 >>> 24] ^ SUB_MIX_1[(s0 >>> 16) & 0xff] ^ SUB_MIX_2[(s1 >>> 8) & 0xff] ^ SUB_MIX_3[s2 & 0xff] ^ keySchedule[ksRow++];
+
+ // Update state
+ s0 = t0;
+ s1 = t1;
+ s2 = t2;
+ s3 = t3;
+ }
+
+ // Shift rows, sub bytes, add round key
+ var t0 = ((SBOX[s0 >>> 24] << 24) | (SBOX[(s1 >>> 16) & 0xff] << 16) | (SBOX[(s2 >>> 8) & 0xff] << 8) | SBOX[s3 & 0xff]) ^ keySchedule[ksRow++];
+ var t1 = ((SBOX[s1 >>> 24] << 24) | (SBOX[(s2 >>> 16) & 0xff] << 16) | (SBOX[(s3 >>> 8) & 0xff] << 8) | SBOX[s0 & 0xff]) ^ keySchedule[ksRow++];
+ var t2 = ((SBOX[s2 >>> 24] << 24) | (SBOX[(s3 >>> 16) & 0xff] << 16) | (SBOX[(s0 >>> 8) & 0xff] << 8) | SBOX[s1 & 0xff]) ^ keySchedule[ksRow++];
+ var t3 = ((SBOX[s3 >>> 24] << 24) | (SBOX[(s0 >>> 16) & 0xff] << 16) | (SBOX[(s1 >>> 8) & 0xff] << 8) | SBOX[s2 & 0xff]) ^ keySchedule[ksRow++];
+
+ // Set output
+ M[offset] = t0;
+ M[offset + 1] = t1;
+ M[offset + 2] = t2;
+ M[offset + 3] = t3;
+ },
+
+ keySize: 256/32
+ });
+
+ /**
+ * Shortcut functions to the cipher's object interface.
+ *
+ * @example
+ *
+ * var ciphertext = CryptoJS.AES.encrypt(message, key, cfg);
+ * var plaintext = CryptoJS.AES.decrypt(ciphertext, key, cfg);
+ */
+ C.AES = BlockCipher._createHelper(AES);
+ }());
+
+
+ return CryptoJS.AES;
+
+}));
\ No newline at end of file
diff --git a/node_modules/crypto-js/blowfish.js b/node_modules/crypto-js/blowfish.js
new file mode 100644
index 0000000..149812f
--- /dev/null
+++ b/node_modules/crypto-js/blowfish.js
@@ -0,0 +1,471 @@
+;(function (root, factory, undef) {
+ if (typeof exports === "object") {
+ // CommonJS
+ module.exports = exports = factory(require("./core"), require("./enc-base64"), require("./md5"), require("./evpkdf"), require("./cipher-core"));
+ }
+ else if (typeof define === "function" && define.amd) {
+ // AMD
+ define(["./core", "./enc-base64", "./md5", "./evpkdf", "./cipher-core"], factory);
+ }
+ else {
+ // Global (browser)
+ factory(root.CryptoJS);
+ }
+}(this, function (CryptoJS) {
+
+ (function () {
+ // Shortcuts
+ var C = CryptoJS;
+ var C_lib = C.lib;
+ var BlockCipher = C_lib.BlockCipher;
+ var C_algo = C.algo;
+
+ const N = 16;
+
+ //Origin pbox and sbox, derived from PI
+ const ORIG_P = [
+ 0x243F6A88, 0x85A308D3, 0x13198A2E, 0x03707344,
+ 0xA4093822, 0x299F31D0, 0x082EFA98, 0xEC4E6C89,
+ 0x452821E6, 0x38D01377, 0xBE5466CF, 0x34E90C6C,
+ 0xC0AC29B7, 0xC97C50DD, 0x3F84D5B5, 0xB5470917,
+ 0x9216D5D9, 0x8979FB1B
+ ];
+
+ const ORIG_S = [
+ [ 0xD1310BA6, 0x98DFB5AC, 0x2FFD72DB, 0xD01ADFB7,
+ 0xB8E1AFED, 0x6A267E96, 0xBA7C9045, 0xF12C7F99,
+ 0x24A19947, 0xB3916CF7, 0x0801F2E2, 0x858EFC16,
+ 0x636920D8, 0x71574E69, 0xA458FEA3, 0xF4933D7E,
+ 0x0D95748F, 0x728EB658, 0x718BCD58, 0x82154AEE,
+ 0x7B54A41D, 0xC25A59B5, 0x9C30D539, 0x2AF26013,
+ 0xC5D1B023, 0x286085F0, 0xCA417918, 0xB8DB38EF,
+ 0x8E79DCB0, 0x603A180E, 0x6C9E0E8B, 0xB01E8A3E,
+ 0xD71577C1, 0xBD314B27, 0x78AF2FDA, 0x55605C60,
+ 0xE65525F3, 0xAA55AB94, 0x57489862, 0x63E81440,
+ 0x55CA396A, 0x2AAB10B6, 0xB4CC5C34, 0x1141E8CE,
+ 0xA15486AF, 0x7C72E993, 0xB3EE1411, 0x636FBC2A,
+ 0x2BA9C55D, 0x741831F6, 0xCE5C3E16, 0x9B87931E,
+ 0xAFD6BA33, 0x6C24CF5C, 0x7A325381, 0x28958677,
+ 0x3B8F4898, 0x6B4BB9AF, 0xC4BFE81B, 0x66282193,
+ 0x61D809CC, 0xFB21A991, 0x487CAC60, 0x5DEC8032,
+ 0xEF845D5D, 0xE98575B1, 0xDC262302, 0xEB651B88,
+ 0x23893E81, 0xD396ACC5, 0x0F6D6FF3, 0x83F44239,
+ 0x2E0B4482, 0xA4842004, 0x69C8F04A, 0x9E1F9B5E,
+ 0x21C66842, 0xF6E96C9A, 0x670C9C61, 0xABD388F0,
+ 0x6A51A0D2, 0xD8542F68, 0x960FA728, 0xAB5133A3,
+ 0x6EEF0B6C, 0x137A3BE4, 0xBA3BF050, 0x7EFB2A98,
+ 0xA1F1651D, 0x39AF0176, 0x66CA593E, 0x82430E88,
+ 0x8CEE8619, 0x456F9FB4, 0x7D84A5C3, 0x3B8B5EBE,
+ 0xE06F75D8, 0x85C12073, 0x401A449F, 0x56C16AA6,
+ 0x4ED3AA62, 0x363F7706, 0x1BFEDF72, 0x429B023D,
+ 0x37D0D724, 0xD00A1248, 0xDB0FEAD3, 0x49F1C09B,
+ 0x075372C9, 0x80991B7B, 0x25D479D8, 0xF6E8DEF7,
+ 0xE3FE501A, 0xB6794C3B, 0x976CE0BD, 0x04C006BA,
+ 0xC1A94FB6, 0x409F60C4, 0x5E5C9EC2, 0x196A2463,
+ 0x68FB6FAF, 0x3E6C53B5, 0x1339B2EB, 0x3B52EC6F,
+ 0x6DFC511F, 0x9B30952C, 0xCC814544, 0xAF5EBD09,
+ 0xBEE3D004, 0xDE334AFD, 0x660F2807, 0x192E4BB3,
+ 0xC0CBA857, 0x45C8740F, 0xD20B5F39, 0xB9D3FBDB,
+ 0x5579C0BD, 0x1A60320A, 0xD6A100C6, 0x402C7279,
+ 0x679F25FE, 0xFB1FA3CC, 0x8EA5E9F8, 0xDB3222F8,
+ 0x3C7516DF, 0xFD616B15, 0x2F501EC8, 0xAD0552AB,
+ 0x323DB5FA, 0xFD238760, 0x53317B48, 0x3E00DF82,
+ 0x9E5C57BB, 0xCA6F8CA0, 0x1A87562E, 0xDF1769DB,
+ 0xD542A8F6, 0x287EFFC3, 0xAC6732C6, 0x8C4F5573,
+ 0x695B27B0, 0xBBCA58C8, 0xE1FFA35D, 0xB8F011A0,
+ 0x10FA3D98, 0xFD2183B8, 0x4AFCB56C, 0x2DD1D35B,
+ 0x9A53E479, 0xB6F84565, 0xD28E49BC, 0x4BFB9790,
+ 0xE1DDF2DA, 0xA4CB7E33, 0x62FB1341, 0xCEE4C6E8,
+ 0xEF20CADA, 0x36774C01, 0xD07E9EFE, 0x2BF11FB4,
+ 0x95DBDA4D, 0xAE909198, 0xEAAD8E71, 0x6B93D5A0,
+ 0xD08ED1D0, 0xAFC725E0, 0x8E3C5B2F, 0x8E7594B7,
+ 0x8FF6E2FB, 0xF2122B64, 0x8888B812, 0x900DF01C,
+ 0x4FAD5EA0, 0x688FC31C, 0xD1CFF191, 0xB3A8C1AD,
+ 0x2F2F2218, 0xBE0E1777, 0xEA752DFE, 0x8B021FA1,
+ 0xE5A0CC0F, 0xB56F74E8, 0x18ACF3D6, 0xCE89E299,
+ 0xB4A84FE0, 0xFD13E0B7, 0x7CC43B81, 0xD2ADA8D9,
+ 0x165FA266, 0x80957705, 0x93CC7314, 0x211A1477,
+ 0xE6AD2065, 0x77B5FA86, 0xC75442F5, 0xFB9D35CF,
+ 0xEBCDAF0C, 0x7B3E89A0, 0xD6411BD3, 0xAE1E7E49,
+ 0x00250E2D, 0x2071B35E, 0x226800BB, 0x57B8E0AF,
+ 0x2464369B, 0xF009B91E, 0x5563911D, 0x59DFA6AA,
+ 0x78C14389, 0xD95A537F, 0x207D5BA2, 0x02E5B9C5,
+ 0x83260376, 0x6295CFA9, 0x11C81968, 0x4E734A41,
+ 0xB3472DCA, 0x7B14A94A, 0x1B510052, 0x9A532915,
+ 0xD60F573F, 0xBC9BC6E4, 0x2B60A476, 0x81E67400,
+ 0x08BA6FB5, 0x571BE91F, 0xF296EC6B, 0x2A0DD915,
+ 0xB6636521, 0xE7B9F9B6, 0xFF34052E, 0xC5855664,
+ 0x53B02D5D, 0xA99F8FA1, 0x08BA4799, 0x6E85076A ],
+ [ 0x4B7A70E9, 0xB5B32944, 0xDB75092E, 0xC4192623,
+ 0xAD6EA6B0, 0x49A7DF7D, 0x9CEE60B8, 0x8FEDB266,
+ 0xECAA8C71, 0x699A17FF, 0x5664526C, 0xC2B19EE1,
+ 0x193602A5, 0x75094C29, 0xA0591340, 0xE4183A3E,
+ 0x3F54989A, 0x5B429D65, 0x6B8FE4D6, 0x99F73FD6,
+ 0xA1D29C07, 0xEFE830F5, 0x4D2D38E6, 0xF0255DC1,
+ 0x4CDD2086, 0x8470EB26, 0x6382E9C6, 0x021ECC5E,
+ 0x09686B3F, 0x3EBAEFC9, 0x3C971814, 0x6B6A70A1,
+ 0x687F3584, 0x52A0E286, 0xB79C5305, 0xAA500737,
+ 0x3E07841C, 0x7FDEAE5C, 0x8E7D44EC, 0x5716F2B8,
+ 0xB03ADA37, 0xF0500C0D, 0xF01C1F04, 0x0200B3FF,
+ 0xAE0CF51A, 0x3CB574B2, 0x25837A58, 0xDC0921BD,
+ 0xD19113F9, 0x7CA92FF6, 0x94324773, 0x22F54701,
+ 0x3AE5E581, 0x37C2DADC, 0xC8B57634, 0x9AF3DDA7,
+ 0xA9446146, 0x0FD0030E, 0xECC8C73E, 0xA4751E41,
+ 0xE238CD99, 0x3BEA0E2F, 0x3280BBA1, 0x183EB331,
+ 0x4E548B38, 0x4F6DB908, 0x6F420D03, 0xF60A04BF,
+ 0x2CB81290, 0x24977C79, 0x5679B072, 0xBCAF89AF,
+ 0xDE9A771F, 0xD9930810, 0xB38BAE12, 0xDCCF3F2E,
+ 0x5512721F, 0x2E6B7124, 0x501ADDE6, 0x9F84CD87,
+ 0x7A584718, 0x7408DA17, 0xBC9F9ABC, 0xE94B7D8C,
+ 0xEC7AEC3A, 0xDB851DFA, 0x63094366, 0xC464C3D2,
+ 0xEF1C1847, 0x3215D908, 0xDD433B37, 0x24C2BA16,
+ 0x12A14D43, 0x2A65C451, 0x50940002, 0x133AE4DD,
+ 0x71DFF89E, 0x10314E55, 0x81AC77D6, 0x5F11199B,
+ 0x043556F1, 0xD7A3C76B, 0x3C11183B, 0x5924A509,
+ 0xF28FE6ED, 0x97F1FBFA, 0x9EBABF2C, 0x1E153C6E,
+ 0x86E34570, 0xEAE96FB1, 0x860E5E0A, 0x5A3E2AB3,
+ 0x771FE71C, 0x4E3D06FA, 0x2965DCB9, 0x99E71D0F,
+ 0x803E89D6, 0x5266C825, 0x2E4CC978, 0x9C10B36A,
+ 0xC6150EBA, 0x94E2EA78, 0xA5FC3C53, 0x1E0A2DF4,
+ 0xF2F74EA7, 0x361D2B3D, 0x1939260F, 0x19C27960,
+ 0x5223A708, 0xF71312B6, 0xEBADFE6E, 0xEAC31F66,
+ 0xE3BC4595, 0xA67BC883, 0xB17F37D1, 0x018CFF28,
+ 0xC332DDEF, 0xBE6C5AA5, 0x65582185, 0x68AB9802,
+ 0xEECEA50F, 0xDB2F953B, 0x2AEF7DAD, 0x5B6E2F84,
+ 0x1521B628, 0x29076170, 0xECDD4775, 0x619F1510,
+ 0x13CCA830, 0xEB61BD96, 0x0334FE1E, 0xAA0363CF,
+ 0xB5735C90, 0x4C70A239, 0xD59E9E0B, 0xCBAADE14,
+ 0xEECC86BC, 0x60622CA7, 0x9CAB5CAB, 0xB2F3846E,
+ 0x648B1EAF, 0x19BDF0CA, 0xA02369B9, 0x655ABB50,
+ 0x40685A32, 0x3C2AB4B3, 0x319EE9D5, 0xC021B8F7,
+ 0x9B540B19, 0x875FA099, 0x95F7997E, 0x623D7DA8,
+ 0xF837889A, 0x97E32D77, 0x11ED935F, 0x16681281,
+ 0x0E358829, 0xC7E61FD6, 0x96DEDFA1, 0x7858BA99,
+ 0x57F584A5, 0x1B227263, 0x9B83C3FF, 0x1AC24696,
+ 0xCDB30AEB, 0x532E3054, 0x8FD948E4, 0x6DBC3128,
+ 0x58EBF2EF, 0x34C6FFEA, 0xFE28ED61, 0xEE7C3C73,
+ 0x5D4A14D9, 0xE864B7E3, 0x42105D14, 0x203E13E0,
+ 0x45EEE2B6, 0xA3AAABEA, 0xDB6C4F15, 0xFACB4FD0,
+ 0xC742F442, 0xEF6ABBB5, 0x654F3B1D, 0x41CD2105,
+ 0xD81E799E, 0x86854DC7, 0xE44B476A, 0x3D816250,
+ 0xCF62A1F2, 0x5B8D2646, 0xFC8883A0, 0xC1C7B6A3,
+ 0x7F1524C3, 0x69CB7492, 0x47848A0B, 0x5692B285,
+ 0x095BBF00, 0xAD19489D, 0x1462B174, 0x23820E00,
+ 0x58428D2A, 0x0C55F5EA, 0x1DADF43E, 0x233F7061,
+ 0x3372F092, 0x8D937E41, 0xD65FECF1, 0x6C223BDB,
+ 0x7CDE3759, 0xCBEE7460, 0x4085F2A7, 0xCE77326E,
+ 0xA6078084, 0x19F8509E, 0xE8EFD855, 0x61D99735,
+ 0xA969A7AA, 0xC50C06C2, 0x5A04ABFC, 0x800BCADC,
+ 0x9E447A2E, 0xC3453484, 0xFDD56705, 0x0E1E9EC9,
+ 0xDB73DBD3, 0x105588CD, 0x675FDA79, 0xE3674340,
+ 0xC5C43465, 0x713E38D8, 0x3D28F89E, 0xF16DFF20,
+ 0x153E21E7, 0x8FB03D4A, 0xE6E39F2B, 0xDB83ADF7 ],
+ [ 0xE93D5A68, 0x948140F7, 0xF64C261C, 0x94692934,
+ 0x411520F7, 0x7602D4F7, 0xBCF46B2E, 0xD4A20068,
+ 0xD4082471, 0x3320F46A, 0x43B7D4B7, 0x500061AF,
+ 0x1E39F62E, 0x97244546, 0x14214F74, 0xBF8B8840,
+ 0x4D95FC1D, 0x96B591AF, 0x70F4DDD3, 0x66A02F45,
+ 0xBFBC09EC, 0x03BD9785, 0x7FAC6DD0, 0x31CB8504,
+ 0x96EB27B3, 0x55FD3941, 0xDA2547E6, 0xABCA0A9A,
+ 0x28507825, 0x530429F4, 0x0A2C86DA, 0xE9B66DFB,
+ 0x68DC1462, 0xD7486900, 0x680EC0A4, 0x27A18DEE,
+ 0x4F3FFEA2, 0xE887AD8C, 0xB58CE006, 0x7AF4D6B6,
+ 0xAACE1E7C, 0xD3375FEC, 0xCE78A399, 0x406B2A42,
+ 0x20FE9E35, 0xD9F385B9, 0xEE39D7AB, 0x3B124E8B,
+ 0x1DC9FAF7, 0x4B6D1856, 0x26A36631, 0xEAE397B2,
+ 0x3A6EFA74, 0xDD5B4332, 0x6841E7F7, 0xCA7820FB,
+ 0xFB0AF54E, 0xD8FEB397, 0x454056AC, 0xBA489527,
+ 0x55533A3A, 0x20838D87, 0xFE6BA9B7, 0xD096954B,
+ 0x55A867BC, 0xA1159A58, 0xCCA92963, 0x99E1DB33,
+ 0xA62A4A56, 0x3F3125F9, 0x5EF47E1C, 0x9029317C,
+ 0xFDF8E802, 0x04272F70, 0x80BB155C, 0x05282CE3,
+ 0x95C11548, 0xE4C66D22, 0x48C1133F, 0xC70F86DC,
+ 0x07F9C9EE, 0x41041F0F, 0x404779A4, 0x5D886E17,
+ 0x325F51EB, 0xD59BC0D1, 0xF2BCC18F, 0x41113564,
+ 0x257B7834, 0x602A9C60, 0xDFF8E8A3, 0x1F636C1B,
+ 0x0E12B4C2, 0x02E1329E, 0xAF664FD1, 0xCAD18115,
+ 0x6B2395E0, 0x333E92E1, 0x3B240B62, 0xEEBEB922,
+ 0x85B2A20E, 0xE6BA0D99, 0xDE720C8C, 0x2DA2F728,
+ 0xD0127845, 0x95B794FD, 0x647D0862, 0xE7CCF5F0,
+ 0x5449A36F, 0x877D48FA, 0xC39DFD27, 0xF33E8D1E,
+ 0x0A476341, 0x992EFF74, 0x3A6F6EAB, 0xF4F8FD37,
+ 0xA812DC60, 0xA1EBDDF8, 0x991BE14C, 0xDB6E6B0D,
+ 0xC67B5510, 0x6D672C37, 0x2765D43B, 0xDCD0E804,
+ 0xF1290DC7, 0xCC00FFA3, 0xB5390F92, 0x690FED0B,
+ 0x667B9FFB, 0xCEDB7D9C, 0xA091CF0B, 0xD9155EA3,
+ 0xBB132F88, 0x515BAD24, 0x7B9479BF, 0x763BD6EB,
+ 0x37392EB3, 0xCC115979, 0x8026E297, 0xF42E312D,
+ 0x6842ADA7, 0xC66A2B3B, 0x12754CCC, 0x782EF11C,
+ 0x6A124237, 0xB79251E7, 0x06A1BBE6, 0x4BFB6350,
+ 0x1A6B1018, 0x11CAEDFA, 0x3D25BDD8, 0xE2E1C3C9,
+ 0x44421659, 0x0A121386, 0xD90CEC6E, 0xD5ABEA2A,
+ 0x64AF674E, 0xDA86A85F, 0xBEBFE988, 0x64E4C3FE,
+ 0x9DBC8057, 0xF0F7C086, 0x60787BF8, 0x6003604D,
+ 0xD1FD8346, 0xF6381FB0, 0x7745AE04, 0xD736FCCC,
+ 0x83426B33, 0xF01EAB71, 0xB0804187, 0x3C005E5F,
+ 0x77A057BE, 0xBDE8AE24, 0x55464299, 0xBF582E61,
+ 0x4E58F48F, 0xF2DDFDA2, 0xF474EF38, 0x8789BDC2,
+ 0x5366F9C3, 0xC8B38E74, 0xB475F255, 0x46FCD9B9,
+ 0x7AEB2661, 0x8B1DDF84, 0x846A0E79, 0x915F95E2,
+ 0x466E598E, 0x20B45770, 0x8CD55591, 0xC902DE4C,
+ 0xB90BACE1, 0xBB8205D0, 0x11A86248, 0x7574A99E,
+ 0xB77F19B6, 0xE0A9DC09, 0x662D09A1, 0xC4324633,
+ 0xE85A1F02, 0x09F0BE8C, 0x4A99A025, 0x1D6EFE10,
+ 0x1AB93D1D, 0x0BA5A4DF, 0xA186F20F, 0x2868F169,
+ 0xDCB7DA83, 0x573906FE, 0xA1E2CE9B, 0x4FCD7F52,
+ 0x50115E01, 0xA70683FA, 0xA002B5C4, 0x0DE6D027,
+ 0x9AF88C27, 0x773F8641, 0xC3604C06, 0x61A806B5,
+ 0xF0177A28, 0xC0F586E0, 0x006058AA, 0x30DC7D62,
+ 0x11E69ED7, 0x2338EA63, 0x53C2DD94, 0xC2C21634,
+ 0xBBCBEE56, 0x90BCB6DE, 0xEBFC7DA1, 0xCE591D76,
+ 0x6F05E409, 0x4B7C0188, 0x39720A3D, 0x7C927C24,
+ 0x86E3725F, 0x724D9DB9, 0x1AC15BB4, 0xD39EB8FC,
+ 0xED545578, 0x08FCA5B5, 0xD83D7CD3, 0x4DAD0FC4,
+ 0x1E50EF5E, 0xB161E6F8, 0xA28514D9, 0x6C51133C,
+ 0x6FD5C7E7, 0x56E14EC4, 0x362ABFCE, 0xDDC6C837,
+ 0xD79A3234, 0x92638212, 0x670EFA8E, 0x406000E0 ],
+ [ 0x3A39CE37, 0xD3FAF5CF, 0xABC27737, 0x5AC52D1B,
+ 0x5CB0679E, 0x4FA33742, 0xD3822740, 0x99BC9BBE,
+ 0xD5118E9D, 0xBF0F7315, 0xD62D1C7E, 0xC700C47B,
+ 0xB78C1B6B, 0x21A19045, 0xB26EB1BE, 0x6A366EB4,
+ 0x5748AB2F, 0xBC946E79, 0xC6A376D2, 0x6549C2C8,
+ 0x530FF8EE, 0x468DDE7D, 0xD5730A1D, 0x4CD04DC6,
+ 0x2939BBDB, 0xA9BA4650, 0xAC9526E8, 0xBE5EE304,
+ 0xA1FAD5F0, 0x6A2D519A, 0x63EF8CE2, 0x9A86EE22,
+ 0xC089C2B8, 0x43242EF6, 0xA51E03AA, 0x9CF2D0A4,
+ 0x83C061BA, 0x9BE96A4D, 0x8FE51550, 0xBA645BD6,
+ 0x2826A2F9, 0xA73A3AE1, 0x4BA99586, 0xEF5562E9,
+ 0xC72FEFD3, 0xF752F7DA, 0x3F046F69, 0x77FA0A59,
+ 0x80E4A915, 0x87B08601, 0x9B09E6AD, 0x3B3EE593,
+ 0xE990FD5A, 0x9E34D797, 0x2CF0B7D9, 0x022B8B51,
+ 0x96D5AC3A, 0x017DA67D, 0xD1CF3ED6, 0x7C7D2D28,
+ 0x1F9F25CF, 0xADF2B89B, 0x5AD6B472, 0x5A88F54C,
+ 0xE029AC71, 0xE019A5E6, 0x47B0ACFD, 0xED93FA9B,
+ 0xE8D3C48D, 0x283B57CC, 0xF8D56629, 0x79132E28,
+ 0x785F0191, 0xED756055, 0xF7960E44, 0xE3D35E8C,
+ 0x15056DD4, 0x88F46DBA, 0x03A16125, 0x0564F0BD,
+ 0xC3EB9E15, 0x3C9057A2, 0x97271AEC, 0xA93A072A,
+ 0x1B3F6D9B, 0x1E6321F5, 0xF59C66FB, 0x26DCF319,
+ 0x7533D928, 0xB155FDF5, 0x03563482, 0x8ABA3CBB,
+ 0x28517711, 0xC20AD9F8, 0xABCC5167, 0xCCAD925F,
+ 0x4DE81751, 0x3830DC8E, 0x379D5862, 0x9320F991,
+ 0xEA7A90C2, 0xFB3E7BCE, 0x5121CE64, 0x774FBE32,
+ 0xA8B6E37E, 0xC3293D46, 0x48DE5369, 0x6413E680,
+ 0xA2AE0810, 0xDD6DB224, 0x69852DFD, 0x09072166,
+ 0xB39A460A, 0x6445C0DD, 0x586CDECF, 0x1C20C8AE,
+ 0x5BBEF7DD, 0x1B588D40, 0xCCD2017F, 0x6BB4E3BB,
+ 0xDDA26A7E, 0x3A59FF45, 0x3E350A44, 0xBCB4CDD5,
+ 0x72EACEA8, 0xFA6484BB, 0x8D6612AE, 0xBF3C6F47,
+ 0xD29BE463, 0x542F5D9E, 0xAEC2771B, 0xF64E6370,
+ 0x740E0D8D, 0xE75B1357, 0xF8721671, 0xAF537D5D,
+ 0x4040CB08, 0x4EB4E2CC, 0x34D2466A, 0x0115AF84,
+ 0xE1B00428, 0x95983A1D, 0x06B89FB4, 0xCE6EA048,
+ 0x6F3F3B82, 0x3520AB82, 0x011A1D4B, 0x277227F8,
+ 0x611560B1, 0xE7933FDC, 0xBB3A792B, 0x344525BD,
+ 0xA08839E1, 0x51CE794B, 0x2F32C9B7, 0xA01FBAC9,
+ 0xE01CC87E, 0xBCC7D1F6, 0xCF0111C3, 0xA1E8AAC7,
+ 0x1A908749, 0xD44FBD9A, 0xD0DADECB, 0xD50ADA38,
+ 0x0339C32A, 0xC6913667, 0x8DF9317C, 0xE0B12B4F,
+ 0xF79E59B7, 0x43F5BB3A, 0xF2D519FF, 0x27D9459C,
+ 0xBF97222C, 0x15E6FC2A, 0x0F91FC71, 0x9B941525,
+ 0xFAE59361, 0xCEB69CEB, 0xC2A86459, 0x12BAA8D1,
+ 0xB6C1075E, 0xE3056A0C, 0x10D25065, 0xCB03A442,
+ 0xE0EC6E0E, 0x1698DB3B, 0x4C98A0BE, 0x3278E964,
+ 0x9F1F9532, 0xE0D392DF, 0xD3A0342B, 0x8971F21E,
+ 0x1B0A7441, 0x4BA3348C, 0xC5BE7120, 0xC37632D8,
+ 0xDF359F8D, 0x9B992F2E, 0xE60B6F47, 0x0FE3F11D,
+ 0xE54CDA54, 0x1EDAD891, 0xCE6279CF, 0xCD3E7E6F,
+ 0x1618B166, 0xFD2C1D05, 0x848FD2C5, 0xF6FB2299,
+ 0xF523F357, 0xA6327623, 0x93A83531, 0x56CCCD02,
+ 0xACF08162, 0x5A75EBB5, 0x6E163697, 0x88D273CC,
+ 0xDE966292, 0x81B949D0, 0x4C50901B, 0x71C65614,
+ 0xE6C6C7BD, 0x327A140A, 0x45E1D006, 0xC3F27B9A,
+ 0xC9AA53FD, 0x62A80F00, 0xBB25BFE2, 0x35BDD2F6,
+ 0x71126905, 0xB2040222, 0xB6CBCF7C, 0xCD769C2B,
+ 0x53113EC0, 0x1640E3D3, 0x38ABBD60, 0x2547ADF0,
+ 0xBA38209C, 0xF746CE76, 0x77AFA1C5, 0x20756060,
+ 0x85CBFE4E, 0x8AE88DD8, 0x7AAAF9B0, 0x4CF9AA7E,
+ 0x1948C25C, 0x02FB8A8C, 0x01C36AE4, 0xD6EBE1F9,
+ 0x90D4F869, 0xA65CDEA0, 0x3F09252D, 0xC208E69F,
+ 0xB74E6132, 0xCE77E25B, 0x578FDFE3, 0x3AC372E6 ]
+ ];
+
+ var BLOWFISH_CTX = {
+ pbox: [],
+ sbox: []
+ }
+
+ function F(ctx, x){
+ let a = (x >> 24) & 0xFF;
+ let b = (x >> 16) & 0xFF;
+ let c = (x >> 8) & 0xFF;
+ let d = x & 0xFF;
+
+ let y = ctx.sbox[0][a] + ctx.sbox[1][b];
+ y = y ^ ctx.sbox[2][c];
+ y = y + ctx.sbox[3][d];
+
+ return y;
+ }
+
+ function BlowFish_Encrypt(ctx, left, right){
+ let Xl = left;
+ let Xr = right;
+ let temp;
+
+ for(let i = 0; i < N; ++i){
+ Xl = Xl ^ ctx.pbox[i];
+ Xr = F(ctx, Xl) ^ Xr;
+
+ temp = Xl;
+ Xl = Xr;
+ Xr = temp;
+ }
+
+ temp = Xl;
+ Xl = Xr;
+ Xr = temp;
+
+ Xr = Xr ^ ctx.pbox[N];
+ Xl = Xl ^ ctx.pbox[N + 1];
+
+ return {left: Xl, right: Xr};
+ }
+
+ function BlowFish_Decrypt(ctx, left, right){
+ let Xl = left;
+ let Xr = right;
+ let temp;
+
+ for(let i = N + 1; i > 1; --i){
+ Xl = Xl ^ ctx.pbox[i];
+ Xr = F(ctx, Xl) ^ Xr;
+
+ temp = Xl;
+ Xl = Xr;
+ Xr = temp;
+ }
+
+ temp = Xl;
+ Xl = Xr;
+ Xr = temp;
+
+ Xr = Xr ^ ctx.pbox[1];
+ Xl = Xl ^ ctx.pbox[0];
+
+ return {left: Xl, right: Xr};
+ }
+
+ /**
+ * Initialization ctx's pbox and sbox.
+ *
+ * @param {Object} ctx The object has pbox and sbox.
+ * @param {Array} key An array of 32-bit words.
+ * @param {int} keysize The length of the key.
+ *
+ * @example
+ *
+ * BlowFishInit(BLOWFISH_CTX, key, 128/32);
+ */
+ function BlowFishInit(ctx, key, keysize)
+ {
+ for(let Row = 0; Row < 4; Row++)
+ {
+ ctx.sbox[Row] = [];
+ for(let Col = 0; Col < 256; Col++)
+ {
+ ctx.sbox[Row][Col] = ORIG_S[Row][Col];
+ }
+ }
+
+ let keyIndex = 0;
+ for(let index = 0; index < N + 2; index++)
+ {
+ ctx.pbox[index] = ORIG_P[index] ^ key[keyIndex];
+ keyIndex++;
+ if(keyIndex >= keysize)
+ {
+ keyIndex = 0;
+ }
+ }
+
+ let Data1 = 0;
+ let Data2 = 0;
+ let res = 0;
+ for(let i = 0; i < N + 2; i += 2)
+ {
+ res = BlowFish_Encrypt(ctx, Data1, Data2);
+ Data1 = res.left;
+ Data2 = res.right;
+ ctx.pbox[i] = Data1;
+ ctx.pbox[i + 1] = Data2;
+ }
+
+ for(let i = 0; i < 4; i++)
+ {
+ for(let j = 0; j < 256; j += 2)
+ {
+ res = BlowFish_Encrypt(ctx, Data1, Data2);
+ Data1 = res.left;
+ Data2 = res.right;
+ ctx.sbox[i][j] = Data1;
+ ctx.sbox[i][j + 1] = Data2;
+ }
+ }
+
+ return true;
+ }
+
+ /**
+ * Blowfish block cipher algorithm.
+ */
+ var Blowfish = C_algo.Blowfish = BlockCipher.extend({
+ _doReset: function () {
+ // Skip reset of nRounds has been set before and key did not change
+ if (this._keyPriorReset === this._key) {
+ return;
+ }
+
+ // Shortcuts
+ var key = this._keyPriorReset = this._key;
+ var keyWords = key.words;
+ var keySize = key.sigBytes / 4;
+
+ //Initialization pbox and sbox
+ BlowFishInit(BLOWFISH_CTX, keyWords, keySize);
+ },
+
+ encryptBlock: function (M, offset) {
+ var res = BlowFish_Encrypt(BLOWFISH_CTX, M[offset], M[offset + 1]);
+ M[offset] = res.left;
+ M[offset + 1] = res.right;
+ },
+
+ decryptBlock: function (M, offset) {
+ var res = BlowFish_Decrypt(BLOWFISH_CTX, M[offset], M[offset + 1]);
+ M[offset] = res.left;
+ M[offset + 1] = res.right;
+ },
+
+ blockSize: 64/32,
+
+ keySize: 128/32,
+
+ ivSize: 64/32
+ });
+
+ /**
+ * Shortcut functions to the cipher's object interface.
+ *
+ * @example
+ *
+ * var ciphertext = CryptoJS.Blowfish.encrypt(message, key, cfg);
+ * var plaintext = CryptoJS.Blowfish.decrypt(ciphertext, key, cfg);
+ */
+ C.Blowfish = BlockCipher._createHelper(Blowfish);
+ }());
+
+
+ return CryptoJS.Blowfish;
+
+}));
\ No newline at end of file
diff --git a/node_modules/crypto-js/bower.json b/node_modules/crypto-js/bower.json
new file mode 100644
index 0000000..4dee617
--- /dev/null
+++ b/node_modules/crypto-js/bower.json
@@ -0,0 +1,39 @@
+{
+ "name": "crypto-js",
+ "version": "4.2.0",
+ "description": "JavaScript library of crypto standards.",
+ "license": "MIT",
+ "homepage": "http://github.com/brix/crypto-js",
+ "repository": {
+ "type": "git",
+ "url": "http://github.com/brix/crypto-js.git"
+ },
+ "keywords": [
+ "security",
+ "crypto",
+ "Hash",
+ "MD5",
+ "SHA1",
+ "SHA-1",
+ "SHA256",
+ "SHA-256",
+ "RC4",
+ "Rabbit",
+ "AES",
+ "DES",
+ "PBKDF2",
+ "HMAC",
+ "OFB",
+ "CFB",
+ "CTR",
+ "CBC",
+ "Base64",
+ "Base64url"
+ ],
+ "main": "index.js",
+ "dependencies": {},
+ "browser": {
+ "crypto": false
+ },
+ "ignore": []
+}
diff --git a/node_modules/crypto-js/cipher-core.js b/node_modules/crypto-js/cipher-core.js
new file mode 100644
index 0000000..903f462
--- /dev/null
+++ b/node_modules/crypto-js/cipher-core.js
@@ -0,0 +1,895 @@
+;(function (root, factory, undef) {
+ if (typeof exports === "object") {
+ // CommonJS
+ module.exports = exports = factory(require("./core"), require("./evpkdf"));
+ }
+ else if (typeof define === "function" && define.amd) {
+ // AMD
+ define(["./core", "./evpkdf"], factory);
+ }
+ else {
+ // Global (browser)
+ factory(root.CryptoJS);
+ }
+}(this, function (CryptoJS) {
+
+ /**
+ * Cipher core components.
+ */
+ CryptoJS.lib.Cipher || (function (undefined) {
+ // Shortcuts
+ var C = CryptoJS;
+ var C_lib = C.lib;
+ var Base = C_lib.Base;
+ var WordArray = C_lib.WordArray;
+ var BufferedBlockAlgorithm = C_lib.BufferedBlockAlgorithm;
+ var C_enc = C.enc;
+ var Utf8 = C_enc.Utf8;
+ var Base64 = C_enc.Base64;
+ var C_algo = C.algo;
+ var EvpKDF = C_algo.EvpKDF;
+
+ /**
+ * Abstract base cipher template.
+ *
+ * @property {number} keySize This cipher's key size. Default: 4 (128 bits)
+ * @property {number} ivSize This cipher's IV size. Default: 4 (128 bits)
+ * @property {number} _ENC_XFORM_MODE A constant representing encryption mode.
+ * @property {number} _DEC_XFORM_MODE A constant representing decryption mode.
+ */
+ var Cipher = C_lib.Cipher = BufferedBlockAlgorithm.extend({
+ /**
+ * Configuration options.
+ *
+ * @property {WordArray} iv The IV to use for this operation.
+ */
+ cfg: Base.extend(),
+
+ /**
+ * Creates this cipher in encryption mode.
+ *
+ * @param {WordArray} key The key.
+ * @param {Object} cfg (Optional) The configuration options to use for this operation.
+ *
+ * @return {Cipher} A cipher instance.
+ *
+ * @static
+ *
+ * @example
+ *
+ * var cipher = CryptoJS.algo.AES.createEncryptor(keyWordArray, { iv: ivWordArray });
+ */
+ createEncryptor: function (key, cfg) {
+ return this.create(this._ENC_XFORM_MODE, key, cfg);
+ },
+
+ /**
+ * Creates this cipher in decryption mode.
+ *
+ * @param {WordArray} key The key.
+ * @param {Object} cfg (Optional) The configuration options to use for this operation.
+ *
+ * @return {Cipher} A cipher instance.
+ *
+ * @static
+ *
+ * @example
+ *
+ * var cipher = CryptoJS.algo.AES.createDecryptor(keyWordArray, { iv: ivWordArray });
+ */
+ createDecryptor: function (key, cfg) {
+ return this.create(this._DEC_XFORM_MODE, key, cfg);
+ },
+
+ /**
+ * Initializes a newly created cipher.
+ *
+ * @param {number} xformMode Either the encryption or decryption transormation mode constant.
+ * @param {WordArray} key The key.
+ * @param {Object} cfg (Optional) The configuration options to use for this operation.
+ *
+ * @example
+ *
+ * var cipher = CryptoJS.algo.AES.create(CryptoJS.algo.AES._ENC_XFORM_MODE, keyWordArray, { iv: ivWordArray });
+ */
+ init: function (xformMode, key, cfg) {
+ // Apply config defaults
+ this.cfg = this.cfg.extend(cfg);
+
+ // Store transform mode and key
+ this._xformMode = xformMode;
+ this._key = key;
+
+ // Set initial values
+ this.reset();
+ },
+
+ /**
+ * Resets this cipher to its initial state.
+ *
+ * @example
+ *
+ * cipher.reset();
+ */
+ reset: function () {
+ // Reset data buffer
+ BufferedBlockAlgorithm.reset.call(this);
+
+ // Perform concrete-cipher logic
+ this._doReset();
+ },
+
+ /**
+ * Adds data to be encrypted or decrypted.
+ *
+ * @param {WordArray|string} dataUpdate The data to encrypt or decrypt.
+ *
+ * @return {WordArray} The data after processing.
+ *
+ * @example
+ *
+ * var encrypted = cipher.process('data');
+ * var encrypted = cipher.process(wordArray);
+ */
+ process: function (dataUpdate) {
+ // Append
+ this._append(dataUpdate);
+
+ // Process available blocks
+ return this._process();
+ },
+
+ /**
+ * Finalizes the encryption or decryption process.
+ * Note that the finalize operation is effectively a destructive, read-once operation.
+ *
+ * @param {WordArray|string} dataUpdate The final data to encrypt or decrypt.
+ *
+ * @return {WordArray} The data after final processing.
+ *
+ * @example
+ *
+ * var encrypted = cipher.finalize();
+ * var encrypted = cipher.finalize('data');
+ * var encrypted = cipher.finalize(wordArray);
+ */
+ finalize: function (dataUpdate) {
+ // Final data update
+ if (dataUpdate) {
+ this._append(dataUpdate);
+ }
+
+ // Perform concrete-cipher logic
+ var finalProcessedData = this._doFinalize();
+
+ return finalProcessedData;
+ },
+
+ keySize: 128/32,
+
+ ivSize: 128/32,
+
+ _ENC_XFORM_MODE: 1,
+
+ _DEC_XFORM_MODE: 2,
+
+ /**
+ * Creates shortcut functions to a cipher's object interface.
+ *
+ * @param {Cipher} cipher The cipher to create a helper for.
+ *
+ * @return {Object} An object with encrypt and decrypt shortcut functions.
+ *
+ * @static
+ *
+ * @example
+ *
+ * var AES = CryptoJS.lib.Cipher._createHelper(CryptoJS.algo.AES);
+ */
+ _createHelper: (function () {
+ function selectCipherStrategy(key) {
+ if (typeof key == 'string') {
+ return PasswordBasedCipher;
+ } else {
+ return SerializableCipher;
+ }
+ }
+
+ return function (cipher) {
+ return {
+ encrypt: function (message, key, cfg) {
+ return selectCipherStrategy(key).encrypt(cipher, message, key, cfg);
+ },
+
+ decrypt: function (ciphertext, key, cfg) {
+ return selectCipherStrategy(key).decrypt(cipher, ciphertext, key, cfg);
+ }
+ };
+ };
+ }())
+ });
+
+ /**
+ * Abstract base stream cipher template.
+ *
+ * @property {number} blockSize The number of 32-bit words this cipher operates on. Default: 1 (32 bits)
+ */
+ var StreamCipher = C_lib.StreamCipher = Cipher.extend({
+ _doFinalize: function () {
+ // Process partial blocks
+ var finalProcessedBlocks = this._process(!!'flush');
+
+ return finalProcessedBlocks;
+ },
+
+ blockSize: 1
+ });
+
+ /**
+ * Mode namespace.
+ */
+ var C_mode = C.mode = {};
+
+ /**
+ * Abstract base block cipher mode template.
+ */
+ var BlockCipherMode = C_lib.BlockCipherMode = Base.extend({
+ /**
+ * Creates this mode for encryption.
+ *
+ * @param {Cipher} cipher A block cipher instance.
+ * @param {Array} iv The IV words.
+ *
+ * @static
+ *
+ * @example
+ *
+ * var mode = CryptoJS.mode.CBC.createEncryptor(cipher, iv.words);
+ */
+ createEncryptor: function (cipher, iv) {
+ return this.Encryptor.create(cipher, iv);
+ },
+
+ /**
+ * Creates this mode for decryption.
+ *
+ * @param {Cipher} cipher A block cipher instance.
+ * @param {Array} iv The IV words.
+ *
+ * @static
+ *
+ * @example
+ *
+ * var mode = CryptoJS.mode.CBC.createDecryptor(cipher, iv.words);
+ */
+ createDecryptor: function (cipher, iv) {
+ return this.Decryptor.create(cipher, iv);
+ },
+
+ /**
+ * Initializes a newly created mode.
+ *
+ * @param {Cipher} cipher A block cipher instance.
+ * @param {Array} iv The IV words.
+ *
+ * @example
+ *
+ * var mode = CryptoJS.mode.CBC.Encryptor.create(cipher, iv.words);
+ */
+ init: function (cipher, iv) {
+ this._cipher = cipher;
+ this._iv = iv;
+ }
+ });
+
+ /**
+ * Cipher Block Chaining mode.
+ */
+ var CBC = C_mode.CBC = (function () {
+ /**
+ * Abstract base CBC mode.
+ */
+ var CBC = BlockCipherMode.extend();
+
+ /**
+ * CBC encryptor.
+ */
+ CBC.Encryptor = CBC.extend({
+ /**
+ * Processes the data block at offset.
+ *
+ * @param {Array} words The data words to operate on.
+ * @param {number} offset The offset where the block starts.
+ *
+ * @example
+ *
+ * mode.processBlock(data.words, offset);
+ */
+ processBlock: function (words, offset) {
+ // Shortcuts
+ var cipher = this._cipher;
+ var blockSize = cipher.blockSize;
+
+ // XOR and encrypt
+ xorBlock.call(this, words, offset, blockSize);
+ cipher.encryptBlock(words, offset);
+
+ // Remember this block to use with next block
+ this._prevBlock = words.slice(offset, offset + blockSize);
+ }
+ });
+
+ /**
+ * CBC decryptor.
+ */
+ CBC.Decryptor = CBC.extend({
+ /**
+ * Processes the data block at offset.
+ *
+ * @param {Array} words The data words to operate on.
+ * @param {number} offset The offset where the block starts.
+ *
+ * @example
+ *
+ * mode.processBlock(data.words, offset);
+ */
+ processBlock: function (words, offset) {
+ // Shortcuts
+ var cipher = this._cipher;
+ var blockSize = cipher.blockSize;
+
+ // Remember this block to use with next block
+ var thisBlock = words.slice(offset, offset + blockSize);
+
+ // Decrypt and XOR
+ cipher.decryptBlock(words, offset);
+ xorBlock.call(this, words, offset, blockSize);
+
+ // This block becomes the previous block
+ this._prevBlock = thisBlock;
+ }
+ });
+
+ function xorBlock(words, offset, blockSize) {
+ var block;
+
+ // Shortcut
+ var iv = this._iv;
+
+ // Choose mixing block
+ if (iv) {
+ block = iv;
+
+ // Remove IV for subsequent blocks
+ this._iv = undefined;
+ } else {
+ block = this._prevBlock;
+ }
+
+ // XOR blocks
+ for (var i = 0; i < blockSize; i++) {
+ words[offset + i] ^= block[i];
+ }
+ }
+
+ return CBC;
+ }());
+
+ /**
+ * Padding namespace.
+ */
+ var C_pad = C.pad = {};
+
+ /**
+ * PKCS #5/7 padding strategy.
+ */
+ var Pkcs7 = C_pad.Pkcs7 = {
+ /**
+ * Pads data using the algorithm defined in PKCS #5/7.
+ *
+ * @param {WordArray} data The data to pad.
+ * @param {number} blockSize The multiple that the data should be padded to.
+ *
+ * @static
+ *
+ * @example
+ *
+ * CryptoJS.pad.Pkcs7.pad(wordArray, 4);
+ */
+ pad: function (data, blockSize) {
+ // Shortcut
+ var blockSizeBytes = blockSize * 4;
+
+ // Count padding bytes
+ var nPaddingBytes = blockSizeBytes - data.sigBytes % blockSizeBytes;
+
+ // Create padding word
+ var paddingWord = (nPaddingBytes << 24) | (nPaddingBytes << 16) | (nPaddingBytes << 8) | nPaddingBytes;
+
+ // Create padding
+ var paddingWords = [];
+ for (var i = 0; i < nPaddingBytes; i += 4) {
+ paddingWords.push(paddingWord);
+ }
+ var padding = WordArray.create(paddingWords, nPaddingBytes);
+
+ // Add padding
+ data.concat(padding);
+ },
+
+ /**
+ * Unpads data that had been padded using the algorithm defined in PKCS #5/7.
+ *
+ * @param {WordArray} data The data to unpad.
+ *
+ * @static
+ *
+ * @example
+ *
+ * CryptoJS.pad.Pkcs7.unpad(wordArray);
+ */
+ unpad: function (data) {
+ // Get number of padding bytes from last byte
+ var nPaddingBytes = data.words[(data.sigBytes - 1) >>> 2] & 0xff;
+
+ // Remove padding
+ data.sigBytes -= nPaddingBytes;
+ }
+ };
+
+ /**
+ * Abstract base block cipher template.
+ *
+ * @property {number} blockSize The number of 32-bit words this cipher operates on. Default: 4 (128 bits)
+ */
+ var BlockCipher = C_lib.BlockCipher = Cipher.extend({
+ /**
+ * Configuration options.
+ *
+ * @property {Mode} mode The block mode to use. Default: CBC
+ * @property {Padding} padding The padding strategy to use. Default: Pkcs7
+ */
+ cfg: Cipher.cfg.extend({
+ mode: CBC,
+ padding: Pkcs7
+ }),
+
+ reset: function () {
+ var modeCreator;
+
+ // Reset cipher
+ Cipher.reset.call(this);
+
+ // Shortcuts
+ var cfg = this.cfg;
+ var iv = cfg.iv;
+ var mode = cfg.mode;
+
+ // Reset block mode
+ if (this._xformMode == this._ENC_XFORM_MODE) {
+ modeCreator = mode.createEncryptor;
+ } else /* if (this._xformMode == this._DEC_XFORM_MODE) */ {
+ modeCreator = mode.createDecryptor;
+ // Keep at least one block in the buffer for unpadding
+ this._minBufferSize = 1;
+ }
+
+ if (this._mode && this._mode.__creator == modeCreator) {
+ this._mode.init(this, iv && iv.words);
+ } else {
+ this._mode = modeCreator.call(mode, this, iv && iv.words);
+ this._mode.__creator = modeCreator;
+ }
+ },
+
+ _doProcessBlock: function (words, offset) {
+ this._mode.processBlock(words, offset);
+ },
+
+ _doFinalize: function () {
+ var finalProcessedBlocks;
+
+ // Shortcut
+ var padding = this.cfg.padding;
+
+ // Finalize
+ if (this._xformMode == this._ENC_XFORM_MODE) {
+ // Pad data
+ padding.pad(this._data, this.blockSize);
+
+ // Process final blocks
+ finalProcessedBlocks = this._process(!!'flush');
+ } else /* if (this._xformMode == this._DEC_XFORM_MODE) */ {
+ // Process final blocks
+ finalProcessedBlocks = this._process(!!'flush');
+
+ // Unpad data
+ padding.unpad(finalProcessedBlocks);
+ }
+
+ return finalProcessedBlocks;
+ },
+
+ blockSize: 128/32
+ });
+
+ /**
+ * A collection of cipher parameters.
+ *
+ * @property {WordArray} ciphertext The raw ciphertext.
+ * @property {WordArray} key The key to this ciphertext.
+ * @property {WordArray} iv The IV used in the ciphering operation.
+ * @property {WordArray} salt The salt used with a key derivation function.
+ * @property {Cipher} algorithm The cipher algorithm.
+ * @property {Mode} mode The block mode used in the ciphering operation.
+ * @property {Padding} padding The padding scheme used in the ciphering operation.
+ * @property {number} blockSize The block size of the cipher.
+ * @property {Format} formatter The default formatting strategy to convert this cipher params object to a string.
+ */
+ var CipherParams = C_lib.CipherParams = Base.extend({
+ /**
+ * Initializes a newly created cipher params object.
+ *
+ * @param {Object} cipherParams An object with any of the possible cipher parameters.
+ *
+ * @example
+ *
+ * var cipherParams = CryptoJS.lib.CipherParams.create({
+ * ciphertext: ciphertextWordArray,
+ * key: keyWordArray,
+ * iv: ivWordArray,
+ * salt: saltWordArray,
+ * algorithm: CryptoJS.algo.AES,
+ * mode: CryptoJS.mode.CBC,
+ * padding: CryptoJS.pad.PKCS7,
+ * blockSize: 4,
+ * formatter: CryptoJS.format.OpenSSL
+ * });
+ */
+ init: function (cipherParams) {
+ this.mixIn(cipherParams);
+ },
+
+ /**
+ * Converts this cipher params object to a string.
+ *
+ * @param {Format} formatter (Optional) The formatting strategy to use.
+ *
+ * @return {string} The stringified cipher params.
+ *
+ * @throws Error If neither the formatter nor the default formatter is set.
+ *
+ * @example
+ *
+ * var string = cipherParams + '';
+ * var string = cipherParams.toString();
+ * var string = cipherParams.toString(CryptoJS.format.OpenSSL);
+ */
+ toString: function (formatter) {
+ return (formatter || this.formatter).stringify(this);
+ }
+ });
+
+ /**
+ * Format namespace.
+ */
+ var C_format = C.format = {};
+
+ /**
+ * OpenSSL formatting strategy.
+ */
+ var OpenSSLFormatter = C_format.OpenSSL = {
+ /**
+ * Converts a cipher params object to an OpenSSL-compatible string.
+ *
+ * @param {CipherParams} cipherParams The cipher params object.
+ *
+ * @return {string} The OpenSSL-compatible string.
+ *
+ * @static
+ *
+ * @example
+ *
+ * var openSSLString = CryptoJS.format.OpenSSL.stringify(cipherParams);
+ */
+ stringify: function (cipherParams) {
+ var wordArray;
+
+ // Shortcuts
+ var ciphertext = cipherParams.ciphertext;
+ var salt = cipherParams.salt;
+
+ // Format
+ if (salt) {
+ wordArray = WordArray.create([0x53616c74, 0x65645f5f]).concat(salt).concat(ciphertext);
+ } else {
+ wordArray = ciphertext;
+ }
+
+ return wordArray.toString(Base64);
+ },
+
+ /**
+ * Converts an OpenSSL-compatible string to a cipher params object.
+ *
+ * @param {string} openSSLStr The OpenSSL-compatible string.
+ *
+ * @return {CipherParams} The cipher params object.
+ *
+ * @static
+ *
+ * @example
+ *
+ * var cipherParams = CryptoJS.format.OpenSSL.parse(openSSLString);
+ */
+ parse: function (openSSLStr) {
+ var salt;
+
+ // Parse base64
+ var ciphertext = Base64.parse(openSSLStr);
+
+ // Shortcut
+ var ciphertextWords = ciphertext.words;
+
+ // Test for salt
+ if (ciphertextWords[0] == 0x53616c74 && ciphertextWords[1] == 0x65645f5f) {
+ // Extract salt
+ salt = WordArray.create(ciphertextWords.slice(2, 4));
+
+ // Remove salt from ciphertext
+ ciphertextWords.splice(0, 4);
+ ciphertext.sigBytes -= 16;
+ }
+
+ return CipherParams.create({ ciphertext: ciphertext, salt: salt });
+ }
+ };
+
+ /**
+ * A cipher wrapper that returns ciphertext as a serializable cipher params object.
+ */
+ var SerializableCipher = C_lib.SerializableCipher = Base.extend({
+ /**
+ * Configuration options.
+ *
+ * @property {Formatter} format The formatting strategy to convert cipher param objects to and from a string. Default: OpenSSL
+ */
+ cfg: Base.extend({
+ format: OpenSSLFormatter
+ }),
+
+ /**
+ * Encrypts a message.
+ *
+ * @param {Cipher} cipher The cipher algorithm to use.
+ * @param {WordArray|string} message The message to encrypt.
+ * @param {WordArray} key The key.
+ * @param {Object} cfg (Optional) The configuration options to use for this operation.
+ *
+ * @return {CipherParams} A cipher params object.
+ *
+ * @static
+ *
+ * @example
+ *
+ * var ciphertextParams = CryptoJS.lib.SerializableCipher.encrypt(CryptoJS.algo.AES, message, key);
+ * var ciphertextParams = CryptoJS.lib.SerializableCipher.encrypt(CryptoJS.algo.AES, message, key, { iv: iv });
+ * var ciphertextParams = CryptoJS.lib.SerializableCipher.encrypt(CryptoJS.algo.AES, message, key, { iv: iv, format: CryptoJS.format.OpenSSL });
+ */
+ encrypt: function (cipher, message, key, cfg) {
+ // Apply config defaults
+ cfg = this.cfg.extend(cfg);
+
+ // Encrypt
+ var encryptor = cipher.createEncryptor(key, cfg);
+ var ciphertext = encryptor.finalize(message);
+
+ // Shortcut
+ var cipherCfg = encryptor.cfg;
+
+ // Create and return serializable cipher params
+ return CipherParams.create({
+ ciphertext: ciphertext,
+ key: key,
+ iv: cipherCfg.iv,
+ algorithm: cipher,
+ mode: cipherCfg.mode,
+ padding: cipherCfg.padding,
+ blockSize: cipher.blockSize,
+ formatter: cfg.format
+ });
+ },
+
+ /**
+ * Decrypts serialized ciphertext.
+ *
+ * @param {Cipher} cipher The cipher algorithm to use.
+ * @param {CipherParams|string} ciphertext The ciphertext to decrypt.
+ * @param {WordArray} key The key.
+ * @param {Object} cfg (Optional) The configuration options to use for this operation.
+ *
+ * @return {WordArray} The plaintext.
+ *
+ * @static
+ *
+ * @example
+ *
+ * var plaintext = CryptoJS.lib.SerializableCipher.decrypt(CryptoJS.algo.AES, formattedCiphertext, key, { iv: iv, format: CryptoJS.format.OpenSSL });
+ * var plaintext = CryptoJS.lib.SerializableCipher.decrypt(CryptoJS.algo.AES, ciphertextParams, key, { iv: iv, format: CryptoJS.format.OpenSSL });
+ */
+ decrypt: function (cipher, ciphertext, key, cfg) {
+ // Apply config defaults
+ cfg = this.cfg.extend(cfg);
+
+ // Convert string to CipherParams
+ ciphertext = this._parse(ciphertext, cfg.format);
+
+ // Decrypt
+ var plaintext = cipher.createDecryptor(key, cfg).finalize(ciphertext.ciphertext);
+
+ return plaintext;
+ },
+
+ /**
+ * Converts serialized ciphertext to CipherParams,
+ * else assumed CipherParams already and returns ciphertext unchanged.
+ *
+ * @param {CipherParams|string} ciphertext The ciphertext.
+ * @param {Formatter} format The formatting strategy to use to parse serialized ciphertext.
+ *
+ * @return {CipherParams} The unserialized ciphertext.
+ *
+ * @static
+ *
+ * @example
+ *
+ * var ciphertextParams = CryptoJS.lib.SerializableCipher._parse(ciphertextStringOrParams, format);
+ */
+ _parse: function (ciphertext, format) {
+ if (typeof ciphertext == 'string') {
+ return format.parse(ciphertext, this);
+ } else {
+ return ciphertext;
+ }
+ }
+ });
+
+ /**
+ * Key derivation function namespace.
+ */
+ var C_kdf = C.kdf = {};
+
+ /**
+ * OpenSSL key derivation function.
+ */
+ var OpenSSLKdf = C_kdf.OpenSSL = {
+ /**
+ * Derives a key and IV from a password.
+ *
+ * @param {string} password The password to derive from.
+ * @param {number} keySize The size in words of the key to generate.
+ * @param {number} ivSize The size in words of the IV to generate.
+ * @param {WordArray|string} salt (Optional) A 64-bit salt to use. If omitted, a salt will be generated randomly.
+ *
+ * @return {CipherParams} A cipher params object with the key, IV, and salt.
+ *
+ * @static
+ *
+ * @example
+ *
+ * var derivedParams = CryptoJS.kdf.OpenSSL.execute('Password', 256/32, 128/32);
+ * var derivedParams = CryptoJS.kdf.OpenSSL.execute('Password', 256/32, 128/32, 'saltsalt');
+ */
+ execute: function (password, keySize, ivSize, salt, hasher) {
+ // Generate random salt
+ if (!salt) {
+ salt = WordArray.random(64/8);
+ }
+
+ // Derive key and IV
+ if (!hasher) {
+ var key = EvpKDF.create({ keySize: keySize + ivSize }).compute(password, salt);
+ } else {
+ var key = EvpKDF.create({ keySize: keySize + ivSize, hasher: hasher }).compute(password, salt);
+ }
+
+
+ // Separate key and IV
+ var iv = WordArray.create(key.words.slice(keySize), ivSize * 4);
+ key.sigBytes = keySize * 4;
+
+ // Return params
+ return CipherParams.create({ key: key, iv: iv, salt: salt });
+ }
+ };
+
+ /**
+ * A serializable cipher wrapper that derives the key from a password,
+ * and returns ciphertext as a serializable cipher params object.
+ */
+ var PasswordBasedCipher = C_lib.PasswordBasedCipher = SerializableCipher.extend({
+ /**
+ * Configuration options.
+ *
+ * @property {KDF} kdf The key derivation function to use to generate a key and IV from a password. Default: OpenSSL
+ */
+ cfg: SerializableCipher.cfg.extend({
+ kdf: OpenSSLKdf
+ }),
+
+ /**
+ * Encrypts a message using a password.
+ *
+ * @param {Cipher} cipher The cipher algorithm to use.
+ * @param {WordArray|string} message The message to encrypt.
+ * @param {string} password The password.
+ * @param {Object} cfg (Optional) The configuration options to use for this operation.
+ *
+ * @return {CipherParams} A cipher params object.
+ *
+ * @static
+ *
+ * @example
+ *
+ * var ciphertextParams = CryptoJS.lib.PasswordBasedCipher.encrypt(CryptoJS.algo.AES, message, 'password');
+ * var ciphertextParams = CryptoJS.lib.PasswordBasedCipher.encrypt(CryptoJS.algo.AES, message, 'password', { format: CryptoJS.format.OpenSSL });
+ */
+ encrypt: function (cipher, message, password, cfg) {
+ // Apply config defaults
+ cfg = this.cfg.extend(cfg);
+
+ // Derive key and other params
+ var derivedParams = cfg.kdf.execute(password, cipher.keySize, cipher.ivSize, cfg.salt, cfg.hasher);
+
+ // Add IV to config
+ cfg.iv = derivedParams.iv;
+
+ // Encrypt
+ var ciphertext = SerializableCipher.encrypt.call(this, cipher, message, derivedParams.key, cfg);
+
+ // Mix in derived params
+ ciphertext.mixIn(derivedParams);
+
+ return ciphertext;
+ },
+
+ /**
+ * Decrypts serialized ciphertext using a password.
+ *
+ * @param {Cipher} cipher The cipher algorithm to use.
+ * @param {CipherParams|string} ciphertext The ciphertext to decrypt.
+ * @param {string} password The password.
+ * @param {Object} cfg (Optional) The configuration options to use for this operation.
+ *
+ * @return {WordArray} The plaintext.
+ *
+ * @static
+ *
+ * @example
+ *
+ * var plaintext = CryptoJS.lib.PasswordBasedCipher.decrypt(CryptoJS.algo.AES, formattedCiphertext, 'password', { format: CryptoJS.format.OpenSSL });
+ * var plaintext = CryptoJS.lib.PasswordBasedCipher.decrypt(CryptoJS.algo.AES, ciphertextParams, 'password', { format: CryptoJS.format.OpenSSL });
+ */
+ decrypt: function (cipher, ciphertext, password, cfg) {
+ // Apply config defaults
+ cfg = this.cfg.extend(cfg);
+
+ // Convert string to CipherParams
+ ciphertext = this._parse(ciphertext, cfg.format);
+
+ // Derive key and other params
+ var derivedParams = cfg.kdf.execute(password, cipher.keySize, cipher.ivSize, ciphertext.salt, cfg.hasher);
+
+ // Add IV to config
+ cfg.iv = derivedParams.iv;
+
+ // Decrypt
+ var plaintext = SerializableCipher.decrypt.call(this, cipher, ciphertext, derivedParams.key, cfg);
+
+ return plaintext;
+ }
+ });
+ }());
+
+
+}));
\ No newline at end of file
diff --git a/node_modules/crypto-js/core.js b/node_modules/crypto-js/core.js
new file mode 100644
index 0000000..e3a498b
--- /dev/null
+++ b/node_modules/crypto-js/core.js
@@ -0,0 +1,807 @@
+;(function (root, factory) {
+ if (typeof exports === "object") {
+ // CommonJS
+ module.exports = exports = factory();
+ }
+ else if (typeof define === "function" && define.amd) {
+ // AMD
+ define([], factory);
+ }
+ else {
+ // Global (browser)
+ root.CryptoJS = factory();
+ }
+}(this, function () {
+
+ /*globals window, global, require*/
+
+ /**
+ * CryptoJS core components.
+ */
+ var CryptoJS = CryptoJS || (function (Math, undefined) {
+
+ var crypto;
+
+ // Native crypto from window (Browser)
+ if (typeof window !== 'undefined' && window.crypto) {
+ crypto = window.crypto;
+ }
+
+ // Native crypto in web worker (Browser)
+ if (typeof self !== 'undefined' && self.crypto) {
+ crypto = self.crypto;
+ }
+
+ // Native crypto from worker
+ if (typeof globalThis !== 'undefined' && globalThis.crypto) {
+ crypto = globalThis.crypto;
+ }
+
+ // Native (experimental IE 11) crypto from window (Browser)
+ if (!crypto && typeof window !== 'undefined' && window.msCrypto) {
+ crypto = window.msCrypto;
+ }
+
+ // Native crypto from global (NodeJS)
+ if (!crypto && typeof global !== 'undefined' && global.crypto) {
+ crypto = global.crypto;
+ }
+
+ // Native crypto import via require (NodeJS)
+ if (!crypto && typeof require === 'function') {
+ try {
+ crypto = require('crypto');
+ } catch (err) {}
+ }
+
+ /*
+ * Cryptographically secure pseudorandom number generator
+ *
+ * As Math.random() is cryptographically not safe to use
+ */
+ var cryptoSecureRandomInt = function () {
+ if (crypto) {
+ // Use getRandomValues method (Browser)
+ if (typeof crypto.getRandomValues === 'function') {
+ try {
+ return crypto.getRandomValues(new Uint32Array(1))[0];
+ } catch (err) {}
+ }
+
+ // Use randomBytes method (NodeJS)
+ if (typeof crypto.randomBytes === 'function') {
+ try {
+ return crypto.randomBytes(4).readInt32LE();
+ } catch (err) {}
+ }
+ }
+
+ throw new Error('Native crypto module could not be used to get secure random number.');
+ };
+
+ /*
+ * Local polyfill of Object.create
+
+ */
+ var create = Object.create || (function () {
+ function F() {}
+
+ return function (obj) {
+ var subtype;
+
+ F.prototype = obj;
+
+ subtype = new F();
+
+ F.prototype = null;
+
+ return subtype;
+ };
+ }());
+
+ /**
+ * CryptoJS namespace.
+ */
+ var C = {};
+
+ /**
+ * Library namespace.
+ */
+ var C_lib = C.lib = {};
+
+ /**
+ * Base object for prototypal inheritance.
+ */
+ var Base = C_lib.Base = (function () {
+
+
+ return {
+ /**
+ * Creates a new object that inherits from this object.
+ *
+ * @param {Object} overrides Properties to copy into the new object.
+ *
+ * @return {Object} The new object.
+ *
+ * @static
+ *
+ * @example
+ *
+ * var MyType = CryptoJS.lib.Base.extend({
+ * field: 'value',
+ *
+ * method: function () {
+ * }
+ * });
+ */
+ extend: function (overrides) {
+ // Spawn
+ var subtype = create(this);
+
+ // Augment
+ if (overrides) {
+ subtype.mixIn(overrides);
+ }
+
+ // Create default initializer
+ if (!subtype.hasOwnProperty('init') || this.init === subtype.init) {
+ subtype.init = function () {
+ subtype.$super.init.apply(this, arguments);
+ };
+ }
+
+ // Initializer's prototype is the subtype object
+ subtype.init.prototype = subtype;
+
+ // Reference supertype
+ subtype.$super = this;
+
+ return subtype;
+ },
+
+ /**
+ * Extends this object and runs the init method.
+ * Arguments to create() will be passed to init().
+ *
+ * @return {Object} The new object.
+ *
+ * @static
+ *
+ * @example
+ *
+ * var instance = MyType.create();
+ */
+ create: function () {
+ var instance = this.extend();
+ instance.init.apply(instance, arguments);
+
+ return instance;
+ },
+
+ /**
+ * Initializes a newly created object.
+ * Override this method to add some logic when your objects are created.
+ *
+ * @example
+ *
+ * var MyType = CryptoJS.lib.Base.extend({
+ * init: function () {
+ * // ...
+ * }
+ * });
+ */
+ init: function () {
+ },
+
+ /**
+ * Copies properties into this object.
+ *
+ * @param {Object} properties The properties to mix in.
+ *
+ * @example
+ *
+ * MyType.mixIn({
+ * field: 'value'
+ * });
+ */
+ mixIn: function (properties) {
+ for (var propertyName in properties) {
+ if (properties.hasOwnProperty(propertyName)) {
+ this[propertyName] = properties[propertyName];
+ }
+ }
+
+ // IE won't copy toString using the loop above
+ if (properties.hasOwnProperty('toString')) {
+ this.toString = properties.toString;
+ }
+ },
+
+ /**
+ * Creates a copy of this object.
+ *
+ * @return {Object} The clone.
+ *
+ * @example
+ *
+ * var clone = instance.clone();
+ */
+ clone: function () {
+ return this.init.prototype.extend(this);
+ }
+ };
+ }());
+
+ /**
+ * An array of 32-bit words.
+ *
+ * @property {Array} words The array of 32-bit words.
+ * @property {number} sigBytes The number of significant bytes in this word array.
+ */
+ var WordArray = C_lib.WordArray = Base.extend({
+ /**
+ * Initializes a newly created word array.
+ *
+ * @param {Array} words (Optional) An array of 32-bit words.
+ * @param {number} sigBytes (Optional) The number of significant bytes in the words.
+ *
+ * @example
+ *
+ * var wordArray = CryptoJS.lib.WordArray.create();
+ * var wordArray = CryptoJS.lib.WordArray.create([0x00010203, 0x04050607]);
+ * var wordArray = CryptoJS.lib.WordArray.create([0x00010203, 0x04050607], 6);
+ */
+ init: function (words, sigBytes) {
+ words = this.words = words || [];
+
+ if (sigBytes != undefined) {
+ this.sigBytes = sigBytes;
+ } else {
+ this.sigBytes = words.length * 4;
+ }
+ },
+
+ /**
+ * Converts this word array to a string.
+ *
+ * @param {Encoder} encoder (Optional) The encoding strategy to use. Default: CryptoJS.enc.Hex
+ *
+ * @return {string} The stringified word array.
+ *
+ * @example
+ *
+ * var string = wordArray + '';
+ * var string = wordArray.toString();
+ * var string = wordArray.toString(CryptoJS.enc.Utf8);
+ */
+ toString: function (encoder) {
+ return (encoder || Hex).stringify(this);
+ },
+
+ /**
+ * Concatenates a word array to this word array.
+ *
+ * @param {WordArray} wordArray The word array to append.
+ *
+ * @return {WordArray} This word array.
+ *
+ * @example
+ *
+ * wordArray1.concat(wordArray2);
+ */
+ concat: function (wordArray) {
+ // Shortcuts
+ var thisWords = this.words;
+ var thatWords = wordArray.words;
+ var thisSigBytes = this.sigBytes;
+ var thatSigBytes = wordArray.sigBytes;
+
+ // Clamp excess bits
+ this.clamp();
+
+ // Concat
+ if (thisSigBytes % 4) {
+ // Copy one byte at a time
+ for (var i = 0; i < thatSigBytes; i++) {
+ var thatByte = (thatWords[i >>> 2] >>> (24 - (i % 4) * 8)) & 0xff;
+ thisWords[(thisSigBytes + i) >>> 2] |= thatByte << (24 - ((thisSigBytes + i) % 4) * 8);
+ }
+ } else {
+ // Copy one word at a time
+ for (var j = 0; j < thatSigBytes; j += 4) {
+ thisWords[(thisSigBytes + j) >>> 2] = thatWords[j >>> 2];
+ }
+ }
+ this.sigBytes += thatSigBytes;
+
+ // Chainable
+ return this;
+ },
+
+ /**
+ * Removes insignificant bits.
+ *
+ * @example
+ *
+ * wordArray.clamp();
+ */
+ clamp: function () {
+ // Shortcuts
+ var words = this.words;
+ var sigBytes = this.sigBytes;
+
+ // Clamp
+ words[sigBytes >>> 2] &= 0xffffffff << (32 - (sigBytes % 4) * 8);
+ words.length = Math.ceil(sigBytes / 4);
+ },
+
+ /**
+ * Creates a copy of this word array.
+ *
+ * @return {WordArray} The clone.
+ *
+ * @example
+ *
+ * var clone = wordArray.clone();
+ */
+ clone: function () {
+ var clone = Base.clone.call(this);
+ clone.words = this.words.slice(0);
+
+ return clone;
+ },
+
+ /**
+ * Creates a word array filled with random bytes.
+ *
+ * @param {number} nBytes The number of random bytes to generate.
+ *
+ * @return {WordArray} The random word array.
+ *
+ * @static
+ *
+ * @example
+ *
+ * var wordArray = CryptoJS.lib.WordArray.random(16);
+ */
+ random: function (nBytes) {
+ var words = [];
+
+ for (var i = 0; i < nBytes; i += 4) {
+ words.push(cryptoSecureRandomInt());
+ }
+
+ return new WordArray.init(words, nBytes);
+ }
+ });
+
+ /**
+ * Encoder namespace.
+ */
+ var C_enc = C.enc = {};
+
+ /**
+ * Hex encoding strategy.
+ */
+ var Hex = C_enc.Hex = {
+ /**
+ * Converts a word array to a hex string.
+ *
+ * @param {WordArray} wordArray The word array.
+ *
+ * @return {string} The hex string.
+ *
+ * @static
+ *
+ * @example
+ *
+ * var hexString = CryptoJS.enc.Hex.stringify(wordArray);
+ */
+ stringify: function (wordArray) {
+ // Shortcuts
+ var words = wordArray.words;
+ var sigBytes = wordArray.sigBytes;
+
+ // Convert
+ var hexChars = [];
+ for (var i = 0; i < sigBytes; i++) {
+ var bite = (words[i >>> 2] >>> (24 - (i % 4) * 8)) & 0xff;
+ hexChars.push((bite >>> 4).toString(16));
+ hexChars.push((bite & 0x0f).toString(16));
+ }
+
+ return hexChars.join('');
+ },
+
+ /**
+ * Converts a hex string to a word array.
+ *
+ * @param {string} hexStr The hex string.
+ *
+ * @return {WordArray} The word array.
+ *
+ * @static
+ *
+ * @example
+ *
+ * var wordArray = CryptoJS.enc.Hex.parse(hexString);
+ */
+ parse: function (hexStr) {
+ // Shortcut
+ var hexStrLength = hexStr.length;
+
+ // Convert
+ var words = [];
+ for (var i = 0; i < hexStrLength; i += 2) {
+ words[i >>> 3] |= parseInt(hexStr.substr(i, 2), 16) << (24 - (i % 8) * 4);
+ }
+
+ return new WordArray.init(words, hexStrLength / 2);
+ }
+ };
+
+ /**
+ * Latin1 encoding strategy.
+ */
+ var Latin1 = C_enc.Latin1 = {
+ /**
+ * Converts a word array to a Latin1 string.
+ *
+ * @param {WordArray} wordArray The word array.
+ *
+ * @return {string} The Latin1 string.
+ *
+ * @static
+ *
+ * @example
+ *
+ * var latin1String = CryptoJS.enc.Latin1.stringify(wordArray);
+ */
+ stringify: function (wordArray) {
+ // Shortcuts
+ var words = wordArray.words;
+ var sigBytes = wordArray.sigBytes;
+
+ // Convert
+ var latin1Chars = [];
+ for (var i = 0; i < sigBytes; i++) {
+ var bite = (words[i >>> 2] >>> (24 - (i % 4) * 8)) & 0xff;
+ latin1Chars.push(String.fromCharCode(bite));
+ }
+
+ return latin1Chars.join('');
+ },
+
+ /**
+ * Converts a Latin1 string to a word array.
+ *
+ * @param {string} latin1Str The Latin1 string.
+ *
+ * @return {WordArray} The word array.
+ *
+ * @static
+ *
+ * @example
+ *
+ * var wordArray = CryptoJS.enc.Latin1.parse(latin1String);
+ */
+ parse: function (latin1Str) {
+ // Shortcut
+ var latin1StrLength = latin1Str.length;
+
+ // Convert
+ var words = [];
+ for (var i = 0; i < latin1StrLength; i++) {
+ words[i >>> 2] |= (latin1Str.charCodeAt(i) & 0xff) << (24 - (i % 4) * 8);
+ }
+
+ return new WordArray.init(words, latin1StrLength);
+ }
+ };
+
+ /**
+ * UTF-8 encoding strategy.
+ */
+ var Utf8 = C_enc.Utf8 = {
+ /**
+ * Converts a word array to a UTF-8 string.
+ *
+ * @param {WordArray} wordArray The word array.
+ *
+ * @return {string} The UTF-8 string.
+ *
+ * @static
+ *
+ * @example
+ *
+ * var utf8String = CryptoJS.enc.Utf8.stringify(wordArray);
+ */
+ stringify: function (wordArray) {
+ try {
+ return decodeURIComponent(escape(Latin1.stringify(wordArray)));
+ } catch (e) {
+ throw new Error('Malformed UTF-8 data');
+ }
+ },
+
+ /**
+ * Converts a UTF-8 string to a word array.
+ *
+ * @param {string} utf8Str The UTF-8 string.
+ *
+ * @return {WordArray} The word array.
+ *
+ * @static
+ *
+ * @example
+ *
+ * var wordArray = CryptoJS.enc.Utf8.parse(utf8String);
+ */
+ parse: function (utf8Str) {
+ return Latin1.parse(unescape(encodeURIComponent(utf8Str)));
+ }
+ };
+
+ /**
+ * Abstract buffered block algorithm template.
+ *
+ * The property blockSize must be implemented in a concrete subtype.
+ *
+ * @property {number} _minBufferSize The number of blocks that should be kept unprocessed in the buffer. Default: 0
+ */
+ var BufferedBlockAlgorithm = C_lib.BufferedBlockAlgorithm = Base.extend({
+ /**
+ * Resets this block algorithm's data buffer to its initial state.
+ *
+ * @example
+ *
+ * bufferedBlockAlgorithm.reset();
+ */
+ reset: function () {
+ // Initial values
+ this._data = new WordArray.init();
+ this._nDataBytes = 0;
+ },
+
+ /**
+ * Adds new data to this block algorithm's buffer.
+ *
+ * @param {WordArray|string} data The data to append. Strings are converted to a WordArray using UTF-8.
+ *
+ * @example
+ *
+ * bufferedBlockAlgorithm._append('data');
+ * bufferedBlockAlgorithm._append(wordArray);
+ */
+ _append: function (data) {
+ // Convert string to WordArray, else assume WordArray already
+ if (typeof data == 'string') {
+ data = Utf8.parse(data);
+ }
+
+ // Append
+ this._data.concat(data);
+ this._nDataBytes += data.sigBytes;
+ },
+
+ /**
+ * Processes available data blocks.
+ *
+ * This method invokes _doProcessBlock(offset), which must be implemented by a concrete subtype.
+ *
+ * @param {boolean} doFlush Whether all blocks and partial blocks should be processed.
+ *
+ * @return {WordArray} The processed data.
+ *
+ * @example
+ *
+ * var processedData = bufferedBlockAlgorithm._process();
+ * var processedData = bufferedBlockAlgorithm._process(!!'flush');
+ */
+ _process: function (doFlush) {
+ var processedWords;
+
+ // Shortcuts
+ var data = this._data;
+ var dataWords = data.words;
+ var dataSigBytes = data.sigBytes;
+ var blockSize = this.blockSize;
+ var blockSizeBytes = blockSize * 4;
+
+ // Count blocks ready
+ var nBlocksReady = dataSigBytes / blockSizeBytes;
+ if (doFlush) {
+ // Round up to include partial blocks
+ nBlocksReady = Math.ceil(nBlocksReady);
+ } else {
+ // Round down to include only full blocks,
+ // less the number of blocks that must remain in the buffer
+ nBlocksReady = Math.max((nBlocksReady | 0) - this._minBufferSize, 0);
+ }
+
+ // Count words ready
+ var nWordsReady = nBlocksReady * blockSize;
+
+ // Count bytes ready
+ var nBytesReady = Math.min(nWordsReady * 4, dataSigBytes);
+
+ // Process blocks
+ if (nWordsReady) {
+ for (var offset = 0; offset < nWordsReady; offset += blockSize) {
+ // Perform concrete-algorithm logic
+ this._doProcessBlock(dataWords, offset);
+ }
+
+ // Remove processed words
+ processedWords = dataWords.splice(0, nWordsReady);
+ data.sigBytes -= nBytesReady;
+ }
+
+ // Return processed words
+ return new WordArray.init(processedWords, nBytesReady);
+ },
+
+ /**
+ * Creates a copy of this object.
+ *
+ * @return {Object} The clone.
+ *
+ * @example
+ *
+ * var clone = bufferedBlockAlgorithm.clone();
+ */
+ clone: function () {
+ var clone = Base.clone.call(this);
+ clone._data = this._data.clone();
+
+ return clone;
+ },
+
+ _minBufferSize: 0
+ });
+
+ /**
+ * Abstract hasher template.
+ *
+ * @property {number} blockSize The number of 32-bit words this hasher operates on. Default: 16 (512 bits)
+ */
+ var Hasher = C_lib.Hasher = BufferedBlockAlgorithm.extend({
+ /**
+ * Configuration options.
+ */
+ cfg: Base.extend(),
+
+ /**
+ * Initializes a newly created hasher.
+ *
+ * @param {Object} cfg (Optional) The configuration options to use for this hash computation.
+ *
+ * @example
+ *
+ * var hasher = CryptoJS.algo.SHA256.create();
+ */
+ init: function (cfg) {
+ // Apply config defaults
+ this.cfg = this.cfg.extend(cfg);
+
+ // Set initial values
+ this.reset();
+ },
+
+ /**
+ * Resets this hasher to its initial state.
+ *
+ * @example
+ *
+ * hasher.reset();
+ */
+ reset: function () {
+ // Reset data buffer
+ BufferedBlockAlgorithm.reset.call(this);
+
+ // Perform concrete-hasher logic
+ this._doReset();
+ },
+
+ /**
+ * Updates this hasher with a message.
+ *
+ * @param {WordArray|string} messageUpdate The message to append.
+ *
+ * @return {Hasher} This hasher.
+ *
+ * @example
+ *
+ * hasher.update('message');
+ * hasher.update(wordArray);
+ */
+ update: function (messageUpdate) {
+ // Append
+ this._append(messageUpdate);
+
+ // Update the hash
+ this._process();
+
+ // Chainable
+ return this;
+ },
+
+ /**
+ * Finalizes the hash computation.
+ * Note that the finalize operation is effectively a destructive, read-once operation.
+ *
+ * @param {WordArray|string} messageUpdate (Optional) A final message update.
+ *
+ * @return {WordArray} The hash.
+ *
+ * @example
+ *
+ * var hash = hasher.finalize();
+ * var hash = hasher.finalize('message');
+ * var hash = hasher.finalize(wordArray);
+ */
+ finalize: function (messageUpdate) {
+ // Final message update
+ if (messageUpdate) {
+ this._append(messageUpdate);
+ }
+
+ // Perform concrete-hasher logic
+ var hash = this._doFinalize();
+
+ return hash;
+ },
+
+ blockSize: 512/32,
+
+ /**
+ * Creates a shortcut function to a hasher's object interface.
+ *
+ * @param {Hasher} hasher The hasher to create a helper for.
+ *
+ * @return {Function} The shortcut function.
+ *
+ * @static
+ *
+ * @example
+ *
+ * var SHA256 = CryptoJS.lib.Hasher._createHelper(CryptoJS.algo.SHA256);
+ */
+ _createHelper: function (hasher) {
+ return function (message, cfg) {
+ return new hasher.init(cfg).finalize(message);
+ };
+ },
+
+ /**
+ * Creates a shortcut function to the HMAC's object interface.
+ *
+ * @param {Hasher} hasher The hasher to use in this HMAC helper.
+ *
+ * @return {Function} The shortcut function.
+ *
+ * @static
+ *
+ * @example
+ *
+ * var HmacSHA256 = CryptoJS.lib.Hasher._createHmacHelper(CryptoJS.algo.SHA256);
+ */
+ _createHmacHelper: function (hasher) {
+ return function (message, key) {
+ return new C_algo.HMAC.init(hasher, key).finalize(message);
+ };
+ }
+ });
+
+ /**
+ * Algorithm namespace.
+ */
+ var C_algo = C.algo = {};
+
+ return C;
+ }(Math));
+
+
+ return CryptoJS;
+
+}));
\ No newline at end of file
diff --git a/node_modules/crypto-js/crypto-js.js b/node_modules/crypto-js/crypto-js.js
new file mode 100644
index 0000000..958ee53
--- /dev/null
+++ b/node_modules/crypto-js/crypto-js.js
@@ -0,0 +1,6657 @@
+;(function (root, factory) {
+ if (typeof exports === "object") {
+ // CommonJS
+ module.exports = exports = factory();
+ }
+ else if (typeof define === "function" && define.amd) {
+ // AMD
+ define([], factory);
+ }
+ else {
+ // Global (browser)
+ root.CryptoJS = factory();
+ }
+}(this, function () {
+
+ /*globals window, global, require*/
+
+ /**
+ * CryptoJS core components.
+ */
+ var CryptoJS = CryptoJS || (function (Math, undefined) {
+
+ var crypto;
+
+ // Native crypto from window (Browser)
+ if (typeof window !== 'undefined' && window.crypto) {
+ crypto = window.crypto;
+ }
+
+ // Native crypto in web worker (Browser)
+ if (typeof self !== 'undefined' && self.crypto) {
+ crypto = self.crypto;
+ }
+
+ // Native crypto from worker
+ if (typeof globalThis !== 'undefined' && globalThis.crypto) {
+ crypto = globalThis.crypto;
+ }
+
+ // Native (experimental IE 11) crypto from window (Browser)
+ if (!crypto && typeof window !== 'undefined' && window.msCrypto) {
+ crypto = window.msCrypto;
+ }
+
+ // Native crypto from global (NodeJS)
+ if (!crypto && typeof global !== 'undefined' && global.crypto) {
+ crypto = global.crypto;
+ }
+
+ // Native crypto import via require (NodeJS)
+ if (!crypto && typeof require === 'function') {
+ try {
+ crypto = require('crypto');
+ } catch (err) {}
+ }
+
+ /*
+ * Cryptographically secure pseudorandom number generator
+ *
+ * As Math.random() is cryptographically not safe to use
+ */
+ var cryptoSecureRandomInt = function () {
+ if (crypto) {
+ // Use getRandomValues method (Browser)
+ if (typeof crypto.getRandomValues === 'function') {
+ try {
+ return crypto.getRandomValues(new Uint32Array(1))[0];
+ } catch (err) {}
+ }
+
+ // Use randomBytes method (NodeJS)
+ if (typeof crypto.randomBytes === 'function') {
+ try {
+ return crypto.randomBytes(4).readInt32LE();
+ } catch (err) {}
+ }
+ }
+
+ throw new Error('Native crypto module could not be used to get secure random number.');
+ };
+
+ /*
+ * Local polyfill of Object.create
+
+ */
+ var create = Object.create || (function () {
+ function F() {}
+
+ return function (obj) {
+ var subtype;
+
+ F.prototype = obj;
+
+ subtype = new F();
+
+ F.prototype = null;
+
+ return subtype;
+ };
+ }());
+
+ /**
+ * CryptoJS namespace.
+ */
+ var C = {};
+
+ /**
+ * Library namespace.
+ */
+ var C_lib = C.lib = {};
+
+ /**
+ * Base object for prototypal inheritance.
+ */
+ var Base = C_lib.Base = (function () {
+
+
+ return {
+ /**
+ * Creates a new object that inherits from this object.
+ *
+ * @param {Object} overrides Properties to copy into the new object.
+ *
+ * @return {Object} The new object.
+ *
+ * @static
+ *
+ * @example
+ *
+ * var MyType = CryptoJS.lib.Base.extend({
+ * field: 'value',
+ *
+ * method: function () {
+ * }
+ * });
+ */
+ extend: function (overrides) {
+ // Spawn
+ var subtype = create(this);
+
+ // Augment
+ if (overrides) {
+ subtype.mixIn(overrides);
+ }
+
+ // Create default initializer
+ if (!subtype.hasOwnProperty('init') || this.init === subtype.init) {
+ subtype.init = function () {
+ subtype.$super.init.apply(this, arguments);
+ };
+ }
+
+ // Initializer's prototype is the subtype object
+ subtype.init.prototype = subtype;
+
+ // Reference supertype
+ subtype.$super = this;
+
+ return subtype;
+ },
+
+ /**
+ * Extends this object and runs the init method.
+ * Arguments to create() will be passed to init().
+ *
+ * @return {Object} The new object.
+ *
+ * @static
+ *
+ * @example
+ *
+ * var instance = MyType.create();
+ */
+ create: function () {
+ var instance = this.extend();
+ instance.init.apply(instance, arguments);
+
+ return instance;
+ },
+
+ /**
+ * Initializes a newly created object.
+ * Override this method to add some logic when your objects are created.
+ *
+ * @example
+ *
+ * var MyType = CryptoJS.lib.Base.extend({
+ * init: function () {
+ * // ...
+ * }
+ * });
+ */
+ init: function () {
+ },
+
+ /**
+ * Copies properties into this object.
+ *
+ * @param {Object} properties The properties to mix in.
+ *
+ * @example
+ *
+ * MyType.mixIn({
+ * field: 'value'
+ * });
+ */
+ mixIn: function (properties) {
+ for (var propertyName in properties) {
+ if (properties.hasOwnProperty(propertyName)) {
+ this[propertyName] = properties[propertyName];
+ }
+ }
+
+ // IE won't copy toString using the loop above
+ if (properties.hasOwnProperty('toString')) {
+ this.toString = properties.toString;
+ }
+ },
+
+ /**
+ * Creates a copy of this object.
+ *
+ * @return {Object} The clone.
+ *
+ * @example
+ *
+ * var clone = instance.clone();
+ */
+ clone: function () {
+ return this.init.prototype.extend(this);
+ }
+ };
+ }());
+
+ /**
+ * An array of 32-bit words.
+ *
+ * @property {Array} words The array of 32-bit words.
+ * @property {number} sigBytes The number of significant bytes in this word array.
+ */
+ var WordArray = C_lib.WordArray = Base.extend({
+ /**
+ * Initializes a newly created word array.
+ *
+ * @param {Array} words (Optional) An array of 32-bit words.
+ * @param {number} sigBytes (Optional) The number of significant bytes in the words.
+ *
+ * @example
+ *
+ * var wordArray = CryptoJS.lib.WordArray.create();
+ * var wordArray = CryptoJS.lib.WordArray.create([0x00010203, 0x04050607]);
+ * var wordArray = CryptoJS.lib.WordArray.create([0x00010203, 0x04050607], 6);
+ */
+ init: function (words, sigBytes) {
+ words = this.words = words || [];
+
+ if (sigBytes != undefined) {
+ this.sigBytes = sigBytes;
+ } else {
+ this.sigBytes = words.length * 4;
+ }
+ },
+
+ /**
+ * Converts this word array to a string.
+ *
+ * @param {Encoder} encoder (Optional) The encoding strategy to use. Default: CryptoJS.enc.Hex
+ *
+ * @return {string} The stringified word array.
+ *
+ * @example
+ *
+ * var string = wordArray + '';
+ * var string = wordArray.toString();
+ * var string = wordArray.toString(CryptoJS.enc.Utf8);
+ */
+ toString: function (encoder) {
+ return (encoder || Hex).stringify(this);
+ },
+
+ /**
+ * Concatenates a word array to this word array.
+ *
+ * @param {WordArray} wordArray The word array to append.
+ *
+ * @return {WordArray} This word array.
+ *
+ * @example
+ *
+ * wordArray1.concat(wordArray2);
+ */
+ concat: function (wordArray) {
+ // Shortcuts
+ var thisWords = this.words;
+ var thatWords = wordArray.words;
+ var thisSigBytes = this.sigBytes;
+ var thatSigBytes = wordArray.sigBytes;
+
+ // Clamp excess bits
+ this.clamp();
+
+ // Concat
+ if (thisSigBytes % 4) {
+ // Copy one byte at a time
+ for (var i = 0; i < thatSigBytes; i++) {
+ var thatByte = (thatWords[i >>> 2] >>> (24 - (i % 4) * 8)) & 0xff;
+ thisWords[(thisSigBytes + i) >>> 2] |= thatByte << (24 - ((thisSigBytes + i) % 4) * 8);
+ }
+ } else {
+ // Copy one word at a time
+ for (var j = 0; j < thatSigBytes; j += 4) {
+ thisWords[(thisSigBytes + j) >>> 2] = thatWords[j >>> 2];
+ }
+ }
+ this.sigBytes += thatSigBytes;
+
+ // Chainable
+ return this;
+ },
+
+ /**
+ * Removes insignificant bits.
+ *
+ * @example
+ *
+ * wordArray.clamp();
+ */
+ clamp: function () {
+ // Shortcuts
+ var words = this.words;
+ var sigBytes = this.sigBytes;
+
+ // Clamp
+ words[sigBytes >>> 2] &= 0xffffffff << (32 - (sigBytes % 4) * 8);
+ words.length = Math.ceil(sigBytes / 4);
+ },
+
+ /**
+ * Creates a copy of this word array.
+ *
+ * @return {WordArray} The clone.
+ *
+ * @example
+ *
+ * var clone = wordArray.clone();
+ */
+ clone: function () {
+ var clone = Base.clone.call(this);
+ clone.words = this.words.slice(0);
+
+ return clone;
+ },
+
+ /**
+ * Creates a word array filled with random bytes.
+ *
+ * @param {number} nBytes The number of random bytes to generate.
+ *
+ * @return {WordArray} The random word array.
+ *
+ * @static
+ *
+ * @example
+ *
+ * var wordArray = CryptoJS.lib.WordArray.random(16);
+ */
+ random: function (nBytes) {
+ var words = [];
+
+ for (var i = 0; i < nBytes; i += 4) {
+ words.push(cryptoSecureRandomInt());
+ }
+
+ return new WordArray.init(words, nBytes);
+ }
+ });
+
+ /**
+ * Encoder namespace.
+ */
+ var C_enc = C.enc = {};
+
+ /**
+ * Hex encoding strategy.
+ */
+ var Hex = C_enc.Hex = {
+ /**
+ * Converts a word array to a hex string.
+ *
+ * @param {WordArray} wordArray The word array.
+ *
+ * @return {string} The hex string.
+ *
+ * @static
+ *
+ * @example
+ *
+ * var hexString = CryptoJS.enc.Hex.stringify(wordArray);
+ */
+ stringify: function (wordArray) {
+ // Shortcuts
+ var words = wordArray.words;
+ var sigBytes = wordArray.sigBytes;
+
+ // Convert
+ var hexChars = [];
+ for (var i = 0; i < sigBytes; i++) {
+ var bite = (words[i >>> 2] >>> (24 - (i % 4) * 8)) & 0xff;
+ hexChars.push((bite >>> 4).toString(16));
+ hexChars.push((bite & 0x0f).toString(16));
+ }
+
+ return hexChars.join('');
+ },
+
+ /**
+ * Converts a hex string to a word array.
+ *
+ * @param {string} hexStr The hex string.
+ *
+ * @return {WordArray} The word array.
+ *
+ * @static
+ *
+ * @example
+ *
+ * var wordArray = CryptoJS.enc.Hex.parse(hexString);
+ */
+ parse: function (hexStr) {
+ // Shortcut
+ var hexStrLength = hexStr.length;
+
+ // Convert
+ var words = [];
+ for (var i = 0; i < hexStrLength; i += 2) {
+ words[i >>> 3] |= parseInt(hexStr.substr(i, 2), 16) << (24 - (i % 8) * 4);
+ }
+
+ return new WordArray.init(words, hexStrLength / 2);
+ }
+ };
+
+ /**
+ * Latin1 encoding strategy.
+ */
+ var Latin1 = C_enc.Latin1 = {
+ /**
+ * Converts a word array to a Latin1 string.
+ *
+ * @param {WordArray} wordArray The word array.
+ *
+ * @return {string} The Latin1 string.
+ *
+ * @static
+ *
+ * @example
+ *
+ * var latin1String = CryptoJS.enc.Latin1.stringify(wordArray);
+ */
+ stringify: function (wordArray) {
+ // Shortcuts
+ var words = wordArray.words;
+ var sigBytes = wordArray.sigBytes;
+
+ // Convert
+ var latin1Chars = [];
+ for (var i = 0; i < sigBytes; i++) {
+ var bite = (words[i >>> 2] >>> (24 - (i % 4) * 8)) & 0xff;
+ latin1Chars.push(String.fromCharCode(bite));
+ }
+
+ return latin1Chars.join('');
+ },
+
+ /**
+ * Converts a Latin1 string to a word array.
+ *
+ * @param {string} latin1Str The Latin1 string.
+ *
+ * @return {WordArray} The word array.
+ *
+ * @static
+ *
+ * @example
+ *
+ * var wordArray = CryptoJS.enc.Latin1.parse(latin1String);
+ */
+ parse: function (latin1Str) {
+ // Shortcut
+ var latin1StrLength = latin1Str.length;
+
+ // Convert
+ var words = [];
+ for (var i = 0; i < latin1StrLength; i++) {
+ words[i >>> 2] |= (latin1Str.charCodeAt(i) & 0xff) << (24 - (i % 4) * 8);
+ }
+
+ return new WordArray.init(words, latin1StrLength);
+ }
+ };
+
+ /**
+ * UTF-8 encoding strategy.
+ */
+ var Utf8 = C_enc.Utf8 = {
+ /**
+ * Converts a word array to a UTF-8 string.
+ *
+ * @param {WordArray} wordArray The word array.
+ *
+ * @return {string} The UTF-8 string.
+ *
+ * @static
+ *
+ * @example
+ *
+ * var utf8String = CryptoJS.enc.Utf8.stringify(wordArray);
+ */
+ stringify: function (wordArray) {
+ try {
+ return decodeURIComponent(escape(Latin1.stringify(wordArray)));
+ } catch (e) {
+ throw new Error('Malformed UTF-8 data');
+ }
+ },
+
+ /**
+ * Converts a UTF-8 string to a word array.
+ *
+ * @param {string} utf8Str The UTF-8 string.
+ *
+ * @return {WordArray} The word array.
+ *
+ * @static
+ *
+ * @example
+ *
+ * var wordArray = CryptoJS.enc.Utf8.parse(utf8String);
+ */
+ parse: function (utf8Str) {
+ return Latin1.parse(unescape(encodeURIComponent(utf8Str)));
+ }
+ };
+
+ /**
+ * Abstract buffered block algorithm template.
+ *
+ * The property blockSize must be implemented in a concrete subtype.
+ *
+ * @property {number} _minBufferSize The number of blocks that should be kept unprocessed in the buffer. Default: 0
+ */
+ var BufferedBlockAlgorithm = C_lib.BufferedBlockAlgorithm = Base.extend({
+ /**
+ * Resets this block algorithm's data buffer to its initial state.
+ *
+ * @example
+ *
+ * bufferedBlockAlgorithm.reset();
+ */
+ reset: function () {
+ // Initial values
+ this._data = new WordArray.init();
+ this._nDataBytes = 0;
+ },
+
+ /**
+ * Adds new data to this block algorithm's buffer.
+ *
+ * @param {WordArray|string} data The data to append. Strings are converted to a WordArray using UTF-8.
+ *
+ * @example
+ *
+ * bufferedBlockAlgorithm._append('data');
+ * bufferedBlockAlgorithm._append(wordArray);
+ */
+ _append: function (data) {
+ // Convert string to WordArray, else assume WordArray already
+ if (typeof data == 'string') {
+ data = Utf8.parse(data);
+ }
+
+ // Append
+ this._data.concat(data);
+ this._nDataBytes += data.sigBytes;
+ },
+
+ /**
+ * Processes available data blocks.
+ *
+ * This method invokes _doProcessBlock(offset), which must be implemented by a concrete subtype.
+ *
+ * @param {boolean} doFlush Whether all blocks and partial blocks should be processed.
+ *
+ * @return {WordArray} The processed data.
+ *
+ * @example
+ *
+ * var processedData = bufferedBlockAlgorithm._process();
+ * var processedData = bufferedBlockAlgorithm._process(!!'flush');
+ */
+ _process: function (doFlush) {
+ var processedWords;
+
+ // Shortcuts
+ var data = this._data;
+ var dataWords = data.words;
+ var dataSigBytes = data.sigBytes;
+ var blockSize = this.blockSize;
+ var blockSizeBytes = blockSize * 4;
+
+ // Count blocks ready
+ var nBlocksReady = dataSigBytes / blockSizeBytes;
+ if (doFlush) {
+ // Round up to include partial blocks
+ nBlocksReady = Math.ceil(nBlocksReady);
+ } else {
+ // Round down to include only full blocks,
+ // less the number of blocks that must remain in the buffer
+ nBlocksReady = Math.max((nBlocksReady | 0) - this._minBufferSize, 0);
+ }
+
+ // Count words ready
+ var nWordsReady = nBlocksReady * blockSize;
+
+ // Count bytes ready
+ var nBytesReady = Math.min(nWordsReady * 4, dataSigBytes);
+
+ // Process blocks
+ if (nWordsReady) {
+ for (var offset = 0; offset < nWordsReady; offset += blockSize) {
+ // Perform concrete-algorithm logic
+ this._doProcessBlock(dataWords, offset);
+ }
+
+ // Remove processed words
+ processedWords = dataWords.splice(0, nWordsReady);
+ data.sigBytes -= nBytesReady;
+ }
+
+ // Return processed words
+ return new WordArray.init(processedWords, nBytesReady);
+ },
+
+ /**
+ * Creates a copy of this object.
+ *
+ * @return {Object} The clone.
+ *
+ * @example
+ *
+ * var clone = bufferedBlockAlgorithm.clone();
+ */
+ clone: function () {
+ var clone = Base.clone.call(this);
+ clone._data = this._data.clone();
+
+ return clone;
+ },
+
+ _minBufferSize: 0
+ });
+
+ /**
+ * Abstract hasher template.
+ *
+ * @property {number} blockSize The number of 32-bit words this hasher operates on. Default: 16 (512 bits)
+ */
+ var Hasher = C_lib.Hasher = BufferedBlockAlgorithm.extend({
+ /**
+ * Configuration options.
+ */
+ cfg: Base.extend(),
+
+ /**
+ * Initializes a newly created hasher.
+ *
+ * @param {Object} cfg (Optional) The configuration options to use for this hash computation.
+ *
+ * @example
+ *
+ * var hasher = CryptoJS.algo.SHA256.create();
+ */
+ init: function (cfg) {
+ // Apply config defaults
+ this.cfg = this.cfg.extend(cfg);
+
+ // Set initial values
+ this.reset();
+ },
+
+ /**
+ * Resets this hasher to its initial state.
+ *
+ * @example
+ *
+ * hasher.reset();
+ */
+ reset: function () {
+ // Reset data buffer
+ BufferedBlockAlgorithm.reset.call(this);
+
+ // Perform concrete-hasher logic
+ this._doReset();
+ },
+
+ /**
+ * Updates this hasher with a message.
+ *
+ * @param {WordArray|string} messageUpdate The message to append.
+ *
+ * @return {Hasher} This hasher.
+ *
+ * @example
+ *
+ * hasher.update('message');
+ * hasher.update(wordArray);
+ */
+ update: function (messageUpdate) {
+ // Append
+ this._append(messageUpdate);
+
+ // Update the hash
+ this._process();
+
+ // Chainable
+ return this;
+ },
+
+ /**
+ * Finalizes the hash computation.
+ * Note that the finalize operation is effectively a destructive, read-once operation.
+ *
+ * @param {WordArray|string} messageUpdate (Optional) A final message update.
+ *
+ * @return {WordArray} The hash.
+ *
+ * @example
+ *
+ * var hash = hasher.finalize();
+ * var hash = hasher.finalize('message');
+ * var hash = hasher.finalize(wordArray);
+ */
+ finalize: function (messageUpdate) {
+ // Final message update
+ if (messageUpdate) {
+ this._append(messageUpdate);
+ }
+
+ // Perform concrete-hasher logic
+ var hash = this._doFinalize();
+
+ return hash;
+ },
+
+ blockSize: 512/32,
+
+ /**
+ * Creates a shortcut function to a hasher's object interface.
+ *
+ * @param {Hasher} hasher The hasher to create a helper for.
+ *
+ * @return {Function} The shortcut function.
+ *
+ * @static
+ *
+ * @example
+ *
+ * var SHA256 = CryptoJS.lib.Hasher._createHelper(CryptoJS.algo.SHA256);
+ */
+ _createHelper: function (hasher) {
+ return function (message, cfg) {
+ return new hasher.init(cfg).finalize(message);
+ };
+ },
+
+ /**
+ * Creates a shortcut function to the HMAC's object interface.
+ *
+ * @param {Hasher} hasher The hasher to use in this HMAC helper.
+ *
+ * @return {Function} The shortcut function.
+ *
+ * @static
+ *
+ * @example
+ *
+ * var HmacSHA256 = CryptoJS.lib.Hasher._createHmacHelper(CryptoJS.algo.SHA256);
+ */
+ _createHmacHelper: function (hasher) {
+ return function (message, key) {
+ return new C_algo.HMAC.init(hasher, key).finalize(message);
+ };
+ }
+ });
+
+ /**
+ * Algorithm namespace.
+ */
+ var C_algo = C.algo = {};
+
+ return C;
+ }(Math));
+
+
+ (function (undefined) {
+ // Shortcuts
+ var C = CryptoJS;
+ var C_lib = C.lib;
+ var Base = C_lib.Base;
+ var X32WordArray = C_lib.WordArray;
+
+ /**
+ * x64 namespace.
+ */
+ var C_x64 = C.x64 = {};
+
+ /**
+ * A 64-bit word.
+ */
+ var X64Word = C_x64.Word = Base.extend({
+ /**
+ * Initializes a newly created 64-bit word.
+ *
+ * @param {number} high The high 32 bits.
+ * @param {number} low The low 32 bits.
+ *
+ * @example
+ *
+ * var x64Word = CryptoJS.x64.Word.create(0x00010203, 0x04050607);
+ */
+ init: function (high, low) {
+ this.high = high;
+ this.low = low;
+ }
+
+ /**
+ * Bitwise NOTs this word.
+ *
+ * @return {X64Word} A new x64-Word object after negating.
+ *
+ * @example
+ *
+ * var negated = x64Word.not();
+ */
+ // not: function () {
+ // var high = ~this.high;
+ // var low = ~this.low;
+
+ // return X64Word.create(high, low);
+ // },
+
+ /**
+ * Bitwise ANDs this word with the passed word.
+ *
+ * @param {X64Word} word The x64-Word to AND with this word.
+ *
+ * @return {X64Word} A new x64-Word object after ANDing.
+ *
+ * @example
+ *
+ * var anded = x64Word.and(anotherX64Word);
+ */
+ // and: function (word) {
+ // var high = this.high & word.high;
+ // var low = this.low & word.low;
+
+ // return X64Word.create(high, low);
+ // },
+
+ /**
+ * Bitwise ORs this word with the passed word.
+ *
+ * @param {X64Word} word The x64-Word to OR with this word.
+ *
+ * @return {X64Word} A new x64-Word object after ORing.
+ *
+ * @example
+ *
+ * var ored = x64Word.or(anotherX64Word);
+ */
+ // or: function (word) {
+ // var high = this.high | word.high;
+ // var low = this.low | word.low;
+
+ // return X64Word.create(high, low);
+ // },
+
+ /**
+ * Bitwise XORs this word with the passed word.
+ *
+ * @param {X64Word} word The x64-Word to XOR with this word.
+ *
+ * @return {X64Word} A new x64-Word object after XORing.
+ *
+ * @example
+ *
+ * var xored = x64Word.xor(anotherX64Word);
+ */
+ // xor: function (word) {
+ // var high = this.high ^ word.high;
+ // var low = this.low ^ word.low;
+
+ // return X64Word.create(high, low);
+ // },
+
+ /**
+ * Shifts this word n bits to the left.
+ *
+ * @param {number} n The number of bits to shift.
+ *
+ * @return {X64Word} A new x64-Word object after shifting.
+ *
+ * @example
+ *
+ * var shifted = x64Word.shiftL(25);
+ */
+ // shiftL: function (n) {
+ // if (n < 32) {
+ // var high = (this.high << n) | (this.low >>> (32 - n));
+ // var low = this.low << n;
+ // } else {
+ // var high = this.low << (n - 32);
+ // var low = 0;
+ // }
+
+ // return X64Word.create(high, low);
+ // },
+
+ /**
+ * Shifts this word n bits to the right.
+ *
+ * @param {number} n The number of bits to shift.
+ *
+ * @return {X64Word} A new x64-Word object after shifting.
+ *
+ * @example
+ *
+ * var shifted = x64Word.shiftR(7);
+ */
+ // shiftR: function (n) {
+ // if (n < 32) {
+ // var low = (this.low >>> n) | (this.high << (32 - n));
+ // var high = this.high >>> n;
+ // } else {
+ // var low = this.high >>> (n - 32);
+ // var high = 0;
+ // }
+
+ // return X64Word.create(high, low);
+ // },
+
+ /**
+ * Rotates this word n bits to the left.
+ *
+ * @param {number} n The number of bits to rotate.
+ *
+ * @return {X64Word} A new x64-Word object after rotating.
+ *
+ * @example
+ *
+ * var rotated = x64Word.rotL(25);
+ */
+ // rotL: function (n) {
+ // return this.shiftL(n).or(this.shiftR(64 - n));
+ // },
+
+ /**
+ * Rotates this word n bits to the right.
+ *
+ * @param {number} n The number of bits to rotate.
+ *
+ * @return {X64Word} A new x64-Word object after rotating.
+ *
+ * @example
+ *
+ * var rotated = x64Word.rotR(7);
+ */
+ // rotR: function (n) {
+ // return this.shiftR(n).or(this.shiftL(64 - n));
+ // },
+
+ /**
+ * Adds this word with the passed word.
+ *
+ * @param {X64Word} word The x64-Word to add with this word.
+ *
+ * @return {X64Word} A new x64-Word object after adding.
+ *
+ * @example
+ *
+ * var added = x64Word.add(anotherX64Word);
+ */
+ // add: function (word) {
+ // var low = (this.low + word.low) | 0;
+ // var carry = (low >>> 0) < (this.low >>> 0) ? 1 : 0;
+ // var high = (this.high + word.high + carry) | 0;
+
+ // return X64Word.create(high, low);
+ // }
+ });
+
+ /**
+ * An array of 64-bit words.
+ *
+ * @property {Array} words The array of CryptoJS.x64.Word objects.
+ * @property {number} sigBytes The number of significant bytes in this word array.
+ */
+ var X64WordArray = C_x64.WordArray = Base.extend({
+ /**
+ * Initializes a newly created word array.
+ *
+ * @param {Array} words (Optional) An array of CryptoJS.x64.Word objects.
+ * @param {number} sigBytes (Optional) The number of significant bytes in the words.
+ *
+ * @example
+ *
+ * var wordArray = CryptoJS.x64.WordArray.create();
+ *
+ * var wordArray = CryptoJS.x64.WordArray.create([
+ * CryptoJS.x64.Word.create(0x00010203, 0x04050607),
+ * CryptoJS.x64.Word.create(0x18191a1b, 0x1c1d1e1f)
+ * ]);
+ *
+ * var wordArray = CryptoJS.x64.WordArray.create([
+ * CryptoJS.x64.Word.create(0x00010203, 0x04050607),
+ * CryptoJS.x64.Word.create(0x18191a1b, 0x1c1d1e1f)
+ * ], 10);
+ */
+ init: function (words, sigBytes) {
+ words = this.words = words || [];
+
+ if (sigBytes != undefined) {
+ this.sigBytes = sigBytes;
+ } else {
+ this.sigBytes = words.length * 8;
+ }
+ },
+
+ /**
+ * Converts this 64-bit word array to a 32-bit word array.
+ *
+ * @return {CryptoJS.lib.WordArray} This word array's data as a 32-bit word array.
+ *
+ * @example
+ *
+ * var x32WordArray = x64WordArray.toX32();
+ */
+ toX32: function () {
+ // Shortcuts
+ var x64Words = this.words;
+ var x64WordsLength = x64Words.length;
+
+ // Convert
+ var x32Words = [];
+ for (var i = 0; i < x64WordsLength; i++) {
+ var x64Word = x64Words[i];
+ x32Words.push(x64Word.high);
+ x32Words.push(x64Word.low);
+ }
+
+ return X32WordArray.create(x32Words, this.sigBytes);
+ },
+
+ /**
+ * Creates a copy of this word array.
+ *
+ * @return {X64WordArray} The clone.
+ *
+ * @example
+ *
+ * var clone = x64WordArray.clone();
+ */
+ clone: function () {
+ var clone = Base.clone.call(this);
+
+ // Clone "words" array
+ var words = clone.words = this.words.slice(0);
+
+ // Clone each X64Word object
+ var wordsLength = words.length;
+ for (var i = 0; i < wordsLength; i++) {
+ words[i] = words[i].clone();
+ }
+
+ return clone;
+ }
+ });
+ }());
+
+
+ (function () {
+ // Check if typed arrays are supported
+ if (typeof ArrayBuffer != 'function') {
+ return;
+ }
+
+ // Shortcuts
+ var C = CryptoJS;
+ var C_lib = C.lib;
+ var WordArray = C_lib.WordArray;
+
+ // Reference original init
+ var superInit = WordArray.init;
+
+ // Augment WordArray.init to handle typed arrays
+ var subInit = WordArray.init = function (typedArray) {
+ // Convert buffers to uint8
+ if (typedArray instanceof ArrayBuffer) {
+ typedArray = new Uint8Array(typedArray);
+ }
+
+ // Convert other array views to uint8
+ if (
+ typedArray instanceof Int8Array ||
+ (typeof Uint8ClampedArray !== "undefined" && typedArray instanceof Uint8ClampedArray) ||
+ typedArray instanceof Int16Array ||
+ typedArray instanceof Uint16Array ||
+ typedArray instanceof Int32Array ||
+ typedArray instanceof Uint32Array ||
+ typedArray instanceof Float32Array ||
+ typedArray instanceof Float64Array
+ ) {
+ typedArray = new Uint8Array(typedArray.buffer, typedArray.byteOffset, typedArray.byteLength);
+ }
+
+ // Handle Uint8Array
+ if (typedArray instanceof Uint8Array) {
+ // Shortcut
+ var typedArrayByteLength = typedArray.byteLength;
+
+ // Extract bytes
+ var words = [];
+ for (var i = 0; i < typedArrayByteLength; i++) {
+ words[i >>> 2] |= typedArray[i] << (24 - (i % 4) * 8);
+ }
+
+ // Initialize this word array
+ superInit.call(this, words, typedArrayByteLength);
+ } else {
+ // Else call normal init
+ superInit.apply(this, arguments);
+ }
+ };
+
+ subInit.prototype = WordArray;
+ }());
+
+
+ (function () {
+ // Shortcuts
+ var C = CryptoJS;
+ var C_lib = C.lib;
+ var WordArray = C_lib.WordArray;
+ var C_enc = C.enc;
+
+ /**
+ * UTF-16 BE encoding strategy.
+ */
+ var Utf16BE = C_enc.Utf16 = C_enc.Utf16BE = {
+ /**
+ * Converts a word array to a UTF-16 BE string.
+ *
+ * @param {WordArray} wordArray The word array.
+ *
+ * @return {string} The UTF-16 BE string.
+ *
+ * @static
+ *
+ * @example
+ *
+ * var utf16String = CryptoJS.enc.Utf16.stringify(wordArray);
+ */
+ stringify: function (wordArray) {
+ // Shortcuts
+ var words = wordArray.words;
+ var sigBytes = wordArray.sigBytes;
+
+ // Convert
+ var utf16Chars = [];
+ for (var i = 0; i < sigBytes; i += 2) {
+ var codePoint = (words[i >>> 2] >>> (16 - (i % 4) * 8)) & 0xffff;
+ utf16Chars.push(String.fromCharCode(codePoint));
+ }
+
+ return utf16Chars.join('');
+ },
+
+ /**
+ * Converts a UTF-16 BE string to a word array.
+ *
+ * @param {string} utf16Str The UTF-16 BE string.
+ *
+ * @return {WordArray} The word array.
+ *
+ * @static
+ *
+ * @example
+ *
+ * var wordArray = CryptoJS.enc.Utf16.parse(utf16String);
+ */
+ parse: function (utf16Str) {
+ // Shortcut
+ var utf16StrLength = utf16Str.length;
+
+ // Convert
+ var words = [];
+ for (var i = 0; i < utf16StrLength; i++) {
+ words[i >>> 1] |= utf16Str.charCodeAt(i) << (16 - (i % 2) * 16);
+ }
+
+ return WordArray.create(words, utf16StrLength * 2);
+ }
+ };
+
+ /**
+ * UTF-16 LE encoding strategy.
+ */
+ C_enc.Utf16LE = {
+ /**
+ * Converts a word array to a UTF-16 LE string.
+ *
+ * @param {WordArray} wordArray The word array.
+ *
+ * @return {string} The UTF-16 LE string.
+ *
+ * @static
+ *
+ * @example
+ *
+ * var utf16Str = CryptoJS.enc.Utf16LE.stringify(wordArray);
+ */
+ stringify: function (wordArray) {
+ // Shortcuts
+ var words = wordArray.words;
+ var sigBytes = wordArray.sigBytes;
+
+ // Convert
+ var utf16Chars = [];
+ for (var i = 0; i < sigBytes; i += 2) {
+ var codePoint = swapEndian((words[i >>> 2] >>> (16 - (i % 4) * 8)) & 0xffff);
+ utf16Chars.push(String.fromCharCode(codePoint));
+ }
+
+ return utf16Chars.join('');
+ },
+
+ /**
+ * Converts a UTF-16 LE string to a word array.
+ *
+ * @param {string} utf16Str The UTF-16 LE string.
+ *
+ * @return {WordArray} The word array.
+ *
+ * @static
+ *
+ * @example
+ *
+ * var wordArray = CryptoJS.enc.Utf16LE.parse(utf16Str);
+ */
+ parse: function (utf16Str) {
+ // Shortcut
+ var utf16StrLength = utf16Str.length;
+
+ // Convert
+ var words = [];
+ for (var i = 0; i < utf16StrLength; i++) {
+ words[i >>> 1] |= swapEndian(utf16Str.charCodeAt(i) << (16 - (i % 2) * 16));
+ }
+
+ return WordArray.create(words, utf16StrLength * 2);
+ }
+ };
+
+ function swapEndian(word) {
+ return ((word << 8) & 0xff00ff00) | ((word >>> 8) & 0x00ff00ff);
+ }
+ }());
+
+
+ (function () {
+ // Shortcuts
+ var C = CryptoJS;
+ var C_lib = C.lib;
+ var WordArray = C_lib.WordArray;
+ var C_enc = C.enc;
+
+ /**
+ * Base64 encoding strategy.
+ */
+ var Base64 = C_enc.Base64 = {
+ /**
+ * Converts a word array to a Base64 string.
+ *
+ * @param {WordArray} wordArray The word array.
+ *
+ * @return {string} The Base64 string.
+ *
+ * @static
+ *
+ * @example
+ *
+ * var base64String = CryptoJS.enc.Base64.stringify(wordArray);
+ */
+ stringify: function (wordArray) {
+ // Shortcuts
+ var words = wordArray.words;
+ var sigBytes = wordArray.sigBytes;
+ var map = this._map;
+
+ // Clamp excess bits
+ wordArray.clamp();
+
+ // Convert
+ var base64Chars = [];
+ for (var i = 0; i < sigBytes; i += 3) {
+ var byte1 = (words[i >>> 2] >>> (24 - (i % 4) * 8)) & 0xff;
+ var byte2 = (words[(i + 1) >>> 2] >>> (24 - ((i + 1) % 4) * 8)) & 0xff;
+ var byte3 = (words[(i + 2) >>> 2] >>> (24 - ((i + 2) % 4) * 8)) & 0xff;
+
+ var triplet = (byte1 << 16) | (byte2 << 8) | byte3;
+
+ for (var j = 0; (j < 4) && (i + j * 0.75 < sigBytes); j++) {
+ base64Chars.push(map.charAt((triplet >>> (6 * (3 - j))) & 0x3f));
+ }
+ }
+
+ // Add padding
+ var paddingChar = map.charAt(64);
+ if (paddingChar) {
+ while (base64Chars.length % 4) {
+ base64Chars.push(paddingChar);
+ }
+ }
+
+ return base64Chars.join('');
+ },
+
+ /**
+ * Converts a Base64 string to a word array.
+ *
+ * @param {string} base64Str The Base64 string.
+ *
+ * @return {WordArray} The word array.
+ *
+ * @static
+ *
+ * @example
+ *
+ * var wordArray = CryptoJS.enc.Base64.parse(base64String);
+ */
+ parse: function (base64Str) {
+ // Shortcuts
+ var base64StrLength = base64Str.length;
+ var map = this._map;
+ var reverseMap = this._reverseMap;
+
+ if (!reverseMap) {
+ reverseMap = this._reverseMap = [];
+ for (var j = 0; j < map.length; j++) {
+ reverseMap[map.charCodeAt(j)] = j;
+ }
+ }
+
+ // Ignore padding
+ var paddingChar = map.charAt(64);
+ if (paddingChar) {
+ var paddingIndex = base64Str.indexOf(paddingChar);
+ if (paddingIndex !== -1) {
+ base64StrLength = paddingIndex;
+ }
+ }
+
+ // Convert
+ return parseLoop(base64Str, base64StrLength, reverseMap);
+
+ },
+
+ _map: 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/='
+ };
+
+ function parseLoop(base64Str, base64StrLength, reverseMap) {
+ var words = [];
+ var nBytes = 0;
+ for (var i = 0; i < base64StrLength; i++) {
+ if (i % 4) {
+ var bits1 = reverseMap[base64Str.charCodeAt(i - 1)] << ((i % 4) * 2);
+ var bits2 = reverseMap[base64Str.charCodeAt(i)] >>> (6 - (i % 4) * 2);
+ var bitsCombined = bits1 | bits2;
+ words[nBytes >>> 2] |= bitsCombined << (24 - (nBytes % 4) * 8);
+ nBytes++;
+ }
+ }
+ return WordArray.create(words, nBytes);
+ }
+ }());
+
+
+ (function () {
+ // Shortcuts
+ var C = CryptoJS;
+ var C_lib = C.lib;
+ var WordArray = C_lib.WordArray;
+ var C_enc = C.enc;
+
+ /**
+ * Base64url encoding strategy.
+ */
+ var Base64url = C_enc.Base64url = {
+ /**
+ * Converts a word array to a Base64url string.
+ *
+ * @param {WordArray} wordArray The word array.
+ *
+ * @param {boolean} urlSafe Whether to use url safe
+ *
+ * @return {string} The Base64url string.
+ *
+ * @static
+ *
+ * @example
+ *
+ * var base64String = CryptoJS.enc.Base64url.stringify(wordArray);
+ */
+ stringify: function (wordArray, urlSafe) {
+ if (urlSafe === undefined) {
+ urlSafe = true
+ }
+ // Shortcuts
+ var words = wordArray.words;
+ var sigBytes = wordArray.sigBytes;
+ var map = urlSafe ? this._safe_map : this._map;
+
+ // Clamp excess bits
+ wordArray.clamp();
+
+ // Convert
+ var base64Chars = [];
+ for (var i = 0; i < sigBytes; i += 3) {
+ var byte1 = (words[i >>> 2] >>> (24 - (i % 4) * 8)) & 0xff;
+ var byte2 = (words[(i + 1) >>> 2] >>> (24 - ((i + 1) % 4) * 8)) & 0xff;
+ var byte3 = (words[(i + 2) >>> 2] >>> (24 - ((i + 2) % 4) * 8)) & 0xff;
+
+ var triplet = (byte1 << 16) | (byte2 << 8) | byte3;
+
+ for (var j = 0; (j < 4) && (i + j * 0.75 < sigBytes); j++) {
+ base64Chars.push(map.charAt((triplet >>> (6 * (3 - j))) & 0x3f));
+ }
+ }
+
+ // Add padding
+ var paddingChar = map.charAt(64);
+ if (paddingChar) {
+ while (base64Chars.length % 4) {
+ base64Chars.push(paddingChar);
+ }
+ }
+
+ return base64Chars.join('');
+ },
+
+ /**
+ * Converts a Base64url string to a word array.
+ *
+ * @param {string} base64Str The Base64url string.
+ *
+ * @param {boolean} urlSafe Whether to use url safe
+ *
+ * @return {WordArray} The word array.
+ *
+ * @static
+ *
+ * @example
+ *
+ * var wordArray = CryptoJS.enc.Base64url.parse(base64String);
+ */
+ parse: function (base64Str, urlSafe) {
+ if (urlSafe === undefined) {
+ urlSafe = true
+ }
+
+ // Shortcuts
+ var base64StrLength = base64Str.length;
+ var map = urlSafe ? this._safe_map : this._map;
+ var reverseMap = this._reverseMap;
+
+ if (!reverseMap) {
+ reverseMap = this._reverseMap = [];
+ for (var j = 0; j < map.length; j++) {
+ reverseMap[map.charCodeAt(j)] = j;
+ }
+ }
+
+ // Ignore padding
+ var paddingChar = map.charAt(64);
+ if (paddingChar) {
+ var paddingIndex = base64Str.indexOf(paddingChar);
+ if (paddingIndex !== -1) {
+ base64StrLength = paddingIndex;
+ }
+ }
+
+ // Convert
+ return parseLoop(base64Str, base64StrLength, reverseMap);
+
+ },
+
+ _map: 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=',
+ _safe_map: 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_',
+ };
+
+ function parseLoop(base64Str, base64StrLength, reverseMap) {
+ var words = [];
+ var nBytes = 0;
+ for (var i = 0; i < base64StrLength; i++) {
+ if (i % 4) {
+ var bits1 = reverseMap[base64Str.charCodeAt(i - 1)] << ((i % 4) * 2);
+ var bits2 = reverseMap[base64Str.charCodeAt(i)] >>> (6 - (i % 4) * 2);
+ var bitsCombined = bits1 | bits2;
+ words[nBytes >>> 2] |= bitsCombined << (24 - (nBytes % 4) * 8);
+ nBytes++;
+ }
+ }
+ return WordArray.create(words, nBytes);
+ }
+ }());
+
+
+ (function (Math) {
+ // Shortcuts
+ var C = CryptoJS;
+ var C_lib = C.lib;
+ var WordArray = C_lib.WordArray;
+ var Hasher = C_lib.Hasher;
+ var C_algo = C.algo;
+
+ // Constants table
+ var T = [];
+
+ // Compute constants
+ (function () {
+ for (var i = 0; i < 64; i++) {
+ T[i] = (Math.abs(Math.sin(i + 1)) * 0x100000000) | 0;
+ }
+ }());
+
+ /**
+ * MD5 hash algorithm.
+ */
+ var MD5 = C_algo.MD5 = Hasher.extend({
+ _doReset: function () {
+ this._hash = new WordArray.init([
+ 0x67452301, 0xefcdab89,
+ 0x98badcfe, 0x10325476
+ ]);
+ },
+
+ _doProcessBlock: function (M, offset) {
+ // Swap endian
+ for (var i = 0; i < 16; i++) {
+ // Shortcuts
+ var offset_i = offset + i;
+ var M_offset_i = M[offset_i];
+
+ M[offset_i] = (
+ (((M_offset_i << 8) | (M_offset_i >>> 24)) & 0x00ff00ff) |
+ (((M_offset_i << 24) | (M_offset_i >>> 8)) & 0xff00ff00)
+ );
+ }
+
+ // Shortcuts
+ var H = this._hash.words;
+
+ var M_offset_0 = M[offset + 0];
+ var M_offset_1 = M[offset + 1];
+ var M_offset_2 = M[offset + 2];
+ var M_offset_3 = M[offset + 3];
+ var M_offset_4 = M[offset + 4];
+ var M_offset_5 = M[offset + 5];
+ var M_offset_6 = M[offset + 6];
+ var M_offset_7 = M[offset + 7];
+ var M_offset_8 = M[offset + 8];
+ var M_offset_9 = M[offset + 9];
+ var M_offset_10 = M[offset + 10];
+ var M_offset_11 = M[offset + 11];
+ var M_offset_12 = M[offset + 12];
+ var M_offset_13 = M[offset + 13];
+ var M_offset_14 = M[offset + 14];
+ var M_offset_15 = M[offset + 15];
+
+ // Working variables
+ var a = H[0];
+ var b = H[1];
+ var c = H[2];
+ var d = H[3];
+
+ // Computation
+ a = FF(a, b, c, d, M_offset_0, 7, T[0]);
+ d = FF(d, a, b, c, M_offset_1, 12, T[1]);
+ c = FF(c, d, a, b, M_offset_2, 17, T[2]);
+ b = FF(b, c, d, a, M_offset_3, 22, T[3]);
+ a = FF(a, b, c, d, M_offset_4, 7, T[4]);
+ d = FF(d, a, b, c, M_offset_5, 12, T[5]);
+ c = FF(c, d, a, b, M_offset_6, 17, T[6]);
+ b = FF(b, c, d, a, M_offset_7, 22, T[7]);
+ a = FF(a, b, c, d, M_offset_8, 7, T[8]);
+ d = FF(d, a, b, c, M_offset_9, 12, T[9]);
+ c = FF(c, d, a, b, M_offset_10, 17, T[10]);
+ b = FF(b, c, d, a, M_offset_11, 22, T[11]);
+ a = FF(a, b, c, d, M_offset_12, 7, T[12]);
+ d = FF(d, a, b, c, M_offset_13, 12, T[13]);
+ c = FF(c, d, a, b, M_offset_14, 17, T[14]);
+ b = FF(b, c, d, a, M_offset_15, 22, T[15]);
+
+ a = GG(a, b, c, d, M_offset_1, 5, T[16]);
+ d = GG(d, a, b, c, M_offset_6, 9, T[17]);
+ c = GG(c, d, a, b, M_offset_11, 14, T[18]);
+ b = GG(b, c, d, a, M_offset_0, 20, T[19]);
+ a = GG(a, b, c, d, M_offset_5, 5, T[20]);
+ d = GG(d, a, b, c, M_offset_10, 9, T[21]);
+ c = GG(c, d, a, b, M_offset_15, 14, T[22]);
+ b = GG(b, c, d, a, M_offset_4, 20, T[23]);
+ a = GG(a, b, c, d, M_offset_9, 5, T[24]);
+ d = GG(d, a, b, c, M_offset_14, 9, T[25]);
+ c = GG(c, d, a, b, M_offset_3, 14, T[26]);
+ b = GG(b, c, d, a, M_offset_8, 20, T[27]);
+ a = GG(a, b, c, d, M_offset_13, 5, T[28]);
+ d = GG(d, a, b, c, M_offset_2, 9, T[29]);
+ c = GG(c, d, a, b, M_offset_7, 14, T[30]);
+ b = GG(b, c, d, a, M_offset_12, 20, T[31]);
+
+ a = HH(a, b, c, d, M_offset_5, 4, T[32]);
+ d = HH(d, a, b, c, M_offset_8, 11, T[33]);
+ c = HH(c, d, a, b, M_offset_11, 16, T[34]);
+ b = HH(b, c, d, a, M_offset_14, 23, T[35]);
+ a = HH(a, b, c, d, M_offset_1, 4, T[36]);
+ d = HH(d, a, b, c, M_offset_4, 11, T[37]);
+ c = HH(c, d, a, b, M_offset_7, 16, T[38]);
+ b = HH(b, c, d, a, M_offset_10, 23, T[39]);
+ a = HH(a, b, c, d, M_offset_13, 4, T[40]);
+ d = HH(d, a, b, c, M_offset_0, 11, T[41]);
+ c = HH(c, d, a, b, M_offset_3, 16, T[42]);
+ b = HH(b, c, d, a, M_offset_6, 23, T[43]);
+ a = HH(a, b, c, d, M_offset_9, 4, T[44]);
+ d = HH(d, a, b, c, M_offset_12, 11, T[45]);
+ c = HH(c, d, a, b, M_offset_15, 16, T[46]);
+ b = HH(b, c, d, a, M_offset_2, 23, T[47]);
+
+ a = II(a, b, c, d, M_offset_0, 6, T[48]);
+ d = II(d, a, b, c, M_offset_7, 10, T[49]);
+ c = II(c, d, a, b, M_offset_14, 15, T[50]);
+ b = II(b, c, d, a, M_offset_5, 21, T[51]);
+ a = II(a, b, c, d, M_offset_12, 6, T[52]);
+ d = II(d, a, b, c, M_offset_3, 10, T[53]);
+ c = II(c, d, a, b, M_offset_10, 15, T[54]);
+ b = II(b, c, d, a, M_offset_1, 21, T[55]);
+ a = II(a, b, c, d, M_offset_8, 6, T[56]);
+ d = II(d, a, b, c, M_offset_15, 10, T[57]);
+ c = II(c, d, a, b, M_offset_6, 15, T[58]);
+ b = II(b, c, d, a, M_offset_13, 21, T[59]);
+ a = II(a, b, c, d, M_offset_4, 6, T[60]);
+ d = II(d, a, b, c, M_offset_11, 10, T[61]);
+ c = II(c, d, a, b, M_offset_2, 15, T[62]);
+ b = II(b, c, d, a, M_offset_9, 21, T[63]);
+
+ // Intermediate hash value
+ H[0] = (H[0] + a) | 0;
+ H[1] = (H[1] + b) | 0;
+ H[2] = (H[2] + c) | 0;
+ H[3] = (H[3] + d) | 0;
+ },
+
+ _doFinalize: function () {
+ // Shortcuts
+ var data = this._data;
+ var dataWords = data.words;
+
+ var nBitsTotal = this._nDataBytes * 8;
+ var nBitsLeft = data.sigBytes * 8;
+
+ // Add padding
+ dataWords[nBitsLeft >>> 5] |= 0x80 << (24 - nBitsLeft % 32);
+
+ var nBitsTotalH = Math.floor(nBitsTotal / 0x100000000);
+ var nBitsTotalL = nBitsTotal;
+ dataWords[(((nBitsLeft + 64) >>> 9) << 4) + 15] = (
+ (((nBitsTotalH << 8) | (nBitsTotalH >>> 24)) & 0x00ff00ff) |
+ (((nBitsTotalH << 24) | (nBitsTotalH >>> 8)) & 0xff00ff00)
+ );
+ dataWords[(((nBitsLeft + 64) >>> 9) << 4) + 14] = (
+ (((nBitsTotalL << 8) | (nBitsTotalL >>> 24)) & 0x00ff00ff) |
+ (((nBitsTotalL << 24) | (nBitsTotalL >>> 8)) & 0xff00ff00)
+ );
+
+ data.sigBytes = (dataWords.length + 1) * 4;
+
+ // Hash final blocks
+ this._process();
+
+ // Shortcuts
+ var hash = this._hash;
+ var H = hash.words;
+
+ // Swap endian
+ for (var i = 0; i < 4; i++) {
+ // Shortcut
+ var H_i = H[i];
+
+ H[i] = (((H_i << 8) | (H_i >>> 24)) & 0x00ff00ff) |
+ (((H_i << 24) | (H_i >>> 8)) & 0xff00ff00);
+ }
+
+ // Return final computed hash
+ return hash;
+ },
+
+ clone: function () {
+ var clone = Hasher.clone.call(this);
+ clone._hash = this._hash.clone();
+
+ return clone;
+ }
+ });
+
+ function FF(a, b, c, d, x, s, t) {
+ var n = a + ((b & c) | (~b & d)) + x + t;
+ return ((n << s) | (n >>> (32 - s))) + b;
+ }
+
+ function GG(a, b, c, d, x, s, t) {
+ var n = a + ((b & d) | (c & ~d)) + x + t;
+ return ((n << s) | (n >>> (32 - s))) + b;
+ }
+
+ function HH(a, b, c, d, x, s, t) {
+ var n = a + (b ^ c ^ d) + x + t;
+ return ((n << s) | (n >>> (32 - s))) + b;
+ }
+
+ function II(a, b, c, d, x, s, t) {
+ var n = a + (c ^ (b | ~d)) + x + t;
+ return ((n << s) | (n >>> (32 - s))) + b;
+ }
+
+ /**
+ * Shortcut function to the hasher's object interface.
+ *
+ * @param {WordArray|string} message The message to hash.
+ *
+ * @return {WordArray} The hash.
+ *
+ * @static
+ *
+ * @example
+ *
+ * var hash = CryptoJS.MD5('message');
+ * var hash = CryptoJS.MD5(wordArray);
+ */
+ C.MD5 = Hasher._createHelper(MD5);
+
+ /**
+ * Shortcut function to the HMAC's object interface.
+ *
+ * @param {WordArray|string} message The message to hash.
+ * @param {WordArray|string} key The secret key.
+ *
+ * @return {WordArray} The HMAC.
+ *
+ * @static
+ *
+ * @example
+ *
+ * var hmac = CryptoJS.HmacMD5(message, key);
+ */
+ C.HmacMD5 = Hasher._createHmacHelper(MD5);
+ }(Math));
+
+
+ (function () {
+ // Shortcuts
+ var C = CryptoJS;
+ var C_lib = C.lib;
+ var WordArray = C_lib.WordArray;
+ var Hasher = C_lib.Hasher;
+ var C_algo = C.algo;
+
+ // Reusable object
+ var W = [];
+
+ /**
+ * SHA-1 hash algorithm.
+ */
+ var SHA1 = C_algo.SHA1 = Hasher.extend({
+ _doReset: function () {
+ this._hash = new WordArray.init([
+ 0x67452301, 0xefcdab89,
+ 0x98badcfe, 0x10325476,
+ 0xc3d2e1f0
+ ]);
+ },
+
+ _doProcessBlock: function (M, offset) {
+ // Shortcut
+ var H = this._hash.words;
+
+ // Working variables
+ var a = H[0];
+ var b = H[1];
+ var c = H[2];
+ var d = H[3];
+ var e = H[4];
+
+ // Computation
+ for (var i = 0; i < 80; i++) {
+ if (i < 16) {
+ W[i] = M[offset + i] | 0;
+ } else {
+ var n = W[i - 3] ^ W[i - 8] ^ W[i - 14] ^ W[i - 16];
+ W[i] = (n << 1) | (n >>> 31);
+ }
+
+ var t = ((a << 5) | (a >>> 27)) + e + W[i];
+ if (i < 20) {
+ t += ((b & c) | (~b & d)) + 0x5a827999;
+ } else if (i < 40) {
+ t += (b ^ c ^ d) + 0x6ed9eba1;
+ } else if (i < 60) {
+ t += ((b & c) | (b & d) | (c & d)) - 0x70e44324;
+ } else /* if (i < 80) */ {
+ t += (b ^ c ^ d) - 0x359d3e2a;
+ }
+
+ e = d;
+ d = c;
+ c = (b << 30) | (b >>> 2);
+ b = a;
+ a = t;
+ }
+
+ // Intermediate hash value
+ H[0] = (H[0] + a) | 0;
+ H[1] = (H[1] + b) | 0;
+ H[2] = (H[2] + c) | 0;
+ H[3] = (H[3] + d) | 0;
+ H[4] = (H[4] + e) | 0;
+ },
+
+ _doFinalize: function () {
+ // Shortcuts
+ var data = this._data;
+ var dataWords = data.words;
+
+ var nBitsTotal = this._nDataBytes * 8;
+ var nBitsLeft = data.sigBytes * 8;
+
+ // Add padding
+ dataWords[nBitsLeft >>> 5] |= 0x80 << (24 - nBitsLeft % 32);
+ dataWords[(((nBitsLeft + 64) >>> 9) << 4) + 14] = Math.floor(nBitsTotal / 0x100000000);
+ dataWords[(((nBitsLeft + 64) >>> 9) << 4) + 15] = nBitsTotal;
+ data.sigBytes = dataWords.length * 4;
+
+ // Hash final blocks
+ this._process();
+
+ // Return final computed hash
+ return this._hash;
+ },
+
+ clone: function () {
+ var clone = Hasher.clone.call(this);
+ clone._hash = this._hash.clone();
+
+ return clone;
+ }
+ });
+
+ /**
+ * Shortcut function to the hasher's object interface.
+ *
+ * @param {WordArray|string} message The message to hash.
+ *
+ * @return {WordArray} The hash.
+ *
+ * @static
+ *
+ * @example
+ *
+ * var hash = CryptoJS.SHA1('message');
+ * var hash = CryptoJS.SHA1(wordArray);
+ */
+ C.SHA1 = Hasher._createHelper(SHA1);
+
+ /**
+ * Shortcut function to the HMAC's object interface.
+ *
+ * @param {WordArray|string} message The message to hash.
+ * @param {WordArray|string} key The secret key.
+ *
+ * @return {WordArray} The HMAC.
+ *
+ * @static
+ *
+ * @example
+ *
+ * var hmac = CryptoJS.HmacSHA1(message, key);
+ */
+ C.HmacSHA1 = Hasher._createHmacHelper(SHA1);
+ }());
+
+
+ (function (Math) {
+ // Shortcuts
+ var C = CryptoJS;
+ var C_lib = C.lib;
+ var WordArray = C_lib.WordArray;
+ var Hasher = C_lib.Hasher;
+ var C_algo = C.algo;
+
+ // Initialization and round constants tables
+ var H = [];
+ var K = [];
+
+ // Compute constants
+ (function () {
+ function isPrime(n) {
+ var sqrtN = Math.sqrt(n);
+ for (var factor = 2; factor <= sqrtN; factor++) {
+ if (!(n % factor)) {
+ return false;
+ }
+ }
+
+ return true;
+ }
+
+ function getFractionalBits(n) {
+ return ((n - (n | 0)) * 0x100000000) | 0;
+ }
+
+ var n = 2;
+ var nPrime = 0;
+ while (nPrime < 64) {
+ if (isPrime(n)) {
+ if (nPrime < 8) {
+ H[nPrime] = getFractionalBits(Math.pow(n, 1 / 2));
+ }
+ K[nPrime] = getFractionalBits(Math.pow(n, 1 / 3));
+
+ nPrime++;
+ }
+
+ n++;
+ }
+ }());
+
+ // Reusable object
+ var W = [];
+
+ /**
+ * SHA-256 hash algorithm.
+ */
+ var SHA256 = C_algo.SHA256 = Hasher.extend({
+ _doReset: function () {
+ this._hash = new WordArray.init(H.slice(0));
+ },
+
+ _doProcessBlock: function (M, offset) {
+ // Shortcut
+ var H = this._hash.words;
+
+ // Working variables
+ var a = H[0];
+ var b = H[1];
+ var c = H[2];
+ var d = H[3];
+ var e = H[4];
+ var f = H[5];
+ var g = H[6];
+ var h = H[7];
+
+ // Computation
+ for (var i = 0; i < 64; i++) {
+ if (i < 16) {
+ W[i] = M[offset + i] | 0;
+ } else {
+ var gamma0x = W[i - 15];
+ var gamma0 = ((gamma0x << 25) | (gamma0x >>> 7)) ^
+ ((gamma0x << 14) | (gamma0x >>> 18)) ^
+ (gamma0x >>> 3);
+
+ var gamma1x = W[i - 2];
+ var gamma1 = ((gamma1x << 15) | (gamma1x >>> 17)) ^
+ ((gamma1x << 13) | (gamma1x >>> 19)) ^
+ (gamma1x >>> 10);
+
+ W[i] = gamma0 + W[i - 7] + gamma1 + W[i - 16];
+ }
+
+ var ch = (e & f) ^ (~e & g);
+ var maj = (a & b) ^ (a & c) ^ (b & c);
+
+ var sigma0 = ((a << 30) | (a >>> 2)) ^ ((a << 19) | (a >>> 13)) ^ ((a << 10) | (a >>> 22));
+ var sigma1 = ((e << 26) | (e >>> 6)) ^ ((e << 21) | (e >>> 11)) ^ ((e << 7) | (e >>> 25));
+
+ var t1 = h + sigma1 + ch + K[i] + W[i];
+ var t2 = sigma0 + maj;
+
+ h = g;
+ g = f;
+ f = e;
+ e = (d + t1) | 0;
+ d = c;
+ c = b;
+ b = a;
+ a = (t1 + t2) | 0;
+ }
+
+ // Intermediate hash value
+ H[0] = (H[0] + a) | 0;
+ H[1] = (H[1] + b) | 0;
+ H[2] = (H[2] + c) | 0;
+ H[3] = (H[3] + d) | 0;
+ H[4] = (H[4] + e) | 0;
+ H[5] = (H[5] + f) | 0;
+ H[6] = (H[6] + g) | 0;
+ H[7] = (H[7] + h) | 0;
+ },
+
+ _doFinalize: function () {
+ // Shortcuts
+ var data = this._data;
+ var dataWords = data.words;
+
+ var nBitsTotal = this._nDataBytes * 8;
+ var nBitsLeft = data.sigBytes * 8;
+
+ // Add padding
+ dataWords[nBitsLeft >>> 5] |= 0x80 << (24 - nBitsLeft % 32);
+ dataWords[(((nBitsLeft + 64) >>> 9) << 4) + 14] = Math.floor(nBitsTotal / 0x100000000);
+ dataWords[(((nBitsLeft + 64) >>> 9) << 4) + 15] = nBitsTotal;
+ data.sigBytes = dataWords.length * 4;
+
+ // Hash final blocks
+ this._process();
+
+ // Return final computed hash
+ return this._hash;
+ },
+
+ clone: function () {
+ var clone = Hasher.clone.call(this);
+ clone._hash = this._hash.clone();
+
+ return clone;
+ }
+ });
+
+ /**
+ * Shortcut function to the hasher's object interface.
+ *
+ * @param {WordArray|string} message The message to hash.
+ *
+ * @return {WordArray} The hash.
+ *
+ * @static
+ *
+ * @example
+ *
+ * var hash = CryptoJS.SHA256('message');
+ * var hash = CryptoJS.SHA256(wordArray);
+ */
+ C.SHA256 = Hasher._createHelper(SHA256);
+
+ /**
+ * Shortcut function to the HMAC's object interface.
+ *
+ * @param {WordArray|string} message The message to hash.
+ * @param {WordArray|string} key The secret key.
+ *
+ * @return {WordArray} The HMAC.
+ *
+ * @static
+ *
+ * @example
+ *
+ * var hmac = CryptoJS.HmacSHA256(message, key);
+ */
+ C.HmacSHA256 = Hasher._createHmacHelper(SHA256);
+ }(Math));
+
+
+ (function () {
+ // Shortcuts
+ var C = CryptoJS;
+ var C_lib = C.lib;
+ var WordArray = C_lib.WordArray;
+ var C_algo = C.algo;
+ var SHA256 = C_algo.SHA256;
+
+ /**
+ * SHA-224 hash algorithm.
+ */
+ var SHA224 = C_algo.SHA224 = SHA256.extend({
+ _doReset: function () {
+ this._hash = new WordArray.init([
+ 0xc1059ed8, 0x367cd507, 0x3070dd17, 0xf70e5939,
+ 0xffc00b31, 0x68581511, 0x64f98fa7, 0xbefa4fa4
+ ]);
+ },
+
+ _doFinalize: function () {
+ var hash = SHA256._doFinalize.call(this);
+
+ hash.sigBytes -= 4;
+
+ return hash;
+ }
+ });
+
+ /**
+ * Shortcut function to the hasher's object interface.
+ *
+ * @param {WordArray|string} message The message to hash.
+ *
+ * @return {WordArray} The hash.
+ *
+ * @static
+ *
+ * @example
+ *
+ * var hash = CryptoJS.SHA224('message');
+ * var hash = CryptoJS.SHA224(wordArray);
+ */
+ C.SHA224 = SHA256._createHelper(SHA224);
+
+ /**
+ * Shortcut function to the HMAC's object interface.
+ *
+ * @param {WordArray|string} message The message to hash.
+ * @param {WordArray|string} key The secret key.
+ *
+ * @return {WordArray} The HMAC.
+ *
+ * @static
+ *
+ * @example
+ *
+ * var hmac = CryptoJS.HmacSHA224(message, key);
+ */
+ C.HmacSHA224 = SHA256._createHmacHelper(SHA224);
+ }());
+
+
+ (function () {
+ // Shortcuts
+ var C = CryptoJS;
+ var C_lib = C.lib;
+ var Hasher = C_lib.Hasher;
+ var C_x64 = C.x64;
+ var X64Word = C_x64.Word;
+ var X64WordArray = C_x64.WordArray;
+ var C_algo = C.algo;
+
+ function X64Word_create() {
+ return X64Word.create.apply(X64Word, arguments);
+ }
+
+ // Constants
+ var K = [
+ X64Word_create(0x428a2f98, 0xd728ae22), X64Word_create(0x71374491, 0x23ef65cd),
+ X64Word_create(0xb5c0fbcf, 0xec4d3b2f), X64Word_create(0xe9b5dba5, 0x8189dbbc),
+ X64Word_create(0x3956c25b, 0xf348b538), X64Word_create(0x59f111f1, 0xb605d019),
+ X64Word_create(0x923f82a4, 0xaf194f9b), X64Word_create(0xab1c5ed5, 0xda6d8118),
+ X64Word_create(0xd807aa98, 0xa3030242), X64Word_create(0x12835b01, 0x45706fbe),
+ X64Word_create(0x243185be, 0x4ee4b28c), X64Word_create(0x550c7dc3, 0xd5ffb4e2),
+ X64Word_create(0x72be5d74, 0xf27b896f), X64Word_create(0x80deb1fe, 0x3b1696b1),
+ X64Word_create(0x9bdc06a7, 0x25c71235), X64Word_create(0xc19bf174, 0xcf692694),
+ X64Word_create(0xe49b69c1, 0x9ef14ad2), X64Word_create(0xefbe4786, 0x384f25e3),
+ X64Word_create(0x0fc19dc6, 0x8b8cd5b5), X64Word_create(0x240ca1cc, 0x77ac9c65),
+ X64Word_create(0x2de92c6f, 0x592b0275), X64Word_create(0x4a7484aa, 0x6ea6e483),
+ X64Word_create(0x5cb0a9dc, 0xbd41fbd4), X64Word_create(0x76f988da, 0x831153b5),
+ X64Word_create(0x983e5152, 0xee66dfab), X64Word_create(0xa831c66d, 0x2db43210),
+ X64Word_create(0xb00327c8, 0x98fb213f), X64Word_create(0xbf597fc7, 0xbeef0ee4),
+ X64Word_create(0xc6e00bf3, 0x3da88fc2), X64Word_create(0xd5a79147, 0x930aa725),
+ X64Word_create(0x06ca6351, 0xe003826f), X64Word_create(0x14292967, 0x0a0e6e70),
+ X64Word_create(0x27b70a85, 0x46d22ffc), X64Word_create(0x2e1b2138, 0x5c26c926),
+ X64Word_create(0x4d2c6dfc, 0x5ac42aed), X64Word_create(0x53380d13, 0x9d95b3df),
+ X64Word_create(0x650a7354, 0x8baf63de), X64Word_create(0x766a0abb, 0x3c77b2a8),
+ X64Word_create(0x81c2c92e, 0x47edaee6), X64Word_create(0x92722c85, 0x1482353b),
+ X64Word_create(0xa2bfe8a1, 0x4cf10364), X64Word_create(0xa81a664b, 0xbc423001),
+ X64Word_create(0xc24b8b70, 0xd0f89791), X64Word_create(0xc76c51a3, 0x0654be30),
+ X64Word_create(0xd192e819, 0xd6ef5218), X64Word_create(0xd6990624, 0x5565a910),
+ X64Word_create(0xf40e3585, 0x5771202a), X64Word_create(0x106aa070, 0x32bbd1b8),
+ X64Word_create(0x19a4c116, 0xb8d2d0c8), X64Word_create(0x1e376c08, 0x5141ab53),
+ X64Word_create(0x2748774c, 0xdf8eeb99), X64Word_create(0x34b0bcb5, 0xe19b48a8),
+ X64Word_create(0x391c0cb3, 0xc5c95a63), X64Word_create(0x4ed8aa4a, 0xe3418acb),
+ X64Word_create(0x5b9cca4f, 0x7763e373), X64Word_create(0x682e6ff3, 0xd6b2b8a3),
+ X64Word_create(0x748f82ee, 0x5defb2fc), X64Word_create(0x78a5636f, 0x43172f60),
+ X64Word_create(0x84c87814, 0xa1f0ab72), X64Word_create(0x8cc70208, 0x1a6439ec),
+ X64Word_create(0x90befffa, 0x23631e28), X64Word_create(0xa4506ceb, 0xde82bde9),
+ X64Word_create(0xbef9a3f7, 0xb2c67915), X64Word_create(0xc67178f2, 0xe372532b),
+ X64Word_create(0xca273ece, 0xea26619c), X64Word_create(0xd186b8c7, 0x21c0c207),
+ X64Word_create(0xeada7dd6, 0xcde0eb1e), X64Word_create(0xf57d4f7f, 0xee6ed178),
+ X64Word_create(0x06f067aa, 0x72176fba), X64Word_create(0x0a637dc5, 0xa2c898a6),
+ X64Word_create(0x113f9804, 0xbef90dae), X64Word_create(0x1b710b35, 0x131c471b),
+ X64Word_create(0x28db77f5, 0x23047d84), X64Word_create(0x32caab7b, 0x40c72493),
+ X64Word_create(0x3c9ebe0a, 0x15c9bebc), X64Word_create(0x431d67c4, 0x9c100d4c),
+ X64Word_create(0x4cc5d4be, 0xcb3e42b6), X64Word_create(0x597f299c, 0xfc657e2a),
+ X64Word_create(0x5fcb6fab, 0x3ad6faec), X64Word_create(0x6c44198c, 0x4a475817)
+ ];
+
+ // Reusable objects
+ var W = [];
+ (function () {
+ for (var i = 0; i < 80; i++) {
+ W[i] = X64Word_create();
+ }
+ }());
+
+ /**
+ * SHA-512 hash algorithm.
+ */
+ var SHA512 = C_algo.SHA512 = Hasher.extend({
+ _doReset: function () {
+ this._hash = new X64WordArray.init([
+ new X64Word.init(0x6a09e667, 0xf3bcc908), new X64Word.init(0xbb67ae85, 0x84caa73b),
+ new X64Word.init(0x3c6ef372, 0xfe94f82b), new X64Word.init(0xa54ff53a, 0x5f1d36f1),
+ new X64Word.init(0x510e527f, 0xade682d1), new X64Word.init(0x9b05688c, 0x2b3e6c1f),
+ new X64Word.init(0x1f83d9ab, 0xfb41bd6b), new X64Word.init(0x5be0cd19, 0x137e2179)
+ ]);
+ },
+
+ _doProcessBlock: function (M, offset) {
+ // Shortcuts
+ var H = this._hash.words;
+
+ var H0 = H[0];
+ var H1 = H[1];
+ var H2 = H[2];
+ var H3 = H[3];
+ var H4 = H[4];
+ var H5 = H[5];
+ var H6 = H[6];
+ var H7 = H[7];
+
+ var H0h = H0.high;
+ var H0l = H0.low;
+ var H1h = H1.high;
+ var H1l = H1.low;
+ var H2h = H2.high;
+ var H2l = H2.low;
+ var H3h = H3.high;
+ var H3l = H3.low;
+ var H4h = H4.high;
+ var H4l = H4.low;
+ var H5h = H5.high;
+ var H5l = H5.low;
+ var H6h = H6.high;
+ var H6l = H6.low;
+ var H7h = H7.high;
+ var H7l = H7.low;
+
+ // Working variables
+ var ah = H0h;
+ var al = H0l;
+ var bh = H1h;
+ var bl = H1l;
+ var ch = H2h;
+ var cl = H2l;
+ var dh = H3h;
+ var dl = H3l;
+ var eh = H4h;
+ var el = H4l;
+ var fh = H5h;
+ var fl = H5l;
+ var gh = H6h;
+ var gl = H6l;
+ var hh = H7h;
+ var hl = H7l;
+
+ // Rounds
+ for (var i = 0; i < 80; i++) {
+ var Wil;
+ var Wih;
+
+ // Shortcut
+ var Wi = W[i];
+
+ // Extend message
+ if (i < 16) {
+ Wih = Wi.high = M[offset + i * 2] | 0;
+ Wil = Wi.low = M[offset + i * 2 + 1] | 0;
+ } else {
+ // Gamma0
+ var gamma0x = W[i - 15];
+ var gamma0xh = gamma0x.high;
+ var gamma0xl = gamma0x.low;
+ var gamma0h = ((gamma0xh >>> 1) | (gamma0xl << 31)) ^ ((gamma0xh >>> 8) | (gamma0xl << 24)) ^ (gamma0xh >>> 7);
+ var gamma0l = ((gamma0xl >>> 1) | (gamma0xh << 31)) ^ ((gamma0xl >>> 8) | (gamma0xh << 24)) ^ ((gamma0xl >>> 7) | (gamma0xh << 25));
+
+ // Gamma1
+ var gamma1x = W[i - 2];
+ var gamma1xh = gamma1x.high;
+ var gamma1xl = gamma1x.low;
+ var gamma1h = ((gamma1xh >>> 19) | (gamma1xl << 13)) ^ ((gamma1xh << 3) | (gamma1xl >>> 29)) ^ (gamma1xh >>> 6);
+ var gamma1l = ((gamma1xl >>> 19) | (gamma1xh << 13)) ^ ((gamma1xl << 3) | (gamma1xh >>> 29)) ^ ((gamma1xl >>> 6) | (gamma1xh << 26));
+
+ // W[i] = gamma0 + W[i - 7] + gamma1 + W[i - 16]
+ var Wi7 = W[i - 7];
+ var Wi7h = Wi7.high;
+ var Wi7l = Wi7.low;
+
+ var Wi16 = W[i - 16];
+ var Wi16h = Wi16.high;
+ var Wi16l = Wi16.low;
+
+ Wil = gamma0l + Wi7l;
+ Wih = gamma0h + Wi7h + ((Wil >>> 0) < (gamma0l >>> 0) ? 1 : 0);
+ Wil = Wil + gamma1l;
+ Wih = Wih + gamma1h + ((Wil >>> 0) < (gamma1l >>> 0) ? 1 : 0);
+ Wil = Wil + Wi16l;
+ Wih = Wih + Wi16h + ((Wil >>> 0) < (Wi16l >>> 0) ? 1 : 0);
+
+ Wi.high = Wih;
+ Wi.low = Wil;
+ }
+
+ var chh = (eh & fh) ^ (~eh & gh);
+ var chl = (el & fl) ^ (~el & gl);
+ var majh = (ah & bh) ^ (ah & ch) ^ (bh & ch);
+ var majl = (al & bl) ^ (al & cl) ^ (bl & cl);
+
+ var sigma0h = ((ah >>> 28) | (al << 4)) ^ ((ah << 30) | (al >>> 2)) ^ ((ah << 25) | (al >>> 7));
+ var sigma0l = ((al >>> 28) | (ah << 4)) ^ ((al << 30) | (ah >>> 2)) ^ ((al << 25) | (ah >>> 7));
+ var sigma1h = ((eh >>> 14) | (el << 18)) ^ ((eh >>> 18) | (el << 14)) ^ ((eh << 23) | (el >>> 9));
+ var sigma1l = ((el >>> 14) | (eh << 18)) ^ ((el >>> 18) | (eh << 14)) ^ ((el << 23) | (eh >>> 9));
+
+ // t1 = h + sigma1 + ch + K[i] + W[i]
+ var Ki = K[i];
+ var Kih = Ki.high;
+ var Kil = Ki.low;
+
+ var t1l = hl + sigma1l;
+ var t1h = hh + sigma1h + ((t1l >>> 0) < (hl >>> 0) ? 1 : 0);
+ var t1l = t1l + chl;
+ var t1h = t1h + chh + ((t1l >>> 0) < (chl >>> 0) ? 1 : 0);
+ var t1l = t1l + Kil;
+ var t1h = t1h + Kih + ((t1l >>> 0) < (Kil >>> 0) ? 1 : 0);
+ var t1l = t1l + Wil;
+ var t1h = t1h + Wih + ((t1l >>> 0) < (Wil >>> 0) ? 1 : 0);
+
+ // t2 = sigma0 + maj
+ var t2l = sigma0l + majl;
+ var t2h = sigma0h + majh + ((t2l >>> 0) < (sigma0l >>> 0) ? 1 : 0);
+
+ // Update working variables
+ hh = gh;
+ hl = gl;
+ gh = fh;
+ gl = fl;
+ fh = eh;
+ fl = el;
+ el = (dl + t1l) | 0;
+ eh = (dh + t1h + ((el >>> 0) < (dl >>> 0) ? 1 : 0)) | 0;
+ dh = ch;
+ dl = cl;
+ ch = bh;
+ cl = bl;
+ bh = ah;
+ bl = al;
+ al = (t1l + t2l) | 0;
+ ah = (t1h + t2h + ((al >>> 0) < (t1l >>> 0) ? 1 : 0)) | 0;
+ }
+
+ // Intermediate hash value
+ H0l = H0.low = (H0l + al);
+ H0.high = (H0h + ah + ((H0l >>> 0) < (al >>> 0) ? 1 : 0));
+ H1l = H1.low = (H1l + bl);
+ H1.high = (H1h + bh + ((H1l >>> 0) < (bl >>> 0) ? 1 : 0));
+ H2l = H2.low = (H2l + cl);
+ H2.high = (H2h + ch + ((H2l >>> 0) < (cl >>> 0) ? 1 : 0));
+ H3l = H3.low = (H3l + dl);
+ H3.high = (H3h + dh + ((H3l >>> 0) < (dl >>> 0) ? 1 : 0));
+ H4l = H4.low = (H4l + el);
+ H4.high = (H4h + eh + ((H4l >>> 0) < (el >>> 0) ? 1 : 0));
+ H5l = H5.low = (H5l + fl);
+ H5.high = (H5h + fh + ((H5l >>> 0) < (fl >>> 0) ? 1 : 0));
+ H6l = H6.low = (H6l + gl);
+ H6.high = (H6h + gh + ((H6l >>> 0) < (gl >>> 0) ? 1 : 0));
+ H7l = H7.low = (H7l + hl);
+ H7.high = (H7h + hh + ((H7l >>> 0) < (hl >>> 0) ? 1 : 0));
+ },
+
+ _doFinalize: function () {
+ // Shortcuts
+ var data = this._data;
+ var dataWords = data.words;
+
+ var nBitsTotal = this._nDataBytes * 8;
+ var nBitsLeft = data.sigBytes * 8;
+
+ // Add padding
+ dataWords[nBitsLeft >>> 5] |= 0x80 << (24 - nBitsLeft % 32);
+ dataWords[(((nBitsLeft + 128) >>> 10) << 5) + 30] = Math.floor(nBitsTotal / 0x100000000);
+ dataWords[(((nBitsLeft + 128) >>> 10) << 5) + 31] = nBitsTotal;
+ data.sigBytes = dataWords.length * 4;
+
+ // Hash final blocks
+ this._process();
+
+ // Convert hash to 32-bit word array before returning
+ var hash = this._hash.toX32();
+
+ // Return final computed hash
+ return hash;
+ },
+
+ clone: function () {
+ var clone = Hasher.clone.call(this);
+ clone._hash = this._hash.clone();
+
+ return clone;
+ },
+
+ blockSize: 1024/32
+ });
+
+ /**
+ * Shortcut function to the hasher's object interface.
+ *
+ * @param {WordArray|string} message The message to hash.
+ *
+ * @return {WordArray} The hash.
+ *
+ * @static
+ *
+ * @example
+ *
+ * var hash = CryptoJS.SHA512('message');
+ * var hash = CryptoJS.SHA512(wordArray);
+ */
+ C.SHA512 = Hasher._createHelper(SHA512);
+
+ /**
+ * Shortcut function to the HMAC's object interface.
+ *
+ * @param {WordArray|string} message The message to hash.
+ * @param {WordArray|string} key The secret key.
+ *
+ * @return {WordArray} The HMAC.
+ *
+ * @static
+ *
+ * @example
+ *
+ * var hmac = CryptoJS.HmacSHA512(message, key);
+ */
+ C.HmacSHA512 = Hasher._createHmacHelper(SHA512);
+ }());
+
+
+ (function () {
+ // Shortcuts
+ var C = CryptoJS;
+ var C_x64 = C.x64;
+ var X64Word = C_x64.Word;
+ var X64WordArray = C_x64.WordArray;
+ var C_algo = C.algo;
+ var SHA512 = C_algo.SHA512;
+
+ /**
+ * SHA-384 hash algorithm.
+ */
+ var SHA384 = C_algo.SHA384 = SHA512.extend({
+ _doReset: function () {
+ this._hash = new X64WordArray.init([
+ new X64Word.init(0xcbbb9d5d, 0xc1059ed8), new X64Word.init(0x629a292a, 0x367cd507),
+ new X64Word.init(0x9159015a, 0x3070dd17), new X64Word.init(0x152fecd8, 0xf70e5939),
+ new X64Word.init(0x67332667, 0xffc00b31), new X64Word.init(0x8eb44a87, 0x68581511),
+ new X64Word.init(0xdb0c2e0d, 0x64f98fa7), new X64Word.init(0x47b5481d, 0xbefa4fa4)
+ ]);
+ },
+
+ _doFinalize: function () {
+ var hash = SHA512._doFinalize.call(this);
+
+ hash.sigBytes -= 16;
+
+ return hash;
+ }
+ });
+
+ /**
+ * Shortcut function to the hasher's object interface.
+ *
+ * @param {WordArray|string} message The message to hash.
+ *
+ * @return {WordArray} The hash.
+ *
+ * @static
+ *
+ * @example
+ *
+ * var hash = CryptoJS.SHA384('message');
+ * var hash = CryptoJS.SHA384(wordArray);
+ */
+ C.SHA384 = SHA512._createHelper(SHA384);
+
+ /**
+ * Shortcut function to the HMAC's object interface.
+ *
+ * @param {WordArray|string} message The message to hash.
+ * @param {WordArray|string} key The secret key.
+ *
+ * @return {WordArray} The HMAC.
+ *
+ * @static
+ *
+ * @example
+ *
+ * var hmac = CryptoJS.HmacSHA384(message, key);
+ */
+ C.HmacSHA384 = SHA512._createHmacHelper(SHA384);
+ }());
+
+
+ (function (Math) {
+ // Shortcuts
+ var C = CryptoJS;
+ var C_lib = C.lib;
+ var WordArray = C_lib.WordArray;
+ var Hasher = C_lib.Hasher;
+ var C_x64 = C.x64;
+ var X64Word = C_x64.Word;
+ var C_algo = C.algo;
+
+ // Constants tables
+ var RHO_OFFSETS = [];
+ var PI_INDEXES = [];
+ var ROUND_CONSTANTS = [];
+
+ // Compute Constants
+ (function () {
+ // Compute rho offset constants
+ var x = 1, y = 0;
+ for (var t = 0; t < 24; t++) {
+ RHO_OFFSETS[x + 5 * y] = ((t + 1) * (t + 2) / 2) % 64;
+
+ var newX = y % 5;
+ var newY = (2 * x + 3 * y) % 5;
+ x = newX;
+ y = newY;
+ }
+
+ // Compute pi index constants
+ for (var x = 0; x < 5; x++) {
+ for (var y = 0; y < 5; y++) {
+ PI_INDEXES[x + 5 * y] = y + ((2 * x + 3 * y) % 5) * 5;
+ }
+ }
+
+ // Compute round constants
+ var LFSR = 0x01;
+ for (var i = 0; i < 24; i++) {
+ var roundConstantMsw = 0;
+ var roundConstantLsw = 0;
+
+ for (var j = 0; j < 7; j++) {
+ if (LFSR & 0x01) {
+ var bitPosition = (1 << j) - 1;
+ if (bitPosition < 32) {
+ roundConstantLsw ^= 1 << bitPosition;
+ } else /* if (bitPosition >= 32) */ {
+ roundConstantMsw ^= 1 << (bitPosition - 32);
+ }
+ }
+
+ // Compute next LFSR
+ if (LFSR & 0x80) {
+ // Primitive polynomial over GF(2): x^8 + x^6 + x^5 + x^4 + 1
+ LFSR = (LFSR << 1) ^ 0x71;
+ } else {
+ LFSR <<= 1;
+ }
+ }
+
+ ROUND_CONSTANTS[i] = X64Word.create(roundConstantMsw, roundConstantLsw);
+ }
+ }());
+
+ // Reusable objects for temporary values
+ var T = [];
+ (function () {
+ for (var i = 0; i < 25; i++) {
+ T[i] = X64Word.create();
+ }
+ }());
+
+ /**
+ * SHA-3 hash algorithm.
+ */
+ var SHA3 = C_algo.SHA3 = Hasher.extend({
+ /**
+ * Configuration options.
+ *
+ * @property {number} outputLength
+ * The desired number of bits in the output hash.
+ * Only values permitted are: 224, 256, 384, 512.
+ * Default: 512
+ */
+ cfg: Hasher.cfg.extend({
+ outputLength: 512
+ }),
+
+ _doReset: function () {
+ var state = this._state = []
+ for (var i = 0; i < 25; i++) {
+ state[i] = new X64Word.init();
+ }
+
+ this.blockSize = (1600 - 2 * this.cfg.outputLength) / 32;
+ },
+
+ _doProcessBlock: function (M, offset) {
+ // Shortcuts
+ var state = this._state;
+ var nBlockSizeLanes = this.blockSize / 2;
+
+ // Absorb
+ for (var i = 0; i < nBlockSizeLanes; i++) {
+ // Shortcuts
+ var M2i = M[offset + 2 * i];
+ var M2i1 = M[offset + 2 * i + 1];
+
+ // Swap endian
+ M2i = (
+ (((M2i << 8) | (M2i >>> 24)) & 0x00ff00ff) |
+ (((M2i << 24) | (M2i >>> 8)) & 0xff00ff00)
+ );
+ M2i1 = (
+ (((M2i1 << 8) | (M2i1 >>> 24)) & 0x00ff00ff) |
+ (((M2i1 << 24) | (M2i1 >>> 8)) & 0xff00ff00)
+ );
+
+ // Absorb message into state
+ var lane = state[i];
+ lane.high ^= M2i1;
+ lane.low ^= M2i;
+ }
+
+ // Rounds
+ for (var round = 0; round < 24; round++) {
+ // Theta
+ for (var x = 0; x < 5; x++) {
+ // Mix column lanes
+ var tMsw = 0, tLsw = 0;
+ for (var y = 0; y < 5; y++) {
+ var lane = state[x + 5 * y];
+ tMsw ^= lane.high;
+ tLsw ^= lane.low;
+ }
+
+ // Temporary values
+ var Tx = T[x];
+ Tx.high = tMsw;
+ Tx.low = tLsw;
+ }
+ for (var x = 0; x < 5; x++) {
+ // Shortcuts
+ var Tx4 = T[(x + 4) % 5];
+ var Tx1 = T[(x + 1) % 5];
+ var Tx1Msw = Tx1.high;
+ var Tx1Lsw = Tx1.low;
+
+ // Mix surrounding columns
+ var tMsw = Tx4.high ^ ((Tx1Msw << 1) | (Tx1Lsw >>> 31));
+ var tLsw = Tx4.low ^ ((Tx1Lsw << 1) | (Tx1Msw >>> 31));
+ for (var y = 0; y < 5; y++) {
+ var lane = state[x + 5 * y];
+ lane.high ^= tMsw;
+ lane.low ^= tLsw;
+ }
+ }
+
+ // Rho Pi
+ for (var laneIndex = 1; laneIndex < 25; laneIndex++) {
+ var tMsw;
+ var tLsw;
+
+ // Shortcuts
+ var lane = state[laneIndex];
+ var laneMsw = lane.high;
+ var laneLsw = lane.low;
+ var rhoOffset = RHO_OFFSETS[laneIndex];
+
+ // Rotate lanes
+ if (rhoOffset < 32) {
+ tMsw = (laneMsw << rhoOffset) | (laneLsw >>> (32 - rhoOffset));
+ tLsw = (laneLsw << rhoOffset) | (laneMsw >>> (32 - rhoOffset));
+ } else /* if (rhoOffset >= 32) */ {
+ tMsw = (laneLsw << (rhoOffset - 32)) | (laneMsw >>> (64 - rhoOffset));
+ tLsw = (laneMsw << (rhoOffset - 32)) | (laneLsw >>> (64 - rhoOffset));
+ }
+
+ // Transpose lanes
+ var TPiLane = T[PI_INDEXES[laneIndex]];
+ TPiLane.high = tMsw;
+ TPiLane.low = tLsw;
+ }
+
+ // Rho pi at x = y = 0
+ var T0 = T[0];
+ var state0 = state[0];
+ T0.high = state0.high;
+ T0.low = state0.low;
+
+ // Chi
+ for (var x = 0; x < 5; x++) {
+ for (var y = 0; y < 5; y++) {
+ // Shortcuts
+ var laneIndex = x + 5 * y;
+ var lane = state[laneIndex];
+ var TLane = T[laneIndex];
+ var Tx1Lane = T[((x + 1) % 5) + 5 * y];
+ var Tx2Lane = T[((x + 2) % 5) + 5 * y];
+
+ // Mix rows
+ lane.high = TLane.high ^ (~Tx1Lane.high & Tx2Lane.high);
+ lane.low = TLane.low ^ (~Tx1Lane.low & Tx2Lane.low);
+ }
+ }
+
+ // Iota
+ var lane = state[0];
+ var roundConstant = ROUND_CONSTANTS[round];
+ lane.high ^= roundConstant.high;
+ lane.low ^= roundConstant.low;
+ }
+ },
+
+ _doFinalize: function () {
+ // Shortcuts
+ var data = this._data;
+ var dataWords = data.words;
+ var nBitsTotal = this._nDataBytes * 8;
+ var nBitsLeft = data.sigBytes * 8;
+ var blockSizeBits = this.blockSize * 32;
+
+ // Add padding
+ dataWords[nBitsLeft >>> 5] |= 0x1 << (24 - nBitsLeft % 32);
+ dataWords[((Math.ceil((nBitsLeft + 1) / blockSizeBits) * blockSizeBits) >>> 5) - 1] |= 0x80;
+ data.sigBytes = dataWords.length * 4;
+
+ // Hash final blocks
+ this._process();
+
+ // Shortcuts
+ var state = this._state;
+ var outputLengthBytes = this.cfg.outputLength / 8;
+ var outputLengthLanes = outputLengthBytes / 8;
+
+ // Squeeze
+ var hashWords = [];
+ for (var i = 0; i < outputLengthLanes; i++) {
+ // Shortcuts
+ var lane = state[i];
+ var laneMsw = lane.high;
+ var laneLsw = lane.low;
+
+ // Swap endian
+ laneMsw = (
+ (((laneMsw << 8) | (laneMsw >>> 24)) & 0x00ff00ff) |
+ (((laneMsw << 24) | (laneMsw >>> 8)) & 0xff00ff00)
+ );
+ laneLsw = (
+ (((laneLsw << 8) | (laneLsw >>> 24)) & 0x00ff00ff) |
+ (((laneLsw << 24) | (laneLsw >>> 8)) & 0xff00ff00)
+ );
+
+ // Squeeze state to retrieve hash
+ hashWords.push(laneLsw);
+ hashWords.push(laneMsw);
+ }
+
+ // Return final computed hash
+ return new WordArray.init(hashWords, outputLengthBytes);
+ },
+
+ clone: function () {
+ var clone = Hasher.clone.call(this);
+
+ var state = clone._state = this._state.slice(0);
+ for (var i = 0; i < 25; i++) {
+ state[i] = state[i].clone();
+ }
+
+ return clone;
+ }
+ });
+
+ /**
+ * Shortcut function to the hasher's object interface.
+ *
+ * @param {WordArray|string} message The message to hash.
+ *
+ * @return {WordArray} The hash.
+ *
+ * @static
+ *
+ * @example
+ *
+ * var hash = CryptoJS.SHA3('message');
+ * var hash = CryptoJS.SHA3(wordArray);
+ */
+ C.SHA3 = Hasher._createHelper(SHA3);
+
+ /**
+ * Shortcut function to the HMAC's object interface.
+ *
+ * @param {WordArray|string} message The message to hash.
+ * @param {WordArray|string} key The secret key.
+ *
+ * @return {WordArray} The HMAC.
+ *
+ * @static
+ *
+ * @example
+ *
+ * var hmac = CryptoJS.HmacSHA3(message, key);
+ */
+ C.HmacSHA3 = Hasher._createHmacHelper(SHA3);
+ }(Math));
+
+
+ /** @preserve
+ (c) 2012 by Cédric Mesnil. All rights reserved.
+
+ Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:
+
+ - Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
+ - Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.
+
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+ (function (Math) {
+ // Shortcuts
+ var C = CryptoJS;
+ var C_lib = C.lib;
+ var WordArray = C_lib.WordArray;
+ var Hasher = C_lib.Hasher;
+ var C_algo = C.algo;
+
+ // Constants table
+ var _zl = WordArray.create([
+ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15,
+ 7, 4, 13, 1, 10, 6, 15, 3, 12, 0, 9, 5, 2, 14, 11, 8,
+ 3, 10, 14, 4, 9, 15, 8, 1, 2, 7, 0, 6, 13, 11, 5, 12,
+ 1, 9, 11, 10, 0, 8, 12, 4, 13, 3, 7, 15, 14, 5, 6, 2,
+ 4, 0, 5, 9, 7, 12, 2, 10, 14, 1, 3, 8, 11, 6, 15, 13]);
+ var _zr = WordArray.create([
+ 5, 14, 7, 0, 9, 2, 11, 4, 13, 6, 15, 8, 1, 10, 3, 12,
+ 6, 11, 3, 7, 0, 13, 5, 10, 14, 15, 8, 12, 4, 9, 1, 2,
+ 15, 5, 1, 3, 7, 14, 6, 9, 11, 8, 12, 2, 10, 0, 4, 13,
+ 8, 6, 4, 1, 3, 11, 15, 0, 5, 12, 2, 13, 9, 7, 10, 14,
+ 12, 15, 10, 4, 1, 5, 8, 7, 6, 2, 13, 14, 0, 3, 9, 11]);
+ var _sl = WordArray.create([
+ 11, 14, 15, 12, 5, 8, 7, 9, 11, 13, 14, 15, 6, 7, 9, 8,
+ 7, 6, 8, 13, 11, 9, 7, 15, 7, 12, 15, 9, 11, 7, 13, 12,
+ 11, 13, 6, 7, 14, 9, 13, 15, 14, 8, 13, 6, 5, 12, 7, 5,
+ 11, 12, 14, 15, 14, 15, 9, 8, 9, 14, 5, 6, 8, 6, 5, 12,
+ 9, 15, 5, 11, 6, 8, 13, 12, 5, 12, 13, 14, 11, 8, 5, 6 ]);
+ var _sr = WordArray.create([
+ 8, 9, 9, 11, 13, 15, 15, 5, 7, 7, 8, 11, 14, 14, 12, 6,
+ 9, 13, 15, 7, 12, 8, 9, 11, 7, 7, 12, 7, 6, 15, 13, 11,
+ 9, 7, 15, 11, 8, 6, 6, 14, 12, 13, 5, 14, 13, 13, 7, 5,
+ 15, 5, 8, 11, 14, 14, 6, 14, 6, 9, 12, 9, 12, 5, 15, 8,
+ 8, 5, 12, 9, 12, 5, 14, 6, 8, 13, 6, 5, 15, 13, 11, 11 ]);
+
+ var _hl = WordArray.create([ 0x00000000, 0x5A827999, 0x6ED9EBA1, 0x8F1BBCDC, 0xA953FD4E]);
+ var _hr = WordArray.create([ 0x50A28BE6, 0x5C4DD124, 0x6D703EF3, 0x7A6D76E9, 0x00000000]);
+
+ /**
+ * RIPEMD160 hash algorithm.
+ */
+ var RIPEMD160 = C_algo.RIPEMD160 = Hasher.extend({
+ _doReset: function () {
+ this._hash = WordArray.create([0x67452301, 0xEFCDAB89, 0x98BADCFE, 0x10325476, 0xC3D2E1F0]);
+ },
+
+ _doProcessBlock: function (M, offset) {
+
+ // Swap endian
+ for (var i = 0; i < 16; i++) {
+ // Shortcuts
+ var offset_i = offset + i;
+ var M_offset_i = M[offset_i];
+
+ // Swap
+ M[offset_i] = (
+ (((M_offset_i << 8) | (M_offset_i >>> 24)) & 0x00ff00ff) |
+ (((M_offset_i << 24) | (M_offset_i >>> 8)) & 0xff00ff00)
+ );
+ }
+ // Shortcut
+ var H = this._hash.words;
+ var hl = _hl.words;
+ var hr = _hr.words;
+ var zl = _zl.words;
+ var zr = _zr.words;
+ var sl = _sl.words;
+ var sr = _sr.words;
+
+ // Working variables
+ var al, bl, cl, dl, el;
+ var ar, br, cr, dr, er;
+
+ ar = al = H[0];
+ br = bl = H[1];
+ cr = cl = H[2];
+ dr = dl = H[3];
+ er = el = H[4];
+ // Computation
+ var t;
+ for (var i = 0; i < 80; i += 1) {
+ t = (al + M[offset+zl[i]])|0;
+ if (i<16){
+ t += f1(bl,cl,dl) + hl[0];
+ } else if (i<32) {
+ t += f2(bl,cl,dl) + hl[1];
+ } else if (i<48) {
+ t += f3(bl,cl,dl) + hl[2];
+ } else if (i<64) {
+ t += f4(bl,cl,dl) + hl[3];
+ } else {// if (i<80) {
+ t += f5(bl,cl,dl) + hl[4];
+ }
+ t = t|0;
+ t = rotl(t,sl[i]);
+ t = (t+el)|0;
+ al = el;
+ el = dl;
+ dl = rotl(cl, 10);
+ cl = bl;
+ bl = t;
+
+ t = (ar + M[offset+zr[i]])|0;
+ if (i<16){
+ t += f5(br,cr,dr) + hr[0];
+ } else if (i<32) {
+ t += f4(br,cr,dr) + hr[1];
+ } else if (i<48) {
+ t += f3(br,cr,dr) + hr[2];
+ } else if (i<64) {
+ t += f2(br,cr,dr) + hr[3];
+ } else {// if (i<80) {
+ t += f1(br,cr,dr) + hr[4];
+ }
+ t = t|0;
+ t = rotl(t,sr[i]) ;
+ t = (t+er)|0;
+ ar = er;
+ er = dr;
+ dr = rotl(cr, 10);
+ cr = br;
+ br = t;
+ }
+ // Intermediate hash value
+ t = (H[1] + cl + dr)|0;
+ H[1] = (H[2] + dl + er)|0;
+ H[2] = (H[3] + el + ar)|0;
+ H[3] = (H[4] + al + br)|0;
+ H[4] = (H[0] + bl + cr)|0;
+ H[0] = t;
+ },
+
+ _doFinalize: function () {
+ // Shortcuts
+ var data = this._data;
+ var dataWords = data.words;
+
+ var nBitsTotal = this._nDataBytes * 8;
+ var nBitsLeft = data.sigBytes * 8;
+
+ // Add padding
+ dataWords[nBitsLeft >>> 5] |= 0x80 << (24 - nBitsLeft % 32);
+ dataWords[(((nBitsLeft + 64) >>> 9) << 4) + 14] = (
+ (((nBitsTotal << 8) | (nBitsTotal >>> 24)) & 0x00ff00ff) |
+ (((nBitsTotal << 24) | (nBitsTotal >>> 8)) & 0xff00ff00)
+ );
+ data.sigBytes = (dataWords.length + 1) * 4;
+
+ // Hash final blocks
+ this._process();
+
+ // Shortcuts
+ var hash = this._hash;
+ var H = hash.words;
+
+ // Swap endian
+ for (var i = 0; i < 5; i++) {
+ // Shortcut
+ var H_i = H[i];
+
+ // Swap
+ H[i] = (((H_i << 8) | (H_i >>> 24)) & 0x00ff00ff) |
+ (((H_i << 24) | (H_i >>> 8)) & 0xff00ff00);
+ }
+
+ // Return final computed hash
+ return hash;
+ },
+
+ clone: function () {
+ var clone = Hasher.clone.call(this);
+ clone._hash = this._hash.clone();
+
+ return clone;
+ }
+ });
+
+
+ function f1(x, y, z) {
+ return ((x) ^ (y) ^ (z));
+
+ }
+
+ function f2(x, y, z) {
+ return (((x)&(y)) | ((~x)&(z)));
+ }
+
+ function f3(x, y, z) {
+ return (((x) | (~(y))) ^ (z));
+ }
+
+ function f4(x, y, z) {
+ return (((x) & (z)) | ((y)&(~(z))));
+ }
+
+ function f5(x, y, z) {
+ return ((x) ^ ((y) |(~(z))));
+
+ }
+
+ function rotl(x,n) {
+ return (x<<n) | (x>>>(32-n));
+ }
+
+
+ /**
+ * Shortcut function to the hasher's object interface.
+ *
+ * @param {WordArray|string} message The message to hash.
+ *
+ * @return {WordArray} The hash.
+ *
+ * @static
+ *
+ * @example
+ *
+ * var hash = CryptoJS.RIPEMD160('message');
+ * var hash = CryptoJS.RIPEMD160(wordArray);
+ */
+ C.RIPEMD160 = Hasher._createHelper(RIPEMD160);
+
+ /**
+ * Shortcut function to the HMAC's object interface.
+ *
+ * @param {WordArray|string} message The message to hash.
+ * @param {WordArray|string} key The secret key.
+ *
+ * @return {WordArray} The HMAC.
+ *
+ * @static
+ *
+ * @example
+ *
+ * var hmac = CryptoJS.HmacRIPEMD160(message, key);
+ */
+ C.HmacRIPEMD160 = Hasher._createHmacHelper(RIPEMD160);
+ }(Math));
+
+
+ (function () {
+ // Shortcuts
+ var C = CryptoJS;
+ var C_lib = C.lib;
+ var Base = C_lib.Base;
+ var C_enc = C.enc;
+ var Utf8 = C_enc.Utf8;
+ var C_algo = C.algo;
+
+ /**
+ * HMAC algorithm.
+ */
+ var HMAC = C_algo.HMAC = Base.extend({
+ /**
+ * Initializes a newly created HMAC.
+ *
+ * @param {Hasher} hasher The hash algorithm to use.
+ * @param {WordArray|string} key The secret key.
+ *
+ * @example
+ *
+ * var hmacHasher = CryptoJS.algo.HMAC.create(CryptoJS.algo.SHA256, key);
+ */
+ init: function (hasher, key) {
+ // Init hasher
+ hasher = this._hasher = new hasher.init();
+
+ // Convert string to WordArray, else assume WordArray already
+ if (typeof key == 'string') {
+ key = Utf8.parse(key);
+ }
+
+ // Shortcuts
+ var hasherBlockSize = hasher.blockSize;
+ var hasherBlockSizeBytes = hasherBlockSize * 4;
+
+ // Allow arbitrary length keys
+ if (key.sigBytes > hasherBlockSizeBytes) {
+ key = hasher.finalize(key);
+ }
+
+ // Clamp excess bits
+ key.clamp();
+
+ // Clone key for inner and outer pads
+ var oKey = this._oKey = key.clone();
+ var iKey = this._iKey = key.clone();
+
+ // Shortcuts
+ var oKeyWords = oKey.words;
+ var iKeyWords = iKey.words;
+
+ // XOR keys with pad constants
+ for (var i = 0; i < hasherBlockSize; i++) {
+ oKeyWords[i] ^= 0x5c5c5c5c;
+ iKeyWords[i] ^= 0x36363636;
+ }
+ oKey.sigBytes = iKey.sigBytes = hasherBlockSizeBytes;
+
+ // Set initial values
+ this.reset();
+ },
+
+ /**
+ * Resets this HMAC to its initial state.
+ *
+ * @example
+ *
+ * hmacHasher.reset();
+ */
+ reset: function () {
+ // Shortcut
+ var hasher = this._hasher;
+
+ // Reset
+ hasher.reset();
+ hasher.update(this._iKey);
+ },
+
+ /**
+ * Updates this HMAC with a message.
+ *
+ * @param {WordArray|string} messageUpdate The message to append.
+ *
+ * @return {HMAC} This HMAC instance.
+ *
+ * @example
+ *
+ * hmacHasher.update('message');
+ * hmacHasher.update(wordArray);
+ */
+ update: function (messageUpdate) {
+ this._hasher.update(messageUpdate);
+
+ // Chainable
+ return this;
+ },
+
+ /**
+ * Finalizes the HMAC computation.
+ * Note that the finalize operation is effectively a destructive, read-once operation.
+ *
+ * @param {WordArray|string} messageUpdate (Optional) A final message update.
+ *
+ * @return {WordArray} The HMAC.
+ *
+ * @example
+ *
+ * var hmac = hmacHasher.finalize();
+ * var hmac = hmacHasher.finalize('message');
+ * var hmac = hmacHasher.finalize(wordArray);
+ */
+ finalize: function (messageUpdate) {
+ // Shortcut
+ var hasher = this._hasher;
+
+ // Compute HMAC
+ var innerHash = hasher.finalize(messageUpdate);
+ hasher.reset();
+ var hmac = hasher.finalize(this._oKey.clone().concat(innerHash));
+
+ return hmac;
+ }
+ });
+ }());
+
+
+ (function () {
+ // Shortcuts
+ var C = CryptoJS;
+ var C_lib = C.lib;
+ var Base = C_lib.Base;
+ var WordArray = C_lib.WordArray;
+ var C_algo = C.algo;
+ var SHA256 = C_algo.SHA256;
+ var HMAC = C_algo.HMAC;
+
+ /**
+ * Password-Based Key Derivation Function 2 algorithm.
+ */
+ var PBKDF2 = C_algo.PBKDF2 = Base.extend({
+ /**
+ * Configuration options.
+ *
+ * @property {number} keySize The key size in words to generate. Default: 4 (128 bits)
+ * @property {Hasher} hasher The hasher to use. Default: SHA256
+ * @property {number} iterations The number of iterations to perform. Default: 250000
+ */
+ cfg: Base.extend({
+ keySize: 128/32,
+ hasher: SHA256,
+ iterations: 250000
+ }),
+
+ /**
+ * Initializes a newly created key derivation function.
+ *
+ * @param {Object} cfg (Optional) The configuration options to use for the derivation.
+ *
+ * @example
+ *
+ * var kdf = CryptoJS.algo.PBKDF2.create();
+ * var kdf = CryptoJS.algo.PBKDF2.create({ keySize: 8 });
+ * var kdf = CryptoJS.algo.PBKDF2.create({ keySize: 8, iterations: 1000 });
+ */
+ init: function (cfg) {
+ this.cfg = this.cfg.extend(cfg);
+ },
+
+ /**
+ * Computes the Password-Based Key Derivation Function 2.
+ *
+ * @param {WordArray|string} password The password.
+ * @param {WordArray|string} salt A salt.
+ *
+ * @return {WordArray} The derived key.
+ *
+ * @example
+ *
+ * var key = kdf.compute(password, salt);
+ */
+ compute: function (password, salt) {
+ // Shortcut
+ var cfg = this.cfg;
+
+ // Init HMAC
+ var hmac = HMAC.create(cfg.hasher, password);
+
+ // Initial values
+ var derivedKey = WordArray.create();
+ var blockIndex = WordArray.create([0x00000001]);
+
+ // Shortcuts
+ var derivedKeyWords = derivedKey.words;
+ var blockIndexWords = blockIndex.words;
+ var keySize = cfg.keySize;
+ var iterations = cfg.iterations;
+
+ // Generate key
+ while (derivedKeyWords.length < keySize) {
+ var block = hmac.update(salt).finalize(blockIndex);
+ hmac.reset();
+
+ // Shortcuts
+ var blockWords = block.words;
+ var blockWordsLength = blockWords.length;
+
+ // Iterations
+ var intermediate = block;
+ for (var i = 1; i < iterations; i++) {
+ intermediate = hmac.finalize(intermediate);
+ hmac.reset();
+
+ // Shortcut
+ var intermediateWords = intermediate.words;
+
+ // XOR intermediate with block
+ for (var j = 0; j < blockWordsLength; j++) {
+ blockWords[j] ^= intermediateWords[j];
+ }
+ }
+
+ derivedKey.concat(block);
+ blockIndexWords[0]++;
+ }
+ derivedKey.sigBytes = keySize * 4;
+
+ return derivedKey;
+ }
+ });
+
+ /**
+ * Computes the Password-Based Key Derivation Function 2.
+ *
+ * @param {WordArray|string} password The password.
+ * @param {WordArray|string} salt A salt.
+ * @param {Object} cfg (Optional) The configuration options to use for this computation.
+ *
+ * @return {WordArray} The derived key.
+ *
+ * @static
+ *
+ * @example
+ *
+ * var key = CryptoJS.PBKDF2(password, salt);
+ * var key = CryptoJS.PBKDF2(password, salt, { keySize: 8 });
+ * var key = CryptoJS.PBKDF2(password, salt, { keySize: 8, iterations: 1000 });
+ */
+ C.PBKDF2 = function (password, salt, cfg) {
+ return PBKDF2.create(cfg).compute(password, salt);
+ };
+ }());
+
+
+ (function () {
+ // Shortcuts
+ var C = CryptoJS;
+ var C_lib = C.lib;
+ var Base = C_lib.Base;
+ var WordArray = C_lib.WordArray;
+ var C_algo = C.algo;
+ var MD5 = C_algo.MD5;
+
+ /**
+ * This key derivation function is meant to conform with EVP_BytesToKey.
+ * www.openssl.org/docs/crypto/EVP_BytesToKey.html
+ */
+ var EvpKDF = C_algo.EvpKDF = Base.extend({
+ /**
+ * Configuration options.
+ *
+ * @property {number} keySize The key size in words to generate. Default: 4 (128 bits)
+ * @property {Hasher} hasher The hash algorithm to use. Default: MD5
+ * @property {number} iterations The number of iterations to perform. Default: 1
+ */
+ cfg: Base.extend({
+ keySize: 128/32,
+ hasher: MD5,
+ iterations: 1
+ }),
+
+ /**
+ * Initializes a newly created key derivation function.
+ *
+ * @param {Object} cfg (Optional) The configuration options to use for the derivation.
+ *
+ * @example
+ *
+ * var kdf = CryptoJS.algo.EvpKDF.create();
+ * var kdf = CryptoJS.algo.EvpKDF.create({ keySize: 8 });
+ * var kdf = CryptoJS.algo.EvpKDF.create({ keySize: 8, iterations: 1000 });
+ */
+ init: function (cfg) {
+ this.cfg = this.cfg.extend(cfg);
+ },
+
+ /**
+ * Derives a key from a password.
+ *
+ * @param {WordArray|string} password The password.
+ * @param {WordArray|string} salt A salt.
+ *
+ * @return {WordArray} The derived key.
+ *
+ * @example
+ *
+ * var key = kdf.compute(password, salt);
+ */
+ compute: function (password, salt) {
+ var block;
+
+ // Shortcut
+ var cfg = this.cfg;
+
+ // Init hasher
+ var hasher = cfg.hasher.create();
+
+ // Initial values
+ var derivedKey = WordArray.create();
+
+ // Shortcuts
+ var derivedKeyWords = derivedKey.words;
+ var keySize = cfg.keySize;
+ var iterations = cfg.iterations;
+
+ // Generate key
+ while (derivedKeyWords.length < keySize) {
+ if (block) {
+ hasher.update(block);
+ }
+ block = hasher.update(password).finalize(salt);
+ hasher.reset();
+
+ // Iterations
+ for (var i = 1; i < iterations; i++) {
+ block = hasher.finalize(block);
+ hasher.reset();
+ }
+
+ derivedKey.concat(block);
+ }
+ derivedKey.sigBytes = keySize * 4;
+
+ return derivedKey;
+ }
+ });
+
+ /**
+ * Derives a key from a password.
+ *
+ * @param {WordArray|string} password The password.
+ * @param {WordArray|string} salt A salt.
+ * @param {Object} cfg (Optional) The configuration options to use for this computation.
+ *
+ * @return {WordArray} The derived key.
+ *
+ * @static
+ *
+ * @example
+ *
+ * var key = CryptoJS.EvpKDF(password, salt);
+ * var key = CryptoJS.EvpKDF(password, salt, { keySize: 8 });
+ * var key = CryptoJS.EvpKDF(password, salt, { keySize: 8, iterations: 1000 });
+ */
+ C.EvpKDF = function (password, salt, cfg) {
+ return EvpKDF.create(cfg).compute(password, salt);
+ };
+ }());
+
+
+ /**
+ * Cipher core components.
+ */
+ CryptoJS.lib.Cipher || (function (undefined) {
+ // Shortcuts
+ var C = CryptoJS;
+ var C_lib = C.lib;
+ var Base = C_lib.Base;
+ var WordArray = C_lib.WordArray;
+ var BufferedBlockAlgorithm = C_lib.BufferedBlockAlgorithm;
+ var C_enc = C.enc;
+ var Utf8 = C_enc.Utf8;
+ var Base64 = C_enc.Base64;
+ var C_algo = C.algo;
+ var EvpKDF = C_algo.EvpKDF;
+
+ /**
+ * Abstract base cipher template.
+ *
+ * @property {number} keySize This cipher's key size. Default: 4 (128 bits)
+ * @property {number} ivSize This cipher's IV size. Default: 4 (128 bits)
+ * @property {number} _ENC_XFORM_MODE A constant representing encryption mode.
+ * @property {number} _DEC_XFORM_MODE A constant representing decryption mode.
+ */
+ var Cipher = C_lib.Cipher = BufferedBlockAlgorithm.extend({
+ /**
+ * Configuration options.
+ *
+ * @property {WordArray} iv The IV to use for this operation.
+ */
+ cfg: Base.extend(),
+
+ /**
+ * Creates this cipher in encryption mode.
+ *
+ * @param {WordArray} key The key.
+ * @param {Object} cfg (Optional) The configuration options to use for this operation.
+ *
+ * @return {Cipher} A cipher instance.
+ *
+ * @static
+ *
+ * @example
+ *
+ * var cipher = CryptoJS.algo.AES.createEncryptor(keyWordArray, { iv: ivWordArray });
+ */
+ createEncryptor: function (key, cfg) {
+ return this.create(this._ENC_XFORM_MODE, key, cfg);
+ },
+
+ /**
+ * Creates this cipher in decryption mode.
+ *
+ * @param {WordArray} key The key.
+ * @param {Object} cfg (Optional) The configuration options to use for this operation.
+ *
+ * @return {Cipher} A cipher instance.
+ *
+ * @static
+ *
+ * @example
+ *
+ * var cipher = CryptoJS.algo.AES.createDecryptor(keyWordArray, { iv: ivWordArray });
+ */
+ createDecryptor: function (key, cfg) {
+ return this.create(this._DEC_XFORM_MODE, key, cfg);
+ },
+
+ /**
+ * Initializes a newly created cipher.
+ *
+ * @param {number} xformMode Either the encryption or decryption transormation mode constant.
+ * @param {WordArray} key The key.
+ * @param {Object} cfg (Optional) The configuration options to use for this operation.
+ *
+ * @example
+ *
+ * var cipher = CryptoJS.algo.AES.create(CryptoJS.algo.AES._ENC_XFORM_MODE, keyWordArray, { iv: ivWordArray });
+ */
+ init: function (xformMode, key, cfg) {
+ // Apply config defaults
+ this.cfg = this.cfg.extend(cfg);
+
+ // Store transform mode and key
+ this._xformMode = xformMode;
+ this._key = key;
+
+ // Set initial values
+ this.reset();
+ },
+
+ /**
+ * Resets this cipher to its initial state.
+ *
+ * @example
+ *
+ * cipher.reset();
+ */
+ reset: function () {
+ // Reset data buffer
+ BufferedBlockAlgorithm.reset.call(this);
+
+ // Perform concrete-cipher logic
+ this._doReset();
+ },
+
+ /**
+ * Adds data to be encrypted or decrypted.
+ *
+ * @param {WordArray|string} dataUpdate The data to encrypt or decrypt.
+ *
+ * @return {WordArray} The data after processing.
+ *
+ * @example
+ *
+ * var encrypted = cipher.process('data');
+ * var encrypted = cipher.process(wordArray);
+ */
+ process: function (dataUpdate) {
+ // Append
+ this._append(dataUpdate);
+
+ // Process available blocks
+ return this._process();
+ },
+
+ /**
+ * Finalizes the encryption or decryption process.
+ * Note that the finalize operation is effectively a destructive, read-once operation.
+ *
+ * @param {WordArray|string} dataUpdate The final data to encrypt or decrypt.
+ *
+ * @return {WordArray} The data after final processing.
+ *
+ * @example
+ *
+ * var encrypted = cipher.finalize();
+ * var encrypted = cipher.finalize('data');
+ * var encrypted = cipher.finalize(wordArray);
+ */
+ finalize: function (dataUpdate) {
+ // Final data update
+ if (dataUpdate) {
+ this._append(dataUpdate);
+ }
+
+ // Perform concrete-cipher logic
+ var finalProcessedData = this._doFinalize();
+
+ return finalProcessedData;
+ },
+
+ keySize: 128/32,
+
+ ivSize: 128/32,
+
+ _ENC_XFORM_MODE: 1,
+
+ _DEC_XFORM_MODE: 2,
+
+ /**
+ * Creates shortcut functions to a cipher's object interface.
+ *
+ * @param {Cipher} cipher The cipher to create a helper for.
+ *
+ * @return {Object} An object with encrypt and decrypt shortcut functions.
+ *
+ * @static
+ *
+ * @example
+ *
+ * var AES = CryptoJS.lib.Cipher._createHelper(CryptoJS.algo.AES);
+ */
+ _createHelper: (function () {
+ function selectCipherStrategy(key) {
+ if (typeof key == 'string') {
+ return PasswordBasedCipher;
+ } else {
+ return SerializableCipher;
+ }
+ }
+
+ return function (cipher) {
+ return {
+ encrypt: function (message, key, cfg) {
+ return selectCipherStrategy(key).encrypt(cipher, message, key, cfg);
+ },
+
+ decrypt: function (ciphertext, key, cfg) {
+ return selectCipherStrategy(key).decrypt(cipher, ciphertext, key, cfg);
+ }
+ };
+ };
+ }())
+ });
+
+ /**
+ * Abstract base stream cipher template.
+ *
+ * @property {number} blockSize The number of 32-bit words this cipher operates on. Default: 1 (32 bits)
+ */
+ var StreamCipher = C_lib.StreamCipher = Cipher.extend({
+ _doFinalize: function () {
+ // Process partial blocks
+ var finalProcessedBlocks = this._process(!!'flush');
+
+ return finalProcessedBlocks;
+ },
+
+ blockSize: 1
+ });
+
+ /**
+ * Mode namespace.
+ */
+ var C_mode = C.mode = {};
+
+ /**
+ * Abstract base block cipher mode template.
+ */
+ var BlockCipherMode = C_lib.BlockCipherMode = Base.extend({
+ /**
+ * Creates this mode for encryption.
+ *
+ * @param {Cipher} cipher A block cipher instance.
+ * @param {Array} iv The IV words.
+ *
+ * @static
+ *
+ * @example
+ *
+ * var mode = CryptoJS.mode.CBC.createEncryptor(cipher, iv.words);
+ */
+ createEncryptor: function (cipher, iv) {
+ return this.Encryptor.create(cipher, iv);
+ },
+
+ /**
+ * Creates this mode for decryption.
+ *
+ * @param {Cipher} cipher A block cipher instance.
+ * @param {Array} iv The IV words.
+ *
+ * @static
+ *
+ * @example
+ *
+ * var mode = CryptoJS.mode.CBC.createDecryptor(cipher, iv.words);
+ */
+ createDecryptor: function (cipher, iv) {
+ return this.Decryptor.create(cipher, iv);
+ },
+
+ /**
+ * Initializes a newly created mode.
+ *
+ * @param {Cipher} cipher A block cipher instance.
+ * @param {Array} iv The IV words.
+ *
+ * @example
+ *
+ * var mode = CryptoJS.mode.CBC.Encryptor.create(cipher, iv.words);
+ */
+ init: function (cipher, iv) {
+ this._cipher = cipher;
+ this._iv = iv;
+ }
+ });
+
+ /**
+ * Cipher Block Chaining mode.
+ */
+ var CBC = C_mode.CBC = (function () {
+ /**
+ * Abstract base CBC mode.
+ */
+ var CBC = BlockCipherMode.extend();
+
+ /**
+ * CBC encryptor.
+ */
+ CBC.Encryptor = CBC.extend({
+ /**
+ * Processes the data block at offset.
+ *
+ * @param {Array} words The data words to operate on.
+ * @param {number} offset The offset where the block starts.
+ *
+ * @example
+ *
+ * mode.processBlock(data.words, offset);
+ */
+ processBlock: function (words, offset) {
+ // Shortcuts
+ var cipher = this._cipher;
+ var blockSize = cipher.blockSize;
+
+ // XOR and encrypt
+ xorBlock.call(this, words, offset, blockSize);
+ cipher.encryptBlock(words, offset);
+
+ // Remember this block to use with next block
+ this._prevBlock = words.slice(offset, offset + blockSize);
+ }
+ });
+
+ /**
+ * CBC decryptor.
+ */
+ CBC.Decryptor = CBC.extend({
+ /**
+ * Processes the data block at offset.
+ *
+ * @param {Array} words The data words to operate on.
+ * @param {number} offset The offset where the block starts.
+ *
+ * @example
+ *
+ * mode.processBlock(data.words, offset);
+ */
+ processBlock: function (words, offset) {
+ // Shortcuts
+ var cipher = this._cipher;
+ var blockSize = cipher.blockSize;
+
+ // Remember this block to use with next block
+ var thisBlock = words.slice(offset, offset + blockSize);
+
+ // Decrypt and XOR
+ cipher.decryptBlock(words, offset);
+ xorBlock.call(this, words, offset, blockSize);
+
+ // This block becomes the previous block
+ this._prevBlock = thisBlock;
+ }
+ });
+
+ function xorBlock(words, offset, blockSize) {
+ var block;
+
+ // Shortcut
+ var iv = this._iv;
+
+ // Choose mixing block
+ if (iv) {
+ block = iv;
+
+ // Remove IV for subsequent blocks
+ this._iv = undefined;
+ } else {
+ block = this._prevBlock;
+ }
+
+ // XOR blocks
+ for (var i = 0; i < blockSize; i++) {
+ words[offset + i] ^= block[i];
+ }
+ }
+
+ return CBC;
+ }());
+
+ /**
+ * Padding namespace.
+ */
+ var C_pad = C.pad = {};
+
+ /**
+ * PKCS #5/7 padding strategy.
+ */
+ var Pkcs7 = C_pad.Pkcs7 = {
+ /**
+ * Pads data using the algorithm defined in PKCS #5/7.
+ *
+ * @param {WordArray} data The data to pad.
+ * @param {number} blockSize The multiple that the data should be padded to.
+ *
+ * @static
+ *
+ * @example
+ *
+ * CryptoJS.pad.Pkcs7.pad(wordArray, 4);
+ */
+ pad: function (data, blockSize) {
+ // Shortcut
+ var blockSizeBytes = blockSize * 4;
+
+ // Count padding bytes
+ var nPaddingBytes = blockSizeBytes - data.sigBytes % blockSizeBytes;
+
+ // Create padding word
+ var paddingWord = (nPaddingBytes << 24) | (nPaddingBytes << 16) | (nPaddingBytes << 8) | nPaddingBytes;
+
+ // Create padding
+ var paddingWords = [];
+ for (var i = 0; i < nPaddingBytes; i += 4) {
+ paddingWords.push(paddingWord);
+ }
+ var padding = WordArray.create(paddingWords, nPaddingBytes);
+
+ // Add padding
+ data.concat(padding);
+ },
+
+ /**
+ * Unpads data that had been padded using the algorithm defined in PKCS #5/7.
+ *
+ * @param {WordArray} data The data to unpad.
+ *
+ * @static
+ *
+ * @example
+ *
+ * CryptoJS.pad.Pkcs7.unpad(wordArray);
+ */
+ unpad: function (data) {
+ // Get number of padding bytes from last byte
+ var nPaddingBytes = data.words[(data.sigBytes - 1) >>> 2] & 0xff;
+
+ // Remove padding
+ data.sigBytes -= nPaddingBytes;
+ }
+ };
+
+ /**
+ * Abstract base block cipher template.
+ *
+ * @property {number} blockSize The number of 32-bit words this cipher operates on. Default: 4 (128 bits)
+ */
+ var BlockCipher = C_lib.BlockCipher = Cipher.extend({
+ /**
+ * Configuration options.
+ *
+ * @property {Mode} mode The block mode to use. Default: CBC
+ * @property {Padding} padding The padding strategy to use. Default: Pkcs7
+ */
+ cfg: Cipher.cfg.extend({
+ mode: CBC,
+ padding: Pkcs7
+ }),
+
+ reset: function () {
+ var modeCreator;
+
+ // Reset cipher
+ Cipher.reset.call(this);
+
+ // Shortcuts
+ var cfg = this.cfg;
+ var iv = cfg.iv;
+ var mode = cfg.mode;
+
+ // Reset block mode
+ if (this._xformMode == this._ENC_XFORM_MODE) {
+ modeCreator = mode.createEncryptor;
+ } else /* if (this._xformMode == this._DEC_XFORM_MODE) */ {
+ modeCreator = mode.createDecryptor;
+ // Keep at least one block in the buffer for unpadding
+ this._minBufferSize = 1;
+ }
+
+ if (this._mode && this._mode.__creator == modeCreator) {
+ this._mode.init(this, iv && iv.words);
+ } else {
+ this._mode = modeCreator.call(mode, this, iv && iv.words);
+ this._mode.__creator = modeCreator;
+ }
+ },
+
+ _doProcessBlock: function (words, offset) {
+ this._mode.processBlock(words, offset);
+ },
+
+ _doFinalize: function () {
+ var finalProcessedBlocks;
+
+ // Shortcut
+ var padding = this.cfg.padding;
+
+ // Finalize
+ if (this._xformMode == this._ENC_XFORM_MODE) {
+ // Pad data
+ padding.pad(this._data, this.blockSize);
+
+ // Process final blocks
+ finalProcessedBlocks = this._process(!!'flush');
+ } else /* if (this._xformMode == this._DEC_XFORM_MODE) */ {
+ // Process final blocks
+ finalProcessedBlocks = this._process(!!'flush');
+
+ // Unpad data
+ padding.unpad(finalProcessedBlocks);
+ }
+
+ return finalProcessedBlocks;
+ },
+
+ blockSize: 128/32
+ });
+
+ /**
+ * A collection of cipher parameters.
+ *
+ * @property {WordArray} ciphertext The raw ciphertext.
+ * @property {WordArray} key The key to this ciphertext.
+ * @property {WordArray} iv The IV used in the ciphering operation.
+ * @property {WordArray} salt The salt used with a key derivation function.
+ * @property {Cipher} algorithm The cipher algorithm.
+ * @property {Mode} mode The block mode used in the ciphering operation.
+ * @property {Padding} padding The padding scheme used in the ciphering operation.
+ * @property {number} blockSize The block size of the cipher.
+ * @property {Format} formatter The default formatting strategy to convert this cipher params object to a string.
+ */
+ var CipherParams = C_lib.CipherParams = Base.extend({
+ /**
+ * Initializes a newly created cipher params object.
+ *
+ * @param {Object} cipherParams An object with any of the possible cipher parameters.
+ *
+ * @example
+ *
+ * var cipherParams = CryptoJS.lib.CipherParams.create({
+ * ciphertext: ciphertextWordArray,
+ * key: keyWordArray,
+ * iv: ivWordArray,
+ * salt: saltWordArray,
+ * algorithm: CryptoJS.algo.AES,
+ * mode: CryptoJS.mode.CBC,
+ * padding: CryptoJS.pad.PKCS7,
+ * blockSize: 4,
+ * formatter: CryptoJS.format.OpenSSL
+ * });
+ */
+ init: function (cipherParams) {
+ this.mixIn(cipherParams);
+ },
+
+ /**
+ * Converts this cipher params object to a string.
+ *
+ * @param {Format} formatter (Optional) The formatting strategy to use.
+ *
+ * @return {string} The stringified cipher params.
+ *
+ * @throws Error If neither the formatter nor the default formatter is set.
+ *
+ * @example
+ *
+ * var string = cipherParams + '';
+ * var string = cipherParams.toString();
+ * var string = cipherParams.toString(CryptoJS.format.OpenSSL);
+ */
+ toString: function (formatter) {
+ return (formatter || this.formatter).stringify(this);
+ }
+ });
+
+ /**
+ * Format namespace.
+ */
+ var C_format = C.format = {};
+
+ /**
+ * OpenSSL formatting strategy.
+ */
+ var OpenSSLFormatter = C_format.OpenSSL = {
+ /**
+ * Converts a cipher params object to an OpenSSL-compatible string.
+ *
+ * @param {CipherParams} cipherParams The cipher params object.
+ *
+ * @return {string} The OpenSSL-compatible string.
+ *
+ * @static
+ *
+ * @example
+ *
+ * var openSSLString = CryptoJS.format.OpenSSL.stringify(cipherParams);
+ */
+ stringify: function (cipherParams) {
+ var wordArray;
+
+ // Shortcuts
+ var ciphertext = cipherParams.ciphertext;
+ var salt = cipherParams.salt;
+
+ // Format
+ if (salt) {
+ wordArray = WordArray.create([0x53616c74, 0x65645f5f]).concat(salt).concat(ciphertext);
+ } else {
+ wordArray = ciphertext;
+ }
+
+ return wordArray.toString(Base64);
+ },
+
+ /**
+ * Converts an OpenSSL-compatible string to a cipher params object.
+ *
+ * @param {string} openSSLStr The OpenSSL-compatible string.
+ *
+ * @return {CipherParams} The cipher params object.
+ *
+ * @static
+ *
+ * @example
+ *
+ * var cipherParams = CryptoJS.format.OpenSSL.parse(openSSLString);
+ */
+ parse: function (openSSLStr) {
+ var salt;
+
+ // Parse base64
+ var ciphertext = Base64.parse(openSSLStr);
+
+ // Shortcut
+ var ciphertextWords = ciphertext.words;
+
+ // Test for salt
+ if (ciphertextWords[0] == 0x53616c74 && ciphertextWords[1] == 0x65645f5f) {
+ // Extract salt
+ salt = WordArray.create(ciphertextWords.slice(2, 4));
+
+ // Remove salt from ciphertext
+ ciphertextWords.splice(0, 4);
+ ciphertext.sigBytes -= 16;
+ }
+
+ return CipherParams.create({ ciphertext: ciphertext, salt: salt });
+ }
+ };
+
+ /**
+ * A cipher wrapper that returns ciphertext as a serializable cipher params object.
+ */
+ var SerializableCipher = C_lib.SerializableCipher = Base.extend({
+ /**
+ * Configuration options.
+ *
+ * @property {Formatter} format The formatting strategy to convert cipher param objects to and from a string. Default: OpenSSL
+ */
+ cfg: Base.extend({
+ format: OpenSSLFormatter
+ }),
+
+ /**
+ * Encrypts a message.
+ *
+ * @param {Cipher} cipher The cipher algorithm to use.
+ * @param {WordArray|string} message The message to encrypt.
+ * @param {WordArray} key The key.
+ * @param {Object} cfg (Optional) The configuration options to use for this operation.
+ *
+ * @return {CipherParams} A cipher params object.
+ *
+ * @static
+ *
+ * @example
+ *
+ * var ciphertextParams = CryptoJS.lib.SerializableCipher.encrypt(CryptoJS.algo.AES, message, key);
+ * var ciphertextParams = CryptoJS.lib.SerializableCipher.encrypt(CryptoJS.algo.AES, message, key, { iv: iv });
+ * var ciphertextParams = CryptoJS.lib.SerializableCipher.encrypt(CryptoJS.algo.AES, message, key, { iv: iv, format: CryptoJS.format.OpenSSL });
+ */
+ encrypt: function (cipher, message, key, cfg) {
+ // Apply config defaults
+ cfg = this.cfg.extend(cfg);
+
+ // Encrypt
+ var encryptor = cipher.createEncryptor(key, cfg);
+ var ciphertext = encryptor.finalize(message);
+
+ // Shortcut
+ var cipherCfg = encryptor.cfg;
+
+ // Create and return serializable cipher params
+ return CipherParams.create({
+ ciphertext: ciphertext,
+ key: key,
+ iv: cipherCfg.iv,
+ algorithm: cipher,
+ mode: cipherCfg.mode,
+ padding: cipherCfg.padding,
+ blockSize: cipher.blockSize,
+ formatter: cfg.format
+ });
+ },
+
+ /**
+ * Decrypts serialized ciphertext.
+ *
+ * @param {Cipher} cipher The cipher algorithm to use.
+ * @param {CipherParams|string} ciphertext The ciphertext to decrypt.
+ * @param {WordArray} key The key.
+ * @param {Object} cfg (Optional) The configuration options to use for this operation.
+ *
+ * @return {WordArray} The plaintext.
+ *
+ * @static
+ *
+ * @example
+ *
+ * var plaintext = CryptoJS.lib.SerializableCipher.decrypt(CryptoJS.algo.AES, formattedCiphertext, key, { iv: iv, format: CryptoJS.format.OpenSSL });
+ * var plaintext = CryptoJS.lib.SerializableCipher.decrypt(CryptoJS.algo.AES, ciphertextParams, key, { iv: iv, format: CryptoJS.format.OpenSSL });
+ */
+ decrypt: function (cipher, ciphertext, key, cfg) {
+ // Apply config defaults
+ cfg = this.cfg.extend(cfg);
+
+ // Convert string to CipherParams
+ ciphertext = this._parse(ciphertext, cfg.format);
+
+ // Decrypt
+ var plaintext = cipher.createDecryptor(key, cfg).finalize(ciphertext.ciphertext);
+
+ return plaintext;
+ },
+
+ /**
+ * Converts serialized ciphertext to CipherParams,
+ * else assumed CipherParams already and returns ciphertext unchanged.
+ *
+ * @param {CipherParams|string} ciphertext The ciphertext.
+ * @param {Formatter} format The formatting strategy to use to parse serialized ciphertext.
+ *
+ * @return {CipherParams} The unserialized ciphertext.
+ *
+ * @static
+ *
+ * @example
+ *
+ * var ciphertextParams = CryptoJS.lib.SerializableCipher._parse(ciphertextStringOrParams, format);
+ */
+ _parse: function (ciphertext, format) {
+ if (typeof ciphertext == 'string') {
+ return format.parse(ciphertext, this);
+ } else {
+ return ciphertext;
+ }
+ }
+ });
+
+ /**
+ * Key derivation function namespace.
+ */
+ var C_kdf = C.kdf = {};
+
+ /**
+ * OpenSSL key derivation function.
+ */
+ var OpenSSLKdf = C_kdf.OpenSSL = {
+ /**
+ * Derives a key and IV from a password.
+ *
+ * @param {string} password The password to derive from.
+ * @param {number} keySize The size in words of the key to generate.
+ * @param {number} ivSize The size in words of the IV to generate.
+ * @param {WordArray|string} salt (Optional) A 64-bit salt to use. If omitted, a salt will be generated randomly.
+ *
+ * @return {CipherParams} A cipher params object with the key, IV, and salt.
+ *
+ * @static
+ *
+ * @example
+ *
+ * var derivedParams = CryptoJS.kdf.OpenSSL.execute('Password', 256/32, 128/32);
+ * var derivedParams = CryptoJS.kdf.OpenSSL.execute('Password', 256/32, 128/32, 'saltsalt');
+ */
+ execute: function (password, keySize, ivSize, salt, hasher) {
+ // Generate random salt
+ if (!salt) {
+ salt = WordArray.random(64/8);
+ }
+
+ // Derive key and IV
+ if (!hasher) {
+ var key = EvpKDF.create({ keySize: keySize + ivSize }).compute(password, salt);
+ } else {
+ var key = EvpKDF.create({ keySize: keySize + ivSize, hasher: hasher }).compute(password, salt);
+ }
+
+
+ // Separate key and IV
+ var iv = WordArray.create(key.words.slice(keySize), ivSize * 4);
+ key.sigBytes = keySize * 4;
+
+ // Return params
+ return CipherParams.create({ key: key, iv: iv, salt: salt });
+ }
+ };
+
+ /**
+ * A serializable cipher wrapper that derives the key from a password,
+ * and returns ciphertext as a serializable cipher params object.
+ */
+ var PasswordBasedCipher = C_lib.PasswordBasedCipher = SerializableCipher.extend({
+ /**
+ * Configuration options.
+ *
+ * @property {KDF} kdf The key derivation function to use to generate a key and IV from a password. Default: OpenSSL
+ */
+ cfg: SerializableCipher.cfg.extend({
+ kdf: OpenSSLKdf
+ }),
+
+ /**
+ * Encrypts a message using a password.
+ *
+ * @param {Cipher} cipher The cipher algorithm to use.
+ * @param {WordArray|string} message The message to encrypt.
+ * @param {string} password The password.
+ * @param {Object} cfg (Optional) The configuration options to use for this operation.
+ *
+ * @return {CipherParams} A cipher params object.
+ *
+ * @static
+ *
+ * @example
+ *
+ * var ciphertextParams = CryptoJS.lib.PasswordBasedCipher.encrypt(CryptoJS.algo.AES, message, 'password');
+ * var ciphertextParams = CryptoJS.lib.PasswordBasedCipher.encrypt(CryptoJS.algo.AES, message, 'password', { format: CryptoJS.format.OpenSSL });
+ */
+ encrypt: function (cipher, message, password, cfg) {
+ // Apply config defaults
+ cfg = this.cfg.extend(cfg);
+
+ // Derive key and other params
+ var derivedParams = cfg.kdf.execute(password, cipher.keySize, cipher.ivSize, cfg.salt, cfg.hasher);
+
+ // Add IV to config
+ cfg.iv = derivedParams.iv;
+
+ // Encrypt
+ var ciphertext = SerializableCipher.encrypt.call(this, cipher, message, derivedParams.key, cfg);
+
+ // Mix in derived params
+ ciphertext.mixIn(derivedParams);
+
+ return ciphertext;
+ },
+
+ /**
+ * Decrypts serialized ciphertext using a password.
+ *
+ * @param {Cipher} cipher The cipher algorithm to use.
+ * @param {CipherParams|string} ciphertext The ciphertext to decrypt.
+ * @param {string} password The password.
+ * @param {Object} cfg (Optional) The configuration options to use for this operation.
+ *
+ * @return {WordArray} The plaintext.
+ *
+ * @static
+ *
+ * @example
+ *
+ * var plaintext = CryptoJS.lib.PasswordBasedCipher.decrypt(CryptoJS.algo.AES, formattedCiphertext, 'password', { format: CryptoJS.format.OpenSSL });
+ * var plaintext = CryptoJS.lib.PasswordBasedCipher.decrypt(CryptoJS.algo.AES, ciphertextParams, 'password', { format: CryptoJS.format.OpenSSL });
+ */
+ decrypt: function (cipher, ciphertext, password, cfg) {
+ // Apply config defaults
+ cfg = this.cfg.extend(cfg);
+
+ // Convert string to CipherParams
+ ciphertext = this._parse(ciphertext, cfg.format);
+
+ // Derive key and other params
+ var derivedParams = cfg.kdf.execute(password, cipher.keySize, cipher.ivSize, ciphertext.salt, cfg.hasher);
+
+ // Add IV to config
+ cfg.iv = derivedParams.iv;
+
+ // Decrypt
+ var plaintext = SerializableCipher.decrypt.call(this, cipher, ciphertext, derivedParams.key, cfg);
+
+ return plaintext;
+ }
+ });
+ }());
+
+
+ /**
+ * Cipher Feedback block mode.
+ */
+ CryptoJS.mode.CFB = (function () {
+ var CFB = CryptoJS.lib.BlockCipherMode.extend();
+
+ CFB.Encryptor = CFB.extend({
+ processBlock: function (words, offset) {
+ // Shortcuts
+ var cipher = this._cipher;
+ var blockSize = cipher.blockSize;
+
+ generateKeystreamAndEncrypt.call(this, words, offset, blockSize, cipher);
+
+ // Remember this block to use with next block
+ this._prevBlock = words.slice(offset, offset + blockSize);
+ }
+ });
+
+ CFB.Decryptor = CFB.extend({
+ processBlock: function (words, offset) {
+ // Shortcuts
+ var cipher = this._cipher;
+ var blockSize = cipher.blockSize;
+
+ // Remember this block to use with next block
+ var thisBlock = words.slice(offset, offset + blockSize);
+
+ generateKeystreamAndEncrypt.call(this, words, offset, blockSize, cipher);
+
+ // This block becomes the previous block
+ this._prevBlock = thisBlock;
+ }
+ });
+
+ function generateKeystreamAndEncrypt(words, offset, blockSize, cipher) {
+ var keystream;
+
+ // Shortcut
+ var iv = this._iv;
+
+ // Generate keystream
+ if (iv) {
+ keystream = iv.slice(0);
+
+ // Remove IV for subsequent blocks
+ this._iv = undefined;
+ } else {
+ keystream = this._prevBlock;
+ }
+ cipher.encryptBlock(keystream, 0);
+
+ // Encrypt
+ for (var i = 0; i < blockSize; i++) {
+ words[offset + i] ^= keystream[i];
+ }
+ }
+
+ return CFB;
+ }());
+
+
+ /**
+ * Counter block mode.
+ */
+ CryptoJS.mode.CTR = (function () {
+ var CTR = CryptoJS.lib.BlockCipherMode.extend();
+
+ var Encryptor = CTR.Encryptor = CTR.extend({
+ processBlock: function (words, offset) {
+ // Shortcuts
+ var cipher = this._cipher
+ var blockSize = cipher.blockSize;
+ var iv = this._iv;
+ var counter = this._counter;
+
+ // Generate keystream
+ if (iv) {
+ counter = this._counter = iv.slice(0);
+
+ // Remove IV for subsequent blocks
+ this._iv = undefined;
+ }
+ var keystream = counter.slice(0);
+ cipher.encryptBlock(keystream, 0);
+
+ // Increment counter
+ counter[blockSize - 1] = (counter[blockSize - 1] + 1) | 0
+
+ // Encrypt
+ for (var i = 0; i < blockSize; i++) {
+ words[offset + i] ^= keystream[i];
+ }
+ }
+ });
+
+ CTR.Decryptor = Encryptor;
+
+ return CTR;
+ }());
+
+
+ /** @preserve
+ * Counter block mode compatible with Dr Brian Gladman fileenc.c
+ * derived from CryptoJS.mode.CTR
+ * Jan Hruby jhruby.web@gmail.com
+ */
+ CryptoJS.mode.CTRGladman = (function () {
+ var CTRGladman = CryptoJS.lib.BlockCipherMode.extend();
+
+ function incWord(word)
+ {
+ if (((word >> 24) & 0xff) === 0xff) { //overflow
+ var b1 = (word >> 16)&0xff;
+ var b2 = (word >> 8)&0xff;
+ var b3 = word & 0xff;
+
+ if (b1 === 0xff) // overflow b1
+ {
+ b1 = 0;
+ if (b2 === 0xff)
+ {
+ b2 = 0;
+ if (b3 === 0xff)
+ {
+ b3 = 0;
+ }
+ else
+ {
+ ++b3;
+ }
+ }
+ else
+ {
+ ++b2;
+ }
+ }
+ else
+ {
+ ++b1;
+ }
+
+ word = 0;
+ word += (b1 << 16);
+ word += (b2 << 8);
+ word += b3;
+ }
+ else
+ {
+ word += (0x01 << 24);
+ }
+ return word;
+ }
+
+ function incCounter(counter)
+ {
+ if ((counter[0] = incWord(counter[0])) === 0)
+ {
+ // encr_data in fileenc.c from Dr Brian Gladman's counts only with DWORD j < 8
+ counter[1] = incWord(counter[1]);
+ }
+ return counter;
+ }
+
+ var Encryptor = CTRGladman.Encryptor = CTRGladman.extend({
+ processBlock: function (words, offset) {
+ // Shortcuts
+ var cipher = this._cipher
+ var blockSize = cipher.blockSize;
+ var iv = this._iv;
+ var counter = this._counter;
+
+ // Generate keystream
+ if (iv) {
+ counter = this._counter = iv.slice(0);
+
+ // Remove IV for subsequent blocks
+ this._iv = undefined;
+ }
+
+ incCounter(counter);
+
+ var keystream = counter.slice(0);
+ cipher.encryptBlock(keystream, 0);
+
+ // Encrypt
+ for (var i = 0; i < blockSize; i++) {
+ words[offset + i] ^= keystream[i];
+ }
+ }
+ });
+
+ CTRGladman.Decryptor = Encryptor;
+
+ return CTRGladman;
+ }());
+
+
+
+
+ /**
+ * Output Feedback block mode.
+ */
+ CryptoJS.mode.OFB = (function () {
+ var OFB = CryptoJS.lib.BlockCipherMode.extend();
+
+ var Encryptor = OFB.Encryptor = OFB.extend({
+ processBlock: function (words, offset) {
+ // Shortcuts
+ var cipher = this._cipher
+ var blockSize = cipher.blockSize;
+ var iv = this._iv;
+ var keystream = this._keystream;
+
+ // Generate keystream
+ if (iv) {
+ keystream = this._keystream = iv.slice(0);
+
+ // Remove IV for subsequent blocks
+ this._iv = undefined;
+ }
+ cipher.encryptBlock(keystream, 0);
+
+ // Encrypt
+ for (var i = 0; i < blockSize; i++) {
+ words[offset + i] ^= keystream[i];
+ }
+ }
+ });
+
+ OFB.Decryptor = Encryptor;
+
+ return OFB;
+ }());
+
+
+ /**
+ * Electronic Codebook block mode.
+ */
+ CryptoJS.mode.ECB = (function () {
+ var ECB = CryptoJS.lib.BlockCipherMode.extend();
+
+ ECB.Encryptor = ECB.extend({
+ processBlock: function (words, offset) {
+ this._cipher.encryptBlock(words, offset);
+ }
+ });
+
+ ECB.Decryptor = ECB.extend({
+ processBlock: function (words, offset) {
+ this._cipher.decryptBlock(words, offset);
+ }
+ });
+
+ return ECB;
+ }());
+
+
+ /**
+ * ANSI X.923 padding strategy.
+ */
+ CryptoJS.pad.AnsiX923 = {
+ pad: function (data, blockSize) {
+ // Shortcuts
+ var dataSigBytes = data.sigBytes;
+ var blockSizeBytes = blockSize * 4;
+
+ // Count padding bytes
+ var nPaddingBytes = blockSizeBytes - dataSigBytes % blockSizeBytes;
+
+ // Compute last byte position
+ var lastBytePos = dataSigBytes + nPaddingBytes - 1;
+
+ // Pad
+ data.clamp();
+ data.words[lastBytePos >>> 2] |= nPaddingBytes << (24 - (lastBytePos % 4) * 8);
+ data.sigBytes += nPaddingBytes;
+ },
+
+ unpad: function (data) {
+ // Get number of padding bytes from last byte
+ var nPaddingBytes = data.words[(data.sigBytes - 1) >>> 2] & 0xff;
+
+ // Remove padding
+ data.sigBytes -= nPaddingBytes;
+ }
+ };
+
+
+ /**
+ * ISO 10126 padding strategy.
+ */
+ CryptoJS.pad.Iso10126 = {
+ pad: function (data, blockSize) {
+ // Shortcut
+ var blockSizeBytes = blockSize * 4;
+
+ // Count padding bytes
+ var nPaddingBytes = blockSizeBytes - data.sigBytes % blockSizeBytes;
+
+ // Pad
+ data.concat(CryptoJS.lib.WordArray.random(nPaddingBytes - 1)).
+ concat(CryptoJS.lib.WordArray.create([nPaddingBytes << 24], 1));
+ },
+
+ unpad: function (data) {
+ // Get number of padding bytes from last byte
+ var nPaddingBytes = data.words[(data.sigBytes - 1) >>> 2] & 0xff;
+
+ // Remove padding
+ data.sigBytes -= nPaddingBytes;
+ }
+ };
+
+
+ /**
+ * ISO/IEC 9797-1 Padding Method 2.
+ */
+ CryptoJS.pad.Iso97971 = {
+ pad: function (data, blockSize) {
+ // Add 0x80 byte
+ data.concat(CryptoJS.lib.WordArray.create([0x80000000], 1));
+
+ // Zero pad the rest
+ CryptoJS.pad.ZeroPadding.pad(data, blockSize);
+ },
+
+ unpad: function (data) {
+ // Remove zero padding
+ CryptoJS.pad.ZeroPadding.unpad(data);
+
+ // Remove one more byte -- the 0x80 byte
+ data.sigBytes--;
+ }
+ };
+
+
+ /**
+ * Zero padding strategy.
+ */
+ CryptoJS.pad.ZeroPadding = {
+ pad: function (data, blockSize) {
+ // Shortcut
+ var blockSizeBytes = blockSize * 4;
+
+ // Pad
+ data.clamp();
+ data.sigBytes += blockSizeBytes - ((data.sigBytes % blockSizeBytes) || blockSizeBytes);
+ },
+
+ unpad: function (data) {
+ // Shortcut
+ var dataWords = data.words;
+
+ // Unpad
+ var i = data.sigBytes - 1;
+ for (var i = data.sigBytes - 1; i >= 0; i--) {
+ if (((dataWords[i >>> 2] >>> (24 - (i % 4) * 8)) & 0xff)) {
+ data.sigBytes = i + 1;
+ break;
+ }
+ }
+ }
+ };
+
+
+ /**
+ * A noop padding strategy.
+ */
+ CryptoJS.pad.NoPadding = {
+ pad: function () {
+ },
+
+ unpad: function () {
+ }
+ };
+
+
+ (function (undefined) {
+ // Shortcuts
+ var C = CryptoJS;
+ var C_lib = C.lib;
+ var CipherParams = C_lib.CipherParams;
+ var C_enc = C.enc;
+ var Hex = C_enc.Hex;
+ var C_format = C.format;
+
+ var HexFormatter = C_format.Hex = {
+ /**
+ * Converts the ciphertext of a cipher params object to a hexadecimally encoded string.
+ *
+ * @param {CipherParams} cipherParams The cipher params object.
+ *
+ * @return {string} The hexadecimally encoded string.
+ *
+ * @static
+ *
+ * @example
+ *
+ * var hexString = CryptoJS.format.Hex.stringify(cipherParams);
+ */
+ stringify: function (cipherParams) {
+ return cipherParams.ciphertext.toString(Hex);
+ },
+
+ /**
+ * Converts a hexadecimally encoded ciphertext string to a cipher params object.
+ *
+ * @param {string} input The hexadecimally encoded string.
+ *
+ * @return {CipherParams} The cipher params object.
+ *
+ * @static
+ *
+ * @example
+ *
+ * var cipherParams = CryptoJS.format.Hex.parse(hexString);
+ */
+ parse: function (input) {
+ var ciphertext = Hex.parse(input);
+ return CipherParams.create({ ciphertext: ciphertext });
+ }
+ };
+ }());
+
+
+ (function () {
+ // Shortcuts
+ var C = CryptoJS;
+ var C_lib = C.lib;
+ var BlockCipher = C_lib.BlockCipher;
+ var C_algo = C.algo;
+
+ // Lookup tables
+ var SBOX = [];
+ var INV_SBOX = [];
+ var SUB_MIX_0 = [];
+ var SUB_MIX_1 = [];
+ var SUB_MIX_2 = [];
+ var SUB_MIX_3 = [];
+ var INV_SUB_MIX_0 = [];
+ var INV_SUB_MIX_1 = [];
+ var INV_SUB_MIX_2 = [];
+ var INV_SUB_MIX_3 = [];
+
+ // Compute lookup tables
+ (function () {
+ // Compute double table
+ var d = [];
+ for (var i = 0; i < 256; i++) {
+ if (i < 128) {
+ d[i] = i << 1;
+ } else {
+ d[i] = (i << 1) ^ 0x11b;
+ }
+ }
+
+ // Walk GF(2^8)
+ var x = 0;
+ var xi = 0;
+ for (var i = 0; i < 256; i++) {
+ // Compute sbox
+ var sx = xi ^ (xi << 1) ^ (xi << 2) ^ (xi << 3) ^ (xi << 4);
+ sx = (sx >>> 8) ^ (sx & 0xff) ^ 0x63;
+ SBOX[x] = sx;
+ INV_SBOX[sx] = x;
+
+ // Compute multiplication
+ var x2 = d[x];
+ var x4 = d[x2];
+ var x8 = d[x4];
+
+ // Compute sub bytes, mix columns tables
+ var t = (d[sx] * 0x101) ^ (sx * 0x1010100);
+ SUB_MIX_0[x] = (t << 24) | (t >>> 8);
+ SUB_MIX_1[x] = (t << 16) | (t >>> 16);
+ SUB_MIX_2[x] = (t << 8) | (t >>> 24);
+ SUB_MIX_3[x] = t;
+
+ // Compute inv sub bytes, inv mix columns tables
+ var t = (x8 * 0x1010101) ^ (x4 * 0x10001) ^ (x2 * 0x101) ^ (x * 0x1010100);
+ INV_SUB_MIX_0[sx] = (t << 24) | (t >>> 8);
+ INV_SUB_MIX_1[sx] = (t << 16) | (t >>> 16);
+ INV_SUB_MIX_2[sx] = (t << 8) | (t >>> 24);
+ INV_SUB_MIX_3[sx] = t;
+
+ // Compute next counter
+ if (!x) {
+ x = xi = 1;
+ } else {
+ x = x2 ^ d[d[d[x8 ^ x2]]];
+ xi ^= d[d[xi]];
+ }
+ }
+ }());
+
+ // Precomputed Rcon lookup
+ var RCON = [0x00, 0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80, 0x1b, 0x36];
+
+ /**
+ * AES block cipher algorithm.
+ */
+ var AES = C_algo.AES = BlockCipher.extend({
+ _doReset: function () {
+ var t;
+
+ // Skip reset of nRounds has been set before and key did not change
+ if (this._nRounds && this._keyPriorReset === this._key) {
+ return;
+ }
+
+ // Shortcuts
+ var key = this._keyPriorReset = this._key;
+ var keyWords = key.words;
+ var keySize = key.sigBytes / 4;
+
+ // Compute number of rounds
+ var nRounds = this._nRounds = keySize + 6;
+
+ // Compute number of key schedule rows
+ var ksRows = (nRounds + 1) * 4;
+
+ // Compute key schedule
+ var keySchedule = this._keySchedule = [];
+ for (var ksRow = 0; ksRow < ksRows; ksRow++) {
+ if (ksRow < keySize) {
+ keySchedule[ksRow] = keyWords[ksRow];
+ } else {
+ t = keySchedule[ksRow - 1];
+
+ if (!(ksRow % keySize)) {
+ // Rot word
+ t = (t << 8) | (t >>> 24);
+
+ // Sub word
+ t = (SBOX[t >>> 24] << 24) | (SBOX[(t >>> 16) & 0xff] << 16) | (SBOX[(t >>> 8) & 0xff] << 8) | SBOX[t & 0xff];
+
+ // Mix Rcon
+ t ^= RCON[(ksRow / keySize) | 0] << 24;
+ } else if (keySize > 6 && ksRow % keySize == 4) {
+ // Sub word
+ t = (SBOX[t >>> 24] << 24) | (SBOX[(t >>> 16) & 0xff] << 16) | (SBOX[(t >>> 8) & 0xff] << 8) | SBOX[t & 0xff];
+ }
+
+ keySchedule[ksRow] = keySchedule[ksRow - keySize] ^ t;
+ }
+ }
+
+ // Compute inv key schedule
+ var invKeySchedule = this._invKeySchedule = [];
+ for (var invKsRow = 0; invKsRow < ksRows; invKsRow++) {
+ var ksRow = ksRows - invKsRow;
+
+ if (invKsRow % 4) {
+ var t = keySchedule[ksRow];
+ } else {
+ var t = keySchedule[ksRow - 4];
+ }
+
+ if (invKsRow < 4 || ksRow <= 4) {
+ invKeySchedule[invKsRow] = t;
+ } else {
+ invKeySchedule[invKsRow] = INV_SUB_MIX_0[SBOX[t >>> 24]] ^ INV_SUB_MIX_1[SBOX[(t >>> 16) & 0xff]] ^
+ INV_SUB_MIX_2[SBOX[(t >>> 8) & 0xff]] ^ INV_SUB_MIX_3[SBOX[t & 0xff]];
+ }
+ }
+ },
+
+ encryptBlock: function (M, offset) {
+ this._doCryptBlock(M, offset, this._keySchedule, SUB_MIX_0, SUB_MIX_1, SUB_MIX_2, SUB_MIX_3, SBOX);
+ },
+
+ decryptBlock: function (M, offset) {
+ // Swap 2nd and 4th rows
+ var t = M[offset + 1];
+ M[offset + 1] = M[offset + 3];
+ M[offset + 3] = t;
+
+ this._doCryptBlock(M, offset, this._invKeySchedule, INV_SUB_MIX_0, INV_SUB_MIX_1, INV_SUB_MIX_2, INV_SUB_MIX_3, INV_SBOX);
+
+ // Inv swap 2nd and 4th rows
+ var t = M[offset + 1];
+ M[offset + 1] = M[offset + 3];
+ M[offset + 3] = t;
+ },
+
+ _doCryptBlock: function (M, offset, keySchedule, SUB_MIX_0, SUB_MIX_1, SUB_MIX_2, SUB_MIX_3, SBOX) {
+ // Shortcut
+ var nRounds = this._nRounds;
+
+ // Get input, add round key
+ var s0 = M[offset] ^ keySchedule[0];
+ var s1 = M[offset + 1] ^ keySchedule[1];
+ var s2 = M[offset + 2] ^ keySchedule[2];
+ var s3 = M[offset + 3] ^ keySchedule[3];
+
+ // Key schedule row counter
+ var ksRow = 4;
+
+ // Rounds
+ for (var round = 1; round < nRounds; round++) {
+ // Shift rows, sub bytes, mix columns, add round key
+ var t0 = SUB_MIX_0[s0 >>> 24] ^ SUB_MIX_1[(s1 >>> 16) & 0xff] ^ SUB_MIX_2[(s2 >>> 8) & 0xff] ^ SUB_MIX_3[s3 & 0xff] ^ keySchedule[ksRow++];
+ var t1 = SUB_MIX_0[s1 >>> 24] ^ SUB_MIX_1[(s2 >>> 16) & 0xff] ^ SUB_MIX_2[(s3 >>> 8) & 0xff] ^ SUB_MIX_3[s0 & 0xff] ^ keySchedule[ksRow++];
+ var t2 = SUB_MIX_0[s2 >>> 24] ^ SUB_MIX_1[(s3 >>> 16) & 0xff] ^ SUB_MIX_2[(s0 >>> 8) & 0xff] ^ SUB_MIX_3[s1 & 0xff] ^ keySchedule[ksRow++];
+ var t3 = SUB_MIX_0[s3 >>> 24] ^ SUB_MIX_1[(s0 >>> 16) & 0xff] ^ SUB_MIX_2[(s1 >>> 8) & 0xff] ^ SUB_MIX_3[s2 & 0xff] ^ keySchedule[ksRow++];
+
+ // Update state
+ s0 = t0;
+ s1 = t1;
+ s2 = t2;
+ s3 = t3;
+ }
+
+ // Shift rows, sub bytes, add round key
+ var t0 = ((SBOX[s0 >>> 24] << 24) | (SBOX[(s1 >>> 16) & 0xff] << 16) | (SBOX[(s2 >>> 8) & 0xff] << 8) | SBOX[s3 & 0xff]) ^ keySchedule[ksRow++];
+ var t1 = ((SBOX[s1 >>> 24] << 24) | (SBOX[(s2 >>> 16) & 0xff] << 16) | (SBOX[(s3 >>> 8) & 0xff] << 8) | SBOX[s0 & 0xff]) ^ keySchedule[ksRow++];
+ var t2 = ((SBOX[s2 >>> 24] << 24) | (SBOX[(s3 >>> 16) & 0xff] << 16) | (SBOX[(s0 >>> 8) & 0xff] << 8) | SBOX[s1 & 0xff]) ^ keySchedule[ksRow++];
+ var t3 = ((SBOX[s3 >>> 24] << 24) | (SBOX[(s0 >>> 16) & 0xff] << 16) | (SBOX[(s1 >>> 8) & 0xff] << 8) | SBOX[s2 & 0xff]) ^ keySchedule[ksRow++];
+
+ // Set output
+ M[offset] = t0;
+ M[offset + 1] = t1;
+ M[offset + 2] = t2;
+ M[offset + 3] = t3;
+ },
+
+ keySize: 256/32
+ });
+
+ /**
+ * Shortcut functions to the cipher's object interface.
+ *
+ * @example
+ *
+ * var ciphertext = CryptoJS.AES.encrypt(message, key, cfg);
+ * var plaintext = CryptoJS.AES.decrypt(ciphertext, key, cfg);
+ */
+ C.AES = BlockCipher._createHelper(AES);
+ }());
+
+
+ (function () {
+ // Shortcuts
+ var C = CryptoJS;
+ var C_lib = C.lib;
+ var WordArray = C_lib.WordArray;
+ var BlockCipher = C_lib.BlockCipher;
+ var C_algo = C.algo;
+
+ // Permuted Choice 1 constants
+ var PC1 = [
+ 57, 49, 41, 33, 25, 17, 9, 1,
+ 58, 50, 42, 34, 26, 18, 10, 2,
+ 59, 51, 43, 35, 27, 19, 11, 3,
+ 60, 52, 44, 36, 63, 55, 47, 39,
+ 31, 23, 15, 7, 62, 54, 46, 38,
+ 30, 22, 14, 6, 61, 53, 45, 37,
+ 29, 21, 13, 5, 28, 20, 12, 4
+ ];
+
+ // Permuted Choice 2 constants
+ var PC2 = [
+ 14, 17, 11, 24, 1, 5,
+ 3, 28, 15, 6, 21, 10,
+ 23, 19, 12, 4, 26, 8,
+ 16, 7, 27, 20, 13, 2,
+ 41, 52, 31, 37, 47, 55,
+ 30, 40, 51, 45, 33, 48,
+ 44, 49, 39, 56, 34, 53,
+ 46, 42, 50, 36, 29, 32
+ ];
+
+ // Cumulative bit shift constants
+ var BIT_SHIFTS = [1, 2, 4, 6, 8, 10, 12, 14, 15, 17, 19, 21, 23, 25, 27, 28];
+
+ // SBOXes and round permutation constants
+ var SBOX_P = [
+ {
+ 0x0: 0x808200,
+ 0x10000000: 0x8000,
+ 0x20000000: 0x808002,
+ 0x30000000: 0x2,
+ 0x40000000: 0x200,
+ 0x50000000: 0x808202,
+ 0x60000000: 0x800202,
+ 0x70000000: 0x800000,
+ 0x80000000: 0x202,
+ 0x90000000: 0x800200,
+ 0xa0000000: 0x8200,
+ 0xb0000000: 0x808000,
+ 0xc0000000: 0x8002,
+ 0xd0000000: 0x800002,
+ 0xe0000000: 0x0,
+ 0xf0000000: 0x8202,
+ 0x8000000: 0x0,
+ 0x18000000: 0x808202,
+ 0x28000000: 0x8202,
+ 0x38000000: 0x8000,
+ 0x48000000: 0x808200,
+ 0x58000000: 0x200,
+ 0x68000000: 0x808002,
+ 0x78000000: 0x2,
+ 0x88000000: 0x800200,
+ 0x98000000: 0x8200,
+ 0xa8000000: 0x808000,
+ 0xb8000000: 0x800202,
+ 0xc8000000: 0x800002,
+ 0xd8000000: 0x8002,
+ 0xe8000000: 0x202,
+ 0xf8000000: 0x800000,
+ 0x1: 0x8000,
+ 0x10000001: 0x2,
+ 0x20000001: 0x808200,
+ 0x30000001: 0x800000,
+ 0x40000001: 0x808002,
+ 0x50000001: 0x8200,
+ 0x60000001: 0x200,
+ 0x70000001: 0x800202,
+ 0x80000001: 0x808202,
+ 0x90000001: 0x808000,
+ 0xa0000001: 0x800002,
+ 0xb0000001: 0x8202,
+ 0xc0000001: 0x202,
+ 0xd0000001: 0x800200,
+ 0xe0000001: 0x8002,
+ 0xf0000001: 0x0,
+ 0x8000001: 0x808202,
+ 0x18000001: 0x808000,
+ 0x28000001: 0x800000,
+ 0x38000001: 0x200,
+ 0x48000001: 0x8000,
+ 0x58000001: 0x800002,
+ 0x68000001: 0x2,
+ 0x78000001: 0x8202,
+ 0x88000001: 0x8002,
+ 0x98000001: 0x800202,
+ 0xa8000001: 0x202,
+ 0xb8000001: 0x808200,
+ 0xc8000001: 0x800200,
+ 0xd8000001: 0x0,
+ 0xe8000001: 0x8200,
+ 0xf8000001: 0x808002
+ },
+ {
+ 0x0: 0x40084010,
+ 0x1000000: 0x4000,
+ 0x2000000: 0x80000,
+ 0x3000000: 0x40080010,
+ 0x4000000: 0x40000010,
+ 0x5000000: 0x40084000,
+ 0x6000000: 0x40004000,
+ 0x7000000: 0x10,
+ 0x8000000: 0x84000,
+ 0x9000000: 0x40004010,
+ 0xa000000: 0x40000000,
+ 0xb000000: 0x84010,
+ 0xc000000: 0x80010,
+ 0xd000000: 0x0,
+ 0xe000000: 0x4010,
+ 0xf000000: 0x40080000,
+ 0x800000: 0x40004000,
+ 0x1800000: 0x84010,
+ 0x2800000: 0x10,
+ 0x3800000: 0x40004010,
+ 0x4800000: 0x40084010,
+ 0x5800000: 0x40000000,
+ 0x6800000: 0x80000,
+ 0x7800000: 0x40080010,
+ 0x8800000: 0x80010,
+ 0x9800000: 0x0,
+ 0xa800000: 0x4000,
+ 0xb800000: 0x40080000,
+ 0xc800000: 0x40000010,
+ 0xd800000: 0x84000,
+ 0xe800000: 0x40084000,
+ 0xf800000: 0x4010,
+ 0x10000000: 0x0,
+ 0x11000000: 0x40080010,
+ 0x12000000: 0x40004010,
+ 0x13000000: 0x40084000,
+ 0x14000000: 0x40080000,
+ 0x15000000: 0x10,
+ 0x16000000: 0x84010,
+ 0x17000000: 0x4000,
+ 0x18000000: 0x4010,
+ 0x19000000: 0x80000,
+ 0x1a000000: 0x80010,
+ 0x1b000000: 0x40000010,
+ 0x1c000000: 0x84000,
+ 0x1d000000: 0x40004000,
+ 0x1e000000: 0x40000000,
+ 0x1f000000: 0x40084010,
+ 0x10800000: 0x84010,
+ 0x11800000: 0x80000,
+ 0x12800000: 0x40080000,
+ 0x13800000: 0x4000,
+ 0x14800000: 0x40004000,
+ 0x15800000: 0x40084010,
+ 0x16800000: 0x10,
+ 0x17800000: 0x40000000,
+ 0x18800000: 0x40084000,
+ 0x19800000: 0x40000010,
+ 0x1a800000: 0x40004010,
+ 0x1b800000: 0x80010,
+ 0x1c800000: 0x0,
+ 0x1d800000: 0x4010,
+ 0x1e800000: 0x40080010,
+ 0x1f800000: 0x84000
+ },
+ {
+ 0x0: 0x104,
+ 0x100000: 0x0,
+ 0x200000: 0x4000100,
+ 0x300000: 0x10104,
+ 0x400000: 0x10004,
+ 0x500000: 0x4000004,
+ 0x600000: 0x4010104,
+ 0x700000: 0x4010000,
+ 0x800000: 0x4000000,
+ 0x900000: 0x4010100,
+ 0xa00000: 0x10100,
+ 0xb00000: 0x4010004,
+ 0xc00000: 0x4000104,
+ 0xd00000: 0x10000,
+ 0xe00000: 0x4,
+ 0xf00000: 0x100,
+ 0x80000: 0x4010100,
+ 0x180000: 0x4010004,
+ 0x280000: 0x0,
+ 0x380000: 0x4000100,
+ 0x480000: 0x4000004,
+ 0x580000: 0x10000,
+ 0x680000: 0x10004,
+ 0x780000: 0x104,
+ 0x880000: 0x4,
+ 0x980000: 0x100,
+ 0xa80000: 0x4010000,
+ 0xb80000: 0x10104,
+ 0xc80000: 0x10100,
+ 0xd80000: 0x4000104,
+ 0xe80000: 0x4010104,
+ 0xf80000: 0x4000000,
+ 0x1000000: 0x4010100,
+ 0x1100000: 0x10004,
+ 0x1200000: 0x10000,
+ 0x1300000: 0x4000100,
+ 0x1400000: 0x100,
+ 0x1500000: 0x4010104,
+ 0x1600000: 0x4000004,
+ 0x1700000: 0x0,
+ 0x1800000: 0x4000104,
+ 0x1900000: 0x4000000,
+ 0x1a00000: 0x4,
+ 0x1b00000: 0x10100,
+ 0x1c00000: 0x4010000,
+ 0x1d00000: 0x104,
+ 0x1e00000: 0x10104,
+ 0x1f00000: 0x4010004,
+ 0x1080000: 0x4000000,
+ 0x1180000: 0x104,
+ 0x1280000: 0x4010100,
+ 0x1380000: 0x0,
+ 0x1480000: 0x10004,
+ 0x1580000: 0x4000100,
+ 0x1680000: 0x100,
+ 0x1780000: 0x4010004,
+ 0x1880000: 0x10000,
+ 0x1980000: 0x4010104,
+ 0x1a80000: 0x10104,
+ 0x1b80000: 0x4000004,
+ 0x1c80000: 0x4000104,
+ 0x1d80000: 0x4010000,
+ 0x1e80000: 0x4,
+ 0x1f80000: 0x10100
+ },
+ {
+ 0x0: 0x80401000,
+ 0x10000: 0x80001040,
+ 0x20000: 0x401040,
+ 0x30000: 0x80400000,
+ 0x40000: 0x0,
+ 0x50000: 0x401000,
+ 0x60000: 0x80000040,
+ 0x70000: 0x400040,
+ 0x80000: 0x80000000,
+ 0x90000: 0x400000,
+ 0xa0000: 0x40,
+ 0xb0000: 0x80001000,
+ 0xc0000: 0x80400040,
+ 0xd0000: 0x1040,
+ 0xe0000: 0x1000,
+ 0xf0000: 0x80401040,
+ 0x8000: 0x80001040,
+ 0x18000: 0x40,
+ 0x28000: 0x80400040,
+ 0x38000: 0x80001000,
+ 0x48000: 0x401000,
+ 0x58000: 0x80401040,
+ 0x68000: 0x0,
+ 0x78000: 0x80400000,
+ 0x88000: 0x1000,
+ 0x98000: 0x80401000,
+ 0xa8000: 0x400000,
+ 0xb8000: 0x1040,
+ 0xc8000: 0x80000000,
+ 0xd8000: 0x400040,
+ 0xe8000: 0x401040,
+ 0xf8000: 0x80000040,
+ 0x100000: 0x400040,
+ 0x110000: 0x401000,
+ 0x120000: 0x80000040,
+ 0x130000: 0x0,
+ 0x140000: 0x1040,
+ 0x150000: 0x80400040,
+ 0x160000: 0x80401000,
+ 0x170000: 0x80001040,
+ 0x180000: 0x80401040,
+ 0x190000: 0x80000000,
+ 0x1a0000: 0x80400000,
+ 0x1b0000: 0x401040,
+ 0x1c0000: 0x80001000,
+ 0x1d0000: 0x400000,
+ 0x1e0000: 0x40,
+ 0x1f0000: 0x1000,
+ 0x108000: 0x80400000,
+ 0x118000: 0x80401040,
+ 0x128000: 0x0,
+ 0x138000: 0x401000,
+ 0x148000: 0x400040,
+ 0x158000: 0x80000000,
+ 0x168000: 0x80001040,
+ 0x178000: 0x40,
+ 0x188000: 0x80000040,
+ 0x198000: 0x1000,
+ 0x1a8000: 0x80001000,
+ 0x1b8000: 0x80400040,
+ 0x1c8000: 0x1040,
+ 0x1d8000: 0x80401000,
+ 0x1e8000: 0x400000,
+ 0x1f8000: 0x401040
+ },
+ {
+ 0x0: 0x80,
+ 0x1000: 0x1040000,
+ 0x2000: 0x40000,
+ 0x3000: 0x20000000,
+ 0x4000: 0x20040080,
+ 0x5000: 0x1000080,
+ 0x6000: 0x21000080,
+ 0x7000: 0x40080,
+ 0x8000: 0x1000000,
+ 0x9000: 0x20040000,
+ 0xa000: 0x20000080,
+ 0xb000: 0x21040080,
+ 0xc000: 0x21040000,
+ 0xd000: 0x0,
+ 0xe000: 0x1040080,
+ 0xf000: 0x21000000,
+ 0x800: 0x1040080,
+ 0x1800: 0x21000080,
+ 0x2800: 0x80,
+ 0x3800: 0x1040000,
+ 0x4800: 0x40000,
+ 0x5800: 0x20040080,
+ 0x6800: 0x21040000,
+ 0x7800: 0x20000000,
+ 0x8800: 0x20040000,
+ 0x9800: 0x0,
+ 0xa800: 0x21040080,
+ 0xb800: 0x1000080,
+ 0xc800: 0x20000080,
+ 0xd800: 0x21000000,
+ 0xe800: 0x1000000,
+ 0xf800: 0x40080,
+ 0x10000: 0x40000,
+ 0x11000: 0x80,
+ 0x12000: 0x20000000,
+ 0x13000: 0x21000080,
+ 0x14000: 0x1000080,
+ 0x15000: 0x21040000,
+ 0x16000: 0x20040080,
+ 0x17000: 0x1000000,
+ 0x18000: 0x21040080,
+ 0x19000: 0x21000000,
+ 0x1a000: 0x1040000,
+ 0x1b000: 0x20040000,
+ 0x1c000: 0x40080,
+ 0x1d000: 0x20000080,
+ 0x1e000: 0x0,
+ 0x1f000: 0x1040080,
+ 0x10800: 0x21000080,
+ 0x11800: 0x1000000,
+ 0x12800: 0x1040000,
+ 0x13800: 0x20040080,
+ 0x14800: 0x20000000,
+ 0x15800: 0x1040080,
+ 0x16800: 0x80,
+ 0x17800: 0x21040000,
+ 0x18800: 0x40080,
+ 0x19800: 0x21040080,
+ 0x1a800: 0x0,
+ 0x1b800: 0x21000000,
+ 0x1c800: 0x1000080,
+ 0x1d800: 0x40000,
+ 0x1e800: 0x20040000,
+ 0x1f800: 0x20000080
+ },
+ {
+ 0x0: 0x10000008,
+ 0x100: 0x2000,
+ 0x200: 0x10200000,
+ 0x300: 0x10202008,
+ 0x400: 0x10002000,
+ 0x500: 0x200000,
+ 0x600: 0x200008,
+ 0x700: 0x10000000,
+ 0x800: 0x0,
+ 0x900: 0x10002008,
+ 0xa00: 0x202000,
+ 0xb00: 0x8,
+ 0xc00: 0x10200008,
+ 0xd00: 0x202008,
+ 0xe00: 0x2008,
+ 0xf00: 0x10202000,
+ 0x80: 0x10200000,
+ 0x180: 0x10202008,
+ 0x280: 0x8,
+ 0x380: 0x200000,
+ 0x480: 0x202008,
+ 0x580: 0x10000008,
+ 0x680: 0x10002000,
+ 0x780: 0x2008,
+ 0x880: 0x200008,
+ 0x980: 0x2000,
+ 0xa80: 0x10002008,
+ 0xb80: 0x10200008,
+ 0xc80: 0x0,
+ 0xd80: 0x10202000,
+ 0xe80: 0x202000,
+ 0xf80: 0x10000000,
+ 0x1000: 0x10002000,
+ 0x1100: 0x10200008,
+ 0x1200: 0x10202008,
+ 0x1300: 0x2008,
+ 0x1400: 0x200000,
+ 0x1500: 0x10000000,
+ 0x1600: 0x10000008,
+ 0x1700: 0x202000,
+ 0x1800: 0x202008,
+ 0x1900: 0x0,
+ 0x1a00: 0x8,
+ 0x1b00: 0x10200000,
+ 0x1c00: 0x2000,
+ 0x1d00: 0x10002008,
+ 0x1e00: 0x10202000,
+ 0x1f00: 0x200008,
+ 0x1080: 0x8,
+ 0x1180: 0x202000,
+ 0x1280: 0x200000,
+ 0x1380: 0x10000008,
+ 0x1480: 0x10002000,
+ 0x1580: 0x2008,
+ 0x1680: 0x10202008,
+ 0x1780: 0x10200000,
+ 0x1880: 0x10202000,
+ 0x1980: 0x10200008,
+ 0x1a80: 0x2000,
+ 0x1b80: 0x202008,
+ 0x1c80: 0x200008,
+ 0x1d80: 0x0,
+ 0x1e80: 0x10000000,
+ 0x1f80: 0x10002008
+ },
+ {
+ 0x0: 0x100000,
+ 0x10: 0x2000401,
+ 0x20: 0x400,
+ 0x30: 0x100401,
+ 0x40: 0x2100401,
+ 0x50: 0x0,
+ 0x60: 0x1,
+ 0x70: 0x2100001,
+ 0x80: 0x2000400,
+ 0x90: 0x100001,
+ 0xa0: 0x2000001,
+ 0xb0: 0x2100400,
+ 0xc0: 0x2100000,
+ 0xd0: 0x401,
+ 0xe0: 0x100400,
+ 0xf0: 0x2000000,
+ 0x8: 0x2100001,
+ 0x18: 0x0,
+ 0x28: 0x2000401,
+ 0x38: 0x2100400,
+ 0x48: 0x100000,
+ 0x58: 0x2000001,
+ 0x68: 0x2000000,
+ 0x78: 0x401,
+ 0x88: 0x100401,
+ 0x98: 0x2000400,
+ 0xa8: 0x2100000,
+ 0xb8: 0x100001,
+ 0xc8: 0x400,
+ 0xd8: 0x2100401,
+ 0xe8: 0x1,
+ 0xf8: 0x100400,
+ 0x100: 0x2000000,
+ 0x110: 0x100000,
+ 0x120: 0x2000401,
+ 0x130: 0x2100001,
+ 0x140: 0x100001,
+ 0x150: 0x2000400,
+ 0x160: 0x2100400,
+ 0x170: 0x100401,
+ 0x180: 0x401,
+ 0x190: 0x2100401,
+ 0x1a0: 0x100400,
+ 0x1b0: 0x1,
+ 0x1c0: 0x0,
+ 0x1d0: 0x2100000,
+ 0x1e0: 0x2000001,
+ 0x1f0: 0x400,
+ 0x108: 0x100400,
+ 0x118: 0x2000401,
+ 0x128: 0x2100001,
+ 0x138: 0x1,
+ 0x148: 0x2000000,
+ 0x158: 0x100000,
+ 0x168: 0x401,
+ 0x178: 0x2100400,
+ 0x188: 0x2000001,
+ 0x198: 0x2100000,
+ 0x1a8: 0x0,
+ 0x1b8: 0x2100401,
+ 0x1c8: 0x100401,
+ 0x1d8: 0x400,
+ 0x1e8: 0x2000400,
+ 0x1f8: 0x100001
+ },
+ {
+ 0x0: 0x8000820,
+ 0x1: 0x20000,
+ 0x2: 0x8000000,
+ 0x3: 0x20,
+ 0x4: 0x20020,
+ 0x5: 0x8020820,
+ 0x6: 0x8020800,
+ 0x7: 0x800,
+ 0x8: 0x8020000,
+ 0x9: 0x8000800,
+ 0xa: 0x20800,
+ 0xb: 0x8020020,
+ 0xc: 0x820,
+ 0xd: 0x0,
+ 0xe: 0x8000020,
+ 0xf: 0x20820,
+ 0x80000000: 0x800,
+ 0x80000001: 0x8020820,
+ 0x80000002: 0x8000820,
+ 0x80000003: 0x8000000,
+ 0x80000004: 0x8020000,
+ 0x80000005: 0x20800,
+ 0x80000006: 0x20820,
+ 0x80000007: 0x20,
+ 0x80000008: 0x8000020,
+ 0x80000009: 0x820,
+ 0x8000000a: 0x20020,
+ 0x8000000b: 0x8020800,
+ 0x8000000c: 0x0,
+ 0x8000000d: 0x8020020,
+ 0x8000000e: 0x8000800,
+ 0x8000000f: 0x20000,
+ 0x10: 0x20820,
+ 0x11: 0x8020800,
+ 0x12: 0x20,
+ 0x13: 0x800,
+ 0x14: 0x8000800,
+ 0x15: 0x8000020,
+ 0x16: 0x8020020,
+ 0x17: 0x20000,
+ 0x18: 0x0,
+ 0x19: 0x20020,
+ 0x1a: 0x8020000,
+ 0x1b: 0x8000820,
+ 0x1c: 0x8020820,
+ 0x1d: 0x20800,
+ 0x1e: 0x820,
+ 0x1f: 0x8000000,
+ 0x80000010: 0x20000,
+ 0x80000011: 0x800,
+ 0x80000012: 0x8020020,
+ 0x80000013: 0x20820,
+ 0x80000014: 0x20,
+ 0x80000015: 0x8020000,
+ 0x80000016: 0x8000000,
+ 0x80000017: 0x8000820,
+ 0x80000018: 0x8020820,
+ 0x80000019: 0x8000020,
+ 0x8000001a: 0x8000800,
+ 0x8000001b: 0x0,
+ 0x8000001c: 0x20800,
+ 0x8000001d: 0x820,
+ 0x8000001e: 0x20020,
+ 0x8000001f: 0x8020800
+ }
+ ];
+
+ // Masks that select the SBOX input
+ var SBOX_MASK = [
+ 0xf8000001, 0x1f800000, 0x01f80000, 0x001f8000,
+ 0x0001f800, 0x00001f80, 0x000001f8, 0x8000001f
+ ];
+
+ /**
+ * DES block cipher algorithm.
+ */
+ var DES = C_algo.DES = BlockCipher.extend({
+ _doReset: function () {
+ // Shortcuts
+ var key = this._key;
+ var keyWords = key.words;
+
+ // Select 56 bits according to PC1
+ var keyBits = [];
+ for (var i = 0; i < 56; i++) {
+ var keyBitPos = PC1[i] - 1;
+ keyBits[i] = (keyWords[keyBitPos >>> 5] >>> (31 - keyBitPos % 32)) & 1;
+ }
+
+ // Assemble 16 subkeys
+ var subKeys = this._subKeys = [];
+ for (var nSubKey = 0; nSubKey < 16; nSubKey++) {
+ // Create subkey
+ var subKey = subKeys[nSubKey] = [];
+
+ // Shortcut
+ var bitShift = BIT_SHIFTS[nSubKey];
+
+ // Select 48 bits according to PC2
+ for (var i = 0; i < 24; i++) {
+ // Select from the left 28 key bits
+ subKey[(i / 6) | 0] |= keyBits[((PC2[i] - 1) + bitShift) % 28] << (31 - i % 6);
+
+ // Select from the right 28 key bits
+ subKey[4 + ((i / 6) | 0)] |= keyBits[28 + (((PC2[i + 24] - 1) + bitShift) % 28)] << (31 - i % 6);
+ }
+
+ // Since each subkey is applied to an expanded 32-bit input,
+ // the subkey can be broken into 8 values scaled to 32-bits,
+ // which allows the key to be used without expansion
+ subKey[0] = (subKey[0] << 1) | (subKey[0] >>> 31);
+ for (var i = 1; i < 7; i++) {
+ subKey[i] = subKey[i] >>> ((i - 1) * 4 + 3);
+ }
+ subKey[7] = (subKey[7] << 5) | (subKey[7] >>> 27);
+ }
+
+ // Compute inverse subkeys
+ var invSubKeys = this._invSubKeys = [];
+ for (var i = 0; i < 16; i++) {
+ invSubKeys[i] = subKeys[15 - i];
+ }
+ },
+
+ encryptBlock: function (M, offset) {
+ this._doCryptBlock(M, offset, this._subKeys);
+ },
+
+ decryptBlock: function (M, offset) {
+ this._doCryptBlock(M, offset, this._invSubKeys);
+ },
+
+ _doCryptBlock: function (M, offset, subKeys) {
+ // Get input
+ this._lBlock = M[offset];
+ this._rBlock = M[offset + 1];
+
+ // Initial permutation
+ exchangeLR.call(this, 4, 0x0f0f0f0f);
+ exchangeLR.call(this, 16, 0x0000ffff);
+ exchangeRL.call(this, 2, 0x33333333);
+ exchangeRL.call(this, 8, 0x00ff00ff);
+ exchangeLR.call(this, 1, 0x55555555);
+
+ // Rounds
+ for (var round = 0; round < 16; round++) {
+ // Shortcuts
+ var subKey = subKeys[round];
+ var lBlock = this._lBlock;
+ var rBlock = this._rBlock;
+
+ // Feistel function
+ var f = 0;
+ for (var i = 0; i < 8; i++) {
+ f |= SBOX_P[i][((rBlock ^ subKey[i]) & SBOX_MASK[i]) >>> 0];
+ }
+ this._lBlock = rBlock;
+ this._rBlock = lBlock ^ f;
+ }
+
+ // Undo swap from last round
+ var t = this._lBlock;
+ this._lBlock = this._rBlock;
+ this._rBlock = t;
+
+ // Final permutation
+ exchangeLR.call(this, 1, 0x55555555);
+ exchangeRL.call(this, 8, 0x00ff00ff);
+ exchangeRL.call(this, 2, 0x33333333);
+ exchangeLR.call(this, 16, 0x0000ffff);
+ exchangeLR.call(this, 4, 0x0f0f0f0f);
+
+ // Set output
+ M[offset] = this._lBlock;
+ M[offset + 1] = this._rBlock;
+ },
+
+ keySize: 64/32,
+
+ ivSize: 64/32,
+
+ blockSize: 64/32
+ });
+
+ // Swap bits across the left and right words
+ function exchangeLR(offset, mask) {
+ var t = ((this._lBlock >>> offset) ^ this._rBlock) & mask;
+ this._rBlock ^= t;
+ this._lBlock ^= t << offset;
+ }
+
+ function exchangeRL(offset, mask) {
+ var t = ((this._rBlock >>> offset) ^ this._lBlock) & mask;
+ this._lBlock ^= t;
+ this._rBlock ^= t << offset;
+ }
+
+ /**
+ * Shortcut functions to the cipher's object interface.
+ *
+ * @example
+ *
+ * var ciphertext = CryptoJS.DES.encrypt(message, key, cfg);
+ * var plaintext = CryptoJS.DES.decrypt(ciphertext, key, cfg);
+ */
+ C.DES = BlockCipher._createHelper(DES);
+
+ /**
+ * Triple-DES block cipher algorithm.
+ */
+ var TripleDES = C_algo.TripleDES = BlockCipher.extend({
+ _doReset: function () {
+ // Shortcuts
+ var key = this._key;
+ var keyWords = key.words;
+ // Make sure the key length is valid (64, 128 or >= 192 bit)
+ if (keyWords.length !== 2 && keyWords.length !== 4 && keyWords.length < 6) {
+ throw new Error('Invalid key length - 3DES requires the key length to be 64, 128, 192 or >192.');
+ }
+
+ // Extend the key according to the keying options defined in 3DES standard
+ var key1 = keyWords.slice(0, 2);
+ var key2 = keyWords.length < 4 ? keyWords.slice(0, 2) : keyWords.slice(2, 4);
+ var key3 = keyWords.length < 6 ? keyWords.slice(0, 2) : keyWords.slice(4, 6);
+
+ // Create DES instances
+ this._des1 = DES.createEncryptor(WordArray.create(key1));
+ this._des2 = DES.createEncryptor(WordArray.create(key2));
+ this._des3 = DES.createEncryptor(WordArray.create(key3));
+ },
+
+ encryptBlock: function (M, offset) {
+ this._des1.encryptBlock(M, offset);
+ this._des2.decryptBlock(M, offset);
+ this._des3.encryptBlock(M, offset);
+ },
+
+ decryptBlock: function (M, offset) {
+ this._des3.decryptBlock(M, offset);
+ this._des2.encryptBlock(M, offset);
+ this._des1.decryptBlock(M, offset);
+ },
+
+ keySize: 192/32,
+
+ ivSize: 64/32,
+
+ blockSize: 64/32
+ });
+
+ /**
+ * Shortcut functions to the cipher's object interface.
+ *
+ * @example
+ *
+ * var ciphertext = CryptoJS.TripleDES.encrypt(message, key, cfg);
+ * var plaintext = CryptoJS.TripleDES.decrypt(ciphertext, key, cfg);
+ */
+ C.TripleDES = BlockCipher._createHelper(TripleDES);
+ }());
+
+
+ (function () {
+ // Shortcuts
+ var C = CryptoJS;
+ var C_lib = C.lib;
+ var StreamCipher = C_lib.StreamCipher;
+ var C_algo = C.algo;
+
+ /**
+ * RC4 stream cipher algorithm.
+ */
+ var RC4 = C_algo.RC4 = StreamCipher.extend({
+ _doReset: function () {
+ // Shortcuts
+ var key = this._key;
+ var keyWords = key.words;
+ var keySigBytes = key.sigBytes;
+
+ // Init sbox
+ var S = this._S = [];
+ for (var i = 0; i < 256; i++) {
+ S[i] = i;
+ }
+
+ // Key setup
+ for (var i = 0, j = 0; i < 256; i++) {
+ var keyByteIndex = i % keySigBytes;
+ var keyByte = (keyWords[keyByteIndex >>> 2] >>> (24 - (keyByteIndex % 4) * 8)) & 0xff;
+
+ j = (j + S[i] + keyByte) % 256;
+
+ // Swap
+ var t = S[i];
+ S[i] = S[j];
+ S[j] = t;
+ }
+
+ // Counters
+ this._i = this._j = 0;
+ },
+
+ _doProcessBlock: function (M, offset) {
+ M[offset] ^= generateKeystreamWord.call(this);
+ },
+
+ keySize: 256/32,
+
+ ivSize: 0
+ });
+
+ function generateKeystreamWord() {
+ // Shortcuts
+ var S = this._S;
+ var i = this._i;
+ var j = this._j;
+
+ // Generate keystream word
+ var keystreamWord = 0;
+ for (var n = 0; n < 4; n++) {
+ i = (i + 1) % 256;
+ j = (j + S[i]) % 256;
+
+ // Swap
+ var t = S[i];
+ S[i] = S[j];
+ S[j] = t;
+
+ keystreamWord |= S[(S[i] + S[j]) % 256] << (24 - n * 8);
+ }
+
+ // Update counters
+ this._i = i;
+ this._j = j;
+
+ return keystreamWord;
+ }
+
+ /**
+ * Shortcut functions to the cipher's object interface.
+ *
+ * @example
+ *
+ * var ciphertext = CryptoJS.RC4.encrypt(message, key, cfg);
+ * var plaintext = CryptoJS.RC4.decrypt(ciphertext, key, cfg);
+ */
+ C.RC4 = StreamCipher._createHelper(RC4);
+
+ /**
+ * Modified RC4 stream cipher algorithm.
+ */
+ var RC4Drop = C_algo.RC4Drop = RC4.extend({
+ /**
+ * Configuration options.
+ *
+ * @property {number} drop The number of keystream words to drop. Default 192
+ */
+ cfg: RC4.cfg.extend({
+ drop: 192
+ }),
+
+ _doReset: function () {
+ RC4._doReset.call(this);
+
+ // Drop
+ for (var i = this.cfg.drop; i > 0; i--) {
+ generateKeystreamWord.call(this);
+ }
+ }
+ });
+
+ /**
+ * Shortcut functions to the cipher's object interface.
+ *
+ * @example
+ *
+ * var ciphertext = CryptoJS.RC4Drop.encrypt(message, key, cfg);
+ * var plaintext = CryptoJS.RC4Drop.decrypt(ciphertext, key, cfg);
+ */
+ C.RC4Drop = StreamCipher._createHelper(RC4Drop);
+ }());
+
+
+ (function () {
+ // Shortcuts
+ var C = CryptoJS;
+ var C_lib = C.lib;
+ var StreamCipher = C_lib.StreamCipher;
+ var C_algo = C.algo;
+
+ // Reusable objects
+ var S = [];
+ var C_ = [];
+ var G = [];
+
+ /**
+ * Rabbit stream cipher algorithm
+ */
+ var Rabbit = C_algo.Rabbit = StreamCipher.extend({
+ _doReset: function () {
+ // Shortcuts
+ var K = this._key.words;
+ var iv = this.cfg.iv;
+
+ // Swap endian
+ for (var i = 0; i < 4; i++) {
+ K[i] = (((K[i] << 8) | (K[i] >>> 24)) & 0x00ff00ff) |
+ (((K[i] << 24) | (K[i] >>> 8)) & 0xff00ff00);
+ }
+
+ // Generate initial state values
+ var X = this._X = [
+ K[0], (K[3] << 16) | (K[2] >>> 16),
+ K[1], (K[0] << 16) | (K[3] >>> 16),
+ K[2], (K[1] << 16) | (K[0] >>> 16),
+ K[3], (K[2] << 16) | (K[1] >>> 16)
+ ];
+
+ // Generate initial counter values
+ var C = this._C = [
+ (K[2] << 16) | (K[2] >>> 16), (K[0] & 0xffff0000) | (K[1] & 0x0000ffff),
+ (K[3] << 16) | (K[3] >>> 16), (K[1] & 0xffff0000) | (K[2] & 0x0000ffff),
+ (K[0] << 16) | (K[0] >>> 16), (K[2] & 0xffff0000) | (K[3] & 0x0000ffff),
+ (K[1] << 16) | (K[1] >>> 16), (K[3] & 0xffff0000) | (K[0] & 0x0000ffff)
+ ];
+
+ // Carry bit
+ this._b = 0;
+
+ // Iterate the system four times
+ for (var i = 0; i < 4; i++) {
+ nextState.call(this);
+ }
+
+ // Modify the counters
+ for (var i = 0; i < 8; i++) {
+ C[i] ^= X[(i + 4) & 7];
+ }
+
+ // IV setup
+ if (iv) {
+ // Shortcuts
+ var IV = iv.words;
+ var IV_0 = IV[0];
+ var IV_1 = IV[1];
+
+ // Generate four subvectors
+ var i0 = (((IV_0 << 8) | (IV_0 >>> 24)) & 0x00ff00ff) | (((IV_0 << 24) | (IV_0 >>> 8)) & 0xff00ff00);
+ var i2 = (((IV_1 << 8) | (IV_1 >>> 24)) & 0x00ff00ff) | (((IV_1 << 24) | (IV_1 >>> 8)) & 0xff00ff00);
+ var i1 = (i0 >>> 16) | (i2 & 0xffff0000);
+ var i3 = (i2 << 16) | (i0 & 0x0000ffff);
+
+ // Modify counter values
+ C[0] ^= i0;
+ C[1] ^= i1;
+ C[2] ^= i2;
+ C[3] ^= i3;
+ C[4] ^= i0;
+ C[5] ^= i1;
+ C[6] ^= i2;
+ C[7] ^= i3;
+
+ // Iterate the system four times
+ for (var i = 0; i < 4; i++) {
+ nextState.call(this);
+ }
+ }
+ },
+
+ _doProcessBlock: function (M, offset) {
+ // Shortcut
+ var X = this._X;
+
+ // Iterate the system
+ nextState.call(this);
+
+ // Generate four keystream words
+ S[0] = X[0] ^ (X[5] >>> 16) ^ (X[3] << 16);
+ S[1] = X[2] ^ (X[7] >>> 16) ^ (X[5] << 16);
+ S[2] = X[4] ^ (X[1] >>> 16) ^ (X[7] << 16);
+ S[3] = X[6] ^ (X[3] >>> 16) ^ (X[1] << 16);
+
+ for (var i = 0; i < 4; i++) {
+ // Swap endian
+ S[i] = (((S[i] << 8) | (S[i] >>> 24)) & 0x00ff00ff) |
+ (((S[i] << 24) | (S[i] >>> 8)) & 0xff00ff00);
+
+ // Encrypt
+ M[offset + i] ^= S[i];
+ }
+ },
+
+ blockSize: 128/32,
+
+ ivSize: 64/32
+ });
+
+ function nextState() {
+ // Shortcuts
+ var X = this._X;
+ var C = this._C;
+
+ // Save old counter values
+ for (var i = 0; i < 8; i++) {
+ C_[i] = C[i];
+ }
+
+ // Calculate new counter values
+ C[0] = (C[0] + 0x4d34d34d + this._b) | 0;
+ C[1] = (C[1] + 0xd34d34d3 + ((C[0] >>> 0) < (C_[0] >>> 0) ? 1 : 0)) | 0;
+ C[2] = (C[2] + 0x34d34d34 + ((C[1] >>> 0) < (C_[1] >>> 0) ? 1 : 0)) | 0;
+ C[3] = (C[3] + 0x4d34d34d + ((C[2] >>> 0) < (C_[2] >>> 0) ? 1 : 0)) | 0;
+ C[4] = (C[4] + 0xd34d34d3 + ((C[3] >>> 0) < (C_[3] >>> 0) ? 1 : 0)) | 0;
+ C[5] = (C[5] + 0x34d34d34 + ((C[4] >>> 0) < (C_[4] >>> 0) ? 1 : 0)) | 0;
+ C[6] = (C[6] + 0x4d34d34d + ((C[5] >>> 0) < (C_[5] >>> 0) ? 1 : 0)) | 0;
+ C[7] = (C[7] + 0xd34d34d3 + ((C[6] >>> 0) < (C_[6] >>> 0) ? 1 : 0)) | 0;
+ this._b = (C[7] >>> 0) < (C_[7] >>> 0) ? 1 : 0;
+
+ // Calculate the g-values
+ for (var i = 0; i < 8; i++) {
+ var gx = X[i] + C[i];
+
+ // Construct high and low argument for squaring
+ var ga = gx & 0xffff;
+ var gb = gx >>> 16;
+
+ // Calculate high and low result of squaring
+ var gh = ((((ga * ga) >>> 17) + ga * gb) >>> 15) + gb * gb;
+ var gl = (((gx & 0xffff0000) * gx) | 0) + (((gx & 0x0000ffff) * gx) | 0);
+
+ // High XOR low
+ G[i] = gh ^ gl;
+ }
+
+ // Calculate new state values
+ X[0] = (G[0] + ((G[7] << 16) | (G[7] >>> 16)) + ((G[6] << 16) | (G[6] >>> 16))) | 0;
+ X[1] = (G[1] + ((G[0] << 8) | (G[0] >>> 24)) + G[7]) | 0;
+ X[2] = (G[2] + ((G[1] << 16) | (G[1] >>> 16)) + ((G[0] << 16) | (G[0] >>> 16))) | 0;
+ X[3] = (G[3] + ((G[2] << 8) | (G[2] >>> 24)) + G[1]) | 0;
+ X[4] = (G[4] + ((G[3] << 16) | (G[3] >>> 16)) + ((G[2] << 16) | (G[2] >>> 16))) | 0;
+ X[5] = (G[5] + ((G[4] << 8) | (G[4] >>> 24)) + G[3]) | 0;
+ X[6] = (G[6] + ((G[5] << 16) | (G[5] >>> 16)) + ((G[4] << 16) | (G[4] >>> 16))) | 0;
+ X[7] = (G[7] + ((G[6] << 8) | (G[6] >>> 24)) + G[5]) | 0;
+ }
+
+ /**
+ * Shortcut functions to the cipher's object interface.
+ *
+ * @example
+ *
+ * var ciphertext = CryptoJS.Rabbit.encrypt(message, key, cfg);
+ * var plaintext = CryptoJS.Rabbit.decrypt(ciphertext, key, cfg);
+ */
+ C.Rabbit = StreamCipher._createHelper(Rabbit);
+ }());
+
+
+ (function () {
+ // Shortcuts
+ var C = CryptoJS;
+ var C_lib = C.lib;
+ var StreamCipher = C_lib.StreamCipher;
+ var C_algo = C.algo;
+
+ // Reusable objects
+ var S = [];
+ var C_ = [];
+ var G = [];
+
+ /**
+ * Rabbit stream cipher algorithm.
+ *
+ * This is a legacy version that neglected to convert the key to little-endian.
+ * This error doesn't affect the cipher's security,
+ * but it does affect its compatibility with other implementations.
+ */
+ var RabbitLegacy = C_algo.RabbitLegacy = StreamCipher.extend({
+ _doReset: function () {
+ // Shortcuts
+ var K = this._key.words;
+ var iv = this.cfg.iv;
+
+ // Generate initial state values
+ var X = this._X = [
+ K[0], (K[3] << 16) | (K[2] >>> 16),
+ K[1], (K[0] << 16) | (K[3] >>> 16),
+ K[2], (K[1] << 16) | (K[0] >>> 16),
+ K[3], (K[2] << 16) | (K[1] >>> 16)
+ ];
+
+ // Generate initial counter values
+ var C = this._C = [
+ (K[2] << 16) | (K[2] >>> 16), (K[0] & 0xffff0000) | (K[1] & 0x0000ffff),
+ (K[3] << 16) | (K[3] >>> 16), (K[1] & 0xffff0000) | (K[2] & 0x0000ffff),
+ (K[0] << 16) | (K[0] >>> 16), (K[2] & 0xffff0000) | (K[3] & 0x0000ffff),
+ (K[1] << 16) | (K[1] >>> 16), (K[3] & 0xffff0000) | (K[0] & 0x0000ffff)
+ ];
+
+ // Carry bit
+ this._b = 0;
+
+ // Iterate the system four times
+ for (var i = 0; i < 4; i++) {
+ nextState.call(this);
+ }
+
+ // Modify the counters
+ for (var i = 0; i < 8; i++) {
+ C[i] ^= X[(i + 4) & 7];
+ }
+
+ // IV setup
+ if (iv) {
+ // Shortcuts
+ var IV = iv.words;
+ var IV_0 = IV[0];
+ var IV_1 = IV[1];
+
+ // Generate four subvectors
+ var i0 = (((IV_0 << 8) | (IV_0 >>> 24)) & 0x00ff00ff) | (((IV_0 << 24) | (IV_0 >>> 8)) & 0xff00ff00);
+ var i2 = (((IV_1 << 8) | (IV_1 >>> 24)) & 0x00ff00ff) | (((IV_1 << 24) | (IV_1 >>> 8)) & 0xff00ff00);
+ var i1 = (i0 >>> 16) | (i2 & 0xffff0000);
+ var i3 = (i2 << 16) | (i0 & 0x0000ffff);
+
+ // Modify counter values
+ C[0] ^= i0;
+ C[1] ^= i1;
+ C[2] ^= i2;
+ C[3] ^= i3;
+ C[4] ^= i0;
+ C[5] ^= i1;
+ C[6] ^= i2;
+ C[7] ^= i3;
+
+ // Iterate the system four times
+ for (var i = 0; i < 4; i++) {
+ nextState.call(this);
+ }
+ }
+ },
+
+ _doProcessBlock: function (M, offset) {
+ // Shortcut
+ var X = this._X;
+
+ // Iterate the system
+ nextState.call(this);
+
+ // Generate four keystream words
+ S[0] = X[0] ^ (X[5] >>> 16) ^ (X[3] << 16);
+ S[1] = X[2] ^ (X[7] >>> 16) ^ (X[5] << 16);
+ S[2] = X[4] ^ (X[1] >>> 16) ^ (X[7] << 16);
+ S[3] = X[6] ^ (X[3] >>> 16) ^ (X[1] << 16);
+
+ for (var i = 0; i < 4; i++) {
+ // Swap endian
+ S[i] = (((S[i] << 8) | (S[i] >>> 24)) & 0x00ff00ff) |
+ (((S[i] << 24) | (S[i] >>> 8)) & 0xff00ff00);
+
+ // Encrypt
+ M[offset + i] ^= S[i];
+ }
+ },
+
+ blockSize: 128/32,
+
+ ivSize: 64/32
+ });
+
+ function nextState() {
+ // Shortcuts
+ var X = this._X;
+ var C = this._C;
+
+ // Save old counter values
+ for (var i = 0; i < 8; i++) {
+ C_[i] = C[i];
+ }
+
+ // Calculate new counter values
+ C[0] = (C[0] + 0x4d34d34d + this._b) | 0;
+ C[1] = (C[1] + 0xd34d34d3 + ((C[0] >>> 0) < (C_[0] >>> 0) ? 1 : 0)) | 0;
+ C[2] = (C[2] + 0x34d34d34 + ((C[1] >>> 0) < (C_[1] >>> 0) ? 1 : 0)) | 0;
+ C[3] = (C[3] + 0x4d34d34d + ((C[2] >>> 0) < (C_[2] >>> 0) ? 1 : 0)) | 0;
+ C[4] = (C[4] + 0xd34d34d3 + ((C[3] >>> 0) < (C_[3] >>> 0) ? 1 : 0)) | 0;
+ C[5] = (C[5] + 0x34d34d34 + ((C[4] >>> 0) < (C_[4] >>> 0) ? 1 : 0)) | 0;
+ C[6] = (C[6] + 0x4d34d34d + ((C[5] >>> 0) < (C_[5] >>> 0) ? 1 : 0)) | 0;
+ C[7] = (C[7] + 0xd34d34d3 + ((C[6] >>> 0) < (C_[6] >>> 0) ? 1 : 0)) | 0;
+ this._b = (C[7] >>> 0) < (C_[7] >>> 0) ? 1 : 0;
+
+ // Calculate the g-values
+ for (var i = 0; i < 8; i++) {
+ var gx = X[i] + C[i];
+
+ // Construct high and low argument for squaring
+ var ga = gx & 0xffff;
+ var gb = gx >>> 16;
+
+ // Calculate high and low result of squaring
+ var gh = ((((ga * ga) >>> 17) + ga * gb) >>> 15) + gb * gb;
+ var gl = (((gx & 0xffff0000) * gx) | 0) + (((gx & 0x0000ffff) * gx) | 0);
+
+ // High XOR low
+ G[i] = gh ^ gl;
+ }
+
+ // Calculate new state values
+ X[0] = (G[0] + ((G[7] << 16) | (G[7] >>> 16)) + ((G[6] << 16) | (G[6] >>> 16))) | 0;
+ X[1] = (G[1] + ((G[0] << 8) | (G[0] >>> 24)) + G[7]) | 0;
+ X[2] = (G[2] + ((G[1] << 16) | (G[1] >>> 16)) + ((G[0] << 16) | (G[0] >>> 16))) | 0;
+ X[3] = (G[3] + ((G[2] << 8) | (G[2] >>> 24)) + G[1]) | 0;
+ X[4] = (G[4] + ((G[3] << 16) | (G[3] >>> 16)) + ((G[2] << 16) | (G[2] >>> 16))) | 0;
+ X[5] = (G[5] + ((G[4] << 8) | (G[4] >>> 24)) + G[3]) | 0;
+ X[6] = (G[6] + ((G[5] << 16) | (G[5] >>> 16)) + ((G[4] << 16) | (G[4] >>> 16))) | 0;
+ X[7] = (G[7] + ((G[6] << 8) | (G[6] >>> 24)) + G[5]) | 0;
+ }
+
+ /**
+ * Shortcut functions to the cipher's object interface.
+ *
+ * @example
+ *
+ * var ciphertext = CryptoJS.RabbitLegacy.encrypt(message, key, cfg);
+ * var plaintext = CryptoJS.RabbitLegacy.decrypt(ciphertext, key, cfg);
+ */
+ C.RabbitLegacy = StreamCipher._createHelper(RabbitLegacy);
+ }());
+
+
+ (function () {
+ // Shortcuts
+ var C = CryptoJS;
+ var C_lib = C.lib;
+ var BlockCipher = C_lib.BlockCipher;
+ var C_algo = C.algo;
+
+ const N = 16;
+
+ //Origin pbox and sbox, derived from PI
+ const ORIG_P = [
+ 0x243F6A88, 0x85A308D3, 0x13198A2E, 0x03707344,
+ 0xA4093822, 0x299F31D0, 0x082EFA98, 0xEC4E6C89,
+ 0x452821E6, 0x38D01377, 0xBE5466CF, 0x34E90C6C,
+ 0xC0AC29B7, 0xC97C50DD, 0x3F84D5B5, 0xB5470917,
+ 0x9216D5D9, 0x8979FB1B
+ ];
+
+ const ORIG_S = [
+ [ 0xD1310BA6, 0x98DFB5AC, 0x2FFD72DB, 0xD01ADFB7,
+ 0xB8E1AFED, 0x6A267E96, 0xBA7C9045, 0xF12C7F99,
+ 0x24A19947, 0xB3916CF7, 0x0801F2E2, 0x858EFC16,
+ 0x636920D8, 0x71574E69, 0xA458FEA3, 0xF4933D7E,
+ 0x0D95748F, 0x728EB658, 0x718BCD58, 0x82154AEE,
+ 0x7B54A41D, 0xC25A59B5, 0x9C30D539, 0x2AF26013,
+ 0xC5D1B023, 0x286085F0, 0xCA417918, 0xB8DB38EF,
+ 0x8E79DCB0, 0x603A180E, 0x6C9E0E8B, 0xB01E8A3E,
+ 0xD71577C1, 0xBD314B27, 0x78AF2FDA, 0x55605C60,
+ 0xE65525F3, 0xAA55AB94, 0x57489862, 0x63E81440,
+ 0x55CA396A, 0x2AAB10B6, 0xB4CC5C34, 0x1141E8CE,
+ 0xA15486AF, 0x7C72E993, 0xB3EE1411, 0x636FBC2A,
+ 0x2BA9C55D, 0x741831F6, 0xCE5C3E16, 0x9B87931E,
+ 0xAFD6BA33, 0x6C24CF5C, 0x7A325381, 0x28958677,
+ 0x3B8F4898, 0x6B4BB9AF, 0xC4BFE81B, 0x66282193,
+ 0x61D809CC, 0xFB21A991, 0x487CAC60, 0x5DEC8032,
+ 0xEF845D5D, 0xE98575B1, 0xDC262302, 0xEB651B88,
+ 0x23893E81, 0xD396ACC5, 0x0F6D6FF3, 0x83F44239,
+ 0x2E0B4482, 0xA4842004, 0x69C8F04A, 0x9E1F9B5E,
+ 0x21C66842, 0xF6E96C9A, 0x670C9C61, 0xABD388F0,
+ 0x6A51A0D2, 0xD8542F68, 0x960FA728, 0xAB5133A3,
+ 0x6EEF0B6C, 0x137A3BE4, 0xBA3BF050, 0x7EFB2A98,
+ 0xA1F1651D, 0x39AF0176, 0x66CA593E, 0x82430E88,
+ 0x8CEE8619, 0x456F9FB4, 0x7D84A5C3, 0x3B8B5EBE,
+ 0xE06F75D8, 0x85C12073, 0x401A449F, 0x56C16AA6,
+ 0x4ED3AA62, 0x363F7706, 0x1BFEDF72, 0x429B023D,
+ 0x37D0D724, 0xD00A1248, 0xDB0FEAD3, 0x49F1C09B,
+ 0x075372C9, 0x80991B7B, 0x25D479D8, 0xF6E8DEF7,
+ 0xE3FE501A, 0xB6794C3B, 0x976CE0BD, 0x04C006BA,
+ 0xC1A94FB6, 0x409F60C4, 0x5E5C9EC2, 0x196A2463,
+ 0x68FB6FAF, 0x3E6C53B5, 0x1339B2EB, 0x3B52EC6F,
+ 0x6DFC511F, 0x9B30952C, 0xCC814544, 0xAF5EBD09,
+ 0xBEE3D004, 0xDE334AFD, 0x660F2807, 0x192E4BB3,
+ 0xC0CBA857, 0x45C8740F, 0xD20B5F39, 0xB9D3FBDB,
+ 0x5579C0BD, 0x1A60320A, 0xD6A100C6, 0x402C7279,
+ 0x679F25FE, 0xFB1FA3CC, 0x8EA5E9F8, 0xDB3222F8,
+ 0x3C7516DF, 0xFD616B15, 0x2F501EC8, 0xAD0552AB,
+ 0x323DB5FA, 0xFD238760, 0x53317B48, 0x3E00DF82,
+ 0x9E5C57BB, 0xCA6F8CA0, 0x1A87562E, 0xDF1769DB,
+ 0xD542A8F6, 0x287EFFC3, 0xAC6732C6, 0x8C4F5573,
+ 0x695B27B0, 0xBBCA58C8, 0xE1FFA35D, 0xB8F011A0,
+ 0x10FA3D98, 0xFD2183B8, 0x4AFCB56C, 0x2DD1D35B,
+ 0x9A53E479, 0xB6F84565, 0xD28E49BC, 0x4BFB9790,
+ 0xE1DDF2DA, 0xA4CB7E33, 0x62FB1341, 0xCEE4C6E8,
+ 0xEF20CADA, 0x36774C01, 0xD07E9EFE, 0x2BF11FB4,
+ 0x95DBDA4D, 0xAE909198, 0xEAAD8E71, 0x6B93D5A0,
+ 0xD08ED1D0, 0xAFC725E0, 0x8E3C5B2F, 0x8E7594B7,
+ 0x8FF6E2FB, 0xF2122B64, 0x8888B812, 0x900DF01C,
+ 0x4FAD5EA0, 0x688FC31C, 0xD1CFF191, 0xB3A8C1AD,
+ 0x2F2F2218, 0xBE0E1777, 0xEA752DFE, 0x8B021FA1,
+ 0xE5A0CC0F, 0xB56F74E8, 0x18ACF3D6, 0xCE89E299,
+ 0xB4A84FE0, 0xFD13E0B7, 0x7CC43B81, 0xD2ADA8D9,
+ 0x165FA266, 0x80957705, 0x93CC7314, 0x211A1477,
+ 0xE6AD2065, 0x77B5FA86, 0xC75442F5, 0xFB9D35CF,
+ 0xEBCDAF0C, 0x7B3E89A0, 0xD6411BD3, 0xAE1E7E49,
+ 0x00250E2D, 0x2071B35E, 0x226800BB, 0x57B8E0AF,
+ 0x2464369B, 0xF009B91E, 0x5563911D, 0x59DFA6AA,
+ 0x78C14389, 0xD95A537F, 0x207D5BA2, 0x02E5B9C5,
+ 0x83260376, 0x6295CFA9, 0x11C81968, 0x4E734A41,
+ 0xB3472DCA, 0x7B14A94A, 0x1B510052, 0x9A532915,
+ 0xD60F573F, 0xBC9BC6E4, 0x2B60A476, 0x81E67400,
+ 0x08BA6FB5, 0x571BE91F, 0xF296EC6B, 0x2A0DD915,
+ 0xB6636521, 0xE7B9F9B6, 0xFF34052E, 0xC5855664,
+ 0x53B02D5D, 0xA99F8FA1, 0x08BA4799, 0x6E85076A ],
+ [ 0x4B7A70E9, 0xB5B32944, 0xDB75092E, 0xC4192623,
+ 0xAD6EA6B0, 0x49A7DF7D, 0x9CEE60B8, 0x8FEDB266,
+ 0xECAA8C71, 0x699A17FF, 0x5664526C, 0xC2B19EE1,
+ 0x193602A5, 0x75094C29, 0xA0591340, 0xE4183A3E,
+ 0x3F54989A, 0x5B429D65, 0x6B8FE4D6, 0x99F73FD6,
+ 0xA1D29C07, 0xEFE830F5, 0x4D2D38E6, 0xF0255DC1,
+ 0x4CDD2086, 0x8470EB26, 0x6382E9C6, 0x021ECC5E,
+ 0x09686B3F, 0x3EBAEFC9, 0x3C971814, 0x6B6A70A1,
+ 0x687F3584, 0x52A0E286, 0xB79C5305, 0xAA500737,
+ 0x3E07841C, 0x7FDEAE5C, 0x8E7D44EC, 0x5716F2B8,
+ 0xB03ADA37, 0xF0500C0D, 0xF01C1F04, 0x0200B3FF,
+ 0xAE0CF51A, 0x3CB574B2, 0x25837A58, 0xDC0921BD,
+ 0xD19113F9, 0x7CA92FF6, 0x94324773, 0x22F54701,
+ 0x3AE5E581, 0x37C2DADC, 0xC8B57634, 0x9AF3DDA7,
+ 0xA9446146, 0x0FD0030E, 0xECC8C73E, 0xA4751E41,
+ 0xE238CD99, 0x3BEA0E2F, 0x3280BBA1, 0x183EB331,
+ 0x4E548B38, 0x4F6DB908, 0x6F420D03, 0xF60A04BF,
+ 0x2CB81290, 0x24977C79, 0x5679B072, 0xBCAF89AF,
+ 0xDE9A771F, 0xD9930810, 0xB38BAE12, 0xDCCF3F2E,
+ 0x5512721F, 0x2E6B7124, 0x501ADDE6, 0x9F84CD87,
+ 0x7A584718, 0x7408DA17, 0xBC9F9ABC, 0xE94B7D8C,
+ 0xEC7AEC3A, 0xDB851DFA, 0x63094366, 0xC464C3D2,
+ 0xEF1C1847, 0x3215D908, 0xDD433B37, 0x24C2BA16,
+ 0x12A14D43, 0x2A65C451, 0x50940002, 0x133AE4DD,
+ 0x71DFF89E, 0x10314E55, 0x81AC77D6, 0x5F11199B,
+ 0x043556F1, 0xD7A3C76B, 0x3C11183B, 0x5924A509,
+ 0xF28FE6ED, 0x97F1FBFA, 0x9EBABF2C, 0x1E153C6E,
+ 0x86E34570, 0xEAE96FB1, 0x860E5E0A, 0x5A3E2AB3,
+ 0x771FE71C, 0x4E3D06FA, 0x2965DCB9, 0x99E71D0F,
+ 0x803E89D6, 0x5266C825, 0x2E4CC978, 0x9C10B36A,
+ 0xC6150EBA, 0x94E2EA78, 0xA5FC3C53, 0x1E0A2DF4,
+ 0xF2F74EA7, 0x361D2B3D, 0x1939260F, 0x19C27960,
+ 0x5223A708, 0xF71312B6, 0xEBADFE6E, 0xEAC31F66,
+ 0xE3BC4595, 0xA67BC883, 0xB17F37D1, 0x018CFF28,
+ 0xC332DDEF, 0xBE6C5AA5, 0x65582185, 0x68AB9802,
+ 0xEECEA50F, 0xDB2F953B, 0x2AEF7DAD, 0x5B6E2F84,
+ 0x1521B628, 0x29076170, 0xECDD4775, 0x619F1510,
+ 0x13CCA830, 0xEB61BD96, 0x0334FE1E, 0xAA0363CF,
+ 0xB5735C90, 0x4C70A239, 0xD59E9E0B, 0xCBAADE14,
+ 0xEECC86BC, 0x60622CA7, 0x9CAB5CAB, 0xB2F3846E,
+ 0x648B1EAF, 0x19BDF0CA, 0xA02369B9, 0x655ABB50,
+ 0x40685A32, 0x3C2AB4B3, 0x319EE9D5, 0xC021B8F7,
+ 0x9B540B19, 0x875FA099, 0x95F7997E, 0x623D7DA8,
+ 0xF837889A, 0x97E32D77, 0x11ED935F, 0x16681281,
+ 0x0E358829, 0xC7E61FD6, 0x96DEDFA1, 0x7858BA99,
+ 0x57F584A5, 0x1B227263, 0x9B83C3FF, 0x1AC24696,
+ 0xCDB30AEB, 0x532E3054, 0x8FD948E4, 0x6DBC3128,
+ 0x58EBF2EF, 0x34C6FFEA, 0xFE28ED61, 0xEE7C3C73,
+ 0x5D4A14D9, 0xE864B7E3, 0x42105D14, 0x203E13E0,
+ 0x45EEE2B6, 0xA3AAABEA, 0xDB6C4F15, 0xFACB4FD0,
+ 0xC742F442, 0xEF6ABBB5, 0x654F3B1D, 0x41CD2105,
+ 0xD81E799E, 0x86854DC7, 0xE44B476A, 0x3D816250,
+ 0xCF62A1F2, 0x5B8D2646, 0xFC8883A0, 0xC1C7B6A3,
+ 0x7F1524C3, 0x69CB7492, 0x47848A0B, 0x5692B285,
+ 0x095BBF00, 0xAD19489D, 0x1462B174, 0x23820E00,
+ 0x58428D2A, 0x0C55F5EA, 0x1DADF43E, 0x233F7061,
+ 0x3372F092, 0x8D937E41, 0xD65FECF1, 0x6C223BDB,
+ 0x7CDE3759, 0xCBEE7460, 0x4085F2A7, 0xCE77326E,
+ 0xA6078084, 0x19F8509E, 0xE8EFD855, 0x61D99735,
+ 0xA969A7AA, 0xC50C06C2, 0x5A04ABFC, 0x800BCADC,
+ 0x9E447A2E, 0xC3453484, 0xFDD56705, 0x0E1E9EC9,
+ 0xDB73DBD3, 0x105588CD, 0x675FDA79, 0xE3674340,
+ 0xC5C43465, 0x713E38D8, 0x3D28F89E, 0xF16DFF20,
+ 0x153E21E7, 0x8FB03D4A, 0xE6E39F2B, 0xDB83ADF7 ],
+ [ 0xE93D5A68, 0x948140F7, 0xF64C261C, 0x94692934,
+ 0x411520F7, 0x7602D4F7, 0xBCF46B2E, 0xD4A20068,
+ 0xD4082471, 0x3320F46A, 0x43B7D4B7, 0x500061AF,
+ 0x1E39F62E, 0x97244546, 0x14214F74, 0xBF8B8840,
+ 0x4D95FC1D, 0x96B591AF, 0x70F4DDD3, 0x66A02F45,
+ 0xBFBC09EC, 0x03BD9785, 0x7FAC6DD0, 0x31CB8504,
+ 0x96EB27B3, 0x55FD3941, 0xDA2547E6, 0xABCA0A9A,
+ 0x28507825, 0x530429F4, 0x0A2C86DA, 0xE9B66DFB,
+ 0x68DC1462, 0xD7486900, 0x680EC0A4, 0x27A18DEE,
+ 0x4F3FFEA2, 0xE887AD8C, 0xB58CE006, 0x7AF4D6B6,
+ 0xAACE1E7C, 0xD3375FEC, 0xCE78A399, 0x406B2A42,
+ 0x20FE9E35, 0xD9F385B9, 0xEE39D7AB, 0x3B124E8B,
+ 0x1DC9FAF7, 0x4B6D1856, 0x26A36631, 0xEAE397B2,
+ 0x3A6EFA74, 0xDD5B4332, 0x6841E7F7, 0xCA7820FB,
+ 0xFB0AF54E, 0xD8FEB397, 0x454056AC, 0xBA489527,
+ 0x55533A3A, 0x20838D87, 0xFE6BA9B7, 0xD096954B,
+ 0x55A867BC, 0xA1159A58, 0xCCA92963, 0x99E1DB33,
+ 0xA62A4A56, 0x3F3125F9, 0x5EF47E1C, 0x9029317C,
+ 0xFDF8E802, 0x04272F70, 0x80BB155C, 0x05282CE3,
+ 0x95C11548, 0xE4C66D22, 0x48C1133F, 0xC70F86DC,
+ 0x07F9C9EE, 0x41041F0F, 0x404779A4, 0x5D886E17,
+ 0x325F51EB, 0xD59BC0D1, 0xF2BCC18F, 0x41113564,
+ 0x257B7834, 0x602A9C60, 0xDFF8E8A3, 0x1F636C1B,
+ 0x0E12B4C2, 0x02E1329E, 0xAF664FD1, 0xCAD18115,
+ 0x6B2395E0, 0x333E92E1, 0x3B240B62, 0xEEBEB922,
+ 0x85B2A20E, 0xE6BA0D99, 0xDE720C8C, 0x2DA2F728,
+ 0xD0127845, 0x95B794FD, 0x647D0862, 0xE7CCF5F0,
+ 0x5449A36F, 0x877D48FA, 0xC39DFD27, 0xF33E8D1E,
+ 0x0A476341, 0x992EFF74, 0x3A6F6EAB, 0xF4F8FD37,
+ 0xA812DC60, 0xA1EBDDF8, 0x991BE14C, 0xDB6E6B0D,
+ 0xC67B5510, 0x6D672C37, 0x2765D43B, 0xDCD0E804,
+ 0xF1290DC7, 0xCC00FFA3, 0xB5390F92, 0x690FED0B,
+ 0x667B9FFB, 0xCEDB7D9C, 0xA091CF0B, 0xD9155EA3,
+ 0xBB132F88, 0x515BAD24, 0x7B9479BF, 0x763BD6EB,
+ 0x37392EB3, 0xCC115979, 0x8026E297, 0xF42E312D,
+ 0x6842ADA7, 0xC66A2B3B, 0x12754CCC, 0x782EF11C,
+ 0x6A124237, 0xB79251E7, 0x06A1BBE6, 0x4BFB6350,
+ 0x1A6B1018, 0x11CAEDFA, 0x3D25BDD8, 0xE2E1C3C9,
+ 0x44421659, 0x0A121386, 0xD90CEC6E, 0xD5ABEA2A,
+ 0x64AF674E, 0xDA86A85F, 0xBEBFE988, 0x64E4C3FE,
+ 0x9DBC8057, 0xF0F7C086, 0x60787BF8, 0x6003604D,
+ 0xD1FD8346, 0xF6381FB0, 0x7745AE04, 0xD736FCCC,
+ 0x83426B33, 0xF01EAB71, 0xB0804187, 0x3C005E5F,
+ 0x77A057BE, 0xBDE8AE24, 0x55464299, 0xBF582E61,
+ 0x4E58F48F, 0xF2DDFDA2, 0xF474EF38, 0x8789BDC2,
+ 0x5366F9C3, 0xC8B38E74, 0xB475F255, 0x46FCD9B9,
+ 0x7AEB2661, 0x8B1DDF84, 0x846A0E79, 0x915F95E2,
+ 0x466E598E, 0x20B45770, 0x8CD55591, 0xC902DE4C,
+ 0xB90BACE1, 0xBB8205D0, 0x11A86248, 0x7574A99E,
+ 0xB77F19B6, 0xE0A9DC09, 0x662D09A1, 0xC4324633,
+ 0xE85A1F02, 0x09F0BE8C, 0x4A99A025, 0x1D6EFE10,
+ 0x1AB93D1D, 0x0BA5A4DF, 0xA186F20F, 0x2868F169,
+ 0xDCB7DA83, 0x573906FE, 0xA1E2CE9B, 0x4FCD7F52,
+ 0x50115E01, 0xA70683FA, 0xA002B5C4, 0x0DE6D027,
+ 0x9AF88C27, 0x773F8641, 0xC3604C06, 0x61A806B5,
+ 0xF0177A28, 0xC0F586E0, 0x006058AA, 0x30DC7D62,
+ 0x11E69ED7, 0x2338EA63, 0x53C2DD94, 0xC2C21634,
+ 0xBBCBEE56, 0x90BCB6DE, 0xEBFC7DA1, 0xCE591D76,
+ 0x6F05E409, 0x4B7C0188, 0x39720A3D, 0x7C927C24,
+ 0x86E3725F, 0x724D9DB9, 0x1AC15BB4, 0xD39EB8FC,
+ 0xED545578, 0x08FCA5B5, 0xD83D7CD3, 0x4DAD0FC4,
+ 0x1E50EF5E, 0xB161E6F8, 0xA28514D9, 0x6C51133C,
+ 0x6FD5C7E7, 0x56E14EC4, 0x362ABFCE, 0xDDC6C837,
+ 0xD79A3234, 0x92638212, 0x670EFA8E, 0x406000E0 ],
+ [ 0x3A39CE37, 0xD3FAF5CF, 0xABC27737, 0x5AC52D1B,
+ 0x5CB0679E, 0x4FA33742, 0xD3822740, 0x99BC9BBE,
+ 0xD5118E9D, 0xBF0F7315, 0xD62D1C7E, 0xC700C47B,
+ 0xB78C1B6B, 0x21A19045, 0xB26EB1BE, 0x6A366EB4,
+ 0x5748AB2F, 0xBC946E79, 0xC6A376D2, 0x6549C2C8,
+ 0x530FF8EE, 0x468DDE7D, 0xD5730A1D, 0x4CD04DC6,
+ 0x2939BBDB, 0xA9BA4650, 0xAC9526E8, 0xBE5EE304,
+ 0xA1FAD5F0, 0x6A2D519A, 0x63EF8CE2, 0x9A86EE22,
+ 0xC089C2B8, 0x43242EF6, 0xA51E03AA, 0x9CF2D0A4,
+ 0x83C061BA, 0x9BE96A4D, 0x8FE51550, 0xBA645BD6,
+ 0x2826A2F9, 0xA73A3AE1, 0x4BA99586, 0xEF5562E9,
+ 0xC72FEFD3, 0xF752F7DA, 0x3F046F69, 0x77FA0A59,
+ 0x80E4A915, 0x87B08601, 0x9B09E6AD, 0x3B3EE593,
+ 0xE990FD5A, 0x9E34D797, 0x2CF0B7D9, 0x022B8B51,
+ 0x96D5AC3A, 0x017DA67D, 0xD1CF3ED6, 0x7C7D2D28,
+ 0x1F9F25CF, 0xADF2B89B, 0x5AD6B472, 0x5A88F54C,
+ 0xE029AC71, 0xE019A5E6, 0x47B0ACFD, 0xED93FA9B,
+ 0xE8D3C48D, 0x283B57CC, 0xF8D56629, 0x79132E28,
+ 0x785F0191, 0xED756055, 0xF7960E44, 0xE3D35E8C,
+ 0x15056DD4, 0x88F46DBA, 0x03A16125, 0x0564F0BD,
+ 0xC3EB9E15, 0x3C9057A2, 0x97271AEC, 0xA93A072A,
+ 0x1B3F6D9B, 0x1E6321F5, 0xF59C66FB, 0x26DCF319,
+ 0x7533D928, 0xB155FDF5, 0x03563482, 0x8ABA3CBB,
+ 0x28517711, 0xC20AD9F8, 0xABCC5167, 0xCCAD925F,
+ 0x4DE81751, 0x3830DC8E, 0x379D5862, 0x9320F991,
+ 0xEA7A90C2, 0xFB3E7BCE, 0x5121CE64, 0x774FBE32,
+ 0xA8B6E37E, 0xC3293D46, 0x48DE5369, 0x6413E680,
+ 0xA2AE0810, 0xDD6DB224, 0x69852DFD, 0x09072166,
+ 0xB39A460A, 0x6445C0DD, 0x586CDECF, 0x1C20C8AE,
+ 0x5BBEF7DD, 0x1B588D40, 0xCCD2017F, 0x6BB4E3BB,
+ 0xDDA26A7E, 0x3A59FF45, 0x3E350A44, 0xBCB4CDD5,
+ 0x72EACEA8, 0xFA6484BB, 0x8D6612AE, 0xBF3C6F47,
+ 0xD29BE463, 0x542F5D9E, 0xAEC2771B, 0xF64E6370,
+ 0x740E0D8D, 0xE75B1357, 0xF8721671, 0xAF537D5D,
+ 0x4040CB08, 0x4EB4E2CC, 0x34D2466A, 0x0115AF84,
+ 0xE1B00428, 0x95983A1D, 0x06B89FB4, 0xCE6EA048,
+ 0x6F3F3B82, 0x3520AB82, 0x011A1D4B, 0x277227F8,
+ 0x611560B1, 0xE7933FDC, 0xBB3A792B, 0x344525BD,
+ 0xA08839E1, 0x51CE794B, 0x2F32C9B7, 0xA01FBAC9,
+ 0xE01CC87E, 0xBCC7D1F6, 0xCF0111C3, 0xA1E8AAC7,
+ 0x1A908749, 0xD44FBD9A, 0xD0DADECB, 0xD50ADA38,
+ 0x0339C32A, 0xC6913667, 0x8DF9317C, 0xE0B12B4F,
+ 0xF79E59B7, 0x43F5BB3A, 0xF2D519FF, 0x27D9459C,
+ 0xBF97222C, 0x15E6FC2A, 0x0F91FC71, 0x9B941525,
+ 0xFAE59361, 0xCEB69CEB, 0xC2A86459, 0x12BAA8D1,
+ 0xB6C1075E, 0xE3056A0C, 0x10D25065, 0xCB03A442,
+ 0xE0EC6E0E, 0x1698DB3B, 0x4C98A0BE, 0x3278E964,
+ 0x9F1F9532, 0xE0D392DF, 0xD3A0342B, 0x8971F21E,
+ 0x1B0A7441, 0x4BA3348C, 0xC5BE7120, 0xC37632D8,
+ 0xDF359F8D, 0x9B992F2E, 0xE60B6F47, 0x0FE3F11D,
+ 0xE54CDA54, 0x1EDAD891, 0xCE6279CF, 0xCD3E7E6F,
+ 0x1618B166, 0xFD2C1D05, 0x848FD2C5, 0xF6FB2299,
+ 0xF523F357, 0xA6327623, 0x93A83531, 0x56CCCD02,
+ 0xACF08162, 0x5A75EBB5, 0x6E163697, 0x88D273CC,
+ 0xDE966292, 0x81B949D0, 0x4C50901B, 0x71C65614,
+ 0xE6C6C7BD, 0x327A140A, 0x45E1D006, 0xC3F27B9A,
+ 0xC9AA53FD, 0x62A80F00, 0xBB25BFE2, 0x35BDD2F6,
+ 0x71126905, 0xB2040222, 0xB6CBCF7C, 0xCD769C2B,
+ 0x53113EC0, 0x1640E3D3, 0x38ABBD60, 0x2547ADF0,
+ 0xBA38209C, 0xF746CE76, 0x77AFA1C5, 0x20756060,
+ 0x85CBFE4E, 0x8AE88DD8, 0x7AAAF9B0, 0x4CF9AA7E,
+ 0x1948C25C, 0x02FB8A8C, 0x01C36AE4, 0xD6EBE1F9,
+ 0x90D4F869, 0xA65CDEA0, 0x3F09252D, 0xC208E69F,
+ 0xB74E6132, 0xCE77E25B, 0x578FDFE3, 0x3AC372E6 ]
+ ];
+
+ var BLOWFISH_CTX = {
+ pbox: [],
+ sbox: []
+ }
+
+ function F(ctx, x){
+ let a = (x >> 24) & 0xFF;
+ let b = (x >> 16) & 0xFF;
+ let c = (x >> 8) & 0xFF;
+ let d = x & 0xFF;
+
+ let y = ctx.sbox[0][a] + ctx.sbox[1][b];
+ y = y ^ ctx.sbox[2][c];
+ y = y + ctx.sbox[3][d];
+
+ return y;
+ }
+
+ function BlowFish_Encrypt(ctx, left, right){
+ let Xl = left;
+ let Xr = right;
+ let temp;
+
+ for(let i = 0; i < N; ++i){
+ Xl = Xl ^ ctx.pbox[i];
+ Xr = F(ctx, Xl) ^ Xr;
+
+ temp = Xl;
+ Xl = Xr;
+ Xr = temp;
+ }
+
+ temp = Xl;
+ Xl = Xr;
+ Xr = temp;
+
+ Xr = Xr ^ ctx.pbox[N];
+ Xl = Xl ^ ctx.pbox[N + 1];
+
+ return {left: Xl, right: Xr};
+ }
+
+ function BlowFish_Decrypt(ctx, left, right){
+ let Xl = left;
+ let Xr = right;
+ let temp;
+
+ for(let i = N + 1; i > 1; --i){
+ Xl = Xl ^ ctx.pbox[i];
+ Xr = F(ctx, Xl) ^ Xr;
+
+ temp = Xl;
+ Xl = Xr;
+ Xr = temp;
+ }
+
+ temp = Xl;
+ Xl = Xr;
+ Xr = temp;
+
+ Xr = Xr ^ ctx.pbox[1];
+ Xl = Xl ^ ctx.pbox[0];
+
+ return {left: Xl, right: Xr};
+ }
+
+ /**
+ * Initialization ctx's pbox and sbox.
+ *
+ * @param {Object} ctx The object has pbox and sbox.
+ * @param {Array} key An array of 32-bit words.
+ * @param {int} keysize The length of the key.
+ *
+ * @example
+ *
+ * BlowFishInit(BLOWFISH_CTX, key, 128/32);
+ */
+ function BlowFishInit(ctx, key, keysize)
+ {
+ for(let Row = 0; Row < 4; Row++)
+ {
+ ctx.sbox[Row] = [];
+ for(let Col = 0; Col < 256; Col++)
+ {
+ ctx.sbox[Row][Col] = ORIG_S[Row][Col];
+ }
+ }
+
+ let keyIndex = 0;
+ for(let index = 0; index < N + 2; index++)
+ {
+ ctx.pbox[index] = ORIG_P[index] ^ key[keyIndex];
+ keyIndex++;
+ if(keyIndex >= keysize)
+ {
+ keyIndex = 0;
+ }
+ }
+
+ let Data1 = 0;
+ let Data2 = 0;
+ let res = 0;
+ for(let i = 0; i < N + 2; i += 2)
+ {
+ res = BlowFish_Encrypt(ctx, Data1, Data2);
+ Data1 = res.left;
+ Data2 = res.right;
+ ctx.pbox[i] = Data1;
+ ctx.pbox[i + 1] = Data2;
+ }
+
+ for(let i = 0; i < 4; i++)
+ {
+ for(let j = 0; j < 256; j += 2)
+ {
+ res = BlowFish_Encrypt(ctx, Data1, Data2);
+ Data1 = res.left;
+ Data2 = res.right;
+ ctx.sbox[i][j] = Data1;
+ ctx.sbox[i][j + 1] = Data2;
+ }
+ }
+
+ return true;
+ }
+
+ /**
+ * Blowfish block cipher algorithm.
+ */
+ var Blowfish = C_algo.Blowfish = BlockCipher.extend({
+ _doReset: function () {
+ // Skip reset of nRounds has been set before and key did not change
+ if (this._keyPriorReset === this._key) {
+ return;
+ }
+
+ // Shortcuts
+ var key = this._keyPriorReset = this._key;
+ var keyWords = key.words;
+ var keySize = key.sigBytes / 4;
+
+ //Initialization pbox and sbox
+ BlowFishInit(BLOWFISH_CTX, keyWords, keySize);
+ },
+
+ encryptBlock: function (M, offset) {
+ var res = BlowFish_Encrypt(BLOWFISH_CTX, M[offset], M[offset + 1]);
+ M[offset] = res.left;
+ M[offset + 1] = res.right;
+ },
+
+ decryptBlock: function (M, offset) {
+ var res = BlowFish_Decrypt(BLOWFISH_CTX, M[offset], M[offset + 1]);
+ M[offset] = res.left;
+ M[offset + 1] = res.right;
+ },
+
+ blockSize: 64/32,
+
+ keySize: 128/32,
+
+ ivSize: 64/32
+ });
+
+ /**
+ * Shortcut functions to the cipher's object interface.
+ *
+ * @example
+ *
+ * var ciphertext = CryptoJS.Blowfish.encrypt(message, key, cfg);
+ * var plaintext = CryptoJS.Blowfish.decrypt(ciphertext, key, cfg);
+ */
+ C.Blowfish = BlockCipher._createHelper(Blowfish);
+ }());
+
+
+ return CryptoJS;
+
+}));
\ No newline at end of file
diff --git a/node_modules/crypto-js/docs/QuickStartGuide.wiki b/node_modules/crypto-js/docs/QuickStartGuide.wiki
new file mode 100644
index 0000000..2bee35d
--- /dev/null
+++ b/node_modules/crypto-js/docs/QuickStartGuide.wiki
@@ -0,0 +1,470 @@
+<wiki:toc/>
+
+----
+
+= Quick-start Guide =
+
+== Hashers ==
+
+=== The Hasher Algorithms ===
+
+==== MD5 ====
+
+MD5 is a widely used hash function. It's been used in a variety of security applications and is also commonly used to check the integrity of files. Though, MD5 is not collision resistant, and it isn't suitable for applications like SSL certificates or digital signatures that rely on this property.
+
+{{{
+<script src="http://crypto-js.googlecode.com/svn/tags/3.1/build/rollups/md5.js"></script>
+<script>
+ var hash = CryptoJS.MD5("Message");
+</script>
+}}}
+
+==== SHA-1 ====
+
+The SHA hash functions were designed by the National Security Agency (NSA). SHA-1 is the most established of the existing SHA hash functions, and it's used in a variety of security applications and protocols. Though, SHA-1's collision resistance has been weakening as new attacks are discovered or improved.
+
+{{{
+<script src="http://crypto-js.googlecode.com/svn/tags/3.1/build/rollups/sha1.js"></script>
+<script>
+ var hash = CryptoJS.SHA1("Message");
+</script>
+}}}
+
+==== SHA-2 ====
+
+SHA-256 is one of the four variants in the SHA-2 set. It isn't as widely used as SHA-1, though it appears to provide much better security.
+
+{{{
+<script src="http://crypto-js.googlecode.com/svn/tags/3.1/build/rollups/sha256.js"></script>
+<script>
+ var hash = CryptoJS.SHA256("Message");
+</script>
+}}}
+
+SHA-512 is largely identical to SHA-256 but operates on 64-bit words rather than 32.
+
+{{{
+<script src="http://crypto-js.googlecode.com/svn/tags/3.1/build/rollups/sha512.js"></script>
+<script>
+ var hash = CryptoJS.SHA512("Message");
+</script>
+}}}
+
+CryptoJS also supports SHA-224 and SHA-384, which are largely identical but truncated versions of SHA-256 and SHA-512 respectively.
+
+==== SHA-3 ====
+
+SHA-3 is the winner of a five-year competition to select a new cryptographic hash algorithm where 64 competing designs were evaluated.
+
+{{{
+<script src="http://crypto-js.googlecode.com/svn/tags/3.1/build/rollups/sha3.js"></script>
+<script>
+ var hash = CryptoJS.SHA3("Message");
+</script>
+}}}
+
+SHA-3 can be configured to output hash lengths of one of 224, 256, 384, or 512 bits. The default is 512 bits.
+
+{{{
+<script src="http://crypto-js.googlecode.com/svn/tags/3.1/build/rollups/sha3.js"></script>
+<script>
+ var hash = CryptoJS.SHA3("Message", { outputLength: 512 });
+ var hash = CryptoJS.SHA3("Message", { outputLength: 384 });
+ var hash = CryptoJS.SHA3("Message", { outputLength: 256 });
+ var hash = CryptoJS.SHA3("Message", { outputLength: 224 });
+</script>
+}}}
+
+==== RIPEMD-160 ====
+
+{{{
+<script src="http://crypto-js.googlecode.com/svn/tags/3.1/build/rollups/ripemd160.js"></script>
+<script>
+ var hash = CryptoJS.RIPEMD160("Message");
+</script>
+}}}
+
+=== The Hasher Input ===
+
+The hash algorithms accept either strings or instances of CryptoJS.lib.WordArray. A WordArray object represents an array of 32-bit words. When you pass a string, it's automatically converted to a WordArray encoded as UTF-8.
+
+=== The Hasher Output ===
+
+The hash you get back isn't a string yet. It's a WordArray object. When you use a WordArray object in a string context, it's automatically converted to a hex string.
+
+{{{
+<script src="http://crypto-js.googlecode.com/svn/tags/3.1/build/rollups/sha256.js"></script>
+<script>
+ var hash = CryptoJS.SHA256("Message");
+
+ alert(typeof hash); // object
+
+ alert(hash); // 2f77668a9dfbf8d5848b9eeb4a7145ca94c6ed9236e4a773f6dcafa5132b2f91
+</script>
+}}}
+
+You can convert a WordArray object to other formats by explicitly calling the toString method and passing an encoder.
+
+{{{
+<script src="http://crypto-js.googlecode.com/svn/tags/3.1/build/rollups/sha256.js"></script>
+<script src="http://crypto-js.googlecode.com/svn/tags/3.1/build/components/enc-base64-min.js"></script>
+<script>
+ var hash = CryptoJS.SHA256("Message");
+
+ alert(hash.toString(CryptoJS.enc.Base64)); // L3dmip37+NWEi57rSnFFypTG7ZI25Kdz9tyvpRMrL5E=
+
+ alert(hash.toString(CryptoJS.enc.Latin1)); // /wf��ûøÕ���ëJqEÊ�Æí�6ä§söܯ¥+/�
+
+ alert(hash.toString(CryptoJS.enc.Hex)); // 2f77668a9dfbf8d5848b9eeb4a7145ca94c6ed9236e4a773f6dcafa5132b2f91
+</script>
+}}}
+
+=== Progressive Hashing ===
+
+{{{
+<script src="http://crypto-js.googlecode.com/svn/tags/3.1/build/rollups/sha256.js"></script>
+<script>
+ var sha256 = CryptoJS.algo.SHA256.create();
+
+ sha256.update("Message Part 1");
+ sha256.update("Message Part 2");
+ sha256.update("Message Part 3");
+
+ var hash = sha256.finalize();
+</script>
+}}}
+
+== HMAC ==
+
+Keyed-hash message authentication codes (HMAC) is a mechanism for message authentication using cryptographic hash functions.
+
+HMAC can be used in combination with any iterated cryptographic hash function.
+
+{{{
+<script src="http://crypto-js.googlecode.com/svn/tags/3.1/build/rollups/hmac-md5.js"></script>
+<script src="http://crypto-js.googlecode.com/svn/tags/3.1/build/rollups/hmac-sha1.js"></script>
+<script src="http://crypto-js.googlecode.com/svn/tags/3.1/build/rollups/hmac-sha256.js"></script>
+<script src="http://crypto-js.googlecode.com/svn/tags/3.1/build/rollups/hmac-sha512.js"></script>
+<script>
+ var hash = CryptoJS.HmacMD5("Message", "Secret Passphrase");
+ var hash = CryptoJS.HmacSHA1("Message", "Secret Passphrase");
+ var hash = CryptoJS.HmacSHA256("Message", "Secret Passphrase");
+ var hash = CryptoJS.HmacSHA512("Message", "Secret Passphrase");
+</script>
+}}}
+
+=== Progressive HMAC Hashing ===
+
+{{{
+<script src="http://crypto-js.googlecode.com/svn/tags/3.1/build/rollups/hmac-sha256.js"></script>
+<script>
+ var hmac = CryptoJS.algo.HMAC.create(CryptoJS.algo.SHA256, "Secret Passphrase");
+
+ hmac.update("Message Part 1");
+ hmac.update("Message Part 2");
+ hmac.update("Message Part 3");
+
+ var hash = hmac.finalize();
+</script>
+}}}
+
+== PBKDF2 ==
+
+PBKDF2 is a password-based key derivation function. In many applications of cryptography, user security is ultimately dependent on a password, and because a password usually can't be used directly as a cryptographic key, some processing is required.
+
+A salt provides a large set of keys for any given password, and an iteration count increases the cost of producing keys from a password, thereby also increasing the difficulty of attack.
+
+{{{
+<script src="http://crypto-js.googlecode.com/svn/tags/3.1/build/rollups/pbkdf2.js"></script>
+<script>
+ var salt = CryptoJS.lib.WordArray.random(128/8);
+
+ var key128Bits = CryptoJS.PBKDF2("Secret Passphrase", salt, { keySize: 128/32 });
+ var key256Bits = CryptoJS.PBKDF2("Secret Passphrase", salt, { keySize: 256/32 });
+ var key512Bits = CryptoJS.PBKDF2("Secret Passphrase", salt, { keySize: 512/32 });
+
+ var key512Bits1000Iterations = CryptoJS.PBKDF2("Secret Passphrase", salt, { keySize: 512/32, iterations: 1000 });
+</script>
+}}}
+
+== Ciphers ==
+
+=== The Cipher Algorithms ===
+
+==== AES ====
+
+The Advanced Encryption Standard (AES) is a U.S. Federal Information Processing Standard (FIPS). It was selected after a 5-year process where 15 competing designs were evaluated.
+
+{{{
+<script src="http://crypto-js.googlecode.com/svn/tags/3.1/build/rollups/aes.js"></script>
+<script>
+ var encrypted = CryptoJS.AES.encrypt("Message", "Secret Passphrase");
+
+ var decrypted = CryptoJS.AES.decrypt(encrypted, "Secret Passphrase");
+</script>
+}}}
+
+CryptoJS supports AES-128, AES-192, and AES-256. It will pick the variant by the size of the key you pass in. If you use a passphrase, then it will generate a 256-bit key.
+
+==== DES, Triple DES ====
+
+DES is a previously dominant algorithm for encryption, and was published as an official Federal Information Processing Standard (FIPS). DES is now considered to be insecure due to the small key size.
+
+{{{
+<script src="http://crypto-js.googlecode.com/svn/tags/3.1/build/rollups/tripledes.js"></script>
+<script>
+ var encrypted = CryptoJS.DES.encrypt("Message", "Secret Passphrase");
+
+ var decrypted = CryptoJS.DES.decrypt(encrypted, "Secret Passphrase");
+</script>
+}}}
+
+Triple DES applies DES three times to each block to increase the key size. The algorithm is believed to be secure in this form.
+
+{{{
+<script src="http://crypto-js.googlecode.com/svn/tags/3.1/build/rollups/tripledes.js"></script>
+<script>
+ var encrypted = CryptoJS.TripleDES.encrypt("Message", "Secret Passphrase");
+
+ var decrypted = CryptoJS.TripleDES.decrypt(encrypted, "Secret Passphrase");
+</script>
+}}}
+
+==== Rabbit ====
+
+Rabbit is a high-performance stream cipher and a finalist in the eSTREAM Portfolio. It is one of the four designs selected after a 3 1/2-year process where 22 designs were evaluated.
+
+{{{
+<script src="http://crypto-js.googlecode.com/svn/tags/3.1/build/rollups/rabbit.js"></script>
+<script>
+ var encrypted = CryptoJS.Rabbit.encrypt("Message", "Secret Passphrase");
+
+ var decrypted = CryptoJS.Rabbit.decrypt(encrypted, "Secret Passphrase");
+</script>
+}}}
+
+==== RC4, RC4Drop ====
+
+RC4 is a widely-used stream cipher. It's used in popular protocols such as SSL and WEP. Although remarkable for its simplicity and speed, the algorithm's history doesn't inspire confidence in its security.
+
+{{{
+<script src="http://crypto-js.googlecode.com/svn/tags/3.1/build/rollups/rc4.js"></script>
+<script>
+ var encrypted = CryptoJS.RC4.encrypt("Message", "Secret Passphrase");
+
+ var decrypted = CryptoJS.RC4.decrypt(encrypted, "Secret Passphrase");
+</script>
+}}}
+
+It was discovered that the first few bytes of keystream are strongly non-random and leak information about the key. We can defend against this attack by discarding the initial portion of the keystream. This modified algorithm is traditionally called RC4-drop.
+
+By default, 192 words (768 bytes) are dropped, but you can configure the algorithm to drop any number of words.
+
+{{{
+<script src="http://crypto-js.googlecode.com/svn/tags/3.1/build/rollups/rc4.js"></script>
+<script>
+ var encrypted = CryptoJS.RC4Drop.encrypt("Message", "Secret Passphrase");
+
+ var encrypted = CryptoJS.RC4Drop.encrypt("Message", "Secret Passphrase", { drop: 3072/4 });
+
+ var decrypted = CryptoJS.RC4Drop.decrypt(encrypted, "Secret Passphrase", { drop: 3072/4 });
+</script>
+}}}
+
+=== Custom Key and IV ===
+
+{{{
+<script src="http://crypto-js.googlecode.com/svn/tags/3.1/build/rollups/aes.js"></script>
+<script>
+ var key = CryptoJS.enc.Hex.parse('000102030405060708090a0b0c0d0e0f');
+ var iv = CryptoJS.enc.Hex.parse('101112131415161718191a1b1c1d1e1f');
+
+ var encrypted = CryptoJS.AES.encrypt("Message", key, { iv: iv });
+</script>
+}}}
+
+=== Block Modes and Padding ===
+
+{{{
+<script src="http://crypto-js.googlecode.com/svn/tags/3.1/build/rollups/aes.js"></script>
+<script src="http://crypto-js.googlecode.com/svn/tags/3.1/build/components/mode-cfb-min.js"></script>
+<script src="http://crypto-js.googlecode.com/svn/tags/3.1/build/components/pad-ansix923-min.js"></script>
+<script>
+ var encrypted = CryptoJS.AES.encrypt("Message", "Secret Passphrase", { mode: CryptoJS.mode.CFB, padding: CryptoJS.pad.AnsiX923 });
+</script>
+}}}
+
+CryptoJS supports the following modes:
+
+ * CBC (the default)
+ * CFB
+ * CTR
+ * OFB
+ * ECB
+
+And CryptoJS supports the following padding schemes:
+
+ * Pkcs7 (the default)
+ * Iso97971
+ * AnsiX923
+ * Iso10126
+ * ZeroPadding
+ * NoPadding
+
+=== The Cipher Input ===
+
+For the plaintext message, the cipher algorithms accept either strings or instances of CryptoJS.lib.WordArray.
+
+For the key, when you pass a string, it's treated as a passphrase and used to derive an actual key and IV. Or you can pass a WordArray that represents the actual key. If you pass the actual key, you must also pass the actual IV.
+
+For the ciphertext, the cipher algorithms accept either strings or instances of CryptoJS.lib.CipherParams. A CipherParams object represents a collection of parameters such as the IV, a salt, and the raw ciphertext itself. When you pass a string, it's automatically converted to a CipherParams object according to a configurable format strategy.
+
+=== The Cipher Output ===
+
+The plaintext you get back after decryption is a WordArray object. See Hashers' Output for more detail.
+
+The ciphertext you get back after encryption isn't a string yet. It's a CipherParams object. A CipherParams object gives you access to all the parameters used during encryption. When you use a CipherParams object in a string context, it's automatically converted to a string according to a format strategy. The default is an OpenSSL-compatible format.
+
+{{{
+<script src="http://crypto-js.googlecode.com/svn/tags/3.1/build/rollups/aes.js"></script>
+<script>
+ var encrypted = CryptoJS.AES.encrypt("Message", "Secret Passphrase");
+
+ alert(encrypted.key); // 74eb593087a982e2a6f5dded54ecd96d1fd0f3d44a58728cdcd40c55227522223
+ alert(encrypted.iv); // 7781157e2629b094f0e3dd48c4d786115
+ alert(encrypted.salt); // 7a25f9132ec6a8b34
+ alert(encrypted.ciphertext); // 73e54154a15d1beeb509d9e12f1e462a0
+
+ alert(encrypted); // U2FsdGVkX1+iX5Ey7GqLND5UFUoV0b7rUJ2eEvHkYqA=
+</script>
+}}}
+
+You can define your own formats in order to be compatible with other crypto implementations. A format is an object with two methods—stringify and parse—that converts between CipherParams objects and ciphertext strings.
+
+Here's how you might write a JSON formatter:
+
+{{{
+<script src="http://crypto-js.googlecode.com/svn/tags/3.1/build/rollups/aes.js"></script>
+<script>
+ var JsonFormatter = {
+ stringify: function (cipherParams) {
+ // create json object with ciphertext
+ var jsonObj = {
+ ct: cipherParams.ciphertext.toString(CryptoJS.enc.Base64)
+ };
+
+ // optionally add iv and salt
+ if (cipherParams.iv) {
+ jsonObj.iv = cipherParams.iv.toString();
+ }
+ if (cipherParams.salt) {
+ jsonObj.s = cipherParams.salt.toString();
+ }
+
+ // stringify json object
+ return JSON.stringify(jsonObj);
+ },
+
+ parse: function (jsonStr) {
+ // parse json string
+ var jsonObj = JSON.parse(jsonStr);
+
+ // extract ciphertext from json object, and create cipher params object
+ var cipherParams = CryptoJS.lib.CipherParams.create({
+ ciphertext: CryptoJS.enc.Base64.parse(jsonObj.ct)
+ });
+
+ // optionally extract iv and salt
+ if (jsonObj.iv) {
+ cipherParams.iv = CryptoJS.enc.Hex.parse(jsonObj.iv)
+ }
+ if (jsonObj.s) {
+ cipherParams.salt = CryptoJS.enc.Hex.parse(jsonObj.s)
+ }
+
+ return cipherParams;
+ }
+ };
+
+ var encrypted = CryptoJS.AES.encrypt("Message", "Secret Passphrase", { format: JsonFormatter });
+
+ alert(encrypted); // {"ct":"tZ4MsEnfbcDOwqau68aOrQ==","iv":"8a8c8fd8fe33743d3638737ea4a00698","s":"ba06373c8f57179c"}
+
+ var decrypted = CryptoJS.AES.decrypt(encrypted, "Secret Passphrase", { format: JsonFormatter });
+
+ alert(decrypted.toString(CryptoJS.enc.Utf8)); // Message
+</script>
+}}}
+
+=== Progressive Ciphering ===
+
+{{{
+<script src="http://crypto-js.googlecode.com/svn/tags/3.1/build/rollups/aes.js"></script>
+<script>
+ var key = CryptoJS.enc.Hex.parse('000102030405060708090a0b0c0d0e0f');
+ var iv = CryptoJS.enc.Hex.parse('101112131415161718191a1b1c1d1e1f');
+
+ var aesEncryptor = CryptoJS.algo.AES.createEncryptor(key, { iv: iv });
+
+ var ciphertextPart1 = aesEncryptor.process("Message Part 1");
+ var ciphertextPart2 = aesEncryptor.process("Message Part 2");
+ var ciphertextPart3 = aesEncryptor.process("Message Part 3");
+ var ciphertextPart4 = aesEncryptor.finalize();
+
+ var aesDecryptor = CryptoJS.algo.AES.createDecryptor(key, { iv: iv });
+
+ var plaintextPart1 = aesDecryptor.process(ciphertextPart1);
+ var plaintextPart2 = aesDecryptor.process(ciphertextPart2);
+ var plaintextPart3 = aesDecryptor.process(ciphertextPart3);
+ var plaintextPart4 = aesDecryptor.process(ciphertextPart4);
+ var plaintextPart5 = aesDecryptor.finalize();
+</script>
+}}}
+
+=== Interoperability ===
+
+==== With OpenSSL ====
+
+Encrypt with OpenSSL:
+
+{{{
+openssl enc -aes-256-cbc -in infile -out outfile -pass pass:"Secret Passphrase" -e -base64
+}}}
+
+Decrypt with CryptoJS:
+
+{{{
+<script src="http://crypto-js.googlecode.com/svn/tags/3.1/build/rollups/aes.js"></script>
+<script>
+ var decrypted = CryptoJS.AES.decrypt(openSSLEncrypted, "Secret Passphrase");
+</script>
+}}}
+
+== Encoders ==
+
+CryptoJS can convert from encoding formats such as Base64, Latin1 or Hex to WordArray objects and vica versa.
+
+{{{
+<script src="http://crypto-js.googlecode.com/svn/tags/3.1/build/components/core-min.js"></script>
+<script src="http://crypto-js.googlecode.com/svn/tags/3.1/build/components/enc-utf16-min.js"></script>
+<script src="http://crypto-js.googlecode.com/svn/tags/3.1/build/components/enc-base64-min.js"></script>
+<script>
+ var words = CryptoJS.enc.Base64.parse('SGVsbG8sIFdvcmxkIQ==');
+ var base64 = CryptoJS.enc.Base64.stringify(words);
+
+ var words = CryptoJS.enc.Latin1.parse('Hello, World!');
+ var latin1 = CryptoJS.enc.Latin1.stringify(words);
+
+ var words = CryptoJS.enc.Hex.parse('48656c6c6f2c20576f726c6421');
+ var hex = CryptoJS.enc.Hex.stringify(words);
+
+ var words = CryptoJS.enc.Utf8.parse('𤭢');
+ var utf8 = CryptoJS.enc.Utf8.stringify(words);
+
+ var words = CryptoJS.enc.Utf16.parse('Hello, World!');
+ var utf16 = CryptoJS.enc.Utf16.stringify(words);
+
+ var words = CryptoJS.enc.Utf16LE.parse('Hello, World!');
+ var utf16 = CryptoJS.enc.Utf16LE.stringify(words);
+</script>
+}}}
\ No newline at end of file
diff --git a/node_modules/crypto-js/enc-base64.js b/node_modules/crypto-js/enc-base64.js
new file mode 100644
index 0000000..0ffcd53
--- /dev/null
+++ b/node_modules/crypto-js/enc-base64.js
@@ -0,0 +1,136 @@
+;(function (root, factory) {
+ if (typeof exports === "object") {
+ // CommonJS
+ module.exports = exports = factory(require("./core"));
+ }
+ else if (typeof define === "function" && define.amd) {
+ // AMD
+ define(["./core"], factory);
+ }
+ else {
+ // Global (browser)
+ factory(root.CryptoJS);
+ }
+}(this, function (CryptoJS) {
+
+ (function () {
+ // Shortcuts
+ var C = CryptoJS;
+ var C_lib = C.lib;
+ var WordArray = C_lib.WordArray;
+ var C_enc = C.enc;
+
+ /**
+ * Base64 encoding strategy.
+ */
+ var Base64 = C_enc.Base64 = {
+ /**
+ * Converts a word array to a Base64 string.
+ *
+ * @param {WordArray} wordArray The word array.
+ *
+ * @return {string} The Base64 string.
+ *
+ * @static
+ *
+ * @example
+ *
+ * var base64String = CryptoJS.enc.Base64.stringify(wordArray);
+ */
+ stringify: function (wordArray) {
+ // Shortcuts
+ var words = wordArray.words;
+ var sigBytes = wordArray.sigBytes;
+ var map = this._map;
+
+ // Clamp excess bits
+ wordArray.clamp();
+
+ // Convert
+ var base64Chars = [];
+ for (var i = 0; i < sigBytes; i += 3) {
+ var byte1 = (words[i >>> 2] >>> (24 - (i % 4) * 8)) & 0xff;
+ var byte2 = (words[(i + 1) >>> 2] >>> (24 - ((i + 1) % 4) * 8)) & 0xff;
+ var byte3 = (words[(i + 2) >>> 2] >>> (24 - ((i + 2) % 4) * 8)) & 0xff;
+
+ var triplet = (byte1 << 16) | (byte2 << 8) | byte3;
+
+ for (var j = 0; (j < 4) && (i + j * 0.75 < sigBytes); j++) {
+ base64Chars.push(map.charAt((triplet >>> (6 * (3 - j))) & 0x3f));
+ }
+ }
+
+ // Add padding
+ var paddingChar = map.charAt(64);
+ if (paddingChar) {
+ while (base64Chars.length % 4) {
+ base64Chars.push(paddingChar);
+ }
+ }
+
+ return base64Chars.join('');
+ },
+
+ /**
+ * Converts a Base64 string to a word array.
+ *
+ * @param {string} base64Str The Base64 string.
+ *
+ * @return {WordArray} The word array.
+ *
+ * @static
+ *
+ * @example
+ *
+ * var wordArray = CryptoJS.enc.Base64.parse(base64String);
+ */
+ parse: function (base64Str) {
+ // Shortcuts
+ var base64StrLength = base64Str.length;
+ var map = this._map;
+ var reverseMap = this._reverseMap;
+
+ if (!reverseMap) {
+ reverseMap = this._reverseMap = [];
+ for (var j = 0; j < map.length; j++) {
+ reverseMap[map.charCodeAt(j)] = j;
+ }
+ }
+
+ // Ignore padding
+ var paddingChar = map.charAt(64);
+ if (paddingChar) {
+ var paddingIndex = base64Str.indexOf(paddingChar);
+ if (paddingIndex !== -1) {
+ base64StrLength = paddingIndex;
+ }
+ }
+
+ // Convert
+ return parseLoop(base64Str, base64StrLength, reverseMap);
+
+ },
+
+ _map: 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/='
+ };
+
+ function parseLoop(base64Str, base64StrLength, reverseMap) {
+ var words = [];
+ var nBytes = 0;
+ for (var i = 0; i < base64StrLength; i++) {
+ if (i % 4) {
+ var bits1 = reverseMap[base64Str.charCodeAt(i - 1)] << ((i % 4) * 2);
+ var bits2 = reverseMap[base64Str.charCodeAt(i)] >>> (6 - (i % 4) * 2);
+ var bitsCombined = bits1 | bits2;
+ words[nBytes >>> 2] |= bitsCombined << (24 - (nBytes % 4) * 8);
+ nBytes++;
+ }
+ }
+ return WordArray.create(words, nBytes);
+ }
+ }());
+
+
+ return CryptoJS.enc.Base64;
+
+}));
\ No newline at end of file
diff --git a/node_modules/crypto-js/enc-base64url.js b/node_modules/crypto-js/enc-base64url.js
new file mode 100644
index 0000000..af682e3
--- /dev/null
+++ b/node_modules/crypto-js/enc-base64url.js
@@ -0,0 +1,148 @@
+;(function (root, factory) {
+ if (typeof exports === "object") {
+ // CommonJS
+ module.exports = exports = factory(require("./core"));
+ }
+ else if (typeof define === "function" && define.amd) {
+ // AMD
+ define(["./core"], factory);
+ }
+ else {
+ // Global (browser)
+ factory(root.CryptoJS);
+ }
+}(this, function (CryptoJS) {
+
+ (function () {
+ // Shortcuts
+ var C = CryptoJS;
+ var C_lib = C.lib;
+ var WordArray = C_lib.WordArray;
+ var C_enc = C.enc;
+
+ /**
+ * Base64url encoding strategy.
+ */
+ var Base64url = C_enc.Base64url = {
+ /**
+ * Converts a word array to a Base64url string.
+ *
+ * @param {WordArray} wordArray The word array.
+ *
+ * @param {boolean} urlSafe Whether to use url safe
+ *
+ * @return {string} The Base64url string.
+ *
+ * @static
+ *
+ * @example
+ *
+ * var base64String = CryptoJS.enc.Base64url.stringify(wordArray);
+ */
+ stringify: function (wordArray, urlSafe) {
+ if (urlSafe === undefined) {
+ urlSafe = true
+ }
+ // Shortcuts
+ var words = wordArray.words;
+ var sigBytes = wordArray.sigBytes;
+ var map = urlSafe ? this._safe_map : this._map;
+
+ // Clamp excess bits
+ wordArray.clamp();
+
+ // Convert
+ var base64Chars = [];
+ for (var i = 0; i < sigBytes; i += 3) {
+ var byte1 = (words[i >>> 2] >>> (24 - (i % 4) * 8)) & 0xff;
+ var byte2 = (words[(i + 1) >>> 2] >>> (24 - ((i + 1) % 4) * 8)) & 0xff;
+ var byte3 = (words[(i + 2) >>> 2] >>> (24 - ((i + 2) % 4) * 8)) & 0xff;
+
+ var triplet = (byte1 << 16) | (byte2 << 8) | byte3;
+
+ for (var j = 0; (j < 4) && (i + j * 0.75 < sigBytes); j++) {
+ base64Chars.push(map.charAt((triplet >>> (6 * (3 - j))) & 0x3f));
+ }
+ }
+
+ // Add padding
+ var paddingChar = map.charAt(64);
+ if (paddingChar) {
+ while (base64Chars.length % 4) {
+ base64Chars.push(paddingChar);
+ }
+ }
+
+ return base64Chars.join('');
+ },
+
+ /**
+ * Converts a Base64url string to a word array.
+ *
+ * @param {string} base64Str The Base64url string.
+ *
+ * @param {boolean} urlSafe Whether to use url safe
+ *
+ * @return {WordArray} The word array.
+ *
+ * @static
+ *
+ * @example
+ *
+ * var wordArray = CryptoJS.enc.Base64url.parse(base64String);
+ */
+ parse: function (base64Str, urlSafe) {
+ if (urlSafe === undefined) {
+ urlSafe = true
+ }
+
+ // Shortcuts
+ var base64StrLength = base64Str.length;
+ var map = urlSafe ? this._safe_map : this._map;
+ var reverseMap = this._reverseMap;
+
+ if (!reverseMap) {
+ reverseMap = this._reverseMap = [];
+ for (var j = 0; j < map.length; j++) {
+ reverseMap[map.charCodeAt(j)] = j;
+ }
+ }
+
+ // Ignore padding
+ var paddingChar = map.charAt(64);
+ if (paddingChar) {
+ var paddingIndex = base64Str.indexOf(paddingChar);
+ if (paddingIndex !== -1) {
+ base64StrLength = paddingIndex;
+ }
+ }
+
+ // Convert
+ return parseLoop(base64Str, base64StrLength, reverseMap);
+
+ },
+
+ _map: 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=',
+ _safe_map: 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_',
+ };
+
+ function parseLoop(base64Str, base64StrLength, reverseMap) {
+ var words = [];
+ var nBytes = 0;
+ for (var i = 0; i < base64StrLength; i++) {
+ if (i % 4) {
+ var bits1 = reverseMap[base64Str.charCodeAt(i - 1)] << ((i % 4) * 2);
+ var bits2 = reverseMap[base64Str.charCodeAt(i)] >>> (6 - (i % 4) * 2);
+ var bitsCombined = bits1 | bits2;
+ words[nBytes >>> 2] |= bitsCombined << (24 - (nBytes % 4) * 8);
+ nBytes++;
+ }
+ }
+ return WordArray.create(words, nBytes);
+ }
+ }());
+
+
+ return CryptoJS.enc.Base64url;
+
+}));
\ No newline at end of file
diff --git a/node_modules/crypto-js/enc-hex.js b/node_modules/crypto-js/enc-hex.js
new file mode 100644
index 0000000..88161ff
--- /dev/null
+++ b/node_modules/crypto-js/enc-hex.js
@@ -0,0 +1,18 @@
+;(function (root, factory) {
+ if (typeof exports === "object") {
+ // CommonJS
+ module.exports = exports = factory(require("./core"));
+ }
+ else if (typeof define === "function" && define.amd) {
+ // AMD
+ define(["./core"], factory);
+ }
+ else {
+ // Global (browser)
+ factory(root.CryptoJS);
+ }
+}(this, function (CryptoJS) {
+
+ return CryptoJS.enc.Hex;
+
+}));
\ No newline at end of file
diff --git a/node_modules/crypto-js/enc-latin1.js b/node_modules/crypto-js/enc-latin1.js
new file mode 100644
index 0000000..ade56dc
--- /dev/null
+++ b/node_modules/crypto-js/enc-latin1.js
@@ -0,0 +1,18 @@
+;(function (root, factory) {
+ if (typeof exports === "object") {
+ // CommonJS
+ module.exports = exports = factory(require("./core"));
+ }
+ else if (typeof define === "function" && define.amd) {
+ // AMD
+ define(["./core"], factory);
+ }
+ else {
+ // Global (browser)
+ factory(root.CryptoJS);
+ }
+}(this, function (CryptoJS) {
+
+ return CryptoJS.enc.Latin1;
+
+}));
\ No newline at end of file
diff --git a/node_modules/crypto-js/enc-utf16.js b/node_modules/crypto-js/enc-utf16.js
new file mode 100644
index 0000000..7de6245
--- /dev/null
+++ b/node_modules/crypto-js/enc-utf16.js
@@ -0,0 +1,149 @@
+;(function (root, factory) {
+ if (typeof exports === "object") {
+ // CommonJS
+ module.exports = exports = factory(require("./core"));
+ }
+ else if (typeof define === "function" && define.amd) {
+ // AMD
+ define(["./core"], factory);
+ }
+ else {
+ // Global (browser)
+ factory(root.CryptoJS);
+ }
+}(this, function (CryptoJS) {
+
+ (function () {
+ // Shortcuts
+ var C = CryptoJS;
+ var C_lib = C.lib;
+ var WordArray = C_lib.WordArray;
+ var C_enc = C.enc;
+
+ /**
+ * UTF-16 BE encoding strategy.
+ */
+ var Utf16BE = C_enc.Utf16 = C_enc.Utf16BE = {
+ /**
+ * Converts a word array to a UTF-16 BE string.
+ *
+ * @param {WordArray} wordArray The word array.
+ *
+ * @return {string} The UTF-16 BE string.
+ *
+ * @static
+ *
+ * @example
+ *
+ * var utf16String = CryptoJS.enc.Utf16.stringify(wordArray);
+ */
+ stringify: function (wordArray) {
+ // Shortcuts
+ var words = wordArray.words;
+ var sigBytes = wordArray.sigBytes;
+
+ // Convert
+ var utf16Chars = [];
+ for (var i = 0; i < sigBytes; i += 2) {
+ var codePoint = (words[i >>> 2] >>> (16 - (i % 4) * 8)) & 0xffff;
+ utf16Chars.push(String.fromCharCode(codePoint));
+ }
+
+ return utf16Chars.join('');
+ },
+
+ /**
+ * Converts a UTF-16 BE string to a word array.
+ *
+ * @param {string} utf16Str The UTF-16 BE string.
+ *
+ * @return {WordArray} The word array.
+ *
+ * @static
+ *
+ * @example
+ *
+ * var wordArray = CryptoJS.enc.Utf16.parse(utf16String);
+ */
+ parse: function (utf16Str) {
+ // Shortcut
+ var utf16StrLength = utf16Str.length;
+
+ // Convert
+ var words = [];
+ for (var i = 0; i < utf16StrLength; i++) {
+ words[i >>> 1] |= utf16Str.charCodeAt(i) << (16 - (i % 2) * 16);
+ }
+
+ return WordArray.create(words, utf16StrLength * 2);
+ }
+ };
+
+ /**
+ * UTF-16 LE encoding strategy.
+ */
+ C_enc.Utf16LE = {
+ /**
+ * Converts a word array to a UTF-16 LE string.
+ *
+ * @param {WordArray} wordArray The word array.
+ *
+ * @return {string} The UTF-16 LE string.
+ *
+ * @static
+ *
+ * @example
+ *
+ * var utf16Str = CryptoJS.enc.Utf16LE.stringify(wordArray);
+ */
+ stringify: function (wordArray) {
+ // Shortcuts
+ var words = wordArray.words;
+ var sigBytes = wordArray.sigBytes;
+
+ // Convert
+ var utf16Chars = [];
+ for (var i = 0; i < sigBytes; i += 2) {
+ var codePoint = swapEndian((words[i >>> 2] >>> (16 - (i % 4) * 8)) & 0xffff);
+ utf16Chars.push(String.fromCharCode(codePoint));
+ }
+
+ return utf16Chars.join('');
+ },
+
+ /**
+ * Converts a UTF-16 LE string to a word array.
+ *
+ * @param {string} utf16Str The UTF-16 LE string.
+ *
+ * @return {WordArray} The word array.
+ *
+ * @static
+ *
+ * @example
+ *
+ * var wordArray = CryptoJS.enc.Utf16LE.parse(utf16Str);
+ */
+ parse: function (utf16Str) {
+ // Shortcut
+ var utf16StrLength = utf16Str.length;
+
+ // Convert
+ var words = [];
+ for (var i = 0; i < utf16StrLength; i++) {
+ words[i >>> 1] |= swapEndian(utf16Str.charCodeAt(i) << (16 - (i % 2) * 16));
+ }
+
+ return WordArray.create(words, utf16StrLength * 2);
+ }
+ };
+
+ function swapEndian(word) {
+ return ((word << 8) & 0xff00ff00) | ((word >>> 8) & 0x00ff00ff);
+ }
+ }());
+
+
+ return CryptoJS.enc.Utf16;
+
+}));
\ No newline at end of file
diff --git a/node_modules/crypto-js/enc-utf8.js b/node_modules/crypto-js/enc-utf8.js
new file mode 100644
index 0000000..e7a251d
--- /dev/null
+++ b/node_modules/crypto-js/enc-utf8.js
@@ -0,0 +1,18 @@
+;(function (root, factory) {
+ if (typeof exports === "object") {
+ // CommonJS
+ module.exports = exports = factory(require("./core"));
+ }
+ else if (typeof define === "function" && define.amd) {
+ // AMD
+ define(["./core"], factory);
+ }
+ else {
+ // Global (browser)
+ factory(root.CryptoJS);
+ }
+}(this, function (CryptoJS) {
+
+ return CryptoJS.enc.Utf8;
+
+}));
\ No newline at end of file
diff --git a/node_modules/crypto-js/evpkdf.js b/node_modules/crypto-js/evpkdf.js
new file mode 100644
index 0000000..578974a
--- /dev/null
+++ b/node_modules/crypto-js/evpkdf.js
@@ -0,0 +1,134 @@
+;(function (root, factory, undef) {
+ if (typeof exports === "object") {
+ // CommonJS
+ module.exports = exports = factory(require("./core"), require("./sha1"), require("./hmac"));
+ }
+ else if (typeof define === "function" && define.amd) {
+ // AMD
+ define(["./core", "./sha1", "./hmac"], factory);
+ }
+ else {
+ // Global (browser)
+ factory(root.CryptoJS);
+ }
+}(this, function (CryptoJS) {
+
+ (function () {
+ // Shortcuts
+ var C = CryptoJS;
+ var C_lib = C.lib;
+ var Base = C_lib.Base;
+ var WordArray = C_lib.WordArray;
+ var C_algo = C.algo;
+ var MD5 = C_algo.MD5;
+
+ /**
+ * This key derivation function is meant to conform with EVP_BytesToKey.
+ * www.openssl.org/docs/crypto/EVP_BytesToKey.html
+ */
+ var EvpKDF = C_algo.EvpKDF = Base.extend({
+ /**
+ * Configuration options.
+ *
+ * @property {number} keySize The key size in words to generate. Default: 4 (128 bits)
+ * @property {Hasher} hasher The hash algorithm to use. Default: MD5
+ * @property {number} iterations The number of iterations to perform. Default: 1
+ */
+ cfg: Base.extend({
+ keySize: 128/32,
+ hasher: MD5,
+ iterations: 1
+ }),
+
+ /**
+ * Initializes a newly created key derivation function.
+ *
+ * @param {Object} cfg (Optional) The configuration options to use for the derivation.
+ *
+ * @example
+ *
+ * var kdf = CryptoJS.algo.EvpKDF.create();
+ * var kdf = CryptoJS.algo.EvpKDF.create({ keySize: 8 });
+ * var kdf = CryptoJS.algo.EvpKDF.create({ keySize: 8, iterations: 1000 });
+ */
+ init: function (cfg) {
+ this.cfg = this.cfg.extend(cfg);
+ },
+
+ /**
+ * Derives a key from a password.
+ *
+ * @param {WordArray|string} password The password.
+ * @param {WordArray|string} salt A salt.
+ *
+ * @return {WordArray} The derived key.
+ *
+ * @example
+ *
+ * var key = kdf.compute(password, salt);
+ */
+ compute: function (password, salt) {
+ var block;
+
+ // Shortcut
+ var cfg = this.cfg;
+
+ // Init hasher
+ var hasher = cfg.hasher.create();
+
+ // Initial values
+ var derivedKey = WordArray.create();
+
+ // Shortcuts
+ var derivedKeyWords = derivedKey.words;
+ var keySize = cfg.keySize;
+ var iterations = cfg.iterations;
+
+ // Generate key
+ while (derivedKeyWords.length < keySize) {
+ if (block) {
+ hasher.update(block);
+ }
+ block = hasher.update(password).finalize(salt);
+ hasher.reset();
+
+ // Iterations
+ for (var i = 1; i < iterations; i++) {
+ block = hasher.finalize(block);
+ hasher.reset();
+ }
+
+ derivedKey.concat(block);
+ }
+ derivedKey.sigBytes = keySize * 4;
+
+ return derivedKey;
+ }
+ });
+
+ /**
+ * Derives a key from a password.
+ *
+ * @param {WordArray|string} password The password.
+ * @param {WordArray|string} salt A salt.
+ * @param {Object} cfg (Optional) The configuration options to use for this computation.
+ *
+ * @return {WordArray} The derived key.
+ *
+ * @static
+ *
+ * @example
+ *
+ * var key = CryptoJS.EvpKDF(password, salt);
+ * var key = CryptoJS.EvpKDF(password, salt, { keySize: 8 });
+ * var key = CryptoJS.EvpKDF(password, salt, { keySize: 8, iterations: 1000 });
+ */
+ C.EvpKDF = function (password, salt, cfg) {
+ return EvpKDF.create(cfg).compute(password, salt);
+ };
+ }());
+
+
+ return CryptoJS.EvpKDF;
+
+}));
\ No newline at end of file
diff --git a/node_modules/crypto-js/format-hex.js b/node_modules/crypto-js/format-hex.js
new file mode 100644
index 0000000..2e9a861
--- /dev/null
+++ b/node_modules/crypto-js/format-hex.js
@@ -0,0 +1,66 @@
+;(function (root, factory, undef) {
+ if (typeof exports === "object") {
+ // CommonJS
+ module.exports = exports = factory(require("./core"), require("./cipher-core"));
+ }
+ else if (typeof define === "function" && define.amd) {
+ // AMD
+ define(["./core", "./cipher-core"], factory);
+ }
+ else {
+ // Global (browser)
+ factory(root.CryptoJS);
+ }
+}(this, function (CryptoJS) {
+
+ (function (undefined) {
+ // Shortcuts
+ var C = CryptoJS;
+ var C_lib = C.lib;
+ var CipherParams = C_lib.CipherParams;
+ var C_enc = C.enc;
+ var Hex = C_enc.Hex;
+ var C_format = C.format;
+
+ var HexFormatter = C_format.Hex = {
+ /**
+ * Converts the ciphertext of a cipher params object to a hexadecimally encoded string.
+ *
+ * @param {CipherParams} cipherParams The cipher params object.
+ *
+ * @return {string} The hexadecimally encoded string.
+ *
+ * @static
+ *
+ * @example
+ *
+ * var hexString = CryptoJS.format.Hex.stringify(cipherParams);
+ */
+ stringify: function (cipherParams) {
+ return cipherParams.ciphertext.toString(Hex);
+ },
+
+ /**
+ * Converts a hexadecimally encoded ciphertext string to a cipher params object.
+ *
+ * @param {string} input The hexadecimally encoded string.
+ *
+ * @return {CipherParams} The cipher params object.
+ *
+ * @static
+ *
+ * @example
+ *
+ * var cipherParams = CryptoJS.format.Hex.parse(hexString);
+ */
+ parse: function (input) {
+ var ciphertext = Hex.parse(input);
+ return CipherParams.create({ ciphertext: ciphertext });
+ }
+ };
+ }());
+
+
+ return CryptoJS.format.Hex;
+
+}));
\ No newline at end of file
diff --git a/node_modules/crypto-js/format-openssl.js b/node_modules/crypto-js/format-openssl.js
new file mode 100644
index 0000000..3373edc
--- /dev/null
+++ b/node_modules/crypto-js/format-openssl.js
@@ -0,0 +1,18 @@
+;(function (root, factory, undef) {
+ if (typeof exports === "object") {
+ // CommonJS
+ module.exports = exports = factory(require("./core"), require("./cipher-core"));
+ }
+ else if (typeof define === "function" && define.amd) {
+ // AMD
+ define(["./core", "./cipher-core"], factory);
+ }
+ else {
+ // Global (browser)
+ factory(root.CryptoJS);
+ }
+}(this, function (CryptoJS) {
+
+ return CryptoJS.format.OpenSSL;
+
+}));
\ No newline at end of file
diff --git a/node_modules/crypto-js/hmac-md5.js b/node_modules/crypto-js/hmac-md5.js
new file mode 100644
index 0000000..ad7a90a
--- /dev/null
+++ b/node_modules/crypto-js/hmac-md5.js
@@ -0,0 +1,18 @@
+;(function (root, factory, undef) {
+ if (typeof exports === "object") {
+ // CommonJS
+ module.exports = exports = factory(require("./core"), require("./md5"), require("./hmac"));
+ }
+ else if (typeof define === "function" && define.amd) {
+ // AMD
+ define(["./core", "./md5", "./hmac"], factory);
+ }
+ else {
+ // Global (browser)
+ factory(root.CryptoJS);
+ }
+}(this, function (CryptoJS) {
+
+ return CryptoJS.HmacMD5;
+
+}));
\ No newline at end of file
diff --git a/node_modules/crypto-js/hmac-ripemd160.js b/node_modules/crypto-js/hmac-ripemd160.js
new file mode 100644
index 0000000..73d55a7
--- /dev/null
+++ b/node_modules/crypto-js/hmac-ripemd160.js
@@ -0,0 +1,18 @@
+;(function (root, factory, undef) {
+ if (typeof exports === "object") {
+ // CommonJS
+ module.exports = exports = factory(require("./core"), require("./ripemd160"), require("./hmac"));
+ }
+ else if (typeof define === "function" && define.amd) {
+ // AMD
+ define(["./core", "./ripemd160", "./hmac"], factory);
+ }
+ else {
+ // Global (browser)
+ factory(root.CryptoJS);
+ }
+}(this, function (CryptoJS) {
+
+ return CryptoJS.HmacRIPEMD160;
+
+}));
\ No newline at end of file
diff --git a/node_modules/crypto-js/hmac-sha1.js b/node_modules/crypto-js/hmac-sha1.js
new file mode 100644
index 0000000..0b570cb
--- /dev/null
+++ b/node_modules/crypto-js/hmac-sha1.js
@@ -0,0 +1,18 @@
+;(function (root, factory, undef) {
+ if (typeof exports === "object") {
+ // CommonJS
+ module.exports = exports = factory(require("./core"), require("./sha1"), require("./hmac"));
+ }
+ else if (typeof define === "function" && define.amd) {
+ // AMD
+ define(["./core", "./sha1", "./hmac"], factory);
+ }
+ else {
+ // Global (browser)
+ factory(root.CryptoJS);
+ }
+}(this, function (CryptoJS) {
+
+ return CryptoJS.HmacSHA1;
+
+}));
\ No newline at end of file
diff --git a/node_modules/crypto-js/hmac-sha224.js b/node_modules/crypto-js/hmac-sha224.js
new file mode 100644
index 0000000..3778863
--- /dev/null
+++ b/node_modules/crypto-js/hmac-sha224.js
@@ -0,0 +1,18 @@
+;(function (root, factory, undef) {
+ if (typeof exports === "object") {
+ // CommonJS
+ module.exports = exports = factory(require("./core"), require("./sha256"), require("./sha224"), require("./hmac"));
+ }
+ else if (typeof define === "function" && define.amd) {
+ // AMD
+ define(["./core", "./sha256", "./sha224", "./hmac"], factory);
+ }
+ else {
+ // Global (browser)
+ factory(root.CryptoJS);
+ }
+}(this, function (CryptoJS) {
+
+ return CryptoJS.HmacSHA224;
+
+}));
\ No newline at end of file
diff --git a/node_modules/crypto-js/hmac-sha256.js b/node_modules/crypto-js/hmac-sha256.js
new file mode 100644
index 0000000..33b0c9f
--- /dev/null
+++ b/node_modules/crypto-js/hmac-sha256.js
@@ -0,0 +1,18 @@
+;(function (root, factory, undef) {
+ if (typeof exports === "object") {
+ // CommonJS
+ module.exports = exports = factory(require("./core"), require("./sha256"), require("./hmac"));
+ }
+ else if (typeof define === "function" && define.amd) {
+ // AMD
+ define(["./core", "./sha256", "./hmac"], factory);
+ }
+ else {
+ // Global (browser)
+ factory(root.CryptoJS);
+ }
+}(this, function (CryptoJS) {
+
+ return CryptoJS.HmacSHA256;
+
+}));
\ No newline at end of file
diff --git a/node_modules/crypto-js/hmac-sha3.js b/node_modules/crypto-js/hmac-sha3.js
new file mode 100644
index 0000000..1248804
--- /dev/null
+++ b/node_modules/crypto-js/hmac-sha3.js
@@ -0,0 +1,18 @@
+;(function (root, factory, undef) {
+ if (typeof exports === "object") {
+ // CommonJS
+ module.exports = exports = factory(require("./core"), require("./x64-core"), require("./sha3"), require("./hmac"));
+ }
+ else if (typeof define === "function" && define.amd) {
+ // AMD
+ define(["./core", "./x64-core", "./sha3", "./hmac"], factory);
+ }
+ else {
+ // Global (browser)
+ factory(root.CryptoJS);
+ }
+}(this, function (CryptoJS) {
+
+ return CryptoJS.HmacSHA3;
+
+}));
\ No newline at end of file
diff --git a/node_modules/crypto-js/hmac-sha384.js b/node_modules/crypto-js/hmac-sha384.js
new file mode 100644
index 0000000..0036e2b
--- /dev/null
+++ b/node_modules/crypto-js/hmac-sha384.js
@@ -0,0 +1,18 @@
+;(function (root, factory, undef) {
+ if (typeof exports === "object") {
+ // CommonJS
+ module.exports = exports = factory(require("./core"), require("./x64-core"), require("./sha512"), require("./sha384"), require("./hmac"));
+ }
+ else if (typeof define === "function" && define.amd) {
+ // AMD
+ define(["./core", "./x64-core", "./sha512", "./sha384", "./hmac"], factory);
+ }
+ else {
+ // Global (browser)
+ factory(root.CryptoJS);
+ }
+}(this, function (CryptoJS) {
+
+ return CryptoJS.HmacSHA384;
+
+}));
\ No newline at end of file
diff --git a/node_modules/crypto-js/hmac-sha512.js b/node_modules/crypto-js/hmac-sha512.js
new file mode 100644
index 0000000..c1005b6
--- /dev/null
+++ b/node_modules/crypto-js/hmac-sha512.js
@@ -0,0 +1,18 @@
+;(function (root, factory, undef) {
+ if (typeof exports === "object") {
+ // CommonJS
+ module.exports = exports = factory(require("./core"), require("./x64-core"), require("./sha512"), require("./hmac"));
+ }
+ else if (typeof define === "function" && define.amd) {
+ // AMD
+ define(["./core", "./x64-core", "./sha512", "./hmac"], factory);
+ }
+ else {
+ // Global (browser)
+ factory(root.CryptoJS);
+ }
+}(this, function (CryptoJS) {
+
+ return CryptoJS.HmacSHA512;
+
+}));
\ No newline at end of file
diff --git a/node_modules/crypto-js/hmac.js b/node_modules/crypto-js/hmac.js
new file mode 100644
index 0000000..8c09851
--- /dev/null
+++ b/node_modules/crypto-js/hmac.js
@@ -0,0 +1,143 @@
+;(function (root, factory) {
+ if (typeof exports === "object") {
+ // CommonJS
+ module.exports = exports = factory(require("./core"));
+ }
+ else if (typeof define === "function" && define.amd) {
+ // AMD
+ define(["./core"], factory);
+ }
+ else {
+ // Global (browser)
+ factory(root.CryptoJS);
+ }
+}(this, function (CryptoJS) {
+
+ (function () {
+ // Shortcuts
+ var C = CryptoJS;
+ var C_lib = C.lib;
+ var Base = C_lib.Base;
+ var C_enc = C.enc;
+ var Utf8 = C_enc.Utf8;
+ var C_algo = C.algo;
+
+ /**
+ * HMAC algorithm.
+ */
+ var HMAC = C_algo.HMAC = Base.extend({
+ /**
+ * Initializes a newly created HMAC.
+ *
+ * @param {Hasher} hasher The hash algorithm to use.
+ * @param {WordArray|string} key The secret key.
+ *
+ * @example
+ *
+ * var hmacHasher = CryptoJS.algo.HMAC.create(CryptoJS.algo.SHA256, key);
+ */
+ init: function (hasher, key) {
+ // Init hasher
+ hasher = this._hasher = new hasher.init();
+
+ // Convert string to WordArray, else assume WordArray already
+ if (typeof key == 'string') {
+ key = Utf8.parse(key);
+ }
+
+ // Shortcuts
+ var hasherBlockSize = hasher.blockSize;
+ var hasherBlockSizeBytes = hasherBlockSize * 4;
+
+ // Allow arbitrary length keys
+ if (key.sigBytes > hasherBlockSizeBytes) {
+ key = hasher.finalize(key);
+ }
+
+ // Clamp excess bits
+ key.clamp();
+
+ // Clone key for inner and outer pads
+ var oKey = this._oKey = key.clone();
+ var iKey = this._iKey = key.clone();
+
+ // Shortcuts
+ var oKeyWords = oKey.words;
+ var iKeyWords = iKey.words;
+
+ // XOR keys with pad constants
+ for (var i = 0; i < hasherBlockSize; i++) {
+ oKeyWords[i] ^= 0x5c5c5c5c;
+ iKeyWords[i] ^= 0x36363636;
+ }
+ oKey.sigBytes = iKey.sigBytes = hasherBlockSizeBytes;
+
+ // Set initial values
+ this.reset();
+ },
+
+ /**
+ * Resets this HMAC to its initial state.
+ *
+ * @example
+ *
+ * hmacHasher.reset();
+ */
+ reset: function () {
+ // Shortcut
+ var hasher = this._hasher;
+
+ // Reset
+ hasher.reset();
+ hasher.update(this._iKey);
+ },
+
+ /**
+ * Updates this HMAC with a message.
+ *
+ * @param {WordArray|string} messageUpdate The message to append.
+ *
+ * @return {HMAC} This HMAC instance.
+ *
+ * @example
+ *
+ * hmacHasher.update('message');
+ * hmacHasher.update(wordArray);
+ */
+ update: function (messageUpdate) {
+ this._hasher.update(messageUpdate);
+
+ // Chainable
+ return this;
+ },
+
+ /**
+ * Finalizes the HMAC computation.
+ * Note that the finalize operation is effectively a destructive, read-once operation.
+ *
+ * @param {WordArray|string} messageUpdate (Optional) A final message update.
+ *
+ * @return {WordArray} The HMAC.
+ *
+ * @example
+ *
+ * var hmac = hmacHasher.finalize();
+ * var hmac = hmacHasher.finalize('message');
+ * var hmac = hmacHasher.finalize(wordArray);
+ */
+ finalize: function (messageUpdate) {
+ // Shortcut
+ var hasher = this._hasher;
+
+ // Compute HMAC
+ var innerHash = hasher.finalize(messageUpdate);
+ hasher.reset();
+ var hmac = hasher.finalize(this._oKey.clone().concat(innerHash));
+
+ return hmac;
+ }
+ });
+ }());
+
+
+}));
\ No newline at end of file
diff --git a/node_modules/crypto-js/index.js b/node_modules/crypto-js/index.js
new file mode 100644
index 0000000..b696646
--- /dev/null
+++ b/node_modules/crypto-js/index.js
@@ -0,0 +1,18 @@
+;(function (root, factory, undef) {
+ if (typeof exports === "object") {
+ // CommonJS
+ module.exports = exports = factory(require("./core"), require("./x64-core"), require("./lib-typedarrays"), require("./enc-utf16"), require("./enc-base64"), require("./enc-base64url"), require("./md5"), require("./sha1"), require("./sha256"), require("./sha224"), require("./sha512"), require("./sha384"), require("./sha3"), require("./ripemd160"), require("./hmac"), require("./pbkdf2"), require("./evpkdf"), require("./cipher-core"), require("./mode-cfb"), require("./mode-ctr"), require("./mode-ctr-gladman"), require("./mode-ofb"), require("./mode-ecb"), require("./pad-ansix923"), require("./pad-iso10126"), require("./pad-iso97971"), require("./pad-zeropadding"), require("./pad-nopadding"), require("./format-hex"), require("./aes"), require("./tripledes"), require("./rc4"), require("./rabbit"), require("./rabbit-legacy"), require("./blowfish"));
+ }
+ else if (typeof define === "function" && define.amd) {
+ // AMD
+ define(["./core", "./x64-core", "./lib-typedarrays", "./enc-utf16", "./enc-base64", "./enc-base64url", "./md5", "./sha1", "./sha256", "./sha224", "./sha512", "./sha384", "./sha3", "./ripemd160", "./hmac", "./pbkdf2", "./evpkdf", "./cipher-core", "./mode-cfb", "./mode-ctr", "./mode-ctr-gladman", "./mode-ofb", "./mode-ecb", "./pad-ansix923", "./pad-iso10126", "./pad-iso97971", "./pad-zeropadding", "./pad-nopadding", "./format-hex", "./aes", "./tripledes", "./rc4", "./rabbit", "./rabbit-legacy", "./blowfish"], factory);
+ }
+ else {
+ // Global (browser)
+ root.CryptoJS = factory(root.CryptoJS);
+ }
+}(this, function (CryptoJS) {
+
+ return CryptoJS;
+
+}));
\ No newline at end of file
diff --git a/node_modules/crypto-js/lib-typedarrays.js b/node_modules/crypto-js/lib-typedarrays.js
new file mode 100644
index 0000000..264b210
--- /dev/null
+++ b/node_modules/crypto-js/lib-typedarrays.js
@@ -0,0 +1,76 @@
+;(function (root, factory) {
+ if (typeof exports === "object") {
+ // CommonJS
+ module.exports = exports = factory(require("./core"));
+ }
+ else if (typeof define === "function" && define.amd) {
+ // AMD
+ define(["./core"], factory);
+ }
+ else {
+ // Global (browser)
+ factory(root.CryptoJS);
+ }
+}(this, function (CryptoJS) {
+
+ (function () {
+ // Check if typed arrays are supported
+ if (typeof ArrayBuffer != 'function') {
+ return;
+ }
+
+ // Shortcuts
+ var C = CryptoJS;
+ var C_lib = C.lib;
+ var WordArray = C_lib.WordArray;
+
+ // Reference original init
+ var superInit = WordArray.init;
+
+ // Augment WordArray.init to handle typed arrays
+ var subInit = WordArray.init = function (typedArray) {
+ // Convert buffers to uint8
+ if (typedArray instanceof ArrayBuffer) {
+ typedArray = new Uint8Array(typedArray);
+ }
+
+ // Convert other array views to uint8
+ if (
+ typedArray instanceof Int8Array ||
+ (typeof Uint8ClampedArray !== "undefined" && typedArray instanceof Uint8ClampedArray) ||
+ typedArray instanceof Int16Array ||
+ typedArray instanceof Uint16Array ||
+ typedArray instanceof Int32Array ||
+ typedArray instanceof Uint32Array ||
+ typedArray instanceof Float32Array ||
+ typedArray instanceof Float64Array
+ ) {
+ typedArray = new Uint8Array(typedArray.buffer, typedArray.byteOffset, typedArray.byteLength);
+ }
+
+ // Handle Uint8Array
+ if (typedArray instanceof Uint8Array) {
+ // Shortcut
+ var typedArrayByteLength = typedArray.byteLength;
+
+ // Extract bytes
+ var words = [];
+ for (var i = 0; i < typedArrayByteLength; i++) {
+ words[i >>> 2] |= typedArray[i] << (24 - (i % 4) * 8);
+ }
+
+ // Initialize this word array
+ superInit.call(this, words, typedArrayByteLength);
+ } else {
+ // Else call normal init
+ superInit.apply(this, arguments);
+ }
+ };
+
+ subInit.prototype = WordArray;
+ }());
+
+
+ return CryptoJS.lib.WordArray;
+
+}));
\ No newline at end of file
diff --git a/node_modules/crypto-js/md5.js b/node_modules/crypto-js/md5.js
new file mode 100644
index 0000000..72fce03
--- /dev/null
+++ b/node_modules/crypto-js/md5.js
@@ -0,0 +1,268 @@
+;(function (root, factory) {
+ if (typeof exports === "object") {
+ // CommonJS
+ module.exports = exports = factory(require("./core"));
+ }
+ else if (typeof define === "function" && define.amd) {
+ // AMD
+ define(["./core"], factory);
+ }
+ else {
+ // Global (browser)
+ factory(root.CryptoJS);
+ }
+}(this, function (CryptoJS) {
+
+ (function (Math) {
+ // Shortcuts
+ var C = CryptoJS;
+ var C_lib = C.lib;
+ var WordArray = C_lib.WordArray;
+ var Hasher = C_lib.Hasher;
+ var C_algo = C.algo;
+
+ // Constants table
+ var T = [];
+
+ // Compute constants
+ (function () {
+ for (var i = 0; i < 64; i++) {
+ T[i] = (Math.abs(Math.sin(i + 1)) * 0x100000000) | 0;
+ }
+ }());
+
+ /**
+ * MD5 hash algorithm.
+ */
+ var MD5 = C_algo.MD5 = Hasher.extend({
+ _doReset: function () {
+ this._hash = new WordArray.init([
+ 0x67452301, 0xefcdab89,
+ 0x98badcfe, 0x10325476
+ ]);
+ },
+
+ _doProcessBlock: function (M, offset) {
+ // Swap endian
+ for (var i = 0; i < 16; i++) {
+ // Shortcuts
+ var offset_i = offset + i;
+ var M_offset_i = M[offset_i];
+
+ M[offset_i] = (
+ (((M_offset_i << 8) | (M_offset_i >>> 24)) & 0x00ff00ff) |
+ (((M_offset_i << 24) | (M_offset_i >>> 8)) & 0xff00ff00)
+ );
+ }
+
+ // Shortcuts
+ var H = this._hash.words;
+
+ var M_offset_0 = M[offset + 0];
+ var M_offset_1 = M[offset + 1];
+ var M_offset_2 = M[offset + 2];
+ var M_offset_3 = M[offset + 3];
+ var M_offset_4 = M[offset + 4];
+ var M_offset_5 = M[offset + 5];
+ var M_offset_6 = M[offset + 6];
+ var M_offset_7 = M[offset + 7];
+ var M_offset_8 = M[offset + 8];
+ var M_offset_9 = M[offset + 9];
+ var M_offset_10 = M[offset + 10];
+ var M_offset_11 = M[offset + 11];
+ var M_offset_12 = M[offset + 12];
+ var M_offset_13 = M[offset + 13];
+ var M_offset_14 = M[offset + 14];
+ var M_offset_15 = M[offset + 15];
+
+ // Working variables
+ var a = H[0];
+ var b = H[1];
+ var c = H[2];
+ var d = H[3];
+
+ // Computation
+ a = FF(a, b, c, d, M_offset_0, 7, T[0]);
+ d = FF(d, a, b, c, M_offset_1, 12, T[1]);
+ c = FF(c, d, a, b, M_offset_2, 17, T[2]);
+ b = FF(b, c, d, a, M_offset_3, 22, T[3]);
+ a = FF(a, b, c, d, M_offset_4, 7, T[4]);
+ d = FF(d, a, b, c, M_offset_5, 12, T[5]);
+ c = FF(c, d, a, b, M_offset_6, 17, T[6]);
+ b = FF(b, c, d, a, M_offset_7, 22, T[7]);
+ a = FF(a, b, c, d, M_offset_8, 7, T[8]);
+ d = FF(d, a, b, c, M_offset_9, 12, T[9]);
+ c = FF(c, d, a, b, M_offset_10, 17, T[10]);
+ b = FF(b, c, d, a, M_offset_11, 22, T[11]);
+ a = FF(a, b, c, d, M_offset_12, 7, T[12]);
+ d = FF(d, a, b, c, M_offset_13, 12, T[13]);
+ c = FF(c, d, a, b, M_offset_14, 17, T[14]);
+ b = FF(b, c, d, a, M_offset_15, 22, T[15]);
+
+ a = GG(a, b, c, d, M_offset_1, 5, T[16]);
+ d = GG(d, a, b, c, M_offset_6, 9, T[17]);
+ c = GG(c, d, a, b, M_offset_11, 14, T[18]);
+ b = GG(b, c, d, a, M_offset_0, 20, T[19]);
+ a = GG(a, b, c, d, M_offset_5, 5, T[20]);
+ d = GG(d, a, b, c, M_offset_10, 9, T[21]);
+ c = GG(c, d, a, b, M_offset_15, 14, T[22]);
+ b = GG(b, c, d, a, M_offset_4, 20, T[23]);
+ a = GG(a, b, c, d, M_offset_9, 5, T[24]);
+ d = GG(d, a, b, c, M_offset_14, 9, T[25]);
+ c = GG(c, d, a, b, M_offset_3, 14, T[26]);
+ b = GG(b, c, d, a, M_offset_8, 20, T[27]);
+ a = GG(a, b, c, d, M_offset_13, 5, T[28]);
+ d = GG(d, a, b, c, M_offset_2, 9, T[29]);
+ c = GG(c, d, a, b, M_offset_7, 14, T[30]);
+ b = GG(b, c, d, a, M_offset_12, 20, T[31]);
+
+ a = HH(a, b, c, d, M_offset_5, 4, T[32]);
+ d = HH(d, a, b, c, M_offset_8, 11, T[33]);
+ c = HH(c, d, a, b, M_offset_11, 16, T[34]);
+ b = HH(b, c, d, a, M_offset_14, 23, T[35]);
+ a = HH(a, b, c, d, M_offset_1, 4, T[36]);
+ d = HH(d, a, b, c, M_offset_4, 11, T[37]);
+ c = HH(c, d, a, b, M_offset_7, 16, T[38]);
+ b = HH(b, c, d, a, M_offset_10, 23, T[39]);
+ a = HH(a, b, c, d, M_offset_13, 4, T[40]);
+ d = HH(d, a, b, c, M_offset_0, 11, T[41]);
+ c = HH(c, d, a, b, M_offset_3, 16, T[42]);
+ b = HH(b, c, d, a, M_offset_6, 23, T[43]);
+ a = HH(a, b, c, d, M_offset_9, 4, T[44]);
+ d = HH(d, a, b, c, M_offset_12, 11, T[45]);
+ c = HH(c, d, a, b, M_offset_15, 16, T[46]);
+ b = HH(b, c, d, a, M_offset_2, 23, T[47]);
+
+ a = II(a, b, c, d, M_offset_0, 6, T[48]);
+ d = II(d, a, b, c, M_offset_7, 10, T[49]);
+ c = II(c, d, a, b, M_offset_14, 15, T[50]);
+ b = II(b, c, d, a, M_offset_5, 21, T[51]);
+ a = II(a, b, c, d, M_offset_12, 6, T[52]);
+ d = II(d, a, b, c, M_offset_3, 10, T[53]);
+ c = II(c, d, a, b, M_offset_10, 15, T[54]);
+ b = II(b, c, d, a, M_offset_1, 21, T[55]);
+ a = II(a, b, c, d, M_offset_8, 6, T[56]);
+ d = II(d, a, b, c, M_offset_15, 10, T[57]);
+ c = II(c, d, a, b, M_offset_6, 15, T[58]);
+ b = II(b, c, d, a, M_offset_13, 21, T[59]);
+ a = II(a, b, c, d, M_offset_4, 6, T[60]);
+ d = II(d, a, b, c, M_offset_11, 10, T[61]);
+ c = II(c, d, a, b, M_offset_2, 15, T[62]);
+ b = II(b, c, d, a, M_offset_9, 21, T[63]);
+
+ // Intermediate hash value
+ H[0] = (H[0] + a) | 0;
+ H[1] = (H[1] + b) | 0;
+ H[2] = (H[2] + c) | 0;
+ H[3] = (H[3] + d) | 0;
+ },
+
+ _doFinalize: function () {
+ // Shortcuts
+ var data = this._data;
+ var dataWords = data.words;
+
+ var nBitsTotal = this._nDataBytes * 8;
+ var nBitsLeft = data.sigBytes * 8;
+
+ // Add padding
+ dataWords[nBitsLeft >>> 5] |= 0x80 << (24 - nBitsLeft % 32);
+
+ var nBitsTotalH = Math.floor(nBitsTotal / 0x100000000);
+ var nBitsTotalL = nBitsTotal;
+ dataWords[(((nBitsLeft + 64) >>> 9) << 4) + 15] = (
+ (((nBitsTotalH << 8) | (nBitsTotalH >>> 24)) & 0x00ff00ff) |
+ (((nBitsTotalH << 24) | (nBitsTotalH >>> 8)) & 0xff00ff00)
+ );
+ dataWords[(((nBitsLeft + 64) >>> 9) << 4) + 14] = (
+ (((nBitsTotalL << 8) | (nBitsTotalL >>> 24)) & 0x00ff00ff) |
+ (((nBitsTotalL << 24) | (nBitsTotalL >>> 8)) & 0xff00ff00)
+ );
+
+ data.sigBytes = (dataWords.length + 1) * 4;
+
+ // Hash final blocks
+ this._process();
+
+ // Shortcuts
+ var hash = this._hash;
+ var H = hash.words;
+
+ // Swap endian
+ for (var i = 0; i < 4; i++) {
+ // Shortcut
+ var H_i = H[i];
+
+ H[i] = (((H_i << 8) | (H_i >>> 24)) & 0x00ff00ff) |
+ (((H_i << 24) | (H_i >>> 8)) & 0xff00ff00);
+ }
+
+ // Return final computed hash
+ return hash;
+ },
+
+ clone: function () {
+ var clone = Hasher.clone.call(this);
+ clone._hash = this._hash.clone();
+
+ return clone;
+ }
+ });
+
+ function FF(a, b, c, d, x, s, t) {
+ var n = a + ((b & c) | (~b & d)) + x + t;
+ return ((n << s) | (n >>> (32 - s))) + b;
+ }
+
+ function GG(a, b, c, d, x, s, t) {
+ var n = a + ((b & d) | (c & ~d)) + x + t;
+ return ((n << s) | (n >>> (32 - s))) + b;
+ }
+
+ function HH(a, b, c, d, x, s, t) {
+ var n = a + (b ^ c ^ d) + x + t;
+ return ((n << s) | (n >>> (32 - s))) + b;
+ }
+
+ function II(a, b, c, d, x, s, t) {
+ var n = a + (c ^ (b | ~d)) + x + t;
+ return ((n << s) | (n >>> (32 - s))) + b;
+ }
+
+ /**
+ * Shortcut function to the hasher's object interface.
+ *
+ * @param {WordArray|string} message The message to hash.
+ *
+ * @return {WordArray} The hash.
+ *
+ * @static
+ *
+ * @example
+ *
+ * var hash = CryptoJS.MD5('message');
+ * var hash = CryptoJS.MD5(wordArray);
+ */
+ C.MD5 = Hasher._createHelper(MD5);
+
+ /**
+ * Shortcut function to the HMAC's object interface.
+ *
+ * @param {WordArray|string} message The message to hash.
+ * @param {WordArray|string} key The secret key.
+ *
+ * @return {WordArray} The HMAC.
+ *
+ * @static
+ *
+ * @example
+ *
+ * var hmac = CryptoJS.HmacMD5(message, key);
+ */
+ C.HmacMD5 = Hasher._createHmacHelper(MD5);
+ }(Math));
+
+
+ return CryptoJS.MD5;
+
+}));
\ No newline at end of file
diff --git a/node_modules/crypto-js/mode-cfb.js b/node_modules/crypto-js/mode-cfb.js
new file mode 100644
index 0000000..444c9cb
--- /dev/null
+++ b/node_modules/crypto-js/mode-cfb.js
@@ -0,0 +1,80 @@
+;(function (root, factory, undef) {
+ if (typeof exports === "object") {
+ // CommonJS
+ module.exports = exports = factory(require("./core"), require("./cipher-core"));
+ }
+ else if (typeof define === "function" && define.amd) {
+ // AMD
+ define(["./core", "./cipher-core"], factory);
+ }
+ else {
+ // Global (browser)
+ factory(root.CryptoJS);
+ }
+}(this, function (CryptoJS) {
+
+ /**
+ * Cipher Feedback block mode.
+ */
+ CryptoJS.mode.CFB = (function () {
+ var CFB = CryptoJS.lib.BlockCipherMode.extend();
+
+ CFB.Encryptor = CFB.extend({
+ processBlock: function (words, offset) {
+ // Shortcuts
+ var cipher = this._cipher;
+ var blockSize = cipher.blockSize;
+
+ generateKeystreamAndEncrypt.call(this, words, offset, blockSize, cipher);
+
+ // Remember this block to use with next block
+ this._prevBlock = words.slice(offset, offset + blockSize);
+ }
+ });
+
+ CFB.Decryptor = CFB.extend({
+ processBlock: function (words, offset) {
+ // Shortcuts
+ var cipher = this._cipher;
+ var blockSize = cipher.blockSize;
+
+ // Remember this block to use with next block
+ var thisBlock = words.slice(offset, offset + blockSize);
+
+ generateKeystreamAndEncrypt.call(this, words, offset, blockSize, cipher);
+
+ // This block becomes the previous block
+ this._prevBlock = thisBlock;
+ }
+ });
+
+ function generateKeystreamAndEncrypt(words, offset, blockSize, cipher) {
+ var keystream;
+
+ // Shortcut
+ var iv = this._iv;
+
+ // Generate keystream
+ if (iv) {
+ keystream = iv.slice(0);
+
+ // Remove IV for subsequent blocks
+ this._iv = undefined;
+ } else {
+ keystream = this._prevBlock;
+ }
+ cipher.encryptBlock(keystream, 0);
+
+ // Encrypt
+ for (var i = 0; i < blockSize; i++) {
+ words[offset + i] ^= keystream[i];
+ }
+ }
+
+ return CFB;
+ }());
+
+
+ return CryptoJS.mode.CFB;
+
+}));
\ No newline at end of file
diff --git a/node_modules/crypto-js/mode-ctr-gladman.js b/node_modules/crypto-js/mode-ctr-gladman.js
new file mode 100644
index 0000000..bbc5687
--- /dev/null
+++ b/node_modules/crypto-js/mode-ctr-gladman.js
@@ -0,0 +1,116 @@
+;(function (root, factory, undef) {
+ if (typeof exports === "object") {
+ // CommonJS
+ module.exports = exports = factory(require("./core"), require("./cipher-core"));
+ }
+ else if (typeof define === "function" && define.amd) {
+ // AMD
+ define(["./core", "./cipher-core"], factory);
+ }
+ else {
+ // Global (browser)
+ factory(root.CryptoJS);
+ }
+}(this, function (CryptoJS) {
+
+ /** @preserve
+ * Counter block mode compatible with Dr Brian Gladman fileenc.c
+ * derived from CryptoJS.mode.CTR
+ * Jan Hruby jhruby.web@gmail.com
+ */
+ CryptoJS.mode.CTRGladman = (function () {
+ var CTRGladman = CryptoJS.lib.BlockCipherMode.extend();
+
+ function incWord(word)
+ {
+ if (((word >> 24) & 0xff) === 0xff) { //overflow
+ var b1 = (word >> 16)&0xff;
+ var b2 = (word >> 8)&0xff;
+ var b3 = word & 0xff;
+
+ if (b1 === 0xff) // overflow b1
+ {
+ b1 = 0;
+ if (b2 === 0xff)
+ {
+ b2 = 0;
+ if (b3 === 0xff)
+ {
+ b3 = 0;
+ }
+ else
+ {
+ ++b3;
+ }
+ }
+ else
+ {
+ ++b2;
+ }
+ }
+ else
+ {
+ ++b1;
+ }
+
+ word = 0;
+ word += (b1 << 16);
+ word += (b2 << 8);
+ word += b3;
+ }
+ else
+ {
+ word += (0x01 << 24);
+ }
+ return word;
+ }
+
+ function incCounter(counter)
+ {
+ if ((counter[0] = incWord(counter[0])) === 0)
+ {
+ // encr_data in fileenc.c from Dr Brian Gladman's counts only with DWORD j < 8
+ counter[1] = incWord(counter[1]);
+ }
+ return counter;
+ }
+
+ var Encryptor = CTRGladman.Encryptor = CTRGladman.extend({
+ processBlock: function (words, offset) {
+ // Shortcuts
+ var cipher = this._cipher
+ var blockSize = cipher.blockSize;
+ var iv = this._iv;
+ var counter = this._counter;
+
+ // Generate keystream
+ if (iv) {
+ counter = this._counter = iv.slice(0);
+
+ // Remove IV for subsequent blocks
+ this._iv = undefined;
+ }
+
+ incCounter(counter);
+
+ var keystream = counter.slice(0);
+ cipher.encryptBlock(keystream, 0);
+
+ // Encrypt
+ for (var i = 0; i < blockSize; i++) {
+ words[offset + i] ^= keystream[i];
+ }
+ }
+ });
+
+ CTRGladman.Decryptor = Encryptor;
+
+ return CTRGladman;
+ }());
+
+
+
+
+ return CryptoJS.mode.CTRGladman;
+
+}));
\ No newline at end of file
diff --git a/node_modules/crypto-js/mode-ctr.js b/node_modules/crypto-js/mode-ctr.js
new file mode 100644
index 0000000..c3d470a
--- /dev/null
+++ b/node_modules/crypto-js/mode-ctr.js
@@ -0,0 +1,58 @@
+;(function (root, factory, undef) {
+ if (typeof exports === "object") {
+ // CommonJS
+ module.exports = exports = factory(require("./core"), require("./cipher-core"));
+ }
+ else if (typeof define === "function" && define.amd) {
+ // AMD
+ define(["./core", "./cipher-core"], factory);
+ }
+ else {
+ // Global (browser)
+ factory(root.CryptoJS);
+ }
+}(this, function (CryptoJS) {
+
+ /**
+ * Counter block mode.
+ */
+ CryptoJS.mode.CTR = (function () {
+ var CTR = CryptoJS.lib.BlockCipherMode.extend();
+
+ var Encryptor = CTR.Encryptor = CTR.extend({
+ processBlock: function (words, offset) {
+ // Shortcuts
+ var cipher = this._cipher
+ var blockSize = cipher.blockSize;
+ var iv = this._iv;
+ var counter = this._counter;
+
+ // Generate keystream
+ if (iv) {
+ counter = this._counter = iv.slice(0);
+
+ // Remove IV for subsequent blocks
+ this._iv = undefined;
+ }
+ var keystream = counter.slice(0);
+ cipher.encryptBlock(keystream, 0);
+
+ // Increment counter
+ counter[blockSize - 1] = (counter[blockSize - 1] + 1) | 0
+
+ // Encrypt
+ for (var i = 0; i < blockSize; i++) {
+ words[offset + i] ^= keystream[i];
+ }
+ }
+ });
+
+ CTR.Decryptor = Encryptor;
+
+ return CTR;
+ }());
+
+
+ return CryptoJS.mode.CTR;
+
+}));
\ No newline at end of file
diff --git a/node_modules/crypto-js/mode-ecb.js b/node_modules/crypto-js/mode-ecb.js
new file mode 100644
index 0000000..ff06921
--- /dev/null
+++ b/node_modules/crypto-js/mode-ecb.js
@@ -0,0 +1,40 @@
+;(function (root, factory, undef) {
+ if (typeof exports === "object") {
+ // CommonJS
+ module.exports = exports = factory(require("./core"), require("./cipher-core"));
+ }
+ else if (typeof define === "function" && define.amd) {
+ // AMD
+ define(["./core", "./cipher-core"], factory);
+ }
+ else {
+ // Global (browser)
+ factory(root.CryptoJS);
+ }
+}(this, function (CryptoJS) {
+
+ /**
+ * Electronic Codebook block mode.
+ */
+ CryptoJS.mode.ECB = (function () {
+ var ECB = CryptoJS.lib.BlockCipherMode.extend();
+
+ ECB.Encryptor = ECB.extend({
+ processBlock: function (words, offset) {
+ this._cipher.encryptBlock(words, offset);
+ }
+ });
+
+ ECB.Decryptor = ECB.extend({
+ processBlock: function (words, offset) {
+ this._cipher.decryptBlock(words, offset);
+ }
+ });
+
+ return ECB;
+ }());
+
+
+ return CryptoJS.mode.ECB;
+
+}));
\ No newline at end of file
diff --git a/node_modules/crypto-js/mode-ofb.js b/node_modules/crypto-js/mode-ofb.js
new file mode 100644
index 0000000..c01314c
--- /dev/null
+++ b/node_modules/crypto-js/mode-ofb.js
@@ -0,0 +1,54 @@
+;(function (root, factory, undef) {
+ if (typeof exports === "object") {
+ // CommonJS
+ module.exports = exports = factory(require("./core"), require("./cipher-core"));
+ }
+ else if (typeof define === "function" && define.amd) {
+ // AMD
+ define(["./core", "./cipher-core"], factory);
+ }
+ else {
+ // Global (browser)
+ factory(root.CryptoJS);
+ }
+}(this, function (CryptoJS) {
+
+ /**
+ * Output Feedback block mode.
+ */
+ CryptoJS.mode.OFB = (function () {
+ var OFB = CryptoJS.lib.BlockCipherMode.extend();
+
+ var Encryptor = OFB.Encryptor = OFB.extend({
+ processBlock: function (words, offset) {
+ // Shortcuts
+ var cipher = this._cipher
+ var blockSize = cipher.blockSize;
+ var iv = this._iv;
+ var keystream = this._keystream;
+
+ // Generate keystream
+ if (iv) {
+ keystream = this._keystream = iv.slice(0);
+
+ // Remove IV for subsequent blocks
+ this._iv = undefined;
+ }
+ cipher.encryptBlock(keystream, 0);
+
+ // Encrypt
+ for (var i = 0; i < blockSize; i++) {
+ words[offset + i] ^= keystream[i];
+ }
+ }
+ });
+
+ OFB.Decryptor = Encryptor;
+
+ return OFB;
+ }());
+
+
+ return CryptoJS.mode.OFB;
+
+}));
\ No newline at end of file
diff --git a/node_modules/crypto-js/package.json b/node_modules/crypto-js/package.json
new file mode 100644
index 0000000..4b9a8e2
--- /dev/null
+++ b/node_modules/crypto-js/package.json
@@ -0,0 +1,42 @@
+{
+ "name": "crypto-js",
+ "version": "4.2.0",
+ "description": "JavaScript library of crypto standards.",
+ "license": "MIT",
+ "author": {
+ "name": "Evan Vosberg",
+ "url": "http://github.com/evanvosberg"
+ },
+ "homepage": "http://github.com/brix/crypto-js",
+ "repository": {
+ "type": "git",
+ "url": "http://github.com/brix/crypto-js.git"
+ },
+ "keywords": [
+ "security",
+ "crypto",
+ "Hash",
+ "MD5",
+ "SHA1",
+ "SHA-1",
+ "SHA256",
+ "SHA-256",
+ "RC4",
+ "Rabbit",
+ "AES",
+ "DES",
+ "PBKDF2",
+ "HMAC",
+ "OFB",
+ "CFB",
+ "CTR",
+ "CBC",
+ "Base64",
+ "Base64url"
+ ],
+ "main": "index.js",
+ "dependencies": {},
+ "browser": {
+ "crypto": false
+ }
+}
diff --git a/node_modules/crypto-js/pad-ansix923.js b/node_modules/crypto-js/pad-ansix923.js
new file mode 100644
index 0000000..f01f21e
--- /dev/null
+++ b/node_modules/crypto-js/pad-ansix923.js
@@ -0,0 +1,49 @@
+;(function (root, factory, undef) {
+ if (typeof exports === "object") {
+ // CommonJS
+ module.exports = exports = factory(require("./core"), require("./cipher-core"));
+ }
+ else if (typeof define === "function" && define.amd) {
+ // AMD
+ define(["./core", "./cipher-core"], factory);
+ }
+ else {
+ // Global (browser)
+ factory(root.CryptoJS);
+ }
+}(this, function (CryptoJS) {
+
+ /**
+ * ANSI X.923 padding strategy.
+ */
+ CryptoJS.pad.AnsiX923 = {
+ pad: function (data, blockSize) {
+ // Shortcuts
+ var dataSigBytes = data.sigBytes;
+ var blockSizeBytes = blockSize * 4;
+
+ // Count padding bytes
+ var nPaddingBytes = blockSizeBytes - dataSigBytes % blockSizeBytes;
+
+ // Compute last byte position
+ var lastBytePos = dataSigBytes + nPaddingBytes - 1;
+
+ // Pad
+ data.clamp();
+ data.words[lastBytePos >>> 2] |= nPaddingBytes << (24 - (lastBytePos % 4) * 8);
+ data.sigBytes += nPaddingBytes;
+ },
+
+ unpad: function (data) {
+ // Get number of padding bytes from last byte
+ var nPaddingBytes = data.words[(data.sigBytes - 1) >>> 2] & 0xff;
+
+ // Remove padding
+ data.sigBytes -= nPaddingBytes;
+ }
+ };
+
+
+ return CryptoJS.pad.Ansix923;
+
+}));
\ No newline at end of file
diff --git a/node_modules/crypto-js/pad-iso10126.js b/node_modules/crypto-js/pad-iso10126.js
new file mode 100644
index 0000000..6e2aefd
--- /dev/null
+++ b/node_modules/crypto-js/pad-iso10126.js
@@ -0,0 +1,44 @@
+;(function (root, factory, undef) {
+ if (typeof exports === "object") {
+ // CommonJS
+ module.exports = exports = factory(require("./core"), require("./cipher-core"));
+ }
+ else if (typeof define === "function" && define.amd) {
+ // AMD
+ define(["./core", "./cipher-core"], factory);
+ }
+ else {
+ // Global (browser)
+ factory(root.CryptoJS);
+ }
+}(this, function (CryptoJS) {
+
+ /**
+ * ISO 10126 padding strategy.
+ */
+ CryptoJS.pad.Iso10126 = {
+ pad: function (data, blockSize) {
+ // Shortcut
+ var blockSizeBytes = blockSize * 4;
+
+ // Count padding bytes
+ var nPaddingBytes = blockSizeBytes - data.sigBytes % blockSizeBytes;
+
+ // Pad
+ data.concat(CryptoJS.lib.WordArray.random(nPaddingBytes - 1)).
+ concat(CryptoJS.lib.WordArray.create([nPaddingBytes << 24], 1));
+ },
+
+ unpad: function (data) {
+ // Get number of padding bytes from last byte
+ var nPaddingBytes = data.words[(data.sigBytes - 1) >>> 2] & 0xff;
+
+ // Remove padding
+ data.sigBytes -= nPaddingBytes;
+ }
+ };
+
+
+ return CryptoJS.pad.Iso10126;
+
+}));
\ No newline at end of file
diff --git a/node_modules/crypto-js/pad-iso97971.js b/node_modules/crypto-js/pad-iso97971.js
new file mode 100644
index 0000000..41049b4
--- /dev/null
+++ b/node_modules/crypto-js/pad-iso97971.js
@@ -0,0 +1,40 @@
+;(function (root, factory, undef) {
+ if (typeof exports === "object") {
+ // CommonJS
+ module.exports = exports = factory(require("./core"), require("./cipher-core"));
+ }
+ else if (typeof define === "function" && define.amd) {
+ // AMD
+ define(["./core", "./cipher-core"], factory);
+ }
+ else {
+ // Global (browser)
+ factory(root.CryptoJS);
+ }
+}(this, function (CryptoJS) {
+
+ /**
+ * ISO/IEC 9797-1 Padding Method 2.
+ */
+ CryptoJS.pad.Iso97971 = {
+ pad: function (data, blockSize) {
+ // Add 0x80 byte
+ data.concat(CryptoJS.lib.WordArray.create([0x80000000], 1));
+
+ // Zero pad the rest
+ CryptoJS.pad.ZeroPadding.pad(data, blockSize);
+ },
+
+ unpad: function (data) {
+ // Remove zero padding
+ CryptoJS.pad.ZeroPadding.unpad(data);
+
+ // Remove one more byte -- the 0x80 byte
+ data.sigBytes--;
+ }
+ };
+
+
+ return CryptoJS.pad.Iso97971;
+
+}));
\ No newline at end of file
diff --git a/node_modules/crypto-js/pad-nopadding.js b/node_modules/crypto-js/pad-nopadding.js
new file mode 100644
index 0000000..c7787c9
--- /dev/null
+++ b/node_modules/crypto-js/pad-nopadding.js
@@ -0,0 +1,30 @@
+;(function (root, factory, undef) {
+ if (typeof exports === "object") {
+ // CommonJS
+ module.exports = exports = factory(require("./core"), require("./cipher-core"));
+ }
+ else if (typeof define === "function" && define.amd) {
+ // AMD
+ define(["./core", "./cipher-core"], factory);
+ }
+ else {
+ // Global (browser)
+ factory(root.CryptoJS);
+ }
+}(this, function (CryptoJS) {
+
+ /**
+ * A noop padding strategy.
+ */
+ CryptoJS.pad.NoPadding = {
+ pad: function () {
+ },
+
+ unpad: function () {
+ }
+ };
+
+
+ return CryptoJS.pad.NoPadding;
+
+}));
\ No newline at end of file
diff --git a/node_modules/crypto-js/pad-pkcs7.js b/node_modules/crypto-js/pad-pkcs7.js
new file mode 100644
index 0000000..3555168
--- /dev/null
+++ b/node_modules/crypto-js/pad-pkcs7.js
@@ -0,0 +1,18 @@
+;(function (root, factory, undef) {
+ if (typeof exports === "object") {
+ // CommonJS
+ module.exports = exports = factory(require("./core"), require("./cipher-core"));
+ }
+ else if (typeof define === "function" && define.amd) {
+ // AMD
+ define(["./core", "./cipher-core"], factory);
+ }
+ else {
+ // Global (browser)
+ factory(root.CryptoJS);
+ }
+}(this, function (CryptoJS) {
+
+ return CryptoJS.pad.Pkcs7;
+
+}));
\ No newline at end of file
diff --git a/node_modules/crypto-js/pad-zeropadding.js b/node_modules/crypto-js/pad-zeropadding.js
new file mode 100644
index 0000000..a1a459e
--- /dev/null
+++ b/node_modules/crypto-js/pad-zeropadding.js
@@ -0,0 +1,47 @@
+;(function (root, factory, undef) {
+ if (typeof exports === "object") {
+ // CommonJS
+ module.exports = exports = factory(require("./core"), require("./cipher-core"));
+ }
+ else if (typeof define === "function" && define.amd) {
+ // AMD
+ define(["./core", "./cipher-core"], factory);
+ }
+ else {
+ // Global (browser)
+ factory(root.CryptoJS);
+ }
+}(this, function (CryptoJS) {
+
+ /**
+ * Zero padding strategy.
+ */
+ CryptoJS.pad.ZeroPadding = {
+ pad: function (data, blockSize) {
+ // Shortcut
+ var blockSizeBytes = blockSize * 4;
+
+ // Pad
+ data.clamp();
+ data.sigBytes += blockSizeBytes - ((data.sigBytes % blockSizeBytes) || blockSizeBytes);
+ },
+
+ unpad: function (data) {
+ // Shortcut
+ var dataWords = data.words;
+
+ // Unpad
+ var i = data.sigBytes - 1;
+ for (var i = data.sigBytes - 1; i >= 0; i--) {
+ if (((dataWords[i >>> 2] >>> (24 - (i % 4) * 8)) & 0xff)) {
+ data.sigBytes = i + 1;
+ break;
+ }
+ }
+ }
+ };
+
+
+ return CryptoJS.pad.ZeroPadding;
+
+}));
\ No newline at end of file
diff --git a/node_modules/crypto-js/pbkdf2.js b/node_modules/crypto-js/pbkdf2.js
new file mode 100644
index 0000000..6850934
--- /dev/null
+++ b/node_modules/crypto-js/pbkdf2.js
@@ -0,0 +1,145 @@
+;(function (root, factory, undef) {
+ if (typeof exports === "object") {
+ // CommonJS
+ module.exports = exports = factory(require("./core"), require("./sha256"), require("./hmac"));
+ }
+ else if (typeof define === "function" && define.amd) {
+ // AMD
+ define(["./core", "./sha256", "./hmac"], factory);
+ }
+ else {
+ // Global (browser)
+ factory(root.CryptoJS);
+ }
+}(this, function (CryptoJS) {
+
+ (function () {
+ // Shortcuts
+ var C = CryptoJS;
+ var C_lib = C.lib;
+ var Base = C_lib.Base;
+ var WordArray = C_lib.WordArray;
+ var C_algo = C.algo;
+ var SHA256 = C_algo.SHA256;
+ var HMAC = C_algo.HMAC;
+
+ /**
+ * Password-Based Key Derivation Function 2 algorithm.
+ */
+ var PBKDF2 = C_algo.PBKDF2 = Base.extend({
+ /**
+ * Configuration options.
+ *
+ * @property {number} keySize The key size in words to generate. Default: 4 (128 bits)
+ * @property {Hasher} hasher The hasher to use. Default: SHA256
+ * @property {number} iterations The number of iterations to perform. Default: 250000
+ */
+ cfg: Base.extend({
+ keySize: 128/32,
+ hasher: SHA256,
+ iterations: 250000
+ }),
+
+ /**
+ * Initializes a newly created key derivation function.
+ *
+ * @param {Object} cfg (Optional) The configuration options to use for the derivation.
+ *
+ * @example
+ *
+ * var kdf = CryptoJS.algo.PBKDF2.create();
+ * var kdf = CryptoJS.algo.PBKDF2.create({ keySize: 8 });
+ * var kdf = CryptoJS.algo.PBKDF2.create({ keySize: 8, iterations: 1000 });
+ */
+ init: function (cfg) {
+ this.cfg = this.cfg.extend(cfg);
+ },
+
+ /**
+ * Computes the Password-Based Key Derivation Function 2.
+ *
+ * @param {WordArray|string} password The password.
+ * @param {WordArray|string} salt A salt.
+ *
+ * @return {WordArray} The derived key.
+ *
+ * @example
+ *
+ * var key = kdf.compute(password, salt);
+ */
+ compute: function (password, salt) {
+ // Shortcut
+ var cfg = this.cfg;
+
+ // Init HMAC
+ var hmac = HMAC.create(cfg.hasher, password);
+
+ // Initial values
+ var derivedKey = WordArray.create();
+ var blockIndex = WordArray.create([0x00000001]);
+
+ // Shortcuts
+ var derivedKeyWords = derivedKey.words;
+ var blockIndexWords = blockIndex.words;
+ var keySize = cfg.keySize;
+ var iterations = cfg.iterations;
+
+ // Generate key
+ while (derivedKeyWords.length < keySize) {
+ var block = hmac.update(salt).finalize(blockIndex);
+ hmac.reset();
+
+ // Shortcuts
+ var blockWords = block.words;
+ var blockWordsLength = blockWords.length;
+
+ // Iterations
+ var intermediate = block;
+ for (var i = 1; i < iterations; i++) {
+ intermediate = hmac.finalize(intermediate);
+ hmac.reset();
+
+ // Shortcut
+ var intermediateWords = intermediate.words;
+
+ // XOR intermediate with block
+ for (var j = 0; j < blockWordsLength; j++) {
+ blockWords[j] ^= intermediateWords[j];
+ }
+ }
+
+ derivedKey.concat(block);
+ blockIndexWords[0]++;
+ }
+ derivedKey.sigBytes = keySize * 4;
+
+ return derivedKey;
+ }
+ });
+
+ /**
+ * Computes the Password-Based Key Derivation Function 2.
+ *
+ * @param {WordArray|string} password The password.
+ * @param {WordArray|string} salt A salt.
+ * @param {Object} cfg (Optional) The configuration options to use for this computation.
+ *
+ * @return {WordArray} The derived key.
+ *
+ * @static
+ *
+ * @example
+ *
+ * var key = CryptoJS.PBKDF2(password, salt);
+ * var key = CryptoJS.PBKDF2(password, salt, { keySize: 8 });
+ * var key = CryptoJS.PBKDF2(password, salt, { keySize: 8, iterations: 1000 });
+ */
+ C.PBKDF2 = function (password, salt, cfg) {
+ return PBKDF2.create(cfg).compute(password, salt);
+ };
+ }());
+
+
+ return CryptoJS.PBKDF2;
+
+}));
\ No newline at end of file
diff --git a/node_modules/crypto-js/rabbit-legacy.js b/node_modules/crypto-js/rabbit-legacy.js
new file mode 100644
index 0000000..e118b6b
--- /dev/null
+++ b/node_modules/crypto-js/rabbit-legacy.js
@@ -0,0 +1,190 @@
+;(function (root, factory, undef) {
+ if (typeof exports === "object") {
+ // CommonJS
+ module.exports = exports = factory(require("./core"), require("./enc-base64"), require("./md5"), require("./evpkdf"), require("./cipher-core"));
+ }
+ else if (typeof define === "function" && define.amd) {
+ // AMD
+ define(["./core", "./enc-base64", "./md5", "./evpkdf", "./cipher-core"], factory);
+ }
+ else {
+ // Global (browser)
+ factory(root.CryptoJS);
+ }
+}(this, function (CryptoJS) {
+
+ (function () {
+ // Shortcuts
+ var C = CryptoJS;
+ var C_lib = C.lib;
+ var StreamCipher = C_lib.StreamCipher;
+ var C_algo = C.algo;
+
+ // Reusable objects
+ var S = [];
+ var C_ = [];
+ var G = [];
+
+ /**
+ * Rabbit stream cipher algorithm.
+ *
+ * This is a legacy version that neglected to convert the key to little-endian.
+ * This error doesn't affect the cipher's security,
+ * but it does affect its compatibility with other implementations.
+ */
+ var RabbitLegacy = C_algo.RabbitLegacy = StreamCipher.extend({
+ _doReset: function () {
+ // Shortcuts
+ var K = this._key.words;
+ var iv = this.cfg.iv;
+
+ // Generate initial state values
+ var X = this._X = [
+ K[0], (K[3] << 16) | (K[2] >>> 16),
+ K[1], (K[0] << 16) | (K[3] >>> 16),
+ K[2], (K[1] << 16) | (K[0] >>> 16),
+ K[3], (K[2] << 16) | (K[1] >>> 16)
+ ];
+
+ // Generate initial counter values
+ var C = this._C = [
+ (K[2] << 16) | (K[2] >>> 16), (K[0] & 0xffff0000) | (K[1] & 0x0000ffff),
+ (K[3] << 16) | (K[3] >>> 16), (K[1] & 0xffff0000) | (K[2] & 0x0000ffff),
+ (K[0] << 16) | (K[0] >>> 16), (K[2] & 0xffff0000) | (K[3] & 0x0000ffff),
+ (K[1] << 16) | (K[1] >>> 16), (K[3] & 0xffff0000) | (K[0] & 0x0000ffff)
+ ];
+
+ // Carry bit
+ this._b = 0;
+
+ // Iterate the system four times
+ for (var i = 0; i < 4; i++) {
+ nextState.call(this);
+ }
+
+ // Modify the counters
+ for (var i = 0; i < 8; i++) {
+ C[i] ^= X[(i + 4) & 7];
+ }
+
+ // IV setup
+ if (iv) {
+ // Shortcuts
+ var IV = iv.words;
+ var IV_0 = IV[0];
+ var IV_1 = IV[1];
+
+ // Generate four subvectors
+ var i0 = (((IV_0 << 8) | (IV_0 >>> 24)) & 0x00ff00ff) | (((IV_0 << 24) | (IV_0 >>> 8)) & 0xff00ff00);
+ var i2 = (((IV_1 << 8) | (IV_1 >>> 24)) & 0x00ff00ff) | (((IV_1 << 24) | (IV_1 >>> 8)) & 0xff00ff00);
+ var i1 = (i0 >>> 16) | (i2 & 0xffff0000);
+ var i3 = (i2 << 16) | (i0 & 0x0000ffff);
+
+ // Modify counter values
+ C[0] ^= i0;
+ C[1] ^= i1;
+ C[2] ^= i2;
+ C[3] ^= i3;
+ C[4] ^= i0;
+ C[5] ^= i1;
+ C[6] ^= i2;
+ C[7] ^= i3;
+
+ // Iterate the system four times
+ for (var i = 0; i < 4; i++) {
+ nextState.call(this);
+ }
+ }
+ },
+
+ _doProcessBlock: function (M, offset) {
+ // Shortcut
+ var X = this._X;
+
+ // Iterate the system
+ nextState.call(this);
+
+ // Generate four keystream words
+ S[0] = X[0] ^ (X[5] >>> 16) ^ (X[3] << 16);
+ S[1] = X[2] ^ (X[7] >>> 16) ^ (X[5] << 16);
+ S[2] = X[4] ^ (X[1] >>> 16) ^ (X[7] << 16);
+ S[3] = X[6] ^ (X[3] >>> 16) ^ (X[1] << 16);
+
+ for (var i = 0; i < 4; i++) {
+ // Swap endian
+ S[i] = (((S[i] << 8) | (S[i] >>> 24)) & 0x00ff00ff) |
+ (((S[i] << 24) | (S[i] >>> 8)) & 0xff00ff00);
+
+ // Encrypt
+ M[offset + i] ^= S[i];
+ }
+ },
+
+ blockSize: 128/32,
+
+ ivSize: 64/32
+ });
+
+ function nextState() {
+ // Shortcuts
+ var X = this._X;
+ var C = this._C;
+
+ // Save old counter values
+ for (var i = 0; i < 8; i++) {
+ C_[i] = C[i];
+ }
+
+ // Calculate new counter values
+ C[0] = (C[0] + 0x4d34d34d + this._b) | 0;
+ C[1] = (C[1] + 0xd34d34d3 + ((C[0] >>> 0) < (C_[0] >>> 0) ? 1 : 0)) | 0;
+ C[2] = (C[2] + 0x34d34d34 + ((C[1] >>> 0) < (C_[1] >>> 0) ? 1 : 0)) | 0;
+ C[3] = (C[3] + 0x4d34d34d + ((C[2] >>> 0) < (C_[2] >>> 0) ? 1 : 0)) | 0;
+ C[4] = (C[4] + 0xd34d34d3 + ((C[3] >>> 0) < (C_[3] >>> 0) ? 1 : 0)) | 0;
+ C[5] = (C[5] + 0x34d34d34 + ((C[4] >>> 0) < (C_[4] >>> 0) ? 1 : 0)) | 0;
+ C[6] = (C[6] + 0x4d34d34d + ((C[5] >>> 0) < (C_[5] >>> 0) ? 1 : 0)) | 0;
+ C[7] = (C[7] + 0xd34d34d3 + ((C[6] >>> 0) < (C_[6] >>> 0) ? 1 : 0)) | 0;
+ this._b = (C[7] >>> 0) < (C_[7] >>> 0) ? 1 : 0;
+
+ // Calculate the g-values
+ for (var i = 0; i < 8; i++) {
+ var gx = X[i] + C[i];
+
+ // Construct high and low argument for squaring
+ var ga = gx & 0xffff;
+ var gb = gx >>> 16;
+
+ // Calculate high and low result of squaring
+ var gh = ((((ga * ga) >>> 17) + ga * gb) >>> 15) + gb * gb;
+ var gl = (((gx & 0xffff0000) * gx) | 0) + (((gx & 0x0000ffff) * gx) | 0);
+
+ // High XOR low
+ G[i] = gh ^ gl;
+ }
+
+ // Calculate new state values
+ X[0] = (G[0] + ((G[7] << 16) | (G[7] >>> 16)) + ((G[6] << 16) | (G[6] >>> 16))) | 0;
+ X[1] = (G[1] + ((G[0] << 8) | (G[0] >>> 24)) + G[7]) | 0;
+ X[2] = (G[2] + ((G[1] << 16) | (G[1] >>> 16)) + ((G[0] << 16) | (G[0] >>> 16))) | 0;
+ X[3] = (G[3] + ((G[2] << 8) | (G[2] >>> 24)) + G[1]) | 0;
+ X[4] = (G[4] + ((G[3] << 16) | (G[3] >>> 16)) + ((G[2] << 16) | (G[2] >>> 16))) | 0;
+ X[5] = (G[5] + ((G[4] << 8) | (G[4] >>> 24)) + G[3]) | 0;
+ X[6] = (G[6] + ((G[5] << 16) | (G[5] >>> 16)) + ((G[4] << 16) | (G[4] >>> 16))) | 0;
+ X[7] = (G[7] + ((G[6] << 8) | (G[6] >>> 24)) + G[5]) | 0;
+ }
+
+ /**
+ * Shortcut functions to the cipher's object interface.
+ *
+ * @example
+ *
+ * var ciphertext = CryptoJS.RabbitLegacy.encrypt(message, key, cfg);
+ * var plaintext = CryptoJS.RabbitLegacy.decrypt(ciphertext, key, cfg);
+ */
+ C.RabbitLegacy = StreamCipher._createHelper(RabbitLegacy);
+ }());
+
+
+ return CryptoJS.RabbitLegacy;
+
+}));
\ No newline at end of file
diff --git a/node_modules/crypto-js/rabbit.js b/node_modules/crypto-js/rabbit.js
new file mode 100644
index 0000000..1b06833
--- /dev/null
+++ b/node_modules/crypto-js/rabbit.js
@@ -0,0 +1,192 @@
+;(function (root, factory, undef) {
+ if (typeof exports === "object") {
+ // CommonJS
+ module.exports = exports = factory(require("./core"), require("./enc-base64"), require("./md5"), require("./evpkdf"), require("./cipher-core"));
+ }
+ else if (typeof define === "function" && define.amd) {
+ // AMD
+ define(["./core", "./enc-base64", "./md5", "./evpkdf", "./cipher-core"], factory);
+ }
+ else {
+ // Global (browser)
+ factory(root.CryptoJS);
+ }
+}(this, function (CryptoJS) {
+
+ (function () {
+ // Shortcuts
+ var C = CryptoJS;
+ var C_lib = C.lib;
+ var StreamCipher = C_lib.StreamCipher;
+ var C_algo = C.algo;
+
+ // Reusable objects
+ var S = [];
+ var C_ = [];
+ var G = [];
+
+ /**
+ * Rabbit stream cipher algorithm
+ */
+ var Rabbit = C_algo.Rabbit = StreamCipher.extend({
+ _doReset: function () {
+ // Shortcuts
+ var K = this._key.words;
+ var iv = this.cfg.iv;
+
+ // Swap endian
+ for (var i = 0; i < 4; i++) {
+ K[i] = (((K[i] << 8) | (K[i] >>> 24)) & 0x00ff00ff) |
+ (((K[i] << 24) | (K[i] >>> 8)) & 0xff00ff00);
+ }
+
+ // Generate initial state values
+ var X = this._X = [
+ K[0], (K[3] << 16) | (K[2] >>> 16),
+ K[1], (K[0] << 16) | (K[3] >>> 16),
+ K[2], (K[1] << 16) | (K[0] >>> 16),
+ K[3], (K[2] << 16) | (K[1] >>> 16)
+ ];
+
+ // Generate initial counter values
+ var C = this._C = [
+ (K[2] << 16) | (K[2] >>> 16), (K[0] & 0xffff0000) | (K[1] & 0x0000ffff),
+ (K[3] << 16) | (K[3] >>> 16), (K[1] & 0xffff0000) | (K[2] & 0x0000ffff),
+ (K[0] << 16) | (K[0] >>> 16), (K[2] & 0xffff0000) | (K[3] & 0x0000ffff),
+ (K[1] << 16) | (K[1] >>> 16), (K[3] & 0xffff0000) | (K[0] & 0x0000ffff)
+ ];
+
+ // Carry bit
+ this._b = 0;
+
+ // Iterate the system four times
+ for (var i = 0; i < 4; i++) {
+ nextState.call(this);
+ }
+
+ // Modify the counters
+ for (var i = 0; i < 8; i++) {
+ C[i] ^= X[(i + 4) & 7];
+ }
+
+ // IV setup
+ if (iv) {
+ // Shortcuts
+ var IV = iv.words;
+ var IV_0 = IV[0];
+ var IV_1 = IV[1];
+
+ // Generate four subvectors
+ var i0 = (((IV_0 << 8) | (IV_0 >>> 24)) & 0x00ff00ff) | (((IV_0 << 24) | (IV_0 >>> 8)) & 0xff00ff00);
+ var i2 = (((IV_1 << 8) | (IV_1 >>> 24)) & 0x00ff00ff) | (((IV_1 << 24) | (IV_1 >>> 8)) & 0xff00ff00);
+ var i1 = (i0 >>> 16) | (i2 & 0xffff0000);
+ var i3 = (i2 << 16) | (i0 & 0x0000ffff);
+
+ // Modify counter values
+ C[0] ^= i0;
+ C[1] ^= i1;
+ C[2] ^= i2;
+ C[3] ^= i3;
+ C[4] ^= i0;
+ C[5] ^= i1;
+ C[6] ^= i2;
+ C[7] ^= i3;
+
+ // Iterate the system four times
+ for (var i = 0; i < 4; i++) {
+ nextState.call(this);
+ }
+ }
+ },
+
+ _doProcessBlock: function (M, offset) {
+ // Shortcut
+ var X = this._X;
+
+ // Iterate the system
+ nextState.call(this);
+
+ // Generate four keystream words
+ S[0] = X[0] ^ (X[5] >>> 16) ^ (X[3] << 16);
+ S[1] = X[2] ^ (X[7] >>> 16) ^ (X[5] << 16);
+ S[2] = X[4] ^ (X[1] >>> 16) ^ (X[7] << 16);
+ S[3] = X[6] ^ (X[3] >>> 16) ^ (X[1] << 16);
+
+ for (var i = 0; i < 4; i++) {
+ // Swap endian
+ S[i] = (((S[i] << 8) | (S[i] >>> 24)) & 0x00ff00ff) |
+ (((S[i] << 24) | (S[i] >>> 8)) & 0xff00ff00);
+
+ // Encrypt
+ M[offset + i] ^= S[i];
+ }
+ },
+
+ blockSize: 128/32,
+
+ ivSize: 64/32
+ });
+
+ function nextState() {
+ // Shortcuts
+ var X = this._X;
+ var C = this._C;
+
+ // Save old counter values
+ for (var i = 0; i < 8; i++) {
+ C_[i] = C[i];
+ }
+
+ // Calculate new counter values
+ C[0] = (C[0] + 0x4d34d34d + this._b) | 0;
+ C[1] = (C[1] + 0xd34d34d3 + ((C[0] >>> 0) < (C_[0] >>> 0) ? 1 : 0)) | 0;
+ C[2] = (C[2] + 0x34d34d34 + ((C[1] >>> 0) < (C_[1] >>> 0) ? 1 : 0)) | 0;
+ C[3] = (C[3] + 0x4d34d34d + ((C[2] >>> 0) < (C_[2] >>> 0) ? 1 : 0)) | 0;
+ C[4] = (C[4] + 0xd34d34d3 + ((C[3] >>> 0) < (C_[3] >>> 0) ? 1 : 0)) | 0;
+ C[5] = (C[5] + 0x34d34d34 + ((C[4] >>> 0) < (C_[4] >>> 0) ? 1 : 0)) | 0;
+ C[6] = (C[6] + 0x4d34d34d + ((C[5] >>> 0) < (C_[5] >>> 0) ? 1 : 0)) | 0;
+ C[7] = (C[7] + 0xd34d34d3 + ((C[6] >>> 0) < (C_[6] >>> 0) ? 1 : 0)) | 0;
+ this._b = (C[7] >>> 0) < (C_[7] >>> 0) ? 1 : 0;
+
+ // Calculate the g-values
+ for (var i = 0; i < 8; i++) {
+ var gx = X[i] + C[i];
+
+ // Construct high and low argument for squaring
+ var ga = gx & 0xffff;
+ var gb = gx >>> 16;
+
+ // Calculate high and low result of squaring
+ var gh = ((((ga * ga) >>> 17) + ga * gb) >>> 15) + gb * gb;
+ var gl = (((gx & 0xffff0000) * gx) | 0) + (((gx & 0x0000ffff) * gx) | 0);
+
+ // High XOR low
+ G[i] = gh ^ gl;
+ }
+
+ // Calculate new state values
+ X[0] = (G[0] + ((G[7] << 16) | (G[7] >>> 16)) + ((G[6] << 16) | (G[6] >>> 16))) | 0;
+ X[1] = (G[1] + ((G[0] << 8) | (G[0] >>> 24)) + G[7]) | 0;
+ X[2] = (G[2] + ((G[1] << 16) | (G[1] >>> 16)) + ((G[0] << 16) | (G[0] >>> 16))) | 0;
+ X[3] = (G[3] + ((G[2] << 8) | (G[2] >>> 24)) + G[1]) | 0;
+ X[4] = (G[4] + ((G[3] << 16) | (G[3] >>> 16)) + ((G[2] << 16) | (G[2] >>> 16))) | 0;
+ X[5] = (G[5] + ((G[4] << 8) | (G[4] >>> 24)) + G[3]) | 0;
+ X[6] = (G[6] + ((G[5] << 16) | (G[5] >>> 16)) + ((G[4] << 16) | (G[4] >>> 16))) | 0;
+ X[7] = (G[7] + ((G[6] << 8) | (G[6] >>> 24)) + G[5]) | 0;
+ }
+
+ /**
+ * Shortcut functions to the cipher's object interface.
+ *
+ * @example
+ *
+ * var ciphertext = CryptoJS.Rabbit.encrypt(message, key, cfg);
+ * var plaintext = CryptoJS.Rabbit.decrypt(ciphertext, key, cfg);
+ */
+ C.Rabbit = StreamCipher._createHelper(Rabbit);
+ }());
+
+
+ return CryptoJS.Rabbit;
+
+}));
\ No newline at end of file
diff --git a/node_modules/crypto-js/rc4.js b/node_modules/crypto-js/rc4.js
new file mode 100644
index 0000000..0e4bdff
--- /dev/null
+++ b/node_modules/crypto-js/rc4.js
@@ -0,0 +1,139 @@
+;(function (root, factory, undef) {
+ if (typeof exports === "object") {
+ // CommonJS
+ module.exports = exports = factory(require("./core"), require("./enc-base64"), require("./md5"), require("./evpkdf"), require("./cipher-core"));
+ }
+ else if (typeof define === "function" && define.amd) {
+ // AMD
+ define(["./core", "./enc-base64", "./md5", "./evpkdf", "./cipher-core"], factory);
+ }
+ else {
+ // Global (browser)
+ factory(root.CryptoJS);
+ }
+}(this, function (CryptoJS) {
+
+ (function () {
+ // Shortcuts
+ var C = CryptoJS;
+ var C_lib = C.lib;
+ var StreamCipher = C_lib.StreamCipher;
+ var C_algo = C.algo;
+
+ /**
+ * RC4 stream cipher algorithm.
+ */
+ var RC4 = C_algo.RC4 = StreamCipher.extend({
+ _doReset: function () {
+ // Shortcuts
+ var key = this._key;
+ var keyWords = key.words;
+ var keySigBytes = key.sigBytes;
+
+ // Init sbox
+ var S = this._S = [];
+ for (var i = 0; i < 256; i++) {
+ S[i] = i;
+ }
+
+ // Key setup
+ for (var i = 0, j = 0; i < 256; i++) {
+ var keyByteIndex = i % keySigBytes;
+ var keyByte = (keyWords[keyByteIndex >>> 2] >>> (24 - (keyByteIndex % 4) * 8)) & 0xff;
+
+ j = (j + S[i] + keyByte) % 256;
+
+ // Swap
+ var t = S[i];
+ S[i] = S[j];
+ S[j] = t;
+ }
+
+ // Counters
+ this._i = this._j = 0;
+ },
+
+ _doProcessBlock: function (M, offset) {
+ M[offset] ^= generateKeystreamWord.call(this);
+ },
+
+ keySize: 256/32,
+
+ ivSize: 0
+ });
+
+ function generateKeystreamWord() {
+ // Shortcuts
+ var S = this._S;
+ var i = this._i;
+ var j = this._j;
+
+ // Generate keystream word
+ var keystreamWord = 0;
+ for (var n = 0; n < 4; n++) {
+ i = (i + 1) % 256;
+ j = (j + S[i]) % 256;
+
+ // Swap
+ var t = S[i];
+ S[i] = S[j];
+ S[j] = t;
+
+ keystreamWord |= S[(S[i] + S[j]) % 256] << (24 - n * 8);
+ }
+
+ // Update counters
+ this._i = i;
+ this._j = j;
+
+ return keystreamWord;
+ }
+
+ /**
+ * Shortcut functions to the cipher's object interface.
+ *
+ * @example
+ *
+ * var ciphertext = CryptoJS.RC4.encrypt(message, key, cfg);
+ * var plaintext = CryptoJS.RC4.decrypt(ciphertext, key, cfg);
+ */
+ C.RC4 = StreamCipher._createHelper(RC4);
+
+ /**
+ * Modified RC4 stream cipher algorithm.
+ */
+ var RC4Drop = C_algo.RC4Drop = RC4.extend({
+ /**
+ * Configuration options.
+ *
+ * @property {number} drop The number of keystream words to drop. Default 192
+ */
+ cfg: RC4.cfg.extend({
+ drop: 192
+ }),
+
+ _doReset: function () {
+ RC4._doReset.call(this);
+
+ // Drop
+ for (var i = this.cfg.drop; i > 0; i--) {
+ generateKeystreamWord.call(this);
+ }
+ }
+ });
+
+ /**
+ * Shortcut functions to the cipher's object interface.
+ *
+ * @example
+ *
+ * var ciphertext = CryptoJS.RC4Drop.encrypt(message, key, cfg);
+ * var plaintext = CryptoJS.RC4Drop.decrypt(ciphertext, key, cfg);
+ */
+ C.RC4Drop = StreamCipher._createHelper(RC4Drop);
+ }());
+
+
+ return CryptoJS.RC4;
+
+}));
\ No newline at end of file
diff --git a/node_modules/crypto-js/ripemd160.js b/node_modules/crypto-js/ripemd160.js
new file mode 100644
index 0000000..24feb47
--- /dev/null
+++ b/node_modules/crypto-js/ripemd160.js
@@ -0,0 +1,267 @@
+;(function (root, factory) {
+ if (typeof exports === "object") {
+ // CommonJS
+ module.exports = exports = factory(require("./core"));
+ }
+ else if (typeof define === "function" && define.amd) {
+ // AMD
+ define(["./core"], factory);
+ }
+ else {
+ // Global (browser)
+ factory(root.CryptoJS);
+ }
+}(this, function (CryptoJS) {
+
+ /** @preserve
+ (c) 2012 by Cédric Mesnil. All rights reserved.
+
+ Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:
+
+ - Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
+ - Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.
+
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+ (function (Math) {
+ // Shortcuts
+ var C = CryptoJS;
+ var C_lib = C.lib;
+ var WordArray = C_lib.WordArray;
+ var Hasher = C_lib.Hasher;
+ var C_algo = C.algo;
+
+ // Constants table
+ var _zl = WordArray.create([
+ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15,
+ 7, 4, 13, 1, 10, 6, 15, 3, 12, 0, 9, 5, 2, 14, 11, 8,
+ 3, 10, 14, 4, 9, 15, 8, 1, 2, 7, 0, 6, 13, 11, 5, 12,
+ 1, 9, 11, 10, 0, 8, 12, 4, 13, 3, 7, 15, 14, 5, 6, 2,
+ 4, 0, 5, 9, 7, 12, 2, 10, 14, 1, 3, 8, 11, 6, 15, 13]);
+ var _zr = WordArray.create([
+ 5, 14, 7, 0, 9, 2, 11, 4, 13, 6, 15, 8, 1, 10, 3, 12,
+ 6, 11, 3, 7, 0, 13, 5, 10, 14, 15, 8, 12, 4, 9, 1, 2,
+ 15, 5, 1, 3, 7, 14, 6, 9, 11, 8, 12, 2, 10, 0, 4, 13,
+ 8, 6, 4, 1, 3, 11, 15, 0, 5, 12, 2, 13, 9, 7, 10, 14,
+ 12, 15, 10, 4, 1, 5, 8, 7, 6, 2, 13, 14, 0, 3, 9, 11]);
+ var _sl = WordArray.create([
+ 11, 14, 15, 12, 5, 8, 7, 9, 11, 13, 14, 15, 6, 7, 9, 8,
+ 7, 6, 8, 13, 11, 9, 7, 15, 7, 12, 15, 9, 11, 7, 13, 12,
+ 11, 13, 6, 7, 14, 9, 13, 15, 14, 8, 13, 6, 5, 12, 7, 5,
+ 11, 12, 14, 15, 14, 15, 9, 8, 9, 14, 5, 6, 8, 6, 5, 12,
+ 9, 15, 5, 11, 6, 8, 13, 12, 5, 12, 13, 14, 11, 8, 5, 6 ]);
+ var _sr = WordArray.create([
+ 8, 9, 9, 11, 13, 15, 15, 5, 7, 7, 8, 11, 14, 14, 12, 6,
+ 9, 13, 15, 7, 12, 8, 9, 11, 7, 7, 12, 7, 6, 15, 13, 11,
+ 9, 7, 15, 11, 8, 6, 6, 14, 12, 13, 5, 14, 13, 13, 7, 5,
+ 15, 5, 8, 11, 14, 14, 6, 14, 6, 9, 12, 9, 12, 5, 15, 8,
+ 8, 5, 12, 9, 12, 5, 14, 6, 8, 13, 6, 5, 15, 13, 11, 11 ]);
+
+ var _hl = WordArray.create([ 0x00000000, 0x5A827999, 0x6ED9EBA1, 0x8F1BBCDC, 0xA953FD4E]);
+ var _hr = WordArray.create([ 0x50A28BE6, 0x5C4DD124, 0x6D703EF3, 0x7A6D76E9, 0x00000000]);
+
+ /**
+ * RIPEMD160 hash algorithm.
+ */
+ var RIPEMD160 = C_algo.RIPEMD160 = Hasher.extend({
+ _doReset: function () {
+ this._hash = WordArray.create([0x67452301, 0xEFCDAB89, 0x98BADCFE, 0x10325476, 0xC3D2E1F0]);
+ },
+
+ _doProcessBlock: function (M, offset) {
+
+ // Swap endian
+ for (var i = 0; i < 16; i++) {
+ // Shortcuts
+ var offset_i = offset + i;
+ var M_offset_i = M[offset_i];
+
+ // Swap
+ M[offset_i] = (
+ (((M_offset_i << 8) | (M_offset_i >>> 24)) & 0x00ff00ff) |
+ (((M_offset_i << 24) | (M_offset_i >>> 8)) & 0xff00ff00)
+ );
+ }
+ // Shortcut
+ var H = this._hash.words;
+ var hl = _hl.words;
+ var hr = _hr.words;
+ var zl = _zl.words;
+ var zr = _zr.words;
+ var sl = _sl.words;
+ var sr = _sr.words;
+
+ // Working variables
+ var al, bl, cl, dl, el;
+ var ar, br, cr, dr, er;
+
+ ar = al = H[0];
+ br = bl = H[1];
+ cr = cl = H[2];
+ dr = dl = H[3];
+ er = el = H[4];
+ // Computation
+ var t;
+ for (var i = 0; i < 80; i += 1) {
+ t = (al + M[offset+zl[i]])|0;
+ if (i<16){
+ t += f1(bl,cl,dl) + hl[0];
+ } else if (i<32) {
+ t += f2(bl,cl,dl) + hl[1];
+ } else if (i<48) {
+ t += f3(bl,cl,dl) + hl[2];
+ } else if (i<64) {
+ t += f4(bl,cl,dl) + hl[3];
+ } else {// if (i<80) {
+ t += f5(bl,cl,dl) + hl[4];
+ }
+ t = t|0;
+ t = rotl(t,sl[i]);
+ t = (t+el)|0;
+ al = el;
+ el = dl;
+ dl = rotl(cl, 10);
+ cl = bl;
+ bl = t;
+
+ t = (ar + M[offset+zr[i]])|0;
+ if (i<16){
+ t += f5(br,cr,dr) + hr[0];
+ } else if (i<32) {
+ t += f4(br,cr,dr) + hr[1];
+ } else if (i<48) {
+ t += f3(br,cr,dr) + hr[2];
+ } else if (i<64) {
+ t += f2(br,cr,dr) + hr[3];
+ } else {// if (i<80) {
+ t += f1(br,cr,dr) + hr[4];
+ }
+ t = t|0;
+ t = rotl(t,sr[i]) ;
+ t = (t+er)|0;
+ ar = er;
+ er = dr;
+ dr = rotl(cr, 10);
+ cr = br;
+ br = t;
+ }
+ // Intermediate hash value
+ t = (H[1] + cl + dr)|0;
+ H[1] = (H[2] + dl + er)|0;
+ H[2] = (H[3] + el + ar)|0;
+ H[3] = (H[4] + al + br)|0;
+ H[4] = (H[0] + bl + cr)|0;
+ H[0] = t;
+ },
+
+ _doFinalize: function () {
+ // Shortcuts
+ var data = this._data;
+ var dataWords = data.words;
+
+ var nBitsTotal = this._nDataBytes * 8;
+ var nBitsLeft = data.sigBytes * 8;
+
+ // Add padding
+ dataWords[nBitsLeft >>> 5] |= 0x80 << (24 - nBitsLeft % 32);
+ dataWords[(((nBitsLeft + 64) >>> 9) << 4) + 14] = (
+ (((nBitsTotal << 8) | (nBitsTotal >>> 24)) & 0x00ff00ff) |
+ (((nBitsTotal << 24) | (nBitsTotal >>> 8)) & 0xff00ff00)
+ );
+ data.sigBytes = (dataWords.length + 1) * 4;
+
+ // Hash final blocks
+ this._process();
+
+ // Shortcuts
+ var hash = this._hash;
+ var H = hash.words;
+
+ // Swap endian
+ for (var i = 0; i < 5; i++) {
+ // Shortcut
+ var H_i = H[i];
+
+ // Swap
+ H[i] = (((H_i << 8) | (H_i >>> 24)) & 0x00ff00ff) |
+ (((H_i << 24) | (H_i >>> 8)) & 0xff00ff00);
+ }
+
+ // Return final computed hash
+ return hash;
+ },
+
+ clone: function () {
+ var clone = Hasher.clone.call(this);
+ clone._hash = this._hash.clone();
+
+ return clone;
+ }
+ });
+
+
+ function f1(x, y, z) {
+ return ((x) ^ (y) ^ (z));
+
+ }
+
+ function f2(x, y, z) {
+ return (((x)&(y)) | ((~x)&(z)));
+ }
+
+ function f3(x, y, z) {
+ return (((x) | (~(y))) ^ (z));
+ }
+
+ function f4(x, y, z) {
+ return (((x) & (z)) | ((y)&(~(z))));
+ }
+
+ function f5(x, y, z) {
+ return ((x) ^ ((y) |(~(z))));
+
+ }
+
+ function rotl(x,n) {
+ return (x<<n) | (x>>>(32-n));
+ }
+
+
+ /**
+ * Shortcut function to the hasher's object interface.
+ *
+ * @param {WordArray|string} message The message to hash.
+ *
+ * @return {WordArray} The hash.
+ *
+ * @static
+ *
+ * @example
+ *
+ * var hash = CryptoJS.RIPEMD160('message');
+ * var hash = CryptoJS.RIPEMD160(wordArray);
+ */
+ C.RIPEMD160 = Hasher._createHelper(RIPEMD160);
+
+ /**
+ * Shortcut function to the HMAC's object interface.
+ *
+ * @param {WordArray|string} message The message to hash.
+ * @param {WordArray|string} key The secret key.
+ *
+ * @return {WordArray} The HMAC.
+ *
+ * @static
+ *
+ * @example
+ *
+ * var hmac = CryptoJS.HmacRIPEMD160(message, key);
+ */
+ C.HmacRIPEMD160 = Hasher._createHmacHelper(RIPEMD160);
+ }(Math));
+
+
+ return CryptoJS.RIPEMD160;
+
+}));
\ No newline at end of file
diff --git a/node_modules/crypto-js/sha1.js b/node_modules/crypto-js/sha1.js
new file mode 100644
index 0000000..6691149
--- /dev/null
+++ b/node_modules/crypto-js/sha1.js
@@ -0,0 +1,150 @@
+;(function (root, factory) {
+ if (typeof exports === "object") {
+ // CommonJS
+ module.exports = exports = factory(require("./core"));
+ }
+ else if (typeof define === "function" && define.amd) {
+ // AMD
+ define(["./core"], factory);
+ }
+ else {
+ // Global (browser)
+ factory(root.CryptoJS);
+ }
+}(this, function (CryptoJS) {
+
+ (function () {
+ // Shortcuts
+ var C = CryptoJS;
+ var C_lib = C.lib;
+ var WordArray = C_lib.WordArray;
+ var Hasher = C_lib.Hasher;
+ var C_algo = C.algo;
+
+ // Reusable object
+ var W = [];
+
+ /**
+ * SHA-1 hash algorithm.
+ */
+ var SHA1 = C_algo.SHA1 = Hasher.extend({
+ _doReset: function () {
+ this._hash = new WordArray.init([
+ 0x67452301, 0xefcdab89,
+ 0x98badcfe, 0x10325476,
+ 0xc3d2e1f0
+ ]);
+ },
+
+ _doProcessBlock: function (M, offset) {
+ // Shortcut
+ var H = this._hash.words;
+
+ // Working variables
+ var a = H[0];
+ var b = H[1];
+ var c = H[2];
+ var d = H[3];
+ var e = H[4];
+
+ // Computation
+ for (var i = 0; i < 80; i++) {
+ if (i < 16) {
+ W[i] = M[offset + i] | 0;
+ } else {
+ var n = W[i - 3] ^ W[i - 8] ^ W[i - 14] ^ W[i - 16];
+ W[i] = (n << 1) | (n >>> 31);
+ }
+
+ var t = ((a << 5) | (a >>> 27)) + e + W[i];
+ if (i < 20) {
+ t += ((b & c) | (~b & d)) + 0x5a827999;
+ } else if (i < 40) {
+ t += (b ^ c ^ d) + 0x6ed9eba1;
+ } else if (i < 60) {
+ t += ((b & c) | (b & d) | (c & d)) - 0x70e44324;
+ } else /* if (i < 80) */ {
+ t += (b ^ c ^ d) - 0x359d3e2a;
+ }
+
+ e = d;
+ d = c;
+ c = (b << 30) | (b >>> 2);
+ b = a;
+ a = t;
+ }
+
+ // Intermediate hash value
+ H[0] = (H[0] + a) | 0;
+ H[1] = (H[1] + b) | 0;
+ H[2] = (H[2] + c) | 0;
+ H[3] = (H[3] + d) | 0;
+ H[4] = (H[4] + e) | 0;
+ },
+
+ _doFinalize: function () {
+ // Shortcuts
+ var data = this._data;
+ var dataWords = data.words;
+
+ var nBitsTotal = this._nDataBytes * 8;
+ var nBitsLeft = data.sigBytes * 8;
+
+ // Add padding
+ dataWords[nBitsLeft >>> 5] |= 0x80 << (24 - nBitsLeft % 32);
+ dataWords[(((nBitsLeft + 64) >>> 9) << 4) + 14] = Math.floor(nBitsTotal / 0x100000000);
+ dataWords[(((nBitsLeft + 64) >>> 9) << 4) + 15] = nBitsTotal;
+ data.sigBytes = dataWords.length * 4;
+
+ // Hash final blocks
+ this._process();
+
+ // Return final computed hash
+ return this._hash;
+ },
+
+ clone: function () {
+ var clone = Hasher.clone.call(this);
+ clone._hash = this._hash.clone();
+
+ return clone;
+ }
+ });
+
+ /**
+ * Shortcut function to the hasher's object interface.
+ *
+ * @param {WordArray|string} message The message to hash.
+ *
+ * @return {WordArray} The hash.
+ *
+ * @static
+ *
+ * @example
+ *
+ * var hash = CryptoJS.SHA1('message');
+ * var hash = CryptoJS.SHA1(wordArray);
+ */
+ C.SHA1 = Hasher._createHelper(SHA1);
+
+ /**
+ * Shortcut function to the HMAC's object interface.
+ *
+ * @param {WordArray|string} message The message to hash.
+ * @param {WordArray|string} key The secret key.
+ *
+ * @return {WordArray} The HMAC.
+ *
+ * @static
+ *
+ * @example
+ *
+ * var hmac = CryptoJS.HmacSHA1(message, key);
+ */
+ C.HmacSHA1 = Hasher._createHmacHelper(SHA1);
+ }());
+
+
+ return CryptoJS.SHA1;
+
+}));
\ No newline at end of file
diff --git a/node_modules/crypto-js/sha224.js b/node_modules/crypto-js/sha224.js
new file mode 100644
index 0000000..d8ce988
--- /dev/null
+++ b/node_modules/crypto-js/sha224.js
@@ -0,0 +1,80 @@
+;(function (root, factory, undef) {
+ if (typeof exports === "object") {
+ // CommonJS
+ module.exports = exports = factory(require("./core"), require("./sha256"));
+ }
+ else if (typeof define === "function" && define.amd) {
+ // AMD
+ define(["./core", "./sha256"], factory);
+ }
+ else {
+ // Global (browser)
+ factory(root.CryptoJS);
+ }
+}(this, function (CryptoJS) {
+
+ (function () {
+ // Shortcuts
+ var C = CryptoJS;
+ var C_lib = C.lib;
+ var WordArray = C_lib.WordArray;
+ var C_algo = C.algo;
+ var SHA256 = C_algo.SHA256;
+
+ /**
+ * SHA-224 hash algorithm.
+ */
+ var SHA224 = C_algo.SHA224 = SHA256.extend({
+ _doReset: function () {
+ this._hash = new WordArray.init([
+ 0xc1059ed8, 0x367cd507, 0x3070dd17, 0xf70e5939,
+ 0xffc00b31, 0x68581511, 0x64f98fa7, 0xbefa4fa4
+ ]);
+ },
+
+ _doFinalize: function () {
+ var hash = SHA256._doFinalize.call(this);
+
+ hash.sigBytes -= 4;
+
+ return hash;
+ }
+ });
+
+ /**
+ * Shortcut function to the hasher's object interface.
+ *
+ * @param {WordArray|string} message The message to hash.
+ *
+ * @return {WordArray} The hash.
+ *
+ * @static
+ *
+ * @example
+ *
+ * var hash = CryptoJS.SHA224('message');
+ * var hash = CryptoJS.SHA224(wordArray);
+ */
+ C.SHA224 = SHA256._createHelper(SHA224);
+
+ /**
+ * Shortcut function to the HMAC's object interface.
+ *
+ * @param {WordArray|string} message The message to hash.
+ * @param {WordArray|string} key The secret key.
+ *
+ * @return {WordArray} The HMAC.
+ *
+ * @static
+ *
+ * @example
+ *
+ * var hmac = CryptoJS.HmacSHA224(message, key);
+ */
+ C.HmacSHA224 = SHA256._createHmacHelper(SHA224);
+ }());
+
+
+ return CryptoJS.SHA224;
+
+}));
\ No newline at end of file
diff --git a/node_modules/crypto-js/sha256.js b/node_modules/crypto-js/sha256.js
new file mode 100644
index 0000000..de2d7fc
--- /dev/null
+++ b/node_modules/crypto-js/sha256.js
@@ -0,0 +1,199 @@
+;(function (root, factory) {
+ if (typeof exports === "object") {
+ // CommonJS
+ module.exports = exports = factory(require("./core"));
+ }
+ else if (typeof define === "function" && define.amd) {
+ // AMD
+ define(["./core"], factory);
+ }
+ else {
+ // Global (browser)
+ factory(root.CryptoJS);
+ }
+}(this, function (CryptoJS) {
+
+ (function (Math) {
+ // Shortcuts
+ var C = CryptoJS;
+ var C_lib = C.lib;
+ var WordArray = C_lib.WordArray;
+ var Hasher = C_lib.Hasher;
+ var C_algo = C.algo;
+
+ // Initialization and round constants tables
+ var H = [];
+ var K = [];
+
+ // Compute constants
+ (function () {
+ function isPrime(n) {
+ var sqrtN = Math.sqrt(n);
+ for (var factor = 2; factor <= sqrtN; factor++) {
+ if (!(n % factor)) {
+ return false;
+ }
+ }
+
+ return true;
+ }
+
+ function getFractionalBits(n) {
+ return ((n - (n | 0)) * 0x100000000) | 0;
+ }
+
+ var n = 2;
+ var nPrime = 0;
+ while (nPrime < 64) {
+ if (isPrime(n)) {
+ if (nPrime < 8) {
+ H[nPrime] = getFractionalBits(Math.pow(n, 1 / 2));
+ }
+ K[nPrime] = getFractionalBits(Math.pow(n, 1 / 3));
+
+ nPrime++;
+ }
+
+ n++;
+ }
+ }());
+
+ // Reusable object
+ var W = [];
+
+ /**
+ * SHA-256 hash algorithm.
+ */
+ var SHA256 = C_algo.SHA256 = Hasher.extend({
+ _doReset: function () {
+ this._hash = new WordArray.init(H.slice(0));
+ },
+
+ _doProcessBlock: function (M, offset) {
+ // Shortcut
+ var H = this._hash.words;
+
+ // Working variables
+ var a = H[0];
+ var b = H[1];
+ var c = H[2];
+ var d = H[3];
+ var e = H[4];
+ var f = H[5];
+ var g = H[6];
+ var h = H[7];
+
+ // Computation
+ for (var i = 0; i < 64; i++) {
+ if (i < 16) {
+ W[i] = M[offset + i] | 0;
+ } else {
+ var gamma0x = W[i - 15];
+ var gamma0 = ((gamma0x << 25) | (gamma0x >>> 7)) ^
+ ((gamma0x << 14) | (gamma0x >>> 18)) ^
+ (gamma0x >>> 3);
+
+ var gamma1x = W[i - 2];
+ var gamma1 = ((gamma1x << 15) | (gamma1x >>> 17)) ^
+ ((gamma1x << 13) | (gamma1x >>> 19)) ^
+ (gamma1x >>> 10);
+
+ W[i] = gamma0 + W[i - 7] + gamma1 + W[i - 16];
+ }
+
+ var ch = (e & f) ^ (~e & g);
+ var maj = (a & b) ^ (a & c) ^ (b & c);
+
+ var sigma0 = ((a << 30) | (a >>> 2)) ^ ((a << 19) | (a >>> 13)) ^ ((a << 10) | (a >>> 22));
+ var sigma1 = ((e << 26) | (e >>> 6)) ^ ((e << 21) | (e >>> 11)) ^ ((e << 7) | (e >>> 25));
+
+ var t1 = h + sigma1 + ch + K[i] + W[i];
+ var t2 = sigma0 + maj;
+
+ h = g;
+ g = f;
+ f = e;
+ e = (d + t1) | 0;
+ d = c;
+ c = b;
+ b = a;
+ a = (t1 + t2) | 0;
+ }
+
+ // Intermediate hash value
+ H[0] = (H[0] + a) | 0;
+ H[1] = (H[1] + b) | 0;
+ H[2] = (H[2] + c) | 0;
+ H[3] = (H[3] + d) | 0;
+ H[4] = (H[4] + e) | 0;
+ H[5] = (H[5] + f) | 0;
+ H[6] = (H[6] + g) | 0;
+ H[7] = (H[7] + h) | 0;
+ },
+
+ _doFinalize: function () {
+ // Shortcuts
+ var data = this._data;
+ var dataWords = data.words;
+
+ var nBitsTotal = this._nDataBytes * 8;
+ var nBitsLeft = data.sigBytes * 8;
+
+ // Add padding
+ dataWords[nBitsLeft >>> 5] |= 0x80 << (24 - nBitsLeft % 32);
+ dataWords[(((nBitsLeft + 64) >>> 9) << 4) + 14] = Math.floor(nBitsTotal / 0x100000000);
+ dataWords[(((nBitsLeft + 64) >>> 9) << 4) + 15] = nBitsTotal;
+ data.sigBytes = dataWords.length * 4;
+
+ // Hash final blocks
+ this._process();
+
+ // Return final computed hash
+ return this._hash;
+ },
+
+ clone: function () {
+ var clone = Hasher.clone.call(this);
+ clone._hash = this._hash.clone();
+
+ return clone;
+ }
+ });
+
+ /**
+ * Shortcut function to the hasher's object interface.
+ *
+ * @param {WordArray|string} message The message to hash.
+ *
+ * @return {WordArray} The hash.
+ *
+ * @static
+ *
+ * @example
+ *
+ * var hash = CryptoJS.SHA256('message');
+ * var hash = CryptoJS.SHA256(wordArray);
+ */
+ C.SHA256 = Hasher._createHelper(SHA256);
+
+ /**
+ * Shortcut function to the HMAC's object interface.
+ *
+ * @param {WordArray|string} message The message to hash.
+ * @param {WordArray|string} key The secret key.
+ *
+ * @return {WordArray} The HMAC.
+ *
+ * @static
+ *
+ * @example
+ *
+ * var hmac = CryptoJS.HmacSHA256(message, key);
+ */
+ C.HmacSHA256 = Hasher._createHmacHelper(SHA256);
+ }(Math));
+
+
+ return CryptoJS.SHA256;
+
+}));
\ No newline at end of file
diff --git a/node_modules/crypto-js/sha3.js b/node_modules/crypto-js/sha3.js
new file mode 100644
index 0000000..34ad86c
--- /dev/null
+++ b/node_modules/crypto-js/sha3.js
@@ -0,0 +1,326 @@
+;(function (root, factory, undef) {
+ if (typeof exports === "object") {
+ // CommonJS
+ module.exports = exports = factory(require("./core"), require("./x64-core"));
+ }
+ else if (typeof define === "function" && define.amd) {
+ // AMD
+ define(["./core", "./x64-core"], factory);
+ }
+ else {
+ // Global (browser)
+ factory(root.CryptoJS);
+ }
+}(this, function (CryptoJS) {
+
+ (function (Math) {
+ // Shortcuts
+ var C = CryptoJS;
+ var C_lib = C.lib;
+ var WordArray = C_lib.WordArray;
+ var Hasher = C_lib.Hasher;
+ var C_x64 = C.x64;
+ var X64Word = C_x64.Word;
+ var C_algo = C.algo;
+
+ // Constants tables
+ var RHO_OFFSETS = [];
+ var PI_INDEXES = [];
+ var ROUND_CONSTANTS = [];
+
+ // Compute Constants
+ (function () {
+ // Compute rho offset constants
+ var x = 1, y = 0;
+ for (var t = 0; t < 24; t++) {
+ RHO_OFFSETS[x + 5 * y] = ((t + 1) * (t + 2) / 2) % 64;
+
+ var newX = y % 5;
+ var newY = (2 * x + 3 * y) % 5;
+ x = newX;
+ y = newY;
+ }
+
+ // Compute pi index constants
+ for (var x = 0; x < 5; x++) {
+ for (var y = 0; y < 5; y++) {
+ PI_INDEXES[x + 5 * y] = y + ((2 * x + 3 * y) % 5) * 5;
+ }
+ }
+
+ // Compute round constants
+ var LFSR = 0x01;
+ for (var i = 0; i < 24; i++) {
+ var roundConstantMsw = 0;
+ var roundConstantLsw = 0;
+
+ for (var j = 0; j < 7; j++) {
+ if (LFSR & 0x01) {
+ var bitPosition = (1 << j) - 1;
+ if (bitPosition < 32) {
+ roundConstantLsw ^= 1 << bitPosition;
+ } else /* if (bitPosition >= 32) */ {
+ roundConstantMsw ^= 1 << (bitPosition - 32);
+ }
+ }
+
+ // Compute next LFSR
+ if (LFSR & 0x80) {
+ // Primitive polynomial over GF(2): x^8 + x^6 + x^5 + x^4 + 1
+ LFSR = (LFSR << 1) ^ 0x71;
+ } else {
+ LFSR <<= 1;
+ }
+ }
+
+ ROUND_CONSTANTS[i] = X64Word.create(roundConstantMsw, roundConstantLsw);
+ }
+ }());
+
+ // Reusable objects for temporary values
+ var T = [];
+ (function () {
+ for (var i = 0; i < 25; i++) {
+ T[i] = X64Word.create();
+ }
+ }());
+
+ /**
+ * SHA-3 hash algorithm.
+ */
+ var SHA3 = C_algo.SHA3 = Hasher.extend({
+ /**
+ * Configuration options.
+ *
+ * @property {number} outputLength
+ * The desired number of bits in the output hash.
+ * Only values permitted are: 224, 256, 384, 512.
+ * Default: 512
+ */
+ cfg: Hasher.cfg.extend({
+ outputLength: 512
+ }),
+
+ _doReset: function () {
+ var state = this._state = []
+ for (var i = 0; i < 25; i++) {
+ state[i] = new X64Word.init();
+ }
+
+ this.blockSize = (1600 - 2 * this.cfg.outputLength) / 32;
+ },
+
+ _doProcessBlock: function (M, offset) {
+ // Shortcuts
+ var state = this._state;
+ var nBlockSizeLanes = this.blockSize / 2;
+
+ // Absorb
+ for (var i = 0; i < nBlockSizeLanes; i++) {
+ // Shortcuts
+ var M2i = M[offset + 2 * i];
+ var M2i1 = M[offset + 2 * i + 1];
+
+ // Swap endian
+ M2i = (
+ (((M2i << 8) | (M2i >>> 24)) & 0x00ff00ff) |
+ (((M2i << 24) | (M2i >>> 8)) & 0xff00ff00)
+ );
+ M2i1 = (
+ (((M2i1 << 8) | (M2i1 >>> 24)) & 0x00ff00ff) |
+ (((M2i1 << 24) | (M2i1 >>> 8)) & 0xff00ff00)
+ );
+
+ // Absorb message into state
+ var lane = state[i];
+ lane.high ^= M2i1;
+ lane.low ^= M2i;
+ }
+
+ // Rounds
+ for (var round = 0; round < 24; round++) {
+ // Theta
+ for (var x = 0; x < 5; x++) {
+ // Mix column lanes
+ var tMsw = 0, tLsw = 0;
+ for (var y = 0; y < 5; y++) {
+ var lane = state[x + 5 * y];
+ tMsw ^= lane.high;
+ tLsw ^= lane.low;
+ }
+
+ // Temporary values
+ var Tx = T[x];
+ Tx.high = tMsw;
+ Tx.low = tLsw;
+ }
+ for (var x = 0; x < 5; x++) {
+ // Shortcuts
+ var Tx4 = T[(x + 4) % 5];
+ var Tx1 = T[(x + 1) % 5];
+ var Tx1Msw = Tx1.high;
+ var Tx1Lsw = Tx1.low;
+
+ // Mix surrounding columns
+ var tMsw = Tx4.high ^ ((Tx1Msw << 1) | (Tx1Lsw >>> 31));
+ var tLsw = Tx4.low ^ ((Tx1Lsw << 1) | (Tx1Msw >>> 31));
+ for (var y = 0; y < 5; y++) {
+ var lane = state[x + 5 * y];
+ lane.high ^= tMsw;
+ lane.low ^= tLsw;
+ }
+ }
+
+ // Rho Pi
+ for (var laneIndex = 1; laneIndex < 25; laneIndex++) {
+ var tMsw;
+ var tLsw;
+
+ // Shortcuts
+ var lane = state[laneIndex];
+ var laneMsw = lane.high;
+ var laneLsw = lane.low;
+ var rhoOffset = RHO_OFFSETS[laneIndex];
+
+ // Rotate lanes
+ if (rhoOffset < 32) {
+ tMsw = (laneMsw << rhoOffset) | (laneLsw >>> (32 - rhoOffset));
+ tLsw = (laneLsw << rhoOffset) | (laneMsw >>> (32 - rhoOffset));
+ } else /* if (rhoOffset >= 32) */ {
+ tMsw = (laneLsw << (rhoOffset - 32)) | (laneMsw >>> (64 - rhoOffset));
+ tLsw = (laneMsw << (rhoOffset - 32)) | (laneLsw >>> (64 - rhoOffset));
+ }
+
+ // Transpose lanes
+ var TPiLane = T[PI_INDEXES[laneIndex]];
+ TPiLane.high = tMsw;
+ TPiLane.low = tLsw;
+ }
+
+ // Rho pi at x = y = 0
+ var T0 = T[0];
+ var state0 = state[0];
+ T0.high = state0.high;
+ T0.low = state0.low;
+
+ // Chi
+ for (var x = 0; x < 5; x++) {
+ for (var y = 0; y < 5; y++) {
+ // Shortcuts
+ var laneIndex = x + 5 * y;
+ var lane = state[laneIndex];
+ var TLane = T[laneIndex];
+ var Tx1Lane = T[((x + 1) % 5) + 5 * y];
+ var Tx2Lane = T[((x + 2) % 5) + 5 * y];
+
+ // Mix rows
+ lane.high = TLane.high ^ (~Tx1Lane.high & Tx2Lane.high);
+ lane.low = TLane.low ^ (~Tx1Lane.low & Tx2Lane.low);
+ }
+ }
+
+ // Iota
+ var lane = state[0];
+ var roundConstant = ROUND_CONSTANTS[round];
+ lane.high ^= roundConstant.high;
+ lane.low ^= roundConstant.low;
+ }
+ },
+
+ _doFinalize: function () {
+ // Shortcuts
+ var data = this._data;
+ var dataWords = data.words;
+ var nBitsTotal = this._nDataBytes * 8;
+ var nBitsLeft = data.sigBytes * 8;
+ var blockSizeBits = this.blockSize * 32;
+
+ // Add padding
+ dataWords[nBitsLeft >>> 5] |= 0x1 << (24 - nBitsLeft % 32);
+ dataWords[((Math.ceil((nBitsLeft + 1) / blockSizeBits) * blockSizeBits) >>> 5) - 1] |= 0x80;
+ data.sigBytes = dataWords.length * 4;
+
+ // Hash final blocks
+ this._process();
+
+ // Shortcuts
+ var state = this._state;
+ var outputLengthBytes = this.cfg.outputLength / 8;
+ var outputLengthLanes = outputLengthBytes / 8;
+
+ // Squeeze
+ var hashWords = [];
+ for (var i = 0; i < outputLengthLanes; i++) {
+ // Shortcuts
+ var lane = state[i];
+ var laneMsw = lane.high;
+ var laneLsw = lane.low;
+
+ // Swap endian
+ laneMsw = (
+ (((laneMsw << 8) | (laneMsw >>> 24)) & 0x00ff00ff) |
+ (((laneMsw << 24) | (laneMsw >>> 8)) & 0xff00ff00)
+ );
+ laneLsw = (
+ (((laneLsw << 8) | (laneLsw >>> 24)) & 0x00ff00ff) |
+ (((laneLsw << 24) | (laneLsw >>> 8)) & 0xff00ff00)
+ );
+
+ // Squeeze state to retrieve hash
+ hashWords.push(laneLsw);
+ hashWords.push(laneMsw);
+ }
+
+ // Return final computed hash
+ return new WordArray.init(hashWords, outputLengthBytes);
+ },
+
+ clone: function () {
+ var clone = Hasher.clone.call(this);
+
+ var state = clone._state = this._state.slice(0);
+ for (var i = 0; i < 25; i++) {
+ state[i] = state[i].clone();
+ }
+
+ return clone;
+ }
+ });
+
+ /**
+ * Shortcut function to the hasher's object interface.
+ *
+ * @param {WordArray|string} message The message to hash.
+ *
+ * @return {WordArray} The hash.
+ *
+ * @static
+ *
+ * @example
+ *
+ * var hash = CryptoJS.SHA3('message');
+ * var hash = CryptoJS.SHA3(wordArray);
+ */
+ C.SHA3 = Hasher._createHelper(SHA3);
+
+ /**
+ * Shortcut function to the HMAC's object interface.
+ *
+ * @param {WordArray|string} message The message to hash.
+ * @param {WordArray|string} key The secret key.
+ *
+ * @return {WordArray} The HMAC.
+ *
+ * @static
+ *
+ * @example
+ *
+ * var hmac = CryptoJS.HmacSHA3(message, key);
+ */
+ C.HmacSHA3 = Hasher._createHmacHelper(SHA3);
+ }(Math));
+
+
+ return CryptoJS.SHA3;
+
+}));
\ No newline at end of file
diff --git a/node_modules/crypto-js/sha384.js b/node_modules/crypto-js/sha384.js
new file mode 100644
index 0000000..a0b95bf
--- /dev/null
+++ b/node_modules/crypto-js/sha384.js
@@ -0,0 +1,83 @@
+;(function (root, factory, undef) {
+ if (typeof exports === "object") {
+ // CommonJS
+ module.exports = exports = factory(require("./core"), require("./x64-core"), require("./sha512"));
+ }
+ else if (typeof define === "function" && define.amd) {
+ // AMD
+ define(["./core", "./x64-core", "./sha512"], factory);
+ }
+ else {
+ // Global (browser)
+ factory(root.CryptoJS);
+ }
+}(this, function (CryptoJS) {
+
+ (function () {
+ // Shortcuts
+ var C = CryptoJS;
+ var C_x64 = C.x64;
+ var X64Word = C_x64.Word;
+ var X64WordArray = C_x64.WordArray;
+ var C_algo = C.algo;
+ var SHA512 = C_algo.SHA512;
+
+ /**
+ * SHA-384 hash algorithm.
+ */
+ var SHA384 = C_algo.SHA384 = SHA512.extend({
+ _doReset: function () {
+ this._hash = new X64WordArray.init([
+ new X64Word.init(0xcbbb9d5d, 0xc1059ed8), new X64Word.init(0x629a292a, 0x367cd507),
+ new X64Word.init(0x9159015a, 0x3070dd17), new X64Word.init(0x152fecd8, 0xf70e5939),
+ new X64Word.init(0x67332667, 0xffc00b31), new X64Word.init(0x8eb44a87, 0x68581511),
+ new X64Word.init(0xdb0c2e0d, 0x64f98fa7), new X64Word.init(0x47b5481d, 0xbefa4fa4)
+ ]);
+ },
+
+ _doFinalize: function () {
+ var hash = SHA512._doFinalize.call(this);
+
+ hash.sigBytes -= 16;
+
+ return hash;
+ }
+ });
+
+ /**
+ * Shortcut function to the hasher's object interface.
+ *
+ * @param {WordArray|string} message The message to hash.
+ *
+ * @return {WordArray} The hash.
+ *
+ * @static
+ *
+ * @example
+ *
+ * var hash = CryptoJS.SHA384('message');
+ * var hash = CryptoJS.SHA384(wordArray);
+ */
+ C.SHA384 = SHA512._createHelper(SHA384);
+
+ /**
+ * Shortcut function to the HMAC's object interface.
+ *
+ * @param {WordArray|string} message The message to hash.
+ * @param {WordArray|string} key The secret key.
+ *
+ * @return {WordArray} The HMAC.
+ *
+ * @static
+ *
+ * @example
+ *
+ * var hmac = CryptoJS.HmacSHA384(message, key);
+ */
+ C.HmacSHA384 = SHA512._createHmacHelper(SHA384);
+ }());
+
+
+ return CryptoJS.SHA384;
+
+}));
\ No newline at end of file
diff --git a/node_modules/crypto-js/sha512.js b/node_modules/crypto-js/sha512.js
new file mode 100644
index 0000000..d274ab0
--- /dev/null
+++ b/node_modules/crypto-js/sha512.js
@@ -0,0 +1,326 @@
+;(function (root, factory, undef) {
+ if (typeof exports === "object") {
+ // CommonJS
+ module.exports = exports = factory(require("./core"), require("./x64-core"));
+ }
+ else if (typeof define === "function" && define.amd) {
+ // AMD
+ define(["./core", "./x64-core"], factory);
+ }
+ else {
+ // Global (browser)
+ factory(root.CryptoJS);
+ }
+}(this, function (CryptoJS) {
+
+ (function () {
+ // Shortcuts
+ var C = CryptoJS;
+ var C_lib = C.lib;
+ var Hasher = C_lib.Hasher;
+ var C_x64 = C.x64;
+ var X64Word = C_x64.Word;
+ var X64WordArray = C_x64.WordArray;
+ var C_algo = C.algo;
+
+ function X64Word_create() {
+ return X64Word.create.apply(X64Word, arguments);
+ }
+
+ // Constants
+ var K = [
+ X64Word_create(0x428a2f98, 0xd728ae22), X64Word_create(0x71374491, 0x23ef65cd),
+ X64Word_create(0xb5c0fbcf, 0xec4d3b2f), X64Word_create(0xe9b5dba5, 0x8189dbbc),
+ X64Word_create(0x3956c25b, 0xf348b538), X64Word_create(0x59f111f1, 0xb605d019),
+ X64Word_create(0x923f82a4, 0xaf194f9b), X64Word_create(0xab1c5ed5, 0xda6d8118),
+ X64Word_create(0xd807aa98, 0xa3030242), X64Word_create(0x12835b01, 0x45706fbe),
+ X64Word_create(0x243185be, 0x4ee4b28c), X64Word_create(0x550c7dc3, 0xd5ffb4e2),
+ X64Word_create(0x72be5d74, 0xf27b896f), X64Word_create(0x80deb1fe, 0x3b1696b1),
+ X64Word_create(0x9bdc06a7, 0x25c71235), X64Word_create(0xc19bf174, 0xcf692694),
+ X64Word_create(0xe49b69c1, 0x9ef14ad2), X64Word_create(0xefbe4786, 0x384f25e3),
+ X64Word_create(0x0fc19dc6, 0x8b8cd5b5), X64Word_create(0x240ca1cc, 0x77ac9c65),
+ X64Word_create(0x2de92c6f, 0x592b0275), X64Word_create(0x4a7484aa, 0x6ea6e483),
+ X64Word_create(0x5cb0a9dc, 0xbd41fbd4), X64Word_create(0x76f988da, 0x831153b5),
+ X64Word_create(0x983e5152, 0xee66dfab), X64Word_create(0xa831c66d, 0x2db43210),
+ X64Word_create(0xb00327c8, 0x98fb213f), X64Word_create(0xbf597fc7, 0xbeef0ee4),
+ X64Word_create(0xc6e00bf3, 0x3da88fc2), X64Word_create(0xd5a79147, 0x930aa725),
+ X64Word_create(0x06ca6351, 0xe003826f), X64Word_create(0x14292967, 0x0a0e6e70),
+ X64Word_create(0x27b70a85, 0x46d22ffc), X64Word_create(0x2e1b2138, 0x5c26c926),
+ X64Word_create(0x4d2c6dfc, 0x5ac42aed), X64Word_create(0x53380d13, 0x9d95b3df),
+ X64Word_create(0x650a7354, 0x8baf63de), X64Word_create(0x766a0abb, 0x3c77b2a8),
+ X64Word_create(0x81c2c92e, 0x47edaee6), X64Word_create(0x92722c85, 0x1482353b),
+ X64Word_create(0xa2bfe8a1, 0x4cf10364), X64Word_create(0xa81a664b, 0xbc423001),
+ X64Word_create(0xc24b8b70, 0xd0f89791), X64Word_create(0xc76c51a3, 0x0654be30),
+ X64Word_create(0xd192e819, 0xd6ef5218), X64Word_create(0xd6990624, 0x5565a910),
+ X64Word_create(0xf40e3585, 0x5771202a), X64Word_create(0x106aa070, 0x32bbd1b8),
+ X64Word_create(0x19a4c116, 0xb8d2d0c8), X64Word_create(0x1e376c08, 0x5141ab53),
+ X64Word_create(0x2748774c, 0xdf8eeb99), X64Word_create(0x34b0bcb5, 0xe19b48a8),
+ X64Word_create(0x391c0cb3, 0xc5c95a63), X64Word_create(0x4ed8aa4a, 0xe3418acb),
+ X64Word_create(0x5b9cca4f, 0x7763e373), X64Word_create(0x682e6ff3, 0xd6b2b8a3),
+ X64Word_create(0x748f82ee, 0x5defb2fc), X64Word_create(0x78a5636f, 0x43172f60),
+ X64Word_create(0x84c87814, 0xa1f0ab72), X64Word_create(0x8cc70208, 0x1a6439ec),
+ X64Word_create(0x90befffa, 0x23631e28), X64Word_create(0xa4506ceb, 0xde82bde9),
+ X64Word_create(0xbef9a3f7, 0xb2c67915), X64Word_create(0xc67178f2, 0xe372532b),
+ X64Word_create(0xca273ece, 0xea26619c), X64Word_create(0xd186b8c7, 0x21c0c207),
+ X64Word_create(0xeada7dd6, 0xcde0eb1e), X64Word_create(0xf57d4f7f, 0xee6ed178),
+ X64Word_create(0x06f067aa, 0x72176fba), X64Word_create(0x0a637dc5, 0xa2c898a6),
+ X64Word_create(0x113f9804, 0xbef90dae), X64Word_create(0x1b710b35, 0x131c471b),
+ X64Word_create(0x28db77f5, 0x23047d84), X64Word_create(0x32caab7b, 0x40c72493),
+ X64Word_create(0x3c9ebe0a, 0x15c9bebc), X64Word_create(0x431d67c4, 0x9c100d4c),
+ X64Word_create(0x4cc5d4be, 0xcb3e42b6), X64Word_create(0x597f299c, 0xfc657e2a),
+ X64Word_create(0x5fcb6fab, 0x3ad6faec), X64Word_create(0x6c44198c, 0x4a475817)
+ ];
+
+ // Reusable objects
+ var W = [];
+ (function () {
+ for (var i = 0; i < 80; i++) {
+ W[i] = X64Word_create();
+ }
+ }());
+
+ /**
+ * SHA-512 hash algorithm.
+ */
+ var SHA512 = C_algo.SHA512 = Hasher.extend({
+ _doReset: function () {
+ this._hash = new X64WordArray.init([
+ new X64Word.init(0x6a09e667, 0xf3bcc908), new X64Word.init(0xbb67ae85, 0x84caa73b),
+ new X64Word.init(0x3c6ef372, 0xfe94f82b), new X64Word.init(0xa54ff53a, 0x5f1d36f1),
+ new X64Word.init(0x510e527f, 0xade682d1), new X64Word.init(0x9b05688c, 0x2b3e6c1f),
+ new X64Word.init(0x1f83d9ab, 0xfb41bd6b), new X64Word.init(0x5be0cd19, 0x137e2179)
+ ]);
+ },
+
+ _doProcessBlock: function (M, offset) {
+ // Shortcuts
+ var H = this._hash.words;
+
+ var H0 = H[0];
+ var H1 = H[1];
+ var H2 = H[2];
+ var H3 = H[3];
+ var H4 = H[4];
+ var H5 = H[5];
+ var H6 = H[6];
+ var H7 = H[7];
+
+ var H0h = H0.high;
+ var H0l = H0.low;
+ var H1h = H1.high;
+ var H1l = H1.low;
+ var H2h = H2.high;
+ var H2l = H2.low;
+ var H3h = H3.high;
+ var H3l = H3.low;
+ var H4h = H4.high;
+ var H4l = H4.low;
+ var H5h = H5.high;
+ var H5l = H5.low;
+ var H6h = H6.high;
+ var H6l = H6.low;
+ var H7h = H7.high;
+ var H7l = H7.low;
+
+ // Working variables
+ var ah = H0h;
+ var al = H0l;
+ var bh = H1h;
+ var bl = H1l;
+ var ch = H2h;
+ var cl = H2l;
+ var dh = H3h;
+ var dl = H3l;
+ var eh = H4h;
+ var el = H4l;
+ var fh = H5h;
+ var fl = H5l;
+ var gh = H6h;
+ var gl = H6l;
+ var hh = H7h;
+ var hl = H7l;
+
+ // Rounds
+ for (var i = 0; i < 80; i++) {
+ var Wil;
+ var Wih;
+
+ // Shortcut
+ var Wi = W[i];
+
+ // Extend message
+ if (i < 16) {
+ Wih = Wi.high = M[offset + i * 2] | 0;
+ Wil = Wi.low = M[offset + i * 2 + 1] | 0;
+ } else {
+ // Gamma0
+ var gamma0x = W[i - 15];
+ var gamma0xh = gamma0x.high;
+ var gamma0xl = gamma0x.low;
+ var gamma0h = ((gamma0xh >>> 1) | (gamma0xl << 31)) ^ ((gamma0xh >>> 8) | (gamma0xl << 24)) ^ (gamma0xh >>> 7);
+ var gamma0l = ((gamma0xl >>> 1) | (gamma0xh << 31)) ^ ((gamma0xl >>> 8) | (gamma0xh << 24)) ^ ((gamma0xl >>> 7) | (gamma0xh << 25));
+
+ // Gamma1
+ var gamma1x = W[i - 2];
+ var gamma1xh = gamma1x.high;
+ var gamma1xl = gamma1x.low;
+ var gamma1h = ((gamma1xh >>> 19) | (gamma1xl << 13)) ^ ((gamma1xh << 3) | (gamma1xl >>> 29)) ^ (gamma1xh >>> 6);
+ var gamma1l = ((gamma1xl >>> 19) | (gamma1xh << 13)) ^ ((gamma1xl << 3) | (gamma1xh >>> 29)) ^ ((gamma1xl >>> 6) | (gamma1xh << 26));
+
+ // W[i] = gamma0 + W[i - 7] + gamma1 + W[i - 16]
+ var Wi7 = W[i - 7];
+ var Wi7h = Wi7.high;
+ var Wi7l = Wi7.low;
+
+ var Wi16 = W[i - 16];
+ var Wi16h = Wi16.high;
+ var Wi16l = Wi16.low;
+
+ Wil = gamma0l + Wi7l;
+ Wih = gamma0h + Wi7h + ((Wil >>> 0) < (gamma0l >>> 0) ? 1 : 0);
+ Wil = Wil + gamma1l;
+ Wih = Wih + gamma1h + ((Wil >>> 0) < (gamma1l >>> 0) ? 1 : 0);
+ Wil = Wil + Wi16l;
+ Wih = Wih + Wi16h + ((Wil >>> 0) < (Wi16l >>> 0) ? 1 : 0);
+
+ Wi.high = Wih;
+ Wi.low = Wil;
+ }
+
+ var chh = (eh & fh) ^ (~eh & gh);
+ var chl = (el & fl) ^ (~el & gl);
+ var majh = (ah & bh) ^ (ah & ch) ^ (bh & ch);
+ var majl = (al & bl) ^ (al & cl) ^ (bl & cl);
+
+ var sigma0h = ((ah >>> 28) | (al << 4)) ^ ((ah << 30) | (al >>> 2)) ^ ((ah << 25) | (al >>> 7));
+ var sigma0l = ((al >>> 28) | (ah << 4)) ^ ((al << 30) | (ah >>> 2)) ^ ((al << 25) | (ah >>> 7));
+ var sigma1h = ((eh >>> 14) | (el << 18)) ^ ((eh >>> 18) | (el << 14)) ^ ((eh << 23) | (el >>> 9));
+ var sigma1l = ((el >>> 14) | (eh << 18)) ^ ((el >>> 18) | (eh << 14)) ^ ((el << 23) | (eh >>> 9));
+
+ // t1 = h + sigma1 + ch + K[i] + W[i]
+ var Ki = K[i];
+ var Kih = Ki.high;
+ var Kil = Ki.low;
+
+ var t1l = hl + sigma1l;
+ var t1h = hh + sigma1h + ((t1l >>> 0) < (hl >>> 0) ? 1 : 0);
+ var t1l = t1l + chl;
+ var t1h = t1h + chh + ((t1l >>> 0) < (chl >>> 0) ? 1 : 0);
+ var t1l = t1l + Kil;
+ var t1h = t1h + Kih + ((t1l >>> 0) < (Kil >>> 0) ? 1 : 0);
+ var t1l = t1l + Wil;
+ var t1h = t1h + Wih + ((t1l >>> 0) < (Wil >>> 0) ? 1 : 0);
+
+ // t2 = sigma0 + maj
+ var t2l = sigma0l + majl;
+ var t2h = sigma0h + majh + ((t2l >>> 0) < (sigma0l >>> 0) ? 1 : 0);
+
+ // Update working variables
+ hh = gh;
+ hl = gl;
+ gh = fh;
+ gl = fl;
+ fh = eh;
+ fl = el;
+ el = (dl + t1l) | 0;
+ eh = (dh + t1h + ((el >>> 0) < (dl >>> 0) ? 1 : 0)) | 0;
+ dh = ch;
+ dl = cl;
+ ch = bh;
+ cl = bl;
+ bh = ah;
+ bl = al;
+ al = (t1l + t2l) | 0;
+ ah = (t1h + t2h + ((al >>> 0) < (t1l >>> 0) ? 1 : 0)) | 0;
+ }
+
+ // Intermediate hash value
+ H0l = H0.low = (H0l + al);
+ H0.high = (H0h + ah + ((H0l >>> 0) < (al >>> 0) ? 1 : 0));
+ H1l = H1.low = (H1l + bl);
+ H1.high = (H1h + bh + ((H1l >>> 0) < (bl >>> 0) ? 1 : 0));
+ H2l = H2.low = (H2l + cl);
+ H2.high = (H2h + ch + ((H2l >>> 0) < (cl >>> 0) ? 1 : 0));
+ H3l = H3.low = (H3l + dl);
+ H3.high = (H3h + dh + ((H3l >>> 0) < (dl >>> 0) ? 1 : 0));
+ H4l = H4.low = (H4l + el);
+ H4.high = (H4h + eh + ((H4l >>> 0) < (el >>> 0) ? 1 : 0));
+ H5l = H5.low = (H5l + fl);
+ H5.high = (H5h + fh + ((H5l >>> 0) < (fl >>> 0) ? 1 : 0));
+ H6l = H6.low = (H6l + gl);
+ H6.high = (H6h + gh + ((H6l >>> 0) < (gl >>> 0) ? 1 : 0));
+ H7l = H7.low = (H7l + hl);
+ H7.high = (H7h + hh + ((H7l >>> 0) < (hl >>> 0) ? 1 : 0));
+ },
+
+ _doFinalize: function () {
+ // Shortcuts
+ var data = this._data;
+ var dataWords = data.words;
+
+ var nBitsTotal = this._nDataBytes * 8;
+ var nBitsLeft = data.sigBytes * 8;
+
+ // Add padding
+ dataWords[nBitsLeft >>> 5] |= 0x80 << (24 - nBitsLeft % 32);
+ dataWords[(((nBitsLeft + 128) >>> 10) << 5) + 30] = Math.floor(nBitsTotal / 0x100000000);
+ dataWords[(((nBitsLeft + 128) >>> 10) << 5) + 31] = nBitsTotal;
+ data.sigBytes = dataWords.length * 4;
+
+ // Hash final blocks
+ this._process();
+
+ // Convert hash to 32-bit word array before returning
+ var hash = this._hash.toX32();
+
+ // Return final computed hash
+ return hash;
+ },
+
+ clone: function () {
+ var clone = Hasher.clone.call(this);
+ clone._hash = this._hash.clone();
+
+ return clone;
+ },
+
+ blockSize: 1024/32
+ });
+
+ /**
+ * Shortcut function to the hasher's object interface.
+ *
+ * @param {WordArray|string} message The message to hash.
+ *
+ * @return {WordArray} The hash.
+ *
+ * @static
+ *
+ * @example
+ *
+ * var hash = CryptoJS.SHA512('message');
+ * var hash = CryptoJS.SHA512(wordArray);
+ */
+ C.SHA512 = Hasher._createHelper(SHA512);
+
+ /**
+ * Shortcut function to the HMAC's object interface.
+ *
+ * @param {WordArray|string} message The message to hash.
+ * @param {WordArray|string} key The secret key.
+ *
+ * @return {WordArray} The HMAC.
+ *
+ * @static
+ *
+ * @example
+ *
+ * var hmac = CryptoJS.HmacSHA512(message, key);
+ */
+ C.HmacSHA512 = Hasher._createHmacHelper(SHA512);
+ }());
+
+
+ return CryptoJS.SHA512;
+
+}));
\ No newline at end of file
diff --git a/node_modules/crypto-js/tripledes.js b/node_modules/crypto-js/tripledes.js
new file mode 100644
index 0000000..1a92477
--- /dev/null
+++ b/node_modules/crypto-js/tripledes.js
@@ -0,0 +1,779 @@
+;(function (root, factory, undef) {
+ if (typeof exports === "object") {
+ // CommonJS
+ module.exports = exports = factory(require("./core"), require("./enc-base64"), require("./md5"), require("./evpkdf"), require("./cipher-core"));
+ }
+ else if (typeof define === "function" && define.amd) {
+ // AMD
+ define(["./core", "./enc-base64", "./md5", "./evpkdf", "./cipher-core"], factory);
+ }
+ else {
+ // Global (browser)
+ factory(root.CryptoJS);
+ }
+}(this, function (CryptoJS) {
+
+ (function () {
+ // Shortcuts
+ var C = CryptoJS;
+ var C_lib = C.lib;
+ var WordArray = C_lib.WordArray;
+ var BlockCipher = C_lib.BlockCipher;
+ var C_algo = C.algo;
+
+ // Permuted Choice 1 constants
+ var PC1 = [
+ 57, 49, 41, 33, 25, 17, 9, 1,
+ 58, 50, 42, 34, 26, 18, 10, 2,
+ 59, 51, 43, 35, 27, 19, 11, 3,
+ 60, 52, 44, 36, 63, 55, 47, 39,
+ 31, 23, 15, 7, 62, 54, 46, 38,
+ 30, 22, 14, 6, 61, 53, 45, 37,
+ 29, 21, 13, 5, 28, 20, 12, 4
+ ];
+
+ // Permuted Choice 2 constants
+ var PC2 = [
+ 14, 17, 11, 24, 1, 5,
+ 3, 28, 15, 6, 21, 10,
+ 23, 19, 12, 4, 26, 8,
+ 16, 7, 27, 20, 13, 2,
+ 41, 52, 31, 37, 47, 55,
+ 30, 40, 51, 45, 33, 48,
+ 44, 49, 39, 56, 34, 53,
+ 46, 42, 50, 36, 29, 32
+ ];
+
+ // Cumulative bit shift constants
+ var BIT_SHIFTS = [1, 2, 4, 6, 8, 10, 12, 14, 15, 17, 19, 21, 23, 25, 27, 28];
+
+ // SBOXes and round permutation constants
+ var SBOX_P = [
+ {
+ 0x0: 0x808200,
+ 0x10000000: 0x8000,
+ 0x20000000: 0x808002,
+ 0x30000000: 0x2,
+ 0x40000000: 0x200,
+ 0x50000000: 0x808202,
+ 0x60000000: 0x800202,
+ 0x70000000: 0x800000,
+ 0x80000000: 0x202,
+ 0x90000000: 0x800200,
+ 0xa0000000: 0x8200,
+ 0xb0000000: 0x808000,
+ 0xc0000000: 0x8002,
+ 0xd0000000: 0x800002,
+ 0xe0000000: 0x0,
+ 0xf0000000: 0x8202,
+ 0x8000000: 0x0,
+ 0x18000000: 0x808202,
+ 0x28000000: 0x8202,
+ 0x38000000: 0x8000,
+ 0x48000000: 0x808200,
+ 0x58000000: 0x200,
+ 0x68000000: 0x808002,
+ 0x78000000: 0x2,
+ 0x88000000: 0x800200,
+ 0x98000000: 0x8200,
+ 0xa8000000: 0x808000,
+ 0xb8000000: 0x800202,
+ 0xc8000000: 0x800002,
+ 0xd8000000: 0x8002,
+ 0xe8000000: 0x202,
+ 0xf8000000: 0x800000,
+ 0x1: 0x8000,
+ 0x10000001: 0x2,
+ 0x20000001: 0x808200,
+ 0x30000001: 0x800000,
+ 0x40000001: 0x808002,
+ 0x50000001: 0x8200,
+ 0x60000001: 0x200,
+ 0x70000001: 0x800202,
+ 0x80000001: 0x808202,
+ 0x90000001: 0x808000,
+ 0xa0000001: 0x800002,
+ 0xb0000001: 0x8202,
+ 0xc0000001: 0x202,
+ 0xd0000001: 0x800200,
+ 0xe0000001: 0x8002,
+ 0xf0000001: 0x0,
+ 0x8000001: 0x808202,
+ 0x18000001: 0x808000,
+ 0x28000001: 0x800000,
+ 0x38000001: 0x200,
+ 0x48000001: 0x8000,
+ 0x58000001: 0x800002,
+ 0x68000001: 0x2,
+ 0x78000001: 0x8202,
+ 0x88000001: 0x8002,
+ 0x98000001: 0x800202,
+ 0xa8000001: 0x202,
+ 0xb8000001: 0x808200,
+ 0xc8000001: 0x800200,
+ 0xd8000001: 0x0,
+ 0xe8000001: 0x8200,
+ 0xf8000001: 0x808002
+ },
+ {
+ 0x0: 0x40084010,
+ 0x1000000: 0x4000,
+ 0x2000000: 0x80000,
+ 0x3000000: 0x40080010,
+ 0x4000000: 0x40000010,
+ 0x5000000: 0x40084000,
+ 0x6000000: 0x40004000,
+ 0x7000000: 0x10,
+ 0x8000000: 0x84000,
+ 0x9000000: 0x40004010,
+ 0xa000000: 0x40000000,
+ 0xb000000: 0x84010,
+ 0xc000000: 0x80010,
+ 0xd000000: 0x0,
+ 0xe000000: 0x4010,
+ 0xf000000: 0x40080000,
+ 0x800000: 0x40004000,
+ 0x1800000: 0x84010,
+ 0x2800000: 0x10,
+ 0x3800000: 0x40004010,
+ 0x4800000: 0x40084010,
+ 0x5800000: 0x40000000,
+ 0x6800000: 0x80000,
+ 0x7800000: 0x40080010,
+ 0x8800000: 0x80010,
+ 0x9800000: 0x0,
+ 0xa800000: 0x4000,
+ 0xb800000: 0x40080000,
+ 0xc800000: 0x40000010,
+ 0xd800000: 0x84000,
+ 0xe800000: 0x40084000,
+ 0xf800000: 0x4010,
+ 0x10000000: 0x0,
+ 0x11000000: 0x40080010,
+ 0x12000000: 0x40004010,
+ 0x13000000: 0x40084000,
+ 0x14000000: 0x40080000,
+ 0x15000000: 0x10,
+ 0x16000000: 0x84010,
+ 0x17000000: 0x4000,
+ 0x18000000: 0x4010,
+ 0x19000000: 0x80000,
+ 0x1a000000: 0x80010,
+ 0x1b000000: 0x40000010,
+ 0x1c000000: 0x84000,
+ 0x1d000000: 0x40004000,
+ 0x1e000000: 0x40000000,
+ 0x1f000000: 0x40084010,
+ 0x10800000: 0x84010,
+ 0x11800000: 0x80000,
+ 0x12800000: 0x40080000,
+ 0x13800000: 0x4000,
+ 0x14800000: 0x40004000,
+ 0x15800000: 0x40084010,
+ 0x16800000: 0x10,
+ 0x17800000: 0x40000000,
+ 0x18800000: 0x40084000,
+ 0x19800000: 0x40000010,
+ 0x1a800000: 0x40004010,
+ 0x1b800000: 0x80010,
+ 0x1c800000: 0x0,
+ 0x1d800000: 0x4010,
+ 0x1e800000: 0x40080010,
+ 0x1f800000: 0x84000
+ },
+ {
+ 0x0: 0x104,
+ 0x100000: 0x0,
+ 0x200000: 0x4000100,
+ 0x300000: 0x10104,
+ 0x400000: 0x10004,
+ 0x500000: 0x4000004,
+ 0x600000: 0x4010104,
+ 0x700000: 0x4010000,
+ 0x800000: 0x4000000,
+ 0x900000: 0x4010100,
+ 0xa00000: 0x10100,
+ 0xb00000: 0x4010004,
+ 0xc00000: 0x4000104,
+ 0xd00000: 0x10000,
+ 0xe00000: 0x4,
+ 0xf00000: 0x100,
+ 0x80000: 0x4010100,
+ 0x180000: 0x4010004,
+ 0x280000: 0x0,
+ 0x380000: 0x4000100,
+ 0x480000: 0x4000004,
+ 0x580000: 0x10000,
+ 0x680000: 0x10004,
+ 0x780000: 0x104,
+ 0x880000: 0x4,
+ 0x980000: 0x100,
+ 0xa80000: 0x4010000,
+ 0xb80000: 0x10104,
+ 0xc80000: 0x10100,
+ 0xd80000: 0x4000104,
+ 0xe80000: 0x4010104,
+ 0xf80000: 0x4000000,
+ 0x1000000: 0x4010100,
+ 0x1100000: 0x10004,
+ 0x1200000: 0x10000,
+ 0x1300000: 0x4000100,
+ 0x1400000: 0x100,
+ 0x1500000: 0x4010104,
+ 0x1600000: 0x4000004,
+ 0x1700000: 0x0,
+ 0x1800000: 0x4000104,
+ 0x1900000: 0x4000000,
+ 0x1a00000: 0x4,
+ 0x1b00000: 0x10100,
+ 0x1c00000: 0x4010000,
+ 0x1d00000: 0x104,
+ 0x1e00000: 0x10104,
+ 0x1f00000: 0x4010004,
+ 0x1080000: 0x4000000,
+ 0x1180000: 0x104,
+ 0x1280000: 0x4010100,
+ 0x1380000: 0x0,
+ 0x1480000: 0x10004,
+ 0x1580000: 0x4000100,
+ 0x1680000: 0x100,
+ 0x1780000: 0x4010004,
+ 0x1880000: 0x10000,
+ 0x1980000: 0x4010104,
+ 0x1a80000: 0x10104,
+ 0x1b80000: 0x4000004,
+ 0x1c80000: 0x4000104,
+ 0x1d80000: 0x4010000,
+ 0x1e80000: 0x4,
+ 0x1f80000: 0x10100
+ },
+ {
+ 0x0: 0x80401000,
+ 0x10000: 0x80001040,
+ 0x20000: 0x401040,
+ 0x30000: 0x80400000,
+ 0x40000: 0x0,
+ 0x50000: 0x401000,
+ 0x60000: 0x80000040,
+ 0x70000: 0x400040,
+ 0x80000: 0x80000000,
+ 0x90000: 0x400000,
+ 0xa0000: 0x40,
+ 0xb0000: 0x80001000,
+ 0xc0000: 0x80400040,
+ 0xd0000: 0x1040,
+ 0xe0000: 0x1000,
+ 0xf0000: 0x80401040,
+ 0x8000: 0x80001040,
+ 0x18000: 0x40,
+ 0x28000: 0x80400040,
+ 0x38000: 0x80001000,
+ 0x48000: 0x401000,
+ 0x58000: 0x80401040,
+ 0x68000: 0x0,
+ 0x78000: 0x80400000,
+ 0x88000: 0x1000,
+ 0x98000: 0x80401000,
+ 0xa8000: 0x400000,
+ 0xb8000: 0x1040,
+ 0xc8000: 0x80000000,
+ 0xd8000: 0x400040,
+ 0xe8000: 0x401040,
+ 0xf8000: 0x80000040,
+ 0x100000: 0x400040,
+ 0x110000: 0x401000,
+ 0x120000: 0x80000040,
+ 0x130000: 0x0,
+ 0x140000: 0x1040,
+ 0x150000: 0x80400040,
+ 0x160000: 0x80401000,
+ 0x170000: 0x80001040,
+ 0x180000: 0x80401040,
+ 0x190000: 0x80000000,
+ 0x1a0000: 0x80400000,
+ 0x1b0000: 0x401040,
+ 0x1c0000: 0x80001000,
+ 0x1d0000: 0x400000,
+ 0x1e0000: 0x40,
+ 0x1f0000: 0x1000,
+ 0x108000: 0x80400000,
+ 0x118000: 0x80401040,
+ 0x128000: 0x0,
+ 0x138000: 0x401000,
+ 0x148000: 0x400040,
+ 0x158000: 0x80000000,
+ 0x168000: 0x80001040,
+ 0x178000: 0x40,
+ 0x188000: 0x80000040,
+ 0x198000: 0x1000,
+ 0x1a8000: 0x80001000,
+ 0x1b8000: 0x80400040,
+ 0x1c8000: 0x1040,
+ 0x1d8000: 0x80401000,
+ 0x1e8000: 0x400000,
+ 0x1f8000: 0x401040
+ },
+ {
+ 0x0: 0x80,
+ 0x1000: 0x1040000,
+ 0x2000: 0x40000,
+ 0x3000: 0x20000000,
+ 0x4000: 0x20040080,
+ 0x5000: 0x1000080,
+ 0x6000: 0x21000080,
+ 0x7000: 0x40080,
+ 0x8000: 0x1000000,
+ 0x9000: 0x20040000,
+ 0xa000: 0x20000080,
+ 0xb000: 0x21040080,
+ 0xc000: 0x21040000,
+ 0xd000: 0x0,
+ 0xe000: 0x1040080,
+ 0xf000: 0x21000000,
+ 0x800: 0x1040080,
+ 0x1800: 0x21000080,
+ 0x2800: 0x80,
+ 0x3800: 0x1040000,
+ 0x4800: 0x40000,
+ 0x5800: 0x20040080,
+ 0x6800: 0x21040000,
+ 0x7800: 0x20000000,
+ 0x8800: 0x20040000,
+ 0x9800: 0x0,
+ 0xa800: 0x21040080,
+ 0xb800: 0x1000080,
+ 0xc800: 0x20000080,
+ 0xd800: 0x21000000,
+ 0xe800: 0x1000000,
+ 0xf800: 0x40080,
+ 0x10000: 0x40000,
+ 0x11000: 0x80,
+ 0x12000: 0x20000000,
+ 0x13000: 0x21000080,
+ 0x14000: 0x1000080,
+ 0x15000: 0x21040000,
+ 0x16000: 0x20040080,
+ 0x17000: 0x1000000,
+ 0x18000: 0x21040080,
+ 0x19000: 0x21000000,
+ 0x1a000: 0x1040000,
+ 0x1b000: 0x20040000,
+ 0x1c000: 0x40080,
+ 0x1d000: 0x20000080,
+ 0x1e000: 0x0,
+ 0x1f000: 0x1040080,
+ 0x10800: 0x21000080,
+ 0x11800: 0x1000000,
+ 0x12800: 0x1040000,
+ 0x13800: 0x20040080,
+ 0x14800: 0x20000000,
+ 0x15800: 0x1040080,
+ 0x16800: 0x80,
+ 0x17800: 0x21040000,
+ 0x18800: 0x40080,
+ 0x19800: 0x21040080,
+ 0x1a800: 0x0,
+ 0x1b800: 0x21000000,
+ 0x1c800: 0x1000080,
+ 0x1d800: 0x40000,
+ 0x1e800: 0x20040000,
+ 0x1f800: 0x20000080
+ },
+ {
+ 0x0: 0x10000008,
+ 0x100: 0x2000,
+ 0x200: 0x10200000,
+ 0x300: 0x10202008,
+ 0x400: 0x10002000,
+ 0x500: 0x200000,
+ 0x600: 0x200008,
+ 0x700: 0x10000000,
+ 0x800: 0x0,
+ 0x900: 0x10002008,
+ 0xa00: 0x202000,
+ 0xb00: 0x8,
+ 0xc00: 0x10200008,
+ 0xd00: 0x202008,
+ 0xe00: 0x2008,
+ 0xf00: 0x10202000,
+ 0x80: 0x10200000,
+ 0x180: 0x10202008,
+ 0x280: 0x8,
+ 0x380: 0x200000,
+ 0x480: 0x202008,
+ 0x580: 0x10000008,
+ 0x680: 0x10002000,
+ 0x780: 0x2008,
+ 0x880: 0x200008,
+ 0x980: 0x2000,
+ 0xa80: 0x10002008,
+ 0xb80: 0x10200008,
+ 0xc80: 0x0,
+ 0xd80: 0x10202000,
+ 0xe80: 0x202000,
+ 0xf80: 0x10000000,
+ 0x1000: 0x10002000,
+ 0x1100: 0x10200008,
+ 0x1200: 0x10202008,
+ 0x1300: 0x2008,
+ 0x1400: 0x200000,
+ 0x1500: 0x10000000,
+ 0x1600: 0x10000008,
+ 0x1700: 0x202000,
+ 0x1800: 0x202008,
+ 0x1900: 0x0,
+ 0x1a00: 0x8,
+ 0x1b00: 0x10200000,
+ 0x1c00: 0x2000,
+ 0x1d00: 0x10002008,
+ 0x1e00: 0x10202000,
+ 0x1f00: 0x200008,
+ 0x1080: 0x8,
+ 0x1180: 0x202000,
+ 0x1280: 0x200000,
+ 0x1380: 0x10000008,
+ 0x1480: 0x10002000,
+ 0x1580: 0x2008,
+ 0x1680: 0x10202008,
+ 0x1780: 0x10200000,
+ 0x1880: 0x10202000,
+ 0x1980: 0x10200008,
+ 0x1a80: 0x2000,
+ 0x1b80: 0x202008,
+ 0x1c80: 0x200008,
+ 0x1d80: 0x0,
+ 0x1e80: 0x10000000,
+ 0x1f80: 0x10002008
+ },
+ {
+ 0x0: 0x100000,
+ 0x10: 0x2000401,
+ 0x20: 0x400,
+ 0x30: 0x100401,
+ 0x40: 0x2100401,
+ 0x50: 0x0,
+ 0x60: 0x1,
+ 0x70: 0x2100001,
+ 0x80: 0x2000400,
+ 0x90: 0x100001,
+ 0xa0: 0x2000001,
+ 0xb0: 0x2100400,
+ 0xc0: 0x2100000,
+ 0xd0: 0x401,
+ 0xe0: 0x100400,
+ 0xf0: 0x2000000,
+ 0x8: 0x2100001,
+ 0x18: 0x0,
+ 0x28: 0x2000401,
+ 0x38: 0x2100400,
+ 0x48: 0x100000,
+ 0x58: 0x2000001,
+ 0x68: 0x2000000,
+ 0x78: 0x401,
+ 0x88: 0x100401,
+ 0x98: 0x2000400,
+ 0xa8: 0x2100000,
+ 0xb8: 0x100001,
+ 0xc8: 0x400,
+ 0xd8: 0x2100401,
+ 0xe8: 0x1,
+ 0xf8: 0x100400,
+ 0x100: 0x2000000,
+ 0x110: 0x100000,
+ 0x120: 0x2000401,
+ 0x130: 0x2100001,
+ 0x140: 0x100001,
+ 0x150: 0x2000400,
+ 0x160: 0x2100400,
+ 0x170: 0x100401,
+ 0x180: 0x401,
+ 0x190: 0x2100401,
+ 0x1a0: 0x100400,
+ 0x1b0: 0x1,
+ 0x1c0: 0x0,
+ 0x1d0: 0x2100000,
+ 0x1e0: 0x2000001,
+ 0x1f0: 0x400,
+ 0x108: 0x100400,
+ 0x118: 0x2000401,
+ 0x128: 0x2100001,
+ 0x138: 0x1,
+ 0x148: 0x2000000,
+ 0x158: 0x100000,
+ 0x168: 0x401,
+ 0x178: 0x2100400,
+ 0x188: 0x2000001,
+ 0x198: 0x2100000,
+ 0x1a8: 0x0,
+ 0x1b8: 0x2100401,
+ 0x1c8: 0x100401,
+ 0x1d8: 0x400,
+ 0x1e8: 0x2000400,
+ 0x1f8: 0x100001
+ },
+ {
+ 0x0: 0x8000820,
+ 0x1: 0x20000,
+ 0x2: 0x8000000,
+ 0x3: 0x20,
+ 0x4: 0x20020,
+ 0x5: 0x8020820,
+ 0x6: 0x8020800,
+ 0x7: 0x800,
+ 0x8: 0x8020000,
+ 0x9: 0x8000800,
+ 0xa: 0x20800,
+ 0xb: 0x8020020,
+ 0xc: 0x820,
+ 0xd: 0x0,
+ 0xe: 0x8000020,
+ 0xf: 0x20820,
+ 0x80000000: 0x800,
+ 0x80000001: 0x8020820,
+ 0x80000002: 0x8000820,
+ 0x80000003: 0x8000000,
+ 0x80000004: 0x8020000,
+ 0x80000005: 0x20800,
+ 0x80000006: 0x20820,
+ 0x80000007: 0x20,
+ 0x80000008: 0x8000020,
+ 0x80000009: 0x820,
+ 0x8000000a: 0x20020,
+ 0x8000000b: 0x8020800,
+ 0x8000000c: 0x0,
+ 0x8000000d: 0x8020020,
+ 0x8000000e: 0x8000800,
+ 0x8000000f: 0x20000,
+ 0x10: 0x20820,
+ 0x11: 0x8020800,
+ 0x12: 0x20,
+ 0x13: 0x800,
+ 0x14: 0x8000800,
+ 0x15: 0x8000020,
+ 0x16: 0x8020020,
+ 0x17: 0x20000,
+ 0x18: 0x0,
+ 0x19: 0x20020,
+ 0x1a: 0x8020000,
+ 0x1b: 0x8000820,
+ 0x1c: 0x8020820,
+ 0x1d: 0x20800,
+ 0x1e: 0x820,
+ 0x1f: 0x8000000,
+ 0x80000010: 0x20000,
+ 0x80000011: 0x800,
+ 0x80000012: 0x8020020,
+ 0x80000013: 0x20820,
+ 0x80000014: 0x20,
+ 0x80000015: 0x8020000,
+ 0x80000016: 0x8000000,
+ 0x80000017: 0x8000820,
+ 0x80000018: 0x8020820,
+ 0x80000019: 0x8000020,
+ 0x8000001a: 0x8000800,
+ 0x8000001b: 0x0,
+ 0x8000001c: 0x20800,
+ 0x8000001d: 0x820,
+ 0x8000001e: 0x20020,
+ 0x8000001f: 0x8020800
+ }
+ ];
+
+ // Masks that select the SBOX input
+ var SBOX_MASK = [
+ 0xf8000001, 0x1f800000, 0x01f80000, 0x001f8000,
+ 0x0001f800, 0x00001f80, 0x000001f8, 0x8000001f
+ ];
+
+ /**
+ * DES block cipher algorithm.
+ */
+ var DES = C_algo.DES = BlockCipher.extend({
+ _doReset: function () {
+ // Shortcuts
+ var key = this._key;
+ var keyWords = key.words;
+
+ // Select 56 bits according to PC1
+ var keyBits = [];
+ for (var i = 0; i < 56; i++) {
+ var keyBitPos = PC1[i] - 1;
+ keyBits[i] = (keyWords[keyBitPos >>> 5] >>> (31 - keyBitPos % 32)) & 1;
+ }
+
+ // Assemble 16 subkeys
+ var subKeys = this._subKeys = [];
+ for (var nSubKey = 0; nSubKey < 16; nSubKey++) {
+ // Create subkey
+ var subKey = subKeys[nSubKey] = [];
+
+ // Shortcut
+ var bitShift = BIT_SHIFTS[nSubKey];
+
+ // Select 48 bits according to PC2
+ for (var i = 0; i < 24; i++) {
+ // Select from the left 28 key bits
+ subKey[(i / 6) | 0] |= keyBits[((PC2[i] - 1) + bitShift) % 28] << (31 - i % 6);
+
+ // Select from the right 28 key bits
+ subKey[4 + ((i / 6) | 0)] |= keyBits[28 + (((PC2[i + 24] - 1) + bitShift) % 28)] << (31 - i % 6);
+ }
+
+ // Since each subkey is applied to an expanded 32-bit input,
+ // the subkey can be broken into 8 values scaled to 32-bits,
+ // which allows the key to be used without expansion
+ subKey[0] = (subKey[0] << 1) | (subKey[0] >>> 31);
+ for (var i = 1; i < 7; i++) {
+ subKey[i] = subKey[i] >>> ((i - 1) * 4 + 3);
+ }
+ subKey[7] = (subKey[7] << 5) | (subKey[7] >>> 27);
+ }
+
+ // Compute inverse subkeys
+ var invSubKeys = this._invSubKeys = [];
+ for (var i = 0; i < 16; i++) {
+ invSubKeys[i] = subKeys[15 - i];
+ }
+ },
+
+ encryptBlock: function (M, offset) {
+ this._doCryptBlock(M, offset, this._subKeys);
+ },
+
+ decryptBlock: function (M, offset) {
+ this._doCryptBlock(M, offset, this._invSubKeys);
+ },
+
+ _doCryptBlock: function (M, offset, subKeys) {
+ // Get input
+ this._lBlock = M[offset];
+ this._rBlock = M[offset + 1];
+
+ // Initial permutation
+ exchangeLR.call(this, 4, 0x0f0f0f0f);
+ exchangeLR.call(this, 16, 0x0000ffff);
+ exchangeRL.call(this, 2, 0x33333333);
+ exchangeRL.call(this, 8, 0x00ff00ff);
+ exchangeLR.call(this, 1, 0x55555555);
+
+ // Rounds
+ for (var round = 0; round < 16; round++) {
+ // Shortcuts
+ var subKey = subKeys[round];
+ var lBlock = this._lBlock;
+ var rBlock = this._rBlock;
+
+ // Feistel function
+ var f = 0;
+ for (var i = 0; i < 8; i++) {
+ f |= SBOX_P[i][((rBlock ^ subKey[i]) & SBOX_MASK[i]) >>> 0];
+ }
+ this._lBlock = rBlock;
+ this._rBlock = lBlock ^ f;
+ }
+
+ // Undo swap from last round
+ var t = this._lBlock;
+ this._lBlock = this._rBlock;
+ this._rBlock = t;
+
+ // Final permutation
+ exchangeLR.call(this, 1, 0x55555555);
+ exchangeRL.call(this, 8, 0x00ff00ff);
+ exchangeRL.call(this, 2, 0x33333333);
+ exchangeLR.call(this, 16, 0x0000ffff);
+ exchangeLR.call(this, 4, 0x0f0f0f0f);
+
+ // Set output
+ M[offset] = this._lBlock;
+ M[offset + 1] = this._rBlock;
+ },
+
+ keySize: 64/32,
+
+ ivSize: 64/32,
+
+ blockSize: 64/32
+ });
+
+ // Swap bits across the left and right words
+ function exchangeLR(offset, mask) {
+ var t = ((this._lBlock >>> offset) ^ this._rBlock) & mask;
+ this._rBlock ^= t;
+ this._lBlock ^= t << offset;
+ }
+
+ function exchangeRL(offset, mask) {
+ var t = ((this._rBlock >>> offset) ^ this._lBlock) & mask;
+ this._lBlock ^= t;
+ this._rBlock ^= t << offset;
+ }
+
+ /**
+ * Shortcut functions to the cipher's object interface.
+ *
+ * @example
+ *
+ * var ciphertext = CryptoJS.DES.encrypt(message, key, cfg);
+ * var plaintext = CryptoJS.DES.decrypt(ciphertext, key, cfg);
+ */
+ C.DES = BlockCipher._createHelper(DES);
+
+ /**
+ * Triple-DES block cipher algorithm.
+ */
+ var TripleDES = C_algo.TripleDES = BlockCipher.extend({
+ _doReset: function () {
+ // Shortcuts
+ var key = this._key;
+ var keyWords = key.words;
+ // Make sure the key length is valid (64, 128 or >= 192 bit)
+ if (keyWords.length !== 2 && keyWords.length !== 4 && keyWords.length < 6) {
+ throw new Error('Invalid key length - 3DES requires the key length to be 64, 128, 192 or >192.');
+ }
+
+ // Extend the key according to the keying options defined in 3DES standard
+ var key1 = keyWords.slice(0, 2);
+ var key2 = keyWords.length < 4 ? keyWords.slice(0, 2) : keyWords.slice(2, 4);
+ var key3 = keyWords.length < 6 ? keyWords.slice(0, 2) : keyWords.slice(4, 6);
+
+ // Create DES instances
+ this._des1 = DES.createEncryptor(WordArray.create(key1));
+ this._des2 = DES.createEncryptor(WordArray.create(key2));
+ this._des3 = DES.createEncryptor(WordArray.create(key3));
+ },
+
+ encryptBlock: function (M, offset) {
+ this._des1.encryptBlock(M, offset);
+ this._des2.decryptBlock(M, offset);
+ this._des3.encryptBlock(M, offset);
+ },
+
+ decryptBlock: function (M, offset) {
+ this._des3.decryptBlock(M, offset);
+ this._des2.encryptBlock(M, offset);
+ this._des1.decryptBlock(M, offset);
+ },
+
+ keySize: 192/32,
+
+ ivSize: 64/32,
+
+ blockSize: 64/32
+ });
+
+ /**
+ * Shortcut functions to the cipher's object interface.
+ *
+ * @example
+ *
+ * var ciphertext = CryptoJS.TripleDES.encrypt(message, key, cfg);
+ * var plaintext = CryptoJS.TripleDES.decrypt(ciphertext, key, cfg);
+ */
+ C.TripleDES = BlockCipher._createHelper(TripleDES);
+ }());
+
+
+ return CryptoJS.TripleDES;
+
+}));
\ No newline at end of file
diff --git a/node_modules/crypto-js/x64-core.js b/node_modules/crypto-js/x64-core.js
new file mode 100644
index 0000000..57dcc14
--- /dev/null
+++ b/node_modules/crypto-js/x64-core.js
@@ -0,0 +1,304 @@
+;(function (root, factory) {
+ if (typeof exports === "object") {
+ // CommonJS
+ module.exports = exports = factory(require("./core"));
+ }
+ else if (typeof define === "function" && define.amd) {
+ // AMD
+ define(["./core"], factory);
+ }
+ else {
+ // Global (browser)
+ factory(root.CryptoJS);
+ }
+}(this, function (CryptoJS) {
+
+ (function (undefined) {
+ // Shortcuts
+ var C = CryptoJS;
+ var C_lib = C.lib;
+ var Base = C_lib.Base;
+ var X32WordArray = C_lib.WordArray;
+
+ /**
+ * x64 namespace.
+ */
+ var C_x64 = C.x64 = {};
+
+ /**
+ * A 64-bit word.
+ */
+ var X64Word = C_x64.Word = Base.extend({
+ /**
+ * Initializes a newly created 64-bit word.
+ *
+ * @param {number} high The high 32 bits.
+ * @param {number} low The low 32 bits.
+ *
+ * @example
+ *
+ * var x64Word = CryptoJS.x64.Word.create(0x00010203, 0x04050607);
+ */
+ init: function (high, low) {
+ this.high = high;
+ this.low = low;
+ }
+
+ /**
+ * Bitwise NOTs this word.
+ *
+ * @return {X64Word} A new x64-Word object after negating.
+ *
+ * @example
+ *
+ * var negated = x64Word.not();
+ */
+ // not: function () {
+ // var high = ~this.high;
+ // var low = ~this.low;
+
+ // return X64Word.create(high, low);
+ // },
+
+ /**
+ * Bitwise ANDs this word with the passed word.
+ *
+ * @param {X64Word} word The x64-Word to AND with this word.
+ *
+ * @return {X64Word} A new x64-Word object after ANDing.
+ *
+ * @example
+ *
+ * var anded = x64Word.and(anotherX64Word);
+ */
+ // and: function (word) {
+ // var high = this.high & word.high;
+ // var low = this.low & word.low;
+
+ // return X64Word.create(high, low);
+ // },
+
+ /**
+ * Bitwise ORs this word with the passed word.
+ *
+ * @param {X64Word} word The x64-Word to OR with this word.
+ *
+ * @return {X64Word} A new x64-Word object after ORing.
+ *
+ * @example
+ *
+ * var ored = x64Word.or(anotherX64Word);
+ */
+ // or: function (word) {
+ // var high = this.high | word.high;
+ // var low = this.low | word.low;
+
+ // return X64Word.create(high, low);
+ // },
+
+ /**
+ * Bitwise XORs this word with the passed word.
+ *
+ * @param {X64Word} word The x64-Word to XOR with this word.
+ *
+ * @return {X64Word} A new x64-Word object after XORing.
+ *
+ * @example
+ *
+ * var xored = x64Word.xor(anotherX64Word);
+ */
+ // xor: function (word) {
+ // var high = this.high ^ word.high;
+ // var low = this.low ^ word.low;
+
+ // return X64Word.create(high, low);
+ // },
+
+ /**
+ * Shifts this word n bits to the left.
+ *
+ * @param {number} n The number of bits to shift.
+ *
+ * @return {X64Word} A new x64-Word object after shifting.
+ *
+ * @example
+ *
+ * var shifted = x64Word.shiftL(25);
+ */
+ // shiftL: function (n) {
+ // if (n < 32) {
+ // var high = (this.high << n) | (this.low >>> (32 - n));
+ // var low = this.low << n;
+ // } else {
+ // var high = this.low << (n - 32);
+ // var low = 0;
+ // }
+
+ // return X64Word.create(high, low);
+ // },
+
+ /**
+ * Shifts this word n bits to the right.
+ *
+ * @param {number} n The number of bits to shift.
+ *
+ * @return {X64Word} A new x64-Word object after shifting.
+ *
+ * @example
+ *
+ * var shifted = x64Word.shiftR(7);
+ */
+ // shiftR: function (n) {
+ // if (n < 32) {
+ // var low = (this.low >>> n) | (this.high << (32 - n));
+ // var high = this.high >>> n;
+ // } else {
+ // var low = this.high >>> (n - 32);
+ // var high = 0;
+ // }
+
+ // return X64Word.create(high, low);
+ // },
+
+ /**
+ * Rotates this word n bits to the left.
+ *
+ * @param {number} n The number of bits to rotate.
+ *
+ * @return {X64Word} A new x64-Word object after rotating.
+ *
+ * @example
+ *
+ * var rotated = x64Word.rotL(25);
+ */
+ // rotL: function (n) {
+ // return this.shiftL(n).or(this.shiftR(64 - n));
+ // },
+
+ /**
+ * Rotates this word n bits to the right.
+ *
+ * @param {number} n The number of bits to rotate.
+ *
+ * @return {X64Word} A new x64-Word object after rotating.
+ *
+ * @example
+ *
+ * var rotated = x64Word.rotR(7);
+ */
+ // rotR: function (n) {
+ // return this.shiftR(n).or(this.shiftL(64 - n));
+ // },
+
+ /**
+ * Adds this word with the passed word.
+ *
+ * @param {X64Word} word The x64-Word to add with this word.
+ *
+ * @return {X64Word} A new x64-Word object after adding.
+ *
+ * @example
+ *
+ * var added = x64Word.add(anotherX64Word);
+ */
+ // add: function (word) {
+ // var low = (this.low + word.low) | 0;
+ // var carry = (low >>> 0) < (this.low >>> 0) ? 1 : 0;
+ // var high = (this.high + word.high + carry) | 0;
+
+ // return X64Word.create(high, low);
+ // }
+ });
+
+ /**
+ * An array of 64-bit words.
+ *
+ * @property {Array} words The array of CryptoJS.x64.Word objects.
+ * @property {number} sigBytes The number of significant bytes in this word array.
+ */
+ var X64WordArray = C_x64.WordArray = Base.extend({
+ /**
+ * Initializes a newly created word array.
+ *
+ * @param {Array} words (Optional) An array of CryptoJS.x64.Word objects.
+ * @param {number} sigBytes (Optional) The number of significant bytes in the words.
+ *
+ * @example
+ *
+ * var wordArray = CryptoJS.x64.WordArray.create();
+ *
+ * var wordArray = CryptoJS.x64.WordArray.create([
+ * CryptoJS.x64.Word.create(0x00010203, 0x04050607),
+ * CryptoJS.x64.Word.create(0x18191a1b, 0x1c1d1e1f)
+ * ]);
+ *
+ * var wordArray = CryptoJS.x64.WordArray.create([
+ * CryptoJS.x64.Word.create(0x00010203, 0x04050607),
+ * CryptoJS.x64.Word.create(0x18191a1b, 0x1c1d1e1f)
+ * ], 10);
+ */
+ init: function (words, sigBytes) {
+ words = this.words = words || [];
+
+ if (sigBytes != undefined) {
+ this.sigBytes = sigBytes;
+ } else {
+ this.sigBytes = words.length * 8;
+ }
+ },
+
+ /**
+ * Converts this 64-bit word array to a 32-bit word array.
+ *
+ * @return {CryptoJS.lib.WordArray} This word array's data as a 32-bit word array.
+ *
+ * @example
+ *
+ * var x32WordArray = x64WordArray.toX32();
+ */
+ toX32: function () {
+ // Shortcuts
+ var x64Words = this.words;
+ var x64WordsLength = x64Words.length;
+
+ // Convert
+ var x32Words = [];
+ for (var i = 0; i < x64WordsLength; i++) {
+ var x64Word = x64Words[i];
+ x32Words.push(x64Word.high);
+ x32Words.push(x64Word.low);
+ }
+
+ return X32WordArray.create(x32Words, this.sigBytes);
+ },
+
+ /**
+ * Creates a copy of this word array.
+ *
+ * @return {X64WordArray} The clone.
+ *
+ * @example
+ *
+ * var clone = x64WordArray.clone();
+ */
+ clone: function () {
+ var clone = Base.clone.call(this);
+
+ // Clone "words" array
+ var words = clone.words = this.words.slice(0);
+
+ // Clone each X64Word object
+ var wordsLength = words.length;
+ for (var i = 0; i < wordsLength; i++) {
+ words[i] = words[i].clone();
+ }
+
+ return clone;
+ }
+ });
+ }());
+
+
+ return CryptoJS;
+
+}));
\ No newline at end of file
diff --git a/node_modules/pdfh5/LICENSE b/node_modules/pdfh5/LICENSE
new file mode 100644
index 0000000..dd04bed
--- /dev/null
+++ b/node_modules/pdfh5/LICENSE
@@ -0,0 +1,21 @@
+MIT License
+
+Copyright (c) [2018] [gjTool]
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+SOFTWARE.
diff --git a/node_modules/pdfh5/README.md b/node_modules/pdfh5/README.md
new file mode 100644
index 0000000..136f8fa
--- /dev/null
+++ b/node_modules/pdfh5/README.md
@@ -0,0 +1,280 @@
+# pdfh5.js
+[](https://www.npmjs.com/package/pdfh5) [](https://www.npmjs.com/package/pdfh5) [](https://www.npmjs.com/package/pdfh5) [](https://github.com/gjTool/pdfh5/blob/master/LICENSE) [](https://github.com/gjTool/pdfh5/issues) [](https://github.com/gjTool/pdfh5/stargazers) [](https://github.com/gjTool/pdfh5/network/members)
+
+**1、有问题可以加Q群咨询,技术交流群,也可以探讨技术,另有微信群可以问群主拉入微信群**
+
+**2、如果有报错,请复制example运行,然后对照相关文件,以及package.json,缺什么补什么**
+
+**3、如果有某些字体显示不了,那可能是pdf.js缺少相关字库解析,可以尝试更改cMapUrl,建议去官方地址找版本**
+
+**4、如果IOS下pdf显示不了,安卓却可以,可能是pdf精度过高导致,Safari浏览器canvas渲染绘制图片宽高不能超过16777216,超过会不显示**
+
+
+- [QQ群521681398](https://qm.qq.com/cgi-bin/qm/qr?k=3_qouxqe5w3gRCcHjpqkwtx-4yS6QSPD&jump_from=webapi&authKey=FlHU4wH2xOQUthUpgF5W3b1VXowCVmSRfJLU4GRcDVyBayJd1ank4HkOWSZei2f3)
+- [pdfh5博客主页](https://pdfh5.gjtool.cn/)
+
+- [pdfh5项目GitHub地址](https://github.com/gjTool/pdfh5)
+
+- [pdfh5项目gitee地址](https://gitee.com/gjTool/pdfh5)
+
+
+#### react、vue均可使用
+#### [example/test](https://github.com/gjTool/pdfh5/tree/master/example/test)是vue使用示例
+#### [example/vue3demo](https://github.com/gjTool/pdfh5/tree/master/example/vue3demo)是vue3使用示例
+#### [example/vite4vue3](https://github.com/gjTool/pdfh5/tree/master/example/vite4vue3)是vite4+vue3+ts使用示例
+#### [example/react-test](https://github.com/gjTool/pdfh5/tree/master/example/react-test)是react使用示例
+
+
+
+## 更新信息
+
+- 2024.02.29 更新: 修复部分bugs。
+
+### pdfh5在线预览 (建议使用谷歌浏览器F12手机模式打开预览)
+
+- [https://www.gjtool.cn/pdfh5/pdf.html?file=https://www.gjtool.cn/pdfh5/git.pdf](https://www.gjtool.cn/pdfh5/pdf.html?file=https://www.gjtool.cn/pdfh5/git.pdf)
+
+
+## 快速使用(有两种方式)
+
+#### 一、script标签引入方式(需下载本项目文件夹css/pdfh5.css、js内所有文件)
+
+- 1.引入css
+
+```javascript
+<link rel="stylesheet" href="css/pdfh5.css" />
+```
+
+- 2.创建div
+
+```javascript
+<div id="demo"></div>
+```
+
+- 3.依次引入js(需引用本项目的js,不要引用官方的pdf.js,jquery可以引用其它版的)
+
+```javascript
+<script src="js/pdf.js" type="text/javascript" charset="utf-8"></script>
+<script src="js/pdf.worker.js" type="text/javascript" charset="utf-8"></script>
+<script src="js/jquery-2.1.1.min.js" type="text/javascript" charset="utf-8"></script>
+<script src="js/pdfh5.js" type="text/javascript" charset="utf-8"></script>
+```
+
+- 4.实例化
+
+```javascript
+var pdfh5 = new Pdfh5('#demo', {
+ pdfurl: "./default.pdf"
+});
+```
+
+#### 二、npm安装方式(适应于vue), react使用方法类似vue(example/react-test是react使用示例)
+
+- 1.安装
+
+```javascript
+npm install pdfh5
+```
+- 2.使用
+
+```javascript
+<template>
+ <div id="app">
+ <div id="demo"></div>
+ </div>
+</template>
+<script>
+ import Pdfh5 from "pdfh5";
+ export default {
+ name: 'App',
+ data() {
+ return {
+ pdfh5: null
+ };
+ },
+ mounted() {
+ //实例化
+ this.pdfh5 = new Pdfh5("#demo", {
+ pdfurl: "../../static/test.pdf",
+ // cMapUrl:"https://unpkg.com/pdfjs-dist@3.8.162/cmaps/",
+ // responseType: "blob" // blob arraybuffer
+ });
+ //监听完成事件
+ this.pdfh5.on("complete", function (status, msg, time) {
+ console.log("状态:" + status + ",信息:" + msg + ",耗时:" + time + "毫秒,总页数:" + this.totalNum)
+ //禁止手势缩放
+ this.pdfh5.zoomEnable(false);
+ })
+ }
+ }
+</script>
+
+<style>
+ @import "pdfh5/css/pdfh5.css";
+ *{
+ padding: 0;
+ margin: 0;
+ }
+ html,body,#app {
+ width: 100%;
+ height: 100%;
+ }
+</style>
+```
+
+- **注意:如果css引用报错的话,按下面的方式引用。**
+```javascript
+ import Pdfh5 from "pdfh5";
+ import "pdfh5/css/pdfh5.css";
+```
+
+# API接口方法
+
+
+## 实例化
+- **pdfh5实例化的时候传两个参数,selector选择器,options配置项参数,会返回一个pdfh5实例对象,可以用来操作pdf,监听相关事件**
+```javascript
+var pdfh5 = new Pdfh5(selector, options);
+```
+|参数名称 |类型 |取值 |是否必须 |作用 |
+|:---: |:---: |:---: |:---: |:---: |
+|selector | String | - | √ |pdfh5的容器选择器 |
+|options | Object | - | × |pdfh5的配置项参数 |
+
+## options配置项参数列表
+
+- **示例:** 配置项参数 pdfurl
+
+```javascript
+var pdfh5 = new Pdfh5('#demo', {
+ pdfurl: "./default.pdf"
+});
+```
+
+|参数名称 |类型 |取值 |作用 |
+|:---: |:---: |:---: |:---: |
+|pdfurl | String | - |pdf地址 |
+|responseType | String |blob 、 arraybuffer 默认 blob |请求pdf数据格式 |
+|URIenable | Boolean |true、false, 默认false | true开启地址栏file参数 |
+|data | Array(arraybuffer) | - |pdf文件流 ,与pdfurl二选一(二进制PDF数据。使用类型化数组(Uint8Array)可以提高内存使用率。如果PDF数据是BASE64编码的,请先使用atob()将其转换为二进制字符串。) |
+|renderType | String |"canvas"、"svg",默认"canvas" |pdf渲染模式 |
+|pageNum | Boolean |true、false, 默认true |是否显示左上角页码 |
+|backTop | Boolean |true、false, 默认true |是否显示右下角回到顶部按钮 |
+|maxZoom | Number |最大倍数3 |手势缩放最大倍数 |
+|scale | Number |最大比例5,默认1.5 |pdf渲染的比例 |
+|scrollEnable | Boolean |true、false, 默认true |是否允许pdf滚动 |
+|zoomEnable | Boolean |true、false, 默认true |是否允许pdf手势缩放 |
+|cMapUrl | String | " |解析pdf时,特殊情况下显示完整字体的cmaps文件夹路径,例如 cMapUrl:"https://unpkg.com/pdfjs-dist@2.0.943/cmaps/" |
+|limit | Number | 默认0 |限制pdf加载最大页数 |
+|logo | Object |{src:"pdfh5.png",x:10,y:10,width:40,height:40}src水印图片路径(建议使用png透明图片),width水印宽度,height水印高度,以每页pdf左上角为0点,x、y为偏移值。 默认false|给每页pdf添加水印logo(canvas模式下使用) |
+|goto | Number | 默认0 |加载pdf跳转到第几页 |
+|textLayer | Boolean | true、false, 默认false |是否开启textLayer,可以复制文本(canvas模式下使用)【处于测试阶段,位置偏移严重】 |
+|background | Object | {color:"#fff",image:"url('pdfh5.png')",repeat:"no-repeat",position:"left top",size:"40px 40px"},和css的background属性语法相同,默认false |是否开启背景图模式 |
+
+## pdf请求示例
+1.
+```javascript
+new Pdfh5('#demo', {
+ pdfurl: "git.pdf",
+ // responseType: "blob" // blob arraybuffer
+});
+```
+
+
+3. pdf文件流或者buffer已经得到,如何渲染
+```javascript
+ new Pdfh5('#demo', {
+ data: blob, //blob arraybuffer
+ });
+```
+## methods 方法列表
+
+- **示例:** 是否允许pdf滚动
+
+```javascript
+pdfh5.scrollEnable(true) //允许pdf滚动
+pdfh5.scrollEnable(false) //不允许pdf滚动
+```
+
+|方法名 |传参 |传参取值 |作用 |
+|:---: |:---: |:---: |:---: |
+|scrollEnable | Boolean |true、false, 默认true |是否允许pdf滚动(需要在pdf加载完成后使用) |
+|zoomEnable | Boolean |true、false, 默认true |是否允许pdf手势缩放(需要在pdf加载完成后使用) |
+|show | Function |带一个回调函数 |pdfh5显示 |
+|hide | Function |带一个回调函数 |pdfh5隐藏 |
+|reset | Function |带一个回调函数 |pdfh5还原 |
+|destroy | Function |带一个回调函数 |pdfh5销毁 |
+|on | (String, Function)|String:监听的事件名,Function:监听的事件回调 |on方法监听所有事件 |
+|goto | Number |Number:要跳转的pdf页数 |pdf跳转到第几页(pdf加载完成后使用) |
+|download | (String, Function)|String:下载pdf的名称,默认download.pdf,Function:下载完成后的回调|下载pdf |
+
+## on方法监听所有事件-事件名列表
+
+- **示例:** 监听pdf准备开始渲染,此时可以拿到pdf总页数
+
+```javascript
+pdfh5.on("ready", function () {
+ console.log("总页数:" + this.totalNum)
+})
+```
+|事件名 |回调 |作用 |
+|:---: |:---: |:---: |
+|init | Function |监听pdfh5开始初始化 |
+|ready | Function |监听pdf准备开始渲染,此时可以拿到pdf总页数 |
+|error | Function(msg,time) |监听加载失败,msg信息,time耗时 |
+|success | Function(msg,time) | 监听pdf渲染成功,msg信息,time耗时 |
+|complete | Function(status, msg, time) | 监听pdf加载完成事件,加载失败、渲染成功都会触发。status有两种状态success和error |
+|render | Function(currentNum, time, currentPageDom) | 监听pdf渲染过程,currentPageDom当前加载的pdf的dom,currentNum当前加载的pdf页数, |
+|zoom | Function(scale) | 监听pdf缩放,scale缩放比例 |
+|scroll | Function(scrollTop,currentNum) | 监听pdf滚动,scrollTop滚动条高度,currentNum当前页码 |
+|backTop | Function | 监听回到顶部按钮的点击事件回调 |
+|zoomEnable | Function(flag) | 监听允许缩放,flag:true,false |
+|scrollEnable | Function(flag) | 监听允许滚动,flag:true,false |
+|show | Function | 监听pdfh5显示 |
+|hide | Function | 监听pdfh5隐藏 |
+|reset | Function | 监听pdfh5还原 |
+|destroy | Function | 监听pdfh5销毁 |
+
+## 打赏榜单
+- [JayLin](https://github.com/110117ab) ¥6.66
+- [靓仔城](https://github.com/ljc7877376) ¥6.67
+- 南蓝 ¥8.80
+- 我是太阳 ¥29.99
+- *小波 ¥1.00
+- *鑫 ¥9.99
+- *手 ¥9.99
+- *勇 ¥19.99
+- *爷 ¥5.00
+- *超 ¥20.00
+- 3*Y ¥5.00
+- *阳 ¥5.00
+- **雄 ¥5.00
+- A*r ¥1.23
+- *客 ¥5.00
+- *运 ¥66.66
+- *辰 ¥30.00
+- *黎 ¥6.66+¥5.00
+- **福 ¥6.66
+- *🏀 ¥6.66+¥1.00
+- *阳 ¥10.00
+- 自闭中 ¥16.66+¥16.00
+- *焕 ¥6.66
+- *人 ¥5.00
+- *。 ¥5.20
+- 半*) ¥5.00
+- *1 ¥15.00
+- *蕾 ¥16.66+¥8.80
+- *军 ¥10.00
+- **强 ¥58.88
+- E*y ¥6.60
+- J*u ¥13.00
+- A*a ¥50.00
+- *东 ¥8.80
+- j*y ¥9.99
+- *宇 ¥6.66
+- *涛 ¥1.00
+- *. ¥10.00
+- *☺ ¥6.66
+- *霸 ¥6.66
+- a*r ¥20.00
+- 木槿(**耀) ¥50.00
diff --git a/node_modules/pdfh5/css/pdfh5.css b/node_modules/pdfh5/css/pdfh5.css
new file mode 100644
index 0000000..df83a53
--- /dev/null
+++ b/node_modules/pdfh5/css/pdfh5.css
@@ -0,0 +1,212 @@
+.pdfjs {
+ width: 100%;
+ height: 100%;
+ overflow: hidden;
+ background: #fff;
+ position: relative;
+}
+
+.pdfjs .viewerContainer {
+ position: relative;
+ width: 100%;
+ height: 100%;
+ overflow: auto;
+ -webkit-overflow-scrolling: touch;
+ transition: all .3s;
+}
+
+.pdfjs .pdfViewer {
+ position: relative;
+ top: 0;
+ left: 0;
+ padding: 10px 8px;
+}
+
+.pdfjs .pdfViewer .pageContainer {
+ width: 100%;
+ margin: 0px auto 8px auto;
+ position: relative;
+ overflow: visible;
+ -webkit-box-shadow: darkgrey 0px 1px 3px 0px;
+ -moz-box-shadow: darkgrey 0px 1px 3px 0px;
+ box-shadow: darkgrey 0px 1px 3px 0px;
+ background-color: white;
+ box-sizing: border-box;
+}
+
+.pdfjs .pdfViewer .pageContainer img {
+ width: 100%;
+ height: 100%;
+ position: relative;
+ z-index: 100;
+ /* user-select:none; */
+}
+
+.pdfjs .pageNum {
+ padding: 0px 7px;
+ height: 26px;
+ position: absolute;
+ top: 20px;
+ left: 15px;
+ z-index: 997;
+ border-radius: 8px;
+ transition: all .3s;
+ display: none;
+}
+
+.pdfjs .pageNum-bg,
+.pdfjs .pageNum-num {
+ width: 100%;
+ height: 100%;
+ line-height: 26px;
+ text-align: center;
+ position: absolute;
+ top: 0px;
+ left: 0px;
+ color: #fff;
+ border-radius: 8px;
+ font-size: 16px;
+}
+
+.pdfjs .pageNum-bg {
+ background: rgba(0, 0, 0, 0.5);
+}
+
+.pdfjs .pageNum-num {
+ position: relative;
+}
+
+.pdfjs .pageNum span {
+ color: #fff;
+ font-size: 16px;
+}
+
+.pdfjs .loadingBar {
+ position: absolute;
+ width: 100%;
+ z-index: 99;
+ background: #fff !important;
+ height: 4px;
+ top: 0px;
+ left: 0px;
+ transition: all .3s;
+}
+
+.pdfjs .loadingBar .progress {
+ background: #fff !important;
+ position: absolute;
+ top: 0;
+ left: 0;
+ width: 0%;
+ height: 100%;
+ overflow: hidden;
+ transition: width 200ms;
+}
+
+.pdfjs .loadingBar .progress .glimmer {
+ position: absolute;
+ top: 0;
+ left: 0;
+ height: 100%;
+ width: calc(100% + 150px);
+ background: #7bcf34;
+}
+
+.pdfjs .backTop {
+ width: 50px;
+ height: 50px;
+ line-height: 50px;
+ text-align: center;
+ position: absolute;
+ bottom: 90px;
+ right: 15px;
+ font-size: 18px;
+ z-index: 999;
+ border-radius: 50%;
+ background: rgba(0, 0, 0, 0.4) url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAABmJLR0QAAAAAAAD5Q7t/AAAACXBIWXMAAAsSAAALEgHS3X78AAAA+klEQVRYw+2WUQ2DMBCG2TIBSJiESkACEpCAg83BcLBJmIQ5gClgDpiDby9tciGkoaUtZOESXuhdv7+X/pdm2dYC6IgX7Zh3THy+w9oN/rMASqBcE26iSA1XwCAEDIBKBc8F/KE/gB7IU8BbDXyJf2Z2tFFFAE8N6iRIi/jotXssuGn1FzhPrCu9BtCEhlcCrix5hbiYVSh46bKpELvcniO71Q51zWJ7ju3mUe9vzym7eR7Az57CbohTXBzAt9GknG9PoLY8KK4z6htLfeXTTXMZAfoZuWYWKC+YZWMAQuWZSP0k2wXsAnYB2xNwci1wGTKhO/COlLtu/ABVfTFsxwwYRgAAAABJRU5ErkJggg==) no-repeat center;
+ background-size: 50% 50%;
+ transition: all .3s;
+ display: none;
+}
+
+.pdfjs .loadEffect {
+ width: 100px;
+ height: 100px;
+ position: absolute;
+ top: 50%;
+ left: 50%;
+ margin-top: -50px;
+ margin-left: -50px;
+ z-index: 99;
+ background: url(data:image/gif;base64,R0lGODlhgACAAKIAAP///93d3bu7u5mZmQAA/wAAAAAAAAAAACH/C05FVFNDQVBFMi4wAwEAAAAh+QQFBQAEACwCAAIAfAB8AAAD/0i63P4wygYqmDjrzbtflvWNZGliYXiubKuloivPLlzReD7al+7/Eh5wSFQIi8hHYBkwHUmD6CD5YTJLz49USuVYraRsZ7vtar7XnQ1Kjpoz6LRHvGlz35O4nEPP2O94EnpNc2sef1OBGIOFMId/inB6jSmPdpGScR19EoiYmZobnBCIiZ95k6KGGp6ni4wvqxilrqBfqo6skLW2YBmjDa28r6Eosp27w8Rov8ekycqoqUHODrTRvXsQwArC2NLF29UM19/LtxO5yJd4Au4CK7DUNxPebG4e7+8n8iv2WmQ66BtoYpo/dvfacBjIkITBE9DGlMvAsOIIZjIUAixliv9ixYZVtLUos5GjwI8gzc3iCGghypQqrbFsme8lwZgLZtIcYfNmTJ34WPTUZw5oRxdD9w0z6iOpO15MgTh1BTTJUKos39jE+o/KS64IFVmsFfYT0aU7capdy7at27dw48qdS7eu3bt480I02vUbX2F/JxYNDImw4GiGE/P9qbhxVpWOI/eFKtlNZbWXuzlmG1mv58+gQ4seTbq06dOoU6vGQZJy0FNlMcV+czhQ7SQmYd8eMhPs5BxVdfcGEtV3buDBXQ+fURxx8oM6MT9P+Fh6dOrH2zavc13u9JXVJb520Vp8dvC76wXMuN5Sepm/1WtkEZHDefnzR9Qvsd9+/wi8+en3X0ntYVcSdAE+UN4zs7ln24CaLagghIxBaGF8kFGoIYV+Ybghh841GIyI5ICIFoklJsigihmimJOLEbLYIYwxSgigiZ+8l2KB+Ml4oo/w8dijjcrouCORKwIpnJIjMnkkksalNeR4fuBIm5UEYImhIlsGCeWNNJphpJdSTlkml1jWeOY6TnaRpppUctcmFW9mGSaZceYopH9zkjnjUe59iR5pdapWaGqHopboaYua1qije67GJ6CuJAAAIfkEBQUABAAsCgACAFcAMAAAA/9Iutz+ML5Ag7w46z0r5WAoSp43nihXVmnrdusrv+s332dt4Tyo9yOBUJD6oQBIQGs4RBlHySSKyczVTtHoidocPUNZaZAr9F5FYbGI3PWdQWn1mi36buLKFJvojsHjLnshdhl4L4IqbxqGh4gahBJ4eY1kiX6LgDN7fBmQEJI4jhieD4yhdJ2KkZk8oiSqEaatqBekDLKztBG2CqBACq4wJRi4PZu1sA2+v8C6EJexrBAD1AOBzsLE0g/V1UvYR9sN3eR6lTLi4+TlY1wz6Qzr8u1t6FkY8vNzZTxaGfn6mAkEGFDgL4LrDDJDyE4hEIbdHB6ESE1iD4oVLfLAqPETIsOODwmCDJlv5MSGJklaS6khAQAh+QQFBQAEACwfAAIAVwAwAAAD/0i63P5LSAGrvTjrNuf+YKh1nWieIumhbFupkivPBEzR+GnnfLj3ooFwwPqdAshAazhEGUXJJIrJ1MGOUamJ2jQ9QVltkCv0XqFh5IncBX01afGYnDqD40u2z76JK/N0bnxweC5sRB9vF34zh4gjg4uMjXobihWTlJUZlw9+fzSHlpGYhTminKSepqebF50NmTyor6qxrLO0L7YLn0ALuhCwCrJAjrUqkrjGrsIkGMW/BMEPJcphLgDaABjUKNEh29vdgTLLIOLpF80s5xrp8ORVONgi8PcZ8zlRJvf40tL8/QPYQ+BAgjgMxkPIQ6E6hgkdjoNIQ+JEijMsasNY0RQix4gKP+YIKXKkwJIFF6JMudFEAgAh+QQFBQAEACw8AAIAQgBCAAAD/kg0PPowykmrna3dzXvNmSeOFqiRaGoyaTuujitv8Gx/661HtSv8gt2jlwIChYtc0XjcEUnMpu4pikpv1I71astytkGh9wJGJk3QrXlcKa+VWjeSPZHP4Rtw+I2OW81DeBZ2fCB+UYCBfWRqiQp0CnqOj4J1jZOQkpOUIYx/m4oxg5cuAaYBO4Qop6c6pKusrDevIrG2rkwptrupXB67vKAbwMHCFcTFxhLIt8oUzLHOE9Cy0hHUrdbX2KjaENzey9Dh08jkz8Tnx83q66bt8PHy8/T19vf4+fr6AP3+/wADAjQmsKDBf6AOKjS4aaHDgZMeSgTQcKLDhBYPEswoA1BBAgAh+QQFBQAEACxOAAoAMABXAAAD7Ei6vPOjyUkrhdDqfXHm4OZ9YSmNpKmiqVqykbuysgvX5o2HcLxzup8oKLQQix0UcqhcVo5ORi+aHFEn02sDeuWqBGCBkbYLh5/NmnldxajX7LbPBK+PH7K6narfO/t+SIBwfINmUYaHf4lghYyOhlqJWgqDlAuAlwyBmpVnnaChoqOkpaanqKmqKgGtrq+wsbA1srW2ry63urasu764Jr/CAb3Du7nGt7TJsqvOz9DR0tPU1TIA2ACl2dyi3N/aneDf4uPklObj6OngWuzt7u/d8fLY9PXr9eFX+vv8+PnYlUsXiqC3c6PmUUgAACH5BAUFAAQALE4AHwAwAFcAAAPpSLrc/m7IAau9bU7MO9GgJ0ZgOI5leoqpumKt+1axPJO1dtO5vuM9yi8TlAyBvSMxqES2mo8cFFKb8kzWqzDL7Xq/4LB4TC6bz1yBes1uu9uzt3zOXtHv8xN+Dx/x/wJ6gHt2g3Rxhm9oi4yNjo+QkZKTCgGWAWaXmmOanZhgnp2goaJdpKGmp55cqqusrZuvsJays6mzn1m4uRAAvgAvuBW/v8GwvcTFxqfIycA3zA/OytCl0tPPO7HD2GLYvt7dYd/ZX99j5+Pi6tPh6+bvXuTuzujxXens9fr7YPn+7egRI9PPHrgpCQAAIfkEBQUABAAsPAA8AEIAQgAAA/lIutz+UI1Jq7026h2x/xUncmD5jehjrlnqSmz8vrE8u7V5z/m5/8CgcEgsGo/IpHLJbDqf0Kh0ShBYBdTXdZsdbb/Yrgb8FUfIYLMDTVYz2G13FV6Wz+lX+x0fdvPzdn9WeoJGAYcBN39EiIiKeEONjTt0kZKHQGyWl4mZdREAoQAcnJhBXBqioqSlT6qqG6WmTK+rsa1NtaGsuEu6o7yXubojsrTEIsa+yMm9SL8osp3PzM2cStDRykfZ2tfUtS/bRd3ewtzV5pLo4eLjQuUp70Hx8t9E9eqO5Oku5/ztdkxi90qPg3x2EMpR6IahGocPCxp8AGtigwQAIfkEBQUABAAsHwBOAFcAMAAAA/9Iutz+MMo36pg4682J/V0ojs1nXmSqSqe5vrDXunEdzq2ta3i+/5DeCUh0CGnF5BGULC4tTeUTFQVONYAs4CfoCkZPjFar83rBx8l4XDObSUL1Ott2d1U4yZwcs5/xSBB7dBMBhgEYfncrTBGDW4WHhomKUY+QEZKSE4qLRY8YmoeUfkmXoaKInJ2fgxmpqqulQKCvqRqsP7WooriVO7u8mhu5NacasMTFMMHCm8qzzM2RvdDRK9PUwxzLKdnaz9y/Kt8SyR3dIuXmtyHpHMcd5+jvWK4i8/TXHff47SLjQvQLkU+fG29rUhQ06IkEG4X/Rryp4mwUxSgLL/7IqFETB8eONT6ChCFy5ItqJomES6kgAQAh+QQFBQAEACwKAE4AVwAwAAAD/0i63A4QuEmrvTi3yLX/4MeNUmieITmibEuppCu3sDrfYG3jPKbHveDktxIaF8TOcZmMLI9NyBPanFKJp4A2IBx4B5lkdqvtfb8+HYpMxp3Pl1qLvXW/vWkli16/3dFxTi58ZRcChwIYf3hWBIRchoiHiotWj5AVkpIXi4xLjxiaiJR/T5ehoomcnZ+EGamqq6VGoK+pGqxCtaiiuJVBu7yaHrk4pxqwxMUzwcKbyrPMzZG90NGDrh/JH8t72dq3IN1jfCHb3L/e5ebh4ukmxyDn6O8g08jt7tf26ybz+m/W9GNXzUQ9fm1Q/APoSWAhhfkMAmpEbRhFKwsvCsmosRIHx444PoKcIXKkjIImjTzjkQAAIfkEBQUABAAsAgA8AEIAQgAAA/VIBNz+8KlJq72Yxs1d/uDVjVxogmQqnaylvkArT7A63/V47/m2/8CgcEgsGo/IpHLJbDqf0Kh0Sj0FroGqDMvVmrjgrDcTBo8v5fCZki6vCW33Oq4+0832O/at3+f7fICBdzsChgJGeoWHhkV0P4yMRG1BkYeOeECWl5hXQ5uNIAOjA1KgiKKko1CnqBmqqk+nIbCkTq20taVNs7m1vKAnurtLvb6wTMbHsUq4wrrFwSzDzcrLtknW16tI2tvERt6pv0fi48jh5h/U6Zs77EXSN/BE8jP09ZFA+PmhP/xvJgAMSGBgQINvEK5ReIZhQ3QEMTBLAAAh+QQFBQAEACwCAB8AMABXAAAD50i6DA4syklre87qTbHn4OaNYSmNqKmiqVqyrcvBsazRpH3jmC7yD98OCBF2iEXjBKmsAJsWHDQKmw571l8my+16v+CweEwum8+hgHrNbrvbtrd8znbR73MVfg838f8BeoB7doN0cYZvaIuMjY6PkJGSk2gClgJml5pjmp2YYJ6dX6GeXaShWaeoVqqlU62ir7CXqbOWrLafsrNctjIDwAMWvC7BwRWtNsbGFKc+y8fNsTrQ0dK3QtXAYtrCYd3eYN3c49/a5NVj5eLn5u3s6e7x8NDo9fbL+Mzy9/T5+tvUzdN3Zp+GBAAh+QQJBQAEACwCAAIAfAB8AAAD/0i63P4wykmrvTjrzbv/YCiOZGmeaKqubOu+cCzPdArcQK2TOL7/nl4PSMwIfcUk5YhUOh3M5nNKiOaoWCuWqt1Ou16l9RpOgsvEMdocXbOZ7nQ7DjzTaeq7zq6P5fszfIASAYUBIYKDDoaGIImKC4ySH3OQEJKYHZWWi5iZG0ecEZ6eHEOio6SfqCaqpaytrpOwJLKztCO2jLi1uoW8Ir6/wCHCxMG2x7muysukzb230M6H09bX2Nna29zd3t/g4cAC5OXm5+jn3Ons7eba7vHt2fL16tj2+QL0+vXw/e7WAUwnrqDBgwgTKlzIsKHDh2gGSBwAccHEixAvaqTYcFCjRoYeNyoM6REhyZIHT4o0qPIjy5YTTcKUmHImx5cwE85cmJPnSYckK66sSAAj0aNIkypdyrSp06dQo0qdSrWq1atYs2rdyrWr169gwxZJAAA7) no-repeat center;
+ background-size: 30% 30%;
+ transition: all .3s;
+}
+.pdfjs .pdfViewer .pageContainer img.pdfLogo{
+ /* user-select:none; */
+ position:absolute;
+ z-index: 101;
+}
+.pdfjs .textLayer {
+ position: absolute;
+ left: 0;
+ top: 0;
+ right: 0;
+ bottom: 0;
+ overflow: hidden;
+ opacity: 0.2;
+ line-height: 1.0;
+ z-index: 101;
+}
+
+.pdfjs .textLayer > span {
+ color: transparent;
+ position: absolute;
+ white-space: pre;
+ cursor: text;
+ transform-origin: 0% 0%;
+ transform: translate(-99px, -80px) scaleX(1) !important;
+}
+
+.pdfjs .textLayer .highlight {
+ margin: -1px;
+ padding: 1px;
+ background-color: rgba(180, 0, 170, 1);
+ border-radius: 4px;
+}
+
+.pdfjs .textLayer .highlight.begin {
+ border-radius: 4px 0px 0px 4px;
+}
+
+.pdfjs .textLayer .highlight.end {
+ border-radius: 0px 4px 4px 0px;
+}
+
+.pdfjs .textLayer .highlight.middle {
+ border-radius: 0px;
+}
+
+.pdfjs .textLayer .highlight.selected {
+ background-color: rgba(0, 100, 0, 1);
+}
+
+.pdfjs .textLayer ::selection {
+ background: rgba(0, 0, 255, 1);
+}
+
+.pdfjs .textLayer .endOfContent {
+ display: block;
+ position: absolute;
+ left: 0px;
+ top: 100%;
+ right: 0px;
+ bottom: 0px;
+ z-index: -1;
+ cursor: default;
+ /* user-select: none; */
+}
+
+.pdfjs .textLayer .endOfContent.active {
+ top: 0px;
+}
\ No newline at end of file
diff --git a/node_modules/pdfh5/css/style.css b/node_modules/pdfh5/css/style.css
new file mode 100644
index 0000000..7827bcd
--- /dev/null
+++ b/node_modules/pdfh5/css/style.css
@@ -0,0 +1,1242 @@
+@charset "utf-8";
+body,
+h1,
+h2,
+h3,
+h4,
+h5,
+h6,
+hr,
+p,
+blockquote,
+dl,
+dt,
+dd,
+ul,
+ol,
+li,
+pre,
+form,
+fieldset,
+legend,
+button,
+input,
+textarea,
+th,
+td {
+ margin: 0;
+ padding: 0;
+}
+
+body,
+button,
+input,
+select,
+textarea {
+ font-size:12px;
+}
+
+h1,
+h2,
+h3,
+h4,
+h5,
+h6 {
+ font-size: 100%;
+}
+
+address,
+cite,
+dfn,
+em,
+var {
+ font-style: normal;
+}
+
+code,
+kbd,
+pre,
+samp {
+ font-family: couriernew, courier, monospace;
+}
+
+small {
+ font-size: 12px;
+}
+
+ul,
+ol {
+ list-style: none;
+}
+
+a {
+ text-decoration: none;
+}
+
+a:hover {
+ text-decoration: underline;
+}
+
+sup {
+ vertical-align: text-top;
+}
+
+sub {
+ vertical-align: text-bottom;
+}
+
+legend {
+ color: #000;
+}
+
+fieldset,
+img {
+ border: 0;
+}
+
+button,
+input,
+select,
+textarea {
+ font-size: 100%;
+}
+
+table {
+ border-collapse: collapse;
+ border-spacing: 0;
+}
+
+.clearfix {
+ *zoom: 1;
+}
+
+.clearfix:before,
+.clearfix:after {
+ display: table;
+ line-height: 0;
+ content: "";
+}
+
+.clearfix:after {
+ clear: both;
+}
+
+
+ #app {
+ display: -webkit-box;
+ display: -ms-flexbox;
+ display: flex;
+ -webkit-box-pack: center;
+ -ms-flex-pack: center;
+ justify-content: center;
+ -webkit-box-align: center;
+ -ms-flex-align: center;
+ align-items: center;
+ height: 100%;
+ background: rgba(249, 249, 249, 0.9);
+ overflow: hidden;
+ }
+
+ .text-wrapper {
+ padding: 0 1rem;
+ max-width: 50rem;
+ width: 100%;
+ text-align: center;
+ }
+
+ .text {
+ font-size: 8em;
+ text-transform: uppercase;
+ letter-spacing: -14px;
+ }
+
+ .text .letter {
+ position: relative;
+ display: inline-block;
+ -webkit-transition: all .4s;
+ transition: all .4s;
+ }
+
+ .text .letter .character {
+ opacity: 0.65;
+ -webkit-transition: color .4s;
+ transition: color .4s;
+ cursor: pointer;
+ }
+
+ .text .letter span {
+ position: absolute;
+ bottom: .8rem;
+ left: .4rem;
+ display: block;
+ width: 100%;
+ height: 15px;
+ }
+
+ .text .letter span::before {
+ content: '';
+ position: absolute;
+ top: 50%;
+ left: 50%;
+ width: 0;
+ height: 0;
+ -webkit-transform: translate(-50%, -50%);
+ transform: translate(-50%, -50%);
+ border-radius: 50%;
+ background: rgba(0, 0, 0, 0.25);
+ }
+
+ .text .letter:hover .character {
+ color: #fff !important;
+ }
+
+ .text.part1 .letter:nth-child(1).poofed {
+ -webkit-transform-origin: 50% 50%;
+ transform-origin: 50% 50%;
+ -webkit-animation: poofing1 1.4s ease-in-out infinite alternate;
+ animation: poofing1 1.4s ease-in-out infinite alternate;
+ }
+
+ @-webkit-keyframes poofing1 {
+ 0% {
+ -webkit-transform: rotateZ(0deg) rotateY(0) translateY(0px) scale(1);
+ transform: rotateZ(0deg) rotateY(0) translateY(0px) scale(1);
+ }
+ 50% {
+ -webkit-transform: rotateZ(0deg) rotateY(360deg) translateY(0px) scale(1);
+ transform: rotateZ(0deg) rotateY(360deg) translateY(0px) scale(1);
+ }
+ 56% {
+ -webkit-transform: rotateZ(459deg) rotateY(360deg) translateY(0px) scale(1);
+ transform: rotateZ(459deg) rotateY(360deg) translateY(0px) scale(1);
+ }
+ 100% {
+ -webkit-transform: rotateZ(459deg) rotateY(360deg) translateY(-700px) scale(0.01);
+ transform: rotateZ(459deg) rotateY(360deg) translateY(-700px) scale(0.01);
+ }
+ }
+
+ @keyframes poofing1 {
+ 0% {
+ -webkit-transform: rotateZ(0deg) rotateY(0) translateY(0px) scale(1);
+ transform: rotateZ(0deg) rotateY(0) translateY(0px) scale(1);
+ }
+ 50% {
+ -webkit-transform: rotateZ(0deg) rotateY(360deg) translateY(0px) scale(1);
+ transform: rotateZ(0deg) rotateY(360deg) translateY(0px) scale(1);
+ }
+ 56% {
+ -webkit-transform: rotateZ(459deg) rotateY(360deg) translateY(0px) scale(1);
+ transform: rotateZ(459deg) rotateY(360deg) translateY(0px) scale(1);
+ }
+ 100% {
+ -webkit-transform: rotateZ(459deg) rotateY(360deg) translateY(-700px) scale(0.01);
+ transform: rotateZ(459deg) rotateY(360deg) translateY(-700px) scale(0.01);
+ }
+ }
+
+ .text.part1 .letter:nth-child(1) .character {
+ color: #f44336;
+ -webkit-animation: wave 1.2s linear infinite;
+ animation: wave 1.2s linear infinite;
+ -webkit-animation-delay: 0.33333s;
+ animation-delay: 0.33333s;
+ }
+
+ .text.part1 .letter:nth-child(1) span::before {
+ -webkit-animation: shadow 1.2s linear infinite;
+ animation: shadow 1.2s linear infinite;
+ -webkit-animation-delay: 0.33333s;
+ animation-delay: 0.33333s;
+ }
+
+ .text.part1 .letter:nth-child(2).poofed {
+ -webkit-transform-origin: 50% 50%;
+ transform-origin: 50% 50%;
+ -webkit-animation: poofing2 1.4s ease-in-out infinite alternate;
+ animation: poofing2 1.4s ease-in-out infinite alternate;
+ }
+
+ @-webkit-keyframes poofing2 {
+ 0% {
+ -webkit-transform: rotateZ(0deg) rotateY(0) translateY(0px) scale(1);
+ transform: rotateZ(0deg) rotateY(0) translateY(0px) scale(1);
+ }
+ 50% {
+ -webkit-transform: rotateZ(0deg) rotateY(360deg) translateY(0px) scale(1);
+ transform: rotateZ(0deg) rotateY(360deg) translateY(0px) scale(1);
+ }
+ 56% {
+ -webkit-transform: rotateZ(540deg) rotateY(360deg) translateY(0px) scale(1);
+ transform: rotateZ(540deg) rotateY(360deg) translateY(0px) scale(1);
+ }
+ 100% {
+ -webkit-transform: rotateZ(540deg) rotateY(360deg) translateY(-700px) scale(0.01);
+ transform: rotateZ(540deg) rotateY(360deg) translateY(-700px) scale(0.01);
+ }
+ }
+
+ @keyframes poofing2 {
+ 0% {
+ -webkit-transform: rotateZ(0deg) rotateY(0) translateY(0px) scale(1);
+ transform: rotateZ(0deg) rotateY(0) translateY(0px) scale(1);
+ }
+ 50% {
+ -webkit-transform: rotateZ(0deg) rotateY(360deg) translateY(0px) scale(1);
+ transform: rotateZ(0deg) rotateY(360deg) translateY(0px) scale(1);
+ }
+ 56% {
+ -webkit-transform: rotateZ(540deg) rotateY(360deg) translateY(0px) scale(1);
+ transform: rotateZ(540deg) rotateY(360deg) translateY(0px) scale(1);
+ }
+ 100% {
+ -webkit-transform: rotateZ(540deg) rotateY(360deg) translateY(-700px) scale(0.01);
+ transform: rotateZ(540deg) rotateY(360deg) translateY(-700px) scale(0.01);
+ }
+ }
+
+ .text.part1 .letter:nth-child(2) .character {
+ color: #9C27B0;
+ -webkit-animation: wave 1.2s linear infinite;
+ animation: wave 1.2s linear infinite;
+ -webkit-animation-delay: 0.66667s;
+ animation-delay: 0.66667s;
+ }
+
+ .text.part1 .letter:nth-child(2) span::before {
+ -webkit-animation: shadow 1.2s linear infinite;
+ animation: shadow 1.2s linear infinite;
+ -webkit-animation-delay: 0.66667s;
+ animation-delay: 0.66667s;
+ }
+
+ .text.part1 .letter:nth-child(3).poofed {
+ -webkit-transform-origin: 50% 50%;
+ transform-origin: 50% 50%;
+ -webkit-animation: poofing3 1.4s ease-in-out infinite alternate;
+ animation: poofing3 1.4s ease-in-out infinite alternate;
+ }
+
+ @-webkit-keyframes poofing3 {
+ 0% {
+ -webkit-transform: rotateZ(0deg) rotateY(0) translateY(0px) scale(1);
+ transform: rotateZ(0deg) rotateY(0) translateY(0px) scale(1);
+ }
+ 50% {
+ -webkit-transform: rotateZ(0deg) rotateY(360deg) translateY(0px) scale(1);
+ transform: rotateZ(0deg) rotateY(360deg) translateY(0px) scale(1);
+ }
+ 56% {
+ -webkit-transform: rotateZ(264deg) rotateY(360deg) translateY(0px) scale(1);
+ transform: rotateZ(264deg) rotateY(360deg) translateY(0px) scale(1);
+ }
+ 100% {
+ -webkit-transform: rotateZ(264deg) rotateY(360deg) translateY(-700px) scale(0.01);
+ transform: rotateZ(264deg) rotateY(360deg) translateY(-700px) scale(0.01);
+ }
+ }
+
+ @keyframes poofing3 {
+ 0% {
+ -webkit-transform: rotateZ(0deg) rotateY(0) translateY(0px) scale(1);
+ transform: rotateZ(0deg) rotateY(0) translateY(0px) scale(1);
+ }
+ 50% {
+ -webkit-transform: rotateZ(0deg) rotateY(360deg) translateY(0px) scale(1);
+ transform: rotateZ(0deg) rotateY(360deg) translateY(0px) scale(1);
+ }
+ 56% {
+ -webkit-transform: rotateZ(264deg) rotateY(360deg) translateY(0px) scale(1);
+ transform: rotateZ(264deg) rotateY(360deg) translateY(0px) scale(1);
+ }
+ 100% {
+ -webkit-transform: rotateZ(264deg) rotateY(360deg) translateY(-700px) scale(0.01);
+ transform: rotateZ(264deg) rotateY(360deg) translateY(-700px) scale(0.01);
+ }
+ }
+
+ .text.part1 .letter:nth-child(3) .character {
+ color: #f99b0c;
+ -webkit-animation: wave 1.2s linear infinite;
+ animation: wave 1.2s linear infinite;
+ -webkit-animation-delay: 1s;
+ animation-delay: 1s;
+ }
+
+ .text.part1 .letter:nth-child(3) span::before {
+ -webkit-animation: shadow 1.2s linear infinite;
+ animation: shadow 1.2s linear infinite;
+ -webkit-animation-delay: 1s;
+ animation-delay: 1s;
+ }
+
+ .text.part1 .letter:nth-child(4).poofed {
+ -webkit-transform-origin: 50% 50%;
+ transform-origin: 50% 50%;
+ -webkit-animation: poofing4 1.4s ease-in-out infinite alternate;
+ animation: poofing4 1.4s ease-in-out infinite alternate;
+ }
+
+ @-webkit-keyframes poofing4 {
+ 0% {
+ -webkit-transform: rotateZ(0deg) rotateY(0) translateY(0px) scale(1);
+ transform: rotateZ(0deg) rotateY(0) translateY(0px) scale(1);
+ }
+ 50% {
+ -webkit-transform: rotateZ(0deg) rotateY(360deg) translateY(0px) scale(1);
+ transform: rotateZ(0deg) rotateY(360deg) translateY(0px) scale(1);
+ }
+ 56% {
+ -webkit-transform: rotateZ(42deg) rotateY(360deg) translateY(0px) scale(1);
+ transform: rotateZ(42deg) rotateY(360deg) translateY(0px) scale(1);
+ }
+ 100% {
+ -webkit-transform: rotateZ(42deg) rotateY(360deg) translateY(-700px) scale(0.01);
+ transform: rotateZ(42deg) rotateY(360deg) translateY(-700px) scale(0.01);
+ }
+ }
+
+ @keyframes poofing4 {
+ 0% {
+ -webkit-transform: rotateZ(0deg) rotateY(0) translateY(0px) scale(1);
+ transform: rotateZ(0deg) rotateY(0) translateY(0px) scale(1);
+ }
+ 50% {
+ -webkit-transform: rotateZ(0deg) rotateY(360deg) translateY(0px) scale(1);
+ transform: rotateZ(0deg) rotateY(360deg) translateY(0px) scale(1);
+ }
+ 56% {
+ -webkit-transform: rotateZ(42deg) rotateY(360deg) translateY(0px) scale(1);
+ transform: rotateZ(42deg) rotateY(360deg) translateY(0px) scale(1);
+ }
+ 100% {
+ -webkit-transform: rotateZ(42deg) rotateY(360deg) translateY(-700px) scale(0.01);
+ transform: rotateZ(42deg) rotateY(360deg) translateY(-700px) scale(0.01);
+ }
+ }
+
+ .text.part1 .letter:nth-child(4) .character {
+ color: #cee007;
+ -webkit-animation: wave 1.2s linear infinite;
+ animation: wave 1.2s linear infinite;
+ -webkit-animation-delay: 1.33333s;
+ animation-delay: 1.33333s;
+ }
+
+ .text.part1 .letter:nth-child(4) span::before {
+ -webkit-animation: shadow 1.2s linear infinite;
+ animation: shadow 1.2s linear infinite;
+ -webkit-animation-delay: 1.33333s;
+ animation-delay: 1.33333s;
+ }
+
+ .text.part1 .letter:nth-child(5).poofed {
+ -webkit-transform-origin: 50% 50%;
+ transform-origin: 50% 50%;
+ -webkit-animation: poofing5 1.4s ease-in-out infinite alternate;
+ animation: poofing5 1.4s ease-in-out infinite alternate;
+ }
+
+ @-webkit-keyframes poofing5 {
+ 0% {
+ -webkit-transform: rotateZ(0deg) rotateY(0) translateY(0px) scale(1);
+ transform: rotateZ(0deg) rotateY(0) translateY(0px) scale(1);
+ }
+ 50% {
+ -webkit-transform: rotateZ(0deg) rotateY(360deg) translateY(0px) scale(1);
+ transform: rotateZ(0deg) rotateY(360deg) translateY(0px) scale(1);
+ }
+ 56% {
+ -webkit-transform: rotateZ(384deg) rotateY(360deg) translateY(0px) scale(1);
+ transform: rotateZ(384deg) rotateY(360deg) translateY(0px) scale(1);
+ }
+ 100% {
+ -webkit-transform: rotateZ(384deg) rotateY(360deg) translateY(-700px) scale(0.01);
+ transform: rotateZ(384deg) rotateY(360deg) translateY(-700px) scale(0.01);
+ }
+ }
+
+ @keyframes poofing5 {
+ 0% {
+ -webkit-transform: rotateZ(0deg) rotateY(0) translateY(0px) scale(1);
+ transform: rotateZ(0deg) rotateY(0) translateY(0px) scale(1);
+ }
+ 50% {
+ -webkit-transform: rotateZ(0deg) rotateY(360deg) translateY(0px) scale(1);
+ transform: rotateZ(0deg) rotateY(360deg) translateY(0px) scale(1);
+ }
+ 56% {
+ -webkit-transform: rotateZ(384deg) rotateY(360deg) translateY(0px) scale(1);
+ transform: rotateZ(384deg) rotateY(360deg) translateY(0px) scale(1);
+ }
+ 100% {
+ -webkit-transform: rotateZ(384deg) rotateY(360deg) translateY(-700px) scale(0.01);
+ transform: rotateZ(384deg) rotateY(360deg) translateY(-700px) scale(0.01);
+ }
+ }
+
+ .text.part1 .letter:nth-child(5) .character {
+ color: #00c6b2;
+ -webkit-animation: wave 1.2s linear infinite;
+ animation: wave 1.2s linear infinite;
+ -webkit-animation-delay: 1.66667s;
+ animation-delay: 1.66667s;
+ }
+
+ .text.part1 .letter:nth-child(5) span::before {
+ -webkit-animation: shadow 1.2s linear infinite;
+ animation: shadow 1.2s linear infinite;
+ -webkit-animation-delay: 1.66667s;
+ animation-delay: 1.66667s;
+ }
+
+ .text.part1 .letter:nth-child(6).poofed {
+ -webkit-transform-origin: 50% 50%;
+ transform-origin: 50% 50%;
+ -webkit-animation: poofing6 1.4s ease-in-out infinite alternate;
+ animation: poofing6 1.4s ease-in-out infinite alternate;
+ }
+
+ @-webkit-keyframes poofing6 {
+ 0% {
+ -webkit-transform: rotateZ(0deg) rotateY(0) translateY(0px) scale(1);
+ transform: rotateZ(0deg) rotateY(0) translateY(0px) scale(1);
+ }
+ 50% {
+ -webkit-transform: rotateZ(0deg) rotateY(360deg) translateY(0px) scale(1);
+ transform: rotateZ(0deg) rotateY(360deg) translateY(0px) scale(1);
+ }
+ 56% {
+ -webkit-transform: rotateZ(156deg) rotateY(360deg) translateY(0px) scale(1);
+ transform: rotateZ(156deg) rotateY(360deg) translateY(0px) scale(1);
+ }
+ 100% {
+ -webkit-transform: rotateZ(156deg) rotateY(360deg) translateY(-700px) scale(0.01);
+ transform: rotateZ(156deg) rotateY(360deg) translateY(-700px) scale(0.01);
+ }
+ }
+
+ @keyframes poofing6 {
+ 0% {
+ -webkit-transform: rotateZ(0deg) rotateY(0) translateY(0px) scale(1);
+ transform: rotateZ(0deg) rotateY(0) translateY(0px) scale(1);
+ }
+ 50% {
+ -webkit-transform: rotateZ(0deg) rotateY(360deg) translateY(0px) scale(1);
+ transform: rotateZ(0deg) rotateY(360deg) translateY(0px) scale(1);
+ }
+ 56% {
+ -webkit-transform: rotateZ(156deg) rotateY(360deg) translateY(0px) scale(1);
+ transform: rotateZ(156deg) rotateY(360deg) translateY(0px) scale(1);
+ }
+ 100% {
+ -webkit-transform: rotateZ(156deg) rotateY(360deg) translateY(-700px) scale(0.01);
+ transform: rotateZ(156deg) rotateY(360deg) translateY(-700px) scale(0.01);
+ }
+ }
+
+ .text.part1 .letter:nth-child(6) .character {
+ color: #f44336;
+ -webkit-animation: wave 1.2s linear infinite;
+ animation: wave 1.2s linear infinite;
+ -webkit-animation-delay: 2s;
+ animation-delay: 2s;
+ }
+
+ .text.part1 .letter:nth-child(6) span::before {
+ -webkit-animation: shadow 1.2s linear infinite;
+ animation: shadow 1.2s linear infinite;
+ -webkit-animation-delay: 2s;
+ animation-delay: 2s;
+ }
+
+ .text.part1 .letter:nth-child(7).poofed {
+ -webkit-transform-origin: 50% 50%;
+ transform-origin: 50% 50%;
+ -webkit-animation: poofing7 1.4s ease-in-out infinite alternate;
+ animation: poofing7 1.4s ease-in-out infinite alternate;
+ }
+
+ @-webkit-keyframes poofing7 {
+ 0% {
+ -webkit-transform: rotateZ(0deg) rotateY(0) translateY(0px) scale(1);
+ transform: rotateZ(0deg) rotateY(0) translateY(0px) scale(1);
+ }
+ 50% {
+ -webkit-transform: rotateZ(0deg) rotateY(360deg) translateY(0px) scale(1);
+ transform: rotateZ(0deg) rotateY(360deg) translateY(0px) scale(1);
+ }
+ 56% {
+ -webkit-transform: rotateZ(156deg) rotateY(360deg) translateY(0px) scale(1);
+ transform: rotateZ(156deg) rotateY(360deg) translateY(0px) scale(1);
+ }
+ 100% {
+ -webkit-transform: rotateZ(156deg) rotateY(360deg) translateY(-700px) scale(0.01);
+ transform: rotateZ(156deg) rotateY(360deg) translateY(-700px) scale(0.01);
+ }
+ }
+
+ @keyframes poofing7 {
+ 0% {
+ -webkit-transform: rotateZ(0deg) rotateY(0) translateY(0px) scale(1);
+ transform: rotateZ(0deg) rotateY(0) translateY(0px) scale(1);
+ }
+ 50% {
+ -webkit-transform: rotateZ(0deg) rotateY(360deg) translateY(0px) scale(1);
+ transform: rotateZ(0deg) rotateY(360deg) translateY(0px) scale(1);
+ }
+ 56% {
+ -webkit-transform: rotateZ(156deg) rotateY(360deg) translateY(0px) scale(1);
+ transform: rotateZ(156deg) rotateY(360deg) translateY(0px) scale(1);
+ }
+ 100% {
+ -webkit-transform: rotateZ(156deg) rotateY(360deg) translateY(-700px) scale(0.01);
+ transform: rotateZ(156deg) rotateY(360deg) translateY(-700px) scale(0.01);
+ }
+ }
+
+ .text.part1 .letter:nth-child(7) .character {
+ color: #4CAF50;
+ -webkit-animation: wave 1.2s linear infinite;
+ animation: wave 1.2s linear infinite;
+ -webkit-animation-delay: 2s;
+ animation-delay: 2.5s;
+ }
+
+ .text.part1 .letter:nth-child(7) span::before {
+ -webkit-animation: shadow 1.2s linear infinite;
+ animation: shadow 1.2s linear infinite;
+ -webkit-animation-delay: 2s;
+ animation-delay: 3s;
+ }
+
+ .text.part2 span:nth-child(1).poofed {
+ -webkit-animation: sec_poofing1 1.4s ease-in-out infinite alternate;
+ animation: sec_poofing1 1.4s ease-in-out infinite alternate;
+ }
+
+ @-webkit-keyframes sec_poofing1 {
+ 0% {
+ -webkit-transform: rotateZ(0deg) rotateY(0) translateY(0px) scale(1);
+ transform: rotateZ(0deg) rotateY(0) translateY(0px) scale(1);
+ }
+ 50% {
+ -webkit-transform: rotateZ(0deg) rotateY(360deg) translateY(0px) scale(1);
+ transform: rotateZ(0deg) rotateY(360deg) translateY(0px) scale(1);
+ }
+ 56% {
+ -webkit-transform: rotateZ(268deg) rotateY(360deg) translateY(0px) scale(1);
+ transform: rotateZ(268deg) rotateY(360deg) translateY(0px) scale(1);
+ }
+ 100% {
+ -webkit-transform: rotateZ(268deg) rotateY(360deg) translateY(-700px) scale(0.01);
+ transform: rotateZ(268deg) rotateY(360deg) translateY(-700px) scale(0.01);
+ }
+ }
+
+ @keyframes sec_poofing1 {
+ 0% {
+ -webkit-transform: rotateZ(0deg) rotateY(0) translateY(0px) scale(1);
+ transform: rotateZ(0deg) rotateY(0) translateY(0px) scale(1);
+ }
+ 50% {
+ -webkit-transform: rotateZ(0deg) rotateY(360deg) translateY(0px) scale(1);
+ transform: rotateZ(0deg) rotateY(360deg) translateY(0px) scale(1);
+ }
+ 56% {
+ -webkit-transform: rotateZ(268deg) rotateY(360deg) translateY(0px) scale(1);
+ transform: rotateZ(268deg) rotateY(360deg) translateY(0px) scale(1);
+ }
+ 100% {
+ -webkit-transform: rotateZ(268deg) rotateY(360deg) translateY(-700px) scale(0.01);
+ transform: rotateZ(268deg) rotateY(360deg) translateY(-700px) scale(0.01);
+ }
+ }
+
+ .text.part2 span:nth-child(1) .character {
+ color: #ff5a5f;
+ -webkit-animation: wave 1.2s linear infinite;
+ animation: wave 1.2s linear infinite;
+ -webkit-animation-delay: 2.33333s;
+ animation-delay: 2.33333s;
+ }
+
+ .text.part2 span:nth-child(1) span::before {
+ -webkit-animation: shadow 1.2s linear infinite;
+ animation: shadow 1.2s linear infinite;
+ -webkit-animation-delay: 2.33333s;
+ animation-delay: 2.33333s;
+ }
+
+ .text.part2 span:nth-child(2).poofed {
+ -webkit-animation: sec_poofing2 1.4s ease-in-out infinite alternate;
+ animation: sec_poofing2 1.4s ease-in-out infinite alternate;
+ }
+
+ @-webkit-keyframes sec_poofing2 {
+ 0% {
+ -webkit-transform: rotateZ(0deg) rotateY(0) translateY(0px) scale(1);
+ transform: rotateZ(0deg) rotateY(0) translateY(0px) scale(1);
+ }
+ 50% {
+ -webkit-transform: rotateZ(0deg) rotateY(360deg) translateY(0px) scale(1);
+ transform: rotateZ(0deg) rotateY(360deg) translateY(0px) scale(1);
+ }
+ 56% {
+ -webkit-transform: rotateZ(135deg) rotateY(360deg) translateY(0px) scale(1);
+ transform: rotateZ(135deg) rotateY(360deg) translateY(0px) scale(1);
+ }
+ 100% {
+ -webkit-transform: rotateZ(135deg) rotateY(360deg) translateY(-700px) scale(0.01);
+ transform: rotateZ(135deg) rotateY(360deg) translateY(-700px) scale(0.01);
+ }
+ }
+
+ @keyframes sec_poofing2 {
+ 0% {
+ -webkit-transform: rotateZ(0deg) rotateY(0) translateY(0px) scale(1);
+ transform: rotateZ(0deg) rotateY(0) translateY(0px) scale(1);
+ }
+ 50% {
+ -webkit-transform: rotateZ(0deg) rotateY(360deg) translateY(0px) scale(1);
+ transform: rotateZ(0deg) rotateY(360deg) translateY(0px) scale(1);
+ }
+ 56% {
+ -webkit-transform: rotateZ(135deg) rotateY(360deg) translateY(0px) scale(1);
+ transform: rotateZ(135deg) rotateY(360deg) translateY(0px) scale(1);
+ }
+ 100% {
+ -webkit-transform: rotateZ(135deg) rotateY(360deg) translateY(-700px) scale(0.01);
+ transform: rotateZ(135deg) rotateY(360deg) translateY(-700px) scale(0.01);
+ }
+ }
+
+ .text.part2 span:nth-child(2) .character {
+ color: #f99b0c;
+ -webkit-animation: wave 1.2s linear infinite;
+ animation: wave 1.2s linear infinite;
+ -webkit-animation-delay: 2.66667s;
+ animation-delay: 2.66667s;
+ }
+
+ .text.part2 span:nth-child(2) span::before {
+ -webkit-animation: shadow 1.2s linear infinite;
+ animation: shadow 1.2s linear infinite;
+ -webkit-animation-delay: 2.66667s;
+ animation-delay: 2.66667s;
+ }
+
+ .text.part2 span:nth-child(3).poofed {
+ -webkit-animation: sec_poofing3 1.4s ease-in-out infinite alternate;
+ animation: sec_poofing3 1.4s ease-in-out infinite alternate;
+ }
+
+ @-webkit-keyframes sec_poofing3 {
+ 0% {
+ -webkit-transform: rotateZ(0deg) rotateY(0) translateY(0px) scale(1);
+ transform: rotateZ(0deg) rotateY(0) translateY(0px) scale(1);
+ }
+ 50% {
+ -webkit-transform: rotateZ(0deg) rotateY(360deg) translateY(0px) scale(1);
+ transform: rotateZ(0deg) rotateY(360deg) translateY(0px) scale(1);
+ }
+ 56% {
+ -webkit-transform: rotateZ(442deg) rotateY(360deg) translateY(0px) scale(1);
+ transform: rotateZ(442deg) rotateY(360deg) translateY(0px) scale(1);
+ }
+ 100% {
+ -webkit-transform: rotateZ(442deg) rotateY(360deg) translateY(-700px) scale(0.01);
+ transform: rotateZ(442deg) rotateY(360deg) translateY(-700px) scale(0.01);
+ }
+ }
+
+ @keyframes sec_poofing3 {
+ 0% {
+ -webkit-transform: rotateZ(0deg) rotateY(0) translateY(0px) scale(1);
+ transform: rotateZ(0deg) rotateY(0) translateY(0px) scale(1);
+ }
+ 50% {
+ -webkit-transform: rotateZ(0deg) rotateY(360deg) translateY(0px) scale(1);
+ transform: rotateZ(0deg) rotateY(360deg) translateY(0px) scale(1);
+ }
+ 56% {
+ -webkit-transform: rotateZ(442deg) rotateY(360deg) translateY(0px) scale(1);
+ transform: rotateZ(442deg) rotateY(360deg) translateY(0px) scale(1);
+ }
+ 100% {
+ -webkit-transform: rotateZ(442deg) rotateY(360deg) translateY(-700px) scale(0.01);
+ transform: rotateZ(442deg) rotateY(360deg) translateY(-700px) scale(0.01);
+ }
+ }
+
+ .text.part2 span:nth-child(3) .character {
+ color: #cee007;
+ -webkit-animation: wave 1.2s linear infinite;
+ animation: wave 1.2s linear infinite;
+ -webkit-animation-delay: 3s;
+ animation-delay: 3s;
+ }
+
+ .text.part2 span:nth-child(3) span::before {
+ -webkit-animation: shadow 1.2s linear infinite;
+ animation: shadow 1.2s linear infinite;
+ -webkit-animation-delay: 3s;
+ animation-delay: 3s;
+ }
+
+ .text.part2 span:nth-child(4).poofed {
+ -webkit-animation: sec_poofing4 1.4s ease-in-out infinite alternate;
+ animation: sec_poofing4 1.4s ease-in-out infinite alternate;
+ }
+
+ @-webkit-keyframes sec_poofing4 {
+ 0% {
+ -webkit-transform: rotateZ(0deg) rotateY(0) translateY(0px) scale(1);
+ transform: rotateZ(0deg) rotateY(0) translateY(0px) scale(1);
+ }
+ 50% {
+ -webkit-transform: rotateZ(0deg) rotateY(360deg) translateY(0px) scale(1);
+ transform: rotateZ(0deg) rotateY(360deg) translateY(0px) scale(1);
+ }
+ 56% {
+ -webkit-transform: rotateZ(525deg) rotateY(360deg) translateY(0px) scale(1);
+ transform: rotateZ(525deg) rotateY(360deg) translateY(0px) scale(1);
+ }
+ 100% {
+ -webkit-transform: rotateZ(525deg) rotateY(360deg) translateY(-700px) scale(0.01);
+ transform: rotateZ(525deg) rotateY(360deg) translateY(-700px) scale(0.01);
+ }
+ }
+
+ @keyframes sec_poofing4 {
+ 0% {
+ -webkit-transform: rotateZ(0deg) rotateY(0) translateY(0px) scale(1);
+ transform: rotateZ(0deg) rotateY(0) translateY(0px) scale(1);
+ }
+ 50% {
+ -webkit-transform: rotateZ(0deg) rotateY(360deg) translateY(0px) scale(1);
+ transform: rotateZ(0deg) rotateY(360deg) translateY(0px) scale(1);
+ }
+ 56% {
+ -webkit-transform: rotateZ(525deg) rotateY(360deg) translateY(0px) scale(1);
+ transform: rotateZ(525deg) rotateY(360deg) translateY(0px) scale(1);
+ }
+ 100% {
+ -webkit-transform: rotateZ(525deg) rotateY(360deg) translateY(-700px) scale(0.01);
+ transform: rotateZ(525deg) rotateY(360deg) translateY(-700px) scale(0.01);
+ }
+ }
+
+ .text.part2 span:nth-child(4) .character {
+ color: #00c6b2;
+ -webkit-animation: wave 1.2s linear infinite;
+ animation: wave 1.2s linear infinite;
+ -webkit-animation-delay: 3.33333s;
+ animation-delay: 3.33333s;
+ }
+
+ .text.part2 span:nth-child(4) span::before {
+ -webkit-animation: shadow 1.2s linear infinite;
+ animation: shadow 1.2s linear infinite;
+ -webkit-animation-delay: 3.33333s;
+ animation-delay: 3.33333s;
+ }
+
+ .text.part2 span:nth-child(5).poofed {
+ -webkit-animation: sec_poofing5 1.4s ease-in-out infinite alternate;
+ animation: sec_poofing5 1.4s ease-in-out infinite alternate;
+ }
+
+ @-webkit-keyframes sec_poofing5 {
+ 0% {
+ -webkit-transform: rotateZ(0deg) rotateY(0) translateY(0px) scale(1);
+ transform: rotateZ(0deg) rotateY(0) translateY(0px) scale(1);
+ }
+ 50% {
+ -webkit-transform: rotateZ(0deg) rotateY(360deg) translateY(0px) scale(1);
+ transform: rotateZ(0deg) rotateY(360deg) translateY(0px) scale(1);
+ }
+ 56% {
+ -webkit-transform: rotateZ(419deg) rotateY(360deg) translateY(0px) scale(1);
+ transform: rotateZ(419deg) rotateY(360deg) translateY(0px) scale(1);
+ }
+ 100% {
+ -webkit-transform: rotateZ(419deg) rotateY(360deg) translateY(-700px) scale(0.01);
+ transform: rotateZ(419deg) rotateY(360deg) translateY(-700px) scale(0.01);
+ }
+ }
+
+ @keyframes sec_poofing5 {
+ 0% {
+ -webkit-transform: rotateZ(0deg) rotateY(0) translateY(0px) scale(1);
+ transform: rotateZ(0deg) rotateY(0) translateY(0px) scale(1);
+ }
+ 50% {
+ -webkit-transform: rotateZ(0deg) rotateY(360deg) translateY(0px) scale(1);
+ transform: rotateZ(0deg) rotateY(360deg) translateY(0px) scale(1);
+ }
+ 56% {
+ -webkit-transform: rotateZ(419deg) rotateY(360deg) translateY(0px) scale(1);
+ transform: rotateZ(419deg) rotateY(360deg) translateY(0px) scale(1);
+ }
+ 100% {
+ -webkit-transform: rotateZ(419deg) rotateY(360deg) translateY(-700px) scale(0.01);
+ transform: rotateZ(419deg) rotateY(360deg) translateY(-700px) scale(0.01);
+ }
+ }
+
+ .text.part2 span:nth-child(5) .character {
+ color: #4e2a84;
+ -webkit-animation: wave 1.2s linear infinite;
+ animation: wave 1.2s linear infinite;
+ -webkit-animation-delay: 3.66667s;
+ animation-delay: 3.66667s;
+ }
+
+ .text.part2 span:nth-child(5) span::before {
+ -webkit-animation: shadow 1.2s linear infinite;
+ animation: shadow 1.2s linear infinite;
+ -webkit-animation-delay: 3.66667s;
+ animation-delay: 3.66667s;
+ }
+
+ .text.part2 span:nth-child(6).poofed {
+ -webkit-animation: sec_poofing6 1.4s ease-in-out infinite alternate;
+ animation: sec_poofing6 1.4s ease-in-out infinite alternate;
+ }
+
+ @-webkit-keyframes sec_poofing6 {
+ 0% {
+ -webkit-transform: rotateZ(0deg) rotateY(0) translateY(0px) scale(1);
+ transform: rotateZ(0deg) rotateY(0) translateY(0px) scale(1);
+ }
+ 50% {
+ -webkit-transform: rotateZ(0deg) rotateY(360deg) translateY(0px) scale(1);
+ transform: rotateZ(0deg) rotateY(360deg) translateY(0px) scale(1);
+ }
+ 56% {
+ -webkit-transform: rotateZ(246deg) rotateY(360deg) translateY(0px) scale(1);
+ transform: rotateZ(246deg) rotateY(360deg) translateY(0px) scale(1);
+ }
+ 100% {
+ -webkit-transform: rotateZ(246deg) rotateY(360deg) translateY(-700px) scale(0.01);
+ transform: rotateZ(246deg) rotateY(360deg) translateY(-700px) scale(0.01);
+ }
+ }
+
+ @keyframes sec_poofing6 {
+ 0% {
+ -webkit-transform: rotateZ(0deg) rotateY(0) translateY(0px) scale(1);
+ transform: rotateZ(0deg) rotateY(0) translateY(0px) scale(1);
+ }
+ 50% {
+ -webkit-transform: rotateZ(0deg) rotateY(360deg) translateY(0px) scale(1);
+ transform: rotateZ(0deg) rotateY(360deg) translateY(0px) scale(1);
+ }
+ 56% {
+ -webkit-transform: rotateZ(246deg) rotateY(360deg) translateY(0px) scale(1);
+ transform: rotateZ(246deg) rotateY(360deg) translateY(0px) scale(1);
+ }
+ 100% {
+ -webkit-transform: rotateZ(246deg) rotateY(360deg) translateY(-700px) scale(0.01);
+ transform: rotateZ(246deg) rotateY(360deg) translateY(-700px) scale(0.01);
+ }
+ }
+
+ .text.part2 span:nth-child(6) .character {
+ color: #9C27B0;
+ -webkit-animation: wave 1.2s linear infinite;
+ animation: wave 1.2s linear infinite;
+ -webkit-animation-delay: 4s;
+ animation-delay: 4s;
+ }
+
+ .text.part2 span:nth-child(6) span::before {
+ -webkit-animation: shadow 1.2s linear infinite;
+ animation: shadow 1.2s linear infinite;
+ -webkit-animation-delay: 4s;
+ animation-delay: 4s;
+ }
+
+ .text.part2 span:nth-child(7).poofed {
+ -webkit-animation: sec_poofing7 1.4s ease-in-out infinite alternate;
+ animation: sec_poofing7 1.4s ease-in-out infinite alternate;
+ }
+
+ @-webkit-keyframes sec_poofing7 {
+ 0% {
+ -webkit-transform: rotateZ(0deg) rotateY(0) translateY(0px) scale(1);
+ transform: rotateZ(0deg) rotateY(0) translateY(0px) scale(1);
+ }
+ 50% {
+ -webkit-transform: rotateZ(0deg) rotateY(360deg) translateY(0px) scale(1);
+ transform: rotateZ(0deg) rotateY(360deg) translateY(0px) scale(1);
+ }
+ 56% {
+ -webkit-transform: rotateZ(206deg) rotateY(360deg) translateY(0px) scale(1);
+ transform: rotateZ(206deg) rotateY(360deg) translateY(0px) scale(1);
+ }
+ 100% {
+ -webkit-transform: rotateZ(206deg) rotateY(360deg) translateY(-700px) scale(0.01);
+ transform: rotateZ(206deg) rotateY(360deg) translateY(-700px) scale(0.01);
+ }
+ }
+
+ @keyframes sec_poofing7 {
+ 0% {
+ -webkit-transform: rotateZ(0deg) rotateY(0) translateY(0px) scale(1);
+ transform: rotateZ(0deg) rotateY(0) translateY(0px) scale(1);
+ }
+ 50% {
+ -webkit-transform: rotateZ(0deg) rotateY(360deg) translateY(0px) scale(1);
+ transform: rotateZ(0deg) rotateY(360deg) translateY(0px) scale(1);
+ }
+ 56% {
+ -webkit-transform: rotateZ(206deg) rotateY(360deg) translateY(0px) scale(1);
+ transform: rotateZ(206deg) rotateY(360deg) translateY(0px) scale(1);
+ }
+ 100% {
+ -webkit-transform: rotateZ(206deg) rotateY(360deg) translateY(-700px) scale(0.01);
+ transform: rotateZ(206deg) rotateY(360deg) translateY(-700px) scale(0.01);
+ }
+ }
+
+ .text.part2 span:nth-child(7) .character {
+ color: #f99b0c;
+ -webkit-animation: wave 1.2s linear infinite;
+ animation: wave 1.2s linear infinite;
+ -webkit-animation-delay: 4.33333s;
+ animation-delay: 4.33333s;
+ }
+
+ .text.part2 span:nth-child(7) span::before {
+ -webkit-animation: shadow 1.2s linear infinite;
+ animation: shadow 1.2s linear infinite;
+ -webkit-animation-delay: 4.33333s;
+ animation-delay: 4.33333s;
+ }
+
+ .text.part2 span:nth-child(8).poofed {
+ -webkit-animation: sec_poofing8 1.4s ease-in-out infinite alternate;
+ animation: sec_poofing8 1.4s ease-in-out infinite alternate;
+ }
+
+ @-webkit-keyframes sec_poofing8 {
+ 0% {
+ -webkit-transform: rotateZ(0deg) rotateY(0) translateY(0px) scale(1);
+ transform: rotateZ(0deg) rotateY(0) translateY(0px) scale(1);
+ }
+ 50% {
+ -webkit-transform: rotateZ(0deg) rotateY(360deg) translateY(0px) scale(1);
+ transform: rotateZ(0deg) rotateY(360deg) translateY(0px) scale(1);
+ }
+ 56% {
+ -webkit-transform: rotateZ(60deg) rotateY(360deg) translateY(0px) scale(1);
+ transform: rotateZ(60deg) rotateY(360deg) translateY(0px) scale(1);
+ }
+ 100% {
+ -webkit-transform: rotateZ(60deg) rotateY(360deg) translateY(-700px) scale(0.01);
+ transform: rotateZ(60deg) rotateY(360deg) translateY(-700px) scale(0.01);
+ }
+ }
+
+ @keyframes sec_poofing8 {
+ 0% {
+ -webkit-transform: rotateZ(0deg) rotateY(0) translateY(0px) scale(1);
+ transform: rotateZ(0deg) rotateY(0) translateY(0px) scale(1);
+ }
+ 50% {
+ -webkit-transform: rotateZ(0deg) rotateY(360deg) translateY(0px) scale(1);
+ transform: rotateZ(0deg) rotateY(360deg) translateY(0px) scale(1);
+ }
+ 56% {
+ -webkit-transform: rotateZ(60deg) rotateY(360deg) translateY(0px) scale(1);
+ transform: rotateZ(60deg) rotateY(360deg) translateY(0px) scale(1);
+ }
+ 100% {
+ -webkit-transform: rotateZ(60deg) rotateY(360deg) translateY(-700px) scale(0.01);
+ transform: rotateZ(60deg) rotateY(360deg) translateY(-700px) scale(0.01);
+ }
+ }
+
+ .text.part2 span:nth-child(8) .character {
+ color: #cee007;
+ -webkit-animation: wave 1.2s linear infinite;
+ animation: wave 1.2s linear infinite;
+ -webkit-animation-delay: 4.66667s;
+ animation-delay: 4.66667s;
+ }
+
+ .text.part2 span:nth-child(8) span::before {
+ -webkit-animation: shadow 1.2s linear infinite;
+ animation: shadow 1.2s linear infinite;
+ -webkit-animation-delay: 4.66667s;
+ animation-delay: 4.66667s;
+ }
+
+ .text.part2 span:nth-child(9).poofed {
+ -webkit-animation: sec_poofing9 1.4s ease-in-out infinite alternate;
+ animation: sec_poofing9 1.4s ease-in-out infinite alternate;
+ }
+
+ @-webkit-keyframes sec_poofing9 {
+ 0% {
+ -webkit-transform: rotateZ(0deg) rotateY(0) translateY(0px) scale(1);
+ transform: rotateZ(0deg) rotateY(0) translateY(0px) scale(1);
+ }
+ 50% {
+ -webkit-transform: rotateZ(0deg) rotateY(360deg) translateY(0px) scale(1);
+ transform: rotateZ(0deg) rotateY(360deg) translateY(0px) scale(1);
+ }
+ 56% {
+ -webkit-transform: rotateZ(496deg) rotateY(360deg) translateY(0px) scale(1);
+ transform: rotateZ(496deg) rotateY(360deg) translateY(0px) scale(1);
+ }
+ 100% {
+ -webkit-transform: rotateZ(496deg) rotateY(360deg) translateY(-700px) scale(0.01);
+ transform: rotateZ(496deg) rotateY(360deg) translateY(-700px) scale(0.01);
+ }
+ }
+
+ @keyframes sec_poofing9 {
+ 0% {
+ -webkit-transform: rotateZ(0deg) rotateY(0) translateY(0px) scale(1);
+ transform: rotateZ(0deg) rotateY(0) translateY(0px) scale(1);
+ }
+ 50% {
+ -webkit-transform: rotateZ(0deg) rotateY(360deg) translateY(0px) scale(1);
+ transform: rotateZ(0deg) rotateY(360deg) translateY(0px) scale(1);
+ }
+ 56% {
+ -webkit-transform: rotateZ(496deg) rotateY(360deg) translateY(0px) scale(1);
+ transform: rotateZ(496deg) rotateY(360deg) translateY(0px) scale(1);
+ }
+ 100% {
+ -webkit-transform: rotateZ(496deg) rotateY(360deg) translateY(-700px) scale(0.01);
+ transform: rotateZ(496deg) rotateY(360deg) translateY(-700px) scale(0.01);
+ }
+ }
+
+ .text.part2 span:nth-child(9) .character {
+ color: #00c6b2;
+ -webkit-animation: wave 1.2s linear infinite;
+ animation: wave 1.2s linear infinite;
+ -webkit-animation-delay: 5s;
+ animation-delay: 5s;
+ }
+
+ .text.part2 span:nth-child(9) span::before {
+ -webkit-animation: shadow 1.2s linear infinite;
+ animation: shadow 1.2s linear infinite;
+ -webkit-animation-delay: 5s;
+ animation-delay: 5s;
+ }
+
+ @-webkit-keyframes wave {
+ 0% {
+ -webkit-transform: translateY(0);
+ transform: translateY(0);
+ }
+ 50% {
+ -webkit-transform: translateY(-10px);
+ transform: translateY(-10px);
+ }
+ 100% {
+ -webkit-transform: translateY(0);
+ transform: translateY(0);
+ }
+ }
+
+ @keyframes wave {
+ 0% {
+ -webkit-transform: translateY(0);
+ transform: translateY(0);
+ }
+ 50% {
+ -webkit-transform: translateY(-10px);
+ transform: translateY(-10px);
+ }
+ 100% {
+ -webkit-transform: translateY(0);
+ transform: translateY(0);
+ }
+ }
+
+ @-webkit-keyframes shadow {
+ 0% {
+ width: 0;
+ height: 0;
+ }
+ 50% {
+ width: 100%;
+ height: 100%;
+ }
+ 100% {
+ width: 0;
+ height: 0;
+ }
+ }
+
+ @keyframes shadow {
+ 0% {
+ width: 0;
+ height: 0;
+ }
+ 50% {
+ width: 100%;
+ height: 100%;
+ }
+ 100% {
+ width: 0;
+ height: 0;
+ }
+ }
+
+ .how-to {
+ margin: 2rem 0 2rem 1rem;
+ font-family: "Opens Sans", sans-serif;
+ font-weight: 300;
+ font-size: .85em;
+ letter-spacing: 4px;
+ color: rgba(0, 0, 0, 0.8);
+ }
+
+ @-webkit-keyframes rotate {
+ 0% {
+ -webkit-transform: rotateZ(0) scale(0.7);
+ transform: rotateZ(0) scale(0.7);
+ }
+ 100% {
+ -webkit-transform: rotateZ(360deg) scale(0.7);
+ transform: rotateZ(360deg) scale(0.7);
+ }
+ }
+
+ @keyframes rotate {
+ 0% {
+ -webkit-transform: rotateZ(0) scale(0.7);
+ transform: rotateZ(0) scale(0.7);
+ }
+ 100% {
+ -webkit-transform: rotateZ(360deg) scale(0.7);
+ transform: rotateZ(360deg) scale(0.7);
+ }
+ }
+
+ @media only screen and (max-width: 767px) {
+ .text {
+ font-size: 6em;
+ }
+ .text .letter span {
+ bottom: .5rem;
+ }
+ }
+
+ @media only screen and (max-width: 480px) {
+ .text {
+ font-size: 4em;
+ }
+ .text .letter span {
+ bottom: 0;
+ }
+ }
\ No newline at end of file
diff --git a/node_modules/pdfh5/git.pdf b/node_modules/pdfh5/git.pdf
new file mode 100644
index 0000000..7a8ac56
--- /dev/null
+++ b/node_modules/pdfh5/git.pdf
Binary files differ
diff --git a/node_modules/pdfh5/index.html b/node_modules/pdfh5/index.html
new file mode 100644
index 0000000..cf8ceb2
--- /dev/null
+++ b/node_modules/pdfh5/index.html
@@ -0,0 +1,232 @@
+<!DOCTYPE html>
+<html lang="zh-CN">
+
+<head>
+ <meta charset="UTF-8">
+ <meta name="viewport" content="width=device-width, initial-scale=1.0">
+ <meta name="msapplication-tap-highlight" content="no" />
+ <meta http-equiv="X-UA-Compatible" content="ie=edge">
+ <meta name="keywords" content="pdfh5.js,pdf.js,gjTool,gjtool.cn,www.gjtool.cn,gjTool.js,移动端展示预览打开pdf,手机端展示预览打开pd" />
+ <meta name="description" content="pdf.js移动端展示预览打开pdf-pdfh5.js" />
+ <title>pdf.js移动端展示预览打开pdf-pdfh5.js</title>
+ <link rel="stylesheet" href="css/style.css" />
+ <link href="//www.gjtool.cn/download/pdfh5.png" type="image/x-icon" rel="shortcut icon" />
+ <style>
+ html,
+ body {
+ width: 100%;
+ height: 100%;
+ }
+
+ .docs-header-content {
+ max-width: 388px;
+ float: left;
+ position: relative;
+ padding: 50px 10px;
+ text-align: center;
+ -webkit-animation-name: fadeintext;
+ -moz-animation-name: fadeintext;
+ animation-name: fadeintext;
+ -webkit-animation-duration: 2s;
+ -moz-animation-duration: 2s;
+ animation-duration: 2s;
+ background: #fff;
+ }
+
+ .docs-subtitle {
+ max-width: 750px;
+ margin: 0 auto 20px;
+ font-size: 28px;
+ font-weight: 300;
+ line-height: 38px;
+ color: #d64c28;
+ margin-bottom: 30px;
+ font-size: 41px;
+ line-height: 60px;
+ }
+
+ .github-btn {
+ overflow: hidden;
+ border: 0;
+ }
+
+ .phone {
+ margin: 10px auto;
+ position: relative;
+ background: #111;
+ border-radius: 55px;
+ box-shadow: 0px 0px 0px 2px #aaa;
+ width: 270px;
+ height: 358px;
+ padding: 105px 25px;
+ -webkit-box-sizing: content-box;
+ box-sizing: content-box;
+ float: right;
+ transform: translateX(-8%);
+ }
+
+ .phone iframe {
+ width: 270px;
+ height: 100%;
+ display: block;
+ width: 100%;
+ margin-top: 15px;
+ }
+
+ .phone:before {
+ content: '';
+ width: 60px;
+ height: 10px;
+ border-radius: 10px;
+ position: absolute;
+ left: 50%;
+ margin-left: -30px;
+ background: #333;
+ top: 50px;
+ }
+
+ .phone:after {
+ content: '';
+ position: absolute;
+ width: 60px;
+ height: 60px;
+ left: 50%;
+ margin-left: -30px;
+ bottom: 20px;
+ border-radius: 100%;
+ box-sizing: border-box;
+ border: 5px solid #333;
+ }
+
+ .phone .statusbar {
+ position: absolute;
+ width: 270px;
+ height: 15px;
+ background: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAoAAAAAoCAIAAADhf9zeAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyhpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMDE0IDc5LjE1Njc5NywgMjAxNC8wOC8yMC0wOTo1MzowMiAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIDIwMTQgKE1hY2ludG9zaCkiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6REEyN0EzRUU1QzM3MTFFNEE1ODA5RkNEOEU4MEU4ODYiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6REEyN0EzRUY1QzM3MTFFNEE1ODA5RkNEOEU4MEU4ODYiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDpEQTI3QTNFQzVDMzcxMUU0QTU4MDlGQ0Q4RTgwRTg4NiIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDpEQTI3QTNFRDVDMzcxMUU0QTU4MDlGQ0Q4RTgwRTg4NiIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/PuHAU7gAAA6nSURBVHja7J17TBTXF8dxUTAmYrF/1AeV+gii5eEriMYHNK2gxvhINdGoFaKoiRG0GjVGRZv+YYhF0jRoGlsJmrTGRPiDiFWrqC2ojeKr1gci4tsoRWOjRqHf356fN7czs7N39jG7K+fzx2b27pmZuzPnnsede+84whiGYRiGsR0HXwKGYRiGYQfMMAzDMOyAGYZhGIZhB8wwDMMw7IAZhmEYhmEHzDAMwzDsgBmGYRiGYQfMMAzDMOyAGYZhGF8QERGRlpbWrl07vhTsgBmGYRhbiYuLGz16NF8HdsAMwzCM3cTHx48aNYqvAztgJtjp2LFjdHR0ZGQkXwqGeWcYOHDgyJEj+TqEHO35ErzbdOjQISMjY9y4campqYiUO3fuTOXNzc2XL1+urq4+cODAoUOH3rx5w9fKY9LS0vD5999/19bWWtrxvffew77JycnYbmhoOHr06M2bN10Jf+QEGxBTr9jYsWNd/Xru3DkcCtWWCzds2CC2q6qqXJ0LNc/NzRVfS0pKTGrO2EBCQkJLS0tNTU2bvQIREREFBQWzZ8/u2rWr/WdvamoqLS1duXLlq1ev1Pfip/f/Yd68ebGxsYY/GRojcwNHbNy4UTZtbk0V1cHE9inSrVu3vLy8BQsWuFXH+/fvb9++/dtvv338+DHrgFUKCwtxnckvpqenq+8IfcCO8GRy4datW5ctW2Yo/+OPP0I3/tdolQfd4BT5+fkmAvC+OKNQUdDa2iq2y8rKpk6d6kpLUR/xFX/cS3Vl3BIVFdWrV6+LFy/KLodU4tSpUykpKdg4e/bs6dOnvTkLdHLy5MmGmjxlyhT8RFEgYk2YMsOIU1GMTkQyRUVFhlYRrQP/CJ+oj9voFprcv3//7Ozse/fu2X93unfv/sMPPyCoXb16Neuqhxw5cqTVNfX19YMGDdIYuFZ3yKYNULbktg5yImKVyMjItWvXPnv2rNUKiOCWL18eHh7OamAp9xUXEDfOktuWd5QVT3ZssrXSa5SKA1a59fIZNT9p4gPBvn37ZDG3Ws14CRrmzJkzc3JykpKSZAec4wTbAwYMQLSN7aFDh3p8Ftxu2AG9jqHc0DZCjT0QE1YOigcVbXJCDttQzeDRVSqP/AFecPz48Xfv3m21F5wR58XZOYfxgQOGWqT9F4SZ8L7kg2WTRAYOMVqaa2x2wL1790YIrIkbiouLp02bhqaLtNjhcHTp0gWhItR6y5YtdXV1sjAy7549e7ImWLJWhg54w1v0d1y4bYruqRAGCF9lJUEJNnAEUe6xA9YHBzg49FzvQTWWhRIs/R/XiLEDtoE+ffqQi01ISNA7YNC3b1/6KjtpS9Gk0DTDeBHaTvoABRCqJXtHRTH8Kps4ag76uJOCTsN41BCqtv3eV/hgTQeS74mNjYUpb2hoePnyJT63bdvmqsNWI4ntAEqa1FPd+QmjI5skUi/F1McGB5yamiq7hF9//VXFMn7yySeVlZVir4cPH3rWgNsaFJ6LXFCjBuJ66m+l8HyauyMcM2UMrvJXnzhgQhhckaOI7hDawL8z7H/WiLEDtod+/fqRDx44cKDeAY8cORLbuDsffPCB+jEhD/WQ7YZGxwxNn1BjqJAlMVEip7z1TuS9Bg0ahCppEh4VB9waOPzrgDMzM58+fao5JUpQbo/kgwcP1q9fjygPaodPbKPEG0mrzk//a7A54E6dOtXU1GD369evw61a2nfixImNjY3Y9/Dhw7hubOzMofCcDIRVB0y9KbAvrpSEDmWDA9YLiK/CN+stoIg5REc6O2DbiIuLIx8cHx8vO2AE39jIzs7u1q2bpQMaqpk+3tKrK3wkCZMrVRQTJk5v9GSXT+qneeT37jlg1WlIuHY///yzGEMrQMmePXvkWMZPkgiapk6dumnTprq6ulevXuET2yjZuXOnZ5Ie09zcHLSN859//pk0adJ33303ZMgQpL9UGB4e/tlnnxUVFdXW1qLyUJEnT56cOXOmoKAAdtPh+L8OVFRUQN23bds2bdo0SwP52iC4UORWs7KyNKOIFVtTmHPsib6XRf66cePGdm+xNLzLJ5SUlAj7q6kkdSeWlZV58N8ZL7l69erx48exMXr0aDhjKhw2bFhSUtLr168rKyvv379v6YCymhmO76PuQ726ihLSZ0UxxZgATWzZsmVWpxUECYhCtm7dqpLGqDrgNWvWREVFGf4Ef7lq1Sp/SxYXF//+++8aMZSg3DNJD4wmhfmwO8F87x89erRkyZKnT5+GOYfLwkOgxf7yyy9Lly5NTk6mCx4dHT148OAVK1Yg8Lx06dL06dNp38ePHy9evDiYI4wgAUEe/BDamMnQX2HR5DHGRLoT/Whn4epsG1Eszqi3dELPv/jiC7lcPMwrLy9nTQgIf/3114kTJ6BaYu4vAu43b96gmdOTSN9Cds9QJ6mQZoIoigEa8KxJnMQoaChYXl4edkH7CtEbRJP01q1b51ZSdR7w+PHjTX6dMGGCvyVdZQC7du0SqZ4lSRVfa5jx6IfL02xOw0PBrgUqS3j//ffhJ5AQm4vFx8fv2bPnp59+WrhwIbltxpzCwkLoA9RA71kVMTRSQsegMCL79HcSL4yg3pviD8IHwxpCUraPNHUEldy5c6c3Y/UZb/jzzz/Dw8NHjBhBX1taWuB9b9++HRKVr6qqQuSHwI5aEIwnFIzcLWwprBa0y9X8txBizpw5Kj5YiZcvX5r0feNXf0u6SudR7pmkIebTkGB5Nb0obqd52D8KWo5bxRVGUltcXAxjmpCQEBMTk5iY+Pnnn+/YsUM8gH/+/DmvKKt4VV3dWUvTkDTg1ohRMIYDj+X5TuqH9XgaEv0XMdiKJjqHSQNtaBdxfH4GHBAyMzPpGTBNAvYJeh0zsUjyT4piBD3iLXQCzRfTAUiSelnkUdn79u1z+zw4eJ4B01eV1Y1UM+AHDx58+OGHrn6Vnzr4T7Kurk4v1rNnT88kzRMUTY5Cz71ghmCS9FPCkRwgGzA8VACXB8JfyM7ORi6F0PLrr7+WB0cgUr5w4cLevXu//PLLTZs2LV68eObMmfRgiTHvWaJRweadz1aPCRsknG5WVpYrXfITJkt/IANG3VBDJCuUoIh62pCjM+YkJSX16tVLbMO43bp1K1QqP3jwYLEQBxQeqTCyXpqzB02D4sHdwhnD0lIqTFNDe/fuHULDDhobG33mgPfv3y8Gu+uprKz0t+SsWbO++uorwzTfM0lz16XvXYSRoqWIYIKhBxov63FvpF/ZvXt3dXX1jRs3XAlAm5cuXfrNN9/wOoIq5ObmwhvholVVVelzPvEkwtJSkVAniv2p281PT38NY0TDpSg16gFTCJ0XvdD0PBgbvO5VYElISEhNTRVfHQ7HuHHjYN9CpReaIj/5KS90LD8/Hx6XwkFKl9EiyDRR1zRUMYQeDJeWlvrsWGh++vlCYtaQ5nG6PyQR3+lXG0cJyj2TNMS8+1f0v4nOkGCbhmQeLyNrQVD24sUL6PT3338fHx/PhswSij26wrkSrrROPppwwyau2h/TkFxpqZCfMmWKmEyFP6KZNMxd0AFhwIABSF0WLFjw8ccfUxf0sGHDaA6S96vo6HWMZp3pV7MKe9uTTE8oFMVcmdb6+vqmpiZhWqlfWmN7DWelyzUPC44u6Obm5qKiIl+OgobJnjFjxrNnzzTlKEG5nD/5SZJST83sXpSg3DNJDxC5gvrc8CBh+vTpZ86cmTt3bkxMTGRkZGxs7Pz588+fP5+RkcHmzE8ceYtmFLFwXbRKMyW+IDj71pABU6tB8xHjn2Fc+P4Giv79+9NwjWPHjl27do0K//jjDzTn9u3bo0V3797dt2ekJ26Gj2CpkAQUxQxBdovwTp53RF1NGtsbKoa3S5cuubm5KpM5LbyOsLKyMjExcfv27ciicGh8Yht5lb5f11ASJV5KpqSk9OjRAxYNHhqf2EaJouTw4cMV+59NELoVch22FRUVaKKawuPHj3szbqgNopkxqZk6efToUVczKfXprPC+6enpQT6xjaoH+0i9MjCR/MAiUMTFxY0ZM4Ya75UrV+SfampqLl68CB+cmZlpdS0Oc86dO0dKq/F/IiAjr6kopodiO6iZzaMfggFrryNsaGhYtGjRuySpDi3xQXY25AwQLdCBmtMKduDkyZPIunjBjYAgXuQHi2M4h82DNxv6j5KSEuo8JMPKw68CRd++fceOHYsI77fffrt8+bJeoL6+Hg28Q4cOkLS6HId5BAaFpLmt8mAXUmOxHouimN6uFhYWwqJmZWVp0m45mXabQwvu3bvn8z4AFTy74Pw+YOOIzHABfcp9NYpCymGSSmrmJUPbXHU2ypKGdSA8WyDm0aNHGRkZ1dXVMTEx169fhz/mWb9+RdxNfbgmcoI8J/p9rb7Z0K/UOhHWsA2mKcGAw+FISUmB90UTvnTpkl6gT58+0BmIoXXrVyLyvu8Hhis/Px/+tby8nAbGk4GSfa2imAyNftA/goHDxnHQOmjUlXiXq0klnzx5Atc7f/78HTt2+LYPwC137tzJycnBSVEH1lXPMZkHjOgSSqDpXfHgdYRuJc3nIns54CUxMfHatWv9+vXje+1DLA10kodTuUJ/qEANwhKBguG7GXgQlp1ERUWJHixCrAWNdk0LRH/66afqr4s2UQATXZJfYKp/UaCimMhGTF5+Q5YQn7R2uuH8eBm46oqKCptdrwCJDc6+efNmS3u1Y7Vua6DRcs+zbyH3o9hvDMvidkkB/aHkvdSnAH3kJMxKn7bhfxFnv+lEf/wArvjWxtuy7JbgqA4fPtzS0uK9MhvqGC0RSGs+m8xhUxSDRhl2Pmv6ipKTk8OcK7W5VWBcjYKCgjlz5kRHR9t/LxBnlJaWrly50pJ1ZQfMMAwT8g64oaHh4MGDXnpfxmYcfAkYhmFCmsbGRva+7IAZhmEYW7l9+zZ7X4ZhGIaxj4iIiEmTJrVvz5NZGIZhGIZhlOEuaIZhGIZhB8wwDMMw7IAZhmEYhvET/wowADOhvI/6on5eAAAAAElFTkSuQmCC');
+ left: 50%;
+ margin-left: -135px;
+ top: 104px;
+ -webkit-background-size: 100% auto;
+ background-size: 100% auto;
+ }
+
+ :before,
+ :after {
+ -webkit-box-sizing: border-box;
+ -moz-box-sizing: border-box;
+ box-sizing: border-box;
+ }
+
+ .phone-link {
+ position: absolute;
+ width: 100%;
+ top: 100%;
+ left: 0;
+ text-align: center;
+ margin-top: 25px;
+ margin-bottom: 25px;
+ }
+
+ a,
+ a:focus,
+ a:active,
+ a:visited {
+ color: #018efb;
+ text-decoration: underline;
+ }
+
+ ol {
+ width: 90%;
+ margin-left: 40px;
+ list-style: decimal;
+ text-align: left;
+ }
+
+ ol li {
+ margin: 10px 0;
+ }
+ </style>
+</head>
+
+<body>
+ <div style="max-width:1024px;margin:0 auto;">
+ <div class="docs-header-content" style="transform:none;-webkit-transform:none;">
+ <p class="docs-subtitle">pdfh5.js - 移动端预览PDF插件,基于pdf.js和jQuery</p>
+ <a href="//github.com/gjTool/pdfh5"
+ style="display:block;margin-bottom:30px;">
+ <div id="code"></div>
+ </a>
+ <iframe class="github-btn"
+ src="//ghbtns.com/github-btn.html?user=gjtool&repo=pdfh5&type=watch&count=true" width="100"
+ height="20">
+ </iframe>
+ <iframe class="github-btn"
+ src="//ghbtns.com/github-btn.html?user=gjtool&repo=pdfh5&type=fork&count=true" width="100"
+ height="20">
+ </iframe>
+ <p style="text-align: left;margin-top: 20px;">本插件所需文件如下:</p>
+ <ol>
+ <li><a target="_blank" download="cmaps.zip"
+ href="//www.gjtool.cn/download/cmaps.zip">cmaps文件夹-解决字体不全问题(下载压缩包解压) 下载大小:969kb</a></li>
+ <li><a target="_blank" download="pdf.js" href="//www.gjtool.cn/pdfh5/js/pdf.js">pdf.js 下载大小:317kb</a></li>
+ <li><a target="_blank" download="pdf.worker.js" href="//www.gjtool.cn/pdfh5/js/pdf.worker.js">pdf.worker.js
+ 下载大小:749kb</a></li>
+ <li><a target="_blank" download="js"
+ href="//www.gjtool.cn/pdfh5/js/jquery-2.1.1.min.js">jquery-2.1.1.min.js 下载大小:94kb</a></li>
+ <li><a target="_blank" download="pdfh5.js" href="//www.gjtool.cn/pdfh5/js/pdfh5.js">pdfh5.js 下载大小:22kb</a>
+ </li>
+ <li><a target="_blank" download="pdfh5.css" href="//www.gjtool.cn/pdfh5/css/pdfh5.css">pdfh5.css 下载大小:9kb</a>
+ </li>
+ </ol>
+
+ </div>
+ <p style="text-align: left;margin-top: 20px;padding-left: 10px;">pdfh5支持在线预览,修改地址栏file=后的地址就行,如果不填写,就在实例化的时候传入pdf地址:</p>
+ <a target="_blank"
+ href="//www.gjtool.cn/pdfh5/pdf.html?file=//www.gjtool.cn/pdfh5/test.pdf" style="padding-left: 10px;">http://www.gjtool.cn/pdfh5/pdf.html?file=//www.gjtool.cn/pdfh5/test.pdf</a>
+ <p style="text-align: left;margin-top: 20px;padding-left: 10px;">
+ 默认优先获取浏览器地址栏?file=后面的地址,如果地址栏没有,再拿配置项的pdfurl或者data来渲染pdf。pdfh5实例初始化:</p>
+<pre style="text-align: left;margin-top: 20px;background: #111;color:aqua">
+ var pdfh5 = new Pdfh5('.pdfjs', {
+ pdfurl: 'default.pdf'
+ });
+</pre>
+ <div class="phone">
+ <iframe src="pdf.html" frameborder="0" scrolling="no"></iframe>
+ <div class="statusbar"></div>
+ <a href="pdf.html" target="_blank"
+ style="display:block;width:60px;height:60px;position: absolute;bottom:20PX;left:50%;margin-left: -30px;z-index:100;"></a>
+ <p class="phone-link">
+ <a target="_blank" href="pdf.html">Open it in a new page</a>
+ </p>
+ <p style="position: absolute;bottom: -96px;left: 0;color: #777;font-size: 14px;
+ text-indent: 70px;">鄂ICP备19002193号-1</p>
+ </div>
+
+ </div>
+ <script src="js/jquery-2.1.1.min.js"></script>
+ <script src="js/jquery.qrcode.min.js"></script>
+ <script>
+ $('#code').qrcode(location.href);
+ var _hmt = _hmt || [];
+ (function () {
+ var hm = document.createElement("script");
+ hm.src = "https://hm.baidu.com/hm.js?d924028c274d650b6f12d391ec251143";
+ var s = document.getElementsByTagName("script")[0];
+ s.parentNode.insertBefore(hm, s);
+ })();
+ (function () {
+ var bp = document.createElement('script');
+ var curProtocol = window.location.protocol.split(':')[0];
+ if (curProtocol === 'https') {
+ bp.src = 'https://zz.bdstatic.com/linksubmit/push.js';
+ }
+ else {
+ bp.src = 'http://push.zhanzhang.baidu.com/push.js';
+ }
+ var s = document.getElementsByTagName("script")[0];
+ s.parentNode.insertBefore(bp, s);
+ })();
+ </script>
+</body>
+
+</html>
\ No newline at end of file
diff --git a/node_modules/pdfh5/js/jquery-3.6.0.min.js b/node_modules/pdfh5/js/jquery-3.6.0.min.js
new file mode 100644
index 0000000..200b54e
--- /dev/null
+++ b/node_modules/pdfh5/js/jquery-3.6.0.min.js
@@ -0,0 +1,2 @@
+/*! jQuery v3.6.0 | (c) OpenJS Foundation and other contributors | jquery.org/license */
+!function(e,t){"use strict";"object"==typeof module&&"object"==typeof module.exports?module.exports=e.document?t(e,!0):function(e){if(!e.document)throw new Error("jQuery requires a window with a document");return t(e)}:t(e)}("undefined"!=typeof window?window:this,function(C,e){"use strict";var t=[],r=Object.getPrototypeOf,s=t.slice,g=t.flat?function(e){return t.flat.call(e)}:function(e){return t.concat.apply([],e)},u=t.push,i=t.indexOf,n={},o=n.toString,v=n.hasOwnProperty,a=v.toString,l=a.call(Object),y={},m=function(e){return"function"==typeof e&&"number"!=typeof e.nodeType&&"function"!=typeof e.item},x=function(e){return null!=e&&e===e.window},E=C.document,c={type:!0,src:!0,nonce:!0,noModule:!0};function b(e,t,n){var r,i,o=(n=n||E).createElement("script");if(o.text=e,t)for(r in c)(i=t[r]||t.getAttribute&&t.getAttribute(r))&&o.setAttribute(r,i);n.head.appendChild(o).parentNode.removeChild(o)}function w(e){return null==e?e+"":"object"==typeof e||"function"==typeof e?n[o.call(e)]||"object":typeof e}var f="3.6.0",S=function(e,t){return new S.fn.init(e,t)};function p(e){var t=!!e&&"length"in e&&e.length,n=w(e);return!m(e)&&!x(e)&&("array"===n||0===t||"number"==typeof t&&0<t&&t-1 in e)}S.fn=S.prototype={jquery:f,constructor:S,length:0,toArray:function(){return s.call(this)},get:function(e){return null==e?s.call(this):e<0?this[e+this.length]:this[e]},pushStack:function(e){var t=S.merge(this.constructor(),e);return t.prevObject=this,t},each:function(e){return S.each(this,e)},map:function(n){return this.pushStack(S.map(this,function(e,t){return n.call(e,t,e)}))},slice:function(){return this.pushStack(s.apply(this,arguments))},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},even:function(){return this.pushStack(S.grep(this,function(e,t){return(t+1)%2}))},odd:function(){return this.pushStack(S.grep(this,function(e,t){return t%2}))},eq:function(e){var t=this.length,n=+e+(e<0?t:0);return this.pushStack(0<=n&&n<t?[this[n]]:[])},end:function(){return this.prevObject||this.constructor()},push:u,sort:t.sort,splice:t.splice},S.extend=S.fn.extend=function(){var e,t,n,r,i,o,a=arguments[0]||{},s=1,u=arguments.length,l=!1;for("boolean"==typeof a&&(l=a,a=arguments[s]||{},s++),"object"==typeof a||m(a)||(a={}),s===u&&(a=this,s--);s<u;s++)if(null!=(e=arguments[s]))for(t in e)r=e[t],"__proto__"!==t&&a!==r&&(l&&r&&(S.isPlainObject(r)||(i=Array.isArray(r)))?(n=a[t],o=i&&!Array.isArray(n)?[]:i||S.isPlainObject(n)?n:{},i=!1,a[t]=S.extend(l,o,r)):void 0!==r&&(a[t]=r));return a},S.extend({expando:"jQuery"+(f+Math.random()).replace(/\D/g,""),isReady:!0,error:function(e){throw new Error(e)},noop:function(){},isPlainObject:function(e){var t,n;return!(!e||"[object Object]"!==o.call(e))&&(!(t=r(e))||"function"==typeof(n=v.call(t,"constructor")&&t.constructor)&&a.call(n)===l)},isEmptyObject:function(e){var t;for(t in e)return!1;return!0},globalEval:function(e,t,n){b(e,{nonce:t&&t.nonce},n)},each:function(e,t){var n,r=0;if(p(e)){for(n=e.length;r<n;r++)if(!1===t.call(e[r],r,e[r]))break}else for(r in e)if(!1===t.call(e[r],r,e[r]))break;return e},makeArray:function(e,t){var n=t||[];return null!=e&&(p(Object(e))?S.merge(n,"string"==typeof e?[e]:e):u.call(n,e)),n},inArray:function(e,t,n){return null==t?-1:i.call(t,e,n)},merge:function(e,t){for(var n=+t.length,r=0,i=e.length;r<n;r++)e[i++]=t[r];return e.length=i,e},grep:function(e,t,n){for(var r=[],i=0,o=e.length,a=!n;i<o;i++)!t(e[i],i)!==a&&r.push(e[i]);return r},map:function(e,t,n){var r,i,o=0,a=[];if(p(e))for(r=e.length;o<r;o++)null!=(i=t(e[o],o,n))&&a.push(i);else for(o in e)null!=(i=t(e[o],o,n))&&a.push(i);return g(a)},guid:1,support:y}),"function"==typeof Symbol&&(S.fn[Symbol.iterator]=t[Symbol.iterator]),S.each("Boolean Number String Function Array Date RegExp Object Error Symbol".split(" "),function(e,t){n["[object "+t+"]"]=t.toLowerCase()});var d=function(n){var e,d,b,o,i,h,f,g,w,u,l,T,C,a,E,v,s,c,y,S="sizzle"+1*new Date,p=n.document,k=0,r=0,m=ue(),x=ue(),A=ue(),N=ue(),j=function(e,t){return e===t&&(l=!0),0},D={}.hasOwnProperty,t=[],q=t.pop,L=t.push,H=t.push,O=t.slice,P=function(e,t){for(var n=0,r=e.length;n<r;n++)if(e[n]===t)return n;return-1},R="checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped",M="[\\x20\\t\\r\\n\\f]",I="(?:\\\\[\\da-fA-F]{1,6}"+M+"?|\\\\[^\\r\\n\\f]|[\\w-]|[^\0-\\x7f])+",W="\\["+M+"*("+I+")(?:"+M+"*([*^$|!~]?=)"+M+"*(?:'((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\"|("+I+"))|)"+M+"*\\]",F=":("+I+")(?:\\((('((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\")|((?:\\\\.|[^\\\\()[\\]]|"+W+")*)|.*)\\)|)",B=new RegExp(M+"+","g"),$=new RegExp("^"+M+"+|((?:^|[^\\\\])(?:\\\\.)*)"+M+"+$","g"),_=new RegExp("^"+M+"*,"+M+"*"),z=new RegExp("^"+M+"*([>+~]|"+M+")"+M+"*"),U=new RegExp(M+"|>"),X=new RegExp(F),V=new RegExp("^"+I+"$"),G={ID:new RegExp("^#("+I+")"),CLASS:new RegExp("^\\.("+I+")"),TAG:new RegExp("^("+I+"|[*])"),ATTR:new RegExp("^"+W),PSEUDO:new RegExp("^"+F),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+M+"*(even|odd|(([+-]|)(\\d*)n|)"+M+"*(?:([+-]|)"+M+"*(\\d+)|))"+M+"*\\)|)","i"),bool:new RegExp("^(?:"+R+")$","i"),needsContext:new RegExp("^"+M+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+M+"*((?:-\\d)?\\d*)"+M+"*\\)|)(?=[^-]|$)","i")},Y=/HTML$/i,Q=/^(?:input|select|textarea|button)$/i,J=/^h\d$/i,K=/^[^{]+\{\s*\[native \w/,Z=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,ee=/[+~]/,te=new RegExp("\\\\[\\da-fA-F]{1,6}"+M+"?|\\\\([^\\r\\n\\f])","g"),ne=function(e,t){var n="0x"+e.slice(1)-65536;return t||(n<0?String.fromCharCode(n+65536):String.fromCharCode(n>>10|55296,1023&n|56320))},re=/([\0-\x1f\x7f]|^-?\d)|^-$|[^\0-\x1f\x7f-\uFFFF\w-]/g,ie=function(e,t){return t?"\0"===e?"\ufffd":e.slice(0,-1)+"\\"+e.charCodeAt(e.length-1).toString(16)+" ":"\\"+e},oe=function(){T()},ae=be(function(e){return!0===e.disabled&&"fieldset"===e.nodeName.toLowerCase()},{dir:"parentNode",next:"legend"});try{H.apply(t=O.call(p.childNodes),p.childNodes),t[p.childNodes.length].nodeType}catch(e){H={apply:t.length?function(e,t){L.apply(e,O.call(t))}:function(e,t){var n=e.length,r=0;while(e[n++]=t[r++]);e.length=n-1}}}function se(t,e,n,r){var i,o,a,s,u,l,c,f=e&&e.ownerDocument,p=e?e.nodeType:9;if(n=n||[],"string"!=typeof t||!t||1!==p&&9!==p&&11!==p)return n;if(!r&&(T(e),e=e||C,E)){if(11!==p&&(u=Z.exec(t)))if(i=u[1]){if(9===p){if(!(a=e.getElementById(i)))return n;if(a.id===i)return n.push(a),n}else if(f&&(a=f.getElementById(i))&&y(e,a)&&a.id===i)return n.push(a),n}else{if(u[2])return H.apply(n,e.getElementsByTagName(t)),n;if((i=u[3])&&d.getElementsByClassName&&e.getElementsByClassName)return H.apply(n,e.getElementsByClassName(i)),n}if(d.qsa&&!N[t+" "]&&(!v||!v.test(t))&&(1!==p||"object"!==e.nodeName.toLowerCase())){if(c=t,f=e,1===p&&(U.test(t)||z.test(t))){(f=ee.test(t)&&ye(e.parentNode)||e)===e&&d.scope||((s=e.getAttribute("id"))?s=s.replace(re,ie):e.setAttribute("id",s=S)),o=(l=h(t)).length;while(o--)l[o]=(s?"#"+s:":scope")+" "+xe(l[o]);c=l.join(",")}try{return H.apply(n,f.querySelectorAll(c)),n}catch(e){N(t,!0)}finally{s===S&&e.removeAttribute("id")}}}return g(t.replace($,"$1"),e,n,r)}function ue(){var r=[];return function e(t,n){return r.push(t+" ")>b.cacheLength&&delete e[r.shift()],e[t+" "]=n}}function le(e){return e[S]=!0,e}function ce(e){var t=C.createElement("fieldset");try{return!!e(t)}catch(e){return!1}finally{t.parentNode&&t.parentNode.removeChild(t),t=null}}function fe(e,t){var n=e.split("|"),r=n.length;while(r--)b.attrHandle[n[r]]=t}function pe(e,t){var n=t&&e,r=n&&1===e.nodeType&&1===t.nodeType&&e.sourceIndex-t.sourceIndex;if(r)return r;if(n)while(n=n.nextSibling)if(n===t)return-1;return e?1:-1}function de(t){return function(e){return"input"===e.nodeName.toLowerCase()&&e.type===t}}function he(n){return function(e){var t=e.nodeName.toLowerCase();return("input"===t||"button"===t)&&e.type===n}}function ge(t){return function(e){return"form"in e?e.parentNode&&!1===e.disabled?"label"in e?"label"in e.parentNode?e.parentNode.disabled===t:e.disabled===t:e.isDisabled===t||e.isDisabled!==!t&&ae(e)===t:e.disabled===t:"label"in e&&e.disabled===t}}function ve(a){return le(function(o){return o=+o,le(function(e,t){var n,r=a([],e.length,o),i=r.length;while(i--)e[n=r[i]]&&(e[n]=!(t[n]=e[n]))})})}function ye(e){return e&&"undefined"!=typeof e.getElementsByTagName&&e}for(e in d=se.support={},i=se.isXML=function(e){var t=e&&e.namespaceURI,n=e&&(e.ownerDocument||e).documentElement;return!Y.test(t||n&&n.nodeName||"HTML")},T=se.setDocument=function(e){var t,n,r=e?e.ownerDocument||e:p;return r!=C&&9===r.nodeType&&r.documentElement&&(a=(C=r).documentElement,E=!i(C),p!=C&&(n=C.defaultView)&&n.top!==n&&(n.addEventListener?n.addEventListener("unload",oe,!1):n.attachEvent&&n.attachEvent("onunload",oe)),d.scope=ce(function(e){return a.appendChild(e).appendChild(C.createElement("div")),"undefined"!=typeof e.querySelectorAll&&!e.querySelectorAll(":scope fieldset div").length}),d.attributes=ce(function(e){return e.className="i",!e.getAttribute("className")}),d.getElementsByTagName=ce(function(e){return e.appendChild(C.createComment("")),!e.getElementsByTagName("*").length}),d.getElementsByClassName=K.test(C.getElementsByClassName),d.getById=ce(function(e){return a.appendChild(e).id=S,!C.getElementsByName||!C.getElementsByName(S).length}),d.getById?(b.filter.ID=function(e){var t=e.replace(te,ne);return function(e){return e.getAttribute("id")===t}},b.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&E){var n=t.getElementById(e);return n?[n]:[]}}):(b.filter.ID=function(e){var n=e.replace(te,ne);return function(e){var t="undefined"!=typeof e.getAttributeNode&&e.getAttributeNode("id");return t&&t.value===n}},b.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&E){var n,r,i,o=t.getElementById(e);if(o){if((n=o.getAttributeNode("id"))&&n.value===e)return[o];i=t.getElementsByName(e),r=0;while(o=i[r++])if((n=o.getAttributeNode("id"))&&n.value===e)return[o]}return[]}}),b.find.TAG=d.getElementsByTagName?function(e,t){return"undefined"!=typeof t.getElementsByTagName?t.getElementsByTagName(e):d.qsa?t.querySelectorAll(e):void 0}:function(e,t){var n,r=[],i=0,o=t.getElementsByTagName(e);if("*"===e){while(n=o[i++])1===n.nodeType&&r.push(n);return r}return o},b.find.CLASS=d.getElementsByClassName&&function(e,t){if("undefined"!=typeof t.getElementsByClassName&&E)return t.getElementsByClassName(e)},s=[],v=[],(d.qsa=K.test(C.querySelectorAll))&&(ce(function(e){var t;a.appendChild(e).innerHTML="<a id='"+S+"'></a><select id='"+S+"-\r\\' msallowcapture=''><option selected=''></option></select>",e.querySelectorAll("[msallowcapture^='']").length&&v.push("[*^$]="+M+"*(?:''|\"\")"),e.querySelectorAll("[selected]").length||v.push("\\["+M+"*(?:value|"+R+")"),e.querySelectorAll("[id~="+S+"-]").length||v.push("~="),(t=C.createElement("input")).setAttribute("name",""),e.appendChild(t),e.querySelectorAll("[name='']").length||v.push("\\["+M+"*name"+M+"*="+M+"*(?:''|\"\")"),e.querySelectorAll(":checked").length||v.push(":checked"),e.querySelectorAll("a#"+S+"+*").length||v.push(".#.+[+~]"),e.querySelectorAll("\\\f"),v.push("[\\r\\n\\f]")}),ce(function(e){e.innerHTML="<a href='' disabled='disabled'></a><select disabled='disabled'><option/></select>";var t=C.createElement("input");t.setAttribute("type","hidden"),e.appendChild(t).setAttribute("name","D"),e.querySelectorAll("[name=d]").length&&v.push("name"+M+"*[*^$|!~]?="),2!==e.querySelectorAll(":enabled").length&&v.push(":enabled",":disabled"),a.appendChild(e).disabled=!0,2!==e.querySelectorAll(":disabled").length&&v.push(":enabled",":disabled"),e.querySelectorAll("*,:x"),v.push(",.*:")})),(d.matchesSelector=K.test(c=a.matches||a.webkitMatchesSelector||a.mozMatchesSelector||a.oMatchesSelector||a.msMatchesSelector))&&ce(function(e){d.disconnectedMatch=c.call(e,"*"),c.call(e,"[s!='']:x"),s.push("!=",F)}),v=v.length&&new RegExp(v.join("|")),s=s.length&&new RegExp(s.join("|")),t=K.test(a.compareDocumentPosition),y=t||K.test(a.contains)?function(e,t){var n=9===e.nodeType?e.documentElement:e,r=t&&t.parentNode;return e===r||!(!r||1!==r.nodeType||!(n.contains?n.contains(r):e.compareDocumentPosition&&16&e.compareDocumentPosition(r)))}:function(e,t){if(t)while(t=t.parentNode)if(t===e)return!0;return!1},j=t?function(e,t){if(e===t)return l=!0,0;var n=!e.compareDocumentPosition-!t.compareDocumentPosition;return n||(1&(n=(e.ownerDocument||e)==(t.ownerDocument||t)?e.compareDocumentPosition(t):1)||!d.sortDetached&&t.compareDocumentPosition(e)===n?e==C||e.ownerDocument==p&&y(p,e)?-1:t==C||t.ownerDocument==p&&y(p,t)?1:u?P(u,e)-P(u,t):0:4&n?-1:1)}:function(e,t){if(e===t)return l=!0,0;var n,r=0,i=e.parentNode,o=t.parentNode,a=[e],s=[t];if(!i||!o)return e==C?-1:t==C?1:i?-1:o?1:u?P(u,e)-P(u,t):0;if(i===o)return pe(e,t);n=e;while(n=n.parentNode)a.unshift(n);n=t;while(n=n.parentNode)s.unshift(n);while(a[r]===s[r])r++;return r?pe(a[r],s[r]):a[r]==p?-1:s[r]==p?1:0}),C},se.matches=function(e,t){return se(e,null,null,t)},se.matchesSelector=function(e,t){if(T(e),d.matchesSelector&&E&&!N[t+" "]&&(!s||!s.test(t))&&(!v||!v.test(t)))try{var n=c.call(e,t);if(n||d.disconnectedMatch||e.document&&11!==e.document.nodeType)return n}catch(e){N(t,!0)}return 0<se(t,C,null,[e]).length},se.contains=function(e,t){return(e.ownerDocument||e)!=C&&T(e),y(e,t)},se.attr=function(e,t){(e.ownerDocument||e)!=C&&T(e);var n=b.attrHandle[t.toLowerCase()],r=n&&D.call(b.attrHandle,t.toLowerCase())?n(e,t,!E):void 0;return void 0!==r?r:d.attributes||!E?e.getAttribute(t):(r=e.getAttributeNode(t))&&r.specified?r.value:null},se.escape=function(e){return(e+"").replace(re,ie)},se.error=function(e){throw new Error("Syntax error, unrecognized expression: "+e)},se.uniqueSort=function(e){var t,n=[],r=0,i=0;if(l=!d.detectDuplicates,u=!d.sortStable&&e.slice(0),e.sort(j),l){while(t=e[i++])t===e[i]&&(r=n.push(i));while(r--)e.splice(n[r],1)}return u=null,e},o=se.getText=function(e){var t,n="",r=0,i=e.nodeType;if(i){if(1===i||9===i||11===i){if("string"==typeof e.textContent)return e.textContent;for(e=e.firstChild;e;e=e.nextSibling)n+=o(e)}else if(3===i||4===i)return e.nodeValue}else while(t=e[r++])n+=o(t);return n},(b=se.selectors={cacheLength:50,createPseudo:le,match:G,attrHandle:{},find:{},relative:{">":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(e){return e[1]=e[1].replace(te,ne),e[3]=(e[3]||e[4]||e[5]||"").replace(te,ne),"~="===e[2]&&(e[3]=" "+e[3]+" "),e.slice(0,4)},CHILD:function(e){return e[1]=e[1].toLowerCase(),"nth"===e[1].slice(0,3)?(e[3]||se.error(e[0]),e[4]=+(e[4]?e[5]+(e[6]||1):2*("even"===e[3]||"odd"===e[3])),e[5]=+(e[7]+e[8]||"odd"===e[3])):e[3]&&se.error(e[0]),e},PSEUDO:function(e){var t,n=!e[6]&&e[2];return G.CHILD.test(e[0])?null:(e[3]?e[2]=e[4]||e[5]||"":n&&X.test(n)&&(t=h(n,!0))&&(t=n.indexOf(")",n.length-t)-n.length)&&(e[0]=e[0].slice(0,t),e[2]=n.slice(0,t)),e.slice(0,3))}},filter:{TAG:function(e){var t=e.replace(te,ne).toLowerCase();return"*"===e?function(){return!0}:function(e){return e.nodeName&&e.nodeName.toLowerCase()===t}},CLASS:function(e){var t=m[e+" "];return t||(t=new RegExp("(^|"+M+")"+e+"("+M+"|$)"))&&m(e,function(e){return t.test("string"==typeof e.className&&e.className||"undefined"!=typeof e.getAttribute&&e.getAttribute("class")||"")})},ATTR:function(n,r,i){return function(e){var t=se.attr(e,n);return null==t?"!="===r:!r||(t+="","="===r?t===i:"!="===r?t!==i:"^="===r?i&&0===t.indexOf(i):"*="===r?i&&-1<t.indexOf(i):"$="===r?i&&t.slice(-i.length)===i:"~="===r?-1<(" "+t.replace(B," ")+" ").indexOf(i):"|="===r&&(t===i||t.slice(0,i.length+1)===i+"-"))}},CHILD:function(h,e,t,g,v){var y="nth"!==h.slice(0,3),m="last"!==h.slice(-4),x="of-type"===e;return 1===g&&0===v?function(e){return!!e.parentNode}:function(e,t,n){var r,i,o,a,s,u,l=y!==m?"nextSibling":"previousSibling",c=e.parentNode,f=x&&e.nodeName.toLowerCase(),p=!n&&!x,d=!1;if(c){if(y){while(l){a=e;while(a=a[l])if(x?a.nodeName.toLowerCase()===f:1===a.nodeType)return!1;u=l="only"===h&&!u&&"nextSibling"}return!0}if(u=[m?c.firstChild:c.lastChild],m&&p){d=(s=(r=(i=(o=(a=c)[S]||(a[S]={}))[a.uniqueID]||(o[a.uniqueID]={}))[h]||[])[0]===k&&r[1])&&r[2],a=s&&c.childNodes[s];while(a=++s&&a&&a[l]||(d=s=0)||u.pop())if(1===a.nodeType&&++d&&a===e){i[h]=[k,s,d];break}}else if(p&&(d=s=(r=(i=(o=(a=e)[S]||(a[S]={}))[a.uniqueID]||(o[a.uniqueID]={}))[h]||[])[0]===k&&r[1]),!1===d)while(a=++s&&a&&a[l]||(d=s=0)||u.pop())if((x?a.nodeName.toLowerCase()===f:1===a.nodeType)&&++d&&(p&&((i=(o=a[S]||(a[S]={}))[a.uniqueID]||(o[a.uniqueID]={}))[h]=[k,d]),a===e))break;return(d-=v)===g||d%g==0&&0<=d/g}}},PSEUDO:function(e,o){var t,a=b.pseudos[e]||b.setFilters[e.toLowerCase()]||se.error("unsupported pseudo: "+e);return a[S]?a(o):1<a.length?(t=[e,e,"",o],b.setFilters.hasOwnProperty(e.toLowerCase())?le(function(e,t){var n,r=a(e,o),i=r.length;while(i--)e[n=P(e,r[i])]=!(t[n]=r[i])}):function(e){return a(e,0,t)}):a}},pseudos:{not:le(function(e){var r=[],i=[],s=f(e.replace($,"$1"));return s[S]?le(function(e,t,n,r){var i,o=s(e,null,r,[]),a=e.length;while(a--)(i=o[a])&&(e[a]=!(t[a]=i))}):function(e,t,n){return r[0]=e,s(r,null,n,i),r[0]=null,!i.pop()}}),has:le(function(t){return function(e){return 0<se(t,e).length}}),contains:le(function(t){return t=t.replace(te,ne),function(e){return-1<(e.textContent||o(e)).indexOf(t)}}),lang:le(function(n){return V.test(n||"")||se.error("unsupported lang: "+n),n=n.replace(te,ne).toLowerCase(),function(e){var t;do{if(t=E?e.lang:e.getAttribute("xml:lang")||e.getAttribute("lang"))return(t=t.toLowerCase())===n||0===t.indexOf(n+"-")}while((e=e.parentNode)&&1===e.nodeType);return!1}}),target:function(e){var t=n.location&&n.location.hash;return t&&t.slice(1)===e.id},root:function(e){return e===a},focus:function(e){return e===C.activeElement&&(!C.hasFocus||C.hasFocus())&&!!(e.type||e.href||~e.tabIndex)},enabled:ge(!1),disabled:ge(!0),checked:function(e){var t=e.nodeName.toLowerCase();return"input"===t&&!!e.checked||"option"===t&&!!e.selected},selected:function(e){return e.parentNode&&e.parentNode.selectedIndex,!0===e.selected},empty:function(e){for(e=e.firstChild;e;e=e.nextSibling)if(e.nodeType<6)return!1;return!0},parent:function(e){return!b.pseudos.empty(e)},header:function(e){return J.test(e.nodeName)},input:function(e){return Q.test(e.nodeName)},button:function(e){var t=e.nodeName.toLowerCase();return"input"===t&&"button"===e.type||"button"===t},text:function(e){var t;return"input"===e.nodeName.toLowerCase()&&"text"===e.type&&(null==(t=e.getAttribute("type"))||"text"===t.toLowerCase())},first:ve(function(){return[0]}),last:ve(function(e,t){return[t-1]}),eq:ve(function(e,t,n){return[n<0?n+t:n]}),even:ve(function(e,t){for(var n=0;n<t;n+=2)e.push(n);return e}),odd:ve(function(e,t){for(var n=1;n<t;n+=2)e.push(n);return e}),lt:ve(function(e,t,n){for(var r=n<0?n+t:t<n?t:n;0<=--r;)e.push(r);return e}),gt:ve(function(e,t,n){for(var r=n<0?n+t:n;++r<t;)e.push(r);return e})}}).pseudos.nth=b.pseudos.eq,{radio:!0,checkbox:!0,file:!0,password:!0,image:!0})b.pseudos[e]=de(e);for(e in{submit:!0,reset:!0})b.pseudos[e]=he(e);function me(){}function xe(e){for(var t=0,n=e.length,r="";t<n;t++)r+=e[t].value;return r}function be(s,e,t){var u=e.dir,l=e.next,c=l||u,f=t&&"parentNode"===c,p=r++;return e.first?function(e,t,n){while(e=e[u])if(1===e.nodeType||f)return s(e,t,n);return!1}:function(e,t,n){var r,i,o,a=[k,p];if(n){while(e=e[u])if((1===e.nodeType||f)&&s(e,t,n))return!0}else while(e=e[u])if(1===e.nodeType||f)if(i=(o=e[S]||(e[S]={}))[e.uniqueID]||(o[e.uniqueID]={}),l&&l===e.nodeName.toLowerCase())e=e[u]||e;else{if((r=i[c])&&r[0]===k&&r[1]===p)return a[2]=r[2];if((i[c]=a)[2]=s(e,t,n))return!0}return!1}}function we(i){return 1<i.length?function(e,t,n){var r=i.length;while(r--)if(!i[r](e,t,n))return!1;return!0}:i[0]}function Te(e,t,n,r,i){for(var o,a=[],s=0,u=e.length,l=null!=t;s<u;s++)(o=e[s])&&(n&&!n(o,r,i)||(a.push(o),l&&t.push(s)));return a}function Ce(d,h,g,v,y,e){return v&&!v[S]&&(v=Ce(v)),y&&!y[S]&&(y=Ce(y,e)),le(function(e,t,n,r){var i,o,a,s=[],u=[],l=t.length,c=e||function(e,t,n){for(var r=0,i=t.length;r<i;r++)se(e,t[r],n);return n}(h||"*",n.nodeType?[n]:n,[]),f=!d||!e&&h?c:Te(c,s,d,n,r),p=g?y||(e?d:l||v)?[]:t:f;if(g&&g(f,p,n,r),v){i=Te(p,u),v(i,[],n,r),o=i.length;while(o--)(a=i[o])&&(p[u[o]]=!(f[u[o]]=a))}if(e){if(y||d){if(y){i=[],o=p.length;while(o--)(a=p[o])&&i.push(f[o]=a);y(null,p=[],i,r)}o=p.length;while(o--)(a=p[o])&&-1<(i=y?P(e,a):s[o])&&(e[i]=!(t[i]=a))}}else p=Te(p===t?p.splice(l,p.length):p),y?y(null,t,p,r):H.apply(t,p)})}function Ee(e){for(var i,t,n,r=e.length,o=b.relative[e[0].type],a=o||b.relative[" "],s=o?1:0,u=be(function(e){return e===i},a,!0),l=be(function(e){return-1<P(i,e)},a,!0),c=[function(e,t,n){var r=!o&&(n||t!==w)||((i=t).nodeType?u(e,t,n):l(e,t,n));return i=null,r}];s<r;s++)if(t=b.relative[e[s].type])c=[be(we(c),t)];else{if((t=b.filter[e[s].type].apply(null,e[s].matches))[S]){for(n=++s;n<r;n++)if(b.relative[e[n].type])break;return Ce(1<s&&we(c),1<s&&xe(e.slice(0,s-1).concat({value:" "===e[s-2].type?"*":""})).replace($,"$1"),t,s<n&&Ee(e.slice(s,n)),n<r&&Ee(e=e.slice(n)),n<r&&xe(e))}c.push(t)}return we(c)}return me.prototype=b.filters=b.pseudos,b.setFilters=new me,h=se.tokenize=function(e,t){var n,r,i,o,a,s,u,l=x[e+" "];if(l)return t?0:l.slice(0);a=e,s=[],u=b.preFilter;while(a){for(o in n&&!(r=_.exec(a))||(r&&(a=a.slice(r[0].length)||a),s.push(i=[])),n=!1,(r=z.exec(a))&&(n=r.shift(),i.push({value:n,type:r[0].replace($," ")}),a=a.slice(n.length)),b.filter)!(r=G[o].exec(a))||u[o]&&!(r=u[o](r))||(n=r.shift(),i.push({value:n,type:o,matches:r}),a=a.slice(n.length));if(!n)break}return t?a.length:a?se.error(e):x(e,s).slice(0)},f=se.compile=function(e,t){var n,v,y,m,x,r,i=[],o=[],a=A[e+" "];if(!a){t||(t=h(e)),n=t.length;while(n--)(a=Ee(t[n]))[S]?i.push(a):o.push(a);(a=A(e,(v=o,m=0<(y=i).length,x=0<v.length,r=function(e,t,n,r,i){var o,a,s,u=0,l="0",c=e&&[],f=[],p=w,d=e||x&&b.find.TAG("*",i),h=k+=null==p?1:Math.random()||.1,g=d.length;for(i&&(w=t==C||t||i);l!==g&&null!=(o=d[l]);l++){if(x&&o){a=0,t||o.ownerDocument==C||(T(o),n=!E);while(s=v[a++])if(s(o,t||C,n)){r.push(o);break}i&&(k=h)}m&&((o=!s&&o)&&u--,e&&c.push(o))}if(u+=l,m&&l!==u){a=0;while(s=y[a++])s(c,f,t,n);if(e){if(0<u)while(l--)c[l]||f[l]||(f[l]=q.call(r));f=Te(f)}H.apply(r,f),i&&!e&&0<f.length&&1<u+y.length&&se.uniqueSort(r)}return i&&(k=h,w=p),c},m?le(r):r))).selector=e}return a},g=se.select=function(e,t,n,r){var i,o,a,s,u,l="function"==typeof e&&e,c=!r&&h(e=l.selector||e);if(n=n||[],1===c.length){if(2<(o=c[0]=c[0].slice(0)).length&&"ID"===(a=o[0]).type&&9===t.nodeType&&E&&b.relative[o[1].type]){if(!(t=(b.find.ID(a.matches[0].replace(te,ne),t)||[])[0]))return n;l&&(t=t.parentNode),e=e.slice(o.shift().value.length)}i=G.needsContext.test(e)?0:o.length;while(i--){if(a=o[i],b.relative[s=a.type])break;if((u=b.find[s])&&(r=u(a.matches[0].replace(te,ne),ee.test(o[0].type)&&ye(t.parentNode)||t))){if(o.splice(i,1),!(e=r.length&&xe(o)))return H.apply(n,r),n;break}}}return(l||f(e,c))(r,t,!E,n,!t||ee.test(e)&&ye(t.parentNode)||t),n},d.sortStable=S.split("").sort(j).join("")===S,d.detectDuplicates=!!l,T(),d.sortDetached=ce(function(e){return 1&e.compareDocumentPosition(C.createElement("fieldset"))}),ce(function(e){return e.innerHTML="<a href='#'></a>","#"===e.firstChild.getAttribute("href")})||fe("type|href|height|width",function(e,t,n){if(!n)return e.getAttribute(t,"type"===t.toLowerCase()?1:2)}),d.attributes&&ce(function(e){return e.innerHTML="<input/>",e.firstChild.setAttribute("value",""),""===e.firstChild.getAttribute("value")})||fe("value",function(e,t,n){if(!n&&"input"===e.nodeName.toLowerCase())return e.defaultValue}),ce(function(e){return null==e.getAttribute("disabled")})||fe(R,function(e,t,n){var r;if(!n)return!0===e[t]?t.toLowerCase():(r=e.getAttributeNode(t))&&r.specified?r.value:null}),se}(C);S.find=d,S.expr=d.selectors,S.expr[":"]=S.expr.pseudos,S.uniqueSort=S.unique=d.uniqueSort,S.text=d.getText,S.isXMLDoc=d.isXML,S.contains=d.contains,S.escapeSelector=d.escape;var h=function(e,t,n){var r=[],i=void 0!==n;while((e=e[t])&&9!==e.nodeType)if(1===e.nodeType){if(i&&S(e).is(n))break;r.push(e)}return r},T=function(e,t){for(var n=[];e;e=e.nextSibling)1===e.nodeType&&e!==t&&n.push(e);return n},k=S.expr.match.needsContext;function A(e,t){return e.nodeName&&e.nodeName.toLowerCase()===t.toLowerCase()}var N=/^<([a-z][^\/\0>:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i;function j(e,n,r){return m(n)?S.grep(e,function(e,t){return!!n.call(e,t,e)!==r}):n.nodeType?S.grep(e,function(e){return e===n!==r}):"string"!=typeof n?S.grep(e,function(e){return-1<i.call(n,e)!==r}):S.filter(n,e,r)}S.filter=function(e,t,n){var r=t[0];return n&&(e=":not("+e+")"),1===t.length&&1===r.nodeType?S.find.matchesSelector(r,e)?[r]:[]:S.find.matches(e,S.grep(t,function(e){return 1===e.nodeType}))},S.fn.extend({find:function(e){var t,n,r=this.length,i=this;if("string"!=typeof e)return this.pushStack(S(e).filter(function(){for(t=0;t<r;t++)if(S.contains(i[t],this))return!0}));for(n=this.pushStack([]),t=0;t<r;t++)S.find(e,i[t],n);return 1<r?S.uniqueSort(n):n},filter:function(e){return this.pushStack(j(this,e||[],!1))},not:function(e){return this.pushStack(j(this,e||[],!0))},is:function(e){return!!j(this,"string"==typeof e&&k.test(e)?S(e):e||[],!1).length}});var D,q=/^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]+))$/;(S.fn.init=function(e,t,n){var r,i;if(!e)return this;if(n=n||D,"string"==typeof e){if(!(r="<"===e[0]&&">"===e[e.length-1]&&3<=e.length?[null,e,null]:q.exec(e))||!r[1]&&t)return!t||t.jquery?(t||n).find(e):this.constructor(t).find(e);if(r[1]){if(t=t instanceof S?t[0]:t,S.merge(this,S.parseHTML(r[1],t&&t.nodeType?t.ownerDocument||t:E,!0)),N.test(r[1])&&S.isPlainObject(t))for(r in t)m(this[r])?this[r](t[r]):this.attr(r,t[r]);return this}return(i=E.getElementById(r[2]))&&(this[0]=i,this.length=1),this}return e.nodeType?(this[0]=e,this.length=1,this):m(e)?void 0!==n.ready?n.ready(e):e(S):S.makeArray(e,this)}).prototype=S.fn,D=S(E);var L=/^(?:parents|prev(?:Until|All))/,H={children:!0,contents:!0,next:!0,prev:!0};function O(e,t){while((e=e[t])&&1!==e.nodeType);return e}S.fn.extend({has:function(e){var t=S(e,this),n=t.length;return this.filter(function(){for(var e=0;e<n;e++)if(S.contains(this,t[e]))return!0})},closest:function(e,t){var n,r=0,i=this.length,o=[],a="string"!=typeof e&&S(e);if(!k.test(e))for(;r<i;r++)for(n=this[r];n&&n!==t;n=n.parentNode)if(n.nodeType<11&&(a?-1<a.index(n):1===n.nodeType&&S.find.matchesSelector(n,e))){o.push(n);break}return this.pushStack(1<o.length?S.uniqueSort(o):o)},index:function(e){return e?"string"==typeof e?i.call(S(e),this[0]):i.call(this,e.jquery?e[0]:e):this[0]&&this[0].parentNode?this.first().prevAll().length:-1},add:function(e,t){return this.pushStack(S.uniqueSort(S.merge(this.get(),S(e,t))))},addBack:function(e){return this.add(null==e?this.prevObject:this.prevObject.filter(e))}}),S.each({parent:function(e){var t=e.parentNode;return t&&11!==t.nodeType?t:null},parents:function(e){return h(e,"parentNode")},parentsUntil:function(e,t,n){return h(e,"parentNode",n)},next:function(e){return O(e,"nextSibling")},prev:function(e){return O(e,"previousSibling")},nextAll:function(e){return h(e,"nextSibling")},prevAll:function(e){return h(e,"previousSibling")},nextUntil:function(e,t,n){return h(e,"nextSibling",n)},prevUntil:function(e,t,n){return h(e,"previousSibling",n)},siblings:function(e){return T((e.parentNode||{}).firstChild,e)},children:function(e){return T(e.firstChild)},contents:function(e){return null!=e.contentDocument&&r(e.contentDocument)?e.contentDocument:(A(e,"template")&&(e=e.content||e),S.merge([],e.childNodes))}},function(r,i){S.fn[r]=function(e,t){var n=S.map(this,i,e);return"Until"!==r.slice(-5)&&(t=e),t&&"string"==typeof t&&(n=S.filter(t,n)),1<this.length&&(H[r]||S.uniqueSort(n),L.test(r)&&n.reverse()),this.pushStack(n)}});var P=/[^\x20\t\r\n\f]+/g;function R(e){return e}function M(e){throw e}function I(e,t,n,r){var i;try{e&&m(i=e.promise)?i.call(e).done(t).fail(n):e&&m(i=e.then)?i.call(e,t,n):t.apply(void 0,[e].slice(r))}catch(e){n.apply(void 0,[e])}}S.Callbacks=function(r){var e,n;r="string"==typeof r?(e=r,n={},S.each(e.match(P)||[],function(e,t){n[t]=!0}),n):S.extend({},r);var i,t,o,a,s=[],u=[],l=-1,c=function(){for(a=a||r.once,o=i=!0;u.length;l=-1){t=u.shift();while(++l<s.length)!1===s[l].apply(t[0],t[1])&&r.stopOnFalse&&(l=s.length,t=!1)}r.memory||(t=!1),i=!1,a&&(s=t?[]:"")},f={add:function(){return s&&(t&&!i&&(l=s.length-1,u.push(t)),function n(e){S.each(e,function(e,t){m(t)?r.unique&&f.has(t)||s.push(t):t&&t.length&&"string"!==w(t)&&n(t)})}(arguments),t&&!i&&c()),this},remove:function(){return S.each(arguments,function(e,t){var n;while(-1<(n=S.inArray(t,s,n)))s.splice(n,1),n<=l&&l--}),this},has:function(e){return e?-1<S.inArray(e,s):0<s.length},empty:function(){return s&&(s=[]),this},disable:function(){return a=u=[],s=t="",this},disabled:function(){return!s},lock:function(){return a=u=[],t||i||(s=t=""),this},locked:function(){return!!a},fireWith:function(e,t){return a||(t=[e,(t=t||[]).slice?t.slice():t],u.push(t),i||c()),this},fire:function(){return f.fireWith(this,arguments),this},fired:function(){return!!o}};return f},S.extend({Deferred:function(e){var o=[["notify","progress",S.Callbacks("memory"),S.Callbacks("memory"),2],["resolve","done",S.Callbacks("once memory"),S.Callbacks("once memory"),0,"resolved"],["reject","fail",S.Callbacks("once memory"),S.Callbacks("once memory"),1,"rejected"]],i="pending",a={state:function(){return i},always:function(){return s.done(arguments).fail(arguments),this},"catch":function(e){return a.then(null,e)},pipe:function(){var i=arguments;return S.Deferred(function(r){S.each(o,function(e,t){var n=m(i[t[4]])&&i[t[4]];s[t[1]](function(){var e=n&&n.apply(this,arguments);e&&m(e.promise)?e.promise().progress(r.notify).done(r.resolve).fail(r.reject):r[t[0]+"With"](this,n?[e]:arguments)})}),i=null}).promise()},then:function(t,n,r){var u=0;function l(i,o,a,s){return function(){var n=this,r=arguments,e=function(){var e,t;if(!(i<u)){if((e=a.apply(n,r))===o.promise())throw new TypeError("Thenable self-resolution");t=e&&("object"==typeof e||"function"==typeof e)&&e.then,m(t)?s?t.call(e,l(u,o,R,s),l(u,o,M,s)):(u++,t.call(e,l(u,o,R,s),l(u,o,M,s),l(u,o,R,o.notifyWith))):(a!==R&&(n=void 0,r=[e]),(s||o.resolveWith)(n,r))}},t=s?e:function(){try{e()}catch(e){S.Deferred.exceptionHook&&S.Deferred.exceptionHook(e,t.stackTrace),u<=i+1&&(a!==M&&(n=void 0,r=[e]),o.rejectWith(n,r))}};i?t():(S.Deferred.getStackHook&&(t.stackTrace=S.Deferred.getStackHook()),C.setTimeout(t))}}return S.Deferred(function(e){o[0][3].add(l(0,e,m(r)?r:R,e.notifyWith)),o[1][3].add(l(0,e,m(t)?t:R)),o[2][3].add(l(0,e,m(n)?n:M))}).promise()},promise:function(e){return null!=e?S.extend(e,a):a}},s={};return S.each(o,function(e,t){var n=t[2],r=t[5];a[t[1]]=n.add,r&&n.add(function(){i=r},o[3-e][2].disable,o[3-e][3].disable,o[0][2].lock,o[0][3].lock),n.add(t[3].fire),s[t[0]]=function(){return s[t[0]+"With"](this===s?void 0:this,arguments),this},s[t[0]+"With"]=n.fireWith}),a.promise(s),e&&e.call(s,s),s},when:function(e){var n=arguments.length,t=n,r=Array(t),i=s.call(arguments),o=S.Deferred(),a=function(t){return function(e){r[t]=this,i[t]=1<arguments.length?s.call(arguments):e,--n||o.resolveWith(r,i)}};if(n<=1&&(I(e,o.done(a(t)).resolve,o.reject,!n),"pending"===o.state()||m(i[t]&&i[t].then)))return o.then();while(t--)I(i[t],a(t),o.reject);return o.promise()}});var W=/^(Eval|Internal|Range|Reference|Syntax|Type|URI)Error$/;S.Deferred.exceptionHook=function(e,t){C.console&&C.console.warn&&e&&W.test(e.name)&&C.console.warn("jQuery.Deferred exception: "+e.message,e.stack,t)},S.readyException=function(e){C.setTimeout(function(){throw e})};var F=S.Deferred();function B(){E.removeEventListener("DOMContentLoaded",B),C.removeEventListener("load",B),S.ready()}S.fn.ready=function(e){return F.then(e)["catch"](function(e){S.readyException(e)}),this},S.extend({isReady:!1,readyWait:1,ready:function(e){(!0===e?--S.readyWait:S.isReady)||(S.isReady=!0)!==e&&0<--S.readyWait||F.resolveWith(E,[S])}}),S.ready.then=F.then,"complete"===E.readyState||"loading"!==E.readyState&&!E.documentElement.doScroll?C.setTimeout(S.ready):(E.addEventListener("DOMContentLoaded",B),C.addEventListener("load",B));var $=function(e,t,n,r,i,o,a){var s=0,u=e.length,l=null==n;if("object"===w(n))for(s in i=!0,n)$(e,t,s,n[s],!0,o,a);else if(void 0!==r&&(i=!0,m(r)||(a=!0),l&&(a?(t.call(e,r),t=null):(l=t,t=function(e,t,n){return l.call(S(e),n)})),t))for(;s<u;s++)t(e[s],n,a?r:r.call(e[s],s,t(e[s],n)));return i?e:l?t.call(e):u?t(e[0],n):o},_=/^-ms-/,z=/-([a-z])/g;function U(e,t){return t.toUpperCase()}function X(e){return e.replace(_,"ms-").replace(z,U)}var V=function(e){return 1===e.nodeType||9===e.nodeType||!+e.nodeType};function G(){this.expando=S.expando+G.uid++}G.uid=1,G.prototype={cache:function(e){var t=e[this.expando];return t||(t={},V(e)&&(e.nodeType?e[this.expando]=t:Object.defineProperty(e,this.expando,{value:t,configurable:!0}))),t},set:function(e,t,n){var r,i=this.cache(e);if("string"==typeof t)i[X(t)]=n;else for(r in t)i[X(r)]=t[r];return i},get:function(e,t){return void 0===t?this.cache(e):e[this.expando]&&e[this.expando][X(t)]},access:function(e,t,n){return void 0===t||t&&"string"==typeof t&&void 0===n?this.get(e,t):(this.set(e,t,n),void 0!==n?n:t)},remove:function(e,t){var n,r=e[this.expando];if(void 0!==r){if(void 0!==t){n=(t=Array.isArray(t)?t.map(X):(t=X(t))in r?[t]:t.match(P)||[]).length;while(n--)delete r[t[n]]}(void 0===t||S.isEmptyObject(r))&&(e.nodeType?e[this.expando]=void 0:delete e[this.expando])}},hasData:function(e){var t=e[this.expando];return void 0!==t&&!S.isEmptyObject(t)}};var Y=new G,Q=new G,J=/^(?:\{[\w\W]*\}|\[[\w\W]*\])$/,K=/[A-Z]/g;function Z(e,t,n){var r,i;if(void 0===n&&1===e.nodeType)if(r="data-"+t.replace(K,"-$&").toLowerCase(),"string"==typeof(n=e.getAttribute(r))){try{n="true"===(i=n)||"false"!==i&&("null"===i?null:i===+i+""?+i:J.test(i)?JSON.parse(i):i)}catch(e){}Q.set(e,t,n)}else n=void 0;return n}S.extend({hasData:function(e){return Q.hasData(e)||Y.hasData(e)},data:function(e,t,n){return Q.access(e,t,n)},removeData:function(e,t){Q.remove(e,t)},_data:function(e,t,n){return Y.access(e,t,n)},_removeData:function(e,t){Y.remove(e,t)}}),S.fn.extend({data:function(n,e){var t,r,i,o=this[0],a=o&&o.attributes;if(void 0===n){if(this.length&&(i=Q.get(o),1===o.nodeType&&!Y.get(o,"hasDataAttrs"))){t=a.length;while(t--)a[t]&&0===(r=a[t].name).indexOf("data-")&&(r=X(r.slice(5)),Z(o,r,i[r]));Y.set(o,"hasDataAttrs",!0)}return i}return"object"==typeof n?this.each(function(){Q.set(this,n)}):$(this,function(e){var t;if(o&&void 0===e)return void 0!==(t=Q.get(o,n))?t:void 0!==(t=Z(o,n))?t:void 0;this.each(function(){Q.set(this,n,e)})},null,e,1<arguments.length,null,!0)},removeData:function(e){return this.each(function(){Q.remove(this,e)})}}),S.extend({queue:function(e,t,n){var r;if(e)return t=(t||"fx")+"queue",r=Y.get(e,t),n&&(!r||Array.isArray(n)?r=Y.access(e,t,S.makeArray(n)):r.push(n)),r||[]},dequeue:function(e,t){t=t||"fx";var n=S.queue(e,t),r=n.length,i=n.shift(),o=S._queueHooks(e,t);"inprogress"===i&&(i=n.shift(),r--),i&&("fx"===t&&n.unshift("inprogress"),delete o.stop,i.call(e,function(){S.dequeue(e,t)},o)),!r&&o&&o.empty.fire()},_queueHooks:function(e,t){var n=t+"queueHooks";return Y.get(e,n)||Y.access(e,n,{empty:S.Callbacks("once memory").add(function(){Y.remove(e,[t+"queue",n])})})}}),S.fn.extend({queue:function(t,n){var e=2;return"string"!=typeof t&&(n=t,t="fx",e--),arguments.length<e?S.queue(this[0],t):void 0===n?this:this.each(function(){var e=S.queue(this,t,n);S._queueHooks(this,t),"fx"===t&&"inprogress"!==e[0]&&S.dequeue(this,t)})},dequeue:function(e){return this.each(function(){S.dequeue(this,e)})},clearQueue:function(e){return this.queue(e||"fx",[])},promise:function(e,t){var n,r=1,i=S.Deferred(),o=this,a=this.length,s=function(){--r||i.resolveWith(o,[o])};"string"!=typeof e&&(t=e,e=void 0),e=e||"fx";while(a--)(n=Y.get(o[a],e+"queueHooks"))&&n.empty&&(r++,n.empty.add(s));return s(),i.promise(t)}});var ee=/[+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|)/.source,te=new RegExp("^(?:([+-])=|)("+ee+")([a-z%]*)$","i"),ne=["Top","Right","Bottom","Left"],re=E.documentElement,ie=function(e){return S.contains(e.ownerDocument,e)},oe={composed:!0};re.getRootNode&&(ie=function(e){return S.contains(e.ownerDocument,e)||e.getRootNode(oe)===e.ownerDocument});var ae=function(e,t){return"none"===(e=t||e).style.display||""===e.style.display&&ie(e)&&"none"===S.css(e,"display")};function se(e,t,n,r){var i,o,a=20,s=r?function(){return r.cur()}:function(){return S.css(e,t,"")},u=s(),l=n&&n[3]||(S.cssNumber[t]?"":"px"),c=e.nodeType&&(S.cssNumber[t]||"px"!==l&&+u)&&te.exec(S.css(e,t));if(c&&c[3]!==l){u/=2,l=l||c[3],c=+u||1;while(a--)S.style(e,t,c+l),(1-o)*(1-(o=s()/u||.5))<=0&&(a=0),c/=o;c*=2,S.style(e,t,c+l),n=n||[]}return n&&(c=+c||+u||0,i=n[1]?c+(n[1]+1)*n[2]:+n[2],r&&(r.unit=l,r.start=c,r.end=i)),i}var ue={};function le(e,t){for(var n,r,i,o,a,s,u,l=[],c=0,f=e.length;c<f;c++)(r=e[c]).style&&(n=r.style.display,t?("none"===n&&(l[c]=Y.get(r,"display")||null,l[c]||(r.style.display="")),""===r.style.display&&ae(r)&&(l[c]=(u=a=o=void 0,a=(i=r).ownerDocument,s=i.nodeName,(u=ue[s])||(o=a.body.appendChild(a.createElement(s)),u=S.css(o,"display"),o.parentNode.removeChild(o),"none"===u&&(u="block"),ue[s]=u)))):"none"!==n&&(l[c]="none",Y.set(r,"display",n)));for(c=0;c<f;c++)null!=l[c]&&(e[c].style.display=l[c]);return e}S.fn.extend({show:function(){return le(this,!0)},hide:function(){return le(this)},toggle:function(e){return"boolean"==typeof e?e?this.show():this.hide():this.each(function(){ae(this)?S(this).show():S(this).hide()})}});var ce,fe,pe=/^(?:checkbox|radio)$/i,de=/<([a-z][^\/\0>\x20\t\r\n\f]*)/i,he=/^$|^module$|\/(?:java|ecma)script/i;ce=E.createDocumentFragment().appendChild(E.createElement("div")),(fe=E.createElement("input")).setAttribute("type","radio"),fe.setAttribute("checked","checked"),fe.setAttribute("name","t"),ce.appendChild(fe),y.checkClone=ce.cloneNode(!0).cloneNode(!0).lastChild.checked,ce.innerHTML="<textarea>x</textarea>",y.noCloneChecked=!!ce.cloneNode(!0).lastChild.defaultValue,ce.innerHTML="<option></option>",y.option=!!ce.lastChild;var ge={thead:[1,"<table>","</table>"],col:[2,"<table><colgroup>","</colgroup></table>"],tr:[2,"<table><tbody>","</tbody></table>"],td:[3,"<table><tbody><tr>","</tr></tbody></table>"],_default:[0,"",""]};function ve(e,t){var n;return n="undefined"!=typeof e.getElementsByTagName?e.getElementsByTagName(t||"*"):"undefined"!=typeof e.querySelectorAll?e.querySelectorAll(t||"*"):[],void 0===t||t&&A(e,t)?S.merge([e],n):n}function ye(e,t){for(var n=0,r=e.length;n<r;n++)Y.set(e[n],"globalEval",!t||Y.get(t[n],"globalEval"))}ge.tbody=ge.tfoot=ge.colgroup=ge.caption=ge.thead,ge.th=ge.td,y.option||(ge.optgroup=ge.option=[1,"<select multiple='multiple'>","</select>"]);var me=/<|&#?\w+;/;function xe(e,t,n,r,i){for(var o,a,s,u,l,c,f=t.createDocumentFragment(),p=[],d=0,h=e.length;d<h;d++)if((o=e[d])||0===o)if("object"===w(o))S.merge(p,o.nodeType?[o]:o);else if(me.test(o)){a=a||f.appendChild(t.createElement("div")),s=(de.exec(o)||["",""])[1].toLowerCase(),u=ge[s]||ge._default,a.innerHTML=u[1]+S.htmlPrefilter(o)+u[2],c=u[0];while(c--)a=a.lastChild;S.merge(p,a.childNodes),(a=f.firstChild).textContent=""}else p.push(t.createTextNode(o));f.textContent="",d=0;while(o=p[d++])if(r&&-1<S.inArray(o,r))i&&i.push(o);else if(l=ie(o),a=ve(f.appendChild(o),"script"),l&&ye(a),n){c=0;while(o=a[c++])he.test(o.type||"")&&n.push(o)}return f}var be=/^([^.]*)(?:\.(.+)|)/;function we(){return!0}function Te(){return!1}function Ce(e,t){return e===function(){try{return E.activeElement}catch(e){}}()==("focus"===t)}function Ee(e,t,n,r,i,o){var a,s;if("object"==typeof t){for(s in"string"!=typeof n&&(r=r||n,n=void 0),t)Ee(e,s,n,r,t[s],o);return e}if(null==r&&null==i?(i=n,r=n=void 0):null==i&&("string"==typeof n?(i=r,r=void 0):(i=r,r=n,n=void 0)),!1===i)i=Te;else if(!i)return e;return 1===o&&(a=i,(i=function(e){return S().off(e),a.apply(this,arguments)}).guid=a.guid||(a.guid=S.guid++)),e.each(function(){S.event.add(this,t,i,r,n)})}function Se(e,i,o){o?(Y.set(e,i,!1),S.event.add(e,i,{namespace:!1,handler:function(e){var t,n,r=Y.get(this,i);if(1&e.isTrigger&&this[i]){if(r.length)(S.event.special[i]||{}).delegateType&&e.stopPropagation();else if(r=s.call(arguments),Y.set(this,i,r),t=o(this,i),this[i](),r!==(n=Y.get(this,i))||t?Y.set(this,i,!1):n={},r!==n)return e.stopImmediatePropagation(),e.preventDefault(),n&&n.value}else r.length&&(Y.set(this,i,{value:S.event.trigger(S.extend(r[0],S.Event.prototype),r.slice(1),this)}),e.stopImmediatePropagation())}})):void 0===Y.get(e,i)&&S.event.add(e,i,we)}S.event={global:{},add:function(t,e,n,r,i){var o,a,s,u,l,c,f,p,d,h,g,v=Y.get(t);if(V(t)){n.handler&&(n=(o=n).handler,i=o.selector),i&&S.find.matchesSelector(re,i),n.guid||(n.guid=S.guid++),(u=v.events)||(u=v.events=Object.create(null)),(a=v.handle)||(a=v.handle=function(e){return"undefined"!=typeof S&&S.event.triggered!==e.type?S.event.dispatch.apply(t,arguments):void 0}),l=(e=(e||"").match(P)||[""]).length;while(l--)d=g=(s=be.exec(e[l])||[])[1],h=(s[2]||"").split(".").sort(),d&&(f=S.event.special[d]||{},d=(i?f.delegateType:f.bindType)||d,f=S.event.special[d]||{},c=S.extend({type:d,origType:g,data:r,handler:n,guid:n.guid,selector:i,needsContext:i&&S.expr.match.needsContext.test(i),namespace:h.join(".")},o),(p=u[d])||((p=u[d]=[]).delegateCount=0,f.setup&&!1!==f.setup.call(t,r,h,a)||t.addEventListener&&t.addEventListener(d,a)),f.add&&(f.add.call(t,c),c.handler.guid||(c.handler.guid=n.guid)),i?p.splice(p.delegateCount++,0,c):p.push(c),S.event.global[d]=!0)}},remove:function(e,t,n,r,i){var o,a,s,u,l,c,f,p,d,h,g,v=Y.hasData(e)&&Y.get(e);if(v&&(u=v.events)){l=(t=(t||"").match(P)||[""]).length;while(l--)if(d=g=(s=be.exec(t[l])||[])[1],h=(s[2]||"").split(".").sort(),d){f=S.event.special[d]||{},p=u[d=(r?f.delegateType:f.bindType)||d]||[],s=s[2]&&new RegExp("(^|\\.)"+h.join("\\.(?:.*\\.|)")+"(\\.|$)"),a=o=p.length;while(o--)c=p[o],!i&&g!==c.origType||n&&n.guid!==c.guid||s&&!s.test(c.namespace)||r&&r!==c.selector&&("**"!==r||!c.selector)||(p.splice(o,1),c.selector&&p.delegateCount--,f.remove&&f.remove.call(e,c));a&&!p.length&&(f.teardown&&!1!==f.teardown.call(e,h,v.handle)||S.removeEvent(e,d,v.handle),delete u[d])}else for(d in u)S.event.remove(e,d+t[l],n,r,!0);S.isEmptyObject(u)&&Y.remove(e,"handle events")}},dispatch:function(e){var t,n,r,i,o,a,s=new Array(arguments.length),u=S.event.fix(e),l=(Y.get(this,"events")||Object.create(null))[u.type]||[],c=S.event.special[u.type]||{};for(s[0]=u,t=1;t<arguments.length;t++)s[t]=arguments[t];if(u.delegateTarget=this,!c.preDispatch||!1!==c.preDispatch.call(this,u)){a=S.event.handlers.call(this,u,l),t=0;while((i=a[t++])&&!u.isPropagationStopped()){u.currentTarget=i.elem,n=0;while((o=i.handlers[n++])&&!u.isImmediatePropagationStopped())u.rnamespace&&!1!==o.namespace&&!u.rnamespace.test(o.namespace)||(u.handleObj=o,u.data=o.data,void 0!==(r=((S.event.special[o.origType]||{}).handle||o.handler).apply(i.elem,s))&&!1===(u.result=r)&&(u.preventDefault(),u.stopPropagation()))}return c.postDispatch&&c.postDispatch.call(this,u),u.result}},handlers:function(e,t){var n,r,i,o,a,s=[],u=t.delegateCount,l=e.target;if(u&&l.nodeType&&!("click"===e.type&&1<=e.button))for(;l!==this;l=l.parentNode||this)if(1===l.nodeType&&("click"!==e.type||!0!==l.disabled)){for(o=[],a={},n=0;n<u;n++)void 0===a[i=(r=t[n]).selector+" "]&&(a[i]=r.needsContext?-1<S(i,this).index(l):S.find(i,this,null,[l]).length),a[i]&&o.push(r);o.length&&s.push({elem:l,handlers:o})}return l=this,u<t.length&&s.push({elem:l,handlers:t.slice(u)}),s},addProp:function(t,e){Object.defineProperty(S.Event.prototype,t,{enumerable:!0,configurable:!0,get:m(e)?function(){if(this.originalEvent)return e(this.originalEvent)}:function(){if(this.originalEvent)return this.originalEvent[t]},set:function(e){Object.defineProperty(this,t,{enumerable:!0,configurable:!0,writable:!0,value:e})}})},fix:function(e){return e[S.expando]?e:new S.Event(e)},special:{load:{noBubble:!0},click:{setup:function(e){var t=this||e;return pe.test(t.type)&&t.click&&A(t,"input")&&Se(t,"click",we),!1},trigger:function(e){var t=this||e;return pe.test(t.type)&&t.click&&A(t,"input")&&Se(t,"click"),!0},_default:function(e){var t=e.target;return pe.test(t.type)&&t.click&&A(t,"input")&&Y.get(t,"click")||A(t,"a")}},beforeunload:{postDispatch:function(e){void 0!==e.result&&e.originalEvent&&(e.originalEvent.returnValue=e.result)}}}},S.removeEvent=function(e,t,n){e.removeEventListener&&e.removeEventListener(t,n)},S.Event=function(e,t){if(!(this instanceof S.Event))return new S.Event(e,t);e&&e.type?(this.originalEvent=e,this.type=e.type,this.isDefaultPrevented=e.defaultPrevented||void 0===e.defaultPrevented&&!1===e.returnValue?we:Te,this.target=e.target&&3===e.target.nodeType?e.target.parentNode:e.target,this.currentTarget=e.currentTarget,this.relatedTarget=e.relatedTarget):this.type=e,t&&S.extend(this,t),this.timeStamp=e&&e.timeStamp||Date.now(),this[S.expando]=!0},S.Event.prototype={constructor:S.Event,isDefaultPrevented:Te,isPropagationStopped:Te,isImmediatePropagationStopped:Te,isSimulated:!1,preventDefault:function(){var e=this.originalEvent;this.isDefaultPrevented=we,e&&!this.isSimulated&&e.preventDefault()},stopPropagation:function(){var e=this.originalEvent;this.isPropagationStopped=we,e&&!this.isSimulated&&e.stopPropagation()},stopImmediatePropagation:function(){var e=this.originalEvent;this.isImmediatePropagationStopped=we,e&&!this.isSimulated&&e.stopImmediatePropagation(),this.stopPropagation()}},S.each({altKey:!0,bubbles:!0,cancelable:!0,changedTouches:!0,ctrlKey:!0,detail:!0,eventPhase:!0,metaKey:!0,pageX:!0,pageY:!0,shiftKey:!0,view:!0,"char":!0,code:!0,charCode:!0,key:!0,keyCode:!0,button:!0,buttons:!0,clientX:!0,clientY:!0,offsetX:!0,offsetY:!0,pointerId:!0,pointerType:!0,screenX:!0,screenY:!0,targetTouches:!0,toElement:!0,touches:!0,which:!0},S.event.addProp),S.each({focus:"focusin",blur:"focusout"},function(e,t){S.event.special[e]={setup:function(){return Se(this,e,Ce),!1},trigger:function(){return Se(this,e),!0},_default:function(){return!0},delegateType:t}}),S.each({mouseenter:"mouseover",mouseleave:"mouseout",pointerenter:"pointerover",pointerleave:"pointerout"},function(e,i){S.event.special[e]={delegateType:i,bindType:i,handle:function(e){var t,n=e.relatedTarget,r=e.handleObj;return n&&(n===this||S.contains(this,n))||(e.type=r.origType,t=r.handler.apply(this,arguments),e.type=i),t}}}),S.fn.extend({on:function(e,t,n,r){return Ee(this,e,t,n,r)},one:function(e,t,n,r){return Ee(this,e,t,n,r,1)},off:function(e,t,n){var r,i;if(e&&e.preventDefault&&e.handleObj)return r=e.handleObj,S(e.delegateTarget).off(r.namespace?r.origType+"."+r.namespace:r.origType,r.selector,r.handler),this;if("object"==typeof e){for(i in e)this.off(i,t,e[i]);return this}return!1!==t&&"function"!=typeof t||(n=t,t=void 0),!1===n&&(n=Te),this.each(function(){S.event.remove(this,e,n,t)})}});var ke=/<script|<style|<link/i,Ae=/checked\s*(?:[^=]|=\s*.checked.)/i,Ne=/^\s*<!(?:\[CDATA\[|--)|(?:\]\]|--)>\s*$/g;function je(e,t){return A(e,"table")&&A(11!==t.nodeType?t:t.firstChild,"tr")&&S(e).children("tbody")[0]||e}function De(e){return e.type=(null!==e.getAttribute("type"))+"/"+e.type,e}function qe(e){return"true/"===(e.type||"").slice(0,5)?e.type=e.type.slice(5):e.removeAttribute("type"),e}function Le(e,t){var n,r,i,o,a,s;if(1===t.nodeType){if(Y.hasData(e)&&(s=Y.get(e).events))for(i in Y.remove(t,"handle events"),s)for(n=0,r=s[i].length;n<r;n++)S.event.add(t,i,s[i][n]);Q.hasData(e)&&(o=Q.access(e),a=S.extend({},o),Q.set(t,a))}}function He(n,r,i,o){r=g(r);var e,t,a,s,u,l,c=0,f=n.length,p=f-1,d=r[0],h=m(d);if(h||1<f&&"string"==typeof d&&!y.checkClone&&Ae.test(d))return n.each(function(e){var t=n.eq(e);h&&(r[0]=d.call(this,e,t.html())),He(t,r,i,o)});if(f&&(t=(e=xe(r,n[0].ownerDocument,!1,n,o)).firstChild,1===e.childNodes.length&&(e=t),t||o)){for(s=(a=S.map(ve(e,"script"),De)).length;c<f;c++)u=e,c!==p&&(u=S.clone(u,!0,!0),s&&S.merge(a,ve(u,"script"))),i.call(n[c],u,c);if(s)for(l=a[a.length-1].ownerDocument,S.map(a,qe),c=0;c<s;c++)u=a[c],he.test(u.type||"")&&!Y.access(u,"globalEval")&&S.contains(l,u)&&(u.src&&"module"!==(u.type||"").toLowerCase()?S._evalUrl&&!u.noModule&&S._evalUrl(u.src,{nonce:u.nonce||u.getAttribute("nonce")},l):b(u.textContent.replace(Ne,""),u,l))}return n}function Oe(e,t,n){for(var r,i=t?S.filter(t,e):e,o=0;null!=(r=i[o]);o++)n||1!==r.nodeType||S.cleanData(ve(r)),r.parentNode&&(n&&ie(r)&&ye(ve(r,"script")),r.parentNode.removeChild(r));return e}S.extend({htmlPrefilter:function(e){return e},clone:function(e,t,n){var r,i,o,a,s,u,l,c=e.cloneNode(!0),f=ie(e);if(!(y.noCloneChecked||1!==e.nodeType&&11!==e.nodeType||S.isXMLDoc(e)))for(a=ve(c),r=0,i=(o=ve(e)).length;r<i;r++)s=o[r],u=a[r],void 0,"input"===(l=u.nodeName.toLowerCase())&&pe.test(s.type)?u.checked=s.checked:"input"!==l&&"textarea"!==l||(u.defaultValue=s.defaultValue);if(t)if(n)for(o=o||ve(e),a=a||ve(c),r=0,i=o.length;r<i;r++)Le(o[r],a[r]);else Le(e,c);return 0<(a=ve(c,"script")).length&&ye(a,!f&&ve(e,"script")),c},cleanData:function(e){for(var t,n,r,i=S.event.special,o=0;void 0!==(n=e[o]);o++)if(V(n)){if(t=n[Y.expando]){if(t.events)for(r in t.events)i[r]?S.event.remove(n,r):S.removeEvent(n,r,t.handle);n[Y.expando]=void 0}n[Q.expando]&&(n[Q.expando]=void 0)}}}),S.fn.extend({detach:function(e){return Oe(this,e,!0)},remove:function(e){return Oe(this,e)},text:function(e){return $(this,function(e){return void 0===e?S.text(this):this.empty().each(function(){1!==this.nodeType&&11!==this.nodeType&&9!==this.nodeType||(this.textContent=e)})},null,e,arguments.length)},append:function(){return He(this,arguments,function(e){1!==this.nodeType&&11!==this.nodeType&&9!==this.nodeType||je(this,e).appendChild(e)})},prepend:function(){return He(this,arguments,function(e){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var t=je(this,e);t.insertBefore(e,t.firstChild)}})},before:function(){return He(this,arguments,function(e){this.parentNode&&this.parentNode.insertBefore(e,this)})},after:function(){return He(this,arguments,function(e){this.parentNode&&this.parentNode.insertBefore(e,this.nextSibling)})},empty:function(){for(var e,t=0;null!=(e=this[t]);t++)1===e.nodeType&&(S.cleanData(ve(e,!1)),e.textContent="");return this},clone:function(e,t){return e=null!=e&&e,t=null==t?e:t,this.map(function(){return S.clone(this,e,t)})},html:function(e){return $(this,function(e){var t=this[0]||{},n=0,r=this.length;if(void 0===e&&1===t.nodeType)return t.innerHTML;if("string"==typeof e&&!ke.test(e)&&!ge[(de.exec(e)||["",""])[1].toLowerCase()]){e=S.htmlPrefilter(e);try{for(;n<r;n++)1===(t=this[n]||{}).nodeType&&(S.cleanData(ve(t,!1)),t.innerHTML=e);t=0}catch(e){}}t&&this.empty().append(e)},null,e,arguments.length)},replaceWith:function(){var n=[];return He(this,arguments,function(e){var t=this.parentNode;S.inArray(this,n)<0&&(S.cleanData(ve(this)),t&&t.replaceChild(e,this))},n)}}),S.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(e,a){S.fn[e]=function(e){for(var t,n=[],r=S(e),i=r.length-1,o=0;o<=i;o++)t=o===i?this:this.clone(!0),S(r[o])[a](t),u.apply(n,t.get());return this.pushStack(n)}});var Pe=new RegExp("^("+ee+")(?!px)[a-z%]+$","i"),Re=function(e){var t=e.ownerDocument.defaultView;return t&&t.opener||(t=C),t.getComputedStyle(e)},Me=function(e,t,n){var r,i,o={};for(i in t)o[i]=e.style[i],e.style[i]=t[i];for(i in r=n.call(e),t)e.style[i]=o[i];return r},Ie=new RegExp(ne.join("|"),"i");function We(e,t,n){var r,i,o,a,s=e.style;return(n=n||Re(e))&&(""!==(a=n.getPropertyValue(t)||n[t])||ie(e)||(a=S.style(e,t)),!y.pixelBoxStyles()&&Pe.test(a)&&Ie.test(t)&&(r=s.width,i=s.minWidth,o=s.maxWidth,s.minWidth=s.maxWidth=s.width=a,a=n.width,s.width=r,s.minWidth=i,s.maxWidth=o)),void 0!==a?a+"":a}function Fe(e,t){return{get:function(){if(!e())return(this.get=t).apply(this,arguments);delete this.get}}}!function(){function e(){if(l){u.style.cssText="position:absolute;left:-11111px;width:60px;margin-top:1px;padding:0;border:0",l.style.cssText="position:relative;display:block;box-sizing:border-box;overflow:scroll;margin:auto;border:1px;padding:1px;width:60%;top:1%",re.appendChild(u).appendChild(l);var e=C.getComputedStyle(l);n="1%"!==e.top,s=12===t(e.marginLeft),l.style.right="60%",o=36===t(e.right),r=36===t(e.width),l.style.position="absolute",i=12===t(l.offsetWidth/3),re.removeChild(u),l=null}}function t(e){return Math.round(parseFloat(e))}var n,r,i,o,a,s,u=E.createElement("div"),l=E.createElement("div");l.style&&(l.style.backgroundClip="content-box",l.cloneNode(!0).style.backgroundClip="",y.clearCloneStyle="content-box"===l.style.backgroundClip,S.extend(y,{boxSizingReliable:function(){return e(),r},pixelBoxStyles:function(){return e(),o},pixelPosition:function(){return e(),n},reliableMarginLeft:function(){return e(),s},scrollboxSize:function(){return e(),i},reliableTrDimensions:function(){var e,t,n,r;return null==a&&(e=E.createElement("table"),t=E.createElement("tr"),n=E.createElement("div"),e.style.cssText="position:absolute;left:-11111px;border-collapse:separate",t.style.cssText="border:1px solid",t.style.height="1px",n.style.height="9px",n.style.display="block",re.appendChild(e).appendChild(t).appendChild(n),r=C.getComputedStyle(t),a=parseInt(r.height,10)+parseInt(r.borderTopWidth,10)+parseInt(r.borderBottomWidth,10)===t.offsetHeight,re.removeChild(e)),a}}))}();var Be=["Webkit","Moz","ms"],$e=E.createElement("div").style,_e={};function ze(e){var t=S.cssProps[e]||_e[e];return t||(e in $e?e:_e[e]=function(e){var t=e[0].toUpperCase()+e.slice(1),n=Be.length;while(n--)if((e=Be[n]+t)in $e)return e}(e)||e)}var Ue=/^(none|table(?!-c[ea]).+)/,Xe=/^--/,Ve={position:"absolute",visibility:"hidden",display:"block"},Ge={letterSpacing:"0",fontWeight:"400"};function Ye(e,t,n){var r=te.exec(t);return r?Math.max(0,r[2]-(n||0))+(r[3]||"px"):t}function Qe(e,t,n,r,i,o){var a="width"===t?1:0,s=0,u=0;if(n===(r?"border":"content"))return 0;for(;a<4;a+=2)"margin"===n&&(u+=S.css(e,n+ne[a],!0,i)),r?("content"===n&&(u-=S.css(e,"padding"+ne[a],!0,i)),"margin"!==n&&(u-=S.css(e,"border"+ne[a]+"Width",!0,i))):(u+=S.css(e,"padding"+ne[a],!0,i),"padding"!==n?u+=S.css(e,"border"+ne[a]+"Width",!0,i):s+=S.css(e,"border"+ne[a]+"Width",!0,i));return!r&&0<=o&&(u+=Math.max(0,Math.ceil(e["offset"+t[0].toUpperCase()+t.slice(1)]-o-u-s-.5))||0),u}function Je(e,t,n){var r=Re(e),i=(!y.boxSizingReliable()||n)&&"border-box"===S.css(e,"boxSizing",!1,r),o=i,a=We(e,t,r),s="offset"+t[0].toUpperCase()+t.slice(1);if(Pe.test(a)){if(!n)return a;a="auto"}return(!y.boxSizingReliable()&&i||!y.reliableTrDimensions()&&A(e,"tr")||"auto"===a||!parseFloat(a)&&"inline"===S.css(e,"display",!1,r))&&e.getClientRects().length&&(i="border-box"===S.css(e,"boxSizing",!1,r),(o=s in e)&&(a=e[s])),(a=parseFloat(a)||0)+Qe(e,t,n||(i?"border":"content"),o,r,a)+"px"}function Ke(e,t,n,r,i){return new Ke.prototype.init(e,t,n,r,i)}S.extend({cssHooks:{opacity:{get:function(e,t){if(t){var n=We(e,"opacity");return""===n?"1":n}}}},cssNumber:{animationIterationCount:!0,columnCount:!0,fillOpacity:!0,flexGrow:!0,flexShrink:!0,fontWeight:!0,gridArea:!0,gridColumn:!0,gridColumnEnd:!0,gridColumnStart:!0,gridRow:!0,gridRowEnd:!0,gridRowStart:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,widows:!0,zIndex:!0,zoom:!0},cssProps:{},style:function(e,t,n,r){if(e&&3!==e.nodeType&&8!==e.nodeType&&e.style){var i,o,a,s=X(t),u=Xe.test(t),l=e.style;if(u||(t=ze(s)),a=S.cssHooks[t]||S.cssHooks[s],void 0===n)return a&&"get"in a&&void 0!==(i=a.get(e,!1,r))?i:l[t];"string"===(o=typeof n)&&(i=te.exec(n))&&i[1]&&(n=se(e,t,i),o="number"),null!=n&&n==n&&("number"!==o||u||(n+=i&&i[3]||(S.cssNumber[s]?"":"px")),y.clearCloneStyle||""!==n||0!==t.indexOf("background")||(l[t]="inherit"),a&&"set"in a&&void 0===(n=a.set(e,n,r))||(u?l.setProperty(t,n):l[t]=n))}},css:function(e,t,n,r){var i,o,a,s=X(t);return Xe.test(t)||(t=ze(s)),(a=S.cssHooks[t]||S.cssHooks[s])&&"get"in a&&(i=a.get(e,!0,n)),void 0===i&&(i=We(e,t,r)),"normal"===i&&t in Ge&&(i=Ge[t]),""===n||n?(o=parseFloat(i),!0===n||isFinite(o)?o||0:i):i}}),S.each(["height","width"],function(e,u){S.cssHooks[u]={get:function(e,t,n){if(t)return!Ue.test(S.css(e,"display"))||e.getClientRects().length&&e.getBoundingClientRect().width?Je(e,u,n):Me(e,Ve,function(){return Je(e,u,n)})},set:function(e,t,n){var r,i=Re(e),o=!y.scrollboxSize()&&"absolute"===i.position,a=(o||n)&&"border-box"===S.css(e,"boxSizing",!1,i),s=n?Qe(e,u,n,a,i):0;return a&&o&&(s-=Math.ceil(e["offset"+u[0].toUpperCase()+u.slice(1)]-parseFloat(i[u])-Qe(e,u,"border",!1,i)-.5)),s&&(r=te.exec(t))&&"px"!==(r[3]||"px")&&(e.style[u]=t,t=S.css(e,u)),Ye(0,t,s)}}}),S.cssHooks.marginLeft=Fe(y.reliableMarginLeft,function(e,t){if(t)return(parseFloat(We(e,"marginLeft"))||e.getBoundingClientRect().left-Me(e,{marginLeft:0},function(){return e.getBoundingClientRect().left}))+"px"}),S.each({margin:"",padding:"",border:"Width"},function(i,o){S.cssHooks[i+o]={expand:function(e){for(var t=0,n={},r="string"==typeof e?e.split(" "):[e];t<4;t++)n[i+ne[t]+o]=r[t]||r[t-2]||r[0];return n}},"margin"!==i&&(S.cssHooks[i+o].set=Ye)}),S.fn.extend({css:function(e,t){return $(this,function(e,t,n){var r,i,o={},a=0;if(Array.isArray(t)){for(r=Re(e),i=t.length;a<i;a++)o[t[a]]=S.css(e,t[a],!1,r);return o}return void 0!==n?S.style(e,t,n):S.css(e,t)},e,t,1<arguments.length)}}),((S.Tween=Ke).prototype={constructor:Ke,init:function(e,t,n,r,i,o){this.elem=e,this.prop=n,this.easing=i||S.easing._default,this.options=t,this.start=this.now=this.cur(),this.end=r,this.unit=o||(S.cssNumber[n]?"":"px")},cur:function(){var e=Ke.propHooks[this.prop];return e&&e.get?e.get(this):Ke.propHooks._default.get(this)},run:function(e){var t,n=Ke.propHooks[this.prop];return this.options.duration?this.pos=t=S.easing[this.easing](e,this.options.duration*e,0,1,this.options.duration):this.pos=t=e,this.now=(this.end-this.start)*t+this.start,this.options.step&&this.options.step.call(this.elem,this.now,this),n&&n.set?n.set(this):Ke.propHooks._default.set(this),this}}).init.prototype=Ke.prototype,(Ke.propHooks={_default:{get:function(e){var t;return 1!==e.elem.nodeType||null!=e.elem[e.prop]&&null==e.elem.style[e.prop]?e.elem[e.prop]:(t=S.css(e.elem,e.prop,""))&&"auto"!==t?t:0},set:function(e){S.fx.step[e.prop]?S.fx.step[e.prop](e):1!==e.elem.nodeType||!S.cssHooks[e.prop]&&null==e.elem.style[ze(e.prop)]?e.elem[e.prop]=e.now:S.style(e.elem,e.prop,e.now+e.unit)}}}).scrollTop=Ke.propHooks.scrollLeft={set:function(e){e.elem.nodeType&&e.elem.parentNode&&(e.elem[e.prop]=e.now)}},S.easing={linear:function(e){return e},swing:function(e){return.5-Math.cos(e*Math.PI)/2},_default:"swing"},S.fx=Ke.prototype.init,S.fx.step={};var Ze,et,tt,nt,rt=/^(?:toggle|show|hide)$/,it=/queueHooks$/;function ot(){et&&(!1===E.hidden&&C.requestAnimationFrame?C.requestAnimationFrame(ot):C.setTimeout(ot,S.fx.interval),S.fx.tick())}function at(){return C.setTimeout(function(){Ze=void 0}),Ze=Date.now()}function st(e,t){var n,r=0,i={height:e};for(t=t?1:0;r<4;r+=2-t)i["margin"+(n=ne[r])]=i["padding"+n]=e;return t&&(i.opacity=i.width=e),i}function ut(e,t,n){for(var r,i=(lt.tweeners[t]||[]).concat(lt.tweeners["*"]),o=0,a=i.length;o<a;o++)if(r=i[o].call(n,t,e))return r}function lt(o,e,t){var n,a,r=0,i=lt.prefilters.length,s=S.Deferred().always(function(){delete u.elem}),u=function(){if(a)return!1;for(var e=Ze||at(),t=Math.max(0,l.startTime+l.duration-e),n=1-(t/l.duration||0),r=0,i=l.tweens.length;r<i;r++)l.tweens[r].run(n);return s.notifyWith(o,[l,n,t]),n<1&&i?t:(i||s.notifyWith(o,[l,1,0]),s.resolveWith(o,[l]),!1)},l=s.promise({elem:o,props:S.extend({},e),opts:S.extend(!0,{specialEasing:{},easing:S.easing._default},t),originalProperties:e,originalOptions:t,startTime:Ze||at(),duration:t.duration,tweens:[],createTween:function(e,t){var n=S.Tween(o,l.opts,e,t,l.opts.specialEasing[e]||l.opts.easing);return l.tweens.push(n),n},stop:function(e){var t=0,n=e?l.tweens.length:0;if(a)return this;for(a=!0;t<n;t++)l.tweens[t].run(1);return e?(s.notifyWith(o,[l,1,0]),s.resolveWith(o,[l,e])):s.rejectWith(o,[l,e]),this}}),c=l.props;for(!function(e,t){var n,r,i,o,a;for(n in e)if(i=t[r=X(n)],o=e[n],Array.isArray(o)&&(i=o[1],o=e[n]=o[0]),n!==r&&(e[r]=o,delete e[n]),(a=S.cssHooks[r])&&"expand"in a)for(n in o=a.expand(o),delete e[r],o)n in e||(e[n]=o[n],t[n]=i);else t[r]=i}(c,l.opts.specialEasing);r<i;r++)if(n=lt.prefilters[r].call(l,o,c,l.opts))return m(n.stop)&&(S._queueHooks(l.elem,l.opts.queue).stop=n.stop.bind(n)),n;return S.map(c,ut,l),m(l.opts.start)&&l.opts.start.call(o,l),l.progress(l.opts.progress).done(l.opts.done,l.opts.complete).fail(l.opts.fail).always(l.opts.always),S.fx.timer(S.extend(u,{elem:o,anim:l,queue:l.opts.queue})),l}S.Animation=S.extend(lt,{tweeners:{"*":[function(e,t){var n=this.createTween(e,t);return se(n.elem,e,te.exec(t),n),n}]},tweener:function(e,t){m(e)?(t=e,e=["*"]):e=e.match(P);for(var n,r=0,i=e.length;r<i;r++)n=e[r],lt.tweeners[n]=lt.tweeners[n]||[],lt.tweeners[n].unshift(t)},prefilters:[function(e,t,n){var r,i,o,a,s,u,l,c,f="width"in t||"height"in t,p=this,d={},h=e.style,g=e.nodeType&&ae(e),v=Y.get(e,"fxshow");for(r in n.queue||(null==(a=S._queueHooks(e,"fx")).unqueued&&(a.unqueued=0,s=a.empty.fire,a.empty.fire=function(){a.unqueued||s()}),a.unqueued++,p.always(function(){p.always(function(){a.unqueued--,S.queue(e,"fx").length||a.empty.fire()})})),t)if(i=t[r],rt.test(i)){if(delete t[r],o=o||"toggle"===i,i===(g?"hide":"show")){if("show"!==i||!v||void 0===v[r])continue;g=!0}d[r]=v&&v[r]||S.style(e,r)}if((u=!S.isEmptyObject(t))||!S.isEmptyObject(d))for(r in f&&1===e.nodeType&&(n.overflow=[h.overflow,h.overflowX,h.overflowY],null==(l=v&&v.display)&&(l=Y.get(e,"display")),"none"===(c=S.css(e,"display"))&&(l?c=l:(le([e],!0),l=e.style.display||l,c=S.css(e,"display"),le([e]))),("inline"===c||"inline-block"===c&&null!=l)&&"none"===S.css(e,"float")&&(u||(p.done(function(){h.display=l}),null==l&&(c=h.display,l="none"===c?"":c)),h.display="inline-block")),n.overflow&&(h.overflow="hidden",p.always(function(){h.overflow=n.overflow[0],h.overflowX=n.overflow[1],h.overflowY=n.overflow[2]})),u=!1,d)u||(v?"hidden"in v&&(g=v.hidden):v=Y.access(e,"fxshow",{display:l}),o&&(v.hidden=!g),g&&le([e],!0),p.done(function(){for(r in g||le([e]),Y.remove(e,"fxshow"),d)S.style(e,r,d[r])})),u=ut(g?v[r]:0,r,p),r in v||(v[r]=u.start,g&&(u.end=u.start,u.start=0))}],prefilter:function(e,t){t?lt.prefilters.unshift(e):lt.prefilters.push(e)}}),S.speed=function(e,t,n){var r=e&&"object"==typeof e?S.extend({},e):{complete:n||!n&&t||m(e)&&e,duration:e,easing:n&&t||t&&!m(t)&&t};return S.fx.off?r.duration=0:"number"!=typeof r.duration&&(r.duration in S.fx.speeds?r.duration=S.fx.speeds[r.duration]:r.duration=S.fx.speeds._default),null!=r.queue&&!0!==r.queue||(r.queue="fx"),r.old=r.complete,r.complete=function(){m(r.old)&&r.old.call(this),r.queue&&S.dequeue(this,r.queue)},r},S.fn.extend({fadeTo:function(e,t,n,r){return this.filter(ae).css("opacity",0).show().end().animate({opacity:t},e,n,r)},animate:function(t,e,n,r){var i=S.isEmptyObject(t),o=S.speed(e,n,r),a=function(){var e=lt(this,S.extend({},t),o);(i||Y.get(this,"finish"))&&e.stop(!0)};return a.finish=a,i||!1===o.queue?this.each(a):this.queue(o.queue,a)},stop:function(i,e,o){var a=function(e){var t=e.stop;delete e.stop,t(o)};return"string"!=typeof i&&(o=e,e=i,i=void 0),e&&this.queue(i||"fx",[]),this.each(function(){var e=!0,t=null!=i&&i+"queueHooks",n=S.timers,r=Y.get(this);if(t)r[t]&&r[t].stop&&a(r[t]);else for(t in r)r[t]&&r[t].stop&&it.test(t)&&a(r[t]);for(t=n.length;t--;)n[t].elem!==this||null!=i&&n[t].queue!==i||(n[t].anim.stop(o),e=!1,n.splice(t,1));!e&&o||S.dequeue(this,i)})},finish:function(a){return!1!==a&&(a=a||"fx"),this.each(function(){var e,t=Y.get(this),n=t[a+"queue"],r=t[a+"queueHooks"],i=S.timers,o=n?n.length:0;for(t.finish=!0,S.queue(this,a,[]),r&&r.stop&&r.stop.call(this,!0),e=i.length;e--;)i[e].elem===this&&i[e].queue===a&&(i[e].anim.stop(!0),i.splice(e,1));for(e=0;e<o;e++)n[e]&&n[e].finish&&n[e].finish.call(this);delete t.finish})}}),S.each(["toggle","show","hide"],function(e,r){var i=S.fn[r];S.fn[r]=function(e,t,n){return null==e||"boolean"==typeof e?i.apply(this,arguments):this.animate(st(r,!0),e,t,n)}}),S.each({slideDown:st("show"),slideUp:st("hide"),slideToggle:st("toggle"),fadeIn:{opacity:"show"},fadeOut:{opacity:"hide"},fadeToggle:{opacity:"toggle"}},function(e,r){S.fn[e]=function(e,t,n){return this.animate(r,e,t,n)}}),S.timers=[],S.fx.tick=function(){var e,t=0,n=S.timers;for(Ze=Date.now();t<n.length;t++)(e=n[t])()||n[t]!==e||n.splice(t--,1);n.length||S.fx.stop(),Ze=void 0},S.fx.timer=function(e){S.timers.push(e),S.fx.start()},S.fx.interval=13,S.fx.start=function(){et||(et=!0,ot())},S.fx.stop=function(){et=null},S.fx.speeds={slow:600,fast:200,_default:400},S.fn.delay=function(r,e){return r=S.fx&&S.fx.speeds[r]||r,e=e||"fx",this.queue(e,function(e,t){var n=C.setTimeout(e,r);t.stop=function(){C.clearTimeout(n)}})},tt=E.createElement("input"),nt=E.createElement("select").appendChild(E.createElement("option")),tt.type="checkbox",y.checkOn=""!==tt.value,y.optSelected=nt.selected,(tt=E.createElement("input")).value="t",tt.type="radio",y.radioValue="t"===tt.value;var ct,ft=S.expr.attrHandle;S.fn.extend({attr:function(e,t){return $(this,S.attr,e,t,1<arguments.length)},removeAttr:function(e){return this.each(function(){S.removeAttr(this,e)})}}),S.extend({attr:function(e,t,n){var r,i,o=e.nodeType;if(3!==o&&8!==o&&2!==o)return"undefined"==typeof e.getAttribute?S.prop(e,t,n):(1===o&&S.isXMLDoc(e)||(i=S.attrHooks[t.toLowerCase()]||(S.expr.match.bool.test(t)?ct:void 0)),void 0!==n?null===n?void S.removeAttr(e,t):i&&"set"in i&&void 0!==(r=i.set(e,n,t))?r:(e.setAttribute(t,n+""),n):i&&"get"in i&&null!==(r=i.get(e,t))?r:null==(r=S.find.attr(e,t))?void 0:r)},attrHooks:{type:{set:function(e,t){if(!y.radioValue&&"radio"===t&&A(e,"input")){var n=e.value;return e.setAttribute("type",t),n&&(e.value=n),t}}}},removeAttr:function(e,t){var n,r=0,i=t&&t.match(P);if(i&&1===e.nodeType)while(n=i[r++])e.removeAttribute(n)}}),ct={set:function(e,t,n){return!1===t?S.removeAttr(e,n):e.setAttribute(n,n),n}},S.each(S.expr.match.bool.source.match(/\w+/g),function(e,t){var a=ft[t]||S.find.attr;ft[t]=function(e,t,n){var r,i,o=t.toLowerCase();return n||(i=ft[o],ft[o]=r,r=null!=a(e,t,n)?o:null,ft[o]=i),r}});var pt=/^(?:input|select|textarea|button)$/i,dt=/^(?:a|area)$/i;function ht(e){return(e.match(P)||[]).join(" ")}function gt(e){return e.getAttribute&&e.getAttribute("class")||""}function vt(e){return Array.isArray(e)?e:"string"==typeof e&&e.match(P)||[]}S.fn.extend({prop:function(e,t){return $(this,S.prop,e,t,1<arguments.length)},removeProp:function(e){return this.each(function(){delete this[S.propFix[e]||e]})}}),S.extend({prop:function(e,t,n){var r,i,o=e.nodeType;if(3!==o&&8!==o&&2!==o)return 1===o&&S.isXMLDoc(e)||(t=S.propFix[t]||t,i=S.propHooks[t]),void 0!==n?i&&"set"in i&&void 0!==(r=i.set(e,n,t))?r:e[t]=n:i&&"get"in i&&null!==(r=i.get(e,t))?r:e[t]},propHooks:{tabIndex:{get:function(e){var t=S.find.attr(e,"tabindex");return t?parseInt(t,10):pt.test(e.nodeName)||dt.test(e.nodeName)&&e.href?0:-1}}},propFix:{"for":"htmlFor","class":"className"}}),y.optSelected||(S.propHooks.selected={get:function(e){var t=e.parentNode;return t&&t.parentNode&&t.parentNode.selectedIndex,null},set:function(e){var t=e.parentNode;t&&(t.selectedIndex,t.parentNode&&t.parentNode.selectedIndex)}}),S.each(["tabIndex","readOnly","maxLength","cellSpacing","cellPadding","rowSpan","colSpan","useMap","frameBorder","contentEditable"],function(){S.propFix[this.toLowerCase()]=this}),S.fn.extend({addClass:function(t){var e,n,r,i,o,a,s,u=0;if(m(t))return this.each(function(e){S(this).addClass(t.call(this,e,gt(this)))});if((e=vt(t)).length)while(n=this[u++])if(i=gt(n),r=1===n.nodeType&&" "+ht(i)+" "){a=0;while(o=e[a++])r.indexOf(" "+o+" ")<0&&(r+=o+" ");i!==(s=ht(r))&&n.setAttribute("class",s)}return this},removeClass:function(t){var e,n,r,i,o,a,s,u=0;if(m(t))return this.each(function(e){S(this).removeClass(t.call(this,e,gt(this)))});if(!arguments.length)return this.attr("class","");if((e=vt(t)).length)while(n=this[u++])if(i=gt(n),r=1===n.nodeType&&" "+ht(i)+" "){a=0;while(o=e[a++])while(-1<r.indexOf(" "+o+" "))r=r.replace(" "+o+" "," ");i!==(s=ht(r))&&n.setAttribute("class",s)}return this},toggleClass:function(i,t){var o=typeof i,a="string"===o||Array.isArray(i);return"boolean"==typeof t&&a?t?this.addClass(i):this.removeClass(i):m(i)?this.each(function(e){S(this).toggleClass(i.call(this,e,gt(this),t),t)}):this.each(function(){var e,t,n,r;if(a){t=0,n=S(this),r=vt(i);while(e=r[t++])n.hasClass(e)?n.removeClass(e):n.addClass(e)}else void 0!==i&&"boolean"!==o||((e=gt(this))&&Y.set(this,"__className__",e),this.setAttribute&&this.setAttribute("class",e||!1===i?"":Y.get(this,"__className__")||""))})},hasClass:function(e){var t,n,r=0;t=" "+e+" ";while(n=this[r++])if(1===n.nodeType&&-1<(" "+ht(gt(n))+" ").indexOf(t))return!0;return!1}});var yt=/\r/g;S.fn.extend({val:function(n){var r,e,i,t=this[0];return arguments.length?(i=m(n),this.each(function(e){var t;1===this.nodeType&&(null==(t=i?n.call(this,e,S(this).val()):n)?t="":"number"==typeof t?t+="":Array.isArray(t)&&(t=S.map(t,function(e){return null==e?"":e+""})),(r=S.valHooks[this.type]||S.valHooks[this.nodeName.toLowerCase()])&&"set"in r&&void 0!==r.set(this,t,"value")||(this.value=t))})):t?(r=S.valHooks[t.type]||S.valHooks[t.nodeName.toLowerCase()])&&"get"in r&&void 0!==(e=r.get(t,"value"))?e:"string"==typeof(e=t.value)?e.replace(yt,""):null==e?"":e:void 0}}),S.extend({valHooks:{option:{get:function(e){var t=S.find.attr(e,"value");return null!=t?t:ht(S.text(e))}},select:{get:function(e){var t,n,r,i=e.options,o=e.selectedIndex,a="select-one"===e.type,s=a?null:[],u=a?o+1:i.length;for(r=o<0?u:a?o:0;r<u;r++)if(((n=i[r]).selected||r===o)&&!n.disabled&&(!n.parentNode.disabled||!A(n.parentNode,"optgroup"))){if(t=S(n).val(),a)return t;s.push(t)}return s},set:function(e,t){var n,r,i=e.options,o=S.makeArray(t),a=i.length;while(a--)((r=i[a]).selected=-1<S.inArray(S.valHooks.option.get(r),o))&&(n=!0);return n||(e.selectedIndex=-1),o}}}}),S.each(["radio","checkbox"],function(){S.valHooks[this]={set:function(e,t){if(Array.isArray(t))return e.checked=-1<S.inArray(S(e).val(),t)}},y.checkOn||(S.valHooks[this].get=function(e){return null===e.getAttribute("value")?"on":e.value})}),y.focusin="onfocusin"in C;var mt=/^(?:focusinfocus|focusoutblur)$/,xt=function(e){e.stopPropagation()};S.extend(S.event,{trigger:function(e,t,n,r){var i,o,a,s,u,l,c,f,p=[n||E],d=v.call(e,"type")?e.type:e,h=v.call(e,"namespace")?e.namespace.split("."):[];if(o=f=a=n=n||E,3!==n.nodeType&&8!==n.nodeType&&!mt.test(d+S.event.triggered)&&(-1<d.indexOf(".")&&(d=(h=d.split(".")).shift(),h.sort()),u=d.indexOf(":")<0&&"on"+d,(e=e[S.expando]?e:new S.Event(d,"object"==typeof e&&e)).isTrigger=r?2:3,e.namespace=h.join("."),e.rnamespace=e.namespace?new RegExp("(^|\\.)"+h.join("\\.(?:.*\\.|)")+"(\\.|$)"):null,e.result=void 0,e.target||(e.target=n),t=null==t?[e]:S.makeArray(t,[e]),c=S.event.special[d]||{},r||!c.trigger||!1!==c.trigger.apply(n,t))){if(!r&&!c.noBubble&&!x(n)){for(s=c.delegateType||d,mt.test(s+d)||(o=o.parentNode);o;o=o.parentNode)p.push(o),a=o;a===(n.ownerDocument||E)&&p.push(a.defaultView||a.parentWindow||C)}i=0;while((o=p[i++])&&!e.isPropagationStopped())f=o,e.type=1<i?s:c.bindType||d,(l=(Y.get(o,"events")||Object.create(null))[e.type]&&Y.get(o,"handle"))&&l.apply(o,t),(l=u&&o[u])&&l.apply&&V(o)&&(e.result=l.apply(o,t),!1===e.result&&e.preventDefault());return e.type=d,r||e.isDefaultPrevented()||c._default&&!1!==c._default.apply(p.pop(),t)||!V(n)||u&&m(n[d])&&!x(n)&&((a=n[u])&&(n[u]=null),S.event.triggered=d,e.isPropagationStopped()&&f.addEventListener(d,xt),n[d](),e.isPropagationStopped()&&f.removeEventListener(d,xt),S.event.triggered=void 0,a&&(n[u]=a)),e.result}},simulate:function(e,t,n){var r=S.extend(new S.Event,n,{type:e,isSimulated:!0});S.event.trigger(r,null,t)}}),S.fn.extend({trigger:function(e,t){return this.each(function(){S.event.trigger(e,t,this)})},triggerHandler:function(e,t){var n=this[0];if(n)return S.event.trigger(e,t,n,!0)}}),y.focusin||S.each({focus:"focusin",blur:"focusout"},function(n,r){var i=function(e){S.event.simulate(r,e.target,S.event.fix(e))};S.event.special[r]={setup:function(){var e=this.ownerDocument||this.document||this,t=Y.access(e,r);t||e.addEventListener(n,i,!0),Y.access(e,r,(t||0)+1)},teardown:function(){var e=this.ownerDocument||this.document||this,t=Y.access(e,r)-1;t?Y.access(e,r,t):(e.removeEventListener(n,i,!0),Y.remove(e,r))}}});var bt=C.location,wt={guid:Date.now()},Tt=/\?/;S.parseXML=function(e){var t,n;if(!e||"string"!=typeof e)return null;try{t=(new C.DOMParser).parseFromString(e,"text/xml")}catch(e){}return n=t&&t.getElementsByTagName("parsererror")[0],t&&!n||S.error("Invalid XML: "+(n?S.map(n.childNodes,function(e){return e.textContent}).join("\n"):e)),t};var Ct=/\[\]$/,Et=/\r?\n/g,St=/^(?:submit|button|image|reset|file)$/i,kt=/^(?:input|select|textarea|keygen)/i;function At(n,e,r,i){var t;if(Array.isArray(e))S.each(e,function(e,t){r||Ct.test(n)?i(n,t):At(n+"["+("object"==typeof t&&null!=t?e:"")+"]",t,r,i)});else if(r||"object"!==w(e))i(n,e);else for(t in e)At(n+"["+t+"]",e[t],r,i)}S.param=function(e,t){var n,r=[],i=function(e,t){var n=m(t)?t():t;r[r.length]=encodeURIComponent(e)+"="+encodeURIComponent(null==n?"":n)};if(null==e)return"";if(Array.isArray(e)||e.jquery&&!S.isPlainObject(e))S.each(e,function(){i(this.name,this.value)});else for(n in e)At(n,e[n],t,i);return r.join("&")},S.fn.extend({serialize:function(){return S.param(this.serializeArray())},serializeArray:function(){return this.map(function(){var e=S.prop(this,"elements");return e?S.makeArray(e):this}).filter(function(){var e=this.type;return this.name&&!S(this).is(":disabled")&&kt.test(this.nodeName)&&!St.test(e)&&(this.checked||!pe.test(e))}).map(function(e,t){var n=S(this).val();return null==n?null:Array.isArray(n)?S.map(n,function(e){return{name:t.name,value:e.replace(Et,"\r\n")}}):{name:t.name,value:n.replace(Et,"\r\n")}}).get()}});var Nt=/%20/g,jt=/#.*$/,Dt=/([?&])_=[^&]*/,qt=/^(.*?):[ \t]*([^\r\n]*)$/gm,Lt=/^(?:GET|HEAD)$/,Ht=/^\/\//,Ot={},Pt={},Rt="*/".concat("*"),Mt=E.createElement("a");function It(o){return function(e,t){"string"!=typeof e&&(t=e,e="*");var n,r=0,i=e.toLowerCase().match(P)||[];if(m(t))while(n=i[r++])"+"===n[0]?(n=n.slice(1)||"*",(o[n]=o[n]||[]).unshift(t)):(o[n]=o[n]||[]).push(t)}}function Wt(t,i,o,a){var s={},u=t===Pt;function l(e){var r;return s[e]=!0,S.each(t[e]||[],function(e,t){var n=t(i,o,a);return"string"!=typeof n||u||s[n]?u?!(r=n):void 0:(i.dataTypes.unshift(n),l(n),!1)}),r}return l(i.dataTypes[0])||!s["*"]&&l("*")}function Ft(e,t){var n,r,i=S.ajaxSettings.flatOptions||{};for(n in t)void 0!==t[n]&&((i[n]?e:r||(r={}))[n]=t[n]);return r&&S.extend(!0,e,r),e}Mt.href=bt.href,S.extend({active:0,lastModified:{},etag:{},ajaxSettings:{url:bt.href,type:"GET",isLocal:/^(?:about|app|app-storage|.+-extension|file|res|widget):$/.test(bt.protocol),global:!0,processData:!0,async:!0,contentType:"application/x-www-form-urlencoded; charset=UTF-8",accepts:{"*":Rt,text:"text/plain",html:"text/html",xml:"application/xml, text/xml",json:"application/json, text/javascript"},contents:{xml:/\bxml\b/,html:/\bhtml/,json:/\bjson\b/},responseFields:{xml:"responseXML",text:"responseText",json:"responseJSON"},converters:{"* text":String,"text html":!0,"text json":JSON.parse,"text xml":S.parseXML},flatOptions:{url:!0,context:!0}},ajaxSetup:function(e,t){return t?Ft(Ft(e,S.ajaxSettings),t):Ft(S.ajaxSettings,e)},ajaxPrefilter:It(Ot),ajaxTransport:It(Pt),ajax:function(e,t){"object"==typeof e&&(t=e,e=void 0),t=t||{};var c,f,p,n,d,r,h,g,i,o,v=S.ajaxSetup({},t),y=v.context||v,m=v.context&&(y.nodeType||y.jquery)?S(y):S.event,x=S.Deferred(),b=S.Callbacks("once memory"),w=v.statusCode||{},a={},s={},u="canceled",T={readyState:0,getResponseHeader:function(e){var t;if(h){if(!n){n={};while(t=qt.exec(p))n[t[1].toLowerCase()+" "]=(n[t[1].toLowerCase()+" "]||[]).concat(t[2])}t=n[e.toLowerCase()+" "]}return null==t?null:t.join(", ")},getAllResponseHeaders:function(){return h?p:null},setRequestHeader:function(e,t){return null==h&&(e=s[e.toLowerCase()]=s[e.toLowerCase()]||e,a[e]=t),this},overrideMimeType:function(e){return null==h&&(v.mimeType=e),this},statusCode:function(e){var t;if(e)if(h)T.always(e[T.status]);else for(t in e)w[t]=[w[t],e[t]];return this},abort:function(e){var t=e||u;return c&&c.abort(t),l(0,t),this}};if(x.promise(T),v.url=((e||v.url||bt.href)+"").replace(Ht,bt.protocol+"//"),v.type=t.method||t.type||v.method||v.type,v.dataTypes=(v.dataType||"*").toLowerCase().match(P)||[""],null==v.crossDomain){r=E.createElement("a");try{r.href=v.url,r.href=r.href,v.crossDomain=Mt.protocol+"//"+Mt.host!=r.protocol+"//"+r.host}catch(e){v.crossDomain=!0}}if(v.data&&v.processData&&"string"!=typeof v.data&&(v.data=S.param(v.data,v.traditional)),Wt(Ot,v,t,T),h)return T;for(i in(g=S.event&&v.global)&&0==S.active++&&S.event.trigger("ajaxStart"),v.type=v.type.toUpperCase(),v.hasContent=!Lt.test(v.type),f=v.url.replace(jt,""),v.hasContent?v.data&&v.processData&&0===(v.contentType||"").indexOf("application/x-www-form-urlencoded")&&(v.data=v.data.replace(Nt,"+")):(o=v.url.slice(f.length),v.data&&(v.processData||"string"==typeof v.data)&&(f+=(Tt.test(f)?"&":"?")+v.data,delete v.data),!1===v.cache&&(f=f.replace(Dt,"$1"),o=(Tt.test(f)?"&":"?")+"_="+wt.guid+++o),v.url=f+o),v.ifModified&&(S.lastModified[f]&&T.setRequestHeader("If-Modified-Since",S.lastModified[f]),S.etag[f]&&T.setRequestHeader("If-None-Match",S.etag[f])),(v.data&&v.hasContent&&!1!==v.contentType||t.contentType)&&T.setRequestHeader("Content-Type",v.contentType),T.setRequestHeader("Accept",v.dataTypes[0]&&v.accepts[v.dataTypes[0]]?v.accepts[v.dataTypes[0]]+("*"!==v.dataTypes[0]?", "+Rt+"; q=0.01":""):v.accepts["*"]),v.headers)T.setRequestHeader(i,v.headers[i]);if(v.beforeSend&&(!1===v.beforeSend.call(y,T,v)||h))return T.abort();if(u="abort",b.add(v.complete),T.done(v.success),T.fail(v.error),c=Wt(Pt,v,t,T)){if(T.readyState=1,g&&m.trigger("ajaxSend",[T,v]),h)return T;v.async&&0<v.timeout&&(d=C.setTimeout(function(){T.abort("timeout")},v.timeout));try{h=!1,c.send(a,l)}catch(e){if(h)throw e;l(-1,e)}}else l(-1,"No Transport");function l(e,t,n,r){var i,o,a,s,u,l=t;h||(h=!0,d&&C.clearTimeout(d),c=void 0,p=r||"",T.readyState=0<e?4:0,i=200<=e&&e<300||304===e,n&&(s=function(e,t,n){var r,i,o,a,s=e.contents,u=e.dataTypes;while("*"===u[0])u.shift(),void 0===r&&(r=e.mimeType||t.getResponseHeader("Content-Type"));if(r)for(i in s)if(s[i]&&s[i].test(r)){u.unshift(i);break}if(u[0]in n)o=u[0];else{for(i in n){if(!u[0]||e.converters[i+" "+u[0]]){o=i;break}a||(a=i)}o=o||a}if(o)return o!==u[0]&&u.unshift(o),n[o]}(v,T,n)),!i&&-1<S.inArray("script",v.dataTypes)&&S.inArray("json",v.dataTypes)<0&&(v.converters["text script"]=function(){}),s=function(e,t,n,r){var i,o,a,s,u,l={},c=e.dataTypes.slice();if(c[1])for(a in e.converters)l[a.toLowerCase()]=e.converters[a];o=c.shift();while(o)if(e.responseFields[o]&&(n[e.responseFields[o]]=t),!u&&r&&e.dataFilter&&(t=e.dataFilter(t,e.dataType)),u=o,o=c.shift())if("*"===o)o=u;else if("*"!==u&&u!==o){if(!(a=l[u+" "+o]||l["* "+o]))for(i in l)if((s=i.split(" "))[1]===o&&(a=l[u+" "+s[0]]||l["* "+s[0]])){!0===a?a=l[i]:!0!==l[i]&&(o=s[0],c.unshift(s[1]));break}if(!0!==a)if(a&&e["throws"])t=a(t);else try{t=a(t)}catch(e){return{state:"parsererror",error:a?e:"No conversion from "+u+" to "+o}}}return{state:"success",data:t}}(v,s,T,i),i?(v.ifModified&&((u=T.getResponseHeader("Last-Modified"))&&(S.lastModified[f]=u),(u=T.getResponseHeader("etag"))&&(S.etag[f]=u)),204===e||"HEAD"===v.type?l="nocontent":304===e?l="notmodified":(l=s.state,o=s.data,i=!(a=s.error))):(a=l,!e&&l||(l="error",e<0&&(e=0))),T.status=e,T.statusText=(t||l)+"",i?x.resolveWith(y,[o,l,T]):x.rejectWith(y,[T,l,a]),T.statusCode(w),w=void 0,g&&m.trigger(i?"ajaxSuccess":"ajaxError",[T,v,i?o:a]),b.fireWith(y,[T,l]),g&&(m.trigger("ajaxComplete",[T,v]),--S.active||S.event.trigger("ajaxStop")))}return T},getJSON:function(e,t,n){return S.get(e,t,n,"json")},getScript:function(e,t){return S.get(e,void 0,t,"script")}}),S.each(["get","post"],function(e,i){S[i]=function(e,t,n,r){return m(t)&&(r=r||n,n=t,t=void 0),S.ajax(S.extend({url:e,type:i,dataType:r,data:t,success:n},S.isPlainObject(e)&&e))}}),S.ajaxPrefilter(function(e){var t;for(t in e.headers)"content-type"===t.toLowerCase()&&(e.contentType=e.headers[t]||"")}),S._evalUrl=function(e,t,n){return S.ajax({url:e,type:"GET",dataType:"script",cache:!0,async:!1,global:!1,converters:{"text script":function(){}},dataFilter:function(e){S.globalEval(e,t,n)}})},S.fn.extend({wrapAll:function(e){var t;return this[0]&&(m(e)&&(e=e.call(this[0])),t=S(e,this[0].ownerDocument).eq(0).clone(!0),this[0].parentNode&&t.insertBefore(this[0]),t.map(function(){var e=this;while(e.firstElementChild)e=e.firstElementChild;return e}).append(this)),this},wrapInner:function(n){return m(n)?this.each(function(e){S(this).wrapInner(n.call(this,e))}):this.each(function(){var e=S(this),t=e.contents();t.length?t.wrapAll(n):e.append(n)})},wrap:function(t){var n=m(t);return this.each(function(e){S(this).wrapAll(n?t.call(this,e):t)})},unwrap:function(e){return this.parent(e).not("body").each(function(){S(this).replaceWith(this.childNodes)}),this}}),S.expr.pseudos.hidden=function(e){return!S.expr.pseudos.visible(e)},S.expr.pseudos.visible=function(e){return!!(e.offsetWidth||e.offsetHeight||e.getClientRects().length)},S.ajaxSettings.xhr=function(){try{return new C.XMLHttpRequest}catch(e){}};var Bt={0:200,1223:204},$t=S.ajaxSettings.xhr();y.cors=!!$t&&"withCredentials"in $t,y.ajax=$t=!!$t,S.ajaxTransport(function(i){var o,a;if(y.cors||$t&&!i.crossDomain)return{send:function(e,t){var n,r=i.xhr();if(r.open(i.type,i.url,i.async,i.username,i.password),i.xhrFields)for(n in i.xhrFields)r[n]=i.xhrFields[n];for(n in i.mimeType&&r.overrideMimeType&&r.overrideMimeType(i.mimeType),i.crossDomain||e["X-Requested-With"]||(e["X-Requested-With"]="XMLHttpRequest"),e)r.setRequestHeader(n,e[n]);o=function(e){return function(){o&&(o=a=r.onload=r.onerror=r.onabort=r.ontimeout=r.onreadystatechange=null,"abort"===e?r.abort():"error"===e?"number"!=typeof r.status?t(0,"error"):t(r.status,r.statusText):t(Bt[r.status]||r.status,r.statusText,"text"!==(r.responseType||"text")||"string"!=typeof r.responseText?{binary:r.response}:{text:r.responseText},r.getAllResponseHeaders()))}},r.onload=o(),a=r.onerror=r.ontimeout=o("error"),void 0!==r.onabort?r.onabort=a:r.onreadystatechange=function(){4===r.readyState&&C.setTimeout(function(){o&&a()})},o=o("abort");try{r.send(i.hasContent&&i.data||null)}catch(e){if(o)throw e}},abort:function(){o&&o()}}}),S.ajaxPrefilter(function(e){e.crossDomain&&(e.contents.script=!1)}),S.ajaxSetup({accepts:{script:"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"},contents:{script:/\b(?:java|ecma)script\b/},converters:{"text script":function(e){return S.globalEval(e),e}}}),S.ajaxPrefilter("script",function(e){void 0===e.cache&&(e.cache=!1),e.crossDomain&&(e.type="GET")}),S.ajaxTransport("script",function(n){var r,i;if(n.crossDomain||n.scriptAttrs)return{send:function(e,t){r=S("<script>").attr(n.scriptAttrs||{}).prop({charset:n.scriptCharset,src:n.url}).on("load error",i=function(e){r.remove(),i=null,e&&t("error"===e.type?404:200,e.type)}),E.head.appendChild(r[0])},abort:function(){i&&i()}}});var _t,zt=[],Ut=/(=)\?(?=&|$)|\?\?/;S.ajaxSetup({jsonp:"callback",jsonpCallback:function(){var e=zt.pop()||S.expando+"_"+wt.guid++;return this[e]=!0,e}}),S.ajaxPrefilter("json jsonp",function(e,t,n){var r,i,o,a=!1!==e.jsonp&&(Ut.test(e.url)?"url":"string"==typeof e.data&&0===(e.contentType||"").indexOf("application/x-www-form-urlencoded")&&Ut.test(e.data)&&"data");if(a||"jsonp"===e.dataTypes[0])return r=e.jsonpCallback=m(e.jsonpCallback)?e.jsonpCallback():e.jsonpCallback,a?e[a]=e[a].replace(Ut,"$1"+r):!1!==e.jsonp&&(e.url+=(Tt.test(e.url)?"&":"?")+e.jsonp+"="+r),e.converters["script json"]=function(){return o||S.error(r+" was not called"),o[0]},e.dataTypes[0]="json",i=C[r],C[r]=function(){o=arguments},n.always(function(){void 0===i?S(C).removeProp(r):C[r]=i,e[r]&&(e.jsonpCallback=t.jsonpCallback,zt.push(r)),o&&m(i)&&i(o[0]),o=i=void 0}),"script"}),y.createHTMLDocument=((_t=E.implementation.createHTMLDocument("").body).innerHTML="<form></form><form></form>",2===_t.childNodes.length),S.parseHTML=function(e,t,n){return"string"!=typeof e?[]:("boolean"==typeof t&&(n=t,t=!1),t||(y.createHTMLDocument?((r=(t=E.implementation.createHTMLDocument("")).createElement("base")).href=E.location.href,t.head.appendChild(r)):t=E),o=!n&&[],(i=N.exec(e))?[t.createElement(i[1])]:(i=xe([e],t,o),o&&o.length&&S(o).remove(),S.merge([],i.childNodes)));var r,i,o},S.fn.load=function(e,t,n){var r,i,o,a=this,s=e.indexOf(" ");return-1<s&&(r=ht(e.slice(s)),e=e.slice(0,s)),m(t)?(n=t,t=void 0):t&&"object"==typeof t&&(i="POST"),0<a.length&&S.ajax({url:e,type:i||"GET",dataType:"html",data:t}).done(function(e){o=arguments,a.html(r?S("<div>").append(S.parseHTML(e)).find(r):e)}).always(n&&function(e,t){a.each(function(){n.apply(this,o||[e.responseText,t,e])})}),this},S.expr.pseudos.animated=function(t){return S.grep(S.timers,function(e){return t===e.elem}).length},S.offset={setOffset:function(e,t,n){var r,i,o,a,s,u,l=S.css(e,"position"),c=S(e),f={};"static"===l&&(e.style.position="relative"),s=c.offset(),o=S.css(e,"top"),u=S.css(e,"left"),("absolute"===l||"fixed"===l)&&-1<(o+u).indexOf("auto")?(a=(r=c.position()).top,i=r.left):(a=parseFloat(o)||0,i=parseFloat(u)||0),m(t)&&(t=t.call(e,n,S.extend({},s))),null!=t.top&&(f.top=t.top-s.top+a),null!=t.left&&(f.left=t.left-s.left+i),"using"in t?t.using.call(e,f):c.css(f)}},S.fn.extend({offset:function(t){if(arguments.length)return void 0===t?this:this.each(function(e){S.offset.setOffset(this,t,e)});var e,n,r=this[0];return r?r.getClientRects().length?(e=r.getBoundingClientRect(),n=r.ownerDocument.defaultView,{top:e.top+n.pageYOffset,left:e.left+n.pageXOffset}):{top:0,left:0}:void 0},position:function(){if(this[0]){var e,t,n,r=this[0],i={top:0,left:0};if("fixed"===S.css(r,"position"))t=r.getBoundingClientRect();else{t=this.offset(),n=r.ownerDocument,e=r.offsetParent||n.documentElement;while(e&&(e===n.body||e===n.documentElement)&&"static"===S.css(e,"position"))e=e.parentNode;e&&e!==r&&1===e.nodeType&&((i=S(e).offset()).top+=S.css(e,"borderTopWidth",!0),i.left+=S.css(e,"borderLeftWidth",!0))}return{top:t.top-i.top-S.css(r,"marginTop",!0),left:t.left-i.left-S.css(r,"marginLeft",!0)}}},offsetParent:function(){return this.map(function(){var e=this.offsetParent;while(e&&"static"===S.css(e,"position"))e=e.offsetParent;return e||re})}}),S.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(t,i){var o="pageYOffset"===i;S.fn[t]=function(e){return $(this,function(e,t,n){var r;if(x(e)?r=e:9===e.nodeType&&(r=e.defaultView),void 0===n)return r?r[i]:e[t];r?r.scrollTo(o?r.pageXOffset:n,o?n:r.pageYOffset):e[t]=n},t,e,arguments.length)}}),S.each(["top","left"],function(e,n){S.cssHooks[n]=Fe(y.pixelPosition,function(e,t){if(t)return t=We(e,n),Pe.test(t)?S(e).position()[n]+"px":t})}),S.each({Height:"height",Width:"width"},function(a,s){S.each({padding:"inner"+a,content:s,"":"outer"+a},function(r,o){S.fn[o]=function(e,t){var n=arguments.length&&(r||"boolean"!=typeof e),i=r||(!0===e||!0===t?"margin":"border");return $(this,function(e,t,n){var r;return x(e)?0===o.indexOf("outer")?e["inner"+a]:e.document.documentElement["client"+a]:9===e.nodeType?(r=e.documentElement,Math.max(e.body["scroll"+a],r["scroll"+a],e.body["offset"+a],r["offset"+a],r["client"+a])):void 0===n?S.css(e,t,i):S.style(e,t,n,i)},s,n?e:void 0,n)}})}),S.each(["ajaxStart","ajaxStop","ajaxComplete","ajaxError","ajaxSuccess","ajaxSend"],function(e,t){S.fn[t]=function(e){return this.on(t,e)}}),S.fn.extend({bind:function(e,t,n){return this.on(e,null,t,n)},unbind:function(e,t){return this.off(e,null,t)},delegate:function(e,t,n,r){return this.on(t,e,n,r)},undelegate:function(e,t,n){return 1===arguments.length?this.off(e,"**"):this.off(t,e||"**",n)},hover:function(e,t){return this.mouseenter(e).mouseleave(t||e)}}),S.each("blur focus focusin focusout resize scroll click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup contextmenu".split(" "),function(e,n){S.fn[n]=function(e,t){return 0<arguments.length?this.on(n,null,e,t):this.trigger(n)}});var Xt=/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g;S.proxy=function(e,t){var n,r,i;if("string"==typeof t&&(n=e[t],t=e,e=n),m(e))return r=s.call(arguments,2),(i=function(){return e.apply(t||this,r.concat(s.call(arguments)))}).guid=e.guid=e.guid||S.guid++,i},S.holdReady=function(e){e?S.readyWait++:S.ready(!0)},S.isArray=Array.isArray,S.parseJSON=JSON.parse,S.nodeName=A,S.isFunction=m,S.isWindow=x,S.camelCase=X,S.type=w,S.now=Date.now,S.isNumeric=function(e){var t=S.type(e);return("number"===t||"string"===t)&&!isNaN(e-parseFloat(e))},S.trim=function(e){return null==e?"":(e+"").replace(Xt,"")},"function"==typeof define&&define.amd&&define("jquery",[],function(){return S});var Vt=C.jQuery,Gt=C.$;return S.noConflict=function(e){return C.$===S&&(C.$=Gt),e&&C.jQuery===S&&(C.jQuery=Vt),S},"undefined"==typeof e&&(C.jQuery=C.$=S),S});
\ No newline at end of file
diff --git a/node_modules/pdfh5/js/jquery.qrcode.min.js b/node_modules/pdfh5/js/jquery.qrcode.min.js
new file mode 100644
index 0000000..3bab787
--- /dev/null
+++ b/node_modules/pdfh5/js/jquery.qrcode.min.js
@@ -0,0 +1,28 @@
+(function(r){r.fn.qrcode=function(h){var s;function u(a){this.mode=s;this.data=a}function o(a,c){this.typeNumber=a;this.errorCorrectLevel=c;this.modules=null;this.moduleCount=0;this.dataCache=null;this.dataList=[]}function q(a,c){if(void 0==a.length)throw Error(a.length+"/"+c);for(var d=0;d<a.length&&0==a[d];)d++;this.num=Array(a.length-d+c);for(var b=0;b<a.length-d;b++)this.num[b]=a[b+d]}function p(a,c){this.totalCount=a;this.dataCount=c}function t(){this.buffer=[];this.length=0}u.prototype={getLength:function(){return this.data.length},
+write:function(a){for(var c=0;c<this.data.length;c++)a.put(this.data.charCodeAt(c),8)}};o.prototype={addData:function(a){this.dataList.push(new u(a));this.dataCache=null},isDark:function(a,c){if(0>a||this.moduleCount<=a||0>c||this.moduleCount<=c)throw Error(a+","+c);return this.modules[a][c]},getModuleCount:function(){return this.moduleCount},make:function(){if(1>this.typeNumber){for(var a=1,a=1;40>a;a++){for(var c=p.getRSBlocks(a,this.errorCorrectLevel),d=new t,b=0,e=0;e<c.length;e++)b+=c[e].dataCount;
+for(e=0;e<this.dataList.length;e++)c=this.dataList[e],d.put(c.mode,4),d.put(c.getLength(),j.getLengthInBits(c.mode,a)),c.write(d);if(d.getLengthInBits()<=8*b)break}this.typeNumber=a}this.makeImpl(!1,this.getBestMaskPattern())},makeImpl:function(a,c){this.moduleCount=4*this.typeNumber+17;this.modules=Array(this.moduleCount);for(var d=0;d<this.moduleCount;d++){this.modules[d]=Array(this.moduleCount);for(var b=0;b<this.moduleCount;b++)this.modules[d][b]=null}this.setupPositionProbePattern(0,0);this.setupPositionProbePattern(this.moduleCount-
+7,0);this.setupPositionProbePattern(0,this.moduleCount-7);this.setupPositionAdjustPattern();this.setupTimingPattern();this.setupTypeInfo(a,c);7<=this.typeNumber&&this.setupTypeNumber(a);null==this.dataCache&&(this.dataCache=o.createData(this.typeNumber,this.errorCorrectLevel,this.dataList));this.mapData(this.dataCache,c)},setupPositionProbePattern:function(a,c){for(var d=-1;7>=d;d++)if(!(-1>=a+d||this.moduleCount<=a+d))for(var b=-1;7>=b;b++)-1>=c+b||this.moduleCount<=c+b||(this.modules[a+d][c+b]=
+0<=d&&6>=d&&(0==b||6==b)||0<=b&&6>=b&&(0==d||6==d)||2<=d&&4>=d&&2<=b&&4>=b?!0:!1)},getBestMaskPattern:function(){for(var a=0,c=0,d=0;8>d;d++){this.makeImpl(!0,d);var b=j.getLostPoint(this);if(0==d||a>b)a=b,c=d}return c},createMovieClip:function(a,c,d){a=a.createEmptyMovieClip(c,d);this.make();for(c=0;c<this.modules.length;c++)for(var d=1*c,b=0;b<this.modules[c].length;b++){var e=1*b;this.modules[c][b]&&(a.beginFill(0,100),a.moveTo(e,d),a.lineTo(e+1,d),a.lineTo(e+1,d+1),a.lineTo(e,d+1),a.endFill())}return a},
+setupTimingPattern:function(){for(var a=8;a<this.moduleCount-8;a++)null==this.modules[a][6]&&(this.modules[a][6]=0==a%2);for(a=8;a<this.moduleCount-8;a++)null==this.modules[6][a]&&(this.modules[6][a]=0==a%2)},setupPositionAdjustPattern:function(){for(var a=j.getPatternPosition(this.typeNumber),c=0;c<a.length;c++)for(var d=0;d<a.length;d++){var b=a[c],e=a[d];if(null==this.modules[b][e])for(var f=-2;2>=f;f++)for(var i=-2;2>=i;i++)this.modules[b+f][e+i]=-2==f||2==f||-2==i||2==i||0==f&&0==i?!0:!1}},setupTypeNumber:function(a){for(var c=
+j.getBCHTypeNumber(this.typeNumber),d=0;18>d;d++){var b=!a&&1==(c>>d&1);this.modules[Math.floor(d/3)][d%3+this.moduleCount-8-3]=b}for(d=0;18>d;d++)b=!a&&1==(c>>d&1),this.modules[d%3+this.moduleCount-8-3][Math.floor(d/3)]=b},setupTypeInfo:function(a,c){for(var d=j.getBCHTypeInfo(this.errorCorrectLevel<<3|c),b=0;15>b;b++){var e=!a&&1==(d>>b&1);6>b?this.modules[b][8]=e:8>b?this.modules[b+1][8]=e:this.modules[this.moduleCount-15+b][8]=e}for(b=0;15>b;b++)e=!a&&1==(d>>b&1),8>b?this.modules[8][this.moduleCount-
+b-1]=e:9>b?this.modules[8][15-b-1+1]=e:this.modules[8][15-b-1]=e;this.modules[this.moduleCount-8][8]=!a},mapData:function(a,c){for(var d=-1,b=this.moduleCount-1,e=7,f=0,i=this.moduleCount-1;0<i;i-=2)for(6==i&&i--;;){for(var g=0;2>g;g++)if(null==this.modules[b][i-g]){var n=!1;f<a.length&&(n=1==(a[f]>>>e&1));j.getMask(c,b,i-g)&&(n=!n);this.modules[b][i-g]=n;e--; -1==e&&(f++,e=7)}b+=d;if(0>b||this.moduleCount<=b){b-=d;d=-d;break}}}};o.PAD0=236;o.PAD1=17;o.createData=function(a,c,d){for(var c=p.getRSBlocks(a,
+c),b=new t,e=0;e<d.length;e++){var f=d[e];b.put(f.mode,4);b.put(f.getLength(),j.getLengthInBits(f.mode,a));f.write(b)}for(e=a=0;e<c.length;e++)a+=c[e].dataCount;if(b.getLengthInBits()>8*a)throw Error("code length overflow. ("+b.getLengthInBits()+">"+8*a+")");for(b.getLengthInBits()+4<=8*a&&b.put(0,4);0!=b.getLengthInBits()%8;)b.putBit(!1);for(;!(b.getLengthInBits()>=8*a);){b.put(o.PAD0,8);if(b.getLengthInBits()>=8*a)break;b.put(o.PAD1,8)}return o.createBytes(b,c)};o.createBytes=function(a,c){for(var d=
+0,b=0,e=0,f=Array(c.length),i=Array(c.length),g=0;g<c.length;g++){var n=c[g].dataCount,h=c[g].totalCount-n,b=Math.max(b,n),e=Math.max(e,h);f[g]=Array(n);for(var k=0;k<f[g].length;k++)f[g][k]=255&a.buffer[k+d];d+=n;k=j.getErrorCorrectPolynomial(h);n=(new q(f[g],k.getLength()-1)).mod(k);i[g]=Array(k.getLength()-1);for(k=0;k<i[g].length;k++)h=k+n.getLength()-i[g].length,i[g][k]=0<=h?n.get(h):0}for(k=g=0;k<c.length;k++)g+=c[k].totalCount;d=Array(g);for(k=n=0;k<b;k++)for(g=0;g<c.length;g++)k<f[g].length&&
+(d[n++]=f[g][k]);for(k=0;k<e;k++)for(g=0;g<c.length;g++)k<i[g].length&&(d[n++]=i[g][k]);return d};s=4;for(var j={PATTERN_POSITION_TABLE:[[],[6,18],[6,22],[6,26],[6,30],[6,34],[6,22,38],[6,24,42],[6,26,46],[6,28,50],[6,30,54],[6,32,58],[6,34,62],[6,26,46,66],[6,26,48,70],[6,26,50,74],[6,30,54,78],[6,30,56,82],[6,30,58,86],[6,34,62,90],[6,28,50,72,94],[6,26,50,74,98],[6,30,54,78,102],[6,28,54,80,106],[6,32,58,84,110],[6,30,58,86,114],[6,34,62,90,118],[6,26,50,74,98,122],[6,30,54,78,102,126],[6,26,52,
+78,104,130],[6,30,56,82,108,134],[6,34,60,86,112,138],[6,30,58,86,114,142],[6,34,62,90,118,146],[6,30,54,78,102,126,150],[6,24,50,76,102,128,154],[6,28,54,80,106,132,158],[6,32,58,84,110,136,162],[6,26,54,82,110,138,166],[6,30,58,86,114,142,170]],G15:1335,G18:7973,G15_MASK:21522,getBCHTypeInfo:function(a){for(var c=a<<10;0<=j.getBCHDigit(c)-j.getBCHDigit(j.G15);)c^=j.G15<<j.getBCHDigit(c)-j.getBCHDigit(j.G15);return(a<<10|c)^j.G15_MASK},getBCHTypeNumber:function(a){for(var c=a<<12;0<=j.getBCHDigit(c)-
+j.getBCHDigit(j.G18);)c^=j.G18<<j.getBCHDigit(c)-j.getBCHDigit(j.G18);return a<<12|c},getBCHDigit:function(a){for(var c=0;0!=a;)c++,a>>>=1;return c},getPatternPosition:function(a){return j.PATTERN_POSITION_TABLE[a-1]},getMask:function(a,c,d){switch(a){case 0:return 0==(c+d)%2;case 1:return 0==c%2;case 2:return 0==d%3;case 3:return 0==(c+d)%3;case 4:return 0==(Math.floor(c/2)+Math.floor(d/3))%2;case 5:return 0==c*d%2+c*d%3;case 6:return 0==(c*d%2+c*d%3)%2;case 7:return 0==(c*d%3+(c+d)%2)%2;default:throw Error("bad maskPattern:"+
+a);}},getErrorCorrectPolynomial:function(a){for(var c=new q([1],0),d=0;d<a;d++)c=c.multiply(new q([1,l.gexp(d)],0));return c},getLengthInBits:function(a,c){if(1<=c&&10>c)switch(a){case 1:return 10;case 2:return 9;case s:return 8;case 8:return 8;default:throw Error("mode:"+a);}else if(27>c)switch(a){case 1:return 12;case 2:return 11;case s:return 16;case 8:return 10;default:throw Error("mode:"+a);}else if(41>c)switch(a){case 1:return 14;case 2:return 13;case s:return 16;case 8:return 12;default:throw Error("mode:"+
+a);}else throw Error("type:"+c);},getLostPoint:function(a){for(var c=a.getModuleCount(),d=0,b=0;b<c;b++)for(var e=0;e<c;e++){for(var f=0,i=a.isDark(b,e),g=-1;1>=g;g++)if(!(0>b+g||c<=b+g))for(var h=-1;1>=h;h++)0>e+h||c<=e+h||0==g&&0==h||i==a.isDark(b+g,e+h)&&f++;5<f&&(d+=3+f-5)}for(b=0;b<c-1;b++)for(e=0;e<c-1;e++)if(f=0,a.isDark(b,e)&&f++,a.isDark(b+1,e)&&f++,a.isDark(b,e+1)&&f++,a.isDark(b+1,e+1)&&f++,0==f||4==f)d+=3;for(b=0;b<c;b++)for(e=0;e<c-6;e++)a.isDark(b,e)&&!a.isDark(b,e+1)&&a.isDark(b,e+
+2)&&a.isDark(b,e+3)&&a.isDark(b,e+4)&&!a.isDark(b,e+5)&&a.isDark(b,e+6)&&(d+=40);for(e=0;e<c;e++)for(b=0;b<c-6;b++)a.isDark(b,e)&&!a.isDark(b+1,e)&&a.isDark(b+2,e)&&a.isDark(b+3,e)&&a.isDark(b+4,e)&&!a.isDark(b+5,e)&&a.isDark(b+6,e)&&(d+=40);for(e=f=0;e<c;e++)for(b=0;b<c;b++)a.isDark(b,e)&&f++;a=Math.abs(100*f/c/c-50)/5;return d+10*a}},l={glog:function(a){if(1>a)throw Error("glog("+a+")");return l.LOG_TABLE[a]},gexp:function(a){for(;0>a;)a+=255;for(;256<=a;)a-=255;return l.EXP_TABLE[a]},EXP_TABLE:Array(256),
+LOG_TABLE:Array(256)},m=0;8>m;m++)l.EXP_TABLE[m]=1<<m;for(m=8;256>m;m++)l.EXP_TABLE[m]=l.EXP_TABLE[m-4]^l.EXP_TABLE[m-5]^l.EXP_TABLE[m-6]^l.EXP_TABLE[m-8];for(m=0;255>m;m++)l.LOG_TABLE[l.EXP_TABLE[m]]=m;q.prototype={get:function(a){return this.num[a]},getLength:function(){return this.num.length},multiply:function(a){for(var c=Array(this.getLength()+a.getLength()-1),d=0;d<this.getLength();d++)for(var b=0;b<a.getLength();b++)c[d+b]^=l.gexp(l.glog(this.get(d))+l.glog(a.get(b)));return new q(c,0)},mod:function(a){if(0>
+this.getLength()-a.getLength())return this;for(var c=l.glog(this.get(0))-l.glog(a.get(0)),d=Array(this.getLength()),b=0;b<this.getLength();b++)d[b]=this.get(b);for(b=0;b<a.getLength();b++)d[b]^=l.gexp(l.glog(a.get(b))+c);return(new q(d,0)).mod(a)}};p.RS_BLOCK_TABLE=[[1,26,19],[1,26,16],[1,26,13],[1,26,9],[1,44,34],[1,44,28],[1,44,22],[1,44,16],[1,70,55],[1,70,44],[2,35,17],[2,35,13],[1,100,80],[2,50,32],[2,50,24],[4,25,9],[1,134,108],[2,67,43],[2,33,15,2,34,16],[2,33,11,2,34,12],[2,86,68],[4,43,27],
+[4,43,19],[4,43,15],[2,98,78],[4,49,31],[2,32,14,4,33,15],[4,39,13,1,40,14],[2,121,97],[2,60,38,2,61,39],[4,40,18,2,41,19],[4,40,14,2,41,15],[2,146,116],[3,58,36,2,59,37],[4,36,16,4,37,17],[4,36,12,4,37,13],[2,86,68,2,87,69],[4,69,43,1,70,44],[6,43,19,2,44,20],[6,43,15,2,44,16],[4,101,81],[1,80,50,4,81,51],[4,50,22,4,51,23],[3,36,12,8,37,13],[2,116,92,2,117,93],[6,58,36,2,59,37],[4,46,20,6,47,21],[7,42,14,4,43,15],[4,133,107],[8,59,37,1,60,38],[8,44,20,4,45,21],[12,33,11,4,34,12],[3,145,115,1,146,
+116],[4,64,40,5,65,41],[11,36,16,5,37,17],[11,36,12,5,37,13],[5,109,87,1,110,88],[5,65,41,5,66,42],[5,54,24,7,55,25],[11,36,12],[5,122,98,1,123,99],[7,73,45,3,74,46],[15,43,19,2,44,20],[3,45,15,13,46,16],[1,135,107,5,136,108],[10,74,46,1,75,47],[1,50,22,15,51,23],[2,42,14,17,43,15],[5,150,120,1,151,121],[9,69,43,4,70,44],[17,50,22,1,51,23],[2,42,14,19,43,15],[3,141,113,4,142,114],[3,70,44,11,71,45],[17,47,21,4,48,22],[9,39,13,16,40,14],[3,135,107,5,136,108],[3,67,41,13,68,42],[15,54,24,5,55,25],[15,
+43,15,10,44,16],[4,144,116,4,145,117],[17,68,42],[17,50,22,6,51,23],[19,46,16,6,47,17],[2,139,111,7,140,112],[17,74,46],[7,54,24,16,55,25],[34,37,13],[4,151,121,5,152,122],[4,75,47,14,76,48],[11,54,24,14,55,25],[16,45,15,14,46,16],[6,147,117,4,148,118],[6,73,45,14,74,46],[11,54,24,16,55,25],[30,46,16,2,47,17],[8,132,106,4,133,107],[8,75,47,13,76,48],[7,54,24,22,55,25],[22,45,15,13,46,16],[10,142,114,2,143,115],[19,74,46,4,75,47],[28,50,22,6,51,23],[33,46,16,4,47,17],[8,152,122,4,153,123],[22,73,45,
+3,74,46],[8,53,23,26,54,24],[12,45,15,28,46,16],[3,147,117,10,148,118],[3,73,45,23,74,46],[4,54,24,31,55,25],[11,45,15,31,46,16],[7,146,116,7,147,117],[21,73,45,7,74,46],[1,53,23,37,54,24],[19,45,15,26,46,16],[5,145,115,10,146,116],[19,75,47,10,76,48],[15,54,24,25,55,25],[23,45,15,25,46,16],[13,145,115,3,146,116],[2,74,46,29,75,47],[42,54,24,1,55,25],[23,45,15,28,46,16],[17,145,115],[10,74,46,23,75,47],[10,54,24,35,55,25],[19,45,15,35,46,16],[17,145,115,1,146,116],[14,74,46,21,75,47],[29,54,24,19,
+55,25],[11,45,15,46,46,16],[13,145,115,6,146,116],[14,74,46,23,75,47],[44,54,24,7,55,25],[59,46,16,1,47,17],[12,151,121,7,152,122],[12,75,47,26,76,48],[39,54,24,14,55,25],[22,45,15,41,46,16],[6,151,121,14,152,122],[6,75,47,34,76,48],[46,54,24,10,55,25],[2,45,15,64,46,16],[17,152,122,4,153,123],[29,74,46,14,75,47],[49,54,24,10,55,25],[24,45,15,46,46,16],[4,152,122,18,153,123],[13,74,46,32,75,47],[48,54,24,14,55,25],[42,45,15,32,46,16],[20,147,117,4,148,118],[40,75,47,7,76,48],[43,54,24,22,55,25],[10,
+45,15,67,46,16],[19,148,118,6,149,119],[18,75,47,31,76,48],[34,54,24,34,55,25],[20,45,15,61,46,16]];p.getRSBlocks=function(a,c){var d=p.getRsBlockTable(a,c);if(void 0==d)throw Error("bad rs block @ typeNumber:"+a+"/errorCorrectLevel:"+c);for(var b=d.length/3,e=[],f=0;f<b;f++)for(var h=d[3*f+0],g=d[3*f+1],j=d[3*f+2],l=0;l<h;l++)e.push(new p(g,j));return e};p.getRsBlockTable=function(a,c){switch(c){case 1:return p.RS_BLOCK_TABLE[4*(a-1)+0];case 0:return p.RS_BLOCK_TABLE[4*(a-1)+1];case 3:return p.RS_BLOCK_TABLE[4*
+(a-1)+2];case 2:return p.RS_BLOCK_TABLE[4*(a-1)+3]}};t.prototype={get:function(a){return 1==(this.buffer[Math.floor(a/8)]>>>7-a%8&1)},put:function(a,c){for(var d=0;d<c;d++)this.putBit(1==(a>>>c-d-1&1))},getLengthInBits:function(){return this.length},putBit:function(a){var c=Math.floor(this.length/8);this.buffer.length<=c&&this.buffer.push(0);a&&(this.buffer[c]|=128>>>this.length%8);this.length++}};"string"===typeof h&&(h={text:h});h=r.extend({},{render:"canvas",width:256,height:256,typeNumber:-1,
+correctLevel:2,background:"#ffffff",foreground:"#000000"},h);return this.each(function(){var a;if("canvas"==h.render){a=new o(h.typeNumber,h.correctLevel);a.addData(h.text);a.make();var c=document.createElement("canvas");c.width=h.width;c.height=h.height;for(var d=c.getContext("2d"),b=h.width/a.getModuleCount(),e=h.height/a.getModuleCount(),f=0;f<a.getModuleCount();f++)for(var i=0;i<a.getModuleCount();i++){d.fillStyle=a.isDark(f,i)?h.foreground:h.background;var g=Math.ceil((i+1)*b)-Math.floor(i*b),
+j=Math.ceil((f+1)*b)-Math.floor(f*b);d.fillRect(Math.round(i*b),Math.round(f*e),g,j)}}else{a=new o(h.typeNumber,h.correctLevel);a.addData(h.text);a.make();c=r("<table></table>").css("width",h.width+"px").css("height",h.height+"px").css("border","0px").css("border-collapse","collapse").css("background-color",h.background);d=h.width/a.getModuleCount();b=h.height/a.getModuleCount();for(e=0;e<a.getModuleCount();e++){f=r("<tr></tr>").css("height",b+"px").appendTo(c);for(i=0;i<a.getModuleCount();i++)r("<td></td>").css("width",
+d+"px").css("background-color",a.isDark(e,i)?h.foreground:h.background).appendTo(f)}}a=c;jQuery(a).appendTo(this)})}})(jQuery);
\ No newline at end of file
diff --git a/node_modules/pdfh5/js/pdf-obfuscated.js b/node_modules/pdfh5/js/pdf-obfuscated.js
new file mode 100644
index 0000000..79874d6
--- /dev/null
+++ b/node_modules/pdfh5/js/pdf-obfuscated.js
@@ -0,0 +1 @@
+function a0_0x5972(){const _0xb69579=['_contentLength','getStructTree','Blob','Unable\x20to\x20load\x20font\x20data\x20at:\x20','getCalculationOrderIds','_next','mac+meta+s','Wrong\x20data\x20format\x20in\x20MurmurHash3_64_update.\x20','get','isNodeJS','cancel','svg:polyline','__originalRotate','clientY','ctrlKey','hypot','checkSMaskState','string','enableEditMode','pattern','disableEditing','textColor','getGroups','commonobj','fixDims','destroyed','Invalid\x20argument\x20for\x20stringToBytes','textContentSource','GetDestination','popupDate','_createCanvas','font-style','getOwnPropertyDescriptor','33910LYnzFr','calc(','separateAnnots','ImageBitmap','altKey','null','{{scale}}%','__originalRestore','canvasContextMenu','_layoutText','clipBox','STAMP','An\x20editor\x20must\x20be\x20serializable','setMiterLimit','structuredClone','isSameOrigin','fieldName','fnId','currentPageIndex','AnnotationEditor','onDone','inverseTransform','RTCCertificate','cMapReaderFactory','getRenderingIntent','vmetric','before','isWorkerDisabled','svg:path','createTextNode','\x22);','Mouse\x20Up','svg:image','AnnotationReplyType','_continueBound','trim','span','__originalScale','div','setLeading','url(data:','_smask_','configure','FREETEXT_SIZE','_container','transformStack','LINE_FACTOR','combo','preserve','constructPath','UnexpectedResponseException','transparent','res','setAt','isStreamingSupported','butt','Unimplemented\x20graphic\x20state\x20operator\x20','streamId','getViewerPreferences','htmlForXfa','fromPoint','addDeletedAnnotationElement','overlayDiv','drop','getDestinationHash','move','GetDocJSActions','createRadialGradient','WebAssembly.Module','lineAnnotation','fill','Accessors\x20not\x20supported','_destroy','\x22,\x20','_layoutTextParams','_pageWidth','updateMode','pdfjsWorker','terminate','GetReader','The\x20standard\x20font\x20\x22baseUrl\x22\x20parameter\x20must\x20be\x20specified,\x20ensure\x20that\x20','setTextMatrix','defaultValue','Unimplemented\x20border\x20style:\x20beveled','quadrilaterals','getCurrentTransformInverse','iterator','_pdfjsCompatibilityChecked','header','_defaultThickness','_numPages','{{size_mb}}\x20MB\x20({{size_b}}\x20bytes)','PDFDataTransportStream','__originalSave','disabled','smaskCounter','rotationchanging','cos','getRect','fetch','userValue','Invalid\x20SVG\x20dimensions','paintChar','svg:style','shift+Backspace','throw','paste','buffer','Page\x20Request','\x20cannot\x20be\x20properly\x20polyfilled\x20in\x20this\x20engine','paintImageMaskXObject','isArrayEqual','fontSizeScale','onPull','process','fillText','filename\x5c*','setFont','foreground','position','addProgressiveDoneListener','parentDimensions','errors','editorDivKeydown','24273769cbhFuE','fakeWorkerId','setCharWidth','annotation-','href','setLayerDimensions','Optional\x20content\x20group\x20not\x20found:\x20','beginSMaskMode','addFilter','moveElementInDOM','alphaIsShape','IP84AFoDIQAAAAAAAQAAAAAAAAAAACAAIAABAAAADgCuAAEAAAAAAAAAAQAAAAEAAAAA','\x20is\x20not\x20ready\x20yet','getOrder','savedCtx','fillStyle','isValidFetchUrl','Streaming\x20is\x20disabled.','source-over','removeEditor','DefaultCanvasFactory','getActive','stroke-dasharray','Not\x20implemented:\x20loadSystemFont\x20without\x20the\x20Font\x20Loading\x20API.','domain','oblique\x20','multiline','fillRect','annotation_date_string','onStateChange','end','Bounding\x20box\x20is\x20required.','onerror','[object\x20process]','object','selectedIndex','loadingRequests','_fontInspectorEnabled','points','AbortException','Phrase\x20not\x20found','This\x20object\x20cannot\x20be\x20transferred:\x20','table-cell','toLocaleTimeString','applyInverseTransform','AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA','path','DONE','hotpink','addFontStyle','width','presentation','backgroundColor','set','updateTextLayer','mesh','The\x20CMap\x20\x22baseUrl\x22\x20parameter\x20must\x20be\x20specified,\x20ensure\x20that\x20','attached','px\x20','--freetext-padding','Canvas\x20is\x20not\x20specified','targetName','running','Undefined','height','_progressListeners','BaseStandardFontDataFactory','BINARY','gfx','trimEnd','arrayBuffer','editingaction','onmousedown','data-element-id','createCDNWrapper','imageSmoothingEnabled','intent','AnnotationEditorType','isAttachedToDOM','cMapPacked','setFillRGBColor','PDF_TO_CSS_UNITS','restore','observe','_setDefaultPropertiesFromJS','ANNOTATIONS_DISABLE','preventDefault','bbox','editorDivFocus','getJSActions','_zIndex','canvasPointerleave','enforce','callee','canvasPointerdown','AnnotationType','cancelled','EvalError','PageViewport','responseType','hide','onreadystatechange','flatMap','assign','createObjectURL','main','baseFontName','BigInt','streamControllers','byteOffset','_isRangeSupported','popupRef','requestFull','ResetForm','binary\x20','_setVisible','__originalLineTo','transparency','please\x20use\x20the\x20getData-method\x20instead.','pendingRequests','suspendedCtx','defineProperties','rebuild','\x20is\x20currently\x20rendering.','Incorrect\x20invocation','fontExtraProperties','iframe','Reflect','lastChild','createPattern','24740HhDUxK','getRequestXhr','setupStorage','currentScript','AudioData','readFile','Loading\x20aborted','svg:clipPath','error','role','pendingEOFill','currentPath','useWorkerFetch','getPathGenerator\x20-\x20ignoring\x20character:\x20\x22','getAnchorUrl','CryptoKey','SyntaxError','getSinglePixelWidth','validateResponseStatus','stampEditing','Dependent\x20image\x20with\x20object\x20ID\x20','_initialize','getEditors','multiple','charCodeAt','ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=','_rangeChunkSize','bytes','NONE','T_HTML','shift+Delete','Dummy','setRenderingIntent','getModificationDate','type','Failed\x20to\x20load\x20font\x20\x27','Invalid\x20font\x20matrix\x20for\x20font\x20','last','DefaultCMapReaderFactory','loadSystemFont\x20shouldn\x27t\x20be\x20called\x20when\x20`disableFontFace`\x20is\x20set.','styles','deleteWordBackward','_webWorker','GPUCompilationMessage','startCleanup:\x20Page\x20','Mesh','DataCloneError','aria-required','FontFallback','Yes','embeddedFonts','lineCap','enterInEditMode','DOMPoint','_loaded','scale','strokeStyle','lattice','annotationeditorparamschanged','any','AQEBIVhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYAAABAQAADwACAQEEE/t3','_setRequired','str','objectSize','AllOn','NATIVE','Reached\x20end\x20of\x20document,\x20continued\x20from\x20top','_textDivs','_cachedChunks','Content-Length','forceDataSchema','inkEditing','prescale1','onRotationChanging','getElementsByName','objs','GetStructTree','getValue','offsetX','paths','pdfjs_internal_editor_','CropTarget','workerSrc','eoFillStroke','http','paintImageMaskXObject:\x20ImageBitmap\x20support\x20is\x20not\x20implemented,\x20','_document','GetData','_queuedChunks','PDFWorker.fromPort\x20-\x20invalid\x20method\x20signature.','xlink:href','_rangeReaders','paintType','enqueue',')\x20while\x20retrieving\x20PDF\x20\x22','addHighlightArea','setTransform','script','previous','stamps','firstQuadRect','\x20is\x20not\x20iterable','Unknown\x20action\x20from\x20worker:\x20','CANCEL_COMPLETE','mac+','DOMFilterFactory','0.2126\x200.7152\x200.0722\x200\x200\x200.2126\x200.7152\x200.0722\x200\x200\x200.2126\x200.7152\x200.0722\x200\x200\x200\x200\x200\x201\x200','checked','result','addColorStop','getSVG','xmlns','_setupFakeWorkerGlobal','normal','importScripts(\x22','_requests','writable','measureText','IteratorPrototype','px\x20*\x20var(--scale-factor))','isType3Font','remove','900','onError','getFilenameFromContentDispositionHeader','removeNativeFontFace','text_annotation_type','byteLength','INK_THICKNESS','concat','withCredentials','executeOpTree','getLineDash','GetViewerPreferences','GET','nextLine','text/css','_pdfBug','endCompat','mac+meta+a','POPUP','isTooltipOnly','realScale','Use\x20different\x20canvas\x20or\x20ensure\x20previous\x20operations\x20were\x20','CONFIGURABLE','none','Error\x20during\x20font\x20loading:\x20','Invalid\x20page\x20request.','getPageMode','DefaultFilterFactory','landscape','IS_HTMLDDA','bytes=','Cannot\x20resolve\x20callback\x20','stampAnnotation','something','GetDocRequest','stopAtErrors','top','onceAdded','option','onSetModified','updatefromsandbox','document.F=Object','isPendingRequest','styleElement','_queuedChunk','paintImageXObjectRepeat','XfaLayer','cut','gen','StepperManager','OPS','maxX','_createContainer','caretAnnotation','FQAABDgAAAAeT1MvMlYNYwkAAAEgAAAAYGNtYXABDQLUAAACNAAAAUJoZWFk/xVFDQAA','_passwordCapability','Type3\x20character\x20\x22','formattedValue','Warning:\x20The\x20PDF\x20is\x20not\x20fully\x20loaded\x20for\x20printing.','subtype','AAEAAQAAAAEAAAAAAAIAAQAAAAEAAAAAAAMAAQAAAAEAAAAAAAQAAQAAAAEAAAAAAAUA','FREETEXT','cors','underlineAnnotation','_progressiveDataLength','keydown','isArrayBuffer','Start\x20typing…','getPageLayout','_textContentSource','file','getPageLabels','scale(','_bounds','IS_ITERATOR','add','PDFNodeStream','Mac','Draw\x20Editor','baseTransform','isCompressed','free_text2_default_content','setFillAlpha','ALwAAAA2aGhlYQdkA+oAAAD0AAAAJGhtdHgD6AAAAAAEWAAAAAZtYXhwAAJQAAAAARgA','viewBox','createImageData','onClosed','_stats','ImageKind','radioButton','success','enqueue\x20should\x20have\x20stream\x20controller','dontCallGetSet','bitmapUrl','change','maskCanvas','progressiveDone','borderColor','getBoundingClientRect','isMultipleSelection','Keystroke','WillSave','opacityToHex','setVisibility','NullL10n','baseURI','setHScale','documentElement','zIndex','setTextRise','pendingTextPaths','_isOffscreenCanvasSupported','find_match_count_limit','textContentStream','OFF','setWordSpacing','setFlatness','executeSetOCGState','Reached\x20top\x20of\x20document,\x20continued\x20from\x20bottom','_networkStream','Cleanup','isClosed','PULL','needsToBeRebuilt','fround','closeFillStroke','resetTransform','textAlign','options','30px\x20','translate','setSelected','canvasWidth','fingerprints','code','polylineAnnotation','dispatchEvent','UnknownErrorException','patternUnits','lineX','Uncloneable\x20type:\x20','0\x200\x20','activeClipUrl','__esModule','clientX','setupMessageHandler','onCancel','highlightAnnotation','loaded','ctrl+p','image/png','globalCompositeOperation','utf-16be','inspectSource','clipBbox','context','deflateSync','inkEditorCanvas','args','401124outArr','stopPropagation','fillCanvas','loading','unicode','_rangeListeners','getPermissions','paperclip','globalAlpha','_onProgressiveDone','update','http:','isInFont','AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMAAAAAAAD/gwAyAAAAAQAAAAAAAAAAAAAAAAAA','ms\x0a','systemFontInfo','transportReady','getPropertyValue','miter','message','DASHED','focusMainContainer','removeEventListener','bold','times','Input\x20must\x20be\x20a\x20string\x20or\x20array.','_request','StandardFontDataFactory\x20not\x20initialized,\x20see\x20the\x20`useWorkerFetch`\x20parameter.','match','The\x20`--scale-factor`\x20CSS-variable\x20must\x20be\x20set,\x20','target','IEND','clear','translationX','Float32Array','readable','getRenderingIntent\x20-\x20invalid\x20intent:\x20','cssStyle','attach','_onReceiveData\x20-\x20no\x20`PDFDataTransportStreamRangeReader`\x20instance\x20found.','strict','Transfer\x20option\x20cannot\x20be\x20converted\x20to\x20a\x20sequence','convertToViewportRectangle','WeakMap','TODO:\x20Support\x20non-isolated\x20groups.','updateOperatorList','combobox','xfaOff','Unimplemented\x20border\x20style:\x20inset','__originalTranslate','mac+meta+z','chunk','AnnotationPrefix','endAnnotation','getClippedPathBoundingBox','_bindLink','SVGGraphics','fileattachmentannotation','verticesPerRow','30aoSdyF','_internalPadding','policy','startCall','Symbol.','_transfer_map_','buttonWidgetAnnotation','beginPath','extraStack','[^\x22;\x5cs][^;\x5cs]*','BigInt64Array','scaleY','allowRangeRequests','doNotScroll','pageRotation','lineJoin','PDF','DISABLE','_l10nPromise','_end','OCG','hexdigest','_defaultColor','_createQuadrilaterals','nodeName','contentDiv','every','_colorStops','markedContentStack','_canceled','multiLine','imageManager','XfaText','RuntimeError','fillStroke','moveTo','_setBackgroundColor','_defaultFontSize','optionalContentConfig','argsArray','Object','dragover','svg:rect','AAAGbmFtZVjmdH4AAAGAAAAAsXBvc3T/hgAzAAADeAAAACAAAQAAAAEAALZRFsRfDzz1','alternativeText','StartRenderPage','ceil','enableEditing','containerClassName','px\x20*\x20var(--scale-factor)\x20-\x201ch)','xfaHtml','fromCharCode','Web\x20fonts\x20are\x20disabled:\x20unable\x20to\x20use\x20embedded\x20PDF\x20fonts.','./pdf.worker.js','alt+Backspace','getPage','canvasPointermove','decode','Invalid\x20rotation','lineY','isEvalSupported','calc(var(--scale-factor)\x20*\x20','feFuncR','SerializableEmpty','pageNumber','requestDataRange','clipboardData','Mouse\x20Enter',');\x20}\x0a','params','WorkerMessageHandler','paintImageMaskXObjectRepeat','then','onAnnotationEditor','stringify','dropEffect','setAspectRatio','parentWindow','IDATA','getOutline','isInteger','addProgressiveReadListener','onPassword','matrix','_prepareFontLoadEvent','find_match_count_limit[','Got\x20unknown\x20object\x20type\x20','_pageIndex','filename\x5c*((?!0\x5cd)\x5cd+)(\x5c*?)','_startRenderPage','readOnly','weakData','inkLists','beginSMaskMode\x20called\x20while\x20already\x20in\x20smask\x20mode','select','_loadTestFont','GRAYSCALE_1BPP','\x20Iterator','fontName','getOptionalContentConfig','exec','addRangeListener','INTERRUPTED','setAll','getPageIndex','CanvasRenderingContext2D','enableClick','getUint8','_headersReady','resizable','#ffffff','StampEditor','enumerable','destroy','mac+meta+p','_renderQuadrilaterals','sendWithStream','state','paintWidth','__originalBezierCurveTo','AAMAAQQJAAMAAgABAAMAAQQJAAQAAgABAAMAAQQJAAUAAgABAAMAAQQJAAYAAgABWABY','parentRotation','__originalClosePath','getNextId','unselect','data-annotation-id','AnnotationBorderStyleType','family','freeTextEditor','_messageHandler','objectFromMap','setGState','visibility','Unknown\x20group\x20type\x20','groupStack','CMapReaderFactory\x20not\x20initialized,\x20see\x20the\x20`useWorkerFetch`\x20parameter.','bgColor','--scale-factor','Requesting\x20object\x20that\x20isn\x27t\x20resolved\x20yet\x20','obj','_initialized','GetPage','[data-annotation-id=\x22','stack','setActiveEditor','red','Unimplemented\x20operator\x20','tgrp','endDrawing','maskId','moveEditorInDOM','atan2','editable','stream','showElementAndHideCanvas','response','Transferring','reject','cause','Invalid\x20argument\x20for\x20bytesToString','paste:\x20\x22','svg','DidPrint','minX','_headers','_disableRange','dialog','ArrayBuffer','docId','Info:\x20','request','setVerbosityLevel','_enqueue','randomUUID','textAnnotation','uiManager','getHexCode','updateScalingPathMinMax','_fullRequestId','WillPrint','preserveAspectRatio','_progressiveDoneListeners','svg:tspan','matrix(','unscopables','renderTextLayer','popupAnnotation','show','rescaleAndStroke','SOLID','_stream','bad\x20image\x20kind:\x20','AnnotationMode','_bindResetFormAction','DOMMatrix','Invalid\x20parameter\x20in\x20getDocument,\x20need\x20parameter\x20object.','HasJSActions','startsWith','transparentCanvas','defaultAppearanceData','lineWidth','http://www.w3.org/2000/svg','cacheKey','nextBreakPoint','document','operatorListId','Missing\x20PDF\x20\x22','onResetModified','RenderingIntentFlag','smask','translate(','value','putImageData','tempSMask','AAABAAQEAAEBAQJYAAEBASH4DwD4GwHEAvgcA/gXBIwMAYuL+nz5tQXkD5j3CBLnEQAC','classList','addUndoableEditor','Should\x20not\x20call\x20PrintAnnotationStorage.print','isFsUrl','PageVisible','ownKeys','error\x20should\x20have\x20stream\x20controller','document.pdf','xobjs','_r1','square','AQAAAAEAAAAAAAYAAQAAAAMAAQQJAAAAAgABAAMAAQQJAAEAAgABAAMAAQQJAAIAAgAB','baseTransformStack','FormatError','strokeAlpha','The\x20TextLayerRender\x20`textContent`/`textContentStream`\x20parameters\x20','popup_','bezierPath2D','^D:','loadDependencies','WARNINGS','feFuncG','apply','(\x5cd{4})','total','INVISIBLE','IDENTITY_MATRIX','paintInlineImageXObjectGroup','supports','CANCEL','propertiesToUpdate','Invalid\x20pageIndex\x20request.','AAsD6AAAAADOBOTLAAAAAM4KHDwAAAAAA+gDIQAAAAgAAgAAAAAAAAABAAADIQAAAFoD','deleteWordForward','_lastProgress','getShadingPattern','container','_colors','dependency','getFromUrl','mac+meta+Enter','ready','_setupFakeWorker','standardFontDataUrl','Abstract\x20method\x20`_createSVG`\x20called.','font-size','renderTasks','convertToViewportPoint','_filename','stroke-opacity','PageActionEventType','curveTo','deleted','addNativeFontFace','.xfaNonInteractive\x20input,\x20.xfaNonInteractive\x20textarea','\x5cs*=\x5cs*','isPdfFile','stats','sinkCapability','class','PDFDataTransportStream.getFullReader\x20can\x20only\x20be\x20called\x20once.','allKeys','normalize','setCurrentPoint','Can\x27t\x20set\x20','beginGroup','radio','Invalid\x20PDF\x20binary\x20data:\x20either\x20TypedArray,\x20','_reader','InkAnnotationElement','hasSomethingToRedo','isHttp','abort','PermissionFlag','textWidgetAnnotation','getPattern','http://www.w3.org/XML/1998/namespace','setFillAndStrokeStyleToContext','Unexpected\x20stream\x20case','DocException\x20-\x20expected\x20a\x20valid\x20Error.','_fullRequestReader','offset','keys','deprecated','_cachedBitmapsMap','dir','font-style:\x20oblique\x20','isExtensible','svg:pattern','lineDashOffset','closeStroke','Pattern','mac+ctrl+Backspace','_colorsMapping','\x20of\x20','ReadableStream','annotationCanvas','devicePixelRatio','_commonActions','hasAppearance','Dov6fAH6fAT+fPp8+nwHDosMCvm1Cvm1DAz6fBQAAAAAAAABAAAAAMmJbzEAAAAAzgTj','streamReader','hash','Array','toPrimitive','setRequestHeader','_figures','dblclick','utf-16le','charSpacing','261tiMxGU','insertRule','undefined','groups','strokeText','toLocaleString','GetDoc','isCancelled','ensure\x20that\x20the\x20\x22fontExtraProperties\x22\x20API\x20parameter\x20is\x20set.','rect','join','refCounter','groupLevel','isDataScheme','tel:','GetCalculationOrderIds','textbox','isFontSubpixelAAEnabled','close\x20should\x20have\x20stream\x20controller','imageResourcesPath','Content-Disposition','operatorList','resetform','contentEditable','replace','setAttributeNS','ycoords','aspectRatio','abs','maxByteLength','Error','preventExtensions','defaultFieldValue','setInBackground','FreeTextEditor','_p1','stroke-width','NodeCMapReaderFactory','_defaultLineColor','streamReaderCancelTimeout','absolute','Win','_createMaskCanvas','\x20is\x20not\x20an\x20object','setPropertyOnSiblings','editor_ink2_aria_label',',\x20-1)','_bindNamedAction','paintHeight','arity','callback','pointermove','PDFDateString','for','postMessage','unselectAll','getAttachments','titleObj','Int16Array','AC7////TAAEAAAAAAAABBgAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA','activeElement','elements','annotationCanvasMap','element','popupTriggerArea','Symbol','getDownloadInfo','userSpaceOnUse','LoopbackPort','browser','hcmFilter','limit','.worker$1$2','has','url(data:font/opentype;base64,','FileSystemHandle','deleteId','port','Can\x27t\x20convert\x20object\x20to\x20primitive\x20value','_bindResetFormAction\x20-\x20element\x20not\x20allowed:\x20','random','read','index','FILL_STROKE','_getElementsByName','pageDimensions','pdfjs_internal_id_','executeOperatorList','cmd','one','application/pdfjs','svgFactory','editorDivBlur','appendChild','Dependent\x20image\x20isn\x27t\x20ready\x20yet','fill-rule','actionHandler','TextRenderingMode','Unable\x20to\x20load\x20','CompileError','global','renderingIntent','FetchStandardFontData','DOMQuad','feColorMatrix','embedFonts','num','Invalid\x20or\x20corrupted\x20PDF\x20file.','_httpHeaders','splice','follow','6AAAAAAD6AABAAAAAAAAAAAAAAAAAAAAAQAAUAAAAgAAAAQD6AH0AAUAAAKKArwAAACM','{{date}},\x20{{time}}','missingFile','_pageHeight','_scaleImage','lengthComputable','lineTo','angle','contentsObj','_readyCapability','fontFamily','\x2030%,\x20white)','background-color','trunc','AnnotationEditorLayer','ANY','_rootContainer','selectedEditor','xstep','disableEditMode','contentVisible','verticalAlign','PDFPageProxy','norotate','editorDivInput','createNativeFontFace','commit','currXhrId','source','letterSpacing','createReadStream','getterFor','PathType','Invalid\x20parameter\x20object:\x20need\x20either\x20.data,\x20.range\x20or\x20.url','rotate','https','AllOff','setStrokeAlpha','onProgress','dispatch','getter','padStart','cachedPatterns','getElementsToTriggerPopup','getElementsByTagName','bezierCurveTo','image_','color-mix(in\x20srgb,\x20','executeNamedAction','addToPath','aria-multiline','black','sham','getPdfFilenameFromUrl:\x20ignore\x20\x22data:\x22-URL\x20for\x20performance\x20reasons.','string32','circleAnnotation','isInvalidPDFjsFont','_makeColorN_Pattern','_HTML','getL10nFallback','getOpenAction','getFromId','toDateObject','getHash','CARET','normalizeRect','_htmlForXfa','parentNode','getReader','fill-opacity','ctrl+Enter','send','ReaderHeadersReady','OffscreenCanvas','UNCOLORED','paintSolidColorImageMask','Tab','input','GetMarkInfo','BaseException','convertToRGBA','boolean','scaleX','PDFFetchStream','StampAnnotationElement','dotAll','getObject','head','ystep','textarea','toggleSelected','.svg','getViewport','switchannotationeditormode','pointerup','origin','__originalBeginPath','buttonValue','updateToolbar','getImageData','setParent','prevFontFamily','onContinue','createElement','SaveDocument','_canvas','fontStyle','TextLayer\x20task\x20cancelled.','cMapUrl','getArrayBuffer\x20-\x20unexpected\x20data\x20format:\x20','build','pdfBug','_ensureTransformGroup','pdfjs-dist/build/pdf','_on','@@iterator','rangeChunkSize','selectionStart','deg;','createFontFaceRule','_getKeyModifier','parse','isSyncFontLoadingSupported','stepper','getPdfFilenameFromUrl','aria-activedescendant','annotationType','contentRect','isArray','freetext','data','Uint8ClampedArray','DOMRect','Unknown\x20RadialAxial\x20type:\x20','ownerDocument','endSMaskMode\x20called\x20while\x20not\x20in\x20smask\x20mode','onmouseup','TEXT','fontAdded','singularValueDecompose2dScale','RegExp','px)','ctx','deg)\x20','blob','protocol','AS_ENTRIES','Terminate','desiredSize','__proto__','openOrDownloadData','defineProperty','offsetY','_source','onScaleChanging','contentLength','toStringTag','lineCoordinates','createResponseStatusError','dependencies','paintFormXObjectEnd','baseUrl','loadTestFontId','isPureXfa','invertSelf','_fieldObjects','MessageHandler','kind','intersect','resolve','fontSize','tilingType','GlobalWorkerOptions','graphicsReady','required','GetOpenAction','setCharSpacing','xcoords','CLOSE','_scheduleNextBound','items','Unexpected\x20server\x20response.','startNewPathAndClipBox','RenderingCancelledException','flags','_coords','\x20scale(','number','workerPort','blur','undo','isContentVisible','timeEnd','mouseup','VerbosityLevel','clip-path','click','append','font-weight','getXfaPageViewport','clone','Shading','setFillColorN','auto','xhr','Path2D','getJavaScript','getRaw','startY','updateCurvePathMinMax','InvalidPDFException','maxImageSize','fieldValue','indices','BaseCanvasFactory','15kRvfwY','maxLen','warn','freeTextEditing','Worker\x20was\x20destroyed.','url(#','verbosity','onDataProgressiveDone','Set','setup','toggle','_setStrokeAttributes','_render','focus','pointerleave','subarray','isEmpty','dataTransfer','Worker\x20was\x20destroyed\x20during\x20onPassword\x20callback','_removeRangeReader','143xYIoeY','pageTranslation','endPath','defs','AnnotationEditorPrefix','toLocaleDateString','1px','createElementNS','getDocument','_background','fontLoader','Fill','multiSelect','filterFactory','Array\x20Iterator','#00000000','textHScale','hidden','720342RlkBld','rectangle','style','name','hasOwn','AnnotationFlag','Setting\x20up\x20fake\x20worker.','updateDefaultParams','_port','getMarkInfo','_onDone','INK_OPACITY','Cannot\x20initialize\x20AnnotationEditor.','CMapCompressionType','normalizeUnicode','_processItems','httpHeaders','enableScripting','knockout','freeTextAnnotation','Invalid\x20SVG\x20element\x20type','contentWindow','Unexpected\x20server\x20response\x20(','svgElementName','_manager','The\x20worker\x20has\x20been\x20disabled.','svg:svg','numPages','setLineDash','return','font-weight:\x20','compiled','Automatic\x20Zoom','IS_RECORD','ink','patternFill','other','PageOpen','annotationTextContent','newWindow','Cannot\x20use\x20the\x20same\x20canvas\x20during\x20multiple\x20render()\x20operations.\x20','done','mask','_requestId','curveTo3','parent','CANVAS','_p0','BaseSVGFactory','_progressiveReadListeners','RGB_HTML','cloneNode','removeLayer','group','strikeoutAnnotation','\x22;src:','serialized','GetPermissions','LINE','Cannot\x20load\x20system\x20font:\x20','3.31.0','node','CMYK_RGB','allSettled','utf8StringToString','_onProgress','ENQUEUE','disableClick','_worker','ltr','Ready','promise','setStrokeColorN','expectedStatus','129EATmEK','stringToPDFString','annotationEditorType','([Z|+|-])?','mouseleave','showType3Text','complete','body','cachedCanvases','l10n','PDFWorkerUtil','GetRangeReader\x20-\x20expected\x20an\x20ArrayBuffer.','function','overflowX','isValidId','innerText','loadScript','Abstract\x20method\x20`getPattern`\x20called.','More\x20than\x20{{limit}}\x20match','fontMatrix','log','_onHeadersReceived','GetReader\x20-\x20no\x20`IPDFStream`\x20instance\x20available.','Unexpected\x20callback\x20case','_inspectFont','mac+alt+Backspace','Unknown\x20IR\x20type:\x20','pagechanging','DOMCanvasFactory','left','isSelected','_isReadableStream','fieldObjects','txtElement','viewport','Stroke','hasText','textRise','lastCommittedValue','G_RGB','Escape','baseFieldName','getFullReader','endText','docBaseUrl','Text\x20Editor','__originalMoveTo','[{{type}}\x20Annotation]','addOrRebuild','pointerEvents','readonly','bezierBoundingBox','open','find_match_count[','transformMatrix','fromPort','PDFNetworkStream','ENABLE_STORAGE','_done','sign','GetReader\x20-\x20expected\x20an\x20ArrayBuffer.','shadow','cancelled\x20or\x20completed.','outputScaleY','getId','actions','data:','https://github.com/zloirock/core-js','Not','eoClip','pure','MIN_SIZE','Cannot\x20initialize\x20BaseStandardFontDataFactory.','isFontLoadingAPISupported','Accept-Ranges','className','CIRCLE','getColorValues','editor_ink_canvas_aria_label','eoFill','setStrokeRGBColor','cssRules','setInForeground','construct','_contentDispositionFilename','getXfa','attachment','contain','Font','repeat','host','commonObjs','dashed','_initializeFromPort','opacity','loadingTask','capability','getOwnPropertySymbols','image/*','allRawPaths','_createPopup','drawImage','pointerdown','fillRule','_continue','__originalRect','parentScale','getColorN_Pattern','GetTextContent','MurmurHash3_64','Legal','curveTo2','Validate','arraybuffer','Group','getRenderingIntent\x20-\x20invalid\x20annotationMode:\x20','Cannot\x20initialize\x20BaseShadingPattern.','wks','StandardFontDataFactory','length','_createSVG','RGB','suggestedLength','interpolate','AnnotationStorage','getAll','_getPattern','_begin','Focus','propertyIsEnumerable','modificationDate','_intentStates','selRange','No\x20\x22GlobalWorkerOptions.workerSrc\x22\x20specified.','_onError','registerEditorTypes','lastIndexOf','call','getTransform','disableStream','userUnit','find_match_count','Mouse\x20Exit','contextmenu','_createMeshCanvas','setLineCap','replaceChildren','extractFilenameFromHeader','_transform','FontFaceObject','closePath','DOMMatrixReadOnly','deleteAnnotationElement','\x22\x20is\x20not\x20available.','markedContent','nonzero','ctrl','FREETEXT_COLOR','popupContent','25096AgVxAF','AnnotationLayer','getPrototypeOf','Canvas','floor','scalechanging','abortRequest','all','fillAlpha','https://github.com/zloirock/core-js/blob/v3.31.0/LICENSE','file:///','_bindAttachment','vertical','Page\x20was\x20destroyed.','getPageJSActions','Content-Range','MAX_IMAGE_SIZE_TO_CACHE','Setting\x20up\x20fake\x20worker\x20failed:\x20\x22','DOMCMapReaderFactory','Action','getData','UTC','\x27:\x20\x27','onDataRange','setLineJoin','getFilenameFromUrl','setUint8','getMode','INFOS','setRotation','font','ColorManager','setPrototypeOf','isActive','location','_readCapability','shiftKey','svg:stop','Math','GetAnnotations','{{size_kb}}\x20KB\x20({{size_b}}\x20bytes)','_textDivProperties','comObj','Stroke\x20bounding\x20box\x20must\x20include\x20transform.','breakIt','ClipboardEvent','forced','DISPLAY','Abstract\x20method\x20PDFDataRangeTransport.requestDataRange','createValidAbsoluteUrl','transferMap','_nextBound','hasIndices','version','removeDeletedAnnotationElement','disable','source-in','stroke-miterlimit','Object\x20already\x20initialized','dashArray','defaultPropertiesToUpdate','quadPoints','_pageInfo','beginDrawing','annotationStorage','Should\x20not\x20call\x20beginInlineImage','_progressiveDone','textMatrix','creator','auth','MissingPDFException','padEnd','CommandManager','createLinearGradient','GetJavaScript','_onComObjOnMessage','setData','addEventListener','_setEventListeners','PDFNetworkStream.getFullReader\x20can\x20only\x20be\x20called\x20once.','filename','getUTCDate','cleanup','substring','addLayer','next','AAAAAAAAAwAAAAMAAAAcAAEAAAAAADwAAwABAAAAHAAEACAAAAAEAAQAAQAAAC7//wAA','title','Util','userName','alt','getRGB','canvasFactory','hasOwnCanvas','transform','transferToImageBitmap','files','disableRange','(?:^|;)\x5cs*','platform','createPatternCanvas','_uiManager','getTime','_cachedGetSinglePixelWidth','Worker\x20was\x20terminated.','bind','exports','focused','findIndex','TilingPattern','mouseenter','pushpin','src','fontWeight','getCurrentTransform','svg:radialGradient','getAttributeNS','(\x5cd{2})?','no-repeat','endSMaskMode','setDims','print','readyState','colors','_pumpOperatorList','_maybeCleanupAfterRender','transfer','color','isOffscreenCanvasSupported','stringToUTF8String','setStrong','copy','borderWidth','Abstract\x20method\x20`_createCanvas`\x20called.','mimetype','accept','STROKE','unicodeSets','content','data-editor-rotation','metaKey','isPrototypeOf','selectAll','css','_fullReader','showText','BASELINE_FACTOR','_createGradient','canvasGraphicsFactory','viewParameters','_headersCapability','isSvg','RGBA_32BPP','[object\x20z]','display','squareAnnotation','Worker\x20was\x20destroyed','pageColors','DefaultStandardFontDataFactory','FILL','https:','disableAutoFetch','rawDims','scrollLeft','3.9.0','rgb(','loadedName','paintImageMaskXObjectGroup','activeSMask','_cancelBound','write','getAnnotations','app','onclick','convertBlackAndWhiteToRGBA','fromMatrix','downloadInfoCapability','@font-face\x20{font-family:\x22','fillColor','removeShouldRescale','Image','Blur','stringToPDFString:\x20\x22','setAttribute','Overall','onload','saveDocument\x20called\x20while\x20`annotationStorage`\x20is\x20empty,\x20','assert','VideoFrame','ids','STRIKEOUT','the\x20\x22cMapUrl\x22\x20and\x20\x22cMapPacked\x22\x20API\x20parameters\x20are\x20provided.','addShouldRescale','_url','downloadManager','_useRequestAnimationFrame','meta','detach','getFieldObjects','tabIndex','stringToBytes','started','fontBoundingBoxAscent','721IlCnvU','eventBus','DOMException','_editOnDoubleClick','cssFontInfo','hasInitialVisibility','setAttributes','getDestination','Duplicate\x20transferable','callbackId','isLittleEndian','PasswordResponses','_removeMirroring','mac+meta+shift+Z','groupAt','Window','saveDocument','getOwnPropertyNames','inlineImage','serialize','getUTCMinutes','delete','settled','paintInlineImageXObject','img','_setTextStyle','charLimit','Warning:\x20Printing\x20is\x20not\x20fully\x20supported\x20by\x20this\x20browser.','NodeStandardFontDataFactory','range','PDFDocumentLoadingTask','default','validateRangeRequestCapabilities','annotationElementId','dest','worker','RGB_24BPP','_params','PROPER','setLineWidth','smaskGroupAt','Cannot\x20initialize\x20BaseCMapReaderFactory.','FileSystemFileHandle','data-internal-link','CMYK_HTML','detail','FontInspector','compiledGlyphs','commitKey','122580xClMCP','editor_free_text2_aria_label','textMatrixScale','onPageChanging','messageHandler','dashPhase','fnArray','getFromFile','_makeShadingPattern','deleteContentBackward',');\x0a','KeyboardManager','removeAttribute','tspan','htmlfile','Null','utf-8','shading','OptionalContentConfig','count','richText','POLYFILL','streamSinks','headers','streamTextContent','inkAnnotation','_dispatchEventFromSandbox','translationY','consumePath','getVerbosityLevel','setValue','isEmptyClip','commitOrRemove','serializable','ReferenceError','setTextRenderingMode','vertices','AsyncFunction','url','Metadata','getOperatorList','get\x20','grayToRGBA','[data-element-id=\x22','_queueLoadingCallback','GetDestinations','svg:text','Cannot\x20initialize\x20BaseFilterFactory.','FONT_IDENTITY_MATRIX','__originalSetTransform','getComputedStyle','hasSomethingToUndo','fonts','getEditor','\x22(?:[^\x22\x5c\x5c]|\x5c\x5c\x22?)+\x22?','bytesToString','Mouse\x20Down','[object\x20','PRINT','_abortController','either\x20string\x20or\x20URL-object\x20is\x20expected\x20in\x20the\x20url\x20property.','AnnotationEditorParamsType','NodeCanvasFactory','_ensureClipGroup','getUTCHours','getEditableAnnotation','freeze','children','Function','DataView','bindEvents','shadingFill','SHADING','responseText','same-origin','Int8Array','querySelector','render','resetForm','getUTCSeconds','BaseFilterFactory','LINE_DESCENT_FACTOR','visible','getRawValue','getCanvas','http://','updateClipFromPath','_download','domElement','Arguments','mouse','_abortOperatorList','effectAllowed','Map','closest','hasSelection','split','_error',',\x20installing\x20it\x20could\x20help\x20to\x20improve\x20PDF\x20rendering.','Rendering\x20cancelled,\x20page\x20','AAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA','dragstart','ctrl+y','_rangeRequestReaders','FontLoader','view','TextLayerRenderTask','CanvasGraphics','test','Off','completeRequest()\x20cannot\x20be\x20called\x20twice.','page','controller','attributes','stateStack','PDFDocumentProxy','constructor','en-us','Incompatible\x20receiver,\x20','headersReady','CMYK','isVisible','_isStreamingSupported','feFuncB','facade','addInkEditorIfNeeded','previousSibling','ERROR','stopped','__originalTransform','OCMD','getRectInCurrentCoords','IE_PROTO','pageIndex','WIDGET','PasswordRequest','ColorConverters','BaseCMapReaderFactory','PixelsPerInch','load','enableXfa','isSpace','setEditingState','ENABLE','Range','DOMStandardFontDataFactory','evenodd','close','querySelectorAll','SQUIGGLY','requestRange','displayReadyCapability','getDocJSActions','sqrt','feComponentTransfer','{{width}}\x20×\x20{{height}}\x20{{unit}}\x20({{name}},\x20{{orientation}})','Uint16Array','accent','Can\x27t\x20find\x20font\x20for\x20','Cannot\x20load\x20script\x20at:\x20','_onReceiveData','\x20as\x20a\x20prototype','DocumentActionEventType','getSvgUrl','hostname','includes','time','begin','setLeadingMoveText','FILL_STROKE_MASK','key','clearRect','italic','_transport','shouldGetKeyboardEvents','readAsDataURL','beginAnnotation','DocException','form','addCommands','updateParams','LinkError','hasJSActions','Date','Cannot\x20initialize\x20BaseException.','The\x20SVG\x20back-end\x20is\x20no\x20longer\x20maintained\x20and\x20*may*\x20be\x20removed\x20in\x20the\x20future.','convertToPdfPoint','canvasMaxAreaInBytes','image/svg+xml','canvasPointerup','text','radial','-editor','AnnotationEditorUIManager','_defaultOpacity','10px\x20sans-serif','Letter','_formatContents','beginText','Unknown\x20optional\x20content\x20policy\x20','textRenderingMode','AnyOff','strokeColor','linkAnnotation','data-main-rotation','graphicsReadyCallback','unreachable','dataId','setter','addHighlightHCMFilter','extraDelay','fontChar','opListReadCapability','CSS','setCharWidthAndBounds','Load\x20test\x20font\x20never\x20loaded.','{{width}}\x20×\x20{{height}}\x20{{unit}}\x20({{orientation}})','stroke-dashoffset','svg:polygon','editing','font-family','getEditableAnnotations','standardFontDataFactory','canvas','FQAAAADOBOQpAAEAAAAAAAAADAAUAAQAAAABAAAAAgABAAAAAAAAAAAD6AAAAAAAAA==','outputScaleX','UNDERLINE','requestAnimationFrame','catch','fontBoundingBoxDescent','isInEditMode','insert','PasswordException','noRotate','compose','_setReadableStream','updateRectMinMax','_pdfInfo','_hcm_highlight_filter','_keyboardManager','_scheduleNext','StatTimer','Deprecated\x20API\x20usage:\x20','getInitialTranslation','ignoreErrors','backdrop','BEVELED','G_HTML','verticalCornerRadius','borderRadius','markPoint','thickness','getScaleForStroking','scaleFactor','maxY','resetModified','invalid\x20format','create','getUuid','NodeFilterFactory','triangles','GetPageJSActions','enable','noHTML','pop','_renderPageChunk','defaultVMetrics','amd','Timer\x20has\x20not\x20been\x20started\x20for\x20','getConstructor','setDash','selected','status','GetPageMode','max','minY','pendingClip','_onRangeRequestReaderClosed','getTextContent','AnnotationActionEventType','Transport\x20destroyed','_setEventListener','removePointerInTextLayer','AnyOn','Symbol(','maybeShow','checkbox','_off','reason','getMetadata','moveText','startCleanup','_withCredentials','polygonAnnotation','PDFDataRangeTransport','aria-haspopup','deserialize','getNextBreakPoint','inputType','first','exportValue','FeatureTest','©\x202014-2023\x20Denis\x20Pushkarev\x20(zloirock.ru)','scaleMinMax','illegal\x20figure','endsWith','statusText',';base64,','rotation','DOMRectReadOnly','addHCMFilter','OPLIST','onHeadersReceived','lineMatrix','_cachedScaleForStroking','START_COMPLETE','file:','{{progress}}%','isRangeSupported','DOMPointReadOnly','Warning:\x20','useSystemFonts','calc(var(--scale-factor)*','DOMSVGFactory','Cannot\x20use\x20more\x20than\x20one\x20PDFWorker\x20per\x20port.','CMap\x20at:\x20','info','operatorListChanged','valueOf','task','_readableStream','cancelCall','action','completed','({{pageNumber}}\x20of\x20{{pagesCount}})','_bbox','nativeFontFaces','reset','isDeletedAnnotationElement','WebAssembly','(forced-colors:\x20active)','processingType3','DidSave','miterLimit','getRangeReader','AooCvAAAAeAAMQECAAACAAYJAAAAAAAAAAAAAQAAAAAAAAAAAAAAAFBmRWQAwAAuAC4D','__originalClip','push','squigglyAnnotation','xfaLayer\x20xfaFont','px\x20*\x20var(--scale-factor))\x20/\x20calc(','svgUrl','addProgressListener','draggable','sRGB','matchMedia','round','finally','InkEditor','save','PromiseCapability','ref','addToAnnotationStorage','borderStyle','_mainThreadWorkerMessageHandler','ArrayBuffer\x20is\x20detached','TypeError','print_progress_percent','bitmap','map','mousedown','clip-rule','String','pullCall','PDFWorker','callbackCapabilities','startX','DATA','relatedTarget','URIError','leading','closeEOFillStroke','callbacks','inSMaskMode','GetAttachments','AggregateError','INK_COLOR','WillClose','java','ignoreCase','hasOwnProperty','getContext','toFixed','Cannot\x20initialize\x20BaseCanvasFactory.','symbol','area','#text','trigger','Invalid\x20PDF\x20url\x20data:\x20','svg:g','_colorManager','slice','xfaOn','section','_r0','path2d-polyfill','dataset','cache','text/plain','getPathBoundingBox','COLORED','entries','disconnect','_textContentItemsStr','CanvasText','dispatcheventinsandbox','min','of\x20{{pagesCount}}','focusout','annotationeditorstateschanged','filter','order','prototype','PULL_COMPLETE','values','radiobutton','Abstract\x20method\x20`_fetchData`\x20called.','GetPageIndex','getDestinations','getRandomValues','enabled','getPathGenerator','PageClose','indexOf','Timer\x20is\x20already\x20running\x20for\x20','some','background','ADD_TO_PATH_FLAG','button','showSpacedText','setDimensions','fileAttachmentAnnotation','current','convert','hasEOL','comb','middle','versions','beginMarkedContentProps','toLowerCase','#000000','redo','toString','smaskStack','compositeCtx','fake','minHeight','isEditing','paintImageXObject','Deno','getAxialAlignedBoundingBox','zlib','stroke','comment','FetchBuiltInCMap','FILEATTACHMENT','DataTransfer','ENOENT','shift','html','SharedArrayBuffer','_bindJSAction','operatorListIdx','removed','paintFormXObjectBegin','l10nArgs','ImageData','transferMaps','forEach','Btn','italicAngle','Unimplemented\x20pattern\x20Mesh','POLYGON','fallbackWorkerSrc','_pdfDataRangeTransport','allXfaHtml','off','maxLength','_fetchData','14Aueqjz','wordSpacing','PrintAnnotationStorage','Can\x27t\x20call\x20method\x20on\x20','portrait','_capability','makeHexColor','aria-label','statusCode','initializeGraphics','mac+Escape','initialize','will\x20be\x20removed\x20in\x20the\x20future,\x20please\x20use\x20`textContentSource`\x20instead.','Invalid\x20canvas\x20size','screenToPageTranslation','convertOpList','renderForms','from','textAlignment','currentLayer','editorDiv','_type','size','destroyCapability','setOCGState','expression','_operatorIdMapping','revokeObjectURL','Page\x20{{page}}','sourceName','_storedError','updatePathMinMax','isolated','minWidth','getGroup','focusin','AsyncGeneratorFunction','TilingType:\x20','_path_','__originalResetTransform','sendWithPromise','loadSystemFont','shouldBuildText','streaming\x20is\x20disabled','now','PDFDataTransportStream\x20-\x20missing\x20required\x20\x22pdfDataRangeTransport\x22\x20argument.','{{current}}\x20of\x20{{total}}\x20matches','objectID','Should\x20not\x20call\x20beginImageData','popup','fontDirection','loadingParams','ftp:','Int32Array','.bcmap','Sig','RangeError','Got\x20unknown\x20common\x20object\x20type\x20','highlightArea','stamp','tableValues','init','applyTransform','lastChunk','endMarkedContent','SMask','linkService','_headersReceivedCapability','cancelAllRequests','textContent','getSizeAndScale','configurable','INK','stop-color','getAttribute','http://www.w3.org/1999/xlink','clip','displayValue','clipGroup','Missing\x20PDF\x20file.','color-interpolation-filters','replaceAll','disableFontFace','INTERNAL','onprogress','applyTransferMapsToCanvas','layer','DataLoaded'];a0_0x5972=function(){return _0xb69579;};return a0_0x5972();}function a0_0x160d(_0x168830,_0x4de99b){const _0x59722e=a0_0x5972();return a0_0x160d=function(_0x160d3a,_0x1c3d62){_0x160d3a=_0x160d3a-0xbf;let _0x2cf935=_0x59722e[_0x160d3a];return _0x2cf935;},a0_0x160d(_0x168830,_0x4de99b);}(function(_0xdc16c,_0x3cbca9){const _0x14a138=a0_0x160d,_0x159f33=_0xdc16c();while(!![]){try{const _0x419942=parseInt(_0x14a138(0x1e5))/0x1*(-parseInt(_0x14a138(0x8dd))/0x2)+parseInt(_0x14a138(0x4e0))/0x3*(-parseInt(_0x14a138(0x9db))/0x4)+parseInt(_0x14a138(0x470))/0x5*(parseInt(_0x14a138(0x496))/0x6)+-parseInt(_0x14a138(0x64a))/0x7*(parseInt(_0x14a138(0x57f))/0x8)+-parseInt(_0x14a138(0x32a))/0x9*(parseInt(_0x14a138(0x67b))/0xa)+-parseInt(_0x14a138(0x484))/0xb*(parseInt(_0x14a138(0x1aa))/0xc)+parseInt(_0x14a138(0x959))/0xd*(parseInt(_0x14a138(0x864))/0xe);if(_0x419942===_0x3cbca9)break;else _0x159f33['push'](_0x159f33['shift']());}catch(_0x5a50f8){_0x159f33['push'](_0x159f33['shift']());}}}(a0_0x5972,0x52eb3),function webpackUniversalModuleDefinition(_0xe8ec11,_0x263bc2){const _0x24c9f0=a0_0x160d;if(typeof exports===_0x24c9f0(0x97b)&&typeof module===_0x24c9f0(0x97b))module[_0x24c9f0(0x5e9)]=_0x263bc2();else{if(typeof define===_0x24c9f0(0x4ec)&&define[_0x24c9f0(0x786)])define('pdfjs-dist/build/pdf',[],_0x263bc2);else{if(typeof exports===_0x24c9f0(0x97b))exports['pdfjs-dist/build/pdf']=_0x263bc2();else _0xe8ec11[_0x24c9f0(0x40a)]=_0xe8ec11['pdfjsLib']=_0x263bc2();}}}(globalThis,()=>{return((()=>{var _0x2c322a=[,(_0xe1d08,_0x56a686,_0x3c35ef)=>{'use strict';const _0x6e4512=a0_0x160d;Object['defineProperty'](_0x56a686,'__esModule',{'value':!![]}),_0x56a686[_0x6e4512(0x45b)]=_0x56a686[_0x6e4512(0x5d7)]=_0x56a686['UnknownErrorException']=_0x56a686[_0x6e4512(0x90f)]=_0x56a686[_0x6e4512(0x38b)]=_0x56a686[_0x6e4512(0x2b5)]=_0x56a686[_0x6e4512(0x7e3)]=_0x56a686['PermissionFlag']=_0x56a686['PasswordResponses']=_0x56a686[_0x6e4512(0x763)]=_0x56a686['PageActionEventType']=_0x56a686[_0x6e4512(0x13d)]=_0x56a686['MissingPDFException']=_0x56a686['MAX_IMAGE_SIZE_TO_CACHE']=_0x56a686['LINE_FACTOR']=_0x56a686[_0x6e4512(0x6cc)]=_0x56a686[_0x6e4512(0x46b)]=_0x56a686['ImageKind']=_0x56a686[_0x6e4512(0x2d6)]=_0x56a686[_0x6e4512(0x2c9)]=_0x56a686[_0x6e4512(0x7a8)]=_0x56a686[_0x6e4512(0x6ab)]=_0x56a686[_0x6e4512(0x71d)]=_0x56a686[_0x6e4512(0x4a3)]=_0x56a686[_0x6e4512(0x3e8)]=_0x56a686[_0x6e4512(0x611)]=_0x56a686[_0x6e4512(0x9b8)]=_0x56a686[_0x6e4512(0x8fe)]=_0x56a686[_0x6e4512(0x2a5)]=_0x56a686['AnnotationFlag']=_0x56a686['AnnotationFieldFlag']=_0x56a686[_0x6e4512(0x9a6)]=_0x56a686['AnnotationEditorPrefix']=_0x56a686[_0x6e4512(0x6b8)]=_0x56a686[_0x6e4512(0x263)]=_0x56a686[_0x6e4512(0x792)]=_0x56a686['AbortException']=void 0x0,_0x56a686[_0x6e4512(0x63a)]=_0x3df96c,_0x56a686['bytesToString']=_0x2e1023,_0x56a686[_0x6e4512(0x5b0)]=_0x1d7886,_0x56a686[_0x6e4512(0x9fc)]=_0x3fd7f6,_0x56a686['getUuid']=_0x54db00,_0x56a686[_0x6e4512(0x698)]=_0x5e368f,_0x56a686[_0x6e4512(0x7c1)]=_0xf84db2,_0x56a686[_0x6e4512(0x14d)]=_0x445002,_0x56a686[_0x6e4512(0x94c)]=_0x459dae,_0x56a686[_0x6e4512(0x4a4)]=_0x25116f,_0x56a686[_0x6e4512(0x267)]=_0x2f8352,_0x56a686[_0x6e4512(0xd0)]=_0x1a34be,_0x56a686[_0x6e4512(0x290)]=_0x5ab649,_0x56a686[_0x6e4512(0x51d)]=_0x502626,_0x56a686[_0x6e4512(0x3cf)]=_0x3b9627,_0x56a686[_0x6e4512(0x647)]=_0xdc1302,_0x56a686[_0x6e4512(0x4e1)]=_0x59f322,_0x56a686[_0x6e4512(0x600)]=_0x3b52db,_0x56a686[_0x6e4512(0x749)]=_0x2ba8b1,_0x56a686[_0x6e4512(0x4d6)]=_0x1ffdbd,_0x56a686[_0x6e4512(0x472)]=_0x1753d1;!globalThis[_0x6e4512(0x934)]&&(globalThis[_0x6e4512(0x934)]=!![],_0x3c35ef(0x2));const _0x453501=[0x1,0x0,0x0,0x1,0x0,0x0];_0x56a686[_0x6e4512(0x2d6)]=_0x453501;const _0xbb6c52=[0.001,0x0,0x0,0.001,0x0,0x0];_0x56a686[_0x6e4512(0x6ab)]=_0xbb6c52;const _0x596cad=0x989680;_0x56a686['MAX_IMAGE_SIZE_TO_CACHE']=_0x596cad;const _0xac5a49=1.35;_0x56a686[_0x6e4512(0x90b)]=_0xac5a49;const _0x43bc8a=0.35;_0x56a686[_0x6e4512(0x6cc)]=_0x43bc8a;const _0x4afbbb=_0x43bc8a/_0xac5a49;_0x56a686[_0x6e4512(0x611)]=_0x4afbbb;const _0x519cac={'ANY':0x1,'DISPLAY':0x2,'PRINT':0x4,'SAVE':0x8,'ANNOTATIONS_FORMS':0x10,'ANNOTATIONS_STORAGE':0x20,'ANNOTATIONS_DISABLE':0x40,'OPLIST':0x100};_0x56a686['RenderingIntentFlag']=_0x519cac;const _0x3c6d07={'DISABLE':0x0,'ENABLE':0x1,'ENABLE_FORMS':0x2,'ENABLE_STORAGE':0x3};_0x56a686[_0x6e4512(0x2a5)]=_0x3c6d07;const _0x4d0541=_0x6e4512(0xe1);_0x56a686[_0x6e4512(0x488)]=_0x4d0541;const _0x10dc9a={'DISABLE':-0x1,'NONE':0x0,'FREETEXT':0x3,'STAMP':0xd,'INK':0xf};_0x56a686[_0x6e4512(0x9a6)]=_0x10dc9a;const _0x3e940a={'FREETEXT_SIZE':0x1,'FREETEXT_COLOR':0x2,'FREETEXT_OPACITY':0x3,'INK_COLOR':0xb,'INK_THICKNESS':0xc,'INK_OPACITY':0xd};_0x56a686[_0x6e4512(0x6b8)]=_0x3e940a;const _0x3b2237={'PRINT':0x4,'MODIFY_CONTENTS':0x8,'COPY':0x10,'MODIFY_ANNOTATIONS':0x20,'FILL_INTERACTIVE_FORMS':0x100,'COPY_FOR_ACCESSIBILITY':0x200,'ASSEMBLE':0x400,'PRINT_HIGH_QUALITY':0x800};_0x56a686[_0x6e4512(0x305)]=_0x3b2237;const _0x1bb4b7={'FILL':0x0,'STROKE':0x1,'FILL_STROKE':0x2,'INVISIBLE':0x3,'FILL_ADD_TO_PATH':0x4,'STROKE_ADD_TO_PATH':0x5,'FILL_STROKE_ADD_TO_PATH':0x6,'ADD_TO_PATH':0x7,'FILL_STROKE_MASK':0x3,'ADD_TO_PATH_FLAG':0x4};_0x56a686[_0x6e4512(0x38b)]=_0x1bb4b7;const _0x302792={'GRAYSCALE_1BPP':0x1,'RGB_24BPP':0x2,'RGBA_32BPP':0x3};_0x56a686[_0x6e4512(0x163)]=_0x302792;const _0x2cef88={'TEXT':0x1,'LINK':0x2,'FREETEXT':0x3,'LINE':0x4,'SQUARE':0x5,'CIRCLE':0x6,'POLYGON':0x7,'POLYLINE':0x8,'HIGHLIGHT':0x9,'UNDERLINE':0xa,'SQUIGGLY':0xb,'STRIKEOUT':0xc,'STAMP':0xd,'CARET':0xe,'INK':0xf,'POPUP':0x10,'FILEATTACHMENT':0x11,'SOUND':0x12,'MOVIE':0x13,'WIDGET':0x14,'SCREEN':0x15,'PRINTERMARK':0x16,'TRAPNET':0x17,'WATERMARK':0x18,'THREED':0x19,'REDACT':0x1a};_0x56a686['AnnotationType']=_0x2cef88;const _0x5da7e3={'GROUP':_0x6e4512(0x552),'REPLY':'R'};_0x56a686[_0x6e4512(0x8fe)]=_0x5da7e3;const _0x536b2e={'INVISIBLE':0x1,'HIDDEN':0x2,'PRINT':0x4,'NOZOOM':0x8,'NOROTATE':0x10,'NOVIEW':0x20,'READONLY':0x40,'LOCKED':0x80,'TOGGLENOVIEW':0x100,'LOCKEDCONTENTS':0x200};_0x56a686[_0x6e4512(0x49b)]=_0x536b2e;const _0x4c9485={'READONLY':0x1,'REQUIRED':0x2,'NOEXPORT':0x4,'MULTILINE':0x1000,'PASSWORD':0x2000,'NOTOGGLETOOFF':0x4000,'RADIO':0x8000,'PUSHBUTTON':0x10000,'COMBO':0x20000,'EDIT':0x40000,'SORT':0x80000,'FILESELECT':0x100000,'MULTISELECT':0x200000,'DONOTSPELLCHECK':0x400000,'DONOTSCROLL':0x800000,'COMB':0x1000000,'RICHTEXT':0x2000000,'RADIOSINUNISON':0x2000000,'COMMITONSELCHANGE':0x4000000};_0x56a686['AnnotationFieldFlag']=_0x4c9485;const _0x1e6d36={'SOLID':0x1,'DASHED':0x2,'BEVELED':0x3,'INSET':0x4,'UNDERLINE':0x5};_0x56a686[_0x6e4512(0x263)]=_0x1e6d36;const _0x26bb69={'E':_0x6e4512(0x228),'X':_0x6e4512(0x56e),'D':_0x6e4512(0x6b3),'U':_0x6e4512(0x8fc),'Fo':'Focus','Bl':'Blur','PO':_0x6e4512(0x4bb),'PC':_0x6e4512(0x82b),'PV':_0x6e4512(0x2c0),'PI':'PageInvisible','K':'Keystroke','F':'Format','V':_0x6e4512(0x550),'C':'Calculate'};_0x56a686[_0x6e4512(0x792)]=_0x26bb69;const _0x15b6c2={'WC':_0x6e4512(0x7fe),'WS':_0x6e4512(0x170),'DS':_0x6e4512(0x7d1),'WP':_0x6e4512(0x298),'DP':_0x6e4512(0x287)};_0x56a686[_0x6e4512(0x71d)]=_0x15b6c2;const _0x2323da={'O':_0x6e4512(0x4bb),'C':_0x6e4512(0x82b)};_0x56a686[_0x6e4512(0x2ee)]=_0x2323da;const _0x46fbb0={'ERRORS':0x0,'WARNINGS':0x1,'INFOS':0x5};_0x56a686[_0x6e4512(0x45b)]=_0x46fbb0;const _0x338718={'NONE':0x0,'BINARY':0x1};_0x56a686['CMapCompressionType']=_0x338718;const _0x3621d1={'dependency':0x1,'setLineWidth':0x2,'setLineCap':0x3,'setLineJoin':0x4,'setMiterLimit':0x5,'setDash':0x6,'setRenderingIntent':0x7,'setFlatness':0x8,'setGState':0x9,'save':0xa,'restore':0xb,'transform':0xc,'moveTo':0xd,'lineTo':0xe,'curveTo':0xf,'curveTo2':0x10,'curveTo3':0x11,'closePath':0x12,'rectangle':0x13,'stroke':0x14,'closeStroke':0x15,'fill':0x16,'eoFill':0x17,'fillStroke':0x18,'eoFillStroke':0x19,'closeFillStroke':0x1a,'closeEOFillStroke':0x1b,'endPath':0x1c,'clip':0x1d,'eoClip':0x1e,'beginText':0x1f,'endText':0x20,'setCharSpacing':0x21,'setWordSpacing':0x22,'setHScale':0x23,'setLeading':0x24,'setFont':0x25,'setTextRenderingMode':0x26,'setTextRise':0x27,'moveText':0x28,'setLeadingMoveText':0x29,'setTextMatrix':0x2a,'nextLine':0x2b,'showText':0x2c,'showSpacedText':0x2d,'nextLineShowText':0x2e,'nextLineSetSpacingShowText':0x2f,'setCharWidth':0x30,'setCharWidthAndBounds':0x31,'setStrokeColorSpace':0x32,'setFillColorSpace':0x33,'setStrokeColor':0x34,'setStrokeColorN':0x35,'setFillColor':0x36,'setFillColorN':0x37,'setStrokeGray':0x38,'setFillGray':0x39,'setStrokeRGBColor':0x3a,'setFillRGBColor':0x3b,'setStrokeCMYKColor':0x3c,'setFillCMYKColor':0x3d,'shadingFill':0x3e,'beginInlineImage':0x3f,'beginImageData':0x40,'endInlineImage':0x41,'paintXObject':0x42,'markPoint':0x43,'markPointProps':0x44,'beginMarkedContent':0x45,'beginMarkedContentProps':0x46,'endMarkedContent':0x47,'beginCompat':0x48,'endCompat':0x49,'paintFormXObjectBegin':0x4a,'paintFormXObjectEnd':0x4b,'beginGroup':0x4c,'endGroup':0x4d,'beginAnnotation':0x50,'endAnnotation':0x51,'paintImageMaskXObject':0x53,'paintImageMaskXObjectGroup':0x54,'paintImageXObject':0x55,'paintInlineImageXObject':0x56,'paintInlineImageXObjectGroup':0x57,'paintImageXObjectRepeat':0x58,'paintImageMaskXObjectRepeat':0x59,'paintSolidColorImageMask':0x5a,'constructPath':0x5b};_0x56a686['OPS']=_0x3621d1;const _0x27096b={'NEED_PASSWORD':0x1,'INCORRECT_PASSWORD':0x2};_0x56a686['PasswordResponses']=_0x27096b;let _0x122cc7=_0x46fbb0[_0x6e4512(0x2d0)];function _0x5ab649(_0x2748d6){const _0x646ac2=_0x6e4512;Number[_0x646ac2(0x235)](_0x2748d6)&&(_0x122cc7=_0x2748d6);}function _0x5e368f(){return _0x122cc7;}function _0xf84db2(_0x2cce03){const _0x49df73=_0x6e4512;_0x122cc7>=_0x46fbb0[_0x49df73(0x59b)]&&console[_0x49df73(0x4f4)](_0x49df73(0x28e)+_0x2cce03);}function _0x1753d1(_0x52c05b){const _0x2d1041=_0x6e4512;_0x122cc7>=_0x46fbb0[_0x2d1041(0x2d0)]&&console[_0x2d1041(0x4f4)](_0x2d1041(0x7bb)+_0x52c05b);}function _0x2ba8b1(_0x45427f){throw new Error(_0x45427f);}function _0x3df96c(_0x269838,_0x11d99d){!_0x269838&&_0x2ba8b1(_0x11d99d);}function _0x3c264a(_0x57a765){const _0x333706=_0x6e4512;switch(_0x57a765?.[_0x333706(0x42a)]){case _0x333706(0x1b5):case _0x333706(0x61f):case _0x333706(0x898):case'mailto:':case _0x333706(0x338):return!![];default:return![];}}function _0x1d7886(_0x30c752){const _0x3d7e0b=_0x6e4512;let _0x3d631e=arguments[_0x3d7e0b(0x557)]>0x1&&arguments[0x1]!==undefined?arguments[0x1]:null,_0x38b485=arguments[_0x3d7e0b(0x557)]>0x2&&arguments[0x2]!==undefined?arguments[0x2]:null;if(!_0x30c752)return null;try{if(_0x38b485&&typeof _0x30c752===_0x3d7e0b(0x8cd)){if(_0x38b485['addDefaultProtocol']&&_0x30c752[_0x3d7e0b(0x2aa)]('www.')){const _0x55a0d3=_0x30c752['match'](/\./g);_0x55a0d3?.[_0x3d7e0b(0x557)]>=0x2&&(_0x30c752=_0x3d7e0b(0x6d0)+_0x30c752);}if(_0x38b485['tryConvertEncoding'])try{_0x30c752=_0x3b52db(_0x30c752);}catch{}}const _0x139e69=_0x3d631e?new URL(_0x30c752,_0x3d631e):new URL(_0x30c752);if(_0x3c264a(_0x139e69))return _0x139e69;}catch{}return null;}function _0x502626(_0x3ad1be,_0xfe694a,_0x30fa14){const _0x29bbbb=_0x6e4512;let _0x3043ac=arguments[_0x29bbbb(0x557)]>0x3&&arguments[0x3]!==undefined?arguments[0x3]:![];return Object[_0x29bbbb(0x430)](_0x3ad1be,_0xfe694a,{'value':_0x30fa14,'enumerable':!_0x3043ac,'configurable':!![],'writable':![]}),_0x30fa14;}const _0x1bf375=function _0x9e6151(){const _0x53e29e=_0x6e4512;function _0x177422(_0x48e3e3,_0x335736){const _0x288d3a=a0_0x160d;this[_0x288d3a(0x6ef)]===_0x177422&&_0x2ba8b1(_0x288d3a(0x733)),this[_0x288d3a(0x1bd)]=_0x48e3e3,this[_0x288d3a(0x499)]=_0x335736;}return _0x177422[_0x53e29e(0x821)]=new Error(),_0x177422[_0x53e29e(0x6ef)]=_0x177422,_0x177422;}();_0x56a686['BaseException']=_0x1bf375;class _0x1776ea extends _0x1bf375{constructor(_0x3846e1,_0x135237){const _0x26f02e=_0x6e4512;super(_0x3846e1,_0x26f02e(0x763)),this['code']=_0x135237;}}_0x56a686['PasswordException']=_0x1776ea;class _0x4f1306 extends _0x1bf375{constructor(_0x45a553,_0x107568){super(_0x45a553,'UnknownErrorException'),this['details']=_0x107568;}}_0x56a686[_0x6e4512(0x194)]=_0x4f1306;class _0x212861 extends _0x1bf375{constructor(_0x5f17dd){const _0x48cc8d=_0x6e4512;super(_0x5f17dd,_0x48cc8d(0x46b));}}_0x56a686[_0x6e4512(0x46b)]=_0x212861;class _0x5dff81 extends _0x1bf375{constructor(_0x414e29){const _0x6549e4=_0x6e4512;super(_0x414e29,_0x6549e4(0x5c5));}}_0x56a686[_0x6e4512(0x5c5)]=_0x5dff81;class _0x52e93 extends _0x1bf375{constructor(_0x11e952,_0x476e01){const _0x48c34a=_0x6e4512;super(_0x11e952,_0x48c34a(0x90f)),this[_0x48c34a(0x78b)]=_0x476e01;}}_0x56a686['UnexpectedResponseException']=_0x52e93;class _0x491bd9 extends _0x1bf375{constructor(_0x49ef47){const _0x26c232=_0x6e4512;super(_0x49ef47,_0x26c232(0x2c9));}}_0x56a686[_0x6e4512(0x2c9)]=_0x491bd9;class _0xe1c647 extends _0x1bf375{constructor(_0x46f87f){const _0x138faa=_0x6e4512;super(_0x46f87f,_0x138faa(0x980));}}_0x56a686[_0x6e4512(0x980)]=_0xe1c647;function _0x2e1023(_0x25485a){const _0x50f543=_0x6e4512;(typeof _0x25485a!=='object'||_0x25485a?.[_0x50f543(0x557)]===undefined)&&_0x2ba8b1(_0x50f543(0x284));const _0x38dcd8=_0x25485a[_0x50f543(0x557)],_0x55fbfc=0x2000;if(_0x38dcd8<_0x55fbfc)return String[_0x50f543(0x218)]['apply'](null,_0x25485a);const _0x10d900=[];for(let _0x5dbe93=0x0;_0x5dbe93<_0x38dcd8;_0x5dbe93+=_0x55fbfc){const _0x5ca5a5=Math[_0x50f543(0x81b)](_0x5dbe93+_0x55fbfc,_0x38dcd8),_0x10b0f4=_0x25485a[_0x50f543(0x47f)](_0x5dbe93,_0x5ca5a5);_0x10d900['push'](String[_0x50f543(0x218)][_0x50f543(0x2d2)](null,_0x10b0f4));}return _0x10d900[_0x50f543(0x334)]('');}function _0xdc1302(_0x3f4283){const _0x14e9cb=_0x6e4512;typeof _0x3f4283!==_0x14e9cb(0x8cd)&&_0x2ba8b1(_0x14e9cb(0x8d6));const _0x639cd9=_0x3f4283[_0x14e9cb(0x557)],_0x2500c2=new Uint8Array(_0x639cd9);for(let _0x1f9408=0x0;_0x1f9408<_0x639cd9;++_0x1f9408){_0x2500c2[_0x1f9408]=_0x3f4283[_0x14e9cb(0x9f3)](_0x1f9408)&0xff;}return _0x2500c2;}function _0x3b9627(_0x1d0e96){return String['fromCharCode'](_0x1d0e96>>0x18&0xff,_0x1d0e96>>0x10&0xff,_0x1d0e96>>0x8&0xff,_0x1d0e96&0xff);}function _0x1a34be(_0x5b5264){const _0x5f4416=_0x6e4512;return Object[_0x5f4416(0x30e)](_0x5b5264)[_0x5f4416(0x557)];}function _0x2f8352(_0x108208){const _0x1035b5=Object['create'](null);for(const [_0x375067,_0x83b776]of _0x108208){_0x1035b5[_0x375067]=_0x83b776;}return _0x1035b5;}function _0x139027(){const _0x4eb903=_0x6e4512,_0x5ab4bb=new Uint8Array(0x4);_0x5ab4bb[0x0]=0x1;const _0x472f34=new Uint32Array(_0x5ab4bb[_0x4eb903(0x948)],0x0,0x1);return _0x472f34[0x0]===0x1;}function _0x306de6(){try{return new Function(''),!![];}catch{return![];}}class _0x63b000{static get[_0x6e4512(0x654)](){const _0x46b406=_0x6e4512;return _0x502626(this,_0x46b406(0x654),_0x139027());}static get[_0x6e4512(0x221)](){return _0x502626(this,'isEvalSupported',_0x306de6());}static get[_0x6e4512(0x5ff)](){const _0x3e01bf=_0x6e4512;return _0x502626(this,_0x3e01bf(0x5ff),typeof OffscreenCanvas!==_0x3e01bf(0x32c));}static get[_0x6e4512(0x5e2)](){const _0x5eb5f9=_0x6e4512;if(typeof navigator===_0x5eb5f9(0x32c))return _0x502626(this,_0x5eb5f9(0x5e2),{'isWin':![],'isMac':![]});return _0x502626(this,'platform',{'isWin':navigator[_0x5eb5f9(0x5e2)]['includes'](_0x5eb5f9(0x353)),'isMac':navigator[_0x5eb5f9(0x5e2)][_0x5eb5f9(0x720)](_0x5eb5f9(0x158))});}}_0x56a686['FeatureTest']=_0x63b000;const _0x2ac5ab=[...Array(0x100)[_0x6e4512(0x30e)]()][_0x6e4512(0x7ec)](_0x52d346=>_0x52d346[_0x6e4512(0x83f)](0x10)['padStart'](0x2,'0'));class _0x169e36{static[_0x6e4512(0x86a)](_0x40c091,_0x400c2d,_0x373c10){return'#'+_0x2ac5ab[_0x40c091]+_0x2ac5ab[_0x400c2d]+_0x2ac5ab[_0x373c10];}static[_0x6e4512(0x7aa)](_0x5b8aa5,_0x1d2b86){let _0x2c987f;_0x5b8aa5[0x0]?(_0x5b8aa5[0x0]<0x0&&(_0x2c987f=_0x1d2b86[0x0],_0x1d2b86[0x0]=_0x1d2b86[0x1],_0x1d2b86[0x1]=_0x2c987f),_0x1d2b86[0x0]*=_0x5b8aa5[0x0],_0x1d2b86[0x1]*=_0x5b8aa5[0x0],_0x5b8aa5[0x3]<0x0&&(_0x2c987f=_0x1d2b86[0x2],_0x1d2b86[0x2]=_0x1d2b86[0x3],_0x1d2b86[0x3]=_0x2c987f),_0x1d2b86[0x2]*=_0x5b8aa5[0x3],_0x1d2b86[0x3]*=_0x5b8aa5[0x3]):(_0x2c987f=_0x1d2b86[0x0],_0x1d2b86[0x0]=_0x1d2b86[0x2],_0x1d2b86[0x2]=_0x2c987f,_0x2c987f=_0x1d2b86[0x1],_0x1d2b86[0x1]=_0x1d2b86[0x3],_0x1d2b86[0x3]=_0x2c987f,_0x5b8aa5[0x1]<0x0&&(_0x2c987f=_0x1d2b86[0x2],_0x1d2b86[0x2]=_0x1d2b86[0x3],_0x1d2b86[0x3]=_0x2c987f),_0x1d2b86[0x2]*=_0x5b8aa5[0x1],_0x1d2b86[0x3]*=_0x5b8aa5[0x1],_0x5b8aa5[0x2]<0x0&&(_0x2c987f=_0x1d2b86[0x0],_0x1d2b86[0x0]=_0x1d2b86[0x1],_0x1d2b86[0x1]=_0x2c987f),_0x1d2b86[0x0]*=_0x5b8aa5[0x2],_0x1d2b86[0x1]*=_0x5b8aa5[0x2]),_0x1d2b86[0x0]+=_0x5b8aa5[0x4],_0x1d2b86[0x1]+=_0x5b8aa5[0x4],_0x1d2b86[0x2]+=_0x5b8aa5[0x5],_0x1d2b86[0x3]+=_0x5b8aa5[0x5];}static['transform'](_0x376a11,_0x438613){return[_0x376a11[0x0]*_0x438613[0x0]+_0x376a11[0x2]*_0x438613[0x1],_0x376a11[0x1]*_0x438613[0x0]+_0x376a11[0x3]*_0x438613[0x1],_0x376a11[0x0]*_0x438613[0x2]+_0x376a11[0x2]*_0x438613[0x3],_0x376a11[0x1]*_0x438613[0x2]+_0x376a11[0x3]*_0x438613[0x3],_0x376a11[0x0]*_0x438613[0x4]+_0x376a11[0x2]*_0x438613[0x5]+_0x376a11[0x4],_0x376a11[0x1]*_0x438613[0x4]+_0x376a11[0x3]*_0x438613[0x5]+_0x376a11[0x5]];}static[_0x6e4512(0x8a2)](_0x37e28d,_0x533f2d){const _0x55a496=_0x37e28d[0x0]*_0x533f2d[0x0]+_0x37e28d[0x1]*_0x533f2d[0x2]+_0x533f2d[0x4],_0x51c798=_0x37e28d[0x0]*_0x533f2d[0x1]+_0x37e28d[0x1]*_0x533f2d[0x3]+_0x533f2d[0x5];return[_0x55a496,_0x51c798];}static[_0x6e4512(0x985)](_0x5c7dd3,_0x4ec925){const _0xc450d9=_0x4ec925[0x0]*_0x4ec925[0x3]-_0x4ec925[0x1]*_0x4ec925[0x2],_0x10fc87=(_0x5c7dd3[0x0]*_0x4ec925[0x3]-_0x5c7dd3[0x1]*_0x4ec925[0x2]+_0x4ec925[0x2]*_0x4ec925[0x5]-_0x4ec925[0x4]*_0x4ec925[0x3])/_0xc450d9,_0x18fc73=(-_0x5c7dd3[0x0]*_0x4ec925[0x1]+_0x5c7dd3[0x1]*_0x4ec925[0x0]+_0x4ec925[0x4]*_0x4ec925[0x1]-_0x4ec925[0x5]*_0x4ec925[0x0])/_0xc450d9;return[_0x10fc87,_0x18fc73];}static['getAxialAlignedBoundingBox'](_0x289076,_0x43240e){const _0x82f937=_0x6e4512,_0x1f6349=this[_0x82f937(0x8a2)](_0x289076,_0x43240e),_0xaeecc3=this[_0x82f937(0x8a2)](_0x289076[_0x82f937(0x80c)](0x2,0x4),_0x43240e),_0x18267f=this[_0x82f937(0x8a2)]([_0x289076[0x0],_0x289076[0x3]],_0x43240e),_0x1fb204=this['applyTransform']([_0x289076[0x2],_0x289076[0x1]],_0x43240e);return[Math[_0x82f937(0x81b)](_0x1f6349[0x0],_0xaeecc3[0x0],_0x18267f[0x0],_0x1fb204[0x0]),Math[_0x82f937(0x81b)](_0x1f6349[0x1],_0xaeecc3[0x1],_0x18267f[0x1],_0x1fb204[0x1]),Math[_0x82f937(0x78d)](_0x1f6349[0x0],_0xaeecc3[0x0],_0x18267f[0x0],_0x1fb204[0x0]),Math[_0x82f937(0x78d)](_0x1f6349[0x1],_0xaeecc3[0x1],_0x18267f[0x1],_0x1fb204[0x1])];}static[_0x6e4512(0x8f2)](_0xfc9667){const _0xedc023=_0xfc9667[0x0]*_0xfc9667[0x3]-_0xfc9667[0x1]*_0xfc9667[0x2];return[_0xfc9667[0x3]/_0xedc023,-_0xfc9667[0x1]/_0xedc023,-_0xfc9667[0x2]/_0xedc023,_0xfc9667[0x0]/_0xedc023,(_0xfc9667[0x2]*_0xfc9667[0x5]-_0xfc9667[0x4]*_0xfc9667[0x3])/_0xedc023,(_0xfc9667[0x4]*_0xfc9667[0x1]-_0xfc9667[0x5]*_0xfc9667[0x0])/_0xedc023];}static[_0x6e4512(0x424)](_0xa85f00){const _0x38ce84=_0x6e4512,_0x5f11fb=[_0xa85f00[0x0],_0xa85f00[0x2],_0xa85f00[0x1],_0xa85f00[0x3]],_0x592a8a=_0xa85f00[0x0]*_0x5f11fb[0x0]+_0xa85f00[0x1]*_0x5f11fb[0x2],_0x541364=_0xa85f00[0x0]*_0x5f11fb[0x1]+_0xa85f00[0x1]*_0x5f11fb[0x3],_0x240745=_0xa85f00[0x2]*_0x5f11fb[0x0]+_0xa85f00[0x3]*_0x5f11fb[0x2],_0x54bad6=_0xa85f00[0x2]*_0x5f11fb[0x1]+_0xa85f00[0x3]*_0x5f11fb[0x3],_0x5a3cd0=(_0x592a8a+_0x54bad6)/0x2,_0x9f454c=Math[_0x38ce84(0x714)]((_0x592a8a+_0x54bad6)**0x2-0x4*(_0x592a8a*_0x54bad6-_0x240745*_0x541364))/0x2,_0x1e1272=_0x5a3cd0+_0x9f454c||0x1,_0x41c349=_0x5a3cd0-_0x9f454c||0x1;return[Math[_0x38ce84(0x714)](_0x1e1272),Math[_0x38ce84(0x714)](_0x41c349)];}static[_0x6e4512(0x3da)](_0x28d9c2){const _0x394086=_0x6e4512,_0x16930d=_0x28d9c2[_0x394086(0x80c)](0x0);return _0x28d9c2[0x0]>_0x28d9c2[0x2]&&(_0x16930d[0x0]=_0x28d9c2[0x2],_0x16930d[0x2]=_0x28d9c2[0x0]),_0x28d9c2[0x1]>_0x28d9c2[0x3]&&(_0x16930d[0x1]=_0x28d9c2[0x3],_0x16930d[0x3]=_0x28d9c2[0x1]),_0x16930d;}static[_0x6e4512(0x441)](_0x31ba5e,_0x3ff0aa){const _0x6c0f28=_0x6e4512,_0x4f860e=Math['max'](Math[_0x6c0f28(0x81b)](_0x31ba5e[0x0],_0x31ba5e[0x2]),Math[_0x6c0f28(0x81b)](_0x3ff0aa[0x0],_0x3ff0aa[0x2])),_0x307041=Math[_0x6c0f28(0x81b)](Math['max'](_0x31ba5e[0x0],_0x31ba5e[0x2]),Math['max'](_0x3ff0aa[0x0],_0x3ff0aa[0x2]));if(_0x4f860e>_0x307041)return null;const _0x8ed2c6=Math['max'](Math[_0x6c0f28(0x81b)](_0x31ba5e[0x1],_0x31ba5e[0x3]),Math[_0x6c0f28(0x81b)](_0x3ff0aa[0x1],_0x3ff0aa[0x3])),_0x51423f=Math[_0x6c0f28(0x81b)](Math['max'](_0x31ba5e[0x1],_0x31ba5e[0x3]),Math[_0x6c0f28(0x78d)](_0x3ff0aa[0x1],_0x3ff0aa[0x3]));if(_0x8ed2c6>_0x51423f)return null;return[_0x4f860e,_0x8ed2c6,_0x307041,_0x51423f];}static['bezierBoundingBox'](_0x3ad4dd,_0x509190,_0x449c12,_0x2ee714,_0x276cf,_0x3eb5fb,_0x31da78,_0x49e287){const _0x1a3335=_0x6e4512,_0x206402=[],_0x30070c=[[],[]];let _0x208eaa,_0x3864ee,_0x24713d,_0x54d20d,_0xe51dec,_0x3c7af0,_0x1f4ebb,_0x458c46;for(let _0xf85a93=0x0;_0xf85a93<0x2;++_0xf85a93){_0xf85a93===0x0?(_0x3864ee=0x6*_0x3ad4dd-0xc*_0x449c12+0x6*_0x276cf,_0x208eaa=-0x3*_0x3ad4dd+0x9*_0x449c12-0x9*_0x276cf+0x3*_0x31da78,_0x24713d=0x3*_0x449c12-0x3*_0x3ad4dd):(_0x3864ee=0x6*_0x509190-0xc*_0x2ee714+0x6*_0x3eb5fb,_0x208eaa=-0x3*_0x509190+0x9*_0x2ee714-0x9*_0x3eb5fb+0x3*_0x49e287,_0x24713d=0x3*_0x2ee714-0x3*_0x509190);if(Math[_0x1a3335(0x346)](_0x208eaa)<1e-12){if(Math[_0x1a3335(0x346)](_0x3864ee)<1e-12)continue;_0x54d20d=-_0x24713d/_0x3864ee;0x0<_0x54d20d&&_0x54d20d<0x1&&_0x206402[_0x1a3335(0x7d6)](_0x54d20d);continue;}_0x1f4ebb=_0x3864ee*_0x3864ee-0x4*_0x24713d*_0x208eaa,_0x458c46=Math[_0x1a3335(0x714)](_0x1f4ebb);if(_0x1f4ebb<0x0)continue;_0xe51dec=(-_0x3864ee+_0x458c46)/(0x2*_0x208eaa),0x0<_0xe51dec&&_0xe51dec<0x1&&_0x206402[_0x1a3335(0x7d6)](_0xe51dec),_0x3c7af0=(-_0x3864ee-_0x458c46)/(0x2*_0x208eaa),0x0<_0x3c7af0&&_0x3c7af0<0x1&&_0x206402[_0x1a3335(0x7d6)](_0x3c7af0);}let _0x5a5e08=_0x206402['length'],_0x1c4a6c;const _0x24dc64=_0x5a5e08;while(_0x5a5e08--){_0x54d20d=_0x206402[_0x5a5e08],_0x1c4a6c=0x1-_0x54d20d,_0x30070c[0x0][_0x5a5e08]=_0x1c4a6c*_0x1c4a6c*_0x1c4a6c*_0x3ad4dd+0x3*_0x1c4a6c*_0x1c4a6c*_0x54d20d*_0x449c12+0x3*_0x1c4a6c*_0x54d20d*_0x54d20d*_0x276cf+_0x54d20d*_0x54d20d*_0x54d20d*_0x31da78,_0x30070c[0x1][_0x5a5e08]=_0x1c4a6c*_0x1c4a6c*_0x1c4a6c*_0x509190+0x3*_0x1c4a6c*_0x1c4a6c*_0x54d20d*_0x2ee714+0x3*_0x1c4a6c*_0x54d20d*_0x54d20d*_0x3eb5fb+_0x54d20d*_0x54d20d*_0x54d20d*_0x49e287;}return _0x30070c[0x0][_0x24dc64]=_0x3ad4dd,_0x30070c[0x1][_0x24dc64]=_0x509190,_0x30070c[0x0][_0x24dc64+0x1]=_0x31da78,_0x30070c[0x1][_0x24dc64+0x1]=_0x49e287,_0x30070c[0x0][_0x1a3335(0x557)]=_0x30070c[0x1]['length']=_0x24dc64+0x2,[Math[_0x1a3335(0x81b)](..._0x30070c[0x0]),Math[_0x1a3335(0x81b)](..._0x30070c[0x1]),Math[_0x1a3335(0x78d)](..._0x30070c[0x0]),Math['max'](..._0x30070c[0x1])];}}_0x56a686['Util']=_0x169e36;const _0x30897c=[0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x2d8,0x2c7,0x2c6,0x2d9,0x2dd,0x2db,0x2da,0x2dc,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x2022,0x2020,0x2021,0x2026,0x2014,0x2013,0x192,0x2044,0x2039,0x203a,0x2212,0x2030,0x201e,0x201c,0x201d,0x2018,0x2019,0x201a,0x2122,0xfb01,0xfb02,0x141,0x152,0x160,0x178,0x17d,0x131,0x142,0x153,0x161,0x17e,0x0,0x20ac];function _0x59f322(_0x44e9f8){const _0x541810=_0x6e4512;if(_0x44e9f8[0x0]>='ï'){let _0x50904c;if(_0x44e9f8[0x0]==='þ'&&_0x44e9f8[0x1]==='ÿ')_0x50904c=_0x541810(0x1a3);else{if(_0x44e9f8[0x0]==='ÿ'&&_0x44e9f8[0x1]==='þ')_0x50904c=_0x541810(0x328);else _0x44e9f8[0x0]==='ï'&&_0x44e9f8[0x1]==='»'&&_0x44e9f8[0x2]==='¿'&&(_0x50904c=_0x541810(0x68b));}if(_0x50904c)try{const _0x300f95=new TextDecoder(_0x50904c,{'fatal':!![]}),_0x34bb46=_0xdc1302(_0x44e9f8);return _0x300f95[_0x541810(0x21e)](_0x34bb46);}catch(_0x5d63ef){_0x1753d1(_0x541810(0x635)+_0x5d63ef+'\x22.');}}const _0x2536c7=[];for(let _0x17b40c=0x0,_0x108848=_0x44e9f8['length'];_0x17b40c<_0x108848;_0x17b40c++){const _0x45a35e=_0x30897c[_0x44e9f8[_0x541810(0x9f3)](_0x17b40c)];_0x2536c7['push'](_0x45a35e?String[_0x541810(0x218)](_0x45a35e):_0x44e9f8['charAt'](_0x17b40c));}return _0x2536c7[_0x541810(0x334)]('');}function _0x3b52db(_0x1bcce5){return decodeURIComponent(escape(_0x1bcce5));}function _0x1ffdbd(_0x578d38){return unescape(encodeURIComponent(_0x578d38));}function _0x445002(_0x3882f3){const _0xf36ae4=_0x6e4512;return typeof _0x3882f3===_0xf36ae4(0x97b)&&_0x3882f3?.[_0xf36ae4(0x110)]!==undefined;}function _0x459dae(_0x49f4e9,_0x23c3d6){const _0x128072=_0x6e4512;if(_0x49f4e9[_0x128072(0x557)]!==_0x23c3d6[_0x128072(0x557)])return![];for(let _0x533185=0x0,_0x1514fa=_0x49f4e9[_0x128072(0x557)];_0x533185<_0x1514fa;_0x533185++){if(_0x49f4e9[_0x533185]!==_0x23c3d6[_0x533185])return![];}return!![];}function _0x3fd7f6(){const _0x44181e=_0x6e4512;let _0x40e11b=arguments['length']>0x0&&arguments[0x0]!==undefined?arguments[0x0]:new Date();const _0x9a2dcc=[_0x40e11b['getUTCFullYear']()[_0x44181e(0x83f)](),(_0x40e11b['getUTCMonth']()+0x1)[_0x44181e(0x83f)]()[_0x44181e(0x3c2)](0x2,'0'),_0x40e11b[_0x44181e(0x5d0)]()[_0x44181e(0x83f)]()[_0x44181e(0x3c2)](0x2,'0'),_0x40e11b[_0x44181e(0x6bb)]()[_0x44181e(0x83f)]()[_0x44181e(0x3c2)](0x2,'0'),_0x40e11b[_0x44181e(0x65e)]()[_0x44181e(0x83f)]()['padStart'](0x2,'0'),_0x40e11b[_0x44181e(0x6ca)]()[_0x44181e(0x83f)]()[_0x44181e(0x3c2)](0x2,'0')];return _0x9a2dcc['join']('');}class _0x2c1f2d{#settled=![];constructor(){const _0x1a4b3c=_0x6e4512;this[_0x1a4b3c(0x4dd)]=new Promise((_0x32c4a9,_0x345bea)=>{const _0x1c148e=_0x1a4b3c;this[_0x1c148e(0x442)]=_0x55c9a6=>{this.#settled=!![],_0x32c4a9(_0x55c9a6);},this[_0x1c148e(0x282)]=_0x428b6f=>{this.#settled=!![],_0x345bea(_0x428b6f);};});}get[_0x6e4512(0x660)](){return this.#settled;}}_0x56a686[_0x6e4512(0x7e3)]=_0x2c1f2d;let _0x21acf8=null,_0x27f392=null;function _0x25116f(_0x170a21){const _0x51e986=_0x6e4512;return!_0x21acf8&&(_0x21acf8=/([\u00a0\u00b5\u037e\u0eb3\u2000-\u200a\u202f\u2126\ufb00-\ufb04\ufb06\ufb20-\ufb36\ufb38-\ufb3c\ufb3e\ufb40-\ufb41\ufb43-\ufb44\ufb46-\ufba1\ufba4-\ufba9\ufbae-\ufbb1\ufbd3-\ufbdc\ufbde-\ufbe7\ufbea-\ufbf8\ufbfc-\ufbfd\ufc00-\ufc5d\ufc64-\ufcf1\ufcf5-\ufd3d\ufd88\ufdf4\ufdfa-\ufdfb\ufe71\ufe77\ufe79\ufe7b\ufe7d]+)|(\ufb05+)/gu,_0x27f392=new Map([['ſt','ſt']])),_0x170a21[_0x51e986(0x8b5)](_0x21acf8,(_0x35675d,_0x603a5,_0x4113a4)=>{const _0x48903a=_0x51e986;return _0x603a5?_0x603a5['normalize']('NFKC'):_0x27f392[_0x48903a(0x8c4)](_0x4113a4);});}function _0x54db00(){const _0xae4cfb=_0x6e4512;if(typeof crypto!=='undefined'&&typeof crypto?.[_0xae4cfb(0x292)]===_0xae4cfb(0x4ec))return crypto['randomUUID']();const _0x2aff3b=new Uint8Array(0x20);if(typeof crypto!==_0xae4cfb(0x32c)&&typeof crypto?.[_0xae4cfb(0x828)]==='function')crypto[_0xae4cfb(0x828)](_0x2aff3b);else for(let _0x5b9569=0x0;_0x5b9569<0x20;_0x5b9569++){_0x2aff3b[_0x5b9569]=Math[_0xae4cfb(0x583)](Math[_0xae4cfb(0x37a)]()*0xff);}return _0x2e1023(_0x2aff3b);}},(_0x30c3c8,_0x457d4e,_0x347c1f)=>{'use strict';var _0x5f1437=_0x347c1f(0x3);(function _0x598cdc(){const _0x53c8d5=a0_0x160d;if(globalThis[_0x53c8d5(0x2a7)]||!_0x5f1437[_0x53c8d5(0x8c5)])return;globalThis['DOMMatrix']=require(_0x53c8d5(0x75a))[_0x53c8d5(0x2a7)];}(),function _0x546f26(){const _0x64e456=a0_0x160d;if(globalThis[_0x64e456(0x466)]||!_0x5f1437[_0x64e456(0x8c5)])return;const {CanvasRenderingContext2D:_0x4590e3}=require(_0x64e456(0x75a)),{polyfillPath2D:_0x154d53}=require(_0x64e456(0x810));globalThis[_0x64e456(0x24e)]=_0x4590e3,_0x154d53(globalThis);}(),function _0x34a3f5(){const _0xec90dd=a0_0x160d;if(globalThis[_0xec90dd(0x8eb)])return;_0x347c1f(0x4);}());},(_0x2cf73d,_0x4c00d5)=>{'use strict';const _0x567dba=a0_0x160d;Object['defineProperty'](_0x4c00d5,_0x567dba(0x19a),{'value':!![]}),_0x4c00d5[_0x567dba(0x8c5)]=void 0x0;const _0x5d7ff5=typeof process===_0x567dba(0x97b)&&process+''===_0x567dba(0x97a)&&!process[_0x567dba(0x83a)]['nw']&&!(process[_0x567dba(0x83a)]['electron']&&process['type']&&process['type']!==_0x567dba(0x36f));_0x4c00d5[_0x567dba(0x8c5)]=_0x5d7ff5;},(_0xdc0cc4,_0x13dc05,_0x56a480)=>{const _0x4e2091=a0_0x160d;_0x56a480(0x5),_0x56a480(0x58),_0x56a480(0x5c),_0x56a480(0x74),_0x56a480(0x76);var _0x180917=_0x56a480(0x82);_0xdc0cc4['exports']=_0x180917[_0x4e2091(0x8eb)];},(_0x555f66,_0x7f2534,_0xa525c)=>{'use strict';const _0x5cdf65=a0_0x160d;var _0xd5e5d0=_0xa525c(0x6),_0x1cb62b=_0xa525c(0xe),_0x2f0885=_0xa525c(0x3d),_0x4cb1da=_0xa525c(0x3e),_0x2c0fe0=_0xa525c(0x24)['f'],_0x1bed5e=_0xa525c(0x42),_0x3e11fc=_0xa525c(0x57),_0x1db612=_0xa525c(0x12),_0x111f4d=_0xa525c(0x22),_0x4e464c=_0x5cdf65(0x492),_0x114d9d=_0x4cb1da[_0x5cdf65(0x98e)],_0x3ca317=_0x4cb1da[_0x5cdf65(0x3b8)](_0x4e464c);_0x555f66[_0x5cdf65(0x5e9)]=_0x1bed5e(Array,'Array',function(_0x1b7cca,_0x1532fa){_0x114d9d(this,{'type':_0x4e464c,'target':_0xd5e5d0(_0x1b7cca),'index':0x0,'kind':_0x1532fa});},function(){const _0x4eddf6=_0x5cdf65;var _0x667410=_0x3ca317(this),_0x24b18b=_0x667410[_0x4eddf6(0x1c8)],_0x48f091=_0x667410[_0x4eddf6(0x440)],_0x2b793a=_0x667410[_0x4eddf6(0x37c)]++;if(!_0x24b18b||_0x2b793a>=_0x24b18b[_0x4eddf6(0x557)])return _0x667410[_0x4eddf6(0x1c8)]=undefined,_0x3e11fc(undefined,!![]);if(_0x48f091==_0x4eddf6(0x30e))return _0x3e11fc(_0x2b793a,![]);if(_0x48f091=='values')return _0x3e11fc(_0x24b18b[_0x2b793a],![]);return _0x3e11fc([_0x2b793a,_0x24b18b[_0x2b793a]],![]);},_0x5cdf65(0x823));var _0x3ccd22=_0x2f0885['Arguments']=_0x2f0885[_0x5cdf65(0x323)];_0x1cb62b(_0x5cdf65(0x30e)),_0x1cb62b('values'),_0x1cb62b(_0x5cdf65(0x816));if(!_0x1db612&&_0x111f4d&&_0x3ccd22[_0x5cdf65(0x499)]!==_0x5cdf65(0x823))try{_0x2c0fe0(_0x3ccd22,_0x5cdf65(0x499),{'value':_0x5cdf65(0x823)});}catch(_0x505f87){}},(_0xfeed29,_0x51d18f,_0x541c32)=>{const _0x37eed1=a0_0x160d;var _0x49c286=_0x541c32(0x7),_0x447d15=_0x541c32(0xc);_0xfeed29[_0x37eed1(0x5e9)]=function(_0xc933ea){return _0x49c286(_0x447d15(_0xc933ea));};},(_0x5cc57d,_0x228499,_0x42005b)=>{const _0x2310e6=a0_0x160d;var _0x2a5008=_0x42005b(0x8),_0x35a5f9=_0x42005b(0xa),_0x42e273=_0x42005b(0xb),_0x5f3370=Object,_0x8f384d=_0x2a5008(''['split']);_0x5cc57d[_0x2310e6(0x5e9)]=_0x35a5f9(function(){const _0x19e691=_0x2310e6;return!_0x5f3370('z')[_0x19e691(0x561)](0x0);})?function(_0x187d15){const _0x59fb59=_0x2310e6;return _0x42e273(_0x187d15)==_0x59fb59(0x7ef)?_0x8f384d(_0x187d15,''):_0x5f3370(_0x187d15);}:_0x5f3370;},(_0x46b938,_0x5b394b,_0x1a5793)=>{const _0x2ab5c2=a0_0x160d;var _0x48aafb=_0x1a5793(0x9),_0x43405b=Function[_0x2ab5c2(0x821)],_0x136b3b=_0x43405b[_0x2ab5c2(0x569)],_0x101be8=_0x48aafb&&_0x43405b[_0x2ab5c2(0x5e8)][_0x2ab5c2(0x5e8)](_0x136b3b,_0x136b3b);_0x46b938[_0x2ab5c2(0x5e9)]=_0x48aafb?_0x101be8:function(_0x231d7c){return function(){const _0xf8bff0=a0_0x160d;return _0x136b3b[_0xf8bff0(0x2d2)](_0x231d7c,arguments);};};},(_0x2f5650,_0x2863ec,_0x1b6d1b)=>{const _0x4b59ec=a0_0x160d;var _0x3f0017=_0x1b6d1b(0xa);_0x2f5650[_0x4b59ec(0x5e9)]=!_0x3f0017(function(){const _0x1b0053=_0x4b59ec;var _0x55b209=function(){}[_0x1b0053(0x5e8)]();return typeof _0x55b209!=_0x1b0053(0x4ec)||_0x55b209['hasOwnProperty'](_0x1b0053(0x821));});},_0x569754=>{const _0x376098=a0_0x160d;_0x569754[_0x376098(0x5e9)]=function(_0x2aa876){try{return!!_0x2aa876();}catch(_0x14b483){return!![];}};},(_0x548610,_0x3cde45,_0x5961df)=>{const _0x5ed4cc=a0_0x160d;var _0x16f882=_0x5961df(0x8),_0x366224=_0x16f882({}[_0x5ed4cc(0x83f)]),_0x2b0b5b=_0x16f882(''[_0x5ed4cc(0x80c)]);_0x548610[_0x5ed4cc(0x5e9)]=function(_0x340ac0){return _0x2b0b5b(_0x366224(_0x340ac0),0x8,-0x1);};},(_0x53a666,_0x6aeafb,_0x313414)=>{var _0x1bdf85=_0x313414(0xd),_0x542bbb=TypeError;_0x53a666['exports']=function(_0x2138af){const _0xd7873c=a0_0x160d;if(_0x1bdf85(_0x2138af))throw _0x542bbb(_0xd7873c(0x867)+_0x2138af);return _0x2138af;};},_0x54352e=>{const _0xf7cdc3=a0_0x160d;_0x54352e[_0xf7cdc3(0x5e9)]=function(_0x31dd6f){return _0x31dd6f===null||_0x31dd6f===undefined;};},(_0x38cd16,_0x5abced,_0x26813e)=>{const _0x11bb7a=a0_0x160d;var _0x43c1cc=_0x26813e(0xf),_0x532f36=_0x26813e(0x1c),_0xef5900=_0x26813e(0x24)['f'],_0x488eab=_0x43c1cc(_0x11bb7a(0x29d)),_0x38738f=Array[_0x11bb7a(0x821)];_0x38738f[_0x488eab]==undefined&&_0xef5900(_0x38738f,_0x488eab,{'configurable':!![],'value':_0x532f36(null)}),_0x38cd16['exports']=function(_0x246583){_0x38738f[_0x488eab][_0x246583]=!![];};},(_0x48fff5,_0x374068,_0x35f88f)=>{const _0x35aa9a=a0_0x160d;var _0x4acafb=_0x35f88f(0x10),_0x25d787=_0x35f88f(0x11),_0xd8470e=_0x35f88f(0x15),_0x4f1903=_0x35f88f(0x17),_0x521e89=_0x35f88f(0x18),_0x587024=_0x35f88f(0x1b),_0x574f92=_0x4acafb['Symbol'],_0x2d300e=_0x25d787(_0x35aa9a(0x555)),_0xd8e175=_0x587024?_0x574f92[_0x35aa9a(0x35f)]||_0x574f92:_0x574f92&&_0x574f92['withoutSetter']||_0x4f1903;_0x48fff5['exports']=function(_0x4f9352){const _0x1a7786=_0x35aa9a;return!_0xd8470e(_0x2d300e,_0x4f9352)&&(_0x2d300e[_0x4f9352]=_0x521e89&&_0xd8470e(_0x574f92,_0x4f9352)?_0x574f92[_0x4f9352]:_0xd8e175(_0x1a7786(0x1e9)+_0x4f9352)),_0x2d300e[_0x4f9352];};},function(_0x4f99fd){const _0x3fd0aa=a0_0x160d;var _0x3a8cbd=function(_0x2899b4){const _0x3e145b=a0_0x160d;return _0x2899b4&&_0x2899b4[_0x3e145b(0x5a5)]==Math&&_0x2899b4;};_0x4f99fd[_0x3fd0aa(0x5e9)]=_0x3a8cbd(typeof globalThis==_0x3fd0aa(0x97b)&&globalThis)||_0x3a8cbd(typeof window==_0x3fd0aa(0x97b)&&window)||_0x3a8cbd(typeof self=='object'&&self)||_0x3a8cbd(typeof global=='object'&&global)||(function(){return this;}())||this||Function('return\x20this')();},(_0x5d0a26,_0x26fde9,_0x36f422)=>{const _0x57eeff=a0_0x160d;var _0x3b188d=_0x36f422(0x12),_0x51eabd=_0x36f422(0x13);(_0x5d0a26['exports']=function(_0x18f4d6,_0x469f9a){return _0x51eabd[_0x18f4d6]||(_0x51eabd[_0x18f4d6]=_0x469f9a!==undefined?_0x469f9a:{});})('versions',[])[_0x57eeff(0x7d6)]({'version':_0x57eeff(0x4d2),'mode':_0x3b188d?_0x57eeff(0x526):_0x57eeff(0x38e),'copyright':_0x57eeff(0x7a9),'license':_0x57eeff(0x588),'source':_0x57eeff(0x523)});},_0x80589e=>{const _0x3179c6=a0_0x160d;_0x80589e[_0x3179c6(0x5e9)]=![];},(_0x436df8,_0x4e9149,_0x5c7ca0)=>{const _0x989f5=a0_0x160d;var _0x74dbba=_0x5c7ca0(0x10),_0x1debe1=_0x5c7ca0(0x14),_0x24dcad='__core-js_shared__',_0x455923=_0x74dbba[_0x24dcad]||_0x1debe1(_0x24dcad,{});_0x436df8[_0x989f5(0x5e9)]=_0x455923;},(_0x1f00b0,_0x2426d3,_0x30f0a6)=>{const _0x31caec=a0_0x160d;var _0x5787e3=_0x30f0a6(0x10),_0x39976d=Object[_0x31caec(0x430)];_0x1f00b0[_0x31caec(0x5e9)]=function(_0x14f267,_0x5e0d4f){try{_0x39976d(_0x5787e3,_0x14f267,{'value':_0x5e0d4f,'configurable':!![],'writable':!![]});}catch(_0x340ec9){_0x5787e3[_0x14f267]=_0x5e0d4f;}return _0x5e0d4f;};},(_0x5ae2c3,_0x37e345,_0x7e0d8e)=>{const _0xb5b7ac=a0_0x160d;var _0x16fd73=_0x7e0d8e(0x8),_0x3ce2a7=_0x7e0d8e(0x16),_0x6c75a4=_0x16fd73({}[_0xb5b7ac(0x801)]);_0x5ae2c3[_0xb5b7ac(0x5e9)]=Object[_0xb5b7ac(0x49a)]||function _0x4a088a(_0x23208e,_0x26b3a1){return _0x6c75a4(_0x3ce2a7(_0x23208e),_0x26b3a1);};},(_0x265778,_0x1fcd0c,_0x2fbd80)=>{const _0x44f914=a0_0x160d;var _0x2fc93c=_0x2fbd80(0xc),_0x456c07=Object;_0x265778[_0x44f914(0x5e9)]=function(_0xa4cef8){return _0x456c07(_0x2fc93c(_0xa4cef8));};},(_0xd59152,_0x163d2e,_0x510e09)=>{const _0x2122c0=a0_0x160d;var _0x1c81c0=_0x510e09(0x8),_0x5640ca=0x0,_0x39ae4d=Math[_0x2122c0(0x37a)](),_0x40528e=_0x1c81c0(0x1[_0x2122c0(0x83f)]);_0xd59152[_0x2122c0(0x5e9)]=function(_0x1e549b){const _0x27bad9=_0x2122c0;return _0x27bad9(0x797)+(_0x1e549b===undefined?'':_0x1e549b)+')_'+_0x40528e(++_0x5640ca+_0x39ae4d,0x24);};},(_0xc0789f,_0xb7f67d,_0x35d72c)=>{const _0x336855=a0_0x160d;var _0x4a44cf=_0x35d72c(0x19),_0x5670c3=_0x35d72c(0xa),_0x5292c2=_0x35d72c(0x10),_0x211754=_0x5292c2['String'];_0xc0789f['exports']=!!Object[_0x336855(0x541)]&&!_0x5670c3(function(){const _0x4a45c5=_0x336855;var _0x271072=Symbol();return!_0x211754(_0x271072)||!(Object(_0x271072)instanceof Symbol)||!Symbol[_0x4a45c5(0x3cd)]&&_0x4a44cf&&_0x4a44cf<0x29;});},(_0x21cc01,_0x2735bd,_0x4c5ba3)=>{const _0xe145ec=a0_0x160d;var _0x222510=_0x4c5ba3(0x10),_0x588bf6=_0x4c5ba3(0x1a),_0x42ea51=_0x222510['process'],_0x2a147c=_0x222510[_0xe145ec(0x846)],_0x48107d=_0x42ea51&&_0x42ea51[_0xe145ec(0x83a)]||_0x2a147c&&_0x2a147c[_0xe145ec(0x5b4)],_0x1d5c17=_0x48107d&&_0x48107d['v8'],_0x297ebb,_0x3feba3;_0x1d5c17&&(_0x297ebb=_0x1d5c17['split']('.'),_0x3feba3=_0x297ebb[0x0]>0x0&&_0x297ebb[0x0]<0x4?0x1:+(_0x297ebb[0x0]+_0x297ebb[0x1]));if(!_0x3feba3&&_0x588bf6){_0x297ebb=_0x588bf6[_0xe145ec(0x1c6)](/Edge\/(\d+)/);if(!_0x297ebb||_0x297ebb[0x1]>=0x4a){_0x297ebb=_0x588bf6[_0xe145ec(0x1c6)](/Chrome\/(\d+)/);if(_0x297ebb)_0x3feba3=+_0x297ebb[0x1];}}_0x21cc01['exports']=_0x3feba3;},_0x2cf479=>{const _0x268cc5=a0_0x160d;_0x2cf479[_0x268cc5(0x5e9)]=typeof navigator!=_0x268cc5(0x32c)&&String(navigator['userAgent'])||'';},(_0x2149fb,_0x1a8559,_0x16d189)=>{const _0x1c7280=a0_0x160d;var _0x1ebcda=_0x16d189(0x18);_0x2149fb['exports']=_0x1ebcda&&!Symbol[_0x1c7280(0x3cd)]&&typeof Symbol[_0x1c7280(0x933)]==_0x1c7280(0x805);},(_0x4ae623,_0x9ff22c,_0x4418d2)=>{const _0x26ae93=a0_0x160d;var _0x51d998=_0x4418d2(0x1d),_0x5949e6=_0x4418d2(0x21),_0x553936=_0x4418d2(0x3a),_0xc633a4=_0x4418d2(0x39),_0xae400=_0x4418d2(0x3b),_0x2844d6=_0x4418d2(0x26),_0x309893=_0x4418d2(0x3c),_0x3bb385='>',_0x4d49e1='<',_0x8ebe54=_0x26ae93(0x821),_0x1b801e=_0x26ae93(0xf2),_0x48d444=_0x309893(_0x26ae93(0x6ff)),_0x5a267c=function(){},_0x5128e6=function(_0x531115){return _0x4d49e1+_0x1b801e+_0x3bb385+_0x531115+_0x4d49e1+'/'+_0x1b801e+_0x3bb385;},_0x103e80=function(_0x5c9314){const _0x5b55fc=_0x26ae93;_0x5c9314[_0x5b55fc(0x629)](_0x5128e6('')),_0x5c9314[_0x5b55fc(0x70e)]();var _0xfd76d6=_0x5c9314[_0x5b55fc(0x232)][_0x5b55fc(0x20d)];return _0x5c9314=null,_0xfd76d6;},_0x9c24a9=function(){const _0x27008e=_0x26ae93;var _0x28d046=_0x2844d6(_0x27008e(0x9d7)),_0x568af8=_0x27008e(0x7ff)+_0x1b801e+':',_0x2e3687;return _0x28d046[_0x27008e(0x498)][_0x27008e(0x619)]=_0x27008e(0x122),_0xae400[_0x27008e(0x387)](_0x28d046),_0x28d046[_0x27008e(0x5ef)]=String(_0x568af8),_0x2e3687=_0x28d046[_0x27008e(0x4ab)][_0x27008e(0x2b1)],_0x2e3687['open'](),_0x2e3687[_0x27008e(0x629)](_0x5128e6(_0x27008e(0x134))),_0x2e3687[_0x27008e(0x70e)](),_0x2e3687['F'];},_0x4b0a6a,_0x319d62=function(){const _0x4e1a84=_0x26ae93;try{_0x4b0a6a=new ActiveXObject(_0x4e1a84(0x689));}catch(_0x42c229){}_0x319d62=typeof document!='undefined'?document[_0x4e1a84(0x971)]&&_0x4b0a6a?_0x103e80(_0x4b0a6a):_0x9c24a9():_0x103e80(_0x4b0a6a);var _0x56faae=_0x553936[_0x4e1a84(0x557)];while(_0x56faae--)delete _0x319d62[_0x8ebe54][_0x553936[_0x56faae]];return _0x319d62();};_0xc633a4[_0x48d444]=!![],_0x4ae623[_0x26ae93(0x5e9)]=Object[_0x26ae93(0x77c)]||function _0x849110(_0x56801b,_0x2539a5){var _0x5c75d3;if(_0x56801b!==null)_0x5a267c[_0x8ebe54]=_0x51d998(_0x56801b),_0x5c75d3=new _0x5a267c(),_0x5a267c[_0x8ebe54]=null,_0x5c75d3[_0x48d444]=_0x56801b;else _0x5c75d3=_0x319d62();return _0x2539a5===undefined?_0x5c75d3:_0x5949e6['f'](_0x5c75d3,_0x2539a5);};},(_0x4cacea,_0x5110fd,_0x4d2f31)=>{var _0x174fe4=_0x4d2f31(0x1e),_0x30ab89=String,_0x3a9c91=TypeError;_0x4cacea['exports']=function(_0x21c12b){const _0x20c27f=a0_0x160d;if(_0x174fe4(_0x21c12b))return _0x21c12b;throw _0x3a9c91(_0x30ab89(_0x21c12b)+_0x20c27f(0x355));};},(_0x5cd46a,_0x1d8ad2,_0x19a0a2)=>{const _0x1e554a=a0_0x160d;var _0x2b629f=_0x19a0a2(0x1f),_0x2a8b17=_0x19a0a2(0x20),_0x4bf186=_0x2a8b17[_0x1e554a(0x586)];_0x5cd46a['exports']=_0x2a8b17['IS_HTMLDDA']?function(_0x2039f6){const _0x28b929=_0x1e554a;return typeof _0x2039f6==_0x28b929(0x97b)?_0x2039f6!==null:_0x2b629f(_0x2039f6)||_0x2039f6===_0x4bf186;}:function(_0x3380aa){const _0x2d3d4f=_0x1e554a;return typeof _0x3380aa==_0x2d3d4f(0x97b)?_0x3380aa!==null:_0x2b629f(_0x3380aa);};},(_0x38895f,_0x4955fd,_0x7d5564)=>{const _0x293a08=a0_0x160d;var _0x5aafed=_0x7d5564(0x20),_0x8e78ec=_0x5aafed[_0x293a08(0x586)];_0x38895f[_0x293a08(0x5e9)]=_0x5aafed[_0x293a08(0x128)]?function(_0x517492){const _0x261100=_0x293a08;return typeof _0x517492==_0x261100(0x4ec)||_0x517492===_0x8e78ec;}:function(_0xb1d13a){const _0x3873a5=_0x293a08;return typeof _0xb1d13a==_0x3873a5(0x4ec);};},_0x11b465=>{const _0x21dc62=a0_0x160d;var _0x48f407=typeof document==_0x21dc62(0x97b)&&document[_0x21dc62(0x586)],_0xf0f6cb=typeof _0x48f407=='undefined'&&_0x48f407!==undefined;_0x11b465[_0x21dc62(0x5e9)]={'all':_0x48f407,'IS_HTMLDDA':_0xf0f6cb};},(_0x3c223b,_0x2db167,_0x242322)=>{const _0x22d59e=a0_0x160d;var _0xcb0701=_0x242322(0x22),_0x25c959=_0x242322(0x23),_0x23d384=_0x242322(0x24),_0x2958c5=_0x242322(0x1d),_0x5c290b=_0x242322(0x6),_0x3f07ac=_0x242322(0x31);_0x2db167['f']=_0xcb0701&&!_0x25c959?Object[_0x22d59e(0x9d2)]:function _0x127606(_0x6e429,_0x1c09b2){_0x2958c5(_0x6e429);var _0x58f651=_0x5c290b(_0x1c09b2),_0x4104c6=_0x3f07ac(_0x1c09b2),_0x187f23=_0x4104c6['length'],_0x155fdf=0x0,_0x730fa5;while(_0x187f23>_0x155fdf)_0x23d384['f'](_0x6e429,_0x730fa5=_0x4104c6[_0x155fdf++],_0x58f651[_0x730fa5]);return _0x6e429;};},(_0x291956,_0x353f06,_0x2a7a7d)=>{const _0x57384b=a0_0x160d;var _0x37d92c=_0x2a7a7d(0xa);_0x291956[_0x57384b(0x5e9)]=!_0x37d92c(function(){const _0x133753=_0x57384b;return Object[_0x133753(0x430)]({},0x1,{'get':function(){return 0x7;}})[0x1]!=0x7;});},(_0x3b8110,_0x2da4f7,_0x371fb7)=>{const _0x434834=a0_0x160d;var _0x391c6a=_0x371fb7(0x22),_0x248053=_0x371fb7(0xa);_0x3b8110[_0x434834(0x5e9)]=_0x391c6a&&_0x248053(function(){const _0x64eda5=_0x434834;return Object[_0x64eda5(0x430)](function(){},_0x64eda5(0x821),{'value':0x2a,'writable':![]})[_0x64eda5(0x821)]!=0x2a;});},(_0x431100,_0x5eac58,_0xa7ed0e)=>{const _0x3e49df=a0_0x160d;var _0x152766=_0xa7ed0e(0x22),_0x17ba74=_0xa7ed0e(0x25),_0x2638a2=_0xa7ed0e(0x23),_0xad2669=_0xa7ed0e(0x1d),_0x46d478=_0xa7ed0e(0x27),_0x5e944a=TypeError,_0x25dd08=Object['defineProperty'],_0x1d2392=Object['getOwnPropertyDescriptor'],_0x5753b9=_0x3e49df(0x255),_0x334b87=_0x3e49df(0x8ab),_0x9281d7=_0x3e49df(0x105);_0x5eac58['f']=_0x152766?_0x2638a2?function _0x40d2a2(_0xca22c,_0x4a119c,_0x3c8263){const _0x43ffe5=_0x3e49df;_0xad2669(_0xca22c),_0x4a119c=_0x46d478(_0x4a119c),_0xad2669(_0x3c8263);if(typeof _0xca22c===_0x43ffe5(0x4ec)&&_0x4a119c===_0x43ffe5(0x821)&&_0x43ffe5(0x2b8)in _0x3c8263&&_0x9281d7 in _0x3c8263&&!_0x3c8263[_0x9281d7]){var _0x24fece=_0x1d2392(_0xca22c,_0x4a119c);_0x24fece&&_0x24fece[_0x9281d7]&&(_0xca22c[_0x4a119c]=_0x3c8263['value'],_0x3c8263={'configurable':_0x334b87 in _0x3c8263?_0x3c8263[_0x334b87]:_0x24fece[_0x334b87],'enumerable':_0x5753b9 in _0x3c8263?_0x3c8263[_0x5753b9]:_0x24fece[_0x5753b9],'writable':![]});}return _0x25dd08(_0xca22c,_0x4a119c,_0x3c8263);}:_0x25dd08:function _0x56f561(_0x45e7b7,_0xe56cbd,_0x475779){const _0x54d3bb=_0x3e49df;_0xad2669(_0x45e7b7),_0xe56cbd=_0x46d478(_0xe56cbd),_0xad2669(_0x475779);if(_0x17ba74)try{return _0x25dd08(_0x45e7b7,_0xe56cbd,_0x475779);}catch(_0x12712b){}if(_0x54d3bb(0x8c4)in _0x475779||'set'in _0x475779)throw _0x5e944a(_0x54d3bb(0x924));if(_0x54d3bb(0x2b8)in _0x475779)_0x45e7b7[_0xe56cbd]=_0x475779['value'];return _0x45e7b7;};},(_0x4d1e7b,_0x4b8ec3,_0x3b5ea1)=>{const _0x106bbe=a0_0x160d;var _0x4bc86b=_0x3b5ea1(0x22),_0xa9de74=_0x3b5ea1(0xa),_0x542ac6=_0x3b5ea1(0x26);_0x4d1e7b[_0x106bbe(0x5e9)]=!_0x4bc86b&&!_0xa9de74(function(){const _0x1d8277=_0x106bbe;return Object[_0x1d8277(0x430)](_0x542ac6('div'),'a',{'get':function(){return 0x7;}})['a']!=0x7;});},(_0x7cc702,_0xfd986b,_0x42c6d3)=>{const _0x3c2a08=a0_0x160d;var _0xaff21=_0x42c6d3(0x10),_0x29d32e=_0x42c6d3(0x1e),_0x5b413f=_0xaff21[_0x3c2a08(0x2b1)],_0x1a8971=_0x29d32e(_0x5b413f)&&_0x29d32e(_0x5b413f[_0x3c2a08(0x400)]);_0x7cc702[_0x3c2a08(0x5e9)]=function(_0x35010d){return _0x1a8971?_0x5b413f['createElement'](_0x35010d):{};};},(_0x5b7e6e,_0x101305,_0x211840)=>{const _0x400aad=a0_0x160d;var _0x422c4c=_0x211840(0x28),_0x5ccfa2=_0x211840(0x2a);_0x5b7e6e[_0x400aad(0x5e9)]=function(_0x287c86){var _0x4593d2=_0x422c4c(_0x287c86,'string');return _0x5ccfa2(_0x4593d2)?_0x4593d2:_0x4593d2+'';};},(_0xdca257,_0x4dfdcc,_0x28ec72)=>{const _0x40c240=a0_0x160d;var _0x4a02f5=_0x28ec72(0x29),_0x39fbdb=_0x28ec72(0x1e),_0xf18f28=_0x28ec72(0x2a),_0x2c5ea4=_0x28ec72(0x2d),_0x4b6d49=_0x28ec72(0x30),_0x474c30=_0x28ec72(0xf),_0x10022e=TypeError,_0x7166eb=_0x474c30(_0x40c240(0x324));_0xdca257[_0x40c240(0x5e9)]=function(_0x11ef18,_0x2f51d9){const _0x5ee0d8=_0x40c240;if(!_0x39fbdb(_0x11ef18)||_0xf18f28(_0x11ef18))return _0x11ef18;var _0x194fe9=_0x2c5ea4(_0x11ef18,_0x7166eb),_0x492fe3;if(_0x194fe9){if(_0x2f51d9===undefined)_0x2f51d9=_0x5ee0d8(0x669);_0x492fe3=_0x4a02f5(_0x194fe9,_0x11ef18,_0x2f51d9);if(!_0x39fbdb(_0x492fe3)||_0xf18f28(_0x492fe3))return _0x492fe3;throw _0x10022e('Can\x27t\x20convert\x20object\x20to\x20primitive\x20value');}if(_0x2f51d9===undefined)_0x2f51d9='number';return _0x4b6d49(_0x11ef18,_0x2f51d9);};},(_0x527747,_0x6c12d2,_0xef6d54)=>{const _0x529a96=a0_0x160d;var _0x27352a=_0xef6d54(0x9),_0x4e7af0=Function[_0x529a96(0x821)]['call'];_0x527747['exports']=_0x27352a?_0x4e7af0[_0x529a96(0x5e8)](_0x4e7af0):function(){const _0x703692=_0x529a96;return _0x4e7af0[_0x703692(0x2d2)](_0x4e7af0,arguments);};},(_0xe2eb21,_0x4e72a4,_0xe23164)=>{const _0x161956=a0_0x160d;var _0x54716c=_0xe23164(0x2b),_0x4b8687=_0xe23164(0x1f),_0x4d09f8=_0xe23164(0x2c),_0x312db8=_0xe23164(0x1b),_0x3ed6fe=Object;_0xe2eb21[_0x161956(0x5e9)]=_0x312db8?function(_0x531578){return typeof _0x531578=='symbol';}:function(_0x2dd8b9){const _0x4af3f4=_0x161956;var _0x21d5ba=_0x54716c('Symbol');return _0x4b8687(_0x21d5ba)&&_0x4d09f8(_0x21d5ba[_0x4af3f4(0x821)],_0x3ed6fe(_0x2dd8b9));};},(_0x2ae3b6,_0x447cc5,_0x37ae04)=>{const _0x5768f0=a0_0x160d;var _0x51ef53=_0x37ae04(0x10),_0x12a1f4=_0x37ae04(0x1f),_0x1953d4=function(_0x1da4b7){return _0x12a1f4(_0x1da4b7)?_0x1da4b7:undefined;};_0x2ae3b6[_0x5768f0(0x5e9)]=function(_0x3c600c,_0x14fea6){return arguments['length']<0x2?_0x1953d4(_0x51ef53[_0x3c600c]):_0x51ef53[_0x3c600c]&&_0x51ef53[_0x3c600c][_0x14fea6];};},(_0x2ef1a1,_0x12c216,_0x5999a3)=>{const _0x23f523=a0_0x160d;var _0x369ba3=_0x5999a3(0x8);_0x2ef1a1[_0x23f523(0x5e9)]=_0x369ba3({}[_0x23f523(0x60c)]);},(_0x905664,_0xf1ea9e,_0x3a4903)=>{const _0x2d8e90=a0_0x160d;var _0x12b2b9=_0x3a4903(0x2e),_0xb5b1c5=_0x3a4903(0xd);_0x905664[_0x2d8e90(0x5e9)]=function(_0x1a20bc,_0x2e373a){var _0x2347b9=_0x1a20bc[_0x2e373a];return _0xb5b1c5(_0x2347b9)?undefined:_0x12b2b9(_0x2347b9);};},(_0x46dea1,_0x5e0ead,_0x1c44c2)=>{const _0x25a1da=a0_0x160d;var _0x858319=_0x1c44c2(0x1f),_0x1666e3=_0x1c44c2(0x2f),_0x404e75=TypeError;_0x46dea1[_0x25a1da(0x5e9)]=function(_0x4e4ccb){if(_0x858319(_0x4e4ccb))return _0x4e4ccb;throw _0x404e75(_0x1666e3(_0x4e4ccb)+'\x20is\x20not\x20a\x20function');};},_0xffa7e=>{const _0x521859=a0_0x160d;var _0x47c569=String;_0xffa7e[_0x521859(0x5e9)]=function(_0x4695cc){const _0x7a7cb3=_0x521859;try{return _0x47c569(_0x4695cc);}catch(_0x162cb0){return _0x7a7cb3(0x20d);}};},(_0x2574fd,_0x4d5fc2,_0x26bd5d)=>{const _0x28aeec=a0_0x160d;var _0x4e2746=_0x26bd5d(0x29),_0x5383da=_0x26bd5d(0x1f),_0x583263=_0x26bd5d(0x1e),_0x21ac21=TypeError;_0x2574fd[_0x28aeec(0x5e9)]=function(_0x21d5b4,_0x5ecf2a){const _0x1d1d29=_0x28aeec;var _0x3fd3b8,_0x2facfe;if(_0x5ecf2a===_0x1d1d29(0x8cd)&&_0x5383da(_0x3fd3b8=_0x21d5b4[_0x1d1d29(0x83f)])&&!_0x583263(_0x2facfe=_0x4e2746(_0x3fd3b8,_0x21d5b4)))return _0x2facfe;if(_0x5383da(_0x3fd3b8=_0x21d5b4[_0x1d1d29(0x7c3)])&&!_0x583263(_0x2facfe=_0x4e2746(_0x3fd3b8,_0x21d5b4)))return _0x2facfe;if(_0x5ecf2a!=='string'&&_0x5383da(_0x3fd3b8=_0x21d5b4[_0x1d1d29(0x83f)])&&!_0x583263(_0x2facfe=_0x4e2746(_0x3fd3b8,_0x21d5b4)))return _0x2facfe;throw _0x21ac21(_0x1d1d29(0x378));};},(_0x14265a,_0x3c83ce,_0x710164)=>{const _0x4e6c63=a0_0x160d;var _0x578690=_0x710164(0x32),_0x157854=_0x710164(0x3a);_0x14265a['exports']=Object[_0x4e6c63(0x30e)]||function _0x1dbe66(_0x23d45b){return _0x578690(_0x23d45b,_0x157854);};},(_0x13d70f,_0x2c746e,_0x534568)=>{const _0x41ea83=a0_0x160d;var _0x4b79e3=_0x534568(0x8),_0x4aac96=_0x534568(0x15),_0x516811=_0x534568(0x6),_0x24c714=_0x534568(0x33)[_0x41ea83(0x82c)],_0x229006=_0x534568(0x39),_0x1db967=_0x4b79e3([][_0x41ea83(0x7d6)]);_0x13d70f['exports']=function(_0x5c5984,_0x1d2ffb){const _0x5609ef=_0x41ea83;var _0x203290=_0x516811(_0x5c5984),_0x5bfc13=0x0,_0x56696c=[],_0x40254f;for(_0x40254f in _0x203290)!_0x4aac96(_0x229006,_0x40254f)&&_0x4aac96(_0x203290,_0x40254f)&&_0x1db967(_0x56696c,_0x40254f);while(_0x1d2ffb[_0x5609ef(0x557)]>_0x5bfc13)_0x4aac96(_0x203290,_0x40254f=_0x1d2ffb[_0x5bfc13++])&&(~_0x24c714(_0x56696c,_0x40254f)||_0x1db967(_0x56696c,_0x40254f));return _0x56696c;};},(_0x1c5b8a,_0x1daa58,_0x3fa333)=>{const _0x14ad9e=a0_0x160d;var _0x325f60=_0x3fa333(0x6),_0x5e3d8b=_0x3fa333(0x34),_0x5d8b5d=_0x3fa333(0x37),_0x108264=function(_0x1d2def){return function(_0xe33b47,_0x707c1,_0x3d5330){var _0x4997e4=_0x325f60(_0xe33b47),_0x5ec5fd=_0x5d8b5d(_0x4997e4),_0x4449c2=_0x5e3d8b(_0x3d5330,_0x5ec5fd),_0x3b27d0;if(_0x1d2def&&_0x707c1!=_0x707c1)while(_0x5ec5fd>_0x4449c2){_0x3b27d0=_0x4997e4[_0x4449c2++];if(_0x3b27d0!=_0x3b27d0)return!![];}else for(;_0x5ec5fd>_0x4449c2;_0x4449c2++){if((_0x1d2def||_0x4449c2 in _0x4997e4)&&_0x4997e4[_0x4449c2]===_0x707c1)return _0x1d2def||_0x4449c2||0x0;}return!_0x1d2def&&-0x1;};};_0x1c5b8a[_0x14ad9e(0x5e9)]={'includes':_0x108264(!![]),'indexOf':_0x108264(![])};},(_0x566990,_0xf03eb9,_0x1b7261)=>{const _0x4f44fc=a0_0x160d;var _0x3ac879=_0x1b7261(0x35),_0x2fc5ba=Math[_0x4f44fc(0x78d)],_0x1b8ff2=Math[_0x4f44fc(0x81b)];_0x566990['exports']=function(_0x503607,_0x8ad84d){var _0x5c27d7=_0x3ac879(_0x503607);return _0x5c27d7<0x0?_0x2fc5ba(_0x5c27d7+_0x8ad84d,0x0):_0x1b8ff2(_0x5c27d7,_0x8ad84d);};},(_0x564a83,_0xe7151b,_0xf04df0)=>{const _0x4350a7=a0_0x160d;var _0x2e1fe4=_0xf04df0(0x36);_0x564a83[_0x4350a7(0x5e9)]=function(_0xe5d4c){var _0xab4898=+_0xe5d4c;return _0xab4898!==_0xab4898||_0xab4898===0x0?0x0:_0x2e1fe4(_0xab4898);};},_0x2e363b=>{const _0x17398d=a0_0x160d;var _0x431fb0=Math[_0x17398d(0x213)],_0xa4cbbf=Math['floor'];_0x2e363b[_0x17398d(0x5e9)]=Math[_0x17398d(0x3a6)]||function _0x26686c(_0x1488eb){var _0x5519dc=+_0x1488eb;return(_0x5519dc>0x0?_0xa4cbbf:_0x431fb0)(_0x5519dc);};},(_0x472159,_0x391af9,_0x5d9efd)=>{const _0xb8748=a0_0x160d;var _0x10633e=_0x5d9efd(0x38);_0x472159[_0xb8748(0x5e9)]=function(_0x992df){const _0x971944=_0xb8748;return _0x10633e(_0x992df[_0x971944(0x557)]);};},(_0x56eb52,_0x21cf7a,_0x5be3a5)=>{const _0x30fb69=a0_0x160d;var _0x441aed=_0x5be3a5(0x35),_0xe6a0b7=Math['min'];_0x56eb52[_0x30fb69(0x5e9)]=function(_0x57d67c){return _0x57d67c>0x0?_0xe6a0b7(_0x441aed(_0x57d67c),0x1fffffffffffff):0x0;};},_0x337fbe=>{_0x337fbe['exports']={};},_0x569e57=>{const _0x32321e=a0_0x160d;_0x569e57[_0x32321e(0x5e9)]=[_0x32321e(0x6ef),'hasOwnProperty',_0x32321e(0x60c),_0x32321e(0x561),_0x32321e(0x32f),_0x32321e(0x83f),_0x32321e(0x7c3)];},(_0x57537e,_0x2b724e,_0x1d4a41)=>{const _0xfe5e03=a0_0x160d;var _0xd415fc=_0x1d4a41(0x2b);_0x57537e[_0xfe5e03(0x5e9)]=_0xd415fc(_0xfe5e03(0x2b1),_0xfe5e03(0x176));},(_0x298504,_0x4d64a8,_0xb6aaa0)=>{const _0x997b05=a0_0x160d;var _0x1651e0=_0xb6aaa0(0x11),_0x3ceb42=_0xb6aaa0(0x17),_0x33aec6=_0x1651e0('keys');_0x298504[_0x997b05(0x5e9)]=function(_0x3124c5){return _0x33aec6[_0x3124c5]||(_0x33aec6[_0x3124c5]=_0x3ceb42(_0x3124c5));};},_0x39be83=>{_0x39be83['exports']={};},(_0x2bcfb3,_0x3a6026,_0x4d83a9)=>{const _0x410ce6=a0_0x160d;var _0x57255e=_0x4d83a9(0x3f),_0x282da5=_0x4d83a9(0x10),_0x5ef03d=_0x4d83a9(0x1e),_0x351f99=_0x4d83a9(0x40),_0x4c4499=_0x4d83a9(0x15),_0x171539=_0x4d83a9(0x13),_0xed426b=_0x4d83a9(0x3c),_0x191621=_0x4d83a9(0x39),_0x108074=_0x410ce6(0x5b9),_0x1b875c=_0x282da5[_0x410ce6(0x7e9)],_0x300a46=_0x282da5[_0x410ce6(0x1d5)],_0x57f650,_0x19a53d,_0x2c0f80,_0x272528=function(_0xd9e3f){return _0x2c0f80(_0xd9e3f)?_0x19a53d(_0xd9e3f):_0x57f650(_0xd9e3f,{});},_0x33c95f=function(_0x33e72c){return function(_0x1fc867){const _0x496e9b=a0_0x160d;var _0x18fcf2;if(!_0x5ef03d(_0x1fc867)||(_0x18fcf2=_0x19a53d(_0x1fc867))[_0x496e9b(0x9fd)]!==_0x33e72c)throw _0x1b875c(_0x496e9b(0x6f1)+_0x33e72c+'\x20required');return _0x18fcf2;};};if(_0x57255e||_0x171539[_0x410ce6(0x25a)]){var _0x1f10a5=_0x171539[_0x410ce6(0x25a)]||(_0x171539[_0x410ce6(0x25a)]=new _0x300a46());_0x1f10a5['get']=_0x1f10a5[_0x410ce6(0x8c4)],_0x1f10a5[_0x410ce6(0x373)]=_0x1f10a5['has'],_0x1f10a5[_0x410ce6(0x98e)]=_0x1f10a5[_0x410ce6(0x98e)],_0x57f650=function(_0xa6e574,_0x5acbf0){const _0x4e22ca=_0x410ce6;if(_0x1f10a5[_0x4e22ca(0x373)](_0xa6e574))throw _0x1b875c(_0x108074);return _0x5acbf0[_0x4e22ca(0x6f7)]=_0xa6e574,_0x1f10a5[_0x4e22ca(0x98e)](_0xa6e574,_0x5acbf0),_0x5acbf0;},_0x19a53d=function(_0x5a3552){const _0x10cd28=_0x410ce6;return _0x1f10a5[_0x10cd28(0x8c4)](_0x5a3552)||{};},_0x2c0f80=function(_0x38cf16){const _0x5beaa0=_0x410ce6;return _0x1f10a5[_0x5beaa0(0x373)](_0x38cf16);};}else{var _0x352891=_0xed426b(_0x410ce6(0x25a));_0x191621[_0x352891]=!![],_0x57f650=function(_0x28a781,_0x135210){const _0x599b7f=_0x410ce6;if(_0x4c4499(_0x28a781,_0x352891))throw _0x1b875c(_0x108074);return _0x135210[_0x599b7f(0x6f7)]=_0x28a781,_0x351f99(_0x28a781,_0x352891,_0x135210),_0x135210;},_0x19a53d=function(_0x21ac03){return _0x4c4499(_0x21ac03,_0x352891)?_0x21ac03[_0x352891]:{};},_0x2c0f80=function(_0xeb5f1d){return _0x4c4499(_0xeb5f1d,_0x352891);};}_0x2bcfb3[_0x410ce6(0x5e9)]={'set':_0x57f650,'get':_0x19a53d,'has':_0x2c0f80,'enforce':_0x272528,'getterFor':_0x33c95f};},(_0x54a6f3,_0x5a52a3,_0xa2d743)=>{const _0xbcf906=a0_0x160d;var _0x3c5845=_0xa2d743(0x10),_0x10377e=_0xa2d743(0x1f),_0x5af803=_0x3c5845[_0xbcf906(0x1d5)];_0x54a6f3[_0xbcf906(0x5e9)]=_0x10377e(_0x5af803)&&/native code/[_0xbcf906(0x6e7)](String(_0x5af803));},(_0x5161ee,_0x33f1dc,_0x189ff2)=>{var _0x35504b=_0x189ff2(0x22),_0x19e4b8=_0x189ff2(0x24),_0xd5ec01=_0x189ff2(0x41);_0x5161ee['exports']=_0x35504b?function(_0x720a81,_0x58a2e2,_0x4ecfc1){return _0x19e4b8['f'](_0x720a81,_0x58a2e2,_0xd5ec01(0x1,_0x4ecfc1));}:function(_0x419b62,_0x495736,_0x2c4d3f){return _0x419b62[_0x495736]=_0x2c4d3f,_0x419b62;};},_0x338345=>{const _0x4d2cd3=a0_0x160d;_0x338345[_0x4d2cd3(0x5e9)]=function(_0x3c4b08,_0xae8cfb){return{'enumerable':!(_0x3c4b08&0x1),'configurable':!(_0x3c4b08&0x2),'writable':!(_0x3c4b08&0x4),'value':_0xae8cfb};};},(_0x325025,_0x41a717,_0x2384d1)=>{'use strict';const _0x570d50=a0_0x160d;var _0x2d9aa2=_0x2384d1(0x43),_0x41ad82=_0x2384d1(0x29),_0x4a0bc6=_0x2384d1(0x12),_0x3c9d5f=_0x2384d1(0x48),_0x1c559b=_0x2384d1(0x1f),_0x561b64=_0x2384d1(0x4f),_0xdbe4a3=_0x2384d1(0x51),_0x4ef56b=_0x2384d1(0x54),_0x244c1b=_0x2384d1(0x53),_0x325d2a=_0x2384d1(0x40),_0x129056=_0x2384d1(0x46),_0x2604d7=_0x2384d1(0xf),_0x5667ef=_0x2384d1(0x3d),_0x12e4cf=_0x2384d1(0x50),_0x4e3da9=_0x3c9d5f[_0x570d50(0x670)],_0x4c4dc4=_0x3c9d5f[_0x570d50(0x121)],_0x1afbd6=_0x12e4cf[_0x570d50(0x107)],_0x1f9e7a=_0x12e4cf['BUGGY_SAFARI_ITERATORS'],_0x50ce30=_0x2604d7('iterator'),_0x597e0c=_0x570d50(0x30e),_0x478e5e=_0x570d50(0x823),_0x34f939=_0x570d50(0x816),_0x12ce47=function(){return this;};_0x325025[_0x570d50(0x5e9)]=function(_0x492892,_0x1a3763,_0x4fb1a6,_0x1ff389,_0x5b8ba3,_0x287f5b,_0x1a871f){const _0x17c00e=_0x570d50;_0x561b64(_0x4fb1a6,_0x1a3763,_0x1ff389);var _0xa298e0=function(_0x20f954){if(_0x20f954===_0x5b8ba3&&_0xcc550d)return _0xcc550d;if(!_0x1f9e7a&&_0x20f954 in _0x2c77ea)return _0x2c77ea[_0x20f954];switch(_0x20f954){case _0x597e0c:return function _0x1eb8b5(){return new _0x4fb1a6(this,_0x20f954);};case _0x478e5e:return function _0x4fa696(){return new _0x4fb1a6(this,_0x20f954);};case _0x34f939:return function _0x455159(){return new _0x4fb1a6(this,_0x20f954);};}return function(){return new _0x4fb1a6(this);};},_0x431061=_0x1a3763+_0x17c00e(0x246),_0x1ffc4d=![],_0x2c77ea=_0x492892[_0x17c00e(0x821)],_0x181fb8=_0x2c77ea[_0x50ce30]||_0x2c77ea[_0x17c00e(0x40c)]||_0x5b8ba3&&_0x2c77ea[_0x5b8ba3],_0xcc550d=!_0x1f9e7a&&_0x181fb8||_0xa298e0(_0x5b8ba3),_0x7dbba9=_0x1a3763==_0x17c00e(0x323)?_0x2c77ea[_0x17c00e(0x816)]||_0x181fb8:_0x181fb8,_0x3a9378,_0x4939f1,_0x36de6c;if(_0x7dbba9){_0x3a9378=_0xdbe4a3(_0x7dbba9[_0x17c00e(0x569)](new _0x492892()));if(_0x3a9378!==Object[_0x17c00e(0x821)]&&_0x3a9378[_0x17c00e(0x5d4)]){if(!_0x4a0bc6&&_0xdbe4a3(_0x3a9378)!==_0x1afbd6){if(_0x4ef56b)_0x4ef56b(_0x3a9378,_0x1afbd6);else!_0x1c559b(_0x3a9378[_0x50ce30])&&_0x129056(_0x3a9378,_0x50ce30,_0x12ce47);}_0x244c1b(_0x3a9378,_0x431061,!![],!![]);if(_0x4a0bc6)_0x5667ef[_0x431061]=_0x12ce47;}}_0x4e3da9&&_0x5b8ba3==_0x478e5e&&_0x181fb8&&_0x181fb8[_0x17c00e(0x499)]!==_0x478e5e&&(!_0x4a0bc6&&_0x4c4dc4?_0x325d2a(_0x2c77ea,_0x17c00e(0x499),_0x478e5e):(_0x1ffc4d=!![],_0xcc550d=function _0x3dc778(){return _0x41ad82(_0x181fb8,this);}));if(_0x5b8ba3){_0x4939f1={'values':_0xa298e0(_0x478e5e),'keys':_0x287f5b?_0xcc550d:_0xa298e0(_0x597e0c),'entries':_0xa298e0(_0x34f939)};if(_0x1a871f)for(_0x36de6c in _0x4939f1){(_0x1f9e7a||_0x1ffc4d||!(_0x36de6c in _0x2c77ea))&&_0x129056(_0x2c77ea,_0x36de6c,_0x4939f1[_0x36de6c]);}else _0x2d9aa2({'target':_0x1a3763,'proto':!![],'forced':_0x1f9e7a||_0x1ffc4d},_0x4939f1);}return(!_0x4a0bc6||_0x1a871f)&&_0x2c77ea[_0x50ce30]!==_0xcc550d&&_0x129056(_0x2c77ea,_0x50ce30,_0xcc550d,{'name':_0x5b8ba3}),_0x5667ef[_0x1a3763]=_0xcc550d,_0x4939f1;};},(_0xe86383,_0x18f7c6,_0x10fae2)=>{var _0x4a2da1=_0x10fae2(0x10),_0x117e74=_0x10fae2(0x44)['f'],_0x327f4b=_0x10fae2(0x40),_0x1aad8f=_0x10fae2(0x46),_0x5045b1=_0x10fae2(0x14),_0x21613f=_0x10fae2(0x4a),_0x4cb1eb=_0x10fae2(0x4e);_0xe86383['exports']=function(_0x446616,_0x449b6a){const _0x30eb12=a0_0x160d;var _0x2d5800=_0x446616[_0x30eb12(0x1c8)],_0x20ad50=_0x446616[_0x30eb12(0x38e)],_0x33780a=_0x446616['stat'],_0x482017,_0x2ff762,_0x9a613d,_0xb47885,_0x5de269,_0x23e002;if(_0x20ad50)_0x2ff762=_0x4a2da1;else _0x33780a?_0x2ff762=_0x4a2da1[_0x2d5800]||_0x5045b1(_0x2d5800,{}):_0x2ff762=(_0x4a2da1[_0x2d5800]||{})['prototype'];if(_0x2ff762)for(_0x9a613d in _0x449b6a){_0x5de269=_0x449b6a[_0x9a613d];if(_0x446616[_0x30eb12(0x167)])_0x23e002=_0x117e74(_0x2ff762,_0x9a613d),_0xb47885=_0x23e002&&_0x23e002['value'];else _0xb47885=_0x2ff762[_0x9a613d];_0x482017=_0x4cb1eb(_0x20ad50?_0x9a613d:_0x2d5800+(_0x33780a?'.':'#')+_0x9a613d,_0x446616[_0x30eb12(0x5ad)]);if(!_0x482017&&_0xb47885!==undefined){if(typeof _0x5de269==typeof _0xb47885)continue;_0x21613f(_0x5de269,_0xb47885);}(_0x446616[_0x30eb12(0x3cd)]||_0xb47885&&_0xb47885[_0x30eb12(0x3cd)])&&_0x327f4b(_0x5de269,_0x30eb12(0x3cd),!![]),_0x1aad8f(_0x2ff762,_0x9a613d,_0x5de269,_0x446616);}};},(_0x4bc198,_0x155d57,_0x539903)=>{var _0x3ec275=_0x539903(0x22),_0x1518b5=_0x539903(0x29),_0x488aa5=_0x539903(0x45),_0xdbc6a0=_0x539903(0x41),_0x1bc853=_0x539903(0x6),_0x3c1444=_0x539903(0x27),_0x1e2ea7=_0x539903(0x15),_0x260784=_0x539903(0x25),_0x116cf1=Object['getOwnPropertyDescriptor'];_0x155d57['f']=_0x3ec275?_0x116cf1:function _0xaebadb(_0x2db03f,_0x3efd4f){_0x2db03f=_0x1bc853(_0x2db03f),_0x3efd4f=_0x3c1444(_0x3efd4f);if(_0x260784)try{return _0x116cf1(_0x2db03f,_0x3efd4f);}catch(_0x1a35ed){}if(_0x1e2ea7(_0x2db03f,_0x3efd4f))return _0xdbc6a0(!_0x1518b5(_0x488aa5['f'],_0x2db03f,_0x3efd4f),_0x2db03f[_0x3efd4f]);};},(_0x4b394e,_0x2bb746)=>{'use strict';const _0x31fb05=a0_0x160d;var _0xc93e75={}[_0x31fb05(0x561)],_0x13f8e5=Object[_0x31fb05(0x8dc)],_0x14c41c=_0x13f8e5&&!_0xc93e75['call']({0x1:0x2},0x1);_0x2bb746['f']=_0x14c41c?function _0x2c7df4(_0x925518){const _0x35b927=_0x31fb05;var _0x3fad17=_0x13f8e5(this,_0x925518);return!!_0x3fad17&&_0x3fad17[_0x35b927(0x255)];}:_0xc93e75;},(_0x5cfee0,_0x3b72f6,_0xa25846)=>{const _0x5653d0=a0_0x160d;var _0x5033cc=_0xa25846(0x1f),_0x4be6cd=_0xa25846(0x24),_0x2a2414=_0xa25846(0x47),_0x345454=_0xa25846(0x14);_0x5cfee0[_0x5653d0(0x5e9)]=function(_0x4e08ae,_0x3f7ed6,_0x26cd95,_0x4c0627){const _0x3b33e8=_0x5653d0;if(!_0x4c0627)_0x4c0627={};var _0x36fd1e=_0x4c0627['enumerable'],_0x18fa7f=_0x4c0627[_0x3b33e8(0x499)]!==undefined?_0x4c0627['name']:_0x3f7ed6;if(_0x5033cc(_0x26cd95))_0x2a2414(_0x26cd95,_0x18fa7f,_0x4c0627);if(_0x4c0627[_0x3b33e8(0x38e)]){if(_0x36fd1e)_0x4e08ae[_0x3f7ed6]=_0x26cd95;else _0x345454(_0x3f7ed6,_0x26cd95);}else{try{if(!_0x4c0627['unsafe'])delete _0x4e08ae[_0x3f7ed6];else{if(_0x4e08ae[_0x3f7ed6])_0x36fd1e=!![];}}catch(_0x20d39a){}if(_0x36fd1e)_0x4e08ae[_0x3f7ed6]=_0x26cd95;else _0x4be6cd['f'](_0x4e08ae,_0x3f7ed6,{'value':_0x26cd95,'enumerable':![],'configurable':!_0x4c0627['nonConfigurable'],'writable':!_0x4c0627['nonWritable']});}return _0x4e08ae;};},(_0x46a3e5,_0xc1dde2,_0xb45024)=>{const _0x55b590=a0_0x160d;var _0x2d56c5=_0xb45024(0x8),_0x20334e=_0xb45024(0xa),_0x558832=_0xb45024(0x1f),_0x24148e=_0xb45024(0x15),_0x186aa6=_0xb45024(0x22),_0x345a02=_0xb45024(0x48)['CONFIGURABLE'],_0x22f84e=_0xb45024(0x49),_0x363117=_0xb45024(0x3e),_0x39965a=_0x363117[_0x55b590(0x9b5)],_0x472f46=_0x363117[_0x55b590(0x8c4)],_0x1bee4b=String,_0x3c6590=Object[_0x55b590(0x430)],_0x5e2589=_0x2d56c5(''[_0x55b590(0x80c)]),_0x206b88=_0x2d56c5(''['replace']),_0x5e89a0=_0x2d56c5([][_0x55b590(0x334)]),_0x186d1f=_0x186aa6&&!_0x20334e(function(){const _0x2292e3=_0x55b590;return _0x3c6590(function(){},_0x2292e3(0x557),{'value':0x8})[_0x2292e3(0x557)]!==0x8;}),_0x294d94=String(String)[_0x55b590(0x6db)](_0x55b590(0x7ef)),_0x49921a=_0x46a3e5[_0x55b590(0x5e9)]=function(_0x2a748b,_0x4caacc,_0x5206ea){const _0x142ec7=_0x55b590;_0x5e2589(_0x1bee4b(_0x4caacc),0x0,0x7)===_0x142ec7(0x797)&&(_0x4caacc='['+_0x206b88(_0x1bee4b(_0x4caacc),/^Symbol\(([^)]*)\)/,'$1')+']');if(_0x5206ea&&_0x5206ea[_0x142ec7(0x3c1)])_0x4caacc=_0x142ec7(0x6a4)+_0x4caacc;if(_0x5206ea&&_0x5206ea[_0x142ec7(0x74b)])_0x4caacc='set\x20'+_0x4caacc;if(!_0x24148e(_0x2a748b,_0x142ec7(0x499))||_0x345a02&&_0x2a748b[_0x142ec7(0x499)]!==_0x4caacc){if(_0x186aa6)_0x3c6590(_0x2a748b,_0x142ec7(0x499),{'value':_0x4caacc,'configurable':!![]});else _0x2a748b[_0x142ec7(0x499)]=_0x4caacc;}_0x186d1f&&_0x5206ea&&_0x24148e(_0x5206ea,_0x142ec7(0x35b))&&_0x2a748b['length']!==_0x5206ea[_0x142ec7(0x35b)]&&_0x3c6590(_0x2a748b,_0x142ec7(0x557),{'value':_0x5206ea[_0x142ec7(0x35b)]});try{if(_0x5206ea&&_0x24148e(_0x5206ea,_0x142ec7(0x6ef))&&_0x5206ea['constructor']){if(_0x186aa6)_0x3c6590(_0x2a748b,_0x142ec7(0x821),{'writable':![]});}else{if(_0x2a748b[_0x142ec7(0x821)])_0x2a748b[_0x142ec7(0x821)]=undefined;}}catch(_0x35255d){}var _0x40cc86=_0x39965a(_0x2a748b);return!_0x24148e(_0x40cc86,_0x142ec7(0x3b5))&&(_0x40cc86[_0x142ec7(0x3b5)]=_0x5e89a0(_0x294d94,typeof _0x4caacc==_0x142ec7(0x8cd)?_0x4caacc:'')),_0x2a748b;};Function['prototype'][_0x55b590(0x83f)]=_0x49921a(function _0xce06e(){const _0xc0aa46=_0x55b590;return _0x558832(this)&&_0x472f46(this)[_0xc0aa46(0x3b5)]||_0x22f84e(this);},'toString');},(_0x15c863,_0x2e69db,_0xc45b90)=>{const _0x215df9=a0_0x160d;var _0x534947=_0xc45b90(0x22),_0x2a23b4=_0xc45b90(0x15),_0x54116e=Function[_0x215df9(0x821)],_0xde0c4f=_0x534947&&Object[_0x215df9(0x8dc)],_0x27e915=_0x2a23b4(_0x54116e,_0x215df9(0x499)),_0x1a9609=_0x27e915&&function _0x269270(){}['name']===_0x215df9(0x12c),_0x1c8d54=_0x27e915&&(!_0x534947||_0x534947&&_0xde0c4f(_0x54116e,'name')[_0x215df9(0x8ab)]);_0x15c863['exports']={'EXISTS':_0x27e915,'PROPER':_0x1a9609,'CONFIGURABLE':_0x1c8d54};},(_0x22275d,_0x2219f2,_0x1ddd8f)=>{const _0x4da60f=a0_0x160d;var _0xf2f3b5=_0x1ddd8f(0x8),_0x30c3ee=_0x1ddd8f(0x1f),_0x5981db=_0x1ddd8f(0x13),_0xcf67d7=_0xf2f3b5(Function[_0x4da60f(0x83f)]);!_0x30c3ee(_0x5981db[_0x4da60f(0x1a4)])&&(_0x5981db[_0x4da60f(0x1a4)]=function(_0x26399a){return _0xcf67d7(_0x26399a);}),_0x22275d['exports']=_0x5981db[_0x4da60f(0x1a4)];},(_0x3a92aa,_0x3ac324,_0x304c71)=>{var _0x1ef5b1=_0x304c71(0x15),_0x278b03=_0x304c71(0x4b),_0xb1763d=_0x304c71(0x44),_0x29448b=_0x304c71(0x24);_0x3a92aa['exports']=function(_0x29cf20,_0x45f444,_0x364917){var _0x6224d3=_0x278b03(_0x45f444),_0x52bfe7=_0x29448b['f'],_0x51d90f=_0xb1763d['f'];for(var _0x13bb8b=0x0;_0x13bb8b<_0x6224d3['length'];_0x13bb8b++){var _0x1f54d4=_0x6224d3[_0x13bb8b];!_0x1ef5b1(_0x29cf20,_0x1f54d4)&&!(_0x364917&&_0x1ef5b1(_0x364917,_0x1f54d4))&&_0x52bfe7(_0x29cf20,_0x1f54d4,_0x51d90f(_0x45f444,_0x1f54d4));}};},(_0x13bb19,_0xbf5279,_0x122d12)=>{const _0x44beb0=a0_0x160d;var _0x4744d7=_0x122d12(0x2b),_0x3f0c7e=_0x122d12(0x8),_0x2eea7b=_0x122d12(0x4c),_0x53567f=_0x122d12(0x4d),_0x55fdba=_0x122d12(0x1d),_0x5adf97=_0x3f0c7e([][_0x44beb0(0x112)]);_0x13bb19[_0x44beb0(0x5e9)]=_0x4744d7(_0x44beb0(0x9d8),_0x44beb0(0x2c1))||function _0x5ed5a1(_0x101cec){var _0x22b664=_0x2eea7b['f'](_0x55fdba(_0x101cec)),_0x4e2ca6=_0x53567f['f'];return _0x4e2ca6?_0x5adf97(_0x22b664,_0x4e2ca6(_0x101cec)):_0x22b664;};},(_0x328d73,_0x4183b8,_0x11fc05)=>{const _0x4a8d61=a0_0x160d;var _0x335fb8=_0x11fc05(0x32),_0xa45286=_0x11fc05(0x3a),_0x87c1d=_0xa45286[_0x4a8d61(0x112)](_0x4a8d61(0x557),_0x4a8d61(0x821));_0x4183b8['f']=Object[_0x4a8d61(0x65b)]||function _0x4cdde4(_0x2d2560){return _0x335fb8(_0x2d2560,_0x87c1d);};},(_0x589838,_0x351d5f)=>{_0x351d5f['f']=Object['getOwnPropertySymbols'];},(_0x36090f,_0x25d63c,_0x406755)=>{const _0x8b1f86=a0_0x160d;var _0x19b1e2=_0x406755(0xa),_0x10e98a=_0x406755(0x1f),_0x25911a=/#|\.prototype\./,_0x1fa39a=function(_0x578251,_0x362dd7){var _0x18395e=_0x4afd31[_0x5ef54d(_0x578251)];return _0x18395e==_0x1be505?!![]:_0x18395e==_0xf01a41?![]:_0x10e98a(_0x362dd7)?_0x19b1e2(_0x362dd7):!!_0x362dd7;},_0x5ef54d=_0x1fa39a[_0x8b1f86(0x2fa)]=function(_0x531d61){const _0x491345=_0x8b1f86;return String(_0x531d61)[_0x491345(0x342)](_0x25911a,'.')['toLowerCase']();},_0x4afd31=_0x1fa39a[_0x8b1f86(0x41b)]={},_0xf01a41=_0x1fa39a[_0x8b1f86(0xd2)]='N',_0x1be505=_0x1fa39a[_0x8b1f86(0x690)]='P';_0x36090f['exports']=_0x1fa39a;},(_0x2b995a,_0x1afe88,_0x5e4e03)=>{'use strict';const _0x5e9636=a0_0x160d;var _0x48ca17=_0x5e4e03(0x50)[_0x5e9636(0x107)],_0x39ef4a=_0x5e4e03(0x1c),_0x463b00=_0x5e4e03(0x41),_0x4c6f86=_0x5e4e03(0x53),_0x2afdda=_0x5e4e03(0x3d),_0x5e2247=function(){return this;};_0x2b995a[_0x5e9636(0x5e9)]=function(_0x12309b,_0x3e854d,_0x35814d,_0x23bdf2){const _0x28c6c9=_0x5e9636;var _0x3dc17e=_0x3e854d+_0x28c6c9(0x246);return _0x12309b[_0x28c6c9(0x821)]=_0x39ef4a(_0x48ca17,{'next':_0x463b00(+!_0x23bdf2,_0x35814d)}),_0x4c6f86(_0x12309b,_0x3dc17e,![],!![]),_0x2afdda[_0x3dc17e]=_0x5e2247,_0x12309b;};},(_0xf46542,_0x2116b1,_0x2d11f2)=>{'use strict';const _0x41ef40=a0_0x160d;var _0x28e8f8=_0x2d11f2(0xa),_0x2c2e4e=_0x2d11f2(0x1f),_0x271b1c=_0x2d11f2(0x1e),_0x2a36a9=_0x2d11f2(0x1c),_0x43a45a=_0x2d11f2(0x51),_0x2c1641=_0x2d11f2(0x46),_0x50371e=_0x2d11f2(0xf),_0x236973=_0x2d11f2(0x12),_0x384234=_0x50371e(_0x41ef40(0x933)),_0x3917a6=![],_0x6c66b0,_0x3eb419,_0x6c5b5e;if([][_0x41ef40(0x30e)]){_0x6c5b5e=[]['keys']();if(!(_0x41ef40(0x5d4)in _0x6c5b5e))_0x3917a6=!![];else{_0x3eb419=_0x43a45a(_0x43a45a(_0x6c5b5e));if(_0x3eb419!==Object[_0x41ef40(0x821)])_0x6c66b0=_0x3eb419;}}var _0x3efca1=!_0x271b1c(_0x6c66b0)||_0x28e8f8(function(){const _0x5da5d0=_0x41ef40;var _0x579be3={};return _0x6c66b0[_0x384234][_0x5da5d0(0x569)](_0x579be3)!==_0x579be3;});if(_0x3efca1)_0x6c66b0={};else{if(_0x236973)_0x6c66b0=_0x2a36a9(_0x6c66b0);}!_0x2c2e4e(_0x6c66b0[_0x384234])&&_0x2c1641(_0x6c66b0,_0x384234,function(){return this;}),_0xf46542['exports']={'IteratorPrototype':_0x6c66b0,'BUGGY_SAFARI_ITERATORS':_0x3917a6};},(_0x2ebc25,_0x2909b1,_0x4788e2)=>{const _0x50b1fe=a0_0x160d;var _0x29b6b0=_0x4788e2(0x15),_0x21d35d=_0x4788e2(0x1f),_0x32b88b=_0x4788e2(0x16),_0x5a8023=_0x4788e2(0x3c),_0x5288e5=_0x4788e2(0x52),_0x7ce90=_0x5a8023('IE_PROTO'),_0x16ac26=Object,_0x21c0cf=_0x16ac26[_0x50b1fe(0x821)];_0x2ebc25['exports']=_0x5288e5?_0x16ac26[_0x50b1fe(0x581)]:function(_0x2276ef){const _0x193cb5=_0x50b1fe;var _0x1fd7aa=_0x32b88b(_0x2276ef);if(_0x29b6b0(_0x1fd7aa,_0x7ce90))return _0x1fd7aa[_0x7ce90];var _0x14a1b9=_0x1fd7aa[_0x193cb5(0x6ef)];if(_0x21d35d(_0x14a1b9)&&_0x1fd7aa instanceof _0x14a1b9)return _0x14a1b9['prototype'];return _0x1fd7aa instanceof _0x16ac26?_0x21c0cf:null;};},(_0x61fd40,_0x373438,_0x85ef04)=>{var _0x36983d=_0x85ef04(0xa);_0x61fd40['exports']=!_0x36983d(function(){const _0x233e6f=a0_0x160d;function _0x39029f(){}return _0x39029f[_0x233e6f(0x821)][_0x233e6f(0x6ef)]=null,Object[_0x233e6f(0x581)](new _0x39029f())!==_0x39029f[_0x233e6f(0x821)];});},(_0x5bc607,_0x34ef9a,_0x2ef230)=>{const _0x181fde=a0_0x160d;var _0x585a4b=_0x2ef230(0x24)['f'],_0x25dbc5=_0x2ef230(0x15),_0x5ad7cb=_0x2ef230(0xf),_0x8e1871=_0x5ad7cb(_0x181fde(0x435));_0x5bc607[_0x181fde(0x5e9)]=function(_0x108c58,_0x4f9192,_0x5dae40){const _0x572eae=_0x181fde;if(_0x108c58&&!_0x5dae40)_0x108c58=_0x108c58[_0x572eae(0x821)];_0x108c58&&!_0x25dbc5(_0x108c58,_0x8e1871)&&_0x585a4b(_0x108c58,_0x8e1871,{'configurable':!![],'value':_0x4f9192});};},(_0x5f0e70,_0x260d39,_0x5d5577)=>{const _0x12cf5f=a0_0x160d;var _0x513a86=_0x5d5577(0x55),_0x20eea7=_0x5d5577(0x1d),_0x4448af=_0x5d5577(0x56);_0x5f0e70['exports']=Object[_0x12cf5f(0x59f)]||('__proto__'in{}?(function(){const _0x4dcee7=_0x12cf5f;var _0x11d31e=![],_0x24446d={},_0x1c4947;try{_0x1c4947=_0x513a86(Object[_0x4dcee7(0x821)],'__proto__',_0x4dcee7(0x98e)),_0x1c4947(_0x24446d,[]),_0x11d31e=_0x24446d instanceof Array;}catch(_0x1b62f1){}return function _0x40a697(_0xbb8a97,_0x4c2eca){const _0x1132d1=_0x4dcee7;_0x20eea7(_0xbb8a97),_0x4448af(_0x4c2eca);if(_0x11d31e)_0x1c4947(_0xbb8a97,_0x4c2eca);else _0xbb8a97[_0x1132d1(0x42e)]=_0x4c2eca;return _0xbb8a97;};}()):undefined);},(_0x2954b9,_0x516e43,_0x31c354)=>{const _0x1648d9=a0_0x160d;var _0x2bd16a=_0x31c354(0x8),_0xd7228b=_0x31c354(0x2e);_0x2954b9[_0x1648d9(0x5e9)]=function(_0x205f28,_0xf22db3,_0x5d239e){const _0x1285e6=_0x1648d9;try{return _0x2bd16a(_0xd7228b(Object[_0x1285e6(0x8dc)](_0x205f28,_0xf22db3)[_0x5d239e]));}catch(_0x700346){}};},(_0x35e0b4,_0x5e581d,_0x1a8f6b)=>{const _0x5379ad=a0_0x160d;var _0x54c1d1=_0x1a8f6b(0x1f),_0x58527b=String,_0x45b610=TypeError;_0x35e0b4[_0x5379ad(0x5e9)]=function(_0x336397){const _0x6de675=_0x5379ad;if(typeof _0x336397==_0x6de675(0x97b)||_0x54c1d1(_0x336397))return _0x336397;throw _0x45b610(_0x6de675(0x2fc)+_0x58527b(_0x336397)+_0x6de675(0x71c));};},_0x3e9803=>{_0x3e9803['exports']=function(_0x13a884,_0x2c620c){return{'value':_0x13a884,'done':_0x2c620c};};},(_0x1777eb,_0x2063ba,_0x137e3c)=>{const _0x1ed406=a0_0x160d;var _0x5a697c=_0x137e3c(0x59),_0x15e0e6=_0x137e3c(0x46),_0x23f5be=_0x137e3c(0x5a);!_0x5a697c&&_0x15e0e6(Object[_0x1ed406(0x821)],_0x1ed406(0x83f),_0x23f5be,{'unsafe':!![]});},(_0x139aec,_0x24811e,_0x45ac84)=>{const _0x4a8eca=a0_0x160d;var _0x8e3783=_0x45ac84(0xf),_0x2b305b=_0x8e3783(_0x4a8eca(0x435)),_0x14dc8e={};_0x14dc8e[_0x2b305b]='z',_0x139aec[_0x4a8eca(0x5e9)]=String(_0x14dc8e)===_0x4a8eca(0x618);},(_0x1cbb0c,_0x230f25,_0x2ac8a7)=>{'use strict';const _0xe42b1e=a0_0x160d;var _0x222c99=_0x2ac8a7(0x59),_0x552916=_0x2ac8a7(0x5b);_0x1cbb0c[_0xe42b1e(0x5e9)]=_0x222c99?{}[_0xe42b1e(0x83f)]:function _0x1a190(){const _0x3fbf21=_0xe42b1e;return _0x3fbf21(0x6b4)+_0x552916(this)+']';};},(_0x94dd63,_0x44dc28,_0x4023d4)=>{const _0x18e20c=a0_0x160d;var _0x219be6=_0x4023d4(0x59),_0x1f5bb9=_0x4023d4(0x1f),_0x3cc15a=_0x4023d4(0xb),_0x505e2f=_0x4023d4(0xf),_0x479a78=_0x505e2f(_0x18e20c(0x435)),_0x346ed5=Object,_0x4e4fd4=_0x3cc15a((function(){return arguments;}()))==_0x18e20c(0x6d4),_0x12d744=function(_0x145221,_0x1deb7b){try{return _0x145221[_0x1deb7b];}catch(_0x7785d1){}};_0x94dd63[_0x18e20c(0x5e9)]=_0x219be6?_0x3cc15a:function(_0x12db68){const _0x52e300=_0x18e20c;var _0x50c9cc,_0x3422b8,_0x3ed39d;return _0x12db68===undefined?_0x52e300(0x998):_0x12db68===null?_0x52e300(0x68a):typeof(_0x3422b8=_0x12d744(_0x50c9cc=_0x346ed5(_0x12db68),_0x479a78))==_0x52e300(0x8cd)?_0x3422b8:_0x4e4fd4?_0x3cc15a(_0x50c9cc):(_0x3ed39d=_0x3cc15a(_0x50c9cc))=='Object'&&_0x1f5bb9(_0x50c9cc[_0x52e300(0x9b6)])?'Arguments':_0x3ed39d;};},(_0x407df0,_0x54d7cd,_0x3c6473)=>{_0x3c6473(0x5d);},(_0x5972de,_0x4e8fd0,_0x58fc69)=>{'use strict';const _0x55b9e8=a0_0x160d;var _0xeb780b=_0x58fc69(0x5e),_0x4641d1=_0x58fc69(0x70);_0xeb780b(_0x55b9e8(0x6d8),function(_0x99649f){return function _0x8102fc(){const _0x7fbf0b=a0_0x160d;return _0x99649f(this,arguments[_0x7fbf0b(0x557)]?arguments[0x0]:undefined);};},_0x4641d1);},(_0x45c1dd,_0x5780fc,_0xb70ee9)=>{'use strict';const _0x5dd7cb=a0_0x160d;var _0x4c51e8=_0xb70ee9(0x43),_0x1da506=_0xb70ee9(0x10),_0x608b41=_0xb70ee9(0x8),_0x8f410=_0xb70ee9(0x4e),_0x4ee652=_0xb70ee9(0x46),_0x5cefab=_0xb70ee9(0x5f),_0x22cada=_0xb70ee9(0x66),_0x4dde87=_0xb70ee9(0x6d),_0x4fe9d1=_0xb70ee9(0x1f),_0x1367a9=_0xb70ee9(0xd),_0x259fa1=_0xb70ee9(0x1e),_0x1916fe=_0xb70ee9(0xa),_0x920969=_0xb70ee9(0x6e),_0x351fd5=_0xb70ee9(0x53),_0x29ed26=_0xb70ee9(0x6f);_0x45c1dd[_0x5dd7cb(0x5e9)]=function(_0x5b709f,_0x33b8e5,_0x5a11ff){const _0x147293=_0x5dd7cb;var _0x44d019=_0x5b709f[_0x147293(0x82c)]('Map')!==-0x1,_0x103f37=_0x5b709f['indexOf']('Weak')!==-0x1,_0x1515aa=_0x44d019?'set':'add',_0xb46f70=_0x1da506[_0x5b709f],_0x216f60=_0xb46f70&&_0xb46f70['prototype'],_0xbd2f20=_0xb46f70,_0x4c3c53={},_0x3e3892=function(_0x11410e){const _0x5c155e=_0x147293;var _0x317263=_0x608b41(_0x216f60[_0x11410e]);_0x4ee652(_0x216f60,_0x11410e,_0x11410e==_0x5c155e(0x156)?function _0x2e24a2(_0x4bfbb6){return _0x317263(this,_0x4bfbb6===0x0?0x0:_0x4bfbb6),this;}:_0x11410e==_0x5c155e(0x65f)?function(_0x4c2912){return _0x103f37&&!_0x259fa1(_0x4c2912)?![]:_0x317263(this,_0x4c2912===0x0?0x0:_0x4c2912);}:_0x11410e=='get'?function _0x47b151(_0x19ca30){return _0x103f37&&!_0x259fa1(_0x19ca30)?undefined:_0x317263(this,_0x19ca30===0x0?0x0:_0x19ca30);}:_0x11410e==_0x5c155e(0x373)?function _0x4330b6(_0x3a8b3d){return _0x103f37&&!_0x259fa1(_0x3a8b3d)?![]:_0x317263(this,_0x3a8b3d===0x0?0x0:_0x3a8b3d);}:function _0x3504ea(_0x40e0a4,_0x128b43){return _0x317263(this,_0x40e0a4===0x0?0x0:_0x40e0a4,_0x128b43),this;});},_0x21fd22=_0x8f410(_0x5b709f,!_0x4fe9d1(_0xb46f70)||!(_0x103f37||_0x216f60['forEach']&&!_0x1916fe(function(){const _0x5c3eb4=_0x147293;new _0xb46f70()[_0x5c3eb4(0x816)]()[_0x5c3eb4(0x5d4)]();})));if(_0x21fd22)_0xbd2f20=_0x5a11ff[_0x147293(0x788)](_0x33b8e5,_0x5b709f,_0x44d019,_0x1515aa),_0x5cefab[_0x147293(0x781)]();else{if(_0x8f410(_0x5b709f,!![])){var _0x4582da=new _0xbd2f20(),_0x5ec123=_0x4582da[_0x1515aa](_0x103f37?{}:-0x0,0x1)!=_0x4582da,_0x7dc861=_0x1916fe(function(){const _0x4ed506=_0x147293;_0x4582da[_0x4ed506(0x373)](0x1);}),_0x4a638e=_0x920969(function(_0x435fd9){new _0xb46f70(_0x435fd9);}),_0x5afb4b=!_0x103f37&&_0x1916fe(function(){var _0xab0939=new _0xb46f70(),_0x1ef3be=0x5;while(_0x1ef3be--)_0xab0939[_0x1515aa](_0x1ef3be,_0x1ef3be);return!_0xab0939['has'](-0x0);});!_0x4a638e&&(_0xbd2f20=_0x33b8e5(function(_0x3f935f,_0x20db3f){_0x4dde87(_0x3f935f,_0x216f60);var _0x544866=_0x29ed26(new _0xb46f70(),_0x3f935f,_0xbd2f20);if(!_0x1367a9(_0x20db3f))_0x22cada(_0x20db3f,_0x544866[_0x1515aa],{'that':_0x544866,'AS_ENTRIES':_0x44d019});return _0x544866;}),_0xbd2f20[_0x147293(0x821)]=_0x216f60,_0x216f60[_0x147293(0x6ef)]=_0xbd2f20);(_0x7dc861||_0x5afb4b)&&(_0x3e3892(_0x147293(0x65f)),_0x3e3892(_0x147293(0x373)),_0x44d019&&_0x3e3892(_0x147293(0x8c4)));if(_0x5afb4b||_0x5ec123)_0x3e3892(_0x1515aa);if(_0x103f37&&_0x216f60['clear'])delete _0x216f60[_0x147293(0x1ca)];}}_0x4c3c53[_0x5b709f]=_0xbd2f20,_0x4c51e8({'global':!![],'constructor':!![],'forced':_0xbd2f20!=_0xb46f70},_0x4c3c53),_0x351fd5(_0xbd2f20,_0x5b709f);if(!_0x103f37)_0x5a11ff[_0x147293(0x601)](_0xbd2f20,_0x5b709f,_0x44d019);return _0xbd2f20;};},(_0x226095,_0x277a65,_0x556415)=>{const _0x2734d5=a0_0x160d;var _0x9ba815=_0x556415(0x43),_0x3432a1=_0x556415(0x8),_0x1af797=_0x556415(0x39),_0x416627=_0x556415(0x1e),_0x117506=_0x556415(0x15),_0x4eecf6=_0x556415(0x24)['f'],_0x36a850=_0x556415(0x4c),_0x44d7e2=_0x556415(0x60),_0xda7a2f=_0x556415(0x63),_0x2eb5c1=_0x556415(0x17),_0x9ee413=_0x556415(0x65),_0x2f5906=![],_0x2e2aea=_0x2eb5c1(_0x2734d5(0x643)),_0x471c87=0x0,_0x1de29a=function(_0x460ac4){_0x4eecf6(_0x460ac4,_0x2e2aea,{'value':{'objectID':'O'+_0x471c87++,'weakData':{}}});},_0x218e6c=function(_0x4819eb,_0x1c687b){const _0x5205f9=_0x2734d5;if(!_0x416627(_0x4819eb))return typeof _0x4819eb==_0x5205f9(0x805)?_0x4819eb:(typeof _0x4819eb==_0x5205f9(0x8cd)?'S':'P')+_0x4819eb;if(!_0x117506(_0x4819eb,_0x2e2aea)){if(!_0xda7a2f(_0x4819eb))return'F';if(!_0x1c687b)return'E';_0x1de29a(_0x4819eb);}return _0x4819eb[_0x2e2aea][_0x5205f9(0x893)];},_0x32eb69=function(_0x20ccee,_0x526c58){const _0x532820=_0x2734d5;if(!_0x117506(_0x20ccee,_0x2e2aea)){if(!_0xda7a2f(_0x20ccee))return!![];if(!_0x526c58)return![];_0x1de29a(_0x20ccee);}return _0x20ccee[_0x2e2aea][_0x532820(0x240)];},_0x292a4a=function(_0xf90f5f){if(_0x9ee413&&_0x2f5906&&_0xda7a2f(_0xf90f5f)&&!_0x117506(_0xf90f5f,_0x2e2aea))_0x1de29a(_0xf90f5f);return _0xf90f5f;},_0x3aa4cd=function(){const _0x298e6e=_0x2734d5;_0x2141fc[_0x298e6e(0x781)]=function(){},_0x2f5906=!![];var _0x2e4372=_0x36a850['f'],_0x41c888=_0x3432a1([][_0x298e6e(0x397)]),_0x2e68c7={};_0x2e68c7[_0x2e2aea]=0x1,_0x2e4372(_0x2e68c7)[_0x298e6e(0x557)]&&(_0x36a850['f']=function(_0x37e423){const _0x377530=_0x298e6e;var _0x37d1da=_0x2e4372(_0x37e423);for(var _0x2f9e54=0x0,_0x45cf5e=_0x37d1da[_0x377530(0x557)];_0x2f9e54<_0x45cf5e;_0x2f9e54++){if(_0x37d1da[_0x2f9e54]===_0x2e2aea){_0x41c888(_0x37d1da,_0x2f9e54,0x1);break;}}return _0x37d1da;},_0x9ba815({'target':'Object','stat':!![],'forced':!![]},{'getOwnPropertyNames':_0x44d7e2['f']}));},_0x2141fc=_0x226095['exports']={'enable':_0x3aa4cd,'fastKey':_0x218e6c,'getWeakData':_0x32eb69,'onFreeze':_0x292a4a};_0x1af797[_0x2e2aea]=!![];},(_0x241f06,_0x41c9d4,_0x4bb42b)=>{const _0xaf53c=a0_0x160d;var _0x2f282e=_0x4bb42b(0xb),_0x3f34fc=_0x4bb42b(0x6),_0x5b130e=_0x4bb42b(0x4c)['f'],_0x9863e=_0x4bb42b(0x61),_0x564e12=typeof window==_0xaf53c(0x97b)&&window&&Object[_0xaf53c(0x65b)]?Object[_0xaf53c(0x65b)](window):[],_0x22f1e9=function(_0x9ef8bd){try{return _0x5b130e(_0x9ef8bd);}catch(_0x9766a2){return _0x9863e(_0x564e12);}};_0x241f06['exports']['f']=function _0x5d977d(_0x53062d){const _0x5b3811=_0xaf53c;return _0x564e12&&_0x2f282e(_0x53062d)==_0x5b3811(0x659)?_0x22f1e9(_0x53062d):_0x5b130e(_0x3f34fc(_0x53062d));};},(_0x23fcaa,_0x5a6373,_0x3e2a5b)=>{const _0x1bba7f=a0_0x160d;var _0x429cdb=_0x3e2a5b(0x34),_0xc4ceae=_0x3e2a5b(0x37),_0xc82380=_0x3e2a5b(0x62),_0x5a0986=Array,_0xd7185b=Math['max'];_0x23fcaa[_0x1bba7f(0x5e9)]=function(_0x296621,_0x1cf970,_0x510d98){var _0x5ca364=_0xc4ceae(_0x296621),_0x42e1bd=_0x429cdb(_0x1cf970,_0x5ca364),_0x4dd69e=_0x429cdb(_0x510d98===undefined?_0x5ca364:_0x510d98,_0x5ca364),_0x29540e=_0x5a0986(_0xd7185b(_0x4dd69e-_0x42e1bd,0x0));for(var _0x4eff3d=0x0;_0x42e1bd<_0x4dd69e;_0x42e1bd++,_0x4eff3d++)_0xc82380(_0x29540e,_0x4eff3d,_0x296621[_0x42e1bd]);return _0x29540e['length']=_0x4eff3d,_0x29540e;};},(_0x507e76,_0x4b9855,_0x2831a4)=>{'use strict';const _0x2162b4=a0_0x160d;var _0x8a7719=_0x2831a4(0x27),_0x4f0949=_0x2831a4(0x24),_0x4ef48d=_0x2831a4(0x41);_0x507e76[_0x2162b4(0x5e9)]=function(_0x2367b6,_0x74c3db,_0x52e2b7){var _0x2116bc=_0x8a7719(_0x74c3db);if(_0x2116bc in _0x2367b6)_0x4f0949['f'](_0x2367b6,_0x2116bc,_0x4ef48d(0x0,_0x52e2b7));else _0x2367b6[_0x2116bc]=_0x52e2b7;};},(_0x359f0f,_0x17b427,_0x28c037)=>{const _0x171983=a0_0x160d;var _0x72a9f6=_0x28c037(0xa),_0x58e77f=_0x28c037(0x1e),_0x590463=_0x28c037(0xb),_0x401373=_0x28c037(0x64),_0xbb3f15=Object[_0x171983(0x313)],_0x4971a7=_0x72a9f6(function(){_0xbb3f15(0x1);});_0x359f0f['exports']=_0x4971a7||_0x401373?function _0x746556(_0x543f21){const _0x4f3f69=_0x171983;if(!_0x58e77f(_0x543f21))return![];if(_0x401373&&_0x590463(_0x543f21)==_0x4f3f69(0x28c))return![];return _0xbb3f15?_0xbb3f15(_0x543f21):!![];}:_0xbb3f15;},(_0x3b8268,_0x2902d0,_0x5d3eef)=>{const _0x5af107=a0_0x160d;var _0x135913=_0x5d3eef(0xa);_0x3b8268[_0x5af107(0x5e9)]=_0x135913(function(){const _0x565ee2=_0x5af107;if(typeof ArrayBuffer=='function'){var _0x5b2136=new ArrayBuffer(0x8);if(Object[_0x565ee2(0x313)](_0x5b2136))Object[_0x565ee2(0x430)](_0x5b2136,'a',{'value':0x8});}});},(_0x3f34a6,_0x5cf931,_0x133b86)=>{const _0xcdcbe0=a0_0x160d;var _0x33e982=_0x133b86(0xa);_0x3f34a6[_0xcdcbe0(0x5e9)]=!_0x33e982(function(){const _0x3358bd=_0xcdcbe0;return Object[_0x3358bd(0x313)](Object[_0x3358bd(0x349)]({}));});},(_0x344d79,_0x3163ff,_0x2a8d92)=>{const _0x339565=a0_0x160d;var _0x23e362=_0x2a8d92(0x67),_0x4f7a15=_0x2a8d92(0x29),_0x5dba1c=_0x2a8d92(0x1d),_0x3aaecd=_0x2a8d92(0x2f),_0xbdef06=_0x2a8d92(0x69),_0x39b372=_0x2a8d92(0x37),_0x5da6a0=_0x2a8d92(0x2c),_0x56c232=_0x2a8d92(0x6a),_0xf0066b=_0x2a8d92(0x6b),_0x37701d=_0x2a8d92(0x6c),_0x28442a=TypeError,_0x2c646e=function(_0x1d2da2,_0x233bbe){const _0x3be5b0=a0_0x160d;this[_0x3be5b0(0x6fb)]=_0x1d2da2,this[_0x3be5b0(0xfd)]=_0x233bbe;},_0x5c38ad=_0x2c646e[_0x339565(0x821)];_0x344d79['exports']=function(_0x48e7b3,_0x475c16,_0x13ac28){const _0x408dad=_0x339565;var _0x1e23ad=_0x13ac28&&_0x13ac28['that'],_0x4a579e=!!(_0x13ac28&&_0x13ac28[_0x408dad(0x42b)]),_0x6ae51f=!!(_0x13ac28&&_0x13ac28[_0x408dad(0x4b7)]),_0x1a871c=!!(_0x13ac28&&_0x13ac28[_0x408dad(0x155)]),_0x42ef01=!!(_0x13ac28&&_0x13ac28[_0x408dad(0x24b)]),_0x41869b=_0x23e362(_0x475c16,_0x1e23ad),_0x344f6b,_0x43d7b1,_0x395bf8,_0x1c9e2b,_0x36dfe0,_0x5bc469,_0x5f257f,_0x2de000=function(_0x28e560){if(_0x344f6b)_0x37701d(_0x344f6b,'normal',_0x28e560);return new _0x2c646e(!![],_0x28e560);},_0x31d144=function(_0x5c8ce0){if(_0x4a579e)return _0x5dba1c(_0x5c8ce0),_0x42ef01?_0x41869b(_0x5c8ce0[0x0],_0x5c8ce0[0x1],_0x2de000):_0x41869b(_0x5c8ce0[0x0],_0x5c8ce0[0x1]);return _0x42ef01?_0x41869b(_0x5c8ce0,_0x2de000):_0x41869b(_0x5c8ce0);};if(_0x6ae51f)_0x344f6b=_0x48e7b3[_0x408dad(0x933)];else{if(_0x1a871c)_0x344f6b=_0x48e7b3;else{_0x43d7b1=_0xf0066b(_0x48e7b3);if(!_0x43d7b1)throw _0x28442a(_0x3aaecd(_0x48e7b3)+_0x408dad(0xf6));if(_0xbdef06(_0x43d7b1)){for(_0x395bf8=0x0,_0x1c9e2b=_0x39b372(_0x48e7b3);_0x1c9e2b>_0x395bf8;_0x395bf8++){_0x36dfe0=_0x31d144(_0x48e7b3[_0x395bf8]);if(_0x36dfe0&&_0x5da6a0(_0x5c38ad,_0x36dfe0))return _0x36dfe0;}return new _0x2c646e(![]);}_0x344f6b=_0x56c232(_0x48e7b3,_0x43d7b1);}}_0x5bc469=_0x6ae51f?_0x48e7b3['next']:_0x344f6b[_0x408dad(0x5d4)];while(!(_0x5f257f=_0x4f7a15(_0x5bc469,_0x344f6b))[_0x408dad(0x4bf)]){try{_0x36dfe0=_0x31d144(_0x5f257f[_0x408dad(0x2b8)]);}catch(_0x3fcd6a){_0x37701d(_0x344f6b,_0x408dad(0x946),_0x3fcd6a);}if(typeof _0x36dfe0==_0x408dad(0x97b)&&_0x36dfe0&&_0x5da6a0(_0x5c38ad,_0x36dfe0))return _0x36dfe0;}return new _0x2c646e(![]);};},(_0x1ef7d3,_0xe03ee5,_0x11ea32)=>{const _0x31d1b9=a0_0x160d;var _0xee19e8=_0x11ea32(0x68),_0x3bfd3b=_0x11ea32(0x2e),_0x3b1025=_0x11ea32(0x9),_0x188147=_0xee19e8(_0xee19e8[_0x31d1b9(0x5e8)]);_0x1ef7d3[_0x31d1b9(0x5e9)]=function(_0x21af5b,_0x4c9dda){return _0x3bfd3b(_0x21af5b),_0x4c9dda===undefined?_0x21af5b:_0x3b1025?_0x188147(_0x21af5b,_0x4c9dda):function(){const _0x19351f=a0_0x160d;return _0x21af5b[_0x19351f(0x2d2)](_0x4c9dda,arguments);};};},(_0x31fac5,_0x5e9bbd,_0x3d3823)=>{const _0x172bee=a0_0x160d;var _0x3e1ee6=_0x3d3823(0xb),_0x3b36a9=_0x3d3823(0x8);_0x31fac5[_0x172bee(0x5e9)]=function(_0x206f35){const _0x3aec4f=_0x172bee;if(_0x3e1ee6(_0x206f35)===_0x3aec4f(0x6bf))return _0x3b36a9(_0x206f35);};},(_0x5eb021,_0x399441,_0x8a6798)=>{const _0x47c6cc=a0_0x160d;var _0xb3a7a1=_0x8a6798(0xf),_0x4a87d4=_0x8a6798(0x3d),_0x241cf7=_0xb3a7a1(_0x47c6cc(0x933)),_0x48fb29=Array['prototype'];_0x5eb021[_0x47c6cc(0x5e9)]=function(_0x5e5d8a){const _0x43b4a5=_0x47c6cc;return _0x5e5d8a!==undefined&&(_0x4a87d4[_0x43b4a5(0x323)]===_0x5e5d8a||_0x48fb29[_0x241cf7]===_0x5e5d8a);};},(_0x6cc54b,_0x487ef7,_0x4f6203)=>{var _0x421546=_0x4f6203(0x29),_0x2f92c9=_0x4f6203(0x2e),_0x15a05d=_0x4f6203(0x1d),_0x5901ee=_0x4f6203(0x2f),_0x1cf6f4=_0x4f6203(0x6b),_0x3f5eb6=TypeError;_0x6cc54b['exports']=function(_0x883339,_0x5c35ef){const _0x5d4df3=a0_0x160d;var _0x38c6e9=arguments[_0x5d4df3(0x557)]<0x2?_0x1cf6f4(_0x883339):_0x5c35ef;if(_0x2f92c9(_0x38c6e9))return _0x15a05d(_0x421546(_0x38c6e9,_0x883339));throw _0x3f5eb6(_0x5901ee(_0x883339)+'\x20is\x20not\x20iterable');};},(_0x5222ce,_0x2d5691,_0x40af9c)=>{const _0x2f93cb=a0_0x160d;var _0x126ded=_0x40af9c(0x5b),_0x4e8d69=_0x40af9c(0x2d),_0x407d71=_0x40af9c(0xd),_0x5821c7=_0x40af9c(0x3d),_0xe23a49=_0x40af9c(0xf),_0x4639f7=_0xe23a49(_0x2f93cb(0x933));_0x5222ce[_0x2f93cb(0x5e9)]=function(_0x2a0ca3){const _0xc0a14d=_0x2f93cb;if(!_0x407d71(_0x2a0ca3))return _0x4e8d69(_0x2a0ca3,_0x4639f7)||_0x4e8d69(_0x2a0ca3,_0xc0a14d(0x40c))||_0x5821c7[_0x126ded(_0x2a0ca3)];};},(_0x21f36b,_0x4c0ac7,_0x47c431)=>{var _0x46bc88=_0x47c431(0x29),_0x3f8b44=_0x47c431(0x1d),_0x27d90e=_0x47c431(0x2d);_0x21f36b['exports']=function(_0x3329b6,_0x7e98d7,_0x897996){const _0x1feb26=a0_0x160d;var _0x38789b,_0x349941;_0x3f8b44(_0x3329b6);try{_0x38789b=_0x27d90e(_0x3329b6,_0x1feb26(0x4b3));if(!_0x38789b){if(_0x7e98d7===_0x1feb26(0x946))throw _0x897996;return _0x897996;}_0x38789b=_0x46bc88(_0x38789b,_0x3329b6);}catch(_0x3f9213){_0x349941=!![],_0x38789b=_0x3f9213;}if(_0x7e98d7===_0x1feb26(0x946))throw _0x897996;if(_0x349941)throw _0x38789b;return _0x3f8b44(_0x38789b),_0x897996;};},(_0x4e0eaf,_0x59af57,_0x12c507)=>{var _0x3eeb64=_0x12c507(0x2c),_0x40da04=TypeError;_0x4e0eaf['exports']=function(_0x197b21,_0x569993){const _0x41f129=a0_0x160d;if(_0x3eeb64(_0x569993,_0x197b21))return _0x197b21;throw _0x40da04(_0x41f129(0x9d5));};},(_0x8aac3a,_0x2d4166,_0xfac970)=>{const _0x16582d=a0_0x160d;var _0x152517=_0xfac970(0xf),_0x29422c=_0x152517(_0x16582d(0x933)),_0x340142=![];try{var _0xd7b379=0x0,_0x2c254f={'next':function(){return{'done':!!_0xd7b379++};},'return':function(){_0x340142=!![];}};_0x2c254f[_0x29422c]=function(){return this;},Array[_0x16582d(0x875)](_0x2c254f,function(){throw 0x2;});}catch(_0xdc60f5){}_0x8aac3a['exports']=function(_0x4ca1f5,_0xedac34){if(!_0xedac34&&!_0x340142)return![];var _0x585669=![];try{var _0x421464={};_0x421464[_0x29422c]=function(){return{'next':function(){return{'done':_0x585669=!![]};}};},_0x4ca1f5(_0x421464);}catch(_0x78414e){}return _0x585669;};},(_0x25b776,_0xa282ae,_0x329fd2)=>{const _0x4da872=a0_0x160d;var _0x1db831=_0x329fd2(0x1f),_0x307ee0=_0x329fd2(0x1e),_0x21d921=_0x329fd2(0x54);_0x25b776[_0x4da872(0x5e9)]=function(_0x1febe5,_0x4a47ca,_0x2396ac){const _0x8129cf=_0x4da872;var _0x3cc6c6,_0x2e138c;if(_0x21d921&&_0x1db831(_0x3cc6c6=_0x4a47ca['constructor'])&&_0x3cc6c6!==_0x2396ac&&_0x307ee0(_0x2e138c=_0x3cc6c6[_0x8129cf(0x821)])&&_0x2e138c!==_0x2396ac[_0x8129cf(0x821)])_0x21d921(_0x1febe5,_0x2e138c);return _0x1febe5;};},(_0x55d98b,_0x15064d,_0x19a4a9)=>{'use strict';const _0x41d629=a0_0x160d;var _0x233f06=_0x19a4a9(0x1c),_0x4187d5=_0x19a4a9(0x71),_0x2610f2=_0x19a4a9(0x72),_0xa1ae68=_0x19a4a9(0x67),_0x2d0284=_0x19a4a9(0x6d),_0x4a2bde=_0x19a4a9(0xd),_0x441f60=_0x19a4a9(0x66),_0x4bc313=_0x19a4a9(0x42),_0x16dcfd=_0x19a4a9(0x57),_0x3a79d4=_0x19a4a9(0x73),_0x539489=_0x19a4a9(0x22),_0x35dbb6=_0x19a4a9(0x5f)['fastKey'],_0x16ad30=_0x19a4a9(0x3e),_0x2348a6=_0x16ad30[_0x41d629(0x98e)],_0x139807=_0x16ad30[_0x41d629(0x3b8)];_0x55d98b[_0x41d629(0x5e9)]={'getConstructor':function(_0x214ef7,_0x47a259,_0x492ef5,_0x57a8c0){const _0x1c0c7b=_0x41d629;var _0x1e930a=_0x214ef7(function(_0x98928a,_0x5bd2d1){const _0x1dc35e=a0_0x160d;_0x2d0284(_0x98928a,_0x225f83),_0x2348a6(_0x98928a,{'type':_0x47a259,'index':_0x233f06(null),'first':undefined,'last':undefined,'size':0x0});if(!_0x539489)_0x98928a[_0x1dc35e(0x87a)]=0x0;if(!_0x4a2bde(_0x5bd2d1))_0x441f60(_0x5bd2d1,_0x98928a[_0x57a8c0],{'that':_0x98928a,'AS_ENTRIES':_0x492ef5});}),_0x225f83=_0x1e930a[_0x1c0c7b(0x821)],_0x4607f0=_0x139807(_0x47a259),_0x3a8d48=function(_0x43f08a,_0x37c82d,_0x4fdcaa){const _0x24a076=_0x1c0c7b;var _0x338c0d=_0x4607f0(_0x43f08a),_0x5a67d5=_0x2b4554(_0x43f08a,_0x37c82d),_0x350053,_0x4fb052;if(_0x5a67d5)_0x5a67d5[_0x24a076(0x2b8)]=_0x4fdcaa;else{_0x338c0d[_0x24a076(0xa00)]=_0x5a67d5={'index':_0x4fb052=_0x35dbb6(_0x37c82d,!![]),'key':_0x37c82d,'value':_0x4fdcaa,'previous':_0x350053=_0x338c0d[_0x24a076(0xa00)],'next':undefined,'removed':![]};if(!_0x338c0d[_0x24a076(0x7a6)])_0x338c0d[_0x24a076(0x7a6)]=_0x5a67d5;if(_0x350053)_0x350053[_0x24a076(0x5d4)]=_0x5a67d5;if(_0x539489)_0x338c0d['size']++;else _0x43f08a['size']++;if(_0x4fb052!=='F')_0x338c0d[_0x24a076(0x37c)][_0x4fb052]=_0x5a67d5;}return _0x43f08a;},_0x2b4554=function(_0x3d4db2,_0x1381a7){const _0x59f6ac=_0x1c0c7b;var _0x1d2e2a=_0x4607f0(_0x3d4db2),_0x38831b=_0x35dbb6(_0x1381a7),_0x435caf;if(_0x38831b!=='F')return _0x1d2e2a['index'][_0x38831b];for(_0x435caf=_0x1d2e2a[_0x59f6ac(0x7a6)];_0x435caf;_0x435caf=_0x435caf[_0x59f6ac(0x5d4)]){if(_0x435caf[_0x59f6ac(0x725)]==_0x1381a7)return _0x435caf;}};_0x2610f2(_0x225f83,{'clear':function _0x8d4fc0(){const _0x1bba1e=_0x1c0c7b;var _0x47f9a2=this,_0x5c7410=_0x4607f0(_0x47f9a2),_0x2713f1=_0x5c7410[_0x1bba1e(0x37c)],_0x2fbe4b=_0x5c7410[_0x1bba1e(0x7a6)];while(_0x2fbe4b){_0x2fbe4b['removed']=!![];if(_0x2fbe4b['previous'])_0x2fbe4b[_0x1bba1e(0xf3)]=_0x2fbe4b[_0x1bba1e(0xf3)]['next']=undefined;delete _0x2713f1[_0x2fbe4b[_0x1bba1e(0x37c)]],_0x2fbe4b=_0x2fbe4b['next'];}_0x5c7410['first']=_0x5c7410[_0x1bba1e(0xa00)]=undefined;if(_0x539489)_0x5c7410[_0x1bba1e(0x87a)]=0x0;else _0x47f9a2[_0x1bba1e(0x87a)]=0x0;},'delete':function(_0x46fc67){const _0x3c93b2=_0x1c0c7b;var _0xc1a6ee=this,_0x4da454=_0x4607f0(_0xc1a6ee),_0x556a48=_0x2b4554(_0xc1a6ee,_0x46fc67);if(_0x556a48){var _0x45cc04=_0x556a48[_0x3c93b2(0x5d4)],_0x284cc9=_0x556a48['previous'];delete _0x4da454[_0x3c93b2(0x37c)][_0x556a48[_0x3c93b2(0x37c)]],_0x556a48[_0x3c93b2(0x854)]=!![];if(_0x284cc9)_0x284cc9['next']=_0x45cc04;if(_0x45cc04)_0x45cc04['previous']=_0x284cc9;if(_0x4da454[_0x3c93b2(0x7a6)]==_0x556a48)_0x4da454[_0x3c93b2(0x7a6)]=_0x45cc04;if(_0x4da454[_0x3c93b2(0xa00)]==_0x556a48)_0x4da454[_0x3c93b2(0xa00)]=_0x284cc9;if(_0x539489)_0x4da454[_0x3c93b2(0x87a)]--;else _0xc1a6ee[_0x3c93b2(0x87a)]--;}return!!_0x556a48;},'forEach':function _0x51270d(_0x13dc16){const _0x147815=_0x1c0c7b;var _0x10456c=_0x4607f0(this),_0x4969a2=_0xa1ae68(_0x13dc16,arguments[_0x147815(0x557)]>0x1?arguments[0x1]:undefined),_0x7e3e87;while(_0x7e3e87=_0x7e3e87?_0x7e3e87[_0x147815(0x5d4)]:_0x10456c[_0x147815(0x7a6)]){_0x4969a2(_0x7e3e87[_0x147815(0x2b8)],_0x7e3e87[_0x147815(0x725)],this);while(_0x7e3e87&&_0x7e3e87[_0x147815(0x854)])_0x7e3e87=_0x7e3e87[_0x147815(0xf3)];}},'has':function _0x58c876(_0xa9b81a){return!!_0x2b4554(this,_0xa9b81a);}}),_0x2610f2(_0x225f83,_0x492ef5?{'get':function _0x169104(_0x11c290){const _0x14c079=_0x1c0c7b;var _0x5e2190=_0x2b4554(this,_0x11c290);return _0x5e2190&&_0x5e2190[_0x14c079(0x2b8)];},'set':function _0x3fc4c9(_0xf95720,_0x6e8800){return _0x3a8d48(this,_0xf95720===0x0?0x0:_0xf95720,_0x6e8800);}}:{'add':function _0x360a8b(_0x1bb97b){return _0x3a8d48(this,_0x1bb97b=_0x1bb97b===0x0?0x0:_0x1bb97b,_0x1bb97b);}});if(_0x539489)_0x4187d5(_0x225f83,_0x1c0c7b(0x87a),{'configurable':!![],'get':function(){const _0x57f563=_0x1c0c7b;return _0x4607f0(this)[_0x57f563(0x87a)];}});return _0x1e930a;},'setStrong':function(_0x25d5e3,_0x44745f,_0x46b9da){const _0xdfee1c=_0x41d629;var _0x4635c3=_0x44745f+_0xdfee1c(0x246),_0x6c298f=_0x139807(_0x44745f),_0x1121ca=_0x139807(_0x4635c3);_0x4bc313(_0x25d5e3,_0x44745f,function(_0x131b44,_0x256cd5){_0x2348a6(this,{'type':_0x4635c3,'target':_0x131b44,'state':_0x6c298f(_0x131b44),'kind':_0x256cd5,'last':undefined});},function(){const _0x52154e=_0xdfee1c;var _0xc48063=_0x1121ca(this),_0x3a5982=_0xc48063['kind'],_0x4406a6=_0xc48063['last'];while(_0x4406a6&&_0x4406a6[_0x52154e(0x854)])_0x4406a6=_0x4406a6[_0x52154e(0xf3)];if(!_0xc48063[_0x52154e(0x1c8)]||!(_0xc48063['last']=_0x4406a6=_0x4406a6?_0x4406a6['next']:_0xc48063[_0x52154e(0x25a)][_0x52154e(0x7a6)]))return _0xc48063[_0x52154e(0x1c8)]=undefined,_0x16dcfd(undefined,!![]);if(_0x3a5982==_0x52154e(0x30e))return _0x16dcfd(_0x4406a6[_0x52154e(0x725)],![]);if(_0x3a5982==_0x52154e(0x823))return _0x16dcfd(_0x4406a6[_0x52154e(0x2b8)],![]);return _0x16dcfd([_0x4406a6['key'],_0x4406a6[_0x52154e(0x2b8)]],![]);},_0x46b9da?_0xdfee1c(0x816):_0xdfee1c(0x823),!_0x46b9da,!![]),_0x3a79d4(_0x44745f);}};},(_0x423fa1,_0x5d360a,_0x205427)=>{const _0x1e1142=a0_0x160d;var _0x3bd4c3=_0x205427(0x47),_0x4cdad1=_0x205427(0x24);_0x423fa1[_0x1e1142(0x5e9)]=function(_0x3f5300,_0x21f3ce,_0x31b5b7){const _0x57dcee=_0x1e1142;if(_0x31b5b7[_0x57dcee(0x8c4)])_0x3bd4c3(_0x31b5b7[_0x57dcee(0x8c4)],_0x21f3ce,{'getter':!![]});if(_0x31b5b7['set'])_0x3bd4c3(_0x31b5b7['set'],_0x21f3ce,{'setter':!![]});return _0x4cdad1['f'](_0x3f5300,_0x21f3ce,_0x31b5b7);};},(_0x201577,_0x2f0e68,_0x1bc22a)=>{var _0x1a40ed=_0x1bc22a(0x46);_0x201577['exports']=function(_0x1a4e2a,_0x63ee23,_0x3612f7){for(var _0x5ceba8 in _0x63ee23)_0x1a40ed(_0x1a4e2a,_0x5ceba8,_0x63ee23[_0x5ceba8],_0x3612f7);return _0x1a4e2a;};},(_0x2f9b3e,_0x3ea671,_0x55ebce)=>{'use strict';const _0x437887=a0_0x160d;var _0xc6aac9=_0x55ebce(0x2b),_0x2c536c=_0x55ebce(0x71),_0x2cbc19=_0x55ebce(0xf),_0x1c45cd=_0x55ebce(0x22),_0x59d0ed=_0x2cbc19('species');_0x2f9b3e[_0x437887(0x5e9)]=function(_0x45ee1d){var _0x34d2ee=_0xc6aac9(_0x45ee1d);_0x1c45cd&&_0x34d2ee&&!_0x34d2ee[_0x59d0ed]&&_0x2c536c(_0x34d2ee,_0x59d0ed,{'configurable':!![],'get':function(){return this;}});};},(_0x2b26e2,_0x16d6d0,_0x2ae77b)=>{_0x2ae77b(0x75);},(_0x13bcaf,_0x724860,_0x3023b5)=>{'use strict';const _0x4a4e20=a0_0x160d;var _0x44ea38=_0x3023b5(0x5e),_0x1aae17=_0x3023b5(0x70);_0x44ea38(_0x4a4e20(0x478),function(_0x3c4e9a){return function _0x1be15e(){const _0x40d74e=a0_0x160d;return _0x3c4e9a(this,arguments[_0x40d74e(0x557)]?arguments[0x0]:undefined);};},_0x1aae17);},(_0x39ee32,_0x5aabe6,_0x4208bd)=>{const _0x200c73=a0_0x160d;var _0x4da58c=_0x4208bd(0x12),_0xca75b2=_0x4208bd(0x43),_0x5ca679=_0x4208bd(0x10),_0x2efa33=_0x4208bd(0x2b),_0x3e75a2=_0x4208bd(0x8),_0x5bf7c6=_0x4208bd(0xa),_0x108489=_0x4208bd(0x17),_0x1d52b6=_0x4208bd(0x1f),_0x1e364c=_0x4208bd(0x77),_0x3b810c=_0x4208bd(0xd),_0x1df9b7=_0x4208bd(0x1e),_0x5b0819=_0x4208bd(0x2a),_0x35fac9=_0x4208bd(0x66),_0x1a1337=_0x4208bd(0x1d),_0xc82fbc=_0x4208bd(0x5b),_0xc46f0b=_0x4208bd(0x15),_0x45385d=_0x4208bd(0x62),_0x5a01b5=_0x4208bd(0x40),_0x17ff1e=_0x4208bd(0x37),_0x3de5f0=_0x4208bd(0x78),_0x144ea6=_0x4208bd(0x79),_0x271852=_0x4208bd(0x7b),_0x49abbd=_0x4208bd(0x7c),_0x2d8dc6=_0x4208bd(0x7d),_0x3639e7=_0x4208bd(0x7e),_0x2704a8=_0x5ca679['Object'],_0x1b227c=_0x5ca679[_0x200c73(0x323)],_0x35e4c3=_0x5ca679['Date'],_0xdee424=_0x5ca679['Error'],_0xc70f20=_0x5ca679['EvalError'],_0xa2ca9e=_0x5ca679[_0x200c73(0x89c)],_0x4adf55=_0x5ca679[_0x200c73(0x69d)],_0x107d86=_0x5ca679[_0x200c73(0x9eb)],_0x177ff8=_0x5ca679[_0x200c73(0x7e9)],_0x2cbdb2=_0x5ca679['URIError'],_0x1d8e9d=_0x5ca679['PerformanceMark'],_0xed3cfe=_0x5ca679[_0x200c73(0x7ce)],_0xae05ed=_0xed3cfe&&_0xed3cfe[_0x200c73(0x38d)]||_0xdee424,_0x4b5785=_0xed3cfe&&_0xed3cfe[_0x200c73(0x730)]||_0xdee424,_0xe0c435=_0xed3cfe&&_0xed3cfe[_0x200c73(0x206)]||_0xdee424,_0x2b4d21=_0x2efa33('DOMException'),_0xa64abd=_0x271852[_0x200c73(0x6d8)],_0x2206d0=_0x271852[_0x200c73(0x373)],_0x97e7c0=_0x271852[_0x200c73(0x8c4)],_0x1be4a5=_0x271852[_0x200c73(0x98e)],_0x1ae137=_0x49abbd[_0x200c73(0x478)],_0x1470f2=_0x49abbd[_0x200c73(0x156)],_0x1d92bf=_0x2efa33(_0x200c73(0x20d),_0x200c73(0x30e)),_0x469fd0=_0x3e75a2([][_0x200c73(0x7d6)]),_0x24960f=_0x3e75a2((!![])[_0x200c73(0x7c3)]),_0x5a9359=_0x3e75a2(0x1[_0x200c73(0x7c3)]),_0x2386e4=_0x3e75a2(''['valueOf']),_0x33e932=_0x3e75a2(_0x35e4c3[_0x200c73(0x821)][_0x200c73(0x5e5)]),_0x563601=_0x108489(_0x200c73(0x8eb)),_0x3c28af=_0x200c73(0xbf),_0x1f6e29=_0x200c73(0x281),_0x441064=function(_0x3a4ce0){return!_0x5bf7c6(function(){const _0x1cccce=a0_0x160d;var _0x140cac=new _0x5ca679[(_0x1cccce(0x478))]([0x7]),_0x57d958=_0x3a4ce0(_0x140cac),_0x373274=_0x3a4ce0(_0x2704a8(0x7));return _0x57d958==_0x140cac||!_0x57d958[_0x1cccce(0x373)](0x7)||typeof _0x373274!=_0x1cccce(0x97b)||_0x373274!=0x7;})&&_0x3a4ce0;},_0x1944be=function(_0x2735e6,_0x23321b){return!_0x5bf7c6(function(){const _0x48782d=a0_0x160d;var _0x40fff4=new _0x23321b(),_0x3b9dce=_0x2735e6({'a':_0x40fff4,'b':_0x40fff4});return!(_0x3b9dce&&_0x3b9dce['a']===_0x3b9dce['b']&&_0x3b9dce['a']instanceof _0x23321b&&_0x3b9dce['a'][_0x48782d(0x274)]===_0x40fff4[_0x48782d(0x274)]);});},_0x5ce708=function(_0x137a4a){return!_0x5bf7c6(function(){const _0x4ec6d3=a0_0x160d;var _0x3d290a=_0x137a4a(new _0x5ca679[(_0x4ec6d3(0x7fc))]([0x1],_0x563601,{'cause':0x3}));return _0x3d290a[_0x4ec6d3(0x499)]!=_0x4ec6d3(0x7fc)||_0x3d290a[_0x4ec6d3(0x957)][0x0]!=0x1||_0x3d290a[_0x4ec6d3(0x1bd)]!=_0x563601||_0x3d290a['cause']!=0x3;});},_0x1ae032=_0x5ca679[_0x200c73(0x8eb)],_0xc4ebec=_0x4da58c||!_0x1944be(_0x1ae032,_0xdee424)||!_0x1944be(_0x1ae032,_0x2b4d21)||!_0x5ce708(_0x1ae032),_0x5267d7=!_0x1ae032&&_0x441064(function(_0x5bf2fd){return new _0x1d8e9d(_0x563601,{'detail':_0x5bf2fd})['detail'];}),_0x3a0650=_0x441064(_0x1ae032)||_0x5267d7,_0x24e81d=function(_0x3eb28c){const _0x25d668=_0x200c73;throw new _0x2b4d21(_0x25d668(0x197)+_0x3eb28c,_0x3c28af);},_0x144eef=function(_0x461dab,_0x104c4f){const _0x34700a=_0x200c73;throw new _0x2b4d21((_0x104c4f||'Cloning')+_0x34700a(0x31a)+_0x461dab+_0x34700a(0x94a),_0x3c28af);},_0x4619dc=function(_0x1e9b0a,_0x59433a){if(!_0x3a0650)_0x144eef(_0x59433a);return _0x3a0650(_0x1e9b0a);},_0x273ed6=function(){const _0x112d01=_0x200c73;var _0x13b35e;try{_0x13b35e=new _0x5ca679[(_0x112d01(0x84d))]();}catch(_0x18054a){try{_0x13b35e=new _0x5ca679[(_0x112d01(0x5ac))]('')[_0x112d01(0x227)];}catch(_0x3b9ddb){}}return _0x13b35e&&_0x13b35e[_0x112d01(0x44d)]&&_0x13b35e['files']?_0x13b35e:null;},_0x2ff770=function(_0x4c0b9f,_0x214e7f){const _0x4986be=_0x200c73;if(_0x5b0819(_0x4c0b9f))_0x24e81d(_0x4986be(0x36b));if(!_0x1df9b7(_0x4c0b9f))return _0x4c0b9f;if(_0x214e7f){if(_0x2206d0(_0x214e7f,_0x4c0b9f))return _0x97e7c0(_0x214e7f,_0x4c0b9f);}else _0x214e7f=new _0xa64abd();var _0x3de9f7=_0xc82fbc(_0x4c0b9f),_0x447f0d=![],_0x325df8,_0x4cf0bd,_0x388d94,_0x566edb,_0x524f0e,_0x59744e,_0x42eaab,_0x2fb313,_0x14e200,_0x5e3a94,_0x26997e;switch(_0x3de9f7){case _0x4986be(0x323):_0x388d94=_0x1b227c(_0x17ff1e(_0x4c0b9f)),_0x447f0d=!![];break;case _0x4986be(0x20d):_0x388d94={},_0x447f0d=!![];break;case _0x4986be(0x6d8):_0x388d94=new _0xa64abd(),_0x447f0d=!![];break;case _0x4986be(0x478):_0x388d94=new _0x1ae137(),_0x447f0d=!![];break;case _0x4986be(0x425):_0x388d94=new RegExp(_0x4c0b9f[_0x4986be(0x3b5)],_0x144ea6(_0x4c0b9f));break;case'Error':_0x4cf0bd=_0x4c0b9f['name'];switch(_0x4cf0bd){case _0x4986be(0x7fc):_0x388d94=_0x2efa33(_0x4986be(0x7fc))([]);break;case _0x4986be(0x9ba):_0x388d94=_0xc70f20();break;case'RangeError':_0x388d94=_0xa2ca9e();break;case _0x4986be(0x69d):_0x388d94=_0x4adf55();break;case _0x4986be(0x9eb):_0x388d94=_0x107d86();break;case _0x4986be(0x7e9):_0x388d94=_0x177ff8();break;case _0x4986be(0x7f6):_0x388d94=_0x2cbdb2();break;case _0x4986be(0x38d):_0x388d94=_0xae05ed();break;case _0x4986be(0x730):_0x388d94=_0x4b5785();break;case _0x4986be(0x206):_0x388d94=_0xe0c435();break;default:_0x388d94=_0xdee424();}_0x447f0d=!![];break;case _0x4986be(0x64c):_0x388d94=new _0x2b4d21(_0x4c0b9f[_0x4986be(0x1bd)],_0x4c0b9f['name']),_0x447f0d=!![];break;case'DataView':case _0x4986be(0x6c6):case'Uint8Array':case _0x4986be(0x41c):case _0x4986be(0x364):case _0x4986be(0x717):case _0x4986be(0x899):case'Uint32Array':case _0x4986be(0x1cc):case'Float64Array':case _0x4986be(0x1ef):case'BigUint64Array':_0x325df8=_0x5ca679[_0x3de9f7];if(!_0x1df9b7(_0x325df8))_0x144eef(_0x3de9f7);_0x388d94=new _0x325df8(_0x2ff770(_0x4c0b9f[_0x4986be(0x948)],_0x214e7f),_0x4c0b9f[_0x4986be(0x9c6)],_0x3de9f7===_0x4986be(0x6c0)?_0x4c0b9f[_0x4986be(0x110)]:_0x4c0b9f[_0x4986be(0x557)]);break;case _0x4986be(0x391):try{_0x388d94=new DOMQuad(_0x2ff770(_0x4c0b9f['p1'],_0x214e7f),_0x2ff770(_0x4c0b9f['p2'],_0x214e7f),_0x2ff770(_0x4c0b9f['p3'],_0x214e7f),_0x2ff770(_0x4c0b9f['p4'],_0x214e7f));}catch(_0x55f794){_0x388d94=_0x4619dc(_0x4c0b9f,_0x3de9f7);}break;case'File':if(_0x3a0650)try{_0x388d94=_0x3a0650(_0x4c0b9f);if(_0xc82fbc(_0x388d94)!==_0x3de9f7)_0x388d94=undefined;}catch(_0x54bb8e){}if(!_0x388d94)try{_0x388d94=new File([_0x4c0b9f],_0x4c0b9f[_0x4986be(0x499)],_0x4c0b9f);}catch(_0x51fd20){}if(!_0x388d94)_0x144eef(_0x3de9f7);break;case'FileList':_0x566edb=_0x273ed6();if(_0x566edb){for(_0x524f0e=0x0,_0x59744e=_0x17ff1e(_0x4c0b9f);_0x524f0e<_0x59744e;_0x524f0e++){_0x566edb['items'][_0x4986be(0x156)](_0x2ff770(_0x4c0b9f[_0x524f0e],_0x214e7f));}_0x388d94=_0x566edb[_0x4986be(0x5df)];}else _0x388d94=_0x4619dc(_0x4c0b9f,_0x3de9f7);break;case _0x4986be(0x857):try{_0x388d94=new ImageData(_0x2ff770(_0x4c0b9f[_0x4986be(0x41b)],_0x214e7f),_0x4c0b9f[_0x4986be(0x98b)],_0x4c0b9f['height'],{'colorSpace':_0x4c0b9f['colorSpace']});}catch(_0x41c069){_0x388d94=_0x4619dc(_0x4c0b9f,_0x3de9f7);}break;default:if(_0x3a0650)_0x388d94=_0x3a0650(_0x4c0b9f);else switch(_0x3de9f7){case _0x4986be(0x9c4):_0x388d94=_0x2704a8(_0x4c0b9f[_0x4986be(0x7c3)]());break;case'Boolean':_0x388d94=_0x2704a8(_0x24960f(_0x4c0b9f));break;case'Number':_0x388d94=_0x2704a8(_0x5a9359(_0x4c0b9f));break;case'String':_0x388d94=_0x2704a8(_0x2386e4(_0x4c0b9f));break;case _0x4986be(0x732):_0x388d94=new _0x35e4c3(_0x33e932(_0x4c0b9f));break;case _0x4986be(0x28c):_0x325df8=_0x5ca679[_0x4986be(0x6c0)];if(!_0x325df8&&typeof _0x4c0b9f[_0x4986be(0x80c)]!=_0x4986be(0x4ec))_0x144eef(_0x3de9f7);try{if(typeof _0x4c0b9f[_0x4986be(0x80c)]==_0x4986be(0x4ec)&&!_0x4c0b9f[_0x4986be(0x252)])_0x388d94=_0x4c0b9f['slice'](0x0);else{_0x59744e=_0x4c0b9f[_0x4986be(0x110)],_0x26997e='maxByteLength'in _0x4c0b9f?{'maxByteLength':_0x4c0b9f[_0x4986be(0x347)]}:undefined,_0x388d94=new ArrayBuffer(_0x59744e,_0x26997e),_0x14e200=new _0x325df8(_0x4c0b9f),_0x5e3a94=new _0x325df8(_0x388d94);for(_0x524f0e=0x0;_0x524f0e<_0x59744e;_0x524f0e++){_0x5e3a94[_0x4986be(0x599)](_0x524f0e,_0x14e200[_0x4986be(0x250)](_0x524f0e));}}}catch(_0x1fde44){throw new _0x2b4d21(_0x4986be(0x7e8),_0x3c28af);}break;case _0x4986be(0x851):_0x388d94=_0x4c0b9f;break;case _0x4986be(0x8be):try{_0x388d94=_0x4c0b9f[_0x4986be(0x80c)](0x0,_0x4c0b9f['size'],_0x4c0b9f['type']);}catch(_0x58c73c){_0x144eef(_0x3de9f7);}break;case _0x4986be(0xc6):case _0x4986be(0x7ba):_0x325df8=_0x5ca679[_0x3de9f7];try{_0x388d94=_0x325df8['fromPoint']?_0x325df8[_0x4986be(0x919)](_0x4c0b9f):new _0x325df8(_0x4c0b9f['x'],_0x4c0b9f['y'],_0x4c0b9f['z'],_0x4c0b9f['w']);}catch(_0xeb7b6f){_0x144eef(_0x3de9f7);}break;case _0x4986be(0x41d):case _0x4986be(0x7b0):_0x325df8=_0x5ca679[_0x3de9f7];try{_0x388d94=_0x325df8['fromRect']?_0x325df8['fromRect'](_0x4c0b9f):new _0x325df8(_0x4c0b9f['x'],_0x4c0b9f['y'],_0x4c0b9f[_0x4986be(0x98b)],_0x4c0b9f['height']);}catch(_0x34c146){_0x144eef(_0x3de9f7);}break;case _0x4986be(0x2a7):case _0x4986be(0x577):_0x325df8=_0x5ca679[_0x3de9f7];try{_0x388d94=_0x325df8[_0x4986be(0x62e)]?_0x325df8[_0x4986be(0x62e)](_0x4c0b9f):new _0x325df8(_0x4c0b9f);}catch(_0x4f12c3){_0x144eef(_0x3de9f7);}break;case _0x4986be(0x9df):case _0x4986be(0x63b):if(!_0x1d52b6(_0x4c0b9f['clone']))_0x144eef(_0x3de9f7);try{_0x388d94=_0x4c0b9f[_0x4986be(0x461)]();}catch(_0x581c7c){_0x24e81d(_0x3de9f7);}break;case _0x4986be(0xe2):case _0x4986be(0x9ea):case'FileSystemDirectoryHandle':case _0x4986be(0x674):case _0x4986be(0x375):case'GPUCompilationInfo':case _0x4986be(0xa06):case _0x4986be(0x8e0):case _0x4986be(0x8f3):case _0x4986be(0x921):_0x144eef(_0x3de9f7);default:_0x24e81d(_0x3de9f7);}}_0x1be4a5(_0x214e7f,_0x4c0b9f,_0x388d94);if(_0x447f0d)switch(_0x3de9f7){case _0x4986be(0x323):case _0x4986be(0x20d):_0x42eaab=_0x1d92bf(_0x4c0b9f);for(_0x524f0e=0x0,_0x59744e=_0x17ff1e(_0x42eaab);_0x524f0e<_0x59744e;_0x524f0e++){_0x2fb313=_0x42eaab[_0x524f0e],_0x45385d(_0x388d94,_0x2fb313,_0x2ff770(_0x4c0b9f[_0x2fb313],_0x214e7f));}break;case _0x4986be(0x6d8):_0x4c0b9f[_0x4986be(0x859)](function(_0x18d1bb,_0x5a85aa){_0x1be4a5(_0x388d94,_0x2ff770(_0x5a85aa,_0x214e7f),_0x2ff770(_0x18d1bb,_0x214e7f));});break;case'Set':_0x4c0b9f['forEach'](function(_0x1fb43f){_0x1470f2(_0x388d94,_0x2ff770(_0x1fb43f,_0x214e7f));});break;case _0x4986be(0x348):_0x5a01b5(_0x388d94,'message',_0x2ff770(_0x4c0b9f[_0x4986be(0x1bd)],_0x214e7f));_0xc46f0b(_0x4c0b9f,'cause')&&_0x5a01b5(_0x388d94,'cause',_0x2ff770(_0x4c0b9f[_0x4986be(0x283)],_0x214e7f));_0x4cf0bd==_0x4986be(0x7fc)&&(_0x388d94[_0x4986be(0x957)]=_0x2ff770(_0x4c0b9f[_0x4986be(0x957)],_0x214e7f));case'DOMException':_0x2d8dc6&&_0x5a01b5(_0x388d94,'stack',_0x2ff770(_0x4c0b9f['stack'],_0x214e7f));}return _0x388d94;},_0x472ac3=function(_0x17ef50,_0x4afa34){const _0x5e3c9a=_0x200c73;if(!_0x1df9b7(_0x17ef50))throw _0x177ff8(_0x5e3c9a(0x1d3));var _0x51b2ad=[];_0x35fac9(_0x17ef50,function(_0x34091a){_0x469fd0(_0x51b2ad,_0x1a1337(_0x34091a));});var _0x5aa385=0x0,_0x186a41=_0x17ff1e(_0x51b2ad),_0x1f387d,_0x444320,_0x583c92,_0x49a43b,_0x517cfa,_0x2a9fc4,_0x18ce0a;if(_0x3639e7){_0x49a43b=_0x1ae032(_0x51b2ad,{'transfer':_0x51b2ad});while(_0x5aa385<_0x186a41)_0x1be4a5(_0x4afa34,_0x51b2ad[_0x5aa385],_0x49a43b[_0x5aa385++]);}else while(_0x5aa385<_0x186a41){_0x1f387d=_0x51b2ad[_0x5aa385++];if(_0x2206d0(_0x4afa34,_0x1f387d))throw new _0x2b4d21(_0x5e3c9a(0x652),_0x3c28af);_0x444320=_0xc82fbc(_0x1f387d);switch(_0x444320){case _0x5e3c9a(0x8e0):_0x583c92=_0x5ca679[_0x5e3c9a(0x3e2)];if(!_0x1e364c(_0x583c92))_0x144eef(_0x444320,_0x1f6e29);try{_0x2a9fc4=new _0x583c92(_0x1f387d['width'],_0x1f387d[_0x5e3c9a(0x999)]),_0x18ce0a=_0x2a9fc4['getContext']('bitmaprenderer'),_0x18ce0a['transferFromImageBitmap'](_0x1f387d),_0x517cfa=_0x2a9fc4[_0x5e3c9a(0x5de)]();}catch(_0x54f05e){}break;case _0x5e3c9a(0x9df):case'VideoFrame':if(!_0x1d52b6(_0x1f387d[_0x5e3c9a(0x461)])||!_0x1d52b6(_0x1f387d[_0x5e3c9a(0x70e)]))_0x144eef(_0x444320,_0x1f6e29);try{_0x517cfa=_0x1f387d[_0x5e3c9a(0x461)](),_0x1f387d[_0x5e3c9a(0x70e)]();}catch(_0x423376){}break;case _0x5e3c9a(0x28c):if(!_0x1d52b6(_0x1f387d[_0x5e3c9a(0x5fd)]))_0x144eef(_0x444320,_0x1f6e29);_0x517cfa=_0x1f387d[_0x5e3c9a(0x5fd)]();break;case'MediaSourceHandle':case'MessagePort':case _0x5e3c9a(0x3e2):case _0x5e3c9a(0x31b):case'TransformStream':case'WritableStream':_0x144eef(_0x444320,_0x1f6e29);}if(_0x517cfa===undefined)throw new _0x2b4d21(_0x5e3c9a(0x982)+_0x444320,_0x3c28af);_0x1be4a5(_0x4afa34,_0x1f387d,_0x517cfa);}};_0xca75b2({'global':!![],'enumerable':!![],'sham':!_0x3639e7,'forced':_0xc4ebec},{'structuredClone':function _0x36ce12(_0x8e5260){const _0x488ed1=_0x200c73;var _0x54164f=_0x3de5f0(arguments[_0x488ed1(0x557)],0x1)>0x1&&!_0x3b810c(arguments[0x1])?_0x1a1337(arguments[0x1]):undefined,_0x16c472=_0x54164f?_0x54164f[_0x488ed1(0x5fd)]:undefined,_0x2f7c34;return _0x16c472!==undefined&&(_0x2f7c34=new _0xa64abd(),_0x472ac3(_0x16c472,_0x2f7c34)),_0x2ff770(_0x8e5260,_0x2f7c34);}});},(_0x15eefe,_0x427d52,_0x483ed5)=>{const _0x203431=a0_0x160d;var _0x147d90=_0x483ed5(0x8),_0x8f4450=_0x483ed5(0xa),_0x409113=_0x483ed5(0x1f),_0x1c488f=_0x483ed5(0x5b),_0x3b96c1=_0x483ed5(0x2b),_0x5f3b7b=_0x483ed5(0x49),_0x475580=function(){},_0x2e757c=[],_0x5815bb=_0x3b96c1(_0x203431(0x9d8),_0x203431(0x533)),_0x478060=/^\s*(?:class|function)\b/,_0x2b2785=_0x147d90(_0x478060[_0x203431(0x249)]),_0x49a398=!_0x478060[_0x203431(0x249)](_0x475580),_0x343792=function _0x5de94d(_0x1eef1d){if(!_0x409113(_0x1eef1d))return![];try{return _0x5815bb(_0x475580,_0x2e757c,_0x1eef1d),!![];}catch(_0x5f5d1b){return![];}},_0x50184c=function _0x140cd2(_0x3c4962){const _0x48fc81=_0x203431;if(!_0x409113(_0x3c4962))return![];switch(_0x1c488f(_0x3c4962)){case _0x48fc81(0x6a0):case'GeneratorFunction':case _0x48fc81(0x888):return![];}try{return _0x49a398||!!_0x2b2785(_0x478060,_0x5f3b7b(_0x3c4962));}catch(_0x1b29c5){return!![];}};_0x50184c[_0x203431(0x3cd)]=!![],_0x15eefe[_0x203431(0x5e9)]=!_0x5815bb||_0x8f4450(function(){var _0x518207;return _0x343792(_0x343792['call'])||!_0x343792(Object)||!_0x343792(function(){_0x518207=!![];})||_0x518207;})?_0x50184c:_0x343792;},_0x76bc75=>{const _0x1c9c9b=a0_0x160d;var _0x149e63=TypeError;_0x76bc75[_0x1c9c9b(0x5e9)]=function(_0x5aa861,_0x20d941){if(_0x5aa861<_0x20d941)throw _0x149e63('Not\x20enough\x20arguments');return _0x5aa861;};},(_0xc7ee95,_0x34012a,_0x5485a7)=>{const _0x282e21=a0_0x160d;var _0x1d2dbf=_0x5485a7(0x29),_0x810bf1=_0x5485a7(0x15),_0x28ee6d=_0x5485a7(0x2c),_0x24391b=_0x5485a7(0x7a),_0x55e466=RegExp[_0x282e21(0x821)];_0xc7ee95[_0x282e21(0x5e9)]=function(_0x16fd2d){const _0x551c80=_0x282e21;var _0x2884ed=_0x16fd2d[_0x551c80(0x451)];return _0x2884ed===undefined&&!(_0x551c80(0x451)in _0x55e466)&&!_0x810bf1(_0x16fd2d,_0x551c80(0x451))&&_0x28ee6d(_0x55e466,_0x16fd2d)?_0x1d2dbf(_0x24391b,_0x16fd2d):_0x2884ed;};},(_0x31ff80,_0x353eda,_0x85644e)=>{'use strict';const _0x21320b=a0_0x160d;var _0x1d0c7c=_0x85644e(0x1d);_0x31ff80[_0x21320b(0x5e9)]=function(){const _0x3b1d0e=_0x21320b;var _0xe7e6a9=_0x1d0c7c(this),_0x567669='';if(_0xe7e6a9[_0x3b1d0e(0x5b3)])_0x567669+='d';if(_0xe7e6a9['global'])_0x567669+='g';if(_0xe7e6a9[_0x3b1d0e(0x800)])_0x567669+='i';if(_0xe7e6a9[_0x3b1d0e(0x973)])_0x567669+='m';if(_0xe7e6a9[_0x3b1d0e(0x3ee)])_0x567669+='s';if(_0xe7e6a9[_0x3b1d0e(0x1ae)])_0x567669+='u';if(_0xe7e6a9[_0x3b1d0e(0x608)])_0x567669+='v';if(_0xe7e6a9['sticky'])_0x567669+='y';return _0x567669;};},(_0x381bb1,_0x5aa995,_0x150b4d)=>{const _0xe864f9=a0_0x160d;var _0x5c9a42=_0x150b4d(0x8),_0x32ed11=Map[_0xe864f9(0x821)];_0x381bb1[_0xe864f9(0x5e9)]={'Map':Map,'set':_0x5c9a42(_0x32ed11['set']),'get':_0x5c9a42(_0x32ed11['get']),'has':_0x5c9a42(_0x32ed11['has']),'remove':_0x5c9a42(_0x32ed11[_0xe864f9(0x65f)]),'proto':_0x32ed11};},(_0x2d2dff,_0x243991,_0x5522b4)=>{const _0x45fc73=a0_0x160d;var _0x532eac=_0x5522b4(0x8),_0x4c9800=Set['prototype'];_0x2d2dff[_0x45fc73(0x5e9)]={'Set':Set,'add':_0x532eac(_0x4c9800[_0x45fc73(0x156)]),'has':_0x532eac(_0x4c9800[_0x45fc73(0x373)]),'remove':_0x532eac(_0x4c9800[_0x45fc73(0x65f)]),'proto':_0x4c9800};},(_0x759f5e,_0x443e7d,_0x1914b9)=>{const _0xbe9ca3=a0_0x160d;var _0x25e37a=_0x1914b9(0xa),_0x1f6b9e=_0x1914b9(0x41);_0x759f5e[_0xbe9ca3(0x5e9)]=!_0x25e37a(function(){const _0x42201a=_0xbe9ca3;var _0x108236=Error('a');if(!(_0x42201a(0x274)in _0x108236))return!![];return Object['defineProperty'](_0x108236,_0x42201a(0x274),_0x1f6b9e(0x1,0x7)),_0x108236['stack']!==0x7;});},(_0x386109,_0x4fe64d,_0x3772f2)=>{const _0x1ba9cf=a0_0x160d;var _0x5ab6b6=_0x3772f2(0x10),_0x7c00c6=_0x3772f2(0xa),_0x4d987f=_0x3772f2(0x19),_0x4de34d=_0x3772f2(0x7f),_0x14296a=_0x3772f2(0x80),_0x2e8bfa=_0x3772f2(0x81),_0x4105cc=_0x5ab6b6[_0x1ba9cf(0x8eb)];_0x386109[_0x1ba9cf(0x5e9)]=!!_0x4105cc&&!_0x7c00c6(function(){const _0x564d7e=_0x1ba9cf;if(_0x14296a&&_0x4d987f>0x5c||_0x2e8bfa&&_0x4d987f>0x5e||_0x4de34d&&_0x4d987f>0x61)return![];var _0x219e4e=new ArrayBuffer(0x8),_0x4230ca=_0x4105cc(_0x219e4e,{'transfer':[_0x219e4e]});return _0x219e4e[_0x564d7e(0x110)]!=0x0||_0x4230ca[_0x564d7e(0x110)]!=0x8;});},(_0x231a95,_0x400bb5,_0x1b5d98)=>{const _0x6d5dc0=a0_0x160d;var _0x14fcbd=_0x1b5d98(0x80),_0x1e5032=_0x1b5d98(0x81);_0x231a95[_0x6d5dc0(0x5e9)]=!_0x14fcbd&&!_0x1e5032&&typeof window=='object'&&typeof document==_0x6d5dc0(0x97b);},_0x5b6325=>{const _0x220cbe=a0_0x160d;_0x5b6325[_0x220cbe(0x5e9)]=typeof Deno==_0x220cbe(0x97b)&&Deno&&typeof Deno[_0x220cbe(0x5b4)]==_0x220cbe(0x97b);},(_0x5dde23,_0x4d4428,_0x476ac4)=>{const _0x4e9501=a0_0x160d;var _0x2fcfb0=_0x476ac4(0xb);_0x5dde23[_0x4e9501(0x5e9)]=typeof process!='undefined'&&_0x2fcfb0(process)==_0x4e9501(0x94f);},(_0x4e2856,_0x23be23,_0x27e830)=>{const _0x13fba6=a0_0x160d;var _0x5e8e93=_0x27e830(0x10);_0x4e2856[_0x13fba6(0x5e9)]=_0x5e8e93;},(_0x19faa8,_0x19c6a2,_0x4256a6)=>{'use strict';const _0x22d831=a0_0x160d;Object[_0x22d831(0x430)](_0x19c6a2,'__esModule',{'value':!![]}),_0x19c6a2[_0x22d831(0x407)]=_0x19c6a2['RenderTask']=_0x19c6a2[_0x22d831(0x4ea)]=_0x19c6a2[_0x22d831(0x7f1)]=_0x19c6a2['PDFPageProxy']=_0x19c6a2[_0x22d831(0x6ee)]=_0x19c6a2[_0x22d831(0x668)]=_0x19c6a2['PDFDataRangeTransport']=_0x19c6a2[_0x22d831(0x36e)]=_0x19c6a2[_0x22d831(0x61d)]=_0x19c6a2[_0x22d831(0x126)]=_0x19c6a2[_0x22d831(0x96d)]=_0x19c6a2[_0x22d831(0xa01)]=void 0x0,_0x19c6a2[_0x22d831(0x48c)]=_0x338f66,_0x19c6a2[_0x22d831(0x5b4)]=void 0x0;var _0x22b0ce=_0x4256a6(0x1),_0x33bd62=_0x4256a6(0x84),_0x4c8b78=_0x4256a6(0x87),_0xaadc95=_0x4256a6(0x8a),_0xc5f573=_0x4256a6(0x8b),_0x55f54e=_0x4256a6(0x8e),_0x425afa=_0x4256a6(0x3),_0x1cf9e7=_0x4256a6(0x8f),_0x8d02af=_0x4256a6(0x90),_0x3f32eb=_0x4256a6(0x91),_0x1f1afc=_0x4256a6(0x92),_0x4e4308=_0x4256a6(0x93);const _0x2f11bd=0x10000,_0x36704e=0x64,_0x4bbcfc=0x1388,_0x29d0fe=_0x425afa['isNodeJS']?_0x4256a6(0x94)[_0x22d831(0x6b9)]:_0x4c8b78[_0x22d831(0x4fc)];_0x19c6a2[_0x22d831(0x96d)]=_0x29d0fe;const _0x504654=_0x425afa[_0x22d831(0x8c5)]?_0x4256a6(0x94)[_0x22d831(0x34f)]:_0x4c8b78[_0x22d831(0x591)];_0x19c6a2[_0x22d831(0xa01)]=_0x504654;const _0x17d9f2=_0x425afa[_0x22d831(0x8c5)]?_0x4256a6(0x94)[_0x22d831(0x77e)]:_0x4c8b78['DOMFilterFactory'];_0x19c6a2[_0x22d831(0x126)]=_0x17d9f2;const _0x339d50=_0x425afa[_0x22d831(0x8c5)]?_0x4256a6(0x94)[_0x22d831(0x666)]:_0x4c8b78[_0x22d831(0x70c)];_0x19c6a2[_0x22d831(0x61d)]=_0x339d50;let _0x3d30d5;{if(_0x425afa[_0x22d831(0x8c5)]){const {PDFNodeStream:_0x32b076}=_0x4256a6(0x95);_0x3d30d5=_0x1c757f=>{return new _0x32b076(_0x1c757f);};}else{const {PDFNetworkStream:_0x34148c}=_0x4256a6(0x98),{PDFFetchStream:_0x17b095}=_0x4256a6(0x99);_0x3d30d5=_0x972ba4=>{const _0x1241ef=_0x22d831;return(0x0,_0x4c8b78[_0x1241ef(0x969)])(_0x972ba4[_0x1241ef(0x6a1)])?new _0x17b095(_0x972ba4):new _0x34148c(_0x972ba4);};}}function _0x338f66(_0x5b155b){const _0x52d73c=_0x22d831;if(typeof _0x5b155b===_0x52d73c(0x8cd)||_0x5b155b instanceof URL)_0x5b155b={'url':_0x5b155b};else(0x0,_0x22b0ce[_0x52d73c(0x14d)])(_0x5b155b)&&(_0x5b155b={'data':_0x5b155b});if(typeof _0x5b155b!==_0x52d73c(0x97b))throw new Error(_0x52d73c(0x2a8));if(!_0x5b155b[_0x52d73c(0x6a1)]&&!_0x5b155b[_0x52d73c(0x41b)]&&!_0x5b155b[_0x52d73c(0x667)])throw new Error(_0x52d73c(0x3ba));const _0x5e963d=new _0x51e033(),{docId:_0x5e2fb9}=_0x5e963d,_0x26cb28=_0x5b155b[_0x52d73c(0x6a1)]?_0x514428(_0x5b155b[_0x52d73c(0x6a1)]):null,_0x5786b4=_0x5b155b['data']?_0xee98e4(_0x5b155b[_0x52d73c(0x41b)]):null,_0x4a581d=_0x5b155b[_0x52d73c(0x4a6)]||null,_0x3ff753=_0x5b155b[_0x52d73c(0x113)]===!![],_0x193b85=_0x5b155b['password']??null,_0x5331eb=_0x5b155b[_0x52d73c(0x667)]instanceof _0x48be0b?_0x5b155b[_0x52d73c(0x667)]:null,_0x4c6379=Number[_0x52d73c(0x235)](_0x5b155b[_0x52d73c(0x40d)])&&_0x5b155b['rangeChunkSize']>0x0?_0x5b155b[_0x52d73c(0x40d)]:_0x2f11bd;let _0x3303af=_0x5b155b['worker']instanceof _0x228809?_0x5b155b['worker']:null;const _0x2994f0=_0x5b155b['verbosity'],_0x15d4b9=typeof _0x5b155b[_0x52d73c(0x50c)]===_0x52d73c(0x8cd)&&!(0x0,_0x4c8b78[_0x52d73c(0x337)])(_0x5b155b['docBaseUrl'])?_0x5b155b[_0x52d73c(0x50c)]:null,_0x4c1e9d=typeof _0x5b155b[_0x52d73c(0x405)]===_0x52d73c(0x8cd)?_0x5b155b[_0x52d73c(0x405)]:null,_0x8293d7=_0x5b155b[_0x52d73c(0x9a8)]!==![],_0x43dd78=_0x5b155b['CMapReaderFactory']||_0x504654,_0x2707b5=typeof _0x5b155b[_0x52d73c(0x2e7)]==='string'?_0x5b155b['standardFontDataUrl']:null,_0x194d06=_0x5b155b[_0x52d73c(0x556)]||_0x339d50,_0x1dcc56=_0x5b155b[_0x52d73c(0x12e)]!==!![],_0x258db7=Number[_0x52d73c(0x235)](_0x5b155b['maxImageSize'])&&_0x5b155b[_0x52d73c(0x46c)]>-0x1?_0x5b155b[_0x52d73c(0x46c)]:-0x1,_0x933679=_0x5b155b[_0x52d73c(0x221)]!==![],_0x362047=typeof _0x5b155b[_0x52d73c(0x5ff)]===_0x52d73c(0x3ea)?_0x5b155b['isOffscreenCanvasSupported']:!_0x425afa[_0x52d73c(0x8c5)],_0xd0ae2d=Number['isInteger'](_0x5b155b[_0x52d73c(0x736)])?_0x5b155b[_0x52d73c(0x736)]:-0x1,_0x1bac67=typeof _0x5b155b[_0x52d73c(0x8b6)]==='boolean'?_0x5b155b['disableFontFace']:_0x425afa[_0x52d73c(0x8c5)],_0x5091da=_0x5b155b[_0x52d73c(0x9d6)]===!![],_0x3ee657=_0x5b155b[_0x52d73c(0x707)]===!![],_0x68db79=_0x5b155b[_0x52d73c(0x41f)]||globalThis[_0x52d73c(0x2b1)],_0x2fe75f=_0x5b155b[_0x52d73c(0x5e0)]===!![],_0x50cc37=_0x5b155b['disableStream']===!![],_0x5e77a9=_0x5b155b[_0x52d73c(0x620)]===!![],_0x4fa6c4=_0x5b155b[_0x52d73c(0x408)]===!![],_0xcfaab7=_0x5331eb?_0x5331eb['length']:_0x5b155b[_0x52d73c(0x557)]??NaN,_0x513caa=typeof _0x5b155b[_0x52d73c(0x7bc)]===_0x52d73c(0x3ea)?_0x5b155b[_0x52d73c(0x7bc)]:!_0x425afa[_0x52d73c(0x8c5)]&&!_0x1bac67,_0xeec29b=typeof _0x5b155b[_0x52d73c(0x9e7)]==='boolean'?_0x5b155b[_0x52d73c(0x9e7)]:_0x43dd78===_0x4c8b78[_0x52d73c(0x591)]&&_0x194d06===_0x4c8b78[_0x52d73c(0x70c)]&&(0x0,_0x4c8b78['isValidFetchUrl'])(_0x4c1e9d,document[_0x52d73c(0x174)])&&(0x0,_0x4c8b78[_0x52d73c(0x969)])(_0x2707b5,document[_0x52d73c(0x174)]),_0x31f287=_0x5b155b[_0x52d73c(0x5db)]||new _0x29d0fe({'ownerDocument':_0x68db79}),_0x222384=_0x5b155b[_0x52d73c(0x491)]||new _0x17d9f2({'docId':_0x5e2fb9,'ownerDocument':_0x68db79}),_0x251263=null;(0x0,_0x22b0ce[_0x52d73c(0x290)])(_0x2994f0);const _0x21b65d={'canvasFactory':_0x31f287,'filterFactory':_0x222384};!_0xeec29b&&(_0x21b65d[_0x52d73c(0x8f4)]=new _0x43dd78({'baseUrl':_0x4c1e9d,'isCompressed':_0x8293d7}),_0x21b65d['standardFontDataFactory']=new _0x194d06({'baseUrl':_0x2707b5}));if(!_0x3303af){const _0x49a328={'verbosity':_0x2994f0,'port':_0x55f54e[_0x52d73c(0x445)][_0x52d73c(0x455)]};_0x3303af=_0x49a328[_0x52d73c(0x377)]?_0x228809[_0x52d73c(0x517)](_0x49a328):new _0x228809(_0x49a328),_0x5e963d[_0x52d73c(0x4da)]=_0x3303af;}const _0xe34cd5={'docId':_0x5e2fb9,'apiVersion':_0x52d73c(0x623),'data':_0x5786b4,'password':_0x193b85,'disableAutoFetch':_0x5e77a9,'rangeChunkSize':_0x4c6379,'length':_0xcfaab7,'docBaseUrl':_0x15d4b9,'enableXfa':_0x3ee657,'evaluatorOptions':{'maxImageSize':_0x258db7,'disableFontFace':_0x1bac67,'ignoreErrors':_0x1dcc56,'isEvalSupported':_0x933679,'isOffscreenCanvasSupported':_0x362047,'canvasMaxAreaInBytes':_0xd0ae2d,'fontExtraProperties':_0x5091da,'useSystemFonts':_0x513caa,'cMapUrl':_0xeec29b?_0x4c1e9d:null,'standardFontDataUrl':_0xeec29b?_0x2707b5:null}},_0x16ee60={'ignoreErrors':_0x1dcc56,'isEvalSupported':_0x933679,'disableFontFace':_0x1bac67,'fontExtraProperties':_0x5091da,'enableXfa':_0x3ee657,'ownerDocument':_0x68db79,'disableAutoFetch':_0x5e77a9,'pdfBug':_0x4fa6c4,'styleElement':_0x251263};return _0x3303af[_0x52d73c(0x4dd)]['then'](function(){const _0x4b3c51=_0x52d73c;if(_0x5e963d[_0x4b3c51(0x8d5)])throw new Error('Loading\x20aborted');const _0x57657b=_0x15d9a7(_0x3303af,_0xe34cd5),_0x198d6d=new Promise(function(_0x54386a){const _0x4b0aa3=_0x4b3c51;let _0x3ee50c;if(_0x5331eb)_0x3ee50c=new _0x1f1afc[(_0x4b0aa3(0x939))]({'length':_0xcfaab7,'initialData':_0x5331eb['initialData'],'progressiveDone':_0x5331eb[_0x4b0aa3(0x16b)],'contentDispositionFilename':_0x5331eb['contentDispositionFilename'],'disableRange':_0x2fe75f,'disableStream':_0x50cc37},_0x5331eb);else!_0x5786b4&&(_0x3ee50c=_0x3d30d5({'url':_0x26cb28,'length':_0xcfaab7,'httpHeaders':_0x4a581d,'withCredentials':_0x3ff753,'rangeChunkSize':_0x4c6379,'disableRange':_0x2fe75f,'disableStream':_0x50cc37}));_0x54386a(_0x3ee50c);});return Promise['all']([_0x57657b,_0x198d6d])[_0x4b3c51(0x22d)](function(_0x1e6629){const _0x2e0451=_0x4b3c51;let [_0x234217,_0x29343a]=_0x1e6629;if(_0x5e963d[_0x2e0451(0x8d5)])throw new Error(_0x2e0451(0x9e1));const _0x35a21d=new _0x1cf9e7[(_0x2e0451(0x43f))](_0x5e2fb9,_0x234217,_0x3303af[_0x2e0451(0x377)]),_0x3b072c=new _0x4387fd(_0x35a21d,_0x5e963d,_0x29343a,_0x16ee60,_0x21b65d);_0x5e963d[_0x2e0451(0x728)]=_0x3b072c,_0x35a21d[_0x2e0451(0x3e0)](_0x2e0451(0x4dc),null);});})[_0x52d73c(0x75f)](_0x5e963d['_capability']['reject']),_0x5e963d;}async function _0x15d9a7(_0x4f2fe8,_0x31e7c3){const _0x3e275c=_0x22d831;if(_0x4f2fe8[_0x3e275c(0x8d5)])throw new Error('Worker\x20was\x20destroyed');const _0x2995fa=await _0x4f2fe8['messageHandler'][_0x3e275c(0x88c)](_0x3e275c(0x12d),_0x31e7c3,_0x31e7c3[_0x3e275c(0x41b)]?[_0x31e7c3[_0x3e275c(0x41b)][_0x3e275c(0x948)]]:null);if(_0x4f2fe8[_0x3e275c(0x8d5)])throw new Error(_0x3e275c(0x61b));return _0x2995fa;}function _0x514428(_0x30edc8){const _0x6d71cd=_0x22d831;if(_0x30edc8 instanceof URL)return _0x30edc8[_0x6d71cd(0x95d)];try{return new URL(_0x30edc8,window[_0x6d71cd(0x5a1)])[_0x6d71cd(0x95d)];}catch{if(_0x425afa[_0x6d71cd(0x8c5)]&&typeof _0x30edc8==='string')return _0x30edc8;}throw new Error(_0x6d71cd(0x809)+_0x6d71cd(0x6b7));}function _0xee98e4(_0x4268fc){const _0x4fe5c3=_0x22d831;if(_0x425afa[_0x4fe5c3(0x8c5)]&&typeof Buffer!=='undefined'&&_0x4268fc instanceof Buffer)throw new Error('Please\x20provide\x20binary\x20data\x20as\x20`Uint8Array`,\x20rather\x20than\x20`Buffer`.');if(_0x4268fc instanceof Uint8Array&&_0x4268fc[_0x4fe5c3(0x110)]===_0x4268fc[_0x4fe5c3(0x948)]['byteLength'])return _0x4268fc;if(typeof _0x4268fc===_0x4fe5c3(0x8cd))return(0x0,_0x22b0ce[_0x4fe5c3(0x647)])(_0x4268fc);if(typeof _0x4268fc==='object'&&!isNaN(_0x4268fc?.['length'])||(0x0,_0x22b0ce['isArrayBuffer'])(_0x4268fc))return new Uint8Array(_0x4268fc);throw new Error(_0x4fe5c3(0x2ff)+'string,\x20or\x20array-like\x20object\x20is\x20expected\x20in\x20the\x20data\x20property.');}class _0x51e033{static #docId=0x0;constructor(){const _0x7db293=_0x22d831;this['_capability']=new _0x22b0ce[(_0x7db293(0x7e3))](),this['_transport']=null,this[_0x7db293(0x4da)]=null,this[_0x7db293(0x28d)]='d'+_0x51e033.#docId++,this[_0x7db293(0x8d5)]=![],this[_0x7db293(0x237)]=null,this[_0x7db293(0x3bf)]=null;}get[_0x22d831(0x4dd)](){const _0x19c1f0=_0x22d831;return this[_0x19c1f0(0x869)][_0x19c1f0(0x4dd)];}async[_0x22d831(0x256)](){const _0x44d6c4=_0x22d831;this[_0x44d6c4(0x8d5)]=!![],await this['_transport']?.[_0x44d6c4(0x256)](),this[_0x44d6c4(0x728)]=null,this[_0x44d6c4(0x4da)]&&(this[_0x44d6c4(0x4da)][_0x44d6c4(0x256)](),this['_worker']=null);}}_0x19c6a2[_0x22d831(0x668)]=_0x51e033;class _0x48be0b{constructor(_0x1461ef,_0x231bfa){const _0x316131=_0x22d831;let _0x685a03=arguments[_0x316131(0x557)]>0x2&&arguments[0x2]!==undefined?arguments[0x2]:![],_0x3451fe=arguments[_0x316131(0x557)]>0x3&&arguments[0x3]!==undefined?arguments[0x3]:null;this[_0x316131(0x557)]=_0x1461ef,this['initialData']=_0x231bfa,this[_0x316131(0x16b)]=_0x685a03,this['contentDispositionFilename']=_0x3451fe,this[_0x316131(0x1af)]=[],this[_0x316131(0x99a)]=[],this[_0x316131(0x4c7)]=[],this[_0x316131(0x29a)]=[],this[_0x316131(0x3a2)]=new _0x22b0ce[(_0x316131(0x7e3))]();}[_0x22d831(0x24a)](_0x21ae4d){const _0x429104=_0x22d831;this[_0x429104(0x1af)][_0x429104(0x7d6)](_0x21ae4d);}[_0x22d831(0x7db)](_0x5c3c6f){this['_progressListeners']['push'](_0x5c3c6f);}['addProgressiveReadListener'](_0x53e9c6){const _0x39b3ae=_0x22d831;this[_0x39b3ae(0x4c7)][_0x39b3ae(0x7d6)](_0x53e9c6);}['addProgressiveDoneListener'](_0x3dcb54){this['_progressiveDoneListeners']['push'](_0x3dcb54);}[_0x22d831(0x596)](_0x18c83e,_0x4fd86b){for(const _0x3064a8 of this['_rangeListeners']){_0x3064a8(_0x18c83e,_0x4fd86b);}}['onDataProgress'](_0xef4372,_0x59f920){const _0x5f4fa7=_0x22d831;this['_readyCapability']['promise'][_0x5f4fa7(0x22d)](()=>{const _0x5ddc27=_0x5f4fa7;for(const _0x31a494 of this[_0x5ddc27(0x99a)]){_0x31a494(_0xef4372,_0x59f920);}});}['onDataProgressiveRead'](_0x38a8b7){const _0x45246a=_0x22d831;this['_readyCapability'][_0x45246a(0x4dd)][_0x45246a(0x22d)](()=>{const _0x1e7332=_0x45246a;for(const _0x3696b0 of this[_0x1e7332(0x4c7)]){_0x3696b0(_0x38a8b7);}});}[_0x22d831(0x477)](){const _0x40d29=_0x22d831;this['_readyCapability']['promise'][_0x40d29(0x22d)](()=>{const _0x3ac329=_0x40d29;for(const _0x3e777f of this[_0x3ac329(0x29a)]){_0x3e777f();}});}[_0x22d831(0x1ba)](){const _0x340b28=_0x22d831;this['_readyCapability'][_0x340b28(0x442)]();}['requestDataRange'](_0x3f6e25,_0x259835){const _0x57e9db=_0x22d831;(0x0,_0x22b0ce[_0x57e9db(0x749)])(_0x57e9db(0x5af));}[_0x22d831(0x304)](){}}_0x19c6a2[_0x22d831(0x7a1)]=_0x48be0b;class _0x3e3f82{constructor(_0x497cb9,_0x1d6c84){const _0x3c22e9=_0x22d831;this['_pdfInfo']=_0x497cb9,this[_0x3c22e9(0x728)]=_0x1d6c84;}get['annotationStorage'](){const _0x29d908=_0x22d831;return this['_transport'][_0x29d908(0x5bf)];}get[_0x22d831(0x491)](){const _0xf53e5c=_0x22d831;return this['_transport'][_0xf53e5c(0x491)];}get['numPages'](){const _0x1999d6=_0x22d831;return this[_0x1999d6(0x768)]['numPages'];}get[_0x22d831(0x190)](){return this['_pdfInfo']['fingerprints'];}get[_0x22d831(0x43c)](){const _0x5bcfb9=_0x22d831;return(0x0,_0x22b0ce['shadow'])(this,'isPureXfa',!!this['_transport'][_0x5bcfb9(0x3db)]);}get[_0x22d831(0x860)](){return this['_transport']['_htmlForXfa'];}[_0x22d831(0x21c)](_0x4f4ae8){const _0x4b5a6b=_0x22d831;return this[_0x4b5a6b(0x728)][_0x4b5a6b(0x21c)](_0x4f4ae8);}[_0x22d831(0x24d)](_0x149d2f){const _0x7375b5=_0x22d831;return this[_0x7375b5(0x728)][_0x7375b5(0x24d)](_0x149d2f);}[_0x22d831(0x827)](){const _0x477634=_0x22d831;return this[_0x477634(0x728)][_0x477634(0x827)]();}[_0x22d831(0x651)](_0x498e37){const _0x473758=_0x22d831;return this[_0x473758(0x728)][_0x473758(0x651)](_0x498e37);}[_0x22d831(0x152)](){const _0x443e4f=_0x22d831;return this[_0x443e4f(0x728)]['getPageLabels']();}[_0x22d831(0x14f)](){const _0x4a9d58=_0x22d831;return this[_0x4a9d58(0x728)]['getPageLayout']();}[_0x22d831(0x125)](){const _0x2dc544=_0x22d831;return this['_transport'][_0x2dc544(0x125)]();}[_0x22d831(0x917)](){const _0x177a58=_0x22d831;return this[_0x177a58(0x728)][_0x177a58(0x917)]();}[_0x22d831(0x3d5)](){const _0x5c99cc=_0x22d831;return this[_0x5c99cc(0x728)][_0x5c99cc(0x3d5)]();}[_0x22d831(0x362)](){const _0x239f1c=_0x22d831;return this[_0x239f1c(0x728)][_0x239f1c(0x362)]();}['getJavaScript'](){const _0x400e2d=_0x22d831;return this[_0x400e2d(0x728)][_0x400e2d(0x467)]();}[_0x22d831(0x9b2)](){const _0x40543e=_0x22d831;return this[_0x40543e(0x728)][_0x40543e(0x713)]();}[_0x22d831(0x234)](){const _0x285517=_0x22d831;return this['_transport'][_0x285517(0x234)]();}[_0x22d831(0x248)](){const _0x37774e=_0x22d831;return this[_0x37774e(0x728)][_0x37774e(0x248)]();}[_0x22d831(0x1b0)](){const _0x3f05ae=_0x22d831;return this[_0x3f05ae(0x728)][_0x3f05ae(0x1b0)]();}[_0x22d831(0x79c)](){const _0x146be7=_0x22d831;return this['_transport'][_0x146be7(0x79c)]();}[_0x22d831(0x49f)](){const _0x34109b=_0x22d831;return this['_transport'][_0x34109b(0x49f)]();}[_0x22d831(0x593)](){const _0x313a65=_0x22d831;return this['_transport'][_0x313a65(0x593)]();}[_0x22d831(0x65a)](){const _0x12d7d=_0x22d831;return this['_transport'][_0x12d7d(0x65a)]();}[_0x22d831(0x36c)](){const _0x354a77=_0x22d831;return this['_transport'][_0x354a77(0x62f)][_0x354a77(0x4dd)];}[_0x22d831(0x5d1)](){const _0x2cdaae=_0x22d831;let _0x440200=arguments[_0x2cdaae(0x557)]>0x0&&arguments[0x0]!==undefined?arguments[0x0]:![];return this[_0x2cdaae(0x728)][_0x2cdaae(0x79e)](_0x440200||this[_0x2cdaae(0x43c)]);}[_0x22d831(0x256)](){const _0x202e4c=_0x22d831;return this['loadingTask'][_0x202e4c(0x256)]();}get['loadingParams'](){const _0x56e20f=_0x22d831;return this[_0x56e20f(0x728)][_0x56e20f(0x897)];}get['loadingTask'](){const _0x3389df=_0x22d831;return this[_0x3389df(0x728)][_0x3389df(0x53f)];}[_0x22d831(0x645)](){const _0x1eabe9=_0x22d831;return this[_0x1eabe9(0x728)][_0x1eabe9(0x645)]();}[_0x22d831(0x731)](){return this['_transport']['hasJSActions']();}[_0x22d831(0x8c0)](){const _0x1a80cb=_0x22d831;return this['_transport'][_0x1a80cb(0x8c0)]();}}_0x19c6a2[_0x22d831(0x6ee)]=_0x3e3f82;class _0x57d0ac{#delayedCleanupTimeout=null;#pendingCleanup=![];constructor(_0x21cc07,_0x5717fc,_0x509096){const _0x178fbe=_0x22d831;let _0x37afae=arguments[_0x178fbe(0x557)]>0x3&&arguments[0x3]!==undefined?arguments[0x3]:![];this[_0x178fbe(0x23c)]=_0x21cc07,this[_0x178fbe(0x5bd)]=_0x5717fc,this[_0x178fbe(0x728)]=_0x509096,this[_0x178fbe(0x162)]=_0x37afae?new _0x4c8b78[(_0x178fbe(0x76c))]():null,this[_0x178fbe(0x11a)]=_0x37afae,this[_0x178fbe(0x53b)]=_0x509096[_0x178fbe(0x53b)],this[_0x178fbe(0xdc)]=new _0x3cf9da(),this[_0x178fbe(0x5fc)]=![],this[_0x178fbe(0x563)]=new Map(),this[_0x178fbe(0x8d5)]=![];}get['pageNumber'](){return this['_pageIndex']+0x1;}get[_0x22d831(0x3bb)](){const _0x560391=_0x22d831;return this[_0x560391(0x5bd)][_0x560391(0x3bb)];}get[_0x22d831(0x7e4)](){const _0x4b5486=_0x22d831;return this[_0x4b5486(0x5bd)]['ref'];}get['userUnit'](){const _0x536fbc=_0x22d831;return this[_0x536fbc(0x5bd)][_0x536fbc(0x56c)];}get[_0x22d831(0x6e4)](){const _0x1fdade=_0x22d831;return this[_0x1fdade(0x5bd)][_0x1fdade(0x6e4)];}[_0x22d831(0x3f5)](){const _0x7d508=_0x22d831;let {scale:_0x31a2ab,rotation:rotation=this[_0x7d508(0x3bb)],offsetX:offsetX=0x0,offsetY:offsetY=0x0,dontFlip:dontFlip=![]}=arguments[_0x7d508(0x557)]>0x0&&arguments[0x0]!==undefined?arguments[0x0]:{};return new _0x4c8b78[(_0x7d508(0x9bb))]({'viewBox':this[_0x7d508(0x6e4)],'scale':_0x31a2ab,'rotation':rotation,'offsetX':offsetX,'offsetY':offsetY,'dontFlip':dontFlip});}['getAnnotations'](){const _0x481308=_0x22d831;let {intent:intent='display'}=arguments[_0x481308(0x557)]>0x0&&arguments[0x0]!==undefined?arguments[0x0]:{};const _0x3ad40e=this[_0x481308(0x728)][_0x481308(0x8f5)](intent);return this['_transport'][_0x481308(0x62a)](this['_pageIndex'],_0x3ad40e[_0x481308(0x38f)]);}[_0x22d831(0x9b2)](){const _0x364239=_0x22d831;return this[_0x364239(0x728)][_0x364239(0x58d)](this[_0x364239(0x23c)]);}get[_0x22d831(0x491)](){const _0x4494ff=_0x22d831;return this[_0x4494ff(0x728)][_0x4494ff(0x491)];}get[_0x22d831(0x43c)](){const _0x2f5916=_0x22d831;return(0x0,_0x22b0ce[_0x2f5916(0x51d)])(this,_0x2f5916(0x43c),!!this[_0x2f5916(0x728)][_0x2f5916(0x3db)]);}async['getXfa'](){const _0x467ea7=_0x22d831;return this[_0x467ea7(0x728)][_0x467ea7(0x3db)]?.[_0x467ea7(0x6be)][this[_0x467ea7(0x23c)]]||null;}[_0x22d831(0x6c8)](_0x2a450a){const _0x6c7568=_0x22d831;let {canvasContext:_0x157cb9,viewport:_0x5cbc4f,intent:intent='display',annotationMode:annotationMode=_0x22b0ce[_0x6c7568(0x2a5)][_0x6c7568(0x70a)],transform:transform=null,background:background=null,optionalContentConfigPromise:optionalContentConfigPromise=null,annotationCanvasMap:annotationCanvasMap=null,pageColors:pageColors=null,printAnnotationStorage:printAnnotationStorage=null}=_0x2a450a;this[_0x6c7568(0x162)]?.['time'](_0x6c7568(0x637));const _0x47d06f=this['_transport'][_0x6c7568(0x8f5)](intent,annotationMode,printAnnotationStorage);this.#pendingCleanup=![],this.#abortDelayedCleanup();!optionalContentConfigPromise&&(optionalContentConfigPromise=this[_0x6c7568(0x728)][_0x6c7568(0x248)]());let _0x225f20=this[_0x6c7568(0x563)][_0x6c7568(0x8c4)](_0x47d06f['cacheKey']);!_0x225f20&&(_0x225f20=Object['create'](null),this['_intentStates'][_0x6c7568(0x98e)](_0x47d06f[_0x6c7568(0x2af)],_0x225f20));_0x225f20['streamReaderCancelTimeout']&&(clearTimeout(_0x225f20[_0x6c7568(0x351)]),_0x225f20[_0x6c7568(0x351)]=null);const _0x2e5132=!!(_0x47d06f['renderingIntent']&_0x22b0ce['RenderingIntentFlag'][_0x6c7568(0x6b5)]);!_0x225f20[_0x6c7568(0x712)]&&(_0x225f20[_0x6c7568(0x712)]=new _0x22b0ce[(_0x6c7568(0x7e3))](),_0x225f20[_0x6c7568(0x33f)]={'fnArray':[],'argsArray':[],'lastChunk':![],'separateAnnots':null},this[_0x6c7568(0x162)]?.[_0x6c7568(0x721)](_0x6c7568(0x949)),this[_0x6c7568(0x5fb)](_0x47d06f));const _0xfc5344=_0x3a2ade=>{const _0x3292b8=_0x6c7568;_0x225f20[_0x3292b8(0x2ea)][_0x3292b8(0x65f)](_0x4a8533),(this['_maybeCleanupAfterRender']||_0x2e5132)&&(this.#pendingCleanup=!![]),this.#tryCleanup(!_0x2e5132),_0x3a2ade?(_0x4a8533[_0x3292b8(0x540)][_0x3292b8(0x282)](_0x3a2ade),this[_0x3292b8(0x6d6)]({'intentState':_0x225f20,'reason':_0x3a2ade instanceof Error?_0x3a2ade:new Error(_0x3a2ade)})):_0x4a8533[_0x3292b8(0x540)][_0x3292b8(0x442)](),this[_0x3292b8(0x162)]?.[_0x3292b8(0x459)]('Rendering'),this[_0x3292b8(0x162)]?.['timeEnd']('Overall');},_0x4a8533=new _0x2fd724({'callback':_0xfc5344,'params':{'canvasContext':_0x157cb9,'viewport':_0x5cbc4f,'transform':transform,'background':background},'objs':this[_0x6c7568(0xdc)],'commonObjs':this[_0x6c7568(0x53b)],'annotationCanvasMap':annotationCanvasMap,'operatorList':_0x225f20[_0x6c7568(0x33f)],'pageIndex':this['_pageIndex'],'canvasFactory':this[_0x6c7568(0x728)][_0x6c7568(0x5db)],'filterFactory':this['_transport'][_0x6c7568(0x491)],'useRequestAnimationFrame':!_0x2e5132,'pdfBug':this[_0x6c7568(0x11a)],'pageColors':pageColors});(_0x225f20[_0x6c7568(0x2ea)]||=new Set())['add'](_0x4a8533);const _0x4afba4=_0x4a8533[_0x6c7568(0x7c4)];return Promise[_0x6c7568(0x586)]([_0x225f20[_0x6c7568(0x712)]['promise'],optionalContentConfigPromise])[_0x6c7568(0x22d)](_0x41b476=>{const _0x41613d=_0x6c7568;let [_0x204610,_0x5e508e]=_0x41b476;if(this[_0x41613d(0x8d5)]){_0xfc5344();return;}this['_stats']?.['time']('Rendering'),_0x4a8533[_0x41613d(0x86d)]({'transparency':_0x204610,'optionalContentConfig':_0x5e508e}),_0x4a8533[_0x41613d(0x7c2)]();})[_0x6c7568(0x75f)](_0xfc5344),_0x4afba4;}[_0x22d831(0x6a3)](){const _0x223503=_0x22d831;let {intent:intent=_0x223503(0x619),annotationMode:annotationMode=_0x22b0ce['AnnotationMode'][_0x223503(0x70a)],printAnnotationStorage:printAnnotationStorage=null}=arguments[_0x223503(0x557)]>0x0&&arguments[0x0]!==undefined?arguments[0x0]:{};function _0x1c6be9(){const _0xfa7f29=_0x223503;_0x4b34cc[_0xfa7f29(0x33f)]['lastChunk']&&(_0x4b34cc[_0xfa7f29(0x74f)][_0xfa7f29(0x442)](_0x4b34cc[_0xfa7f29(0x33f)]),_0x4b34cc[_0xfa7f29(0x2ea)][_0xfa7f29(0x65f)](_0x31676c));}const _0x594ad5=this['_transport'][_0x223503(0x8f5)](intent,annotationMode,printAnnotationStorage,!![]);let _0x4b34cc=this['_intentStates']['get'](_0x594ad5[_0x223503(0x2af)]);!_0x4b34cc&&(_0x4b34cc=Object[_0x223503(0x77c)](null),this['_intentStates'][_0x223503(0x98e)](_0x594ad5[_0x223503(0x2af)],_0x4b34cc));let _0x31676c;return!_0x4b34cc['opListReadCapability']&&(_0x31676c=Object[_0x223503(0x77c)](null),_0x31676c[_0x223503(0x7c2)]=_0x1c6be9,_0x4b34cc[_0x223503(0x74f)]=new _0x22b0ce[(_0x223503(0x7e3))](),(_0x4b34cc[_0x223503(0x2ea)]||=new Set())[_0x223503(0x156)](_0x31676c),_0x4b34cc[_0x223503(0x33f)]={'fnArray':[],'argsArray':[],'lastChunk':![],'separateAnnots':null},this[_0x223503(0x162)]?.['time'](_0x223503(0x949)),this[_0x223503(0x5fb)](_0x594ad5)),_0x4b34cc['opListReadCapability'][_0x223503(0x4dd)];}['streamTextContent'](){const _0x40ab45=_0x22d831;let {includeMarkedContent:includeMarkedContent=![],disableNormalization:disableNormalization=![]}=arguments[_0x40ab45(0x557)]>0x0&&arguments[0x0]!==undefined?arguments[0x0]:{};const _0x446baa=0x64;return this[_0x40ab45(0x728)][_0x40ab45(0x67f)][_0x40ab45(0x259)](_0x40ab45(0x54c),{'pageIndex':this[_0x40ab45(0x23c)],'includeMarkedContent':includeMarkedContent===!![],'disableNormalization':disableNormalization===!![]},{'highWaterMark':_0x446baa,'size'(_0x368e2c){const _0x270d21=_0x40ab45;return _0x368e2c[_0x270d21(0x44d)]['length'];}});}[_0x22d831(0x791)](){const _0x199e49=_0x22d831;let _0x47c6dd=arguments[_0x199e49(0x557)]>0x0&&arguments[0x0]!==undefined?arguments[0x0]:{};if(this['_transport'][_0x199e49(0x3db)])return this[_0x199e49(0x535)]()['then'](_0x2bca46=>{const _0x334351=_0x199e49;return _0x4e4308[_0x334351(0x205)]['textContent'](_0x2bca46);});const _0x35004c=this[_0x199e49(0x693)](_0x47c6dd);return new Promise(function(_0x126022,_0x5f2c78){const _0x56d3c8=_0x199e49;function _0x5bedd5(){const _0x457c9b=a0_0x160d;_0x5df99b[_0x457c9b(0x37b)]()['then'](function(_0xfcc26b){const _0x236f32=_0x457c9b;let {value:_0x12c48e,done:_0x20b4cc}=_0xfcc26b;if(_0x20b4cc){_0x126022(_0x1038d8);return;}Object['assign'](_0x1038d8[_0x236f32(0xa03)],_0x12c48e['styles']),_0x1038d8[_0x236f32(0x44d)][_0x236f32(0x7d6)](..._0x12c48e['items']),_0x5bedd5();},_0x5f2c78);}const _0x5df99b=_0x35004c[_0x56d3c8(0x3dd)](),_0x1038d8={'items':[],'styles':Object['create'](null)};_0x5bedd5();});}[_0x22d831(0x8bd)](){const _0x5432aa=_0x22d831;return this[_0x5432aa(0x728)][_0x5432aa(0x8bd)](this[_0x5432aa(0x23c)]);}[_0x22d831(0x925)](){const _0x5c8bc4=_0x22d831;this['destroyed']=!![];const _0x334c66=[];for(const _0x548f28 of this[_0x5c8bc4(0x563)][_0x5c8bc4(0x823)]()){this[_0x5c8bc4(0x6d6)]({'intentState':_0x548f28,'reason':new Error(_0x5c8bc4(0x58c)),'force':!![]});if(_0x548f28[_0x5c8bc4(0x74f)])continue;for(const _0x2d8a51 of _0x548f28[_0x5c8bc4(0x2ea)]){_0x334c66[_0x5c8bc4(0x7d6)](_0x2d8a51[_0x5c8bc4(0x7c8)]),_0x2d8a51[_0x5c8bc4(0x8c6)]();}}return this[_0x5c8bc4(0xdc)][_0x5c8bc4(0x1ca)](),this.#pendingCleanup=![],this.#abortDelayedCleanup(),Promise[_0x5c8bc4(0x586)](_0x334c66);}[_0x22d831(0x5d1)](){const _0x8dc19b=_0x22d831;let _0x5f1969=arguments[_0x8dc19b(0x557)]>0x0&&arguments[0x0]!==undefined?arguments[0x0]:![];this.#pendingCleanup=!![];const _0x120d72=this.#tryCleanup(![]);return _0x5f1969&&_0x120d72&&(this[_0x8dc19b(0x162)]&&=new _0x4c8b78[(_0x8dc19b(0x76c))]()),_0x120d72;}#tryCleanup(){const _0x10e92e=_0x22d831;let _0x80f8a1=arguments[_0x10e92e(0x557)]>0x0&&arguments[0x0]!==undefined?arguments[0x0]:![];this.#abortDelayedCleanup();if(!this.#pendingCleanup||this[_0x10e92e(0x8d5)])return![];if(_0x80f8a1)return this.#delayedCleanupTimeout=setTimeout(()=>{this.#delayedCleanupTimeout=null,this.#tryCleanup(![]);},_0x4bbcfc),![];for(const {renderTasks:_0x5bd0e4,operatorList:_0x3e7b11}of this[_0x10e92e(0x563)][_0x10e92e(0x823)]()){if(_0x5bd0e4[_0x10e92e(0x87a)]>0x0||!_0x3e7b11[_0x10e92e(0x8a3)])return![];}return this['_intentStates'][_0x10e92e(0x1ca)](),this[_0x10e92e(0xdc)][_0x10e92e(0x1ca)](),this.#pendingCleanup=![],!![];}#abortDelayedCleanup(){this.#delayedCleanupTimeout&&(clearTimeout(this.#delayedCleanupTimeout),this.#delayedCleanupTimeout=null);}[_0x22d831(0x23e)](_0x4ad0e4,_0x1a8231){const _0x56235c=_0x22d831,_0x5f2bb2=this[_0x56235c(0x563)]['get'](_0x1a8231);if(!_0x5f2bb2)return;this['_stats']?.[_0x56235c(0x459)](_0x56235c(0x949)),_0x5f2bb2[_0x56235c(0x712)]?.['resolve'](_0x4ad0e4);}[_0x22d831(0x784)](_0x469cb5,_0x3558a4){const _0x239aad=_0x22d831;for(let _0x3e9f17=0x0,_0x5df5a5=_0x469cb5[_0x239aad(0x557)];_0x3e9f17<_0x5df5a5;_0x3e9f17++){_0x3558a4[_0x239aad(0x33f)][_0x239aad(0x681)][_0x239aad(0x7d6)](_0x469cb5[_0x239aad(0x681)][_0x3e9f17]),_0x3558a4[_0x239aad(0x33f)][_0x239aad(0x20c)][_0x239aad(0x7d6)](_0x469cb5[_0x239aad(0x20c)][_0x3e9f17]);}_0x3558a4[_0x239aad(0x33f)]['lastChunk']=_0x469cb5['lastChunk'],_0x3558a4[_0x239aad(0x33f)][_0x239aad(0x8df)]=_0x469cb5[_0x239aad(0x8df)];for(const _0x5d2cdd of _0x3558a4['renderTasks']){_0x5d2cdd['operatorListChanged']();}_0x469cb5['lastChunk']&&this.#tryCleanup(!![]);}[_0x22d831(0x5fb)](_0x41dfdb){const _0x268b67=_0x22d831;let {renderingIntent:_0xbeba0d,cacheKey:_0x47547f,annotationStorageSerializable:_0x18121d}=_0x41dfdb;const {map:_0xb23709,transfers:_0x35c8ca}=_0x18121d,_0x500cc7=this[_0x268b67(0x728)]['messageHandler'][_0x268b67(0x259)]('GetOperatorList',{'pageIndex':this[_0x268b67(0x23c)],'intent':_0xbeba0d,'cacheKey':_0x47547f,'annotationStorage':_0xb23709},_0x35c8ca),_0x4fddcf=_0x500cc7['getReader'](),_0x7e67ba=this[_0x268b67(0x563)][_0x268b67(0x8c4)](_0x47547f);_0x7e67ba[_0x268b67(0x321)]=_0x4fddcf;const _0x172d16=()=>{const _0x11a10a=_0x268b67;_0x4fddcf[_0x11a10a(0x37b)]()[_0x11a10a(0x22d)](_0x4830fa=>{const _0x18e486=_0x11a10a;let {value:_0x9dc114,done:_0x3fcd42}=_0x4830fa;if(_0x3fcd42){_0x7e67ba[_0x18e486(0x321)]=null;return;}if(this[_0x18e486(0x728)][_0x18e486(0x8d5)])return;this['_renderPageChunk'](_0x9dc114,_0x7e67ba),_0x172d16();},_0x490c3d=>{const _0x32dd3d=_0x11a10a;_0x7e67ba['streamReader']=null;if(this[_0x32dd3d(0x728)]['destroyed'])return;if(_0x7e67ba['operatorList']){_0x7e67ba[_0x32dd3d(0x33f)][_0x32dd3d(0x8a3)]=!![];for(const _0x580197 of _0x7e67ba['renderTasks']){_0x580197[_0x32dd3d(0x7c2)]();}this.#tryCleanup(!![]);}if(_0x7e67ba[_0x32dd3d(0x712)])_0x7e67ba[_0x32dd3d(0x712)][_0x32dd3d(0x282)](_0x490c3d);else{if(_0x7e67ba[_0x32dd3d(0x74f)])_0x7e67ba[_0x32dd3d(0x74f)]['reject'](_0x490c3d);else throw _0x490c3d;}});};_0x172d16();}[_0x22d831(0x6d6)](_0x37725b){const _0x2176a0=_0x22d831;let {intentState:_0x18fc10,reason:_0x75c3a6,force:force=![]}=_0x37725b;if(!_0x18fc10['streamReader'])return;_0x18fc10[_0x2176a0(0x351)]&&(clearTimeout(_0x18fc10['streamReaderCancelTimeout']),_0x18fc10[_0x2176a0(0x351)]=null);if(!force){if(_0x18fc10[_0x2176a0(0x2ea)]['size']>0x0)return;if(_0x75c3a6 instanceof _0x4c8b78[_0x2176a0(0x450)]){let _0x5113ff=_0x36704e;_0x75c3a6[_0x2176a0(0x74d)]>0x0&&_0x75c3a6[_0x2176a0(0x74d)]<0x3e8&&(_0x5113ff+=_0x75c3a6[_0x2176a0(0x74d)]);_0x18fc10['streamReaderCancelTimeout']=setTimeout(()=>{const _0x4dbdac=_0x2176a0;_0x18fc10[_0x4dbdac(0x351)]=null,this[_0x4dbdac(0x6d6)]({'intentState':_0x18fc10,'reason':_0x75c3a6,'force':!![]});},_0x5113ff);return;}}_0x18fc10[_0x2176a0(0x321)]['cancel'](new _0x22b0ce[(_0x2176a0(0x980))](_0x75c3a6['message']))[_0x2176a0(0x75f)](()=>{}),_0x18fc10[_0x2176a0(0x321)]=null;if(this[_0x2176a0(0x728)][_0x2176a0(0x8d5)])return;for(const [_0x1783cc,_0x15b395]of this['_intentStates']){if(_0x15b395===_0x18fc10){this[_0x2176a0(0x563)][_0x2176a0(0x65f)](_0x1783cc);break;}}this['cleanup']();}get[_0x22d831(0x2f5)](){const _0x1b0a90=_0x22d831;return this[_0x1b0a90(0x162)];}}_0x19c6a2[_0x22d831(0x3af)]=_0x57d0ac;class _0x117b10{#listeners=new Set();#deferred=Promise[_0x22d831(0x442)]();['postMessage'](_0x17ccbe,_0x1643e4){const _0x22febf=_0x22d831,_0x2c6165={'data':structuredClone(_0x17ccbe,null)};this.#deferred[_0x22febf(0x22d)](()=>{for(const _0x1ba508 of this.#listeners){_0x1ba508['call'](this,_0x2c6165);}});}[_0x22d831(0x5cc)](_0x5ba20f,_0x4345ce){const _0x201dd3=_0x22d831;this.#listeners[_0x201dd3(0x156)](_0x4345ce);}['removeEventListener'](_0x3a93d8,_0x495c58){const _0x4698f6=_0x22d831;this.#listeners[_0x4698f6(0x65f)](_0x495c58);}[_0x22d831(0x92b)](){const _0x5c44dc=_0x22d831;this.#listeners[_0x5c44dc(0x1ca)]();}}_0x19c6a2['LoopbackPort']=_0x117b10;const _0x31f3f9={'isWorkerDisabled':![],'fallbackWorkerSrc':null,'fakeWorkerId':0x0};_0x19c6a2['PDFWorkerUtil']=_0x31f3f9;{if(_0x425afa[_0x22d831(0x8c5)]&&typeof require===_0x22d831(0x4ec))_0x31f3f9[_0x22d831(0x8f8)]=!![],_0x31f3f9[_0x22d831(0x85e)]=_0x22d831(0x21a);else{if(typeof document==='object'){const _0x17bd01=document?.[_0x22d831(0x9de)]?.['src'];_0x17bd01&&(_0x31f3f9[_0x22d831(0x85e)]=_0x17bd01['replace'](/(\.(?:min\.)?js)(\?.*)?$/i,_0x22d831(0x372)));}}_0x31f3f9[_0x22d831(0x8ec)]=function(_0x443e2c,_0x5ab980){const _0x1014ae=_0x22d831;let _0x360b13;try{_0x360b13=new URL(_0x443e2c);if(!_0x360b13[_0x1014ae(0x3f8)]||_0x360b13['origin']===_0x1014ae(0x8e2))return![];}catch{return![];}const _0x253db6=new URL(_0x5ab980,_0x360b13);return _0x360b13[_0x1014ae(0x3f8)]===_0x253db6[_0x1014ae(0x3f8)];},_0x31f3f9[_0x22d831(0x9a3)]=function(_0x79274){const _0xe8b722=_0x22d831,_0x21fc20=_0xe8b722(0x103)+_0x79274+_0xe8b722(0x8fb);return URL[_0xe8b722(0x9c1)](new Blob([_0x21fc20]));};}class _0x228809{static #workerPorts=new WeakMap();constructor(){const _0x3918b0=_0x22d831;let {name:name=null,port:port=null,verbosity:verbosity=(0x0,_0x22b0ce[_0x3918b0(0x698)])()}=arguments[_0x3918b0(0x557)]>0x0&&arguments[0x0]!==undefined?arguments[0x0]:{};if(port&&_0x228809.#workerPorts[_0x3918b0(0x373)](port))throw new Error(_0x3918b0(0x7bf));this[_0x3918b0(0x499)]=name,this['destroyed']=![],this['verbosity']=verbosity,this['_readyCapability']=new _0x22b0ce[(_0x3918b0(0x7e3))](),this[_0x3918b0(0x49e)]=null,this[_0x3918b0(0xa05)]=null,this['_messageHandler']=null;if(port){_0x228809.#workerPorts[_0x3918b0(0x98e)](port,this),this[_0x3918b0(0x53d)](port);return;}this[_0x3918b0(0x9f0)]();}get[_0x22d831(0x4dd)](){const _0x620992=_0x22d831;return this[_0x620992(0x3a2)][_0x620992(0x4dd)];}get[_0x22d831(0x377)](){const _0x206c74=_0x22d831;return this[_0x206c74(0x49e)];}get[_0x22d831(0x67f)](){const _0x2f391c=_0x22d831;return this[_0x2f391c(0x266)];}[_0x22d831(0x53d)](_0x37b755){const _0x3cb209=_0x22d831;this[_0x3cb209(0x49e)]=_0x37b755,this[_0x3cb209(0x266)]=new _0x1cf9e7['MessageHandler']('main',_0x3cb209(0x66d),_0x37b755),this[_0x3cb209(0x266)]['on'](_0x3cb209(0x2e5),function(){}),this[_0x3cb209(0x3a2)][_0x3cb209(0x442)](),this[_0x3cb209(0x266)][_0x3cb209(0x3e0)](_0x3cb209(0x907),{'verbosity':this[_0x3cb209(0x476)]});}[_0x22d831(0x9f0)](){const _0x42a069=_0x22d831;if(!_0x31f3f9[_0x42a069(0x8f8)]&&!_0x228809['_mainThreadWorkerMessageHandler']){let {workerSrc:_0x6c5f7}=_0x228809;try{!_0x31f3f9[_0x42a069(0x8ec)](window['location'][_0x42a069(0x95d)],_0x6c5f7)&&(_0x6c5f7=_0x31f3f9['createCDNWrapper'](new URL(_0x6c5f7,window[_0x42a069(0x5a1)])[_0x42a069(0x95d)]));const _0x4df648=new Worker(_0x6c5f7),_0x11800f=new _0x1cf9e7[(_0x42a069(0x43f))](_0x42a069(0x9c2),_0x42a069(0x66d),_0x4df648),_0x55d82f=()=>{const _0x13fd54=_0x42a069;_0x4df648['removeEventListener'](_0x13fd54(0x9e3),_0x1e1c01),_0x11800f[_0x13fd54(0x256)](),_0x4df648[_0x13fd54(0x92b)](),this[_0x13fd54(0x8d5)]?this['_readyCapability']['reject'](new Error(_0x13fd54(0x61b))):this[_0x13fd54(0x2e6)]();},_0x1e1c01=()=>{const _0x4a10f6=_0x42a069;!this[_0x4a10f6(0xa05)]&&_0x55d82f();};_0x4df648[_0x42a069(0x5cc)](_0x42a069(0x9e3),_0x1e1c01),_0x11800f['on'](_0x42a069(0x6e7),_0x45e0d7=>{const _0x251678=_0x42a069;_0x4df648[_0x251678(0x1c0)]('error',_0x1e1c01);if(this[_0x251678(0x8d5)]){_0x55d82f();return;}_0x45e0d7?(this[_0x251678(0x266)]=_0x11800f,this[_0x251678(0x49e)]=_0x4df648,this['_webWorker']=_0x4df648,this[_0x251678(0x3a2)][_0x251678(0x442)](),_0x11800f[_0x251678(0x3e0)](_0x251678(0x907),{'verbosity':this['verbosity']})):(this['_setupFakeWorker'](),_0x11800f['destroy'](),_0x4df648[_0x251678(0x92b)]());}),_0x11800f['on'](_0x42a069(0x2e5),_0x29922b=>{const _0x13ad87=_0x42a069;_0x4df648['removeEventListener'](_0x13ad87(0x9e3),_0x1e1c01);if(this[_0x13ad87(0x8d5)]){_0x55d82f();return;}try{_0x13f4c3();}catch{this[_0x13ad87(0x2e6)]();}});const _0x13f4c3=()=>{const _0x14edf0=_0x42a069,_0x23a70f=new Uint8Array();_0x11800f[_0x14edf0(0x3e0)](_0x14edf0(0x6e7),_0x23a70f,[_0x23a70f[_0x14edf0(0x948)]]);};_0x13f4c3();return;}catch{(0x0,_0x22b0ce[_0x42a069(0x7c1)])(_0x42a069(0x4af));}}this[_0x42a069(0x2e6)]();}[_0x22d831(0x2e6)](){const _0x12b75d=_0x22d831;!_0x31f3f9[_0x12b75d(0x8f8)]&&((0x0,_0x22b0ce[_0x12b75d(0x472)])(_0x12b75d(0x49c)),_0x31f3f9[_0x12b75d(0x8f8)]=!![]),_0x228809[_0x12b75d(0x101)][_0x12b75d(0x22d)](_0xd0a7e9=>{const _0x30793f=_0x12b75d;if(this[_0x30793f(0x8d5)]){this['_readyCapability'][_0x30793f(0x282)](new Error(_0x30793f(0x61b)));return;}const _0x32579c=new _0x117b10();this[_0x30793f(0x49e)]=_0x32579c;const _0x446120=_0x30793f(0x842)+_0x31f3f9[_0x30793f(0x95a)]++,_0x1d1756=new _0x1cf9e7['MessageHandler'](_0x446120+_0x30793f(0x4da),_0x446120,_0x32579c);_0xd0a7e9[_0x30793f(0x479)](_0x1d1756,_0x32579c);const _0x5b9f3d=new _0x1cf9e7[(_0x30793f(0x43f))](_0x446120,_0x446120+'_worker',_0x32579c);this[_0x30793f(0x266)]=_0x5b9f3d,this['_readyCapability'][_0x30793f(0x442)](),_0x5b9f3d[_0x30793f(0x3e0)]('configure',{'verbosity':this[_0x30793f(0x476)]});})[_0x12b75d(0x75f)](_0x5ca870=>{const _0xf7ae9e=_0x12b75d;this[_0xf7ae9e(0x3a2)]['reject'](new Error(_0xf7ae9e(0x590)+_0x5ca870['message']+'\x22.'));});}['destroy'](){const _0x338b09=_0x22d831;this[_0x338b09(0x8d5)]=!![],this['_webWorker']&&(this[_0x338b09(0xa05)][_0x338b09(0x92b)](),this['_webWorker']=null),_0x228809.#workerPorts['delete'](this[_0x338b09(0x49e)]),this[_0x338b09(0x49e)]=null,this['_messageHandler']&&(this[_0x338b09(0x266)][_0x338b09(0x256)](),this[_0x338b09(0x266)]=null);}static['fromPort'](_0x4138c1){const _0x37bab0=_0x22d831;if(!_0x4138c1?.['port'])throw new Error(_0x37bab0(0xea));if(this.#workerPorts[_0x37bab0(0x373)](_0x4138c1['port']))return this.#workerPorts[_0x37bab0(0x8c4)](_0x4138c1[_0x37bab0(0x377)]);return new _0x228809(_0x4138c1);}static get[_0x22d831(0xe3)](){const _0x427156=_0x22d831;if(_0x55f54e[_0x427156(0x445)][_0x427156(0xe3)])return _0x55f54e[_0x427156(0x445)][_0x427156(0xe3)];if(_0x31f3f9[_0x427156(0x85e)]!==null)return!_0x425afa[_0x427156(0x8c5)]&&(0x0,_0x4c8b78['deprecated'])(_0x427156(0x565)),_0x31f3f9[_0x427156(0x85e)];throw new Error(_0x427156(0x565));}static get[_0x22d831(0x7e7)](){const _0x94cca2=_0x22d831;try{return globalThis[_0x94cca2(0x92a)]?.[_0x94cca2(0x22b)]||null;}catch{return null;}}static get[_0x22d831(0x101)](){const _0x124807=_0x22d831,_0x45480d=async()=>{const _0x355a5d=a0_0x160d,_0x21dcd0=this[_0x355a5d(0x7e7)];if(_0x21dcd0)return _0x21dcd0;if(_0x425afa[_0x355a5d(0x8c5)]&&typeof require===_0x355a5d(0x4ec)){const _0x2b3c0b=eval('require;')(this['workerSrc']);return _0x2b3c0b['WorkerMessageHandler'];}return await(0x0,_0x4c8b78[_0x355a5d(0x4f0)])(this[_0x355a5d(0xe3)]),window[_0x355a5d(0x92a)]['WorkerMessageHandler'];};return(0x0,_0x22b0ce['shadow'])(this,_0x124807(0x101),_0x45480d());}}_0x19c6a2[_0x22d831(0x7f1)]=_0x228809;class _0x4387fd{#methodPromises=new Map();#pageCache=new Map();#pagePromises=new Map();constructor(_0x4ffc7d,_0x10e31b,_0x3f4057,_0x13386f,_0x91bc93){const _0x5c4e60=_0x22d831;this['messageHandler']=_0x4ffc7d,this['loadingTask']=_0x10e31b,this[_0x5c4e60(0x53b)]=new _0x3cf9da(),this['fontLoader']=new _0xaadc95[(_0x5c4e60(0x6e3))]({'ownerDocument':_0x13386f[_0x5c4e60(0x41f)],'styleElement':_0x13386f['styleElement']}),this[_0x5c4e60(0x66f)]=_0x13386f,this[_0x5c4e60(0x5db)]=_0x91bc93['canvasFactory'],this['filterFactory']=_0x91bc93[_0x5c4e60(0x491)],this[_0x5c4e60(0x8f4)]=_0x91bc93[_0x5c4e60(0x8f4)],this[_0x5c4e60(0x759)]=_0x91bc93[_0x5c4e60(0x759)],this['destroyed']=![],this[_0x5c4e60(0x87b)]=null,this[_0x5c4e60(0x142)]=null,this['_networkStream']=_0x3f4057,this['_fullReader']=null,this['_lastProgress']=null,this[_0x5c4e60(0x62f)]=new _0x22b0ce[(_0x5c4e60(0x7e3))](),this[_0x5c4e60(0x19c)]();}#cacheSimpleMethod(_0x418162){const _0x37f149=_0x22d831;let _0x44681d=arguments[_0x37f149(0x557)]>0x1&&arguments[0x1]!==undefined?arguments[0x1]:null;const _0x3338b7=this.#methodPromises[_0x37f149(0x8c4)](_0x418162);if(_0x3338b7)return _0x3338b7;const _0x3fa43b=this[_0x37f149(0x67f)][_0x37f149(0x88c)](_0x418162,_0x44681d);return this.#methodPromises[_0x37f149(0x98e)](_0x418162,_0x3fa43b),_0x3fa43b;}get[_0x22d831(0x5bf)](){const _0x544672=_0x22d831;return(0x0,_0x22b0ce[_0x544672(0x51d)])(this,_0x544672(0x5bf),new _0x33bd62[(_0x544672(0x55c))]());}['getRenderingIntent'](_0x45ddb2){const _0x5db275=_0x22d831;let _0xc41208=arguments[_0x5db275(0x557)]>0x1&&arguments[0x1]!==undefined?arguments[0x1]:_0x22b0ce[_0x5db275(0x2a5)][_0x5db275(0x70a)],_0x288e63=arguments[_0x5db275(0x557)]>0x2&&arguments[0x2]!==undefined?arguments[0x2]:null,_0x567f6b=arguments[_0x5db275(0x557)]>0x3&&arguments[0x3]!==undefined?arguments[0x3]:![],_0x1d2a41=_0x22b0ce[_0x5db275(0x2b5)][_0x5db275(0x5ae)],_0x47c115=_0x33bd62['SerializableEmpty'];switch(_0x45ddb2){case _0x5db275(0xcc):_0x1d2a41=_0x22b0ce[_0x5db275(0x2b5)][_0x5db275(0x3a8)];break;case _0x5db275(0x619):break;case'print':_0x1d2a41=_0x22b0ce[_0x5db275(0x2b5)][_0x5db275(0x6b5)];break;default:(0x0,_0x22b0ce['warn'])(_0x5db275(0x1ce)+_0x45ddb2);}switch(_0xc41208){case _0x22b0ce[_0x5db275(0x2a5)][_0x5db275(0x1f6)]:_0x1d2a41+=_0x22b0ce[_0x5db275(0x2b5)][_0x5db275(0x9ae)];break;case _0x22b0ce[_0x5db275(0x2a5)][_0x5db275(0x70a)]:break;case _0x22b0ce[_0x5db275(0x2a5)]['ENABLE_FORMS']:_0x1d2a41+=_0x22b0ce[_0x5db275(0x2b5)]['ANNOTATIONS_FORMS'];break;case _0x22b0ce['AnnotationMode'][_0x5db275(0x519)]:_0x1d2a41+=_0x22b0ce['RenderingIntentFlag']['ANNOTATIONS_STORAGE'];const _0x4ae870=_0x1d2a41&_0x22b0ce[_0x5db275(0x2b5)]['PRINT']&&_0x288e63 instanceof _0x33bd62['PrintAnnotationStorage']?_0x288e63:this['annotationStorage'];_0x47c115=_0x4ae870[_0x5db275(0x69c)];break;default:(0x0,_0x22b0ce[_0x5db275(0x472)])(_0x5db275(0x553)+_0xc41208);}return _0x567f6b&&(_0x1d2a41+=_0x22b0ce[_0x5db275(0x2b5)][_0x5db275(0x7b2)]),{'renderingIntent':_0x1d2a41,'cacheKey':_0x1d2a41+'_'+_0x47c115[_0x5db275(0x322)],'annotationStorageSerializable':_0x47c115};}['destroy'](){const _0x472202=_0x22d831;if(this[_0x472202(0x87b)])return this['destroyCapability'][_0x472202(0x4dd)];this[_0x472202(0x8d5)]=!![],this['destroyCapability']=new _0x22b0ce[(_0x472202(0x7e3))]();this['_passwordCapability']&&this[_0x472202(0x142)][_0x472202(0x282)](new Error(_0x472202(0x482)));const _0x12ac27=[];for(const _0x35a98d of this.#pageCache['values']()){_0x12ac27['push'](_0x35a98d['_destroy']());}this.#pageCache[_0x472202(0x1ca)](),this.#pagePromises[_0x472202(0x1ca)]();this['hasOwnProperty'](_0x472202(0x5bf))&&this['annotationStorage'][_0x472202(0x77a)]();const _0x905ea5=this['messageHandler'][_0x472202(0x88c)](_0x472202(0x42c),null);return _0x12ac27[_0x472202(0x7d6)](_0x905ea5),Promise[_0x472202(0x586)](_0x12ac27)[_0x472202(0x22d)](()=>{const _0x5126f5=_0x472202;this[_0x5126f5(0x53b)]['clear'](),this[_0x5126f5(0x48e)][_0x5126f5(0x1ca)](),this.#methodPromises[_0x5126f5(0x1ca)](),this[_0x5126f5(0x491)][_0x5126f5(0x256)](),this[_0x5126f5(0x182)]&&this[_0x5126f5(0x182)]['cancelAllRequests'](new _0x22b0ce[(_0x5126f5(0x980))](_0x5126f5(0x5e7))),this['messageHandler']&&(this['messageHandler']['destroy'](),this['messageHandler']=null),this[_0x5126f5(0x87b)]['resolve']();},this[_0x472202(0x87b)][_0x472202(0x282)]),this[_0x472202(0x87b)][_0x472202(0x4dd)];}[_0x22d831(0x19c)](){const _0x3ed4e6=_0x22d831,{messageHandler:_0x44411b,loadingTask:_0x450536}=this;_0x44411b['on'](_0x3ed4e6(0x92c),(_0x2c7010,_0x3f296c)=>{const _0x33259c=_0x3ed4e6;(0x0,_0x22b0ce[_0x33259c(0x63a)])(this[_0x33259c(0x182)],_0x33259c(0x4f6)),this[_0x33259c(0x60f)]=this[_0x33259c(0x182)]['getFullReader'](),this[_0x33259c(0x60f)][_0x33259c(0x3bf)]=_0x453307=>{const _0x5816ad=_0x33259c;this[_0x5816ad(0x2de)]={'loaded':_0x453307[_0x5816ad(0x19f)],'total':_0x453307[_0x5816ad(0x2d4)]};},_0x3f296c[_0x33259c(0x94e)]=()=>{const _0x2ef1f2=_0x33259c;this[_0x2ef1f2(0x60f)]['read']()[_0x2ef1f2(0x22d)](function(_0x5210bc){const _0x4dd85c=_0x2ef1f2;let {value:_0x403a5e,done:_0x37bef1}=_0x5210bc;if(_0x37bef1){_0x3f296c[_0x4dd85c(0x70e)]();return;}(0x0,_0x22b0ce[_0x4dd85c(0x63a)])(_0x403a5e instanceof ArrayBuffer,_0x4dd85c(0x51c)),_0x3f296c[_0x4dd85c(0xee)](new Uint8Array(_0x403a5e),0x1,[_0x403a5e]);})[_0x2ef1f2(0x75f)](_0x5428e5=>{const _0x177175=_0x2ef1f2;_0x3f296c[_0x177175(0x9e3)](_0x5428e5);});},_0x3f296c['onCancel']=_0x4e1cb5=>{const _0x4cdf89=_0x33259c;this['_fullReader'][_0x4cdf89(0x8c6)](_0x4e1cb5),_0x3f296c[_0x4cdf89(0x2e5)][_0x4cdf89(0x75f)](_0x15566f=>{const _0x152f29=_0x4cdf89;if(this[_0x152f29(0x8d5)])return;throw _0x15566f;});};}),_0x44411b['on'](_0x3ed4e6(0x3e1),_0x1a6675=>{const _0x4c3def=_0x3ed4e6,_0x265e60=new _0x22b0ce[(_0x4c3def(0x7e3))](),_0x27bfc2=this[_0x4c3def(0x60f)];return _0x27bfc2[_0x4c3def(0x6f2)]['then'](()=>{const _0x5510d5=_0x4c3def;(!_0x27bfc2[_0x5510d5(0x913)]||!_0x27bfc2[_0x5510d5(0x7b9)])&&(this[_0x5510d5(0x2de)]&&_0x450536[_0x5510d5(0x3bf)]?.(this[_0x5510d5(0x2de)]),_0x27bfc2[_0x5510d5(0x3bf)]=_0x1922c6=>{const _0x1cd070=_0x5510d5;_0x450536['onProgress']?.({'loaded':_0x1922c6[_0x1cd070(0x19f)],'total':_0x1922c6[_0x1cd070(0x2d4)]});}),_0x265e60[_0x5510d5(0x442)]({'isStreamingSupported':_0x27bfc2[_0x5510d5(0x913)],'isRangeSupported':_0x27bfc2[_0x5510d5(0x7b9)],'contentLength':_0x27bfc2[_0x5510d5(0x434)]});},_0x265e60['reject']),_0x265e60['promise'];}),_0x44411b['on']('GetRangeReader',(_0x3e86d4,_0xa50e0a)=>{const _0x2840ae=_0x3ed4e6;(0x0,_0x22b0ce[_0x2840ae(0x63a)])(this[_0x2840ae(0x182)],'GetRangeReader\x20-\x20no\x20`IPDFStream`\x20instance\x20available.');const _0x4e5548=this[_0x2840ae(0x182)][_0x2840ae(0x7d3)](_0x3e86d4[_0x2840ae(0x722)],_0x3e86d4[_0x2840ae(0x977)]);if(!_0x4e5548){_0xa50e0a[_0x2840ae(0x70e)]();return;}_0xa50e0a['onPull']=()=>{const _0xdd45cb=_0x2840ae;_0x4e5548[_0xdd45cb(0x37b)]()['then'](function(_0x31784b){const _0x2390b4=_0xdd45cb;let {value:_0x302728,done:_0x55a19f}=_0x31784b;if(_0x55a19f){_0xa50e0a[_0x2390b4(0x70e)]();return;}(0x0,_0x22b0ce[_0x2390b4(0x63a)])(_0x302728 instanceof ArrayBuffer,_0x2390b4(0x4eb)),_0xa50e0a['enqueue'](new Uint8Array(_0x302728),0x1,[_0x302728]);})[_0xdd45cb(0x75f)](_0x14dc7d=>{const _0x3aecfa=_0xdd45cb;_0xa50e0a[_0x3aecfa(0x9e3)](_0x14dc7d);});},_0xa50e0a[_0x2840ae(0x19d)]=_0x4aecd8=>{const _0x2acd16=_0x2840ae;_0x4e5548[_0x2acd16(0x8c6)](_0x4aecd8),_0xa50e0a[_0x2acd16(0x2e5)][_0x2acd16(0x75f)](_0x106a2b=>{const _0x26a6cd=_0x2acd16;if(this[_0x26a6cd(0x8d5)])return;throw _0x106a2b;});};}),_0x44411b['on'](_0x3ed4e6(0x330),_0x12f68a=>{const _0x124c10=_0x3ed4e6;let {pdfInfo:_0x2d0ed4}=_0x12f68a;this[_0x124c10(0x937)]=_0x2d0ed4[_0x124c10(0x4b1)],this[_0x124c10(0x3db)]=_0x2d0ed4[_0x124c10(0x918)],delete _0x2d0ed4[_0x124c10(0x918)],_0x450536[_0x124c10(0x869)][_0x124c10(0x442)](new _0x3e3f82(_0x2d0ed4,this));}),_0x44411b['on'](_0x3ed4e6(0x72c),function(_0x201fec){const _0x380880=_0x3ed4e6;let _0x3563f8;switch(_0x201fec[_0x380880(0x499)]){case _0x380880(0x763):_0x3563f8=new _0x22b0ce[(_0x380880(0x763))](_0x201fec[_0x380880(0x1bd)],_0x201fec['code']);break;case'InvalidPDFException':_0x3563f8=new _0x22b0ce[(_0x380880(0x46b))](_0x201fec[_0x380880(0x1bd)]);break;case'MissingPDFException':_0x3563f8=new _0x22b0ce[(_0x380880(0x5c5))](_0x201fec[_0x380880(0x1bd)]);break;case'UnexpectedResponseException':_0x3563f8=new _0x22b0ce[(_0x380880(0x90f))](_0x201fec[_0x380880(0x1bd)],_0x201fec[_0x380880(0x78b)]);break;case _0x380880(0x194):_0x3563f8=new _0x22b0ce[(_0x380880(0x194))](_0x201fec['message'],_0x201fec['details']);break;default:(0x0,_0x22b0ce[_0x380880(0x749)])(_0x380880(0x30b));}_0x450536[_0x380880(0x869)]['reject'](_0x3563f8);}),_0x44411b['on'](_0x3ed4e6(0x702),_0x5de8f2=>{const _0x589ed7=_0x3ed4e6;this[_0x589ed7(0x142)]=new _0x22b0ce[(_0x589ed7(0x7e3))]();if(_0x450536['onPassword']){const _0x464460=_0x504301=>{const _0x467277=_0x589ed7;_0x504301 instanceof Error?this[_0x467277(0x142)][_0x467277(0x282)](_0x504301):this['_passwordCapability']['resolve']({'password':_0x504301});};try{_0x450536[_0x589ed7(0x237)](_0x464460,_0x5de8f2[_0x589ed7(0x191)]);}catch(_0x333b20){this[_0x589ed7(0x142)][_0x589ed7(0x282)](_0x333b20);}}else this[_0x589ed7(0x142)][_0x589ed7(0x282)](new _0x22b0ce['PasswordException'](_0x5de8f2[_0x589ed7(0x1bd)],_0x5de8f2[_0x589ed7(0x191)]));return this['_passwordCapability'][_0x589ed7(0x4dd)];}),_0x44411b['on'](_0x3ed4e6(0x8bb),_0x1be00d=>{const _0x40f842=_0x3ed4e6;_0x450536[_0x40f842(0x3bf)]?.({'loaded':_0x1be00d['length'],'total':_0x1be00d[_0x40f842(0x557)]}),this[_0x40f842(0x62f)]['resolve'](_0x1be00d);}),_0x44411b['on'](_0x3ed4e6(0x212),_0x4b4af5=>{const _0xc0ae98=_0x3ed4e6;if(this['destroyed'])return;const _0x348533=this.#pageCache[_0xc0ae98(0x8c4)](_0x4b4af5[_0xc0ae98(0x700)]);_0x348533[_0xc0ae98(0x23e)](_0x4b4af5[_0xc0ae98(0x9ce)],_0x4b4af5[_0xc0ae98(0x2af)]);}),_0x44411b['on'](_0x3ed4e6(0x8d3),_0x5685f5=>{const _0x44a891=_0x3ed4e6;let [_0x25bd22,_0x1e4635,_0x48dbce]=_0x5685f5;if(this[_0x44a891(0x8d5)])return;if(this[_0x44a891(0x53b)]['has'](_0x25bd22))return;switch(_0x1e4635){case _0x44a891(0x538):const _0x53a2a5=this[_0x44a891(0x66f)];if(_0x44a891(0x9e3)in _0x48dbce){const _0x5679ff=_0x48dbce[_0x44a891(0x9e3)];(0x0,_0x22b0ce[_0x44a891(0x472)])(_0x44a891(0x123)+_0x5679ff),this[_0x44a891(0x53b)][_0x44a891(0x442)](_0x25bd22,_0x5679ff);break;}const _0x365b7e=_0x53a2a5[_0x44a891(0x408)]&&globalThis[_0x44a891(0x678)]?.['enabled']?(_0x49c58f,_0x44853b)=>globalThis[_0x44a891(0x678)][_0x44a891(0x423)](_0x49c58f,_0x44853b):null,_0x3878dd=new _0xaadc95[(_0x44a891(0x575))](_0x48dbce,{'isEvalSupported':_0x53a2a5[_0x44a891(0x221)],'disableFontFace':_0x53a2a5[_0x44a891(0x8b6)],'ignoreErrors':_0x53a2a5[_0x44a891(0x76f)],'inspectFont':_0x365b7e});this['fontLoader'][_0x44a891(0x5e8)](_0x3878dd)[_0x44a891(0x75f)](_0x1f0b22=>{const _0x24139d=_0x44a891;return _0x44411b[_0x24139d(0x88c)](_0x24139d(0xc1),{'id':_0x25bd22});})['finally'](()=>{const _0x3dad16=_0x44a891;!_0x53a2a5[_0x3dad16(0x9d6)]&&_0x3878dd[_0x3dad16(0x41b)]&&(_0x3878dd[_0x3dad16(0x41b)]=null),this[_0x3dad16(0x53b)][_0x3dad16(0x442)](_0x25bd22,_0x3878dd);});break;case'FontPath':case _0x44a891(0x633):case _0x44a891(0x317):this['commonObjs']['resolve'](_0x25bd22,_0x48dbce);break;default:throw new Error(_0x44a891(0x89d)+_0x1e4635);}}),_0x44411b['on'](_0x3ed4e6(0x270),_0x4648c0=>{const _0x180439=_0x3ed4e6;let [_0x24b24e,_0x1580e6,_0x3f6702,_0x5a1e12]=_0x4648c0;if(this[_0x180439(0x8d5)])return;const _0x3e69af=this.#pageCache[_0x180439(0x8c4)](_0x1580e6);if(_0x3e69af[_0x180439(0xdc)][_0x180439(0x373)](_0x24b24e))return;switch(_0x3f6702){case'Image':_0x3e69af[_0x180439(0xdc)][_0x180439(0x442)](_0x24b24e,_0x5a1e12);if(_0x5a1e12){let _0x53aee2;if(_0x5a1e12['bitmap']){const {width:_0x98ddbc,height:_0x2b17ba}=_0x5a1e12;_0x53aee2=_0x98ddbc*_0x2b17ba*0x4;}else _0x53aee2=_0x5a1e12['data']?.[_0x180439(0x557)]||0x0;_0x53aee2>_0x22b0ce[_0x180439(0x58f)]&&(_0x3e69af[_0x180439(0x5fc)]=!![]);}break;case'Pattern':_0x3e69af[_0x180439(0xdc)][_0x180439(0x442)](_0x24b24e,_0x5a1e12);break;default:throw new Error(_0x180439(0x23b)+_0x3f6702);}}),_0x44411b['on']('DocProgress',_0x2ac7ab=>{const _0x2afd40=_0x3ed4e6;if(this['destroyed'])return;_0x450536[_0x2afd40(0x3bf)]?.({'loaded':_0x2ac7ab['loaded'],'total':_0x2ac7ab['total']});}),_0x44411b['on'](_0x3ed4e6(0x84b),_0x267829=>{const _0x434ba0=_0x3ed4e6;if(this['destroyed'])return Promise[_0x434ba0(0x282)](new Error(_0x434ba0(0x474)));if(!this[_0x434ba0(0x8f4)])return Promise[_0x434ba0(0x282)](new Error(_0x434ba0(0x26c)));return this['cMapReaderFactory'][_0x434ba0(0x940)](_0x267829);}),_0x44411b['on'](_0x3ed4e6(0x390),_0x2bca19=>{const _0x3e3d6e=_0x3ed4e6;if(this[_0x3e3d6e(0x8d5)])return Promise[_0x3e3d6e(0x282)](new Error(_0x3e3d6e(0x474)));if(!this[_0x3e3d6e(0x759)])return Promise[_0x3e3d6e(0x282)](new Error(_0x3e3d6e(0x1c5)));return this[_0x3e3d6e(0x759)][_0x3e3d6e(0x940)](_0x2bca19);});}[_0x22d831(0x593)](){const _0xd45256=_0x22d831;return this[_0xd45256(0x67f)][_0xd45256(0x88c)](_0xd45256(0xe8),null);}[_0x22d831(0x65a)](){const _0x3a32f8=_0x22d831;this[_0x3a32f8(0x5bf)][_0x3a32f8(0x87a)]<=0x0&&(0x0,_0x22b0ce[_0x3a32f8(0x472)])(_0x3a32f8(0x639)+_0x3a32f8(0x9cf));const {map:_0x2951aa,transfers:_0x4f93c1}=this['annotationStorage'][_0x3a32f8(0x69c)];return this[_0x3a32f8(0x67f)][_0x3a32f8(0x88c)](_0x3a32f8(0x401),{'isPureXfa':!!this[_0x3a32f8(0x3db)],'numPages':this[_0x3a32f8(0x937)],'annotationStorage':_0x2951aa,'filename':this['_fullReader']?.['filename']??null},_0x4f93c1)[_0x3a32f8(0x7e0)](()=>{const _0x463477=_0x3a32f8;this[_0x463477(0x5bf)]['resetModified']();});}[_0x22d831(0x21c)](_0x4bbaba){const _0x5b1c30=_0x22d831;if(!Number[_0x5b1c30(0x235)](_0x4bbaba)||_0x4bbaba<=0x0||_0x4bbaba>this['_numPages'])return Promise[_0x5b1c30(0x282)](new Error(_0x5b1c30(0x124)));const _0x40320f=_0x4bbaba-0x1,_0x2c4ac8=this.#pagePromises['get'](_0x40320f);if(_0x2c4ac8)return _0x2c4ac8;const _0x1e2259=this[_0x5b1c30(0x67f)]['sendWithPromise'](_0x5b1c30(0x272),{'pageIndex':_0x40320f})[_0x5b1c30(0x22d)](_0x34ebc7=>{const _0x30bb18=_0x5b1c30;if(this[_0x30bb18(0x8d5)])throw new Error(_0x30bb18(0x793));const _0x4eb1fe=new _0x57d0ac(_0x40320f,_0x34ebc7,this,this['_params'][_0x30bb18(0x408)]);return this.#pageCache[_0x30bb18(0x98e)](_0x40320f,_0x4eb1fe),_0x4eb1fe;});return this.#pagePromises[_0x5b1c30(0x98e)](_0x40320f,_0x1e2259),_0x1e2259;}[_0x22d831(0x24d)](_0x59aee4){const _0x6e7caa=_0x22d831;if(typeof _0x59aee4!==_0x6e7caa(0x97b)||_0x59aee4===null||!Number[_0x6e7caa(0x235)](_0x59aee4[_0x6e7caa(0x394)])||_0x59aee4['num']<0x0||!Number[_0x6e7caa(0x235)](_0x59aee4[_0x6e7caa(0x13b)])||_0x59aee4[_0x6e7caa(0x13b)]<0x0)return Promise[_0x6e7caa(0x282)](new Error(_0x6e7caa(0x2db)));return this['messageHandler']['sendWithPromise'](_0x6e7caa(0x826),{'num':_0x59aee4[_0x6e7caa(0x394)],'gen':_0x59aee4[_0x6e7caa(0x13b)]});}['getAnnotations'](_0x29691c,_0x5639fc){const _0x57cb5e=_0x22d831;return this[_0x57cb5e(0x67f)][_0x57cb5e(0x88c)](_0x57cb5e(0x5a6),{'pageIndex':_0x29691c,'intent':_0x5639fc});}[_0x22d831(0x645)](){return this.#cacheSimpleMethod('GetFieldObjects');}[_0x22d831(0x731)](){const _0x5a93de=_0x22d831;return this.#cacheSimpleMethod(_0x5a93de(0x2a9));}[_0x22d831(0x8c0)](){const _0x4be541=_0x22d831;return this['messageHandler']['sendWithPromise'](_0x4be541(0x339),null);}[_0x22d831(0x827)](){const _0x3bd83d=_0x22d831;return this[_0x3bd83d(0x67f)][_0x3bd83d(0x88c)](_0x3bd83d(0x6a8),null);}[_0x22d831(0x651)](_0x4248ab){const _0x34b561=_0x22d831;if(typeof _0x4248ab!==_0x34b561(0x8cd))return Promise[_0x34b561(0x282)](new Error('Invalid\x20destination\x20request.'));return this['messageHandler'][_0x34b561(0x88c)](_0x34b561(0x8d8),{'id':_0x4248ab});}[_0x22d831(0x152)](){const _0x3d3ae8=_0x22d831;return this['messageHandler'][_0x3d3ae8(0x88c)]('GetPageLabels',null);}[_0x22d831(0x14f)](){const _0x2ec7bf=_0x22d831;return this['messageHandler'][_0x2ec7bf(0x88c)]('GetPageLayout',null);}['getPageMode'](){const _0xb1ba0a=_0x22d831;return this[_0xb1ba0a(0x67f)][_0xb1ba0a(0x88c)](_0xb1ba0a(0x78c),null);}[_0x22d831(0x917)](){const _0x323f60=_0x22d831;return this[_0x323f60(0x67f)][_0x323f60(0x88c)](_0x323f60(0x116),null);}[_0x22d831(0x3d5)](){const _0x5a50b7=_0x22d831;return this[_0x5a50b7(0x67f)][_0x5a50b7(0x88c)](_0x5a50b7(0x448),null);}[_0x22d831(0x362)](){const _0x2aeadb=_0x22d831;return this['messageHandler'][_0x2aeadb(0x88c)](_0x2aeadb(0x7fb),null);}[_0x22d831(0x467)](){const _0x3e5961=_0x22d831;return this[_0x3e5961(0x67f)]['sendWithPromise'](_0x3e5961(0x5c9),null);}[_0x22d831(0x713)](){const _0x4ac402=_0x22d831;return this[_0x4ac402(0x67f)][_0x4ac402(0x88c)](_0x4ac402(0x91f),null);}['getPageJSActions'](_0x5a75f0){const _0x43c9d0=_0x22d831;return this[_0x43c9d0(0x67f)][_0x43c9d0(0x88c)](_0x43c9d0(0x780),{'pageIndex':_0x5a75f0});}[_0x22d831(0x8bd)](_0x33dbb0){const _0x140d51=_0x22d831;return this['messageHandler'][_0x140d51(0x88c)](_0x140d51(0xdd),{'pageIndex':_0x33dbb0});}[_0x22d831(0x234)](){const _0x7a0ee9=_0x22d831;return this['messageHandler'][_0x7a0ee9(0x88c)]('GetOutline',null);}[_0x22d831(0x248)](){const _0xa5cf0c=_0x22d831;return this[_0xa5cf0c(0x67f)][_0xa5cf0c(0x88c)]('GetOptionalContentConfig',null)[_0xa5cf0c(0x22d)](_0x5236aa=>{const _0x1aafea=_0xa5cf0c;return new _0x3f32eb[(_0x1aafea(0x68d))](_0x5236aa);});}[_0x22d831(0x1b0)](){const _0x31e25b=_0x22d831;return this[_0x31e25b(0x67f)][_0x31e25b(0x88c)](_0x31e25b(0x4cf),null);}[_0x22d831(0x79c)](){const _0x5e72db=_0x22d831,_0x4dd84f='GetMetadata',_0x373e5f=this.#methodPromises[_0x5e72db(0x8c4)](_0x4dd84f);if(_0x373e5f)return _0x373e5f;const _0x1ce59c=this['messageHandler'][_0x5e72db(0x88c)](_0x4dd84f,null)[_0x5e72db(0x22d)](_0x4d0db5=>{const _0x235736=_0x5e72db;return{'info':_0x4d0db5[0x0],'metadata':_0x4d0db5[0x1]?new _0x8d02af[(_0x235736(0x6a2))](_0x4d0db5[0x1]):null,'contentDispositionFilename':this[_0x235736(0x60f)]?.[_0x235736(0x5cf)]??null,'contentLength':this[_0x235736(0x60f)]?.[_0x235736(0x434)]??null};});return this.#methodPromises[_0x5e72db(0x98e)](_0x4dd84f,_0x1ce59c),_0x1ce59c;}[_0x22d831(0x49f)](){const _0x4c9502=_0x22d831;return this[_0x4c9502(0x67f)]['sendWithPromise'](_0x4c9502(0x3e7),null);}async['startCleanup'](){const _0x4c2fef=_0x22d831;let _0x442d14=arguments[_0x4c2fef(0x557)]>0x0&&arguments[0x0]!==undefined?arguments[0x0]:![];if(this['destroyed'])return;await this[_0x4c2fef(0x67f)][_0x4c2fef(0x88c)](_0x4c2fef(0x183),null);for(const _0x42c29a of this.#pageCache['values']()){const _0x2674d9=_0x42c29a['cleanup']();if(!_0x2674d9)throw new Error(_0x4c2fef(0xa07)+_0x42c29a[_0x4c2fef(0x225)]+_0x4c2fef(0x9d4));}this['commonObjs'][_0x4c2fef(0x1ca)](),!_0x442d14&&this['fontLoader']['clear'](),this.#methodPromises['clear'](),this[_0x4c2fef(0x491)][_0x4c2fef(0x256)](!![]);}get['loadingParams'](){const _0x1d676e=_0x22d831,{disableAutoFetch:_0x37a718,enableXfa:_0x14bc1a}=this[_0x1d676e(0x66f)];return(0x0,_0x22b0ce[_0x1d676e(0x51d)])(this,_0x1d676e(0x897),{'disableAutoFetch':_0x37a718,'enableXfa':_0x14bc1a});}}class _0x3cf9da{#objs=Object[_0x22d831(0x77c)](null);#ensureObj(_0x1111ad){const _0x52123c=this.#objs[_0x1111ad];if(_0x52123c)return _0x52123c;return this.#objs[_0x1111ad]={'capability':new _0x22b0ce['PromiseCapability'](),'data':null};}[_0x22d831(0x8c4)](_0x4c7ae5){const _0x257299=_0x22d831;let _0x4117ea=arguments[_0x257299(0x557)]>0x1&&arguments[0x1]!==undefined?arguments[0x1]:null;if(_0x4117ea){const _0x504093=this.#ensureObj(_0x4c7ae5);return _0x504093['capability'][_0x257299(0x4dd)][_0x257299(0x22d)](()=>_0x4117ea(_0x504093['data'])),null;}const _0x174d36=this.#objs[_0x4c7ae5];if(!_0x174d36?.[_0x257299(0x540)][_0x257299(0x660)])throw new Error(_0x257299(0x26f)+_0x4c7ae5+'.');return _0x174d36[_0x257299(0x41b)];}[_0x22d831(0x373)](_0x3b2c0b){const _0x2a780a=_0x22d831,_0x12419c=this.#objs[_0x3b2c0b];return _0x12419c?.[_0x2a780a(0x540)][_0x2a780a(0x660)]||![];}['resolve'](_0x1569a5){const _0x141370=_0x22d831;let _0x33918b=arguments['length']>0x1&&arguments[0x1]!==undefined?arguments[0x1]:null;const _0x24cc72=this.#ensureObj(_0x1569a5);_0x24cc72[_0x141370(0x41b)]=_0x33918b,_0x24cc72[_0x141370(0x540)][_0x141370(0x442)]();}[_0x22d831(0x1ca)](){const _0x4d58c4=_0x22d831;for(const _0x1bcc16 in this.#objs){const {data:_0x2c8044}=this.#objs[_0x1bcc16];_0x2c8044?.[_0x4d58c4(0x7eb)]?.[_0x4d58c4(0x70e)]();}this.#objs=Object[_0x4d58c4(0x77c)](null);}}class _0x413606{#internalRenderTask=null;constructor(_0x4cec5d){this.#internalRenderTask=_0x4cec5d,this['onContinue']=null;}get['promise'](){const _0x4626a3=_0x22d831;return this.#internalRenderTask[_0x4626a3(0x540)][_0x4626a3(0x4dd)];}[_0x22d831(0x8c6)](){const _0xf8c8ab=_0x22d831;let _0x58c1aa=arguments[_0xf8c8ab(0x557)]>0x0&&arguments[0x0]!==undefined?arguments[0x0]:0x0;this.#internalRenderTask[_0xf8c8ab(0x8c6)](null,_0x58c1aa);}get['separateAnnots'](){const _0x5d3910=_0x22d831,{separateAnnots:_0x369ecf}=this.#internalRenderTask[_0x5d3910(0x33f)];if(!_0x369ecf)return![];const {annotationCanvasMap:_0x65480c}=this.#internalRenderTask;return _0x369ecf[_0x5d3910(0x72d)]||_0x369ecf['canvas']&&_0x65480c?.[_0x5d3910(0x87a)]>0x0;}}_0x19c6a2['RenderTask']=_0x413606;class _0x2fd724{static #canvasInUse=new WeakSet();constructor(_0x3dff55){const _0x5c122c=_0x22d831;let {callback:_0xd2838b,params:_0x531f27,objs:_0x4ce8d5,commonObjs:_0x2de196,annotationCanvasMap:_0x2d15bf,operatorList:_0x502caa,pageIndex:_0x4d4342,canvasFactory:_0x456f0c,filterFactory:_0x4fdd86,useRequestAnimationFrame:useRequestAnimationFrame=![],pdfBug:pdfBug=![],pageColors:pageColors=null}=_0x3dff55;this[_0x5c122c(0x35c)]=_0xd2838b,this[_0x5c122c(0x22a)]=_0x531f27,this[_0x5c122c(0xdc)]=_0x4ce8d5,this[_0x5c122c(0x53b)]=_0x2de196,this[_0x5c122c(0x368)]=_0x2d15bf,this['operatorListIdx']=null,this['operatorList']=_0x502caa,this['_pageIndex']=_0x4d4342,this[_0x5c122c(0x5db)]=_0x456f0c,this[_0x5c122c(0x491)]=_0x4fdd86,this[_0x5c122c(0x11a)]=pdfBug,this[_0x5c122c(0x61c)]=pageColors,this[_0x5c122c(0x997)]=![],this[_0x5c122c(0x748)]=null,this['graphicsReady']=![],this['_useRequestAnimationFrame']=useRequestAnimationFrame===!![]&&typeof window!==_0x5c122c(0x32c),this[_0x5c122c(0x9b9)]=![],this['capability']=new _0x22b0ce['PromiseCapability'](),this[_0x5c122c(0x7c4)]=new _0x413606(this),this['_cancelBound']=this[_0x5c122c(0x8c6)][_0x5c122c(0x5e8)](this),this[_0x5c122c(0x8ff)]=this[_0x5c122c(0x548)][_0x5c122c(0x5e8)](this),this['_scheduleNextBound']=this[_0x5c122c(0x76b)][_0x5c122c(0x5e8)](this),this[_0x5c122c(0x5b2)]=this[_0x5c122c(0x8c1)]['bind'](this),this[_0x5c122c(0x402)]=_0x531f27['canvasContext'][_0x5c122c(0x75a)];}get[_0x22d831(0x7c8)](){const _0x1c3df5=_0x22d831;return this['capability'][_0x1c3df5(0x4dd)][_0x1c3df5(0x75f)](function(){});}[_0x22d831(0x86d)](_0x4cc642){const _0x3e38b1=_0x22d831;let {transparency:transparency=![],optionalContentConfig:_0x59757c}=_0x4cc642;if(this[_0x3e38b1(0x9b9)])return;if(this['_canvas']){if(_0x2fd724.#canvasInUse[_0x3e38b1(0x373)](this[_0x3e38b1(0x402)]))throw new Error(_0x3e38b1(0x4be)+_0x3e38b1(0x120)+_0x3e38b1(0x51e));_0x2fd724.#canvasInUse[_0x3e38b1(0x156)](this[_0x3e38b1(0x402)]);}this[_0x3e38b1(0x11a)]&&globalThis['StepperManager']?.[_0x3e38b1(0x829)]&&(this[_0x3e38b1(0x414)]=globalThis[_0x3e38b1(0x13c)]['create'](this[_0x3e38b1(0x23c)]),this[_0x3e38b1(0x414)][_0x3e38b1(0x8a1)](this[_0x3e38b1(0x33f)]),this[_0x3e38b1(0x414)][_0x3e38b1(0x2b0)]=this[_0x3e38b1(0x414)][_0x3e38b1(0x7a4)]());const {canvasContext:_0xc863e0,viewport:_0x355e54,transform:_0x1b7d82,background:_0x4d3cb1}=this['params'];this[_0x3e38b1(0x99d)]=new _0xc5f573['CanvasGraphics'](_0xc863e0,this[_0x3e38b1(0x53b)],this['objs'],this[_0x3e38b1(0x5db)],this[_0x3e38b1(0x491)],{'optionalContentConfig':_0x59757c},this[_0x3e38b1(0x368)],this['pageColors']),this[_0x3e38b1(0x99d)][_0x3e38b1(0x5be)]({'transform':_0x1b7d82,'viewport':_0x355e54,'transparency':transparency,'background':_0x4d3cb1}),this[_0x3e38b1(0x853)]=0x0,this['graphicsReady']=!![],this[_0x3e38b1(0x748)]?.();}[_0x22d831(0x8c6)](){const _0x32ef41=_0x22d831;let _0x3d2328=arguments[_0x32ef41(0x557)]>0x0&&arguments[0x0]!==undefined?arguments[0x0]:null,_0x5109e6=arguments[_0x32ef41(0x557)]>0x1&&arguments[0x1]!==undefined?arguments[0x1]:0x0;this[_0x32ef41(0x997)]=![],this[_0x32ef41(0x9b9)]=!![],this[_0x32ef41(0x99d)]?.[_0x32ef41(0x279)](),this[_0x32ef41(0x402)]&&_0x2fd724.#canvasInUse[_0x32ef41(0x65f)](this[_0x32ef41(0x402)]),this[_0x32ef41(0x35c)](_0x3d2328||new _0x4c8b78[(_0x32ef41(0x450))](_0x32ef41(0x6de)+(this[_0x32ef41(0x23c)]+0x1),_0x5109e6));}[_0x22d831(0x7c2)](){const _0x4c49eb=_0x22d831;if(!this[_0x4c49eb(0x446)]){this[_0x4c49eb(0x748)]||=this['_continueBound'];return;}this[_0x4c49eb(0x414)]?.[_0x4c49eb(0x1d7)](this[_0x4c49eb(0x33f)]);if(this[_0x4c49eb(0x997)])return;this['_continue']();}['_continue'](){const _0x2146ba=_0x22d831;this['running']=!![];if(this[_0x2146ba(0x9b9)])return;this[_0x2146ba(0x7c4)]['onContinue']?this['task'][_0x2146ba(0x3ff)](this[_0x2146ba(0x44c)]):this[_0x2146ba(0x76b)]();}[_0x22d831(0x76b)](){const _0x42599c=_0x22d831;this[_0x42599c(0x642)]?window[_0x42599c(0x75e)](()=>{const _0x412025=_0x42599c;this['_nextBound']()[_0x412025(0x75f)](this[_0x412025(0x628)]);}):Promise[_0x42599c(0x442)]()['then'](this[_0x42599c(0x5b2)])['catch'](this[_0x42599c(0x628)]);}async[_0x22d831(0x8c1)](){const _0x3d5ea7=_0x22d831;if(this[_0x3d5ea7(0x9b9)])return;this[_0x3d5ea7(0x853)]=this['gfx']['executeOperatorList'](this['operatorList'],this[_0x3d5ea7(0x853)],this[_0x3d5ea7(0x8ff)],this[_0x3d5ea7(0x414)]),this[_0x3d5ea7(0x853)]===this[_0x3d5ea7(0x33f)][_0x3d5ea7(0x20c)]['length']&&(this[_0x3d5ea7(0x997)]=![],this[_0x3d5ea7(0x33f)][_0x3d5ea7(0x8a3)]&&(this[_0x3d5ea7(0x99d)][_0x3d5ea7(0x279)](this[_0x3d5ea7(0x61c)]),this[_0x3d5ea7(0x402)]&&_0x2fd724.#canvasInUse[_0x3d5ea7(0x65f)](this[_0x3d5ea7(0x402)]),this['callback']()));}}const _0x38e26d=_0x22d831(0x623);_0x19c6a2[_0x22d831(0x5b4)]=_0x38e26d;const _0x43f49d='';_0x19c6a2[_0x22d831(0x407)]=_0x43f49d;},(_0x3dae56,_0x59edd0,_0x2b21f1)=>{'use strict';const _0x30c706=a0_0x160d;Object['defineProperty'](_0x59edd0,'__esModule',{'value':!![]}),_0x59edd0[_0x30c706(0x224)]=_0x59edd0[_0x30c706(0x866)]=_0x59edd0[_0x30c706(0x55c)]=void 0x0;var _0x3665c1=_0x2b21f1(0x1),_0x300945=_0x2b21f1(0x85),_0x26d4b5=_0x2b21f1(0x89);const _0x553e22=Object[_0x30c706(0x6bd)]({'map':null,'hash':'','transfers':undefined});_0x59edd0[_0x30c706(0x224)]=_0x553e22;class _0x3a0bbd{#modified=![];#storage=new Map();constructor(){const _0x2fe2bd=_0x30c706;this[_0x2fe2bd(0x132)]=null,this[_0x2fe2bd(0x2b4)]=null,this['onAnnotationEditor']=null;}[_0x30c706(0xde)](_0x436219,_0x4bd998){const _0x1b0f48=_0x30c706,_0x2a7811=this.#storage[_0x1b0f48(0x8c4)](_0x436219);if(_0x2a7811===undefined)return _0x4bd998;return Object[_0x1b0f48(0x9c0)](_0x4bd998,_0x2a7811);}[_0x30c706(0x6ce)](_0x5b0421){const _0x16d018=_0x30c706;return this.#storage[_0x16d018(0x8c4)](_0x5b0421);}[_0x30c706(0x10a)](_0x1d83ce){const _0x56ed22=_0x30c706;this.#storage[_0x56ed22(0x65f)](_0x1d83ce);this.#storage[_0x56ed22(0x87a)]===0x0&&this[_0x56ed22(0x77a)]();if(typeof this[_0x56ed22(0x22e)]===_0x56ed22(0x4ec)){for(const _0x22ca03 of this.#storage[_0x56ed22(0x823)]()){if(_0x22ca03 instanceof _0x300945[_0x56ed22(0x8f0)])return;}this['onAnnotationEditor'](null);}}[_0x30c706(0x699)](_0x393394,_0x5ae49f){const _0x4a979a=_0x30c706,_0x1f49b1=this.#storage[_0x4a979a(0x8c4)](_0x393394);let _0x35d17e=![];if(_0x1f49b1!==undefined)for(const [_0x146792,_0x392417]of Object['entries'](_0x5ae49f)){_0x1f49b1[_0x146792]!==_0x392417&&(_0x35d17e=!![],_0x1f49b1[_0x146792]=_0x392417);}else _0x35d17e=!![],this.#storage[_0x4a979a(0x98e)](_0x393394,_0x5ae49f);_0x35d17e&&this.#setModified(),_0x5ae49f instanceof _0x300945['AnnotationEditor']&&typeof this['onAnnotationEditor']===_0x4a979a(0x4ec)&&this['onAnnotationEditor'](_0x5ae49f[_0x4a979a(0x6ef)][_0x4a979a(0x879)]);}[_0x30c706(0x373)](_0x35553d){return this.#storage['has'](_0x35553d);}[_0x30c706(0x55d)](){const _0x3bffa9=_0x30c706;return this.#storage['size']>0x0?(0x0,_0x3665c1[_0x3bffa9(0x267)])(this.#storage):null;}[_0x30c706(0x24c)](_0x1eea5c){const _0x3f67c4=_0x30c706;for(const [_0x1b6536,_0x4cb3c4]of Object[_0x3f67c4(0x816)](_0x1eea5c)){this['setValue'](_0x1b6536,_0x4cb3c4);}}get[_0x30c706(0x87a)](){const _0x15d3e0=_0x30c706;return this.#storage[_0x15d3e0(0x87a)];}#setModified(){const _0x4ce0b8=_0x30c706;!this.#modified&&(this.#modified=!![],typeof this[_0x4ce0b8(0x132)]===_0x4ce0b8(0x4ec)&&this[_0x4ce0b8(0x132)]());}[_0x30c706(0x77a)](){const _0x44dee8=_0x30c706;this.#modified&&(this.#modified=![],typeof this[_0x44dee8(0x2b4)]===_0x44dee8(0x4ec)&&this[_0x44dee8(0x2b4)]());}get[_0x30c706(0x5f8)](){return new _0x5ceb5a(this);}get[_0x30c706(0x69c)](){const _0x5b6301=_0x30c706;if(this.#storage['size']===0x0)return _0x553e22;const _0x2810a7=new Map(),_0x4fa3f6=new _0x26d4b5[(_0x5b6301(0x54d))](),_0x4139cf=[],_0x50137b=Object['create'](null);let _0x2337c1=![];for(const [_0x55c4f0,_0x588bde]of this.#storage){const _0x2034b0=_0x588bde instanceof _0x300945[_0x5b6301(0x8f0)]?_0x588bde[_0x5b6301(0x65d)](![],_0x50137b):_0x588bde;_0x2034b0&&(_0x2810a7[_0x5b6301(0x98e)](_0x55c4f0,_0x2034b0),_0x4fa3f6[_0x5b6301(0x1b4)](_0x55c4f0+':'+JSON[_0x5b6301(0x22f)](_0x2034b0)),_0x2337c1||=!!_0x2034b0['bitmap']);}if(_0x2337c1)for(const _0x48eb34 of _0x2810a7[_0x5b6301(0x823)]()){_0x48eb34[_0x5b6301(0x7eb)]&&_0x4139cf[_0x5b6301(0x7d6)](_0x48eb34['bitmap']);}return _0x2810a7['size']>0x0?{'map':_0x2810a7,'hash':_0x4fa3f6[_0x5b6301(0x1fa)](),'transfers':_0x4139cf}:_0x553e22;}}_0x59edd0['AnnotationStorage']=_0x3a0bbd;class _0x5ceb5a extends _0x3a0bbd{#serializable;constructor(_0x4bec4e){const _0x4ad35b=_0x30c706;super();const {map:_0x38648a,hash:_0xda4700,transfers:_0x5a6524}=_0x4bec4e[_0x4ad35b(0x69c)],_0x583a77=structuredClone(_0x38648a,null);this.#serializable={'map':_0x583a77,'hash':_0xda4700,'transfers':_0x5a6524};}get[_0x30c706(0x5f8)](){const _0x29b44a=_0x30c706;(0x0,_0x3665c1[_0x29b44a(0x749)])(_0x29b44a(0x2be));}get[_0x30c706(0x69c)](){return this.#serializable;}}_0x59edd0[_0x30c706(0x866)]=_0x5ceb5a;},(_0x55378b,_0x20993a,_0x4f961d)=>{'use strict';const _0x266ba6=a0_0x160d;Object[_0x266ba6(0x430)](_0x20993a,_0x266ba6(0x19a),{'value':!![]}),_0x20993a['AnnotationEditor']=void 0x0;var _0x5ee713=_0x4f961d(0x86),_0x5c49c0=_0x4f961d(0x1);const _0x316d13=0x10;class _0x44ba2b{#keepAspectRatio=![];#boundFocusin=this[_0x266ba6(0x887)][_0x266ba6(0x5e8)](this);#boundFocusout=this[_0x266ba6(0x81d)][_0x266ba6(0x5e8)](this);#hasBeenSelected=![];#isEditing=![];#isInEditMode=![];['_uiManager']=null;#zIndex=_0x44ba2b[_0x266ba6(0x9b3)]++;static ['_colorManager']=new _0x5ee713[(_0x266ba6(0x59e))]();static [_0x266ba6(0x9b3)]=0x1;constructor(_0xadfa27){const _0x40c652=_0x266ba6;this[_0x40c652(0x6ef)]===_0x44ba2b&&(0x0,_0x5c49c0[_0x40c652(0x749)])(_0x40c652(0x4a2));this[_0x40c652(0x4c3)]=_0xadfa27[_0x40c652(0x4c3)],this['id']=_0xadfa27['id'],this['width']=this[_0x40c652(0x999)]=null,this[_0x40c652(0x700)]=_0xadfa27[_0x40c652(0x4c3)][_0x40c652(0x700)],this[_0x40c652(0x499)]=_0xadfa27['name'],this[_0x40c652(0x903)]=null,this[_0x40c652(0x5e4)]=_0xadfa27[_0x40c652(0x294)],this[_0x40c652(0x66b)]=null;const {rotation:_0xbb4e3b,rawDims:{pageWidth:_0x29c0f5,pageHeight:_0x333d2f,pageX:_0x4d1c60,pageY:_0x11a19d}}=this[_0x40c652(0x4c3)][_0x40c652(0x502)];this[_0x40c652(0x7af)]=_0xbb4e3b,this[_0x40c652(0x1f3)]=(0x168+_0xbb4e3b-this[_0x40c652(0x5e4)][_0x40c652(0x614)]['rotation'])%0x168,this['pageDimensions']=[_0x29c0f5,_0x333d2f],this[_0x40c652(0x485)]=[_0x4d1c60,_0x11a19d];const [_0x3bcad1,_0x382839]=this['parentDimensions'];this['x']=_0xadfa27['x']/_0x3bcad1,this['y']=_0xadfa27['y']/_0x382839,this[_0x40c652(0x9a7)]=![],this[_0x40c652(0x2f0)]=![];}static get['_defaultLineColor'](){const _0x3d4791=_0x266ba6;return(0x0,_0x5c49c0[_0x3d4791(0x51d)])(this,_0x3d4791(0x350),this[_0x3d4791(0x80b)][_0x3d4791(0x295)](_0x3d4791(0x819)));}static[_0x266ba6(0x578)](_0x474b96){const _0x1f5f78=_0x266ba6,_0x1f28ed=new _0x5e912a({'id':_0x474b96[_0x1f5f78(0x4c3)][_0x1f5f78(0x260)](),'parent':_0x474b96[_0x1f5f78(0x4c3)],'uiManager':_0x474b96[_0x1f5f78(0x5e4)]});_0x1f28ed[_0x1f5f78(0x66b)]=_0x474b96[_0x1f5f78(0x66b)],_0x1f28ed['deleted']=!![],_0x1f28ed['_uiManager'][_0x1f5f78(0x7e5)](_0x1f28ed);}static[_0x266ba6(0x86f)](_0x423db5){}static[_0x266ba6(0x49d)](_0x9fc1f1,_0x12efd1){}static get['defaultPropertiesToUpdate'](){return[];}get['propertiesToUpdate'](){return[];}[_0x266ba6(0x72e)](_0x5943b2){const _0x3678c6=_0x266ba6;this[_0x3678c6(0x5e4)][_0x3678c6(0x72e)](_0x5943b2);}get[_0x266ba6(0x877)](){const _0x23545b=_0x266ba6;return this['_uiManager'][_0x23545b(0x877)];}[_0x266ba6(0x34b)](){const _0xbe040a=_0x266ba6;this[_0xbe040a(0x903)][_0xbe040a(0x498)][_0xbe040a(0x177)]=0x0;}[_0x266ba6(0x532)](){const _0xf6ae3a=_0x266ba6;this[_0xf6ae3a(0x903)][_0xf6ae3a(0x498)][_0xf6ae3a(0x177)]=this.#zIndex;}[_0x266ba6(0x3fd)](_0x337952){const _0x59201f=_0x266ba6;_0x337952!==null&&(this['pageIndex']=_0x337952[_0x59201f(0x700)],this[_0x59201f(0x37f)]=_0x337952['pageDimensions']),this[_0x59201f(0x4c3)]=_0x337952;}[_0x266ba6(0x887)](_0x43d30a){const _0x29c82f=_0x266ba6;!this.#hasBeenSelected?this['parent'][_0x29c82f(0x18e)](this):this.#hasBeenSelected=![];}['focusout'](_0x1f3938){const _0x724bb2=_0x266ba6;if(!this['isAttachedToDOM'])return;const _0x23d02a=_0x1f3938[_0x724bb2(0x7f5)];if(_0x23d02a?.[_0x724bb2(0x6d9)]('#'+this['id']))return;_0x1f3938[_0x724bb2(0x9af)](),!this['parent']?.[_0x724bb2(0x16e)]&&this['commitOrRemove']();}[_0x266ba6(0x69b)](){const _0x10d3e3=_0x266ba6;this[_0x10d3e3(0x480)]()?this[_0x10d3e3(0x10a)]():this[_0x10d3e3(0x3b3)]();}['commit'](){const _0x30ca58=_0x266ba6;this[_0x30ca58(0x7e5)]();}[_0x266ba6(0x7e5)](){const _0xd372a3=_0x266ba6;this[_0xd372a3(0x5e4)][_0xd372a3(0x7e5)](this);}[_0x266ba6(0x6e0)](_0xfac57b){const _0x45b3fd=_0x266ba6,_0xf478fc=this[_0x45b3fd(0x4c3)][_0x45b3fd(0x903)][_0x45b3fd(0x16d)]();this[_0x45b3fd(0x7f3)]=_0xfac57b[_0x45b3fd(0x19b)]-_0xf478fc['x'],this[_0x45b3fd(0x469)]=_0xfac57b['clientY']-_0xf478fc['y'],_0xfac57b[_0x45b3fd(0x481)][_0x45b3fd(0x5cb)](_0x45b3fd(0x813),this['id']),_0xfac57b[_0x45b3fd(0x481)][_0x45b3fd(0x6d7)]=_0x45b3fd(0x91e);}[_0x266ba6(0x912)](_0x125bf1,_0x836764,_0x5a6890,_0x5c98e8){const _0x11639a=_0x266ba6,[_0x3acf15,_0x1ee8a6]=this['parentDimensions'];[_0x5a6890,_0x5c98e8]=this[_0x11639a(0x872)](_0x5a6890,_0x5c98e8),this['x']=(_0x125bf1+_0x5a6890)/_0x3acf15,this['y']=(_0x836764+_0x5c98e8)/_0x1ee8a6,this[_0x11639a(0x903)][_0x11639a(0x498)][_0x11639a(0x4fd)]=0x64*this['x']+'%',this[_0x11639a(0x903)][_0x11639a(0x498)][_0x11639a(0x12f)]=0x64*this['y']+'%';}[_0x266ba6(0x18d)](_0x1d5bf2,_0x3c677c){const _0x574821=_0x266ba6,[_0x2e6cd2,_0x44762c]=this[_0x574821(0x956)];[_0x1d5bf2,_0x3c677c]=this[_0x574821(0x872)](_0x1d5bf2,_0x3c677c),this['x']+=_0x1d5bf2/_0x2e6cd2,this['y']+=_0x3c677c/_0x44762c,this[_0x574821(0x903)][_0x574821(0x498)]['left']=0x64*this['x']+'%',this['div'][_0x574821(0x498)]['top']=0x64*this['y']+'%';}[_0x266ba6(0x872)](_0x19498c,_0x1f6a5a){const _0x4bc5b9=_0x266ba6;switch(this[_0x4bc5b9(0x25e)]){case 0x5a:return[_0x1f6a5a,-_0x19498c];case 0xb4:return[-_0x19498c,-_0x1f6a5a];case 0x10e:return[-_0x1f6a5a,_0x19498c];default:return[_0x19498c,_0x1f6a5a];}}get[_0x266ba6(0x54a)](){const _0x50a712=_0x266ba6;return this['_uiManager'][_0x50a712(0x614)][_0x50a712(0x11f)];}get['parentRotation'](){const _0x2d37f7=_0x266ba6;return(this[_0x2d37f7(0x5e4)][_0x2d37f7(0x614)][_0x2d37f7(0x7af)]+this[_0x2d37f7(0x1f3)])%0x168;}get[_0x266ba6(0x956)](){const _0x15d1d9=_0x266ba6,{realScale:_0x3b3bd0}=this[_0x15d1d9(0x5e4)][_0x15d1d9(0x614)],[_0x47135e,_0x238477]=this[_0x15d1d9(0x37f)];return[_0x47135e*_0x3b3bd0,_0x238477*_0x3b3bd0];}['setDims'](_0x5bcdb0,_0x11aef5){const _0x4c71c1=_0x266ba6,[_0x33ed9d,_0x110788]=this[_0x4c71c1(0x956)];this[_0x4c71c1(0x903)][_0x4c71c1(0x498)][_0x4c71c1(0x98b)]=0x64*_0x5bcdb0/_0x33ed9d+'%',!this.#keepAspectRatio&&(this[_0x4c71c1(0x903)]['style'][_0x4c71c1(0x999)]=0x64*_0x11aef5/_0x110788+'%');}[_0x266ba6(0x8d4)](){const _0x535a99=_0x266ba6,{style:_0x15dd93}=this[_0x535a99(0x903)],{height:_0x58e56c,width:_0x1a57f5}=_0x15dd93,_0x22d42b=_0x1a57f5['endsWith']('%'),_0x2f3460=!this.#keepAspectRatio&&_0x58e56c[_0x535a99(0x7ac)]('%');if(_0x22d42b&&_0x2f3460)return;const [_0x303c9b,_0x43a4b4]=this[_0x535a99(0x956)];!_0x22d42b&&(_0x15dd93['width']=0x64*parseFloat(_0x1a57f5)/_0x303c9b+'%'),!this.#keepAspectRatio&&!_0x2f3460&&(_0x15dd93[_0x535a99(0x999)]=0x64*parseFloat(_0x58e56c)/_0x43a4b4+'%');}[_0x266ba6(0x76e)](){return[0x0,0x0];}[_0x266ba6(0x6c8)](){const _0x43938f=_0x266ba6;this[_0x43938f(0x903)]=document[_0x43938f(0x400)](_0x43938f(0x903)),this['div'][_0x43938f(0x636)](_0x43938f(0x60a),(0x168-this[_0x43938f(0x7af)])%0x168),this[_0x43938f(0x903)][_0x43938f(0x52b)]=this[_0x43938f(0x499)],this[_0x43938f(0x903)][_0x43938f(0x636)]('id',this['id']),this[_0x43938f(0x903)][_0x43938f(0x636)](_0x43938f(0x646),0x0),this[_0x43938f(0x532)](),this[_0x43938f(0x903)]['addEventListener'](_0x43938f(0x887),this.#boundFocusin),this[_0x43938f(0x903)][_0x43938f(0x5cc)]('focusout',this.#boundFocusout);const [_0x53de90,_0x5214c3]=this['getInitialTranslation']();return this[_0x43938f(0x18d)](_0x53de90,_0x5214c3),(0x0,_0x5ee713[_0x43938f(0x6c1)])(this,this['div'],['dragstart',_0x43938f(0x546)]),this['div'];}[_0x266ba6(0x546)](_0x1f3428){const _0x5455b7=_0x266ba6,{isMac:_0x7913}=_0x5c49c0[_0x5455b7(0x7a8)]['platform'];if(_0x1f3428[_0x5455b7(0x831)]!==0x0||_0x1f3428[_0x5455b7(0x8ca)]&&_0x7913){_0x1f3428[_0x5455b7(0x9af)]();return;}_0x1f3428['ctrlKey']&&!_0x7913||_0x1f3428[_0x5455b7(0x5a3)]||_0x1f3428[_0x5455b7(0x60b)]&&_0x7913?this[_0x5455b7(0x4c3)][_0x5455b7(0x3f3)](this):this[_0x5455b7(0x4c3)][_0x5455b7(0x18e)](this),this.#hasBeenSelected=!![];}[_0x266ba6(0x93f)](_0x4c8fdc,_0x164df7){const _0x3ab314=_0x266ba6,_0x3b077f=this['parentScale'],[_0x5a88ec,_0x50b745]=this[_0x3ab314(0x37f)],[_0x2257c2,_0x9facb7]=this[_0x3ab314(0x485)],_0x190fa8=_0x4c8fdc/_0x3b077f,_0x1a961d=_0x164df7/_0x3b077f,_0x404525=this['x']*_0x5a88ec,_0x41608e=this['y']*_0x50b745,_0xdbf624=this['width']*_0x5a88ec,_0xefe41d=this[_0x3ab314(0x999)]*_0x50b745;switch(this['rotation']){case 0x0:return[_0x404525+_0x190fa8+_0x2257c2,_0x50b745-_0x41608e-_0x1a961d-_0xefe41d+_0x9facb7,_0x404525+_0x190fa8+_0xdbf624+_0x2257c2,_0x50b745-_0x41608e-_0x1a961d+_0x9facb7];case 0x5a:return[_0x404525+_0x1a961d+_0x2257c2,_0x50b745-_0x41608e+_0x190fa8+_0x9facb7,_0x404525+_0x1a961d+_0xefe41d+_0x2257c2,_0x50b745-_0x41608e+_0x190fa8+_0xdbf624+_0x9facb7];case 0xb4:return[_0x404525-_0x190fa8-_0xdbf624+_0x2257c2,_0x50b745-_0x41608e+_0x1a961d+_0x9facb7,_0x404525-_0x190fa8+_0x2257c2,_0x50b745-_0x41608e+_0x1a961d+_0xefe41d+_0x9facb7];case 0x10e:return[_0x404525-_0x1a961d-_0xefe41d+_0x2257c2,_0x50b745-_0x41608e-_0x190fa8-_0xdbf624+_0x9facb7,_0x404525-_0x1a961d+_0x2257c2,_0x50b745-_0x41608e-_0x190fa8+_0x9facb7];default:throw new Error(_0x3ab314(0x21f));}}[_0x266ba6(0x6fe)](_0x4d483d,_0xe63fe1){const _0x36165b=_0x266ba6,[_0xf75e2d,_0xa0bb53,_0xf368b9,_0x4124bd]=_0x4d483d,_0x105d04=_0xf368b9-_0xf75e2d,_0x6dc415=_0x4124bd-_0xa0bb53;switch(this[_0x36165b(0x7af)]){case 0x0:return[_0xf75e2d,_0xe63fe1-_0x4124bd,_0x105d04,_0x6dc415];case 0x5a:return[_0xf75e2d,_0xe63fe1-_0xa0bb53,_0x6dc415,_0x105d04];case 0xb4:return[_0xf368b9,_0xe63fe1-_0xa0bb53,_0x105d04,_0x6dc415];case 0x10e:return[_0xf368b9,_0xe63fe1-_0x4124bd,_0x6dc415,_0x105d04];default:throw new Error('Invalid\x20rotation');}}[_0x266ba6(0x130)](){}['isEmpty'](){return![];}[_0x266ba6(0x8ce)](){this.#isInEditMode=!![];}[_0x266ba6(0x3ac)](){this.#isInEditMode=![];}[_0x266ba6(0x761)](){return this.#isInEditMode;}[_0x266ba6(0x729)](){return![];}[_0x266ba6(0x186)](){const _0x215812=_0x266ba6;return this['div']&&!this[_0x215812(0x9a7)];}[_0x266ba6(0x9d3)](){const _0x2fd0fa=_0x266ba6;this['div']?.[_0x2fd0fa(0x5cc)](_0x2fd0fa(0x887),this.#boundFocusin),this['div']?.[_0x2fd0fa(0x5cc)]('focusout',this.#boundFocusout);}[_0x266ba6(0x65d)](){const _0x11ca4e=_0x266ba6;let _0x510a60=arguments['length']>0x0&&arguments[0x0]!==undefined?arguments[0x0]:![],_0xbb8044=arguments[_0x11ca4e(0x557)]>0x1&&arguments[0x1]!==undefined?arguments[0x1]:null;(0x0,_0x5c49c0[_0x11ca4e(0x749)])(_0x11ca4e(0x8e9));}static[_0x266ba6(0x7a3)](_0x3c5a74,_0x3473bf,_0x1b3ac1){const _0x10b654=_0x266ba6,_0x3c8814=new this[(_0x10b654(0x821))][(_0x10b654(0x6ef))]({'parent':_0x3473bf,'id':_0x3473bf['getNextId'](),'uiManager':_0x1b3ac1});_0x3c8814[_0x10b654(0x7af)]=_0x3c5a74[_0x10b654(0x7af)];const [_0x51cd67,_0x85ab0b]=_0x3c8814[_0x10b654(0x37f)],[_0x55e62e,_0x25c297,_0x39a871,_0x398965]=_0x3c8814['getRectInCurrentCoords'](_0x3c5a74['rect'],_0x85ab0b);return _0x3c8814['x']=_0x55e62e/_0x51cd67,_0x3c8814['y']=_0x25c297/_0x85ab0b,_0x3c8814['width']=_0x39a871/_0x51cd67,_0x3c8814[_0x10b654(0x999)]=_0x398965/_0x85ab0b,_0x3c8814;}[_0x266ba6(0x10a)](){const _0x3b677a=_0x266ba6;this[_0x3b677a(0x903)][_0x3b677a(0x1c0)]('focusin',this.#boundFocusin),this[_0x3b677a(0x903)][_0x3b677a(0x1c0)](_0x3b677a(0x81d),this.#boundFocusout),!this['isEmpty']()&&this[_0x3b677a(0x3b3)](),this[_0x3b677a(0x4c3)]?this[_0x3b677a(0x4c3)][_0x3b677a(0x10a)](this):this[_0x3b677a(0x5e4)]['removeEditor'](this);}[_0x266ba6(0x243)](){const _0x2d74b6=_0x266ba6;this[_0x2d74b6(0x903)]?.[_0x2d74b6(0x2bc)][_0x2d74b6(0x156)](_0x2d74b6(0x3aa));}[_0x266ba6(0x261)](){const _0x26a831=_0x266ba6;this[_0x26a831(0x903)]?.[_0x26a831(0x2bc)][_0x26a831(0x10a)](_0x26a831(0x3aa));}[_0x266ba6(0x72f)](_0x219fd4,_0x39092b){}[_0x266ba6(0x8d0)](){}[_0x266ba6(0x214)](){}['enterInEditMode'](){}get[_0x266ba6(0x1fe)](){return this['div'];}get[_0x266ba6(0x844)](){return this.#isEditing;}set['isEditing'](_0x2d6331){const _0x1b6230=_0x266ba6;this.#isEditing=_0x2d6331;if(!this[_0x1b6230(0x4c3)])return;_0x2d6331?(this[_0x1b6230(0x4c3)]['setSelected'](this),this[_0x1b6230(0x4c3)][_0x1b6230(0x275)](this)):this[_0x1b6230(0x4c3)][_0x1b6230(0x275)](null);}[_0x266ba6(0x231)](_0x38db58,_0x16aea2){const _0x15a62a=_0x266ba6;this.#keepAspectRatio=!![];const _0x3fc00c=_0x38db58/_0x16aea2,{style:_0x546918}=this['div'];_0x546918[_0x15a62a(0x345)]=_0x3fc00c,_0x546918[_0x15a62a(0x999)]=_0x15a62a(0x464),_0x3fc00c>=0x1?(_0x546918['minHeight']=_0x316d13+'px',_0x546918['minWidth']=Math[_0x15a62a(0x7df)](_0x3fc00c*_0x316d13)+'px'):(_0x546918[_0x15a62a(0x885)]=_0x316d13+'px',_0x546918[_0x15a62a(0x843)]=Math[_0x15a62a(0x7df)](_0x316d13/_0x3fc00c)+'px');}static get[_0x266ba6(0x527)](){return _0x316d13;}}_0x20993a[_0x266ba6(0x8f0)]=_0x44ba2b;class _0x5e912a extends _0x44ba2b{constructor(_0x585dc7){const _0x4083a7=_0x266ba6;super(_0x585dc7),this['annotationElementId']=_0x585dc7[_0x4083a7(0x66b)],this['deleted']=!![];}['serialize'](){const _0x645ef0=_0x266ba6;return{'id':this[_0x645ef0(0x66b)],'deleted':!![],'pageIndex':this[_0x645ef0(0x700)]};}}},(_0x51996c,_0xed6c37,_0x592c7c)=>{'use strict';const _0x180be7=a0_0x160d;Object[_0x180be7(0x430)](_0xed6c37,_0x180be7(0x19a),{'value':!![]}),_0xed6c37[_0x180be7(0x686)]=_0xed6c37[_0x180be7(0x5c7)]=_0xed6c37[_0x180be7(0x59e)]=_0xed6c37['AnnotationEditorUIManager']=void 0x0,_0xed6c37['bindEvents']=_0x257029,_0xed6c37[_0x180be7(0x171)]=_0x259552;var _0x5d2ee8=_0x592c7c(0x1),_0x509d17=_0x592c7c(0x87);function _0x257029(_0x77969,_0x47124e,_0x55bbd7){const _0x428d72=_0x180be7;for(const _0x1f8a86 of _0x55bbd7){_0x47124e[_0x428d72(0x5cc)](_0x1f8a86,_0x77969[_0x1f8a86]['bind'](_0x77969));}}function _0x259552(_0x5291c1){const _0x1b27d4=_0x180be7;return Math[_0x1b27d4(0x7df)](Math['min'](0xff,Math[_0x1b27d4(0x78d)](0x1,0xff*_0x5291c1)))[_0x1b27d4(0x83f)](0x10)['padStart'](0x2,'0');}class _0x9b249{#id=0x0;['getId'](){return''+_0x5d2ee8['AnnotationEditorPrefix']+this.#id++;}}class _0x2aed16{#baseId=(0x0,_0x5d2ee8[_0x180be7(0x77d)])();#id=0x0;#cache=null;async #get(_0x4c9937,_0xbd70ce){const _0x2199eb=_0x180be7;this.#cache||=new Map();let _0x4e64d8=this.#cache['get'](_0x4c9937);if(_0x4e64d8===null)return null;if(_0x4e64d8?.['bitmap'])return _0x4e64d8[_0x2199eb(0x335)]+=0x1,_0x4e64d8;try{_0x4e64d8||={'bitmap':null,'id':_0x2199eb(0x3c7)+this.#baseId+'_'+this.#id++,'refCounter':0x0,'isSvg':![]};let _0x55e240;if(typeof _0xbd70ce==='string'){_0x4e64d8[_0x2199eb(0x6a1)]=_0xbd70ce;const _0xac04aa=await fetch(_0xbd70ce);if(!_0xac04aa['ok'])throw new Error(_0xac04aa[_0x2199eb(0x7ad)]);_0x55e240=await _0xac04aa[_0x2199eb(0x429)]();}else _0x55e240=_0x4e64d8[_0x2199eb(0x151)]=_0xbd70ce;if(_0x55e240[_0x2199eb(0x9fd)]===_0x2199eb(0x737)){const _0xde4c3d=new FileReader(),_0x550190=new Promise(_0x289a2a=>{const _0x1c3331=_0x2199eb;_0xde4c3d[_0x1c3331(0x638)]=()=>{const _0x323f42=_0x1c3331;_0x4e64d8[_0x323f42(0x7da)]=_0xde4c3d['result'],_0x289a2a();};});_0xde4c3d[_0x2199eb(0x72a)](_0x55e240);const _0x590167=URL[_0x2199eb(0x9c1)](_0x55e240);_0x55e240=new Image();const _0x313283=new Promise(_0x20b1ce=>{const _0x388354=_0x2199eb;_0x55e240[_0x388354(0x638)]=()=>{const _0xb05fc5=_0x388354;URL[_0xb05fc5(0x87f)](_0x590167),_0x4e64d8['bitmap']=_0x55e240,_0x4e64d8['isSvg']=!![],_0x20b1ce();};});_0x55e240['src']=_0x590167,await Promise[_0x2199eb(0x586)]([_0x313283,_0x550190]);}else _0x4e64d8[_0x2199eb(0x7eb)]=await createImageBitmap(_0x55e240);_0x4e64d8[_0x2199eb(0x335)]=0x1;}catch(_0x25733c){console[_0x2199eb(0x9e3)](_0x25733c),_0x4e64d8=null;}return this.#cache['set'](_0x4c9937,_0x4e64d8),_0x4e64d8&&this.#cache[_0x2199eb(0x98e)](_0x4e64d8['id'],_0x4e64d8),_0x4e64d8;}async[_0x180be7(0x682)](_0x32364d){const {lastModified:_0x5d2e68,name:_0x23c14d,size:_0x183dbd,type:_0x5d0710}=_0x32364d;return this.#get(_0x5d2e68+'_'+_0x23c14d+'_'+_0x183dbd+'_'+_0x5d0710,_0x32364d);}async['getFromUrl'](_0x34da07){return this.#get(_0x34da07,_0x34da07);}async[_0x180be7(0x3d6)](_0x2bf375){const _0x37c832=_0x180be7;this.#cache||=new Map();const _0x3576bc=this.#cache[_0x37c832(0x8c4)](_0x2bf375);if(!_0x3576bc)return null;if(_0x3576bc[_0x37c832(0x7eb)])return _0x3576bc[_0x37c832(0x335)]+=0x1,_0x3576bc;if(_0x3576bc[_0x37c832(0x151)])return this[_0x37c832(0x682)](_0x3576bc[_0x37c832(0x151)]);return this[_0x37c832(0x2e3)](_0x3576bc[_0x37c832(0x6a1)]);}[_0x180be7(0x71e)](_0x18399e){const _0xeec299=_0x180be7,_0x3d43a0=this.#cache[_0xeec299(0x8c4)](_0x18399e);if(!_0x3d43a0?.[_0xeec299(0x616)])return null;return _0x3d43a0[_0xeec299(0x7da)];}[_0x180be7(0x376)](_0x2ad7cc){const _0x5d123f=_0x180be7;this.#cache||=new Map();const _0x3a1d31=this.#cache['get'](_0x2ad7cc);if(!_0x3a1d31)return;_0x3a1d31[_0x5d123f(0x335)]-=0x1;if(_0x3a1d31[_0x5d123f(0x335)]!==0x0)return;_0x3a1d31[_0x5d123f(0x7eb)]=null;}[_0x180be7(0x4ee)](_0x4945c1){return _0x4945c1['startsWith']('image_'+this.#baseId+'_');}}class _0x9f5b0b{#commands=[];#locked=![];#maxSize;#position=-0x1;constructor(){const _0xbfe422=_0x180be7;let _0x16977e=arguments[_0xbfe422(0x557)]>0x0&&arguments[0x0]!==undefined?arguments[0x0]:0x80;this.#maxSize=_0x16977e;}['add'](_0x8e7730){const _0xab5b46=_0x180be7;let {cmd:_0x277a55,undo:_0x317354,mustExec:_0x296212,type:type=NaN,overwriteIfSameType:overwriteIfSameType=![],keepUndo:keepUndo=![]}=_0x8e7730;_0x296212&&_0x277a55();if(this.#locked)return;const _0x560095={'cmd':_0x277a55,'undo':_0x317354,'type':type};if(this.#position===-0x1){this.#commands[_0xab5b46(0x557)]>0x0&&(this.#commands[_0xab5b46(0x557)]=0x0);this.#position=0x0,this.#commands[_0xab5b46(0x7d6)](_0x560095);return;}if(overwriteIfSameType&&this.#commands[this.#position][_0xab5b46(0x9fd)]===type){keepUndo&&(_0x560095[_0xab5b46(0x457)]=this.#commands[this.#position]['undo']);this.#commands[this.#position]=_0x560095;return;}const _0x417d2a=this.#position+0x1;_0x417d2a===this.#maxSize?this.#commands[_0xab5b46(0x397)](0x0,0x1):(this.#position=_0x417d2a,_0x417d2a<this.#commands[_0xab5b46(0x557)]&&this.#commands[_0xab5b46(0x397)](_0x417d2a)),this.#commands['push'](_0x560095);}[_0x180be7(0x457)](){const _0x4bf4a2=_0x180be7;if(this.#position===-0x1)return;this.#locked=!![],this.#commands[this.#position][_0x4bf4a2(0x457)](),this.#locked=![],this.#position-=0x1;}['redo'](){const _0x31a27e=_0x180be7;this.#position<this.#commands[_0x31a27e(0x557)]-0x1&&(this.#position+=0x1,this.#locked=!![],this.#commands[this.#position][_0x31a27e(0x382)](),this.#locked=![]);}[_0x180be7(0x6ae)](){return this.#position!==-0x1;}['hasSomethingToRedo'](){const _0x27ab4c=_0x180be7;return this.#position<this.#commands[_0x27ab4c(0x557)]-0x1;}[_0x180be7(0x256)](){this.#commands=null;}}_0xed6c37[_0x180be7(0x5c7)]=_0x9f5b0b;class _0x25edc6{constructor(_0x3cd99c){const _0x7754b9=_0x180be7;this[_0x7754b9(0x948)]=[],this[_0x7754b9(0x7f9)]=new Map(),this[_0x7754b9(0x2f9)]=new Set();const {isMac:_0x20c38f}=_0x5d2ee8[_0x7754b9(0x7a8)][_0x7754b9(0x5e2)];for(const [_0x329850,_0x1d0b49,_0x1cfd24=![]]of _0x3cd99c){for(const _0x4e0f6b of _0x329850){const _0x87453=_0x4e0f6b[_0x7754b9(0x2aa)](_0x7754b9(0xf9));if(_0x20c38f&&_0x87453)this[_0x7754b9(0x7f9)]['set'](_0x4e0f6b['slice'](0x4),{'callback':_0x1d0b49,'bubbles':_0x1cfd24}),this['allKeys'][_0x7754b9(0x156)](_0x4e0f6b[_0x7754b9(0x6db)]('+')['at'](-0x1));else!_0x20c38f&&!_0x87453&&(this['callbacks']['set'](_0x4e0f6b,{'callback':_0x1d0b49,'bubbles':_0x1cfd24}),this[_0x7754b9(0x2f9)][_0x7754b9(0x156)](_0x4e0f6b['split']('+')['at'](-0x1)));}}}#serialize(_0x427702){const _0x4920c7=_0x180be7;_0x427702[_0x4920c7(0x8e1)]&&this[_0x4920c7(0x948)][_0x4920c7(0x7d6)]('alt');_0x427702[_0x4920c7(0x8ca)]&&this[_0x4920c7(0x948)][_0x4920c7(0x7d6)](_0x4920c7(0x57c));_0x427702[_0x4920c7(0x60b)]&&this[_0x4920c7(0x948)][_0x4920c7(0x7d6)](_0x4920c7(0x643));_0x427702[_0x4920c7(0x5a3)]&&this[_0x4920c7(0x948)][_0x4920c7(0x7d6)]('shift');this[_0x4920c7(0x948)][_0x4920c7(0x7d6)](_0x427702[_0x4920c7(0x725)]);const _0x674fe8=this[_0x4920c7(0x948)][_0x4920c7(0x334)]('+');return this[_0x4920c7(0x948)][_0x4920c7(0x557)]=0x0,_0x674fe8;}[_0x180be7(0x249)](_0x10dffd,_0x4e92a7){const _0x1afc2a=_0x180be7;if(!this[_0x1afc2a(0x2f9)][_0x1afc2a(0x373)](_0x4e92a7[_0x1afc2a(0x725)]))return;const _0x3ef399=this[_0x1afc2a(0x7f9)]['get'](this.#serialize(_0x4e92a7));if(!_0x3ef399)return;const {callback:_0x5d338d,bubbles:_0x5ca13c}=_0x3ef399;_0x5d338d['bind'](_0x10dffd)(),!_0x5ca13c&&(_0x4e92a7[_0x1afc2a(0x1ab)](),_0x4e92a7[_0x1afc2a(0x9af)]());}}_0xed6c37[_0x180be7(0x686)]=_0x25edc6;class _0x91f042{static ['_colorsMapping']=new Map([[_0x180be7(0x819),[0x0,0x0,0x0]],[_0x180be7(0x582),[0xff,0xff,0xff]]]);get['_colors'](){const _0x27ae9d=_0x180be7,_0xfd699f=new Map([['CanvasText',null],['Canvas',null]]);return(0x0,_0x509d17[_0x27ae9d(0x52d)])(_0xfd699f),(0x0,_0x5d2ee8[_0x27ae9d(0x51d)])(this,_0x27ae9d(0x2e1),_0xfd699f);}[_0x180be7(0x836)](_0x1684d9){const _0x47d660=_0x180be7,_0x54d550=(0x0,_0x509d17['getRGB'])(_0x1684d9);if(!window[_0x47d660(0x7de)](_0x47d660(0x7cf))['matches'])return _0x54d550;for(const [_0x95cdc5,_0x556f52]of this[_0x47d660(0x2e1)]){if(_0x556f52[_0x47d660(0x1ff)]((_0x5af090,_0x226ef8)=>_0x5af090===_0x54d550[_0x226ef8]))return _0x91f042[_0x47d660(0x319)][_0x47d660(0x8c4)](_0x95cdc5);}return _0x54d550;}[_0x180be7(0x295)](_0x4f0136){const _0x1664fd=_0x180be7,_0x37e954=this[_0x1664fd(0x2e1)][_0x1664fd(0x8c4)](_0x4f0136);if(!_0x37e954)return _0x4f0136;return _0x5d2ee8['Util'][_0x1664fd(0x86a)](..._0x37e954);}}_0xed6c37['ColorManager']=_0x91f042;class _0x3d6b94{#activeEditor=null;#allEditors=new Map();#allLayers=new Map();#annotationStorage=null;#commandManager=new _0x9f5b0b();#currentPageIndex=0x0;#deletedAnnotationsElementIds=new Set();#editorTypes=null;#editorsToRescale=new Set();#eventBus=null;#filterFactory=null;#idManager=new _0x9b249();#isEnabled=![];#mode=_0x5d2ee8[_0x180be7(0x9a6)][_0x180be7(0x9f7)];#selectedEditors=new Set();#pageColors=null;#boundCopy=this[_0x180be7(0x602)][_0x180be7(0x5e8)](this);#boundCut=this[_0x180be7(0x13a)]['bind'](this);#boundPaste=this[_0x180be7(0x947)][_0x180be7(0x5e8)](this);#boundKeydown=this['keydown'][_0x180be7(0x5e8)](this);#boundOnEditingAction=this['onEditingAction'][_0x180be7(0x5e8)](this);#boundOnPageChanging=this[_0x180be7(0x67e)]['bind'](this);#boundOnScaleChanging=this[_0x180be7(0x433)]['bind'](this);#boundOnRotationChanging=this['onRotationChanging']['bind'](this);#previousStates={'isEditing':![],'isEmpty':!![],'hasSomethingToUndo':![],'hasSomethingToRedo':![],'hasSelectedEditor':![]};#container=null;static get[_0x180be7(0x76a)](){const _0x2fb760=_0x180be7;return(0x0,_0x5d2ee8[_0x2fb760(0x51d)])(this,_0x2fb760(0x76a),new _0x25edc6([[['ctrl+a',_0x2fb760(0x11c)],_0x3d6b94[_0x2fb760(0x821)][_0x2fb760(0x60d)]],[['ctrl+z',_0x2fb760(0x1dc)],_0x3d6b94['prototype'][_0x2fb760(0x457)]],[[_0x2fb760(0x6e1),'ctrl+shift+Z',_0x2fb760(0x657)],_0x3d6b94[_0x2fb760(0x821)]['redo']],[['Backspace',_0x2fb760(0x21b),'ctrl+Backspace',_0x2fb760(0x945),'mac+Backspace',_0x2fb760(0x4f9),_0x2fb760(0x318),'Delete','ctrl+Delete',_0x2fb760(0x9f9)],_0x3d6b94[_0x2fb760(0x821)]['delete']],[[_0x2fb760(0x508),'mac+Escape'],_0x3d6b94[_0x2fb760(0x821)][_0x2fb760(0x361)]]]));}constructor(_0x37d950,_0x822bc1,_0x1ab389,_0xe515b6){const _0x47e8e4=_0x180be7;this.#container=_0x37d950,this.#eventBus=_0x822bc1,this.#eventBus['_on']('editingaction',this.#boundOnEditingAction),this.#eventBus[_0x47e8e4(0x40b)](_0x47e8e4(0x4fb),this.#boundOnPageChanging),this.#eventBus[_0x47e8e4(0x40b)](_0x47e8e4(0x584),this.#boundOnScaleChanging),this.#eventBus[_0x47e8e4(0x40b)](_0x47e8e4(0x93d),this.#boundOnRotationChanging),this.#annotationStorage=_0x1ab389[_0x47e8e4(0x5bf)],this.#filterFactory=_0x1ab389[_0x47e8e4(0x491)],this.#pageColors=_0xe515b6,this[_0x47e8e4(0x614)]={'realScale':_0x509d17[_0x47e8e4(0x705)][_0x47e8e4(0x9aa)],'rotation':0x0};}[_0x180be7(0x256)](){const _0xd3d7c6=_0x180be7;this.#removeKeyboardManager(),this.#eventBus[_0xd3d7c6(0x79a)](_0xd3d7c6(0x9a0),this.#boundOnEditingAction),this.#eventBus[_0xd3d7c6(0x79a)](_0xd3d7c6(0x4fb),this.#boundOnPageChanging),this.#eventBus['_off'](_0xd3d7c6(0x584),this.#boundOnScaleChanging),this.#eventBus[_0xd3d7c6(0x79a)](_0xd3d7c6(0x93d),this.#boundOnRotationChanging);for(const _0x35671f of this.#allLayers[_0xd3d7c6(0x823)]()){_0x35671f[_0xd3d7c6(0x256)]();}this.#allLayers[_0xd3d7c6(0x1ca)](),this.#allEditors[_0xd3d7c6(0x1ca)](),this.#editorsToRescale[_0xd3d7c6(0x1ca)](),this.#activeEditor=null,this.#selectedEditors[_0xd3d7c6(0x1ca)](),this.#commandManager[_0xd3d7c6(0x256)]();}get[_0x180be7(0x370)](){const _0x5a6051=_0x180be7;return(0x0,_0x5d2ee8[_0x5a6051(0x51d)])(this,_0x5a6051(0x370),this.#pageColors?this.#filterFactory[_0x5a6051(0x7b1)](this.#pageColors[_0x5a6051(0x953)],this.#pageColors[_0x5a6051(0x82f)]):_0x5a6051(0x122));}[_0x180be7(0x67e)](_0x267206){let {pageNumber:_0x40a5d9}=_0x267206;this.#currentPageIndex=_0x40a5d9-0x1;}[_0x180be7(0x1bf)](){const _0x4d9a5e=_0x180be7;this.#container[_0x4d9a5e(0x47d)]();}[_0x180be7(0x63f)](_0x5c1ea6){const _0x5b9b43=_0x180be7;this.#editorsToRescale[_0x5b9b43(0x156)](_0x5c1ea6);}[_0x180be7(0x632)](_0x1359a5){this.#editorsToRescale['delete'](_0x1359a5);}[_0x180be7(0x433)](_0xaa53d9){const _0x58ca45=_0x180be7;let {scale:_0x22aa7c}=_0xaa53d9;this[_0x58ca45(0x69b)](),this[_0x58ca45(0x614)][_0x58ca45(0x11f)]=_0x22aa7c*_0x509d17[_0x58ca45(0x705)]['PDF_TO_CSS_UNITS'];for(const _0x4ee7dd of this.#editorsToRescale){_0x4ee7dd[_0x58ca45(0x433)]();}}[_0x180be7(0xda)](_0x28da74){const _0x5db1a5=_0x180be7;let {pagesRotation:_0x4149e7}=_0x28da74;this[_0x5db1a5(0x69b)](),this[_0x5db1a5(0x614)][_0x5db1a5(0x7af)]=_0x4149e7;}[_0x180be7(0x7e5)](_0x3fb9fa){const _0x32c5c5=_0x180be7;!_0x3fb9fa[_0x32c5c5(0x480)]()&&this.#annotationStorage&&!this.#annotationStorage[_0x32c5c5(0x373)](_0x3fb9fa['id'])&&this.#annotationStorage[_0x32c5c5(0x699)](_0x3fb9fa['id'],_0x3fb9fa);}#addKeyboardManager(){const _0x1ecf06=_0x180be7;this.#container[_0x1ecf06(0x5cc)](_0x1ecf06(0x14c),this.#boundKeydown);}#removeKeyboardManager(){const _0x2b24e8=_0x180be7;this.#container[_0x2b24e8(0x1c0)](_0x2b24e8(0x14c),this.#boundKeydown);}#addCopyPasteListeners(){const _0x29877d=_0x180be7;document[_0x29877d(0x5cc)](_0x29877d(0x602),this.#boundCopy),document[_0x29877d(0x5cc)](_0x29877d(0x13a),this.#boundCut),document['addEventListener'](_0x29877d(0x947),this.#boundPaste);}#removeCopyPasteListeners(){const _0x2e6ccb=_0x180be7;document[_0x2e6ccb(0x1c0)](_0x2e6ccb(0x602),this.#boundCopy),document[_0x2e6ccb(0x1c0)](_0x2e6ccb(0x13a),this.#boundCut),document[_0x2e6ccb(0x1c0)]('paste',this.#boundPaste);}['copy'](_0x16cd8a){const _0x5cfc1c=_0x180be7;_0x16cd8a[_0x5cfc1c(0x9af)]();this.#activeEditor&&this.#activeEditor[_0x5cfc1c(0x69b)]();if(!this[_0x5cfc1c(0x6da)])return;const _0x8ad1cc=[];for(const _0x2fbaa2 of this.#selectedEditors){const _0x59e7b7=_0x2fbaa2[_0x5cfc1c(0x65d)](!![]);_0x59e7b7&&_0x8ad1cc[_0x5cfc1c(0x7d6)](_0x59e7b7);}if(_0x8ad1cc['length']===0x0)return;_0x16cd8a[_0x5cfc1c(0x227)][_0x5cfc1c(0x5cb)]('application/pdfjs',JSON['stringify'](_0x8ad1cc));}[_0x180be7(0x13a)](_0x283f7c){const _0xb88103=_0x180be7;this[_0xb88103(0x602)](_0x283f7c),this['delete']();}['paste'](_0x5578d3){const _0x13c2f1=_0x180be7;_0x5578d3['preventDefault']();let _0xb84c1=_0x5578d3['clipboardData'][_0x13c2f1(0x593)](_0x13c2f1(0x384));if(!_0xb84c1)return;try{_0xb84c1=JSON[_0x13c2f1(0x412)](_0xb84c1);}catch(_0x2d40a7){(0x0,_0x5d2ee8[_0x13c2f1(0x472)])('paste:\x20\x22'+_0x2d40a7[_0x13c2f1(0x1bd)]+'\x22.');return;}if(!Array[_0x13c2f1(0x419)](_0xb84c1))return;this['unselectAll']();const _0x55690c=this.#allLayers[_0x13c2f1(0x8c4)](this.#currentPageIndex);try{const _0x3b5670=[];for(const _0x133233 of _0xb84c1){const _0x2e57d7=_0x55690c[_0x13c2f1(0x7a3)](_0x133233);if(!_0x2e57d7)return;_0x3b5670['push'](_0x2e57d7);}const _0x19a114=()=>{for(const _0x17b313 of _0x3b5670){this.#addEditorToLayer(_0x17b313);}this.#selectEditors(_0x3b5670);},_0x480290=()=>{const _0x213fa3=_0x13c2f1;for(const _0x41c9bf of _0x3b5670){_0x41c9bf[_0x213fa3(0x10a)]();}};this[_0x13c2f1(0x72e)]({'cmd':_0x19a114,'undo':_0x480290,'mustExec':!![]});}catch(_0x42f534){(0x0,_0x5d2ee8['warn'])(_0x13c2f1(0x285)+_0x42f534[_0x13c2f1(0x1bd)]+'\x22.');}}['keydown'](_0x3a50c8){const _0x2d26ec=_0x180be7;!this[_0x2d26ec(0x96e)]()?.['shouldGetKeyboardEvents']()&&_0x3d6b94[_0x2d26ec(0x76a)][_0x2d26ec(0x249)](this,_0x3a50c8);}['onEditingAction'](_0x12d20c){const _0x330746=_0x180be7;[_0x330746(0x457),_0x330746(0x83e),_0x330746(0x65f),_0x330746(0x60d)][_0x330746(0x720)](_0x12d20c[_0x330746(0x499)])&&this[_0x12d20c[_0x330746(0x499)]]();}#dispatchUpdateStates(_0x175673){const _0x443d64=_0x180be7,_0xa6bf6b=Object['entries'](_0x175673)[_0x443d64(0x82e)](_0x4b6890=>{let [_0x1bd013,_0x12d96a]=_0x4b6890;return this.#previousStates[_0x1bd013]!==_0x12d96a;});_0xa6bf6b&&this.#eventBus[_0x443d64(0x3c0)](_0x443d64(0x81e),{'source':this,'details':Object['assign'](this.#previousStates,_0x175673)});}#dispatchUpdateUI(_0x5ddda6){const _0x24faf8=_0x180be7;this.#eventBus[_0x24faf8(0x3c0)](_0x24faf8(0xcb),{'source':this,'details':_0x5ddda6});}['setEditingState'](_0x2c70bb){const _0x186bc3=_0x180be7;_0x2c70bb?(this.#addKeyboardManager(),this.#addCopyPasteListeners(),this.#dispatchUpdateStates({'isEditing':this.#mode!==_0x5d2ee8[_0x186bc3(0x9a6)]['NONE'],'isEmpty':this.#isEmpty(),'hasSomethingToUndo':this.#commandManager[_0x186bc3(0x6ae)](),'hasSomethingToRedo':this.#commandManager['hasSomethingToRedo'](),'hasSelectedEditor':![]})):(this.#removeKeyboardManager(),this.#removeCopyPasteListeners(),this.#dispatchUpdateStates({'isEditing':![]}));}[_0x180be7(0x567)](_0xefb4de){const _0x2ed759=_0x180be7;if(this.#editorTypes)return;this.#editorTypes=_0xefb4de;for(const _0x1f5031 of this.#editorTypes){this.#dispatchUpdateUI(_0x1f5031[_0x2ed759(0x5bb)]);}}[_0x180be7(0x520)](){const _0x542c8c=_0x180be7;return this.#idManager[_0x542c8c(0x520)]();}get[_0x180be7(0x877)](){const _0x41c778=_0x180be7;return this.#allLayers[_0x41c778(0x8c4)](this.#currentPageIndex);}get[_0x180be7(0x8ef)](){return this.#currentPageIndex;}[_0x180be7(0x5d3)](_0x199893){const _0x5d6ed4=_0x180be7;this.#allLayers[_0x5d6ed4(0x98e)](_0x199893[_0x5d6ed4(0x700)],_0x199893),this.#isEnabled?_0x199893[_0x5d6ed4(0x781)]():_0x199893['disable']();}[_0x180be7(0x4ca)](_0xcbb7b8){const _0x102df7=_0x180be7;this.#allLayers[_0x102df7(0x65f)](_0xcbb7b8[_0x102df7(0x700)]);}[_0x180be7(0x929)](_0x3dd83e){const _0x3c2b8d=_0x180be7;let _0x34548b=arguments[_0x3c2b8d(0x557)]>0x1&&arguments[0x1]!==undefined?arguments[0x1]:null;this.#mode=_0x3dd83e;if(_0x3dd83e===_0x5d2ee8[_0x3c2b8d(0x9a6)][_0x3c2b8d(0x9f7)]){this[_0x3c2b8d(0x709)](![]),this.#disableAll();return;}this[_0x3c2b8d(0x709)](!![]),this.#enableAll();for(const _0x5bf2bc of this.#allLayers[_0x3c2b8d(0x823)]()){_0x5bf2bc[_0x3c2b8d(0x929)](_0x3dd83e);}if(!_0x34548b)return;for(const _0x3d00ed of this.#allEditors[_0x3c2b8d(0x823)]()){if(_0x3d00ed['annotationElementId']===_0x34548b){this['setSelected'](_0x3d00ed),_0x3d00ed['enterInEditMode']();break;}}}[_0x180be7(0x3fb)](_0x3cc998){const _0x2a9222=_0x180be7;if(_0x3cc998===this.#mode)return;this.#eventBus[_0x2a9222(0x3c0)](_0x2a9222(0x3f6),{'source':this,'mode':_0x3cc998});}[_0x180be7(0x72f)](_0x52a7c5,_0x555c44){const _0x4905d6=_0x180be7;if(!this.#editorTypes)return;for(const _0x5b5e85 of this.#selectedEditors){_0x5b5e85[_0x4905d6(0x72f)](_0x52a7c5,_0x555c44);}for(const _0x3d0d45 of this.#editorTypes){_0x3d0d45[_0x4905d6(0x49d)](_0x52a7c5,_0x555c44);}}#enableAll(){const _0x1cc645=_0x180be7;if(!this.#isEnabled){this.#isEnabled=!![];for(const _0x18bb9d of this.#allLayers['values']()){_0x18bb9d[_0x1cc645(0x781)]();}}}#disableAll(){const _0x2bfd78=_0x180be7;this[_0x2bfd78(0x361)]();if(this.#isEnabled){this.#isEnabled=![];for(const _0x39e5f9 of this.#allLayers[_0x2bfd78(0x823)]()){_0x39e5f9[_0x2bfd78(0x5b6)]();}}}['getEditors'](_0x55ce4a){const _0x49d63f=_0x180be7,_0x538232=[];for(const _0x396922 of this.#allEditors[_0x49d63f(0x823)]()){_0x396922[_0x49d63f(0x700)]===_0x55ce4a&&_0x538232[_0x49d63f(0x7d6)](_0x396922);}return _0x538232;}[_0x180be7(0x6b0)](_0x522533){const _0x3e4517=_0x180be7;return this.#allEditors[_0x3e4517(0x8c4)](_0x522533);}['addEditor'](_0x1af241){this.#allEditors['set'](_0x1af241['id'],_0x1af241);}['removeEditor'](_0xd85de1){const _0x476278=_0x180be7;this.#allEditors[_0x476278(0x65f)](_0xd85de1['id']),this['unselect'](_0xd85de1),(!_0xd85de1[_0x476278(0x66b)]||!this.#deletedAnnotationsElementIds[_0x476278(0x373)](_0xd85de1[_0x476278(0x66b)]))&&this.#annotationStorage?.[_0x476278(0x10a)](_0xd85de1['id']);}[_0x180be7(0x91a)](_0x1fb04c){const _0x3eae25=_0x180be7;this.#deletedAnnotationsElementIds[_0x3eae25(0x156)](_0x1fb04c[_0x3eae25(0x66b)]),_0x1fb04c[_0x3eae25(0x2f0)]=!![];}[_0x180be7(0x7cd)](_0x24f852){const _0xc69778=_0x180be7;return this.#deletedAnnotationsElementIds[_0xc69778(0x373)](_0x24f852);}[_0x180be7(0x5b5)](_0x268417){const _0x4fbb9a=_0x180be7;this.#deletedAnnotationsElementIds[_0x4fbb9a(0x65f)](_0x268417['annotationElementId']),_0x268417[_0x4fbb9a(0x2f0)]=![];}#addEditorToLayer(_0x3fdf4f){const _0x5c9477=_0x180be7,_0x177e48=this.#allLayers['get'](_0x3fdf4f[_0x5c9477(0x700)]);_0x177e48?_0x177e48['addOrRebuild'](_0x3fdf4f):this['addEditor'](_0x3fdf4f);}[_0x180be7(0x275)](_0x4c8dac){const _0x12afff=_0x180be7;if(this.#activeEditor===_0x4c8dac)return;this.#activeEditor=_0x4c8dac,_0x4c8dac&&this.#dispatchUpdateUI(_0x4c8dac[_0x12afff(0x2da)]);}[_0x180be7(0x3f3)](_0x513bb8){const _0xde55f7=_0x180be7;if(this.#selectedEditors[_0xde55f7(0x373)](_0x513bb8)){this.#selectedEditors['delete'](_0x513bb8),_0x513bb8[_0xde55f7(0x261)](),this.#dispatchUpdateStates({'hasSelectedEditor':this[_0xde55f7(0x6da)]});return;}this.#selectedEditors['add'](_0x513bb8),_0x513bb8[_0xde55f7(0x243)](),this.#dispatchUpdateUI(_0x513bb8[_0xde55f7(0x2da)]),this.#dispatchUpdateStates({'hasSelectedEditor':!![]});}[_0x180be7(0x18e)](_0x3e7f3b){const _0x494f31=_0x180be7;for(const _0x4b9dbe of this.#selectedEditors){_0x4b9dbe!==_0x3e7f3b&&_0x4b9dbe[_0x494f31(0x261)]();}this.#selectedEditors[_0x494f31(0x1ca)](),this.#selectedEditors['add'](_0x3e7f3b),_0x3e7f3b[_0x494f31(0x243)](),this.#dispatchUpdateUI(_0x3e7f3b[_0x494f31(0x2da)]),this.#dispatchUpdateStates({'hasSelectedEditor':!![]});}[_0x180be7(0x4fe)](_0x1fa39b){const _0x170091=_0x180be7;return this.#selectedEditors[_0x170091(0x373)](_0x1fa39b);}[_0x180be7(0x261)](_0x36cec6){const _0x427626=_0x180be7;_0x36cec6['unselect'](),this.#selectedEditors[_0x427626(0x65f)](_0x36cec6),this.#dispatchUpdateStates({'hasSelectedEditor':this['hasSelection']});}get[_0x180be7(0x6da)](){const _0x4ba0f9=_0x180be7;return this.#selectedEditors[_0x4ba0f9(0x87a)]!==0x0;}['undo'](){const _0x41ee86=_0x180be7;this.#commandManager[_0x41ee86(0x457)](),this.#dispatchUpdateStates({'hasSomethingToUndo':this.#commandManager[_0x41ee86(0x6ae)](),'hasSomethingToRedo':!![],'isEmpty':this.#isEmpty()});}[_0x180be7(0x83e)](){const _0x4d912b=_0x180be7;this.#commandManager['redo'](),this.#dispatchUpdateStates({'hasSomethingToUndo':!![],'hasSomethingToRedo':this.#commandManager[_0x4d912b(0x302)](),'isEmpty':this.#isEmpty()});}[_0x180be7(0x72e)](_0x512fd6){const _0xc661af=_0x180be7;this.#commandManager[_0xc661af(0x156)](_0x512fd6),this.#dispatchUpdateStates({'hasSomethingToUndo':!![],'hasSomethingToRedo':![],'isEmpty':this.#isEmpty()});}#isEmpty(){const _0x2a8bb4=_0x180be7;if(this.#allEditors[_0x2a8bb4(0x87a)]===0x0)return!![];if(this.#allEditors[_0x2a8bb4(0x87a)]===0x1)for(const _0x1b25ff of this.#allEditors[_0x2a8bb4(0x823)]()){return _0x1b25ff['isEmpty']();}return![];}['delete'](){const _0x1b0fd7=_0x180be7;this['commitOrRemove']();if(!this[_0x1b0fd7(0x6da)])return;const _0x955c5=[...this.#selectedEditors],_0xcb3e62=()=>{const _0x42c6c8=_0x1b0fd7;for(const _0x5c4be6 of _0x955c5){_0x5c4be6[_0x42c6c8(0x10a)]();}},_0x54e3e7=()=>{for(const _0x154abb of _0x955c5){this.#addEditorToLayer(_0x154abb);}};this['addCommands']({'cmd':_0xcb3e62,'undo':_0x54e3e7,'mustExec':!![]});}[_0x180be7(0x69b)](){this.#activeEditor?.['commitOrRemove']();}#selectEditors(_0x191e13){const _0x174765=_0x180be7;this.#selectedEditors[_0x174765(0x1ca)]();for(const _0x207e10 of _0x191e13){if(_0x207e10['isEmpty']())continue;this.#selectedEditors[_0x174765(0x156)](_0x207e10),_0x207e10[_0x174765(0x243)]();}this.#dispatchUpdateStates({'hasSelectedEditor':!![]});}[_0x180be7(0x60d)](){const _0x33337a=_0x180be7;for(const _0x2d3016 of this.#selectedEditors){_0x2d3016[_0x33337a(0x3b3)]();}this.#selectEditors(this.#allEditors['values']());}['unselectAll'](){const _0x288ce9=_0x180be7;if(this.#activeEditor){this.#activeEditor[_0x288ce9(0x69b)]();return;}if(this.#selectedEditors[_0x288ce9(0x87a)]===0x0)return;for(const _0x54d967 of this.#selectedEditors){_0x54d967[_0x288ce9(0x261)]();}this.#selectedEditors[_0x288ce9(0x1ca)](),this.#dispatchUpdateStates({'hasSelectedEditor':![]});}[_0x180be7(0x5a0)](_0xc0c597){return this.#activeEditor===_0xc0c597;}['getActive'](){return this.#activeEditor;}['getMode'](){return this.#mode;}get['imageManager'](){const _0x9546c7=_0x180be7;return(0x0,_0x5d2ee8[_0x9546c7(0x51d)])(this,'imageManager',new _0x2aed16());}}_0xed6c37[_0x180be7(0x73c)]=_0x3d6b94;},(_0x35b4ee,_0xfff2ac,_0x54053f)=>{'use strict';const _0xa89a4b=a0_0x160d;Object[_0xa89a4b(0x430)](_0xfff2ac,_0xa89a4b(0x19a),{'value':!![]}),_0xfff2ac['StatTimer']=_0xfff2ac[_0xa89a4b(0x450)]=_0xfff2ac['PixelsPerInch']=_0xfff2ac['PageViewport']=_0xfff2ac[_0xa89a4b(0x35e)]=_0xfff2ac[_0xa89a4b(0x70c)]=_0xfff2ac[_0xa89a4b(0x7be)]=_0xfff2ac[_0xa89a4b(0xfa)]=_0xfff2ac['DOMCanvasFactory']=_0xfff2ac[_0xa89a4b(0x591)]=_0xfff2ac[_0xa89a4b(0x1de)]=void 0x0,_0xfff2ac[_0xa89a4b(0x30f)]=_0x6a81df,_0xfff2ac[_0xa89a4b(0x52d)]=_0xc40b1c,_0xfff2ac[_0xa89a4b(0x5f1)]=_0xe26f05,_0xfff2ac[_0xa89a4b(0x932)]=_0xe7c9ca,_0xfff2ac[_0xa89a4b(0x598)]=_0x3d3083,_0xfff2ac[_0xa89a4b(0x415)]=_0x457839,_0xfff2ac[_0xa89a4b(0x5da)]=_0x3d2c16,_0xfff2ac[_0xa89a4b(0x460)]=_0x5365e0,_0xfff2ac[_0xa89a4b(0x337)]=_0x534104,_0xfff2ac[_0xa89a4b(0x2f4)]=_0x358d43,_0xfff2ac[_0xa89a4b(0x969)]=_0x267663,_0xfff2ac['loadScript']=_0x1434a1,_0xfff2ac[_0xa89a4b(0x95e)]=_0x1c7562;var _0x4bb33b=_0x54053f(0x88),_0x4dba7e=_0x54053f(0x1);const _0x430e64=_0xa89a4b(0x2ae),_0x3c7461=_0xa89a4b(0x380);_0xfff2ac[_0xa89a4b(0x1de)]=_0x3c7461;class _0xae2803{static ['CSS']=0x60;static [_0xa89a4b(0x1f5)]=0x48;static [_0xa89a4b(0x9aa)]=this[_0xa89a4b(0x750)]/this[_0xa89a4b(0x1f5)];}_0xfff2ac[_0xa89a4b(0x705)]=_0xae2803;class _0x5b35b2 extends _0x4bb33b[_0xa89a4b(0x6cb)]{#_cache;#_defs;#docId;#document;#hcmFilter;#hcmKey;#hcmUrl;#hcmHighlightFilter;#hcmHighlightKey;#hcmHighlightUrl;#id=0x0;constructor(){const _0x3a5e7b=_0xa89a4b;let {docId:_0x1d2df4,ownerDocument:ownerDocument=globalThis['document']}=arguments[_0x3a5e7b(0x557)]>0x0&&arguments[0x0]!==undefined?arguments[0x0]:{};super(),this.#docId=_0x1d2df4,this.#document=ownerDocument;}get#cache(){return this.#_cache||=new Map();}get#defs(){const _0x245f61=_0xa89a4b;if(!this.#_defs){const _0x2e3d3e=this.#document[_0x245f61(0x400)](_0x245f61(0x903)),{style:_0x5a5d4b}=_0x2e3d3e;_0x5a5d4b['visibility']='hidden',_0x5a5d4b[_0x245f61(0x537)]=_0x245f61(0x1d2),_0x5a5d4b[_0x245f61(0x98b)]=_0x5a5d4b['height']=0x0,_0x5a5d4b[_0x245f61(0x954)]=_0x245f61(0x352),_0x5a5d4b['top']=_0x5a5d4b[_0x245f61(0x4fd)]=0x0,_0x5a5d4b['zIndex']=-0x1;const _0x46eb8f=this.#document[_0x245f61(0x48b)](_0x430e64,_0x245f61(0x286));_0x46eb8f[_0x245f61(0x636)](_0x245f61(0x98b),0x0),_0x46eb8f[_0x245f61(0x636)](_0x245f61(0x999),0x0),this.#_defs=this.#document[_0x245f61(0x48b)](_0x430e64,_0x245f61(0x487)),_0x2e3d3e['append'](_0x46eb8f),_0x46eb8f[_0x245f61(0x45e)](this.#_defs),this.#document[_0x245f61(0x4e7)][_0x245f61(0x45e)](_0x2e3d3e);}return this.#_defs;}['addFilter'](_0x1bff51){const _0x2f79da=_0xa89a4b;if(!_0x1bff51)return _0x2f79da(0x122);let _0x4079de=this.#cache[_0x2f79da(0x8c4)](_0x1bff51);if(_0x4079de)return _0x4079de;let _0x56e3d2,_0x195dca,_0x33965,_0x3092b2;if(_0x1bff51['length']===0x1){const _0x6db136=_0x1bff51[0x0],_0x4019cd=new Array(0x100);for(let _0x2a56cc=0x0;_0x2a56cc<0x100;_0x2a56cc++){_0x4019cd[_0x2a56cc]=_0x6db136[_0x2a56cc]/0xff;}_0x3092b2=_0x56e3d2=_0x195dca=_0x33965=_0x4019cd[_0x2f79da(0x334)](',');}else{const [_0x2099a1,_0x1506eb,_0x9f1ac7]=_0x1bff51,_0x334be4=new Array(0x100),_0x418729=new Array(0x100),_0x4ef20b=new Array(0x100);for(let _0x3cf9d7=0x0;_0x3cf9d7<0x100;_0x3cf9d7++){_0x334be4[_0x3cf9d7]=_0x2099a1[_0x3cf9d7]/0xff,_0x418729[_0x3cf9d7]=_0x1506eb[_0x3cf9d7]/0xff,_0x4ef20b[_0x3cf9d7]=_0x9f1ac7[_0x3cf9d7]/0xff;}_0x56e3d2=_0x334be4[_0x2f79da(0x334)](','),_0x195dca=_0x418729[_0x2f79da(0x334)](','),_0x33965=_0x4ef20b[_0x2f79da(0x334)](','),_0x3092b2=''+_0x56e3d2+_0x195dca+_0x33965;}_0x4079de=this.#cache[_0x2f79da(0x8c4)](_0x3092b2);if(_0x4079de)return this.#cache['set'](_0x1bff51,_0x4079de),_0x4079de;const _0x31604d='g_'+this.#docId+_0x2f79da(0x1ea)+this.#id++,_0x1e0ff4=_0x2f79da(0x475)+_0x31604d+')';this.#cache[_0x2f79da(0x98e)](_0x1bff51,_0x1e0ff4),this.#cache[_0x2f79da(0x98e)](_0x3092b2,_0x1e0ff4);const _0x5b1fa5=this.#createFilter(_0x31604d);return this.#addTransferMapConversion(_0x56e3d2,_0x195dca,_0x33965,_0x5b1fa5),_0x1e0ff4;}[_0xa89a4b(0x7b1)](_0x2dae02,_0x3e389c){const _0xcf8445=_0xa89a4b,_0x285522=_0x2dae02+'-'+_0x3e389c;if(this.#hcmKey===_0x285522)return this.#hcmUrl;this.#hcmKey=_0x285522,this.#hcmUrl=_0xcf8445(0x122),this.#hcmFilter?.[_0xcf8445(0x10a)]();if(!_0x2dae02||!_0x3e389c)return this.#hcmUrl;const _0x31aba1=this.#getRGB(_0x2dae02);_0x2dae02=_0x4dba7e[_0xcf8445(0x5d7)][_0xcf8445(0x86a)](..._0x31aba1);const _0x538291=this.#getRGB(_0x3e389c);_0x3e389c=_0x4dba7e[_0xcf8445(0x5d7)][_0xcf8445(0x86a)](..._0x538291),this.#defs['style']['color']='';if(_0x2dae02===_0xcf8445(0x83d)&&_0x3e389c===_0xcf8445(0x253)||_0x2dae02===_0x3e389c)return this.#hcmUrl;const _0x2ba887=new Array(0x100);for(let _0x194bc5=0x0;_0x194bc5<=0xff;_0x194bc5++){const _0x1aab79=_0x194bc5/0xff;_0x2ba887[_0x194bc5]=_0x1aab79<=0.03928?_0x1aab79/12.92:((_0x1aab79+0.055)/1.055)**2.4;}const _0x2d6176=_0x2ba887[_0xcf8445(0x334)](','),_0x21f263='g_'+this.#docId+'_hcm_filter',_0x1a3f28=this.#hcmHighlightFilter=this.#createFilter(_0x21f263);this.#addTransferMapConversion(_0x2d6176,_0x2d6176,_0x2d6176,_0x1a3f28),this.#addGrayConversion(_0x1a3f28);const _0x4d710b=(_0x13ec3a,_0x4e1d23)=>{const _0x165cbf=_0x31aba1[_0x13ec3a]/0xff,_0x427c55=_0x538291[_0x13ec3a]/0xff,_0x1d29f1=new Array(_0x4e1d23+0x1);for(let _0x1d7acb=0x0;_0x1d7acb<=_0x4e1d23;_0x1d7acb++){_0x1d29f1[_0x1d7acb]=_0x165cbf+_0x1d7acb/_0x4e1d23*(_0x427c55-_0x165cbf);}return _0x1d29f1['join'](',');};return this.#addTransferMapConversion(_0x4d710b(0x0,0x5),_0x4d710b(0x1,0x5),_0x4d710b(0x2,0x5),_0x1a3f28),this.#hcmUrl='url(#'+_0x21f263+')',this.#hcmUrl;}[_0xa89a4b(0x74c)](_0x521236,_0x488847,_0x80f070,_0x28b06a){const _0x1d49a3=_0xa89a4b,_0x184705=_0x521236+'-'+_0x488847+'-'+_0x80f070+'-'+_0x28b06a;if(this.#hcmHighlightKey===_0x184705)return this.#hcmHighlightUrl;this.#hcmHighlightKey=_0x184705,this.#hcmHighlightUrl=_0x1d49a3(0x122),this.#hcmHighlightFilter?.[_0x1d49a3(0x10a)]();if(!_0x521236||!_0x488847)return this.#hcmHighlightUrl;const [_0x30e134,_0x3d19bc]=[_0x521236,_0x488847][_0x1d49a3(0x7ec)](this.#getRGB[_0x1d49a3(0x5e8)](this));let _0x4330fc=Math[_0x1d49a3(0x7df)](0.2126*_0x30e134[0x0]+0.7152*_0x30e134[0x1]+0.0722*_0x30e134[0x2]),_0x1b01f8=Math[_0x1d49a3(0x7df)](0.2126*_0x3d19bc[0x0]+0.7152*_0x3d19bc[0x1]+0.0722*_0x3d19bc[0x2]),[_0x531c36,_0x174459]=[_0x80f070,_0x28b06a][_0x1d49a3(0x7ec)](this.#getRGB[_0x1d49a3(0x5e8)](this));_0x1b01f8<_0x4330fc&&([_0x4330fc,_0x1b01f8,_0x531c36,_0x174459]=[_0x1b01f8,_0x4330fc,_0x174459,_0x531c36]);this.#defs[_0x1d49a3(0x498)][_0x1d49a3(0x5fe)]='';const _0x2cd3fb=(_0x456529,_0x5cc582,_0x525341)=>{const _0xde7e9f=_0x1d49a3,_0x4e36f5=new Array(0x100),_0x51488c=(_0x1b01f8-_0x4330fc)/_0x525341,_0xf34b=_0x456529/0xff,_0x153055=(_0x5cc582-_0x456529)/(0xff*_0x525341);let _0x28201d=0x0;for(let _0xc311b7=0x0;_0xc311b7<=_0x525341;_0xc311b7++){const _0xf47c0b=Math[_0xde7e9f(0x7df)](_0x4330fc+_0xc311b7*_0x51488c),_0x5bb174=_0xf34b+_0xc311b7*_0x153055;for(let _0x33ef14=_0x28201d;_0x33ef14<=_0xf47c0b;_0x33ef14++){_0x4e36f5[_0x33ef14]=_0x5bb174;}_0x28201d=_0xf47c0b+0x1;}for(let _0x4b7955=_0x28201d;_0x4b7955<0x100;_0x4b7955++){_0x4e36f5[_0x4b7955]=_0x4e36f5[_0x28201d-0x1];}return _0x4e36f5[_0xde7e9f(0x334)](',');},_0x32c0f0='g_'+this.#docId+_0x1d49a3(0x769),_0x5b5ea3=this.#hcmHighlightFilter=this.#createFilter(_0x32c0f0);return this.#addGrayConversion(_0x5b5ea3),this.#addTransferMapConversion(_0x2cd3fb(_0x531c36[0x0],_0x174459[0x0],0x5),_0x2cd3fb(_0x531c36[0x1],_0x174459[0x1],0x5),_0x2cd3fb(_0x531c36[0x2],_0x174459[0x2],0x5),_0x5b5ea3),this.#hcmHighlightUrl='url(#'+_0x32c0f0+')',this.#hcmHighlightUrl;}[_0xa89a4b(0x256)](){const _0x5f246d=_0xa89a4b;let _0x2b5f7c=arguments['length']>0x0&&arguments[0x0]!==undefined?arguments[0x0]:![];if(_0x2b5f7c&&(this.#hcmUrl||this.#hcmHighlightUrl))return;this.#_defs&&(this.#_defs[_0x5f246d(0x3dc)][_0x5f246d(0x3dc)][_0x5f246d(0x10a)](),this.#_defs=null),this.#_cache&&(this.#_cache[_0x5f246d(0x1ca)](),this.#_cache=null),this.#id=0x0;}#addGrayConversion(_0xd08a1b){const _0x17f94b=_0xa89a4b,_0x382df4=this.#document['createElementNS'](_0x430e64,_0x17f94b(0x392));_0x382df4[_0x17f94b(0x636)]('type',_0x17f94b(0x238)),_0x382df4['setAttribute']('values',_0x17f94b(0xfb)),_0xd08a1b[_0x17f94b(0x45e)](_0x382df4);}#createFilter(_0x5b9937){const _0x3c73cd=_0xa89a4b,_0x22a22b=this.#document[_0x3c73cd(0x48b)](_0x430e64,_0x3c73cd(0x81f));return _0x22a22b[_0x3c73cd(0x636)](_0x3c73cd(0x8b4),_0x3c73cd(0x7dd)),_0x22a22b['setAttribute']('id',_0x5b9937),this.#defs[_0x3c73cd(0x45e)](_0x22a22b),_0x22a22b;}#appendFeFunc(_0x54ed8d,_0x3e14e8,_0xcacae5){const _0xa4fc20=_0xa89a4b,_0x35b25a=this.#document['createElementNS'](_0x430e64,_0x3e14e8);_0x35b25a[_0xa4fc20(0x636)](_0xa4fc20(0x9fd),'discrete'),_0x35b25a[_0xa4fc20(0x636)](_0xa4fc20(0x8a0),_0xcacae5),_0x54ed8d['append'](_0x35b25a);}#addTransferMapConversion(_0x328b51,_0x5de12e,_0x40f094,_0x32bbed){const _0x4db638=_0xa89a4b,_0x1c9155=this.#document['createElementNS'](_0x430e64,_0x4db638(0x715));_0x32bbed[_0x4db638(0x45e)](_0x1c9155),this.#appendFeFunc(_0x1c9155,_0x4db638(0x223),_0x328b51),this.#appendFeFunc(_0x1c9155,_0x4db638(0x2d1),_0x5de12e),this.#appendFeFunc(_0x1c9155,_0x4db638(0x6f6),_0x40f094);}#getRGB(_0x15a9c9){const _0xe1204e=_0xa89a4b;return this.#defs[_0xe1204e(0x498)][_0xe1204e(0x5fe)]=_0x15a9c9,_0x3d2c16(getComputedStyle(this.#defs)[_0xe1204e(0x1bb)]('color'));}}_0xfff2ac['DOMFilterFactory']=_0x5b35b2;class _0x152f1a extends _0x4bb33b['BaseCanvasFactory']{constructor(){const _0x2590cb=_0xa89a4b;let {ownerDocument:ownerDocument=globalThis['document']}=arguments[_0x2590cb(0x557)]>0x0&&arguments[0x0]!==undefined?arguments[0x0]:{};super(),this[_0x2590cb(0xe7)]=ownerDocument;}['_createCanvas'](_0x467df1,_0x382751){const _0x51aca5=_0xa89a4b,_0xc9fea7=this[_0x51aca5(0xe7)][_0x51aca5(0x400)](_0x51aca5(0x75a));return _0xc9fea7[_0x51aca5(0x98b)]=_0x467df1,_0xc9fea7[_0x51aca5(0x999)]=_0x382751,_0xc9fea7;}}_0xfff2ac[_0xa89a4b(0x4fc)]=_0x152f1a;async function _0x46af76(_0x3268b3){const _0x22e8d2=_0xa89a4b;let _0x401a63=arguments[_0x22e8d2(0x557)]>0x1&&arguments[0x1]!==undefined?arguments[0x1]:![];if(_0x267663(_0x3268b3,document['baseURI'])){const _0x56a179=await fetch(_0x3268b3);if(!_0x56a179['ok'])throw new Error(_0x56a179[_0x22e8d2(0x7ad)]);return _0x401a63?new Uint8Array(await _0x56a179[_0x22e8d2(0x99f)]()):(0x0,_0x4dba7e[_0x22e8d2(0x647)])(await _0x56a179[_0x22e8d2(0x739)]());}return new Promise((_0x3cbdab,_0x12df7a)=>{const _0x5e064b=_0x22e8d2,_0x120848=new XMLHttpRequest();_0x120848[_0x5e064b(0x514)]('GET',_0x3268b3,!![]),_0x401a63&&(_0x120848[_0x5e064b(0x9bc)]=_0x5e064b(0x551)),_0x120848[_0x5e064b(0x9be)]=()=>{const _0x12fe21=_0x5e064b;if(_0x120848['readyState']!==XMLHttpRequest[_0x12fe21(0x988)])return;if(_0x120848['status']===0xc8||_0x120848['status']===0x0){let _0x332b2f;if(_0x401a63&&_0x120848[_0x12fe21(0x280)])_0x332b2f=new Uint8Array(_0x120848[_0x12fe21(0x280)]);else!_0x401a63&&_0x120848[_0x12fe21(0x6c4)]&&(_0x332b2f=(0x0,_0x4dba7e[_0x12fe21(0x647)])(_0x120848[_0x12fe21(0x6c4)]));if(_0x332b2f){_0x3cbdab(_0x332b2f);return;}}_0x12df7a(new Error(_0x120848[_0x12fe21(0x7ad)]));},_0x120848[_0x5e064b(0x3e0)](null);});}class _0x34e13a extends _0x4bb33b[_0xa89a4b(0x704)]{[_0xa89a4b(0x863)](_0xead5d8,_0x15b3a3){const _0x383bc8=_0xa89a4b;return _0x46af76(_0xead5d8,this['isCompressed'])[_0x383bc8(0x22d)](_0x11e787=>{return{'cMapData':_0x11e787,'compressionType':_0x15b3a3};});}}_0xfff2ac['DOMCMapReaderFactory']=_0x34e13a;class _0x159bbf extends _0x4bb33b[_0xa89a4b(0x99b)]{[_0xa89a4b(0x863)](_0x23ad96){return _0x46af76(_0x23ad96,!![]);}}_0xfff2ac[_0xa89a4b(0x70c)]=_0x159bbf;class _0x324306 extends _0x4bb33b['BaseSVGFactory']{[_0xa89a4b(0x558)](_0x4c996a){const _0x255687=_0xa89a4b;return document[_0x255687(0x48b)](_0x430e64,_0x4c996a);}}_0xfff2ac[_0xa89a4b(0x7be)]=_0x324306;class _0x39f7c3{constructor(_0xa3806e){const _0x5e616e=_0xa89a4b;let {viewBox:_0x548725,scale:_0x284ef2,rotation:_0xfbad43,offsetX:offsetX=0x0,offsetY:offsetY=0x0,dontFlip:dontFlip=![]}=_0xa3806e;this[_0x5e616e(0x15f)]=_0x548725,this[_0x5e616e(0xc8)]=_0x284ef2,this['rotation']=_0xfbad43,this['offsetX']=offsetX,this['offsetY']=offsetY;const _0xa5e251=(_0x548725[0x2]+_0x548725[0x0])/0x2,_0x161667=(_0x548725[0x3]+_0x548725[0x1])/0x2;let _0x2fd195,_0x1624d5,_0x4dd71a,_0x21ad71;_0xfbad43%=0x168;_0xfbad43<0x0&&(_0xfbad43+=0x168);switch(_0xfbad43){case 0xb4:_0x2fd195=-0x1,_0x1624d5=0x0,_0x4dd71a=0x0,_0x21ad71=0x1;break;case 0x5a:_0x2fd195=0x0,_0x1624d5=0x1,_0x4dd71a=0x1,_0x21ad71=0x0;break;case 0x10e:_0x2fd195=0x0,_0x1624d5=-0x1,_0x4dd71a=-0x1,_0x21ad71=0x0;break;case 0x0:_0x2fd195=0x1,_0x1624d5=0x0,_0x4dd71a=0x0,_0x21ad71=-0x1;break;default:throw new Error('PageViewport:\x20Invalid\x20rotation,\x20must\x20be\x20a\x20multiple\x20of\x2090\x20degrees.');}dontFlip&&(_0x4dd71a=-_0x4dd71a,_0x21ad71=-_0x21ad71);let _0x18fdd7,_0x2a70e2,_0x1a67c2,_0x625ebf;_0x2fd195===0x0?(_0x18fdd7=Math[_0x5e616e(0x346)](_0x161667-_0x548725[0x1])*_0x284ef2+offsetX,_0x2a70e2=Math['abs'](_0xa5e251-_0x548725[0x0])*_0x284ef2+offsetY,_0x1a67c2=(_0x548725[0x3]-_0x548725[0x1])*_0x284ef2,_0x625ebf=(_0x548725[0x2]-_0x548725[0x0])*_0x284ef2):(_0x18fdd7=Math[_0x5e616e(0x346)](_0xa5e251-_0x548725[0x0])*_0x284ef2+offsetX,_0x2a70e2=Math['abs'](_0x161667-_0x548725[0x1])*_0x284ef2+offsetY,_0x1a67c2=(_0x548725[0x2]-_0x548725[0x0])*_0x284ef2,_0x625ebf=(_0x548725[0x3]-_0x548725[0x1])*_0x284ef2),this[_0x5e616e(0x5dd)]=[_0x2fd195*_0x284ef2,_0x1624d5*_0x284ef2,_0x4dd71a*_0x284ef2,_0x21ad71*_0x284ef2,_0x18fdd7-_0x2fd195*_0x284ef2*_0xa5e251-_0x4dd71a*_0x284ef2*_0x161667,_0x2a70e2-_0x1624d5*_0x284ef2*_0xa5e251-_0x21ad71*_0x284ef2*_0x161667],this['width']=_0x1a67c2,this[_0x5e616e(0x999)]=_0x625ebf;}get[_0xa89a4b(0x621)](){const {viewBox:_0x3d37c7}=this;return(0x0,_0x4dba7e['shadow'])(this,'rawDims',{'pageWidth':_0x3d37c7[0x2]-_0x3d37c7[0x0],'pageHeight':_0x3d37c7[0x3]-_0x3d37c7[0x1],'pageX':_0x3d37c7[0x0],'pageY':_0x3d37c7[0x1]});}['clone'](){const _0x1efd58=_0xa89a4b;let {scale:scale=this[_0x1efd58(0xc8)],rotation:rotation=this[_0x1efd58(0x7af)],offsetX:offsetX=this['offsetX'],offsetY:offsetY=this['offsetY'],dontFlip:dontFlip=![]}=arguments[_0x1efd58(0x557)]>0x0&&arguments[0x0]!==undefined?arguments[0x0]:{};return new _0x39f7c3({'viewBox':this['viewBox'][_0x1efd58(0x80c)](),'scale':scale,'rotation':rotation,'offsetX':offsetX,'offsetY':offsetY,'dontFlip':dontFlip});}[_0xa89a4b(0x2eb)](_0x4081f7,_0x2a7cf4){const _0x246e66=_0xa89a4b;return _0x4dba7e['Util'][_0x246e66(0x8a2)]([_0x4081f7,_0x2a7cf4],this[_0x246e66(0x5dd)]);}[_0xa89a4b(0x1d4)](_0x3d0f75){const _0x3e4fb3=_0xa89a4b,_0x56ee06=_0x4dba7e[_0x3e4fb3(0x5d7)]['applyTransform']([_0x3d0f75[0x0],_0x3d0f75[0x1]],this[_0x3e4fb3(0x5dd)]),_0x182d92=_0x4dba7e[_0x3e4fb3(0x5d7)][_0x3e4fb3(0x8a2)]([_0x3d0f75[0x2],_0x3d0f75[0x3]],this[_0x3e4fb3(0x5dd)]);return[_0x56ee06[0x0],_0x56ee06[0x1],_0x182d92[0x0],_0x182d92[0x1]];}[_0xa89a4b(0x735)](_0x16ec3c,_0x48454e){const _0x4ebd54=_0xa89a4b;return _0x4dba7e['Util']['applyInverseTransform']([_0x16ec3c,_0x48454e],this[_0x4ebd54(0x5dd)]);}}_0xfff2ac['PageViewport']=_0x39f7c3;class _0x52e29b extends _0x4dba7e['BaseException']{constructor(_0x226db0){const _0x5a1184=_0xa89a4b;let _0x220b18=arguments[_0x5a1184(0x557)]>0x1&&arguments[0x1]!==undefined?arguments[0x1]:0x0;super(_0x226db0,'RenderingCancelledException'),this['extraDelay']=_0x220b18;}}_0xfff2ac['RenderingCancelledException']=_0x52e29b;function _0x534104(_0x2ac449){const _0x46735a=_0xa89a4b,_0x303159=_0x2ac449[_0x46735a(0x557)];let _0x46c4ff=0x0;while(_0x46c4ff<_0x303159&&_0x2ac449[_0x46c4ff][_0x46735a(0x900)]()===''){_0x46c4ff++;}return _0x2ac449[_0x46735a(0x5d2)](_0x46c4ff,_0x46c4ff+0x5)['toLowerCase']()===_0x46735a(0x522);}function _0x358d43(_0x453a0c){const _0x576dcc=_0xa89a4b;return typeof _0x453a0c===_0x576dcc(0x8cd)&&/\.pdf$/i[_0x576dcc(0x6e7)](_0x453a0c);}function _0x3d3083(_0x2c1486){const _0x453763=_0xa89a4b;let _0x54d1f3=arguments[_0x453763(0x557)]>0x1&&arguments[0x1]!==undefined?arguments[0x1]:![];return!_0x54d1f3&&([_0x2c1486]=_0x2c1486['split'](/[#?]/,0x1)),_0x2c1486['substring'](_0x2c1486[_0x453763(0x568)]('/')+0x1);}function _0x457839(_0x32a2b6){const _0x428f45=_0xa89a4b;let _0x51b77a=arguments[_0x428f45(0x557)]>0x1&&arguments[0x1]!==undefined?arguments[0x1]:_0x428f45(0x2c3);if(typeof _0x32a2b6!=='string')return _0x51b77a;if(_0x534104(_0x32a2b6))return(0x0,_0x4dba7e[_0x428f45(0x472)])(_0x428f45(0x3ce)),_0x51b77a;const _0x17ca9a=/^(?:(?:[^:]+:)?\/\/[^/]+)?([^?#]*)(\?[^#]*)?(#.*)?$/,_0x324640=/[^/?#=]+\.pdf\b(?!.*\.pdf\b)/i,_0x442d04=_0x17ca9a[_0x428f45(0x249)](_0x32a2b6);let _0x6407a6=_0x324640[_0x428f45(0x249)](_0x442d04[0x1])||_0x324640[_0x428f45(0x249)](_0x442d04[0x2])||_0x324640['exec'](_0x442d04[0x3]);if(_0x6407a6){_0x6407a6=_0x6407a6[0x0];if(_0x6407a6[_0x428f45(0x720)]('%'))try{_0x6407a6=_0x324640[_0x428f45(0x249)](decodeURIComponent(_0x6407a6))[0x0];}catch{}}return _0x6407a6||_0x51b77a;}class _0x47b80f{[_0xa89a4b(0x648)]=Object[_0xa89a4b(0x77c)](null);['times']=[];['time'](_0x232160){const _0x316f36=_0xa89a4b;_0x232160 in this[_0x316f36(0x648)]&&(0x0,_0x4dba7e[_0x316f36(0x472)])(_0x316f36(0x82d)+_0x232160),this[_0x316f36(0x648)][_0x232160]=Date[_0x316f36(0x890)]();}[_0xa89a4b(0x459)](_0x566f6d){const _0x2a2e39=_0xa89a4b;!(_0x566f6d in this[_0x2a2e39(0x648)])&&(0x0,_0x4dba7e[_0x2a2e39(0x472)])(_0x2a2e39(0x787)+_0x566f6d),this[_0x2a2e39(0x1c2)][_0x2a2e39(0x7d6)]({'name':_0x566f6d,'start':this['started'][_0x566f6d],'end':Date['now']()}),delete this[_0x2a2e39(0x648)][_0x566f6d];}[_0xa89a4b(0x83f)](){const _0x49664c=_0xa89a4b,_0x3848de=[];let _0x1aa27c=0x0;for(const {name:_0x863100}of this['times']){_0x1aa27c=Math['max'](_0x863100[_0x49664c(0x557)],_0x1aa27c);}for(const {name:_0xe9a7dc,start:_0x49a3f9,end:_0x2be0c9}of this[_0x49664c(0x1c2)]){_0x3848de[_0x49664c(0x7d6)](_0xe9a7dc[_0x49664c(0x5c6)](_0x1aa27c)+'\x20'+(_0x2be0c9-_0x49a3f9)+_0x49664c(0x1b8));}return _0x3848de[_0x49664c(0x334)]('');}}_0xfff2ac[_0xa89a4b(0x76c)]=_0x47b80f;function _0x267663(_0x2fedac,_0x15eb90){const _0x57ba6d=_0xa89a4b;try{const {protocol:_0x560db3}=_0x15eb90?new URL(_0x2fedac,_0x15eb90):new URL(_0x2fedac);return _0x560db3==='http:'||_0x560db3===_0x57ba6d(0x61f);}catch{return![];}}function _0x1434a1(_0x4c1e82){const _0x349967=_0xa89a4b;let _0xf9b9e1=arguments[_0x349967(0x557)]>0x1&&arguments[0x1]!==undefined?arguments[0x1]:![];return new Promise((_0x4a3b55,_0x419c0d)=>{const _0x3d8ba8=_0x349967,_0x2d88b9=document[_0x3d8ba8(0x400)](_0x3d8ba8(0xf2));_0x2d88b9[_0x3d8ba8(0x5ef)]=_0x4c1e82,_0x2d88b9['onload']=function(_0x2db83f){const _0x4bf8a8=_0x3d8ba8;_0xf9b9e1&&_0x2d88b9[_0x4bf8a8(0x10a)](),_0x4a3b55(_0x2db83f);},_0x2d88b9[_0x3d8ba8(0x979)]=function(){const _0x1826bc=_0x3d8ba8;_0x419c0d(new Error(_0x1826bc(0x71a)+_0x2d88b9[_0x1826bc(0x5ef)]));},(document['head']||document[_0x3d8ba8(0x176)])[_0x3d8ba8(0x45e)](_0x2d88b9);});}function _0x6a81df(_0x389f36){const _0xf9c232=_0xa89a4b;console[_0xf9c232(0x4f4)](_0xf9c232(0x76d)+_0x389f36);}let _0x2849e2;class _0x3b6bd3{static[_0xa89a4b(0x3d7)](_0x18e9ec){const _0x40a4c5=_0xa89a4b;if(!_0x18e9ec||typeof _0x18e9ec!==_0x40a4c5(0x8cd))return null;_0x2849e2||=new RegExp(_0x40a4c5(0x2ce)+_0x40a4c5(0x2d3)+'(\x5cd{2})?'+'(\x5cd{2})?'+_0x40a4c5(0x5f4)+'(\x5cd{2})?'+_0x40a4c5(0x5f4)+_0x40a4c5(0x4e3)+_0x40a4c5(0x5f4)+'\x27?'+'(\x5cd{2})?'+'\x27?');const _0x25e2ba=_0x2849e2[_0x40a4c5(0x249)](_0x18e9ec);if(!_0x25e2ba)return null;const _0x58cae3=parseInt(_0x25e2ba[0x1],0xa);let _0x47b224=parseInt(_0x25e2ba[0x2],0xa);_0x47b224=_0x47b224>=0x1&&_0x47b224<=0xc?_0x47b224-0x1:0x0;let _0x530c34=parseInt(_0x25e2ba[0x3],0xa);_0x530c34=_0x530c34>=0x1&&_0x530c34<=0x1f?_0x530c34:0x1;let _0x24fa05=parseInt(_0x25e2ba[0x4],0xa);_0x24fa05=_0x24fa05>=0x0&&_0x24fa05<=0x17?_0x24fa05:0x0;let _0x229298=parseInt(_0x25e2ba[0x5],0xa);_0x229298=_0x229298>=0x0&&_0x229298<=0x3b?_0x229298:0x0;let _0x384580=parseInt(_0x25e2ba[0x6],0xa);_0x384580=_0x384580>=0x0&&_0x384580<=0x3b?_0x384580:0x0;const _0x4a7cc6=_0x25e2ba[0x7]||'Z';let _0x28e15a=parseInt(_0x25e2ba[0x8],0xa);_0x28e15a=_0x28e15a>=0x0&&_0x28e15a<=0x17?_0x28e15a:0x0;let _0xe51331=parseInt(_0x25e2ba[0x9],0xa)||0x0;_0xe51331=_0xe51331>=0x0&&_0xe51331<=0x3b?_0xe51331:0x0;if(_0x4a7cc6==='-')_0x24fa05+=_0x28e15a,_0x229298+=_0xe51331;else _0x4a7cc6==='+'&&(_0x24fa05-=_0x28e15a,_0x229298-=_0xe51331);return new Date(Date[_0x40a4c5(0x594)](_0x58cae3,_0x47b224,_0x530c34,_0x24fa05,_0x229298,_0x384580));}}_0xfff2ac[_0xa89a4b(0x35e)]=_0x3b6bd3;function _0x5365e0(_0x1c3e9f,_0x427fca){const _0x446074=_0xa89a4b;let {scale:scale=0x1,rotation:rotation=0x0}=_0x427fca;const {width:_0x26eee9,height:_0x59ea66}=_0x1c3e9f[_0x446074(0x6ec)]['style'],_0x558b21=[0x0,0x0,parseInt(_0x26eee9),parseInt(_0x59ea66)];return new _0x39f7c3({'viewBox':_0x558b21,'scale':scale,'rotation':rotation});}function _0x3d2c16(_0x4c704c){const _0x5d97a7=_0xa89a4b;if(_0x4c704c[_0x5d97a7(0x2aa)]('#')){const _0x22a22e=parseInt(_0x4c704c['slice'](0x1),0x10);return[(_0x22a22e&0xff0000)>>0x10,(_0x22a22e&0xff00)>>0x8,_0x22a22e&0xff];}if(_0x4c704c[_0x5d97a7(0x2aa)](_0x5d97a7(0x624)))return _0x4c704c[_0x5d97a7(0x80c)](0x4,-0x1)['split'](',')[_0x5d97a7(0x7ec)](_0x45d363=>parseInt(_0x45d363));if(_0x4c704c[_0x5d97a7(0x2aa)]('rgba('))return _0x4c704c[_0x5d97a7(0x80c)](0x5,-0x1)[_0x5d97a7(0x6db)](',')['map'](_0x59e9ad=>parseInt(_0x59e9ad))[_0x5d97a7(0x80c)](0x0,0x3);return(0x0,_0x4dba7e[_0x5d97a7(0x472)])('Not\x20a\x20valid\x20color\x20format:\x20\x22'+_0x4c704c+'\x22'),[0x0,0x0,0x0];}function _0xc40b1c(_0x4e48bf){const _0x130155=_0xa89a4b,_0x5b0603=document[_0x130155(0x400)](_0x130155(0x901));_0x5b0603[_0x130155(0x498)][_0x130155(0x269)]=_0x130155(0x495),document['body'][_0x130155(0x45e)](_0x5b0603);for(const _0x2c9be7 of _0x4e48bf['keys']()){_0x5b0603[_0x130155(0x498)][_0x130155(0x5fe)]=_0x2c9be7;const _0xa7fea6=window[_0x130155(0x6ad)](_0x5b0603)['color'];_0x4e48bf[_0x130155(0x98e)](_0x2c9be7,_0x3d2c16(_0xa7fea6));}_0x5b0603[_0x130155(0x10a)]();}function _0xe26f05(_0x8522ea){const {a:_0x10676e,b:_0x1cb63c,c:_0x4070f7,d:_0xec667c,e:_0x44750f,f:_0x116d18}=_0x8522ea['getTransform']();return[_0x10676e,_0x1cb63c,_0x4070f7,_0xec667c,_0x44750f,_0x116d18];}function _0xe7c9ca(_0x23601a){const _0x4b3771=_0xa89a4b,{a:_0x2c4c4f,b:_0x4780ee,c:_0x29216b,d:_0x7e484d,e:_0x4ccf25,f:_0x3885e5}=_0x23601a[_0x4b3771(0x56a)]()[_0x4b3771(0x43d)]();return[_0x2c4c4f,_0x4780ee,_0x29216b,_0x7e484d,_0x4ccf25,_0x3885e5];}function _0x1c7562(_0x3452a1,_0xa6f51a){const _0x457bf3=_0xa89a4b;let _0x503986=arguments['length']>0x2&&arguments[0x2]!==undefined?arguments[0x2]:![],_0x485bb5=arguments[_0x457bf3(0x557)]>0x3&&arguments[0x3]!==undefined?arguments[0x3]:!![];if(_0xa6f51a instanceof _0x39f7c3){const {pageWidth:_0x24e770,pageHeight:_0x22f17d}=_0xa6f51a['rawDims'],{style:_0x4f78c6}=_0x3452a1,_0x2e58b0=_0x457bf3(0x222)+_0x24e770+_0x457bf3(0x426),_0x2ea265=_0x457bf3(0x222)+_0x22f17d+_0x457bf3(0x426);!_0x503986||_0xa6f51a[_0x457bf3(0x7af)]%0xb4===0x0?(_0x4f78c6['width']=_0x2e58b0,_0x4f78c6[_0x457bf3(0x999)]=_0x2ea265):(_0x4f78c6[_0x457bf3(0x98b)]=_0x2ea265,_0x4f78c6[_0x457bf3(0x999)]=_0x2e58b0);}_0x485bb5&&_0x3452a1['setAttribute'](_0x457bf3(0x747),_0xa6f51a[_0x457bf3(0x7af)]);}},(_0x4545f8,_0x5d8a7c,_0x258a69)=>{'use strict';const _0x1bd5d0=a0_0x160d;Object[_0x1bd5d0(0x430)](_0x5d8a7c,'__esModule',{'value':!![]}),_0x5d8a7c[_0x1bd5d0(0x99b)]=_0x5d8a7c[_0x1bd5d0(0x4c6)]=_0x5d8a7c[_0x1bd5d0(0x6cb)]=_0x5d8a7c['BaseCanvasFactory']=_0x5d8a7c[_0x1bd5d0(0x704)]=void 0x0;var _0x153032=_0x258a69(0x1);class _0x13462e{constructor(){const _0x4889e1=_0x1bd5d0;this[_0x4889e1(0x6ef)]===_0x13462e&&(0x0,_0x153032[_0x4889e1(0x749)])(_0x4889e1(0x6aa));}[_0x1bd5d0(0x961)](_0x4c6dc6){const _0xc547e2=_0x1bd5d0;return _0xc547e2(0x122);}[_0x1bd5d0(0x7b1)](_0x4b89b7,_0x573b01){const _0x3370e7=_0x1bd5d0;return _0x3370e7(0x122);}[_0x1bd5d0(0x74c)](_0x578cbd,_0x10d1e2,_0x54a9d8,_0x134d4d){const _0xd7bd74=_0x1bd5d0;return _0xd7bd74(0x122);}[_0x1bd5d0(0x256)](){const _0x156226=_0x1bd5d0;let _0x1111c2=arguments[_0x156226(0x557)]>0x0&&arguments[0x0]!==undefined?arguments[0x0]:![];}}_0x5d8a7c['BaseFilterFactory']=_0x13462e;class _0x515fa3{constructor(){const _0x2a30fc=_0x1bd5d0;this['constructor']===_0x515fa3&&(0x0,_0x153032[_0x2a30fc(0x749)])(_0x2a30fc(0x804));}[_0x1bd5d0(0x77c)](_0x5341c0,_0x58c21f){const _0x4891f9=_0x1bd5d0;if(_0x5341c0<=0x0||_0x58c21f<=0x0)throw new Error(_0x4891f9(0x871));const _0x19cd5b=this['_createCanvas'](_0x5341c0,_0x58c21f);return{'canvas':_0x19cd5b,'context':_0x19cd5b[_0x4891f9(0x802)]('2d')};}[_0x1bd5d0(0x7cc)](_0x320314,_0x1959b4,_0x268758){const _0x1601f6=_0x1bd5d0;if(!_0x320314[_0x1601f6(0x75a)])throw new Error(_0x1601f6(0x995));if(_0x1959b4<=0x0||_0x268758<=0x0)throw new Error(_0x1601f6(0x871));_0x320314[_0x1601f6(0x75a)][_0x1601f6(0x98b)]=_0x1959b4,_0x320314[_0x1601f6(0x75a)][_0x1601f6(0x999)]=_0x268758;}['destroy'](_0x4783c0){const _0x24ebff=_0x1bd5d0;if(!_0x4783c0[_0x24ebff(0x75a)])throw new Error(_0x24ebff(0x995));_0x4783c0[_0x24ebff(0x75a)]['width']=0x0,_0x4783c0[_0x24ebff(0x75a)][_0x24ebff(0x999)]=0x0,_0x4783c0[_0x24ebff(0x75a)]=null,_0x4783c0[_0x24ebff(0x1a6)]=null;}[_0x1bd5d0(0x8da)](_0x8d276d,_0x1dc04f){const _0x318775=_0x1bd5d0;(0x0,_0x153032[_0x318775(0x749)])(_0x318775(0x604));}}_0x5d8a7c[_0x1bd5d0(0x46f)]=_0x515fa3;class _0x431423{constructor(_0x244e84){const _0x23505d=_0x1bd5d0;let {baseUrl:baseUrl=null,isCompressed:isCompressed=!![]}=_0x244e84;this[_0x23505d(0x6ef)]===_0x431423&&(0x0,_0x153032[_0x23505d(0x749)])(_0x23505d(0x673)),this[_0x23505d(0x43a)]=baseUrl,this[_0x23505d(0x15b)]=isCompressed;}async[_0x1bd5d0(0x940)](_0xe0a127){const _0x2feb0d=_0x1bd5d0;let {name:_0x133eb8}=_0xe0a127;if(!this[_0x2feb0d(0x43a)])throw new Error(_0x2feb0d(0x991)+_0x2feb0d(0x63e));if(!_0x133eb8)throw new Error('CMap\x20name\x20must\x20be\x20specified.');const _0x43d5be=this[_0x2feb0d(0x43a)]+_0x133eb8+(this['isCompressed']?_0x2feb0d(0x89a):''),_0x38ca0b=this['isCompressed']?_0x153032[_0x2feb0d(0x4a3)][_0x2feb0d(0x99c)]:_0x153032[_0x2feb0d(0x4a3)]['NONE'];return this[_0x2feb0d(0x863)](_0x43d5be,_0x38ca0b)[_0x2feb0d(0x75f)](_0x35b51a=>{const _0x3b57b8=_0x2feb0d;throw new Error(_0x3b57b8(0x38c)+(this[_0x3b57b8(0x15b)]?_0x3b57b8(0x9cb):'')+_0x3b57b8(0x7c0)+_0x43d5be);});}[_0x1bd5d0(0x863)](_0x504aef,_0x4391af){const _0x18b395=_0x1bd5d0;(0x0,_0x153032[_0x18b395(0x749)])(_0x18b395(0x825));}}_0x5d8a7c[_0x1bd5d0(0x704)]=_0x431423;class _0x3fddec{constructor(_0x1790a1){const _0x545bd4=_0x1bd5d0;let {baseUrl:baseUrl=null}=_0x1790a1;this['constructor']===_0x3fddec&&(0x0,_0x153032[_0x545bd4(0x749)])(_0x545bd4(0x528)),this[_0x545bd4(0x43a)]=baseUrl;}async['fetch'](_0x412a91){const _0x2722f6=_0x1bd5d0;let {filename:_0xcc5297}=_0x412a91;if(!this[_0x2722f6(0x43a)])throw new Error(_0x2722f6(0x92d)+'the\x20\x22standardFontDataUrl\x22\x20API\x20parameter\x20is\x20provided.');if(!_0xcc5297)throw new Error('Font\x20filename\x20must\x20be\x20specified.');const _0x4c2456=''+this[_0x2722f6(0x43a)]+_0xcc5297;return this['_fetchData'](_0x4c2456)[_0x2722f6(0x75f)](_0x2e8ac1=>{const _0x22ac74=_0x2722f6;throw new Error(_0x22ac74(0x8bf)+_0x4c2456);});}[_0x1bd5d0(0x863)](_0x5390cb){(0x0,_0x153032['unreachable'])('Abstract\x20method\x20`_fetchData`\x20called.');}}_0x5d8a7c[_0x1bd5d0(0x99b)]=_0x3fddec;class _0x56bb98{constructor(){const _0x2b4653=_0x1bd5d0;this[_0x2b4653(0x6ef)]===_0x56bb98&&(0x0,_0x153032['unreachable'])('Cannot\x20initialize\x20BaseSVGFactory.');}[_0x1bd5d0(0x77c)](_0x543cb5,_0xf1f3ee){const _0x739c98=_0x1bd5d0;let _0x3fd361=arguments[_0x739c98(0x557)]>0x2&&arguments[0x2]!==undefined?arguments[0x2]:![];if(_0x543cb5<=0x0||_0xf1f3ee<=0x0)throw new Error(_0x739c98(0x942));const _0x327723=this[_0x739c98(0x558)](_0x739c98(0x4b0));return _0x327723[_0x739c98(0x636)](_0x739c98(0x5b4),'1.1'),!_0x3fd361&&(_0x327723[_0x739c98(0x636)](_0x739c98(0x98b),_0x543cb5+'px'),_0x327723[_0x739c98(0x636)](_0x739c98(0x999),_0xf1f3ee+'px')),_0x327723['setAttribute'](_0x739c98(0x299),_0x739c98(0x122)),_0x327723[_0x739c98(0x636)](_0x739c98(0x15f),_0x739c98(0x198)+_0x543cb5+'\x20'+_0xf1f3ee),_0x327723;}[_0x1bd5d0(0x400)](_0x3d8949){const _0xe74aea=_0x1bd5d0;if(typeof _0x3d8949!==_0xe74aea(0x8cd))throw new Error(_0xe74aea(0x4aa));return this[_0xe74aea(0x558)](_0x3d8949);}[_0x1bd5d0(0x558)](_0x2398aa){const _0x5aa2c9=_0x1bd5d0;(0x0,_0x153032[_0x5aa2c9(0x749)])(_0x5aa2c9(0x2e8));}}_0x5d8a7c[_0x1bd5d0(0x4c6)]=_0x56bb98;},(_0x5d9031,_0x46d595,_0x472e88)=>{'use strict';const _0x2e3b7f=a0_0x160d;Object[_0x2e3b7f(0x430)](_0x46d595,'__esModule',{'value':!![]}),_0x46d595[_0x2e3b7f(0x54d)]=void 0x0;var _0x3a88fd=_0x472e88(0x1);const _0x578d12=0xc3d2e1f0,_0x579dd6=0xffff0000,_0x5193f2=0xffff;class _0x292fac{constructor(_0x506d48){this['h1']=_0x506d48?_0x506d48&0xffffffff:_0x578d12,this['h2']=_0x506d48?_0x506d48&0xffffffff:_0x578d12;}[_0x2e3b7f(0x1b4)](_0x14b213){const _0x436438=_0x2e3b7f;let _0x3d2890,_0xe929f6;if(typeof _0x14b213===_0x436438(0x8cd)){_0x3d2890=new Uint8Array(_0x14b213[_0x436438(0x557)]*0x2),_0xe929f6=0x0;for(let _0xae0cb3=0x0,_0x4ec1b2=_0x14b213[_0x436438(0x557)];_0xae0cb3<_0x4ec1b2;_0xae0cb3++){const _0x354105=_0x14b213[_0x436438(0x9f3)](_0xae0cb3);_0x354105<=0xff?_0x3d2890[_0xe929f6++]=_0x354105:(_0x3d2890[_0xe929f6++]=_0x354105>>>0x8,_0x3d2890[_0xe929f6++]=_0x354105&0xff);}}else{if((0x0,_0x3a88fd[_0x436438(0x14d)])(_0x14b213))_0x3d2890=_0x14b213['slice'](),_0xe929f6=_0x3d2890[_0x436438(0x110)];else throw new Error(_0x436438(0x8c3)+_0x436438(0x1c3));}const _0x1d743a=_0xe929f6>>0x2,_0x5c581f=_0xe929f6-_0x1d743a*0x4,_0x554948=new Uint32Array(_0x3d2890['buffer'],0x0,_0x1d743a);let _0x378cf9=0x0,_0x15c30d=0x0,_0x59ce3c=this['h1'],_0xc90f5b=this['h2'];const _0x5ee31f=0xcc9e2d51,_0x1f5e19=0x1b873593,_0x4263c6=_0x5ee31f&_0x5193f2,_0x8b9599=_0x1f5e19&_0x5193f2;for(let _0x4e5f5d=0x0;_0x4e5f5d<_0x1d743a;_0x4e5f5d++){_0x4e5f5d&0x1?(_0x378cf9=_0x554948[_0x4e5f5d],_0x378cf9=_0x378cf9*_0x5ee31f&_0x579dd6|_0x378cf9*_0x4263c6&_0x5193f2,_0x378cf9=_0x378cf9<<0xf|_0x378cf9>>>0x11,_0x378cf9=_0x378cf9*_0x1f5e19&_0x579dd6|_0x378cf9*_0x8b9599&_0x5193f2,_0x59ce3c^=_0x378cf9,_0x59ce3c=_0x59ce3c<<0xd|_0x59ce3c>>>0x13,_0x59ce3c=_0x59ce3c*0x5+0xe6546b64):(_0x15c30d=_0x554948[_0x4e5f5d],_0x15c30d=_0x15c30d*_0x5ee31f&_0x579dd6|_0x15c30d*_0x4263c6&_0x5193f2,_0x15c30d=_0x15c30d<<0xf|_0x15c30d>>>0x11,_0x15c30d=_0x15c30d*_0x1f5e19&_0x579dd6|_0x15c30d*_0x8b9599&_0x5193f2,_0xc90f5b^=_0x15c30d,_0xc90f5b=_0xc90f5b<<0xd|_0xc90f5b>>>0x13,_0xc90f5b=_0xc90f5b*0x5+0xe6546b64);}_0x378cf9=0x0;switch(_0x5c581f){case 0x3:_0x378cf9^=_0x3d2890[_0x1d743a*0x4+0x2]<<0x10;case 0x2:_0x378cf9^=_0x3d2890[_0x1d743a*0x4+0x1]<<0x8;case 0x1:_0x378cf9^=_0x3d2890[_0x1d743a*0x4],_0x378cf9=_0x378cf9*_0x5ee31f&_0x579dd6|_0x378cf9*_0x4263c6&_0x5193f2,_0x378cf9=_0x378cf9<<0xf|_0x378cf9>>>0x11,_0x378cf9=_0x378cf9*_0x1f5e19&_0x579dd6|_0x378cf9*_0x8b9599&_0x5193f2;_0x1d743a&0x1?_0x59ce3c^=_0x378cf9:_0xc90f5b^=_0x378cf9;}this['h1']=_0x59ce3c,this['h2']=_0xc90f5b;}[_0x2e3b7f(0x1fa)](){const _0x59f037=_0x2e3b7f;let _0x240234=this['h1'],_0x38c4be=this['h2'];return _0x240234^=_0x38c4be>>>0x1,_0x240234=_0x240234*0xed558ccd&_0x579dd6|_0x240234*0x8ccd&_0x5193f2,_0x38c4be=_0x38c4be*0xff51afd7&_0x579dd6|((_0x38c4be<<0x10|_0x240234>>>0x10)*0xafd7ed55&_0x579dd6)>>>0x10,_0x240234^=_0x38c4be>>>0x1,_0x240234=_0x240234*0x1a85ec53&_0x579dd6|_0x240234*0xec53&_0x5193f2,_0x38c4be=_0x38c4be*0xc4ceb9fe&_0x579dd6|((_0x38c4be<<0x10|_0x240234>>>0x10)*0xb9fe1a85&_0x579dd6)>>>0x10,_0x240234^=_0x38c4be>>>0x1,(_0x240234>>>0x0)[_0x59f037(0x83f)](0x10)[_0x59f037(0x3c2)](0x8,'0')+(_0x38c4be>>>0x0)['toString'](0x10)[_0x59f037(0x3c2)](0x8,'0');}}_0x46d595[_0x2e3b7f(0x54d)]=_0x292fac;},(_0x5d38e6,_0x4b5463,_0xbd7f4c)=>{'use strict';const _0x3529c6=a0_0x160d;Object[_0x3529c6(0x430)](_0x4b5463,_0x3529c6(0x19a),{'value':!![]}),_0x4b5463[_0x3529c6(0x6e3)]=_0x4b5463[_0x3529c6(0x575)]=void 0x0;var _0x4f0b03=_0xbd7f4c(0x1),_0x5b9c30=_0xbd7f4c(0x3);class _0x1cd98d{#systemFonts=new Set();constructor(_0xbe475f){const _0x1964fe=_0x3529c6;let {ownerDocument:ownerDocument=globalThis[_0x1964fe(0x2b1)],styleElement:styleElement=null}=_0xbe475f;this[_0x1964fe(0xe7)]=ownerDocument,this['nativeFontFaces']=new Set(),this['styleElement']=null,this[_0x1964fe(0x97d)]=[],this[_0x1964fe(0x43b)]=0x0;}[_0x3529c6(0x2f1)](_0x13bfe3){const _0x7651da=_0x3529c6;this[_0x7651da(0x7cb)][_0x7651da(0x156)](_0x13bfe3),this[_0x7651da(0xe7)]['fonts'][_0x7651da(0x156)](_0x13bfe3);}[_0x3529c6(0x10e)](_0x1dff97){const _0x5ca19d=_0x3529c6;this[_0x5ca19d(0x7cb)][_0x5ca19d(0x65f)](_0x1dff97),this[_0x5ca19d(0xe7)]['fonts']['delete'](_0x1dff97);}[_0x3529c6(0x32b)](_0x3e0324){const _0x4cad96=_0x3529c6;!this[_0x4cad96(0x136)]&&(this['styleElement']=this[_0x4cad96(0xe7)][_0x4cad96(0x400)]('style'),this[_0x4cad96(0xe7)][_0x4cad96(0x176)]['getElementsByTagName'](_0x4cad96(0x3f0))[0x0][_0x4cad96(0x45e)](this[_0x4cad96(0x136)]));const _0x372df1=this[_0x4cad96(0x136)]['sheet'];_0x372df1[_0x4cad96(0x32b)](_0x3e0324,_0x372df1[_0x4cad96(0x531)][_0x4cad96(0x557)]);}[_0x3529c6(0x1ca)](){const _0x5b20d5=_0x3529c6;for(const _0x5cf1ad of this[_0x5b20d5(0x7cb)]){this[_0x5b20d5(0xe7)][_0x5b20d5(0x6af)][_0x5b20d5(0x65f)](_0x5cf1ad);}this['nativeFontFaces'][_0x5b20d5(0x1ca)](),this.#systemFonts['clear'](),this[_0x5b20d5(0x136)]&&(this[_0x5b20d5(0x136)]['remove'](),this[_0x5b20d5(0x136)]=null);}async[_0x3529c6(0x88d)](_0x80c8dc){const _0x1a7142=_0x3529c6;if(!_0x80c8dc||this.#systemFonts['has'](_0x80c8dc[_0x1a7142(0x625)]))return;(0x0,_0x4f0b03['assert'])(!this['disableFontFace'],_0x1a7142(0xa02));if(this['isFontLoadingAPISupported']){const {loadedName:_0x8b41bb,src:_0x23fc0a,style:_0x3c308f}=_0x80c8dc,_0x2707a3=new FontFace(_0x8b41bb,_0x23fc0a,_0x3c308f);this[_0x1a7142(0x2f1)](_0x2707a3);try{await _0x2707a3[_0x1a7142(0x706)](),this.#systemFonts[_0x1a7142(0x156)](_0x8b41bb);}catch{(0x0,_0x4f0b03[_0x1a7142(0x472)])(_0x1a7142(0x4d1)+_0x80c8dc[_0x1a7142(0x9c3)]+_0x1a7142(0x6dd)),this[_0x1a7142(0x10e)](_0x2707a3);}return;}(0x0,_0x4f0b03[_0x1a7142(0x749)])(_0x1a7142(0x970));}async[_0x3529c6(0x5e8)](_0x56b793){const _0xac8581=_0x3529c6;if(_0x56b793[_0xac8581(0x992)]||_0x56b793[_0xac8581(0x39b)]&&!_0x56b793[_0xac8581(0x1b9)])return;_0x56b793[_0xac8581(0x992)]=!![];if(_0x56b793[_0xac8581(0x1b9)]){await this['loadSystemFont'](_0x56b793[_0xac8581(0x1b9)]);return;}if(this['isFontLoadingAPISupported']){const _0x517d9e=_0x56b793[_0xac8581(0x3b2)]();if(_0x517d9e){this[_0xac8581(0x2f1)](_0x517d9e);try{await _0x517d9e[_0xac8581(0x19f)];}catch(_0x23a2fe){(0x0,_0x4f0b03[_0xac8581(0x472)])(_0xac8581(0x9fe)+_0x517d9e[_0xac8581(0x264)]+_0xac8581(0x595)+_0x23a2fe+'\x27.'),_0x56b793[_0xac8581(0x8b6)]=!![];throw _0x23a2fe;}}return;}const _0x5c4a76=_0x56b793[_0xac8581(0x410)]();if(_0x5c4a76){this[_0xac8581(0x32b)](_0x5c4a76);if(this[_0xac8581(0x413)])return;await new Promise(_0x1c5158=>{const _0x3d555c=_0xac8581,_0x201fee=this[_0x3d555c(0x6a7)](_0x1c5158);this[_0x3d555c(0x239)](_0x56b793,_0x201fee);});}}get['isFontLoadingAPISupported'](){const _0x55f8a6=_0x3529c6,_0x4ecc81=!!this[_0x55f8a6(0xe7)]?.['fonts'];return(0x0,_0x4f0b03[_0x55f8a6(0x51d)])(this,_0x55f8a6(0x529),_0x4ecc81);}get[_0x3529c6(0x413)](){const _0x297460=_0x3529c6;let _0x2f047e=![];if(_0x5b9c30['isNodeJS'])_0x2f047e=!![];else typeof navigator!==_0x297460(0x32c)&&/Mozilla\/5.0.*?rv:\d+.*? Gecko/[_0x297460(0x6e7)](navigator['userAgent'])&&(_0x2f047e=!![]);return(0x0,_0x4f0b03[_0x297460(0x51d)])(this,_0x297460(0x413),_0x2f047e);}['_queueLoadingCallback'](_0x1fe246){function _0x3442d7(){const _0x3f8459=a0_0x160d;(0x0,_0x4f0b03[_0x3f8459(0x63a)])(!_0x113c2a['done'],_0x3f8459(0x6e9)),_0x113c2a[_0x3f8459(0x4bf)]=!![];while(_0x12786f[_0x3f8459(0x557)]>0x0&&_0x12786f[0x0][_0x3f8459(0x4bf)]){const _0x58bc5c=_0x12786f['shift']();setTimeout(_0x58bc5c[_0x3f8459(0x35c)],0x0);}}const {loadingRequests:_0x12786f}=this,_0x113c2a={'done':![],'complete':_0x3442d7,'callback':_0x1fe246};return _0x12786f['push'](_0x113c2a),_0x113c2a;}get['_loadTestFont'](){const _0x482b6d=_0x3529c6,_0x26dcbe=atob('T1RUTwALAIAAAwAwQ0ZGIDHtZg4AAAOYAAAAgUZGVE1lkzZwAAAEHAAAABxHREVGABQA'+_0x482b6d(0x141)+_0x482b6d(0x15e)+_0x482b6d(0x210)+_0x482b6d(0x2dc)+_0x482b6d(0x399)+_0x482b6d(0x7d4)+_0x482b6d(0x964)+_0x482b6d(0x147)+_0x482b6d(0x2c7)+_0x482b6d(0x25d)+_0x482b6d(0x5d5)+_0x482b6d(0x365)+_0x482b6d(0x6df)+'AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA'+_0x482b6d(0x986)+_0x482b6d(0x986)+_0x482b6d(0x1b7)+_0x482b6d(0x2bb)+_0x482b6d(0xcd)+_0x482b6d(0x320)+_0x482b6d(0x75b));return(0x0,_0x4f0b03[_0x482b6d(0x51d)])(this,'_loadTestFont',_0x26dcbe);}[_0x3529c6(0x239)](_0x330fa0,_0xb9455d){const _0x5d8f0e=_0x3529c6;function _0x53e7f5(_0x41b360,_0x18b369){const _0x316409=a0_0x160d;return _0x41b360[_0x316409(0x9f3)](_0x18b369)<<0x18|_0x41b360[_0x316409(0x9f3)](_0x18b369+0x1)<<0x10|_0x41b360[_0x316409(0x9f3)](_0x18b369+0x2)<<0x8|_0x41b360[_0x316409(0x9f3)](_0x18b369+0x3)&0xff;}function _0x470964(_0xe1b3bc,_0x520d65,_0x3c5b66,_0x558091){const _0x4ef990=a0_0x160d,_0x1d9713=_0xe1b3bc[_0x4ef990(0x5d2)](0x0,_0x520d65),_0x49e87d=_0xe1b3bc['substring'](_0x520d65+_0x3c5b66);return _0x1d9713+_0x558091+_0x49e87d;}let _0x443783,_0xe64dc7;const _0x1a6fa4=this[_0x5d8f0e(0xe7)][_0x5d8f0e(0x400)]('canvas');_0x1a6fa4['width']=0x1,_0x1a6fa4[_0x5d8f0e(0x999)]=0x1;const _0x5b95a1=_0x1a6fa4[_0x5d8f0e(0x802)]('2d');let _0x4ff6c1=0x0;function _0x4bc72d(_0x320737,_0x5bdc70){const _0x51f04d=_0x5d8f0e;if(++_0x4ff6c1>0x1e){(0x0,_0x4f0b03[_0x51f04d(0x472)])(_0x51f04d(0x752)),_0x5bdc70();return;}_0x5b95a1['font']=_0x51f04d(0x18c)+_0x320737,_0x5b95a1['fillText']('.',0x0,0x14);const _0xff239d=_0x5b95a1[_0x51f04d(0x3fc)](0x0,0x0,0x1,0x1);if(_0xff239d[_0x51f04d(0x41b)][0x3]>0x0){_0x5bdc70();return;}setTimeout(_0x4bc72d[_0x51f04d(0x5e8)](null,_0x320737,_0x5bdc70));}const _0x2cf1db='lt'+Date['now']()+this[_0x5d8f0e(0x43b)]++;let _0x1dc821=this[_0x5d8f0e(0x244)];const _0x93ba55=0x3d0;_0x1dc821=_0x470964(_0x1dc821,_0x93ba55,_0x2cf1db[_0x5d8f0e(0x557)],_0x2cf1db);const _0x2f0700=0x10,_0x3c0293=0x58585858;let _0x59042f=_0x53e7f5(_0x1dc821,_0x2f0700);for(_0x443783=0x0,_0xe64dc7=_0x2cf1db[_0x5d8f0e(0x557)]-0x3;_0x443783<_0xe64dc7;_0x443783+=0x4){_0x59042f=_0x59042f-_0x3c0293+_0x53e7f5(_0x2cf1db,_0x443783)|0x0;}_0x443783<_0x2cf1db[_0x5d8f0e(0x557)]&&(_0x59042f=_0x59042f-_0x3c0293+_0x53e7f5(_0x2cf1db+'XXX',_0x443783)|0x0);_0x1dc821=_0x470964(_0x1dc821,_0x2f0700,0x4,(0x0,_0x4f0b03['string32'])(_0x59042f));const _0x14fb00=_0x5d8f0e(0x374)+btoa(_0x1dc821)+');',_0x25d993=_0x5d8f0e(0x630)+_0x2cf1db+_0x5d8f0e(0x4cd)+_0x14fb00+'}';this[_0x5d8f0e(0x32b)](_0x25d993);const _0x2a4abe=this[_0x5d8f0e(0xe7)][_0x5d8f0e(0x400)](_0x5d8f0e(0x903));_0x2a4abe[_0x5d8f0e(0x498)][_0x5d8f0e(0x269)]=_0x5d8f0e(0x495),_0x2a4abe[_0x5d8f0e(0x498)][_0x5d8f0e(0x98b)]=_0x2a4abe[_0x5d8f0e(0x498)]['height']='10px',_0x2a4abe[_0x5d8f0e(0x498)][_0x5d8f0e(0x954)]=_0x5d8f0e(0x352),_0x2a4abe[_0x5d8f0e(0x498)][_0x5d8f0e(0x12f)]=_0x2a4abe[_0x5d8f0e(0x498)][_0x5d8f0e(0x4fd)]='0px';for(const _0x32ff1e of[_0x330fa0[_0x5d8f0e(0x625)],_0x2cf1db]){const _0x280a82=this[_0x5d8f0e(0xe7)][_0x5d8f0e(0x400)]('span');_0x280a82['textContent']='Hi',_0x280a82['style'][_0x5d8f0e(0x3a3)]=_0x32ff1e,_0x2a4abe[_0x5d8f0e(0x45e)](_0x280a82);}this['_document'][_0x5d8f0e(0x4e7)][_0x5d8f0e(0x45e)](_0x2a4abe),_0x4bc72d(_0x2cf1db,()=>{const _0x179caf=_0x5d8f0e;_0x2a4abe[_0x179caf(0x10a)](),_0xb9455d[_0x179caf(0x4e6)]();});}}_0x4b5463[_0x3529c6(0x6e3)]=_0x1cd98d;class _0x3cf0df{constructor(_0x550a32,_0x2f72c1){const _0x43ffc5=_0x3529c6;let {isEvalSupported:isEvalSupported=!![],disableFontFace:disableFontFace=![],ignoreErrors:ignoreErrors=![],inspectFont:inspectFont=null}=_0x2f72c1;this['compiledGlyphs']=Object[_0x43ffc5(0x77c)](null);for(const _0x422d59 in _0x550a32){this[_0x422d59]=_0x550a32[_0x422d59];}this['isEvalSupported']=isEvalSupported!==![],this[_0x43ffc5(0x8b6)]=disableFontFace===!![],this[_0x43ffc5(0x76f)]=ignoreErrors===!![],this[_0x43ffc5(0x4f8)]=inspectFont;}['createNativeFontFace'](){const _0x13dbca=_0x3529c6;if(!this['data']||this['disableFontFace'])return null;let _0x333a2b;if(!this[_0x13dbca(0x64e)])_0x333a2b=new FontFace(this[_0x13dbca(0x625)],this['data'],{});else{const _0x32e33b={'weight':this[_0x13dbca(0x64e)][_0x13dbca(0x5f0)]};this['cssFontInfo'][_0x13dbca(0x85b)]&&(_0x32e33b[_0x13dbca(0x498)]=_0x13dbca(0x972)+this['cssFontInfo'][_0x13dbca(0x85b)]+'deg'),_0x333a2b=new FontFace(this[_0x13dbca(0x64e)]['fontFamily'],this[_0x13dbca(0x41b)],_0x32e33b);}return this[_0x13dbca(0x4f8)]?.(this),_0x333a2b;}[_0x3529c6(0x410)](){const _0x5a0083=_0x3529c6;if(!this[_0x5a0083(0x41b)]||this['disableFontFace'])return null;const _0x2c4358=(0x0,_0x4f0b03[_0x5a0083(0x6b2)])(this[_0x5a0083(0x41b)]),_0x527e00=_0x5a0083(0x905)+this[_0x5a0083(0x605)]+_0x5a0083(0x7ae)+btoa(_0x2c4358)+');';let _0x5c41a7;if(!this[_0x5a0083(0x64e)])_0x5c41a7='@font-face\x20{font-family:\x22'+this[_0x5a0083(0x625)]+_0x5a0083(0x4cd)+_0x527e00+'}';else{let _0x38b4f0=_0x5a0083(0x4b4)+this[_0x5a0083(0x64e)]['fontWeight']+';';this[_0x5a0083(0x64e)][_0x5a0083(0x85b)]&&(_0x38b4f0+=_0x5a0083(0x312)+this[_0x5a0083(0x64e)][_0x5a0083(0x85b)]+_0x5a0083(0x40f)),_0x5c41a7=_0x5a0083(0x630)+this[_0x5a0083(0x64e)][_0x5a0083(0x3a3)]+'\x22;'+_0x38b4f0+'src:'+_0x527e00+'}';}return this[_0x5a0083(0x4f8)]?.(this,_0x527e00),_0x5c41a7;}[_0x3529c6(0x82a)](_0x261d9f,_0x5264d0){const _0x3554e1=_0x3529c6;if(this['compiledGlyphs'][_0x5264d0]!==undefined)return this[_0x3554e1(0x679)][_0x5264d0];let _0x5e898a;try{_0x5e898a=_0x261d9f[_0x3554e1(0x8c4)](this[_0x3554e1(0x625)]+_0x3554e1(0x88a)+_0x5264d0);}catch(_0x55cbfc){if(!this['ignoreErrors'])throw _0x55cbfc;return(0x0,_0x4f0b03['warn'])(_0x3554e1(0x9e8)+_0x55cbfc+'\x22.'),this[_0x3554e1(0x679)][_0x5264d0]=function(_0x1cd991,_0x4e8925){};}if(this[_0x3554e1(0x221)]&&_0x4f0b03[_0x3554e1(0x7a8)][_0x3554e1(0x221)]){const _0x10d84e=[];for(const _0x68cdd of _0x5e898a){const _0x34fcca=_0x68cdd[_0x3554e1(0x1a9)]!==undefined?_0x68cdd[_0x3554e1(0x1a9)]['join'](','):'';_0x10d84e[_0x3554e1(0x7d6)]('c.',_0x68cdd[_0x3554e1(0x382)],'(',_0x34fcca,_0x3554e1(0x685));}return this[_0x3554e1(0x679)][_0x5264d0]=new Function('c','size',_0x10d84e[_0x3554e1(0x334)](''));}return this[_0x3554e1(0x679)][_0x5264d0]=function(_0x2c9e06,_0x34b45e){const _0x585b53=_0x3554e1;for(const _0x29706b of _0x5e898a){_0x29706b[_0x585b53(0x382)]===_0x585b53(0xc8)&&(_0x29706b[_0x585b53(0x1a9)]=[_0x34b45e,-_0x34b45e]),_0x2c9e06[_0x29706b[_0x585b53(0x382)]][_0x585b53(0x2d2)](_0x2c9e06,_0x29706b['args']);}};}}_0x4b5463['FontFaceObject']=_0x3cf0df;},(_0x307609,_0x14ffd0,_0x4dac07)=>{'use strict';const _0x26edfb=a0_0x160d;Object[_0x26edfb(0x430)](_0x14ffd0,_0x26edfb(0x19a),{'value':!![]}),_0x14ffd0[_0x26edfb(0x6e6)]=void 0x0;var _0x37e514=_0x4dac07(0x1),_0x1b427a=_0x4dac07(0x87),_0x51d8e3=_0x4dac07(0x8c),_0x5b082c=_0x4dac07(0x8d),_0x4d5e22=_0x4dac07(0x3);const _0x4987d2=0x10,_0xc27232=0x64,_0x3ff1fc=0x1000,_0x6710d7=0xf,_0x66c684=0xa,_0x483a52=0x3e8,_0x499ee8=0x10;function _0xf871d5(_0x461267,_0x5234fb){const _0x1eedfe=_0x26edfb;if(_0x461267['_removeMirroring'])throw new Error('Context\x20is\x20already\x20forwarding\x20operations.');_0x461267['__originalSave']=_0x461267[_0x1eedfe(0x7e2)],_0x461267[_0x1eedfe(0x8e4)]=_0x461267['restore'],_0x461267['__originalRotate']=_0x461267[_0x1eedfe(0x3bb)],_0x461267[_0x1eedfe(0x902)]=_0x461267[_0x1eedfe(0xc8)],_0x461267[_0x1eedfe(0x1db)]=_0x461267['translate'],_0x461267[_0x1eedfe(0x6fc)]=_0x461267[_0x1eedfe(0x5dd)],_0x461267['__originalSetTransform']=_0x461267[_0x1eedfe(0xf1)],_0x461267['__originalResetTransform']=_0x461267[_0x1eedfe(0x189)],_0x461267[_0x1eedfe(0x7d5)]=_0x461267[_0x1eedfe(0x8b0)],_0x461267['__originalMoveTo']=_0x461267[_0x1eedfe(0x208)],_0x461267[_0x1eedfe(0x9cd)]=_0x461267['lineTo'],_0x461267[_0x1eedfe(0x25c)]=_0x461267[_0x1eedfe(0x3c6)],_0x461267[_0x1eedfe(0x549)]=_0x461267[_0x1eedfe(0x333)],_0x461267['__originalClosePath']=_0x461267[_0x1eedfe(0x576)],_0x461267['__originalBeginPath']=_0x461267[_0x1eedfe(0x1ec)],_0x461267[_0x1eedfe(0x656)]=()=>{const _0x4a7224=_0x1eedfe;_0x461267[_0x4a7224(0x7e2)]=_0x461267[_0x4a7224(0x93a)],_0x461267[_0x4a7224(0x9ab)]=_0x461267[_0x4a7224(0x8e4)],_0x461267[_0x4a7224(0x3bb)]=_0x461267[_0x4a7224(0x8c8)],_0x461267['scale']=_0x461267[_0x4a7224(0x902)],_0x461267['translate']=_0x461267[_0x4a7224(0x1db)],_0x461267[_0x4a7224(0x5dd)]=_0x461267['__originalTransform'],_0x461267[_0x4a7224(0xf1)]=_0x461267[_0x4a7224(0x6ac)],_0x461267[_0x4a7224(0x189)]=_0x461267[_0x4a7224(0x88b)],_0x461267[_0x4a7224(0x8b0)]=_0x461267[_0x4a7224(0x7d5)],_0x461267[_0x4a7224(0x208)]=_0x461267[_0x4a7224(0x50e)],_0x461267[_0x4a7224(0x39f)]=_0x461267['__originalLineTo'],_0x461267[_0x4a7224(0x3c6)]=_0x461267[_0x4a7224(0x25c)],_0x461267[_0x4a7224(0x333)]=_0x461267[_0x4a7224(0x549)],_0x461267[_0x4a7224(0x576)]=_0x461267[_0x4a7224(0x25f)],_0x461267['beginPath']=_0x461267[_0x4a7224(0x3f9)],delete _0x461267['_removeMirroring'];},_0x461267[_0x1eedfe(0x7e2)]=function _0x2473e3(){const _0x169d9a=_0x1eedfe;_0x5234fb['save'](),this[_0x169d9a(0x93a)]();},_0x461267[_0x1eedfe(0x9ab)]=function _0x1e667e(){const _0x418014=_0x1eedfe;_0x5234fb[_0x418014(0x9ab)](),this[_0x418014(0x8e4)]();},_0x461267[_0x1eedfe(0x18d)]=function _0x58fc2c(_0x3b5a2b,_0x2b905e){const _0x560cd8=_0x1eedfe;_0x5234fb[_0x560cd8(0x18d)](_0x3b5a2b,_0x2b905e),this[_0x560cd8(0x1db)](_0x3b5a2b,_0x2b905e);},_0x461267[_0x1eedfe(0xc8)]=function _0x26d67e(_0x4f4beb,_0x1dc10f){const _0x2436f4=_0x1eedfe;_0x5234fb[_0x2436f4(0xc8)](_0x4f4beb,_0x1dc10f),this[_0x2436f4(0x902)](_0x4f4beb,_0x1dc10f);},_0x461267[_0x1eedfe(0x5dd)]=function _0x433990(_0x355bed,_0x5f0294,_0x3a2229,_0x216973,_0x21fb82,_0x1398e6){const _0x23ecac=_0x1eedfe;_0x5234fb[_0x23ecac(0x5dd)](_0x355bed,_0x5f0294,_0x3a2229,_0x216973,_0x21fb82,_0x1398e6),this['__originalTransform'](_0x355bed,_0x5f0294,_0x3a2229,_0x216973,_0x21fb82,_0x1398e6);},_0x461267[_0x1eedfe(0xf1)]=function _0x56c1ca(_0x4e6951,_0xb6c56e,_0x26871b,_0x358419,_0x30fb53,_0x44bfca){const _0x144226=_0x1eedfe;_0x5234fb['setTransform'](_0x4e6951,_0xb6c56e,_0x26871b,_0x358419,_0x30fb53,_0x44bfca),this[_0x144226(0x6ac)](_0x4e6951,_0xb6c56e,_0x26871b,_0x358419,_0x30fb53,_0x44bfca);},_0x461267[_0x1eedfe(0x189)]=function _0x3698ee(){_0x5234fb['resetTransform'](),this['__originalResetTransform']();},_0x461267[_0x1eedfe(0x3bb)]=function _0x338427(_0xfc7d5a){const _0x42397a=_0x1eedfe;_0x5234fb[_0x42397a(0x3bb)](_0xfc7d5a),this[_0x42397a(0x8c8)](_0xfc7d5a);},_0x461267['clip']=function _0x3299e2(_0x269852){const _0x31a6dc=_0x1eedfe;_0x5234fb[_0x31a6dc(0x8b0)](_0x269852),this[_0x31a6dc(0x7d5)](_0x269852);},_0x461267[_0x1eedfe(0x208)]=function(_0x4820c2,_0x1924d2){const _0xe6df70=_0x1eedfe;_0x5234fb[_0xe6df70(0x208)](_0x4820c2,_0x1924d2),this['__originalMoveTo'](_0x4820c2,_0x1924d2);},_0x461267['lineTo']=function(_0xb8576c,_0x4d02ed){const _0x1a39cd=_0x1eedfe;_0x5234fb[_0x1a39cd(0x39f)](_0xb8576c,_0x4d02ed),this[_0x1a39cd(0x9cd)](_0xb8576c,_0x4d02ed);},_0x461267[_0x1eedfe(0x3c6)]=function(_0x5f3e75,_0x944bff,_0xe4a341,_0x486e9d,_0xb3b2d6,_0x3b1550){const _0x3f2c9d=_0x1eedfe;_0x5234fb['bezierCurveTo'](_0x5f3e75,_0x944bff,_0xe4a341,_0x486e9d,_0xb3b2d6,_0x3b1550),this[_0x3f2c9d(0x25c)](_0x5f3e75,_0x944bff,_0xe4a341,_0x486e9d,_0xb3b2d6,_0x3b1550);},_0x461267[_0x1eedfe(0x333)]=function(_0x16c3d0,_0x26f74d,_0x26b1e9,_0x430d07){_0x5234fb['rect'](_0x16c3d0,_0x26f74d,_0x26b1e9,_0x430d07),this['__originalRect'](_0x16c3d0,_0x26f74d,_0x26b1e9,_0x430d07);},_0x461267['closePath']=function(){const _0x373c0e=_0x1eedfe;_0x5234fb[_0x373c0e(0x576)](),this[_0x373c0e(0x25f)]();},_0x461267[_0x1eedfe(0x1ec)]=function(){const _0x325416=_0x1eedfe;_0x5234fb['beginPath'](),this[_0x325416(0x3f9)]();};}class _0x127589{constructor(_0x5d5b5e){const _0x13b2a1=_0x26edfb;this['canvasFactory']=_0x5d5b5e,this[_0x13b2a1(0x812)]=Object[_0x13b2a1(0x77c)](null);}[_0x26edfb(0x6cf)](_0x119bec,_0x5007a9,_0x53dcd8){const _0x130f2d=_0x26edfb;let _0x38f595;return this[_0x130f2d(0x812)][_0x119bec]!==undefined?(_0x38f595=this['cache'][_0x119bec],this[_0x130f2d(0x5db)]['reset'](_0x38f595,_0x5007a9,_0x53dcd8)):(_0x38f595=this[_0x130f2d(0x5db)][_0x130f2d(0x77c)](_0x5007a9,_0x53dcd8),this[_0x130f2d(0x812)][_0x119bec]=_0x38f595),_0x38f595;}[_0x26edfb(0x65f)](_0x43ae60){const _0x1c06ee=_0x26edfb;delete this[_0x1c06ee(0x812)][_0x43ae60];}['clear'](){const _0x2491fb=_0x26edfb;for(const _0x3a9157 in this[_0x2491fb(0x812)]){const _0x18929d=this[_0x2491fb(0x812)][_0x3a9157];this[_0x2491fb(0x5db)][_0x2491fb(0x256)](_0x18929d),delete this[_0x2491fb(0x812)][_0x3a9157];}}}function _0x230b45(_0x5d5f6f,_0x4863a8,_0x3ca297,_0x58784f,_0x4a9005,_0x2989ef,_0x17fc16,_0x491052,_0x5c9c75,_0x958430){const _0x5526a0=_0x26edfb,[_0x27b167,_0x76b2e6,_0x131846,_0x33553f,_0x2931d1,_0x39d782]=(0x0,_0x1b427a['getCurrentTransform'])(_0x5d5f6f);if(_0x76b2e6===0x0&&_0x131846===0x0){const _0x14157f=_0x17fc16*_0x27b167+_0x2931d1,_0x192edc=Math['round'](_0x14157f),_0x3844ef=_0x491052*_0x33553f+_0x39d782,_0x405815=Math['round'](_0x3844ef),_0x3b8d04=(_0x17fc16+_0x5c9c75)*_0x27b167+_0x2931d1,_0x1817d5=Math['abs'](Math[_0x5526a0(0x7df)](_0x3b8d04)-_0x192edc)||0x1,_0x3702a3=(_0x491052+_0x958430)*_0x33553f+_0x39d782,_0xe93e66=Math['abs'](Math['round'](_0x3702a3)-_0x405815)||0x1;return _0x5d5f6f[_0x5526a0(0xf1)](Math['sign'](_0x27b167),0x0,0x0,Math[_0x5526a0(0x51b)](_0x33553f),_0x192edc,_0x405815),_0x5d5f6f['drawImage'](_0x4863a8,_0x3ca297,_0x58784f,_0x4a9005,_0x2989ef,0x0,0x0,_0x1817d5,_0xe93e66),_0x5d5f6f[_0x5526a0(0xf1)](_0x27b167,_0x76b2e6,_0x131846,_0x33553f,_0x2931d1,_0x39d782),[_0x1817d5,_0xe93e66];}if(_0x27b167===0x0&&_0x33553f===0x0){const _0xfd6cf0=_0x491052*_0x131846+_0x2931d1,_0x461372=Math[_0x5526a0(0x7df)](_0xfd6cf0),_0x310f1b=_0x17fc16*_0x76b2e6+_0x39d782,_0x542acf=Math['round'](_0x310f1b),_0x3c7dac=(_0x491052+_0x958430)*_0x131846+_0x2931d1,_0x2714ec=Math[_0x5526a0(0x346)](Math[_0x5526a0(0x7df)](_0x3c7dac)-_0x461372)||0x1,_0x3b8e01=(_0x17fc16+_0x5c9c75)*_0x76b2e6+_0x39d782,_0x422fb1=Math[_0x5526a0(0x346)](Math[_0x5526a0(0x7df)](_0x3b8e01)-_0x542acf)||0x1;return _0x5d5f6f['setTransform'](0x0,Math[_0x5526a0(0x51b)](_0x76b2e6),Math[_0x5526a0(0x51b)](_0x131846),0x0,_0x461372,_0x542acf),_0x5d5f6f[_0x5526a0(0x545)](_0x4863a8,_0x3ca297,_0x58784f,_0x4a9005,_0x2989ef,0x0,0x0,_0x422fb1,_0x2714ec),_0x5d5f6f['setTransform'](_0x27b167,_0x76b2e6,_0x131846,_0x33553f,_0x2931d1,_0x39d782),[_0x422fb1,_0x2714ec];}_0x5d5f6f[_0x5526a0(0x545)](_0x4863a8,_0x3ca297,_0x58784f,_0x4a9005,_0x2989ef,_0x17fc16,_0x491052,_0x5c9c75,_0x958430);const _0x34cb0f=Math[_0x5526a0(0x8cb)](_0x27b167,_0x76b2e6),_0x2ed263=Math[_0x5526a0(0x8cb)](_0x131846,_0x33553f);return[_0x34cb0f*_0x5c9c75,_0x2ed263*_0x958430];}function _0x3c1935(_0x35d436){const _0x298831=_0x26edfb,{width:_0x12cfa0,height:_0xa32542}=_0x35d436;if(_0x12cfa0>_0x483a52||_0xa32542>_0x483a52)return null;const _0x5bad41=0x3e8,_0x321f73=new Uint8Array([0x0,0x2,0x4,0x0,0x1,0x0,0x5,0x4,0x8,0xa,0x0,0x8,0x0,0x2,0x1,0x0]),_0x1840ef=_0x12cfa0+0x1;let _0x2830e2=new Uint8Array(_0x1840ef*(_0xa32542+0x1)),_0x240005,_0x59c9eb,_0x473f3c;const _0xc981f0=_0x12cfa0+0x7&~0x7;let _0x1b5164=new Uint8Array(_0xc981f0*_0xa32542),_0x567285=0x0;for(const _0x41836a of _0x35d436[_0x298831(0x41b)]){let _0x1f29f3=0x80;while(_0x1f29f3>0x0){_0x1b5164[_0x567285++]=_0x41836a&_0x1f29f3?0x0:0xff,_0x1f29f3>>=0x1;}}let _0x3b796a=0x0;_0x567285=0x0;_0x1b5164[_0x567285]!==0x0&&(_0x2830e2[0x0]=0x1,++_0x3b796a);for(_0x59c9eb=0x1;_0x59c9eb<_0x12cfa0;_0x59c9eb++){_0x1b5164[_0x567285]!==_0x1b5164[_0x567285+0x1]&&(_0x2830e2[_0x59c9eb]=_0x1b5164[_0x567285]?0x2:0x1,++_0x3b796a),_0x567285++;}_0x1b5164[_0x567285]!==0x0&&(_0x2830e2[_0x59c9eb]=0x2,++_0x3b796a);for(_0x240005=0x1;_0x240005<_0xa32542;_0x240005++){_0x567285=_0x240005*_0xc981f0,_0x473f3c=_0x240005*_0x1840ef;_0x1b5164[_0x567285-_0xc981f0]!==_0x1b5164[_0x567285]&&(_0x2830e2[_0x473f3c]=_0x1b5164[_0x567285]?0x1:0x8,++_0x3b796a);let _0x519802=(_0x1b5164[_0x567285]?0x4:0x0)+(_0x1b5164[_0x567285-_0xc981f0]?0x8:0x0);for(_0x59c9eb=0x1;_0x59c9eb<_0x12cfa0;_0x59c9eb++){_0x519802=(_0x519802>>0x2)+(_0x1b5164[_0x567285+0x1]?0x4:0x0)+(_0x1b5164[_0x567285-_0xc981f0+0x1]?0x8:0x0),_0x321f73[_0x519802]&&(_0x2830e2[_0x473f3c+_0x59c9eb]=_0x321f73[_0x519802],++_0x3b796a),_0x567285++;}_0x1b5164[_0x567285-_0xc981f0]!==_0x1b5164[_0x567285]&&(_0x2830e2[_0x473f3c+_0x59c9eb]=_0x1b5164[_0x567285]?0x2:0x4,++_0x3b796a);if(_0x3b796a>_0x5bad41)return null;}_0x567285=_0xc981f0*(_0xa32542-0x1),_0x473f3c=_0x240005*_0x1840ef;_0x1b5164[_0x567285]!==0x0&&(_0x2830e2[_0x473f3c]=0x8,++_0x3b796a);for(_0x59c9eb=0x1;_0x59c9eb<_0x12cfa0;_0x59c9eb++){_0x1b5164[_0x567285]!==_0x1b5164[_0x567285+0x1]&&(_0x2830e2[_0x473f3c+_0x59c9eb]=_0x1b5164[_0x567285]?0x4:0x8,++_0x3b796a),_0x567285++;}_0x1b5164[_0x567285]!==0x0&&(_0x2830e2[_0x473f3c+_0x59c9eb]=0x4,++_0x3b796a);if(_0x3b796a>_0x5bad41)return null;const _0x1b3f00=new Int32Array([0x0,_0x1840ef,-0x1,0x0,-_0x1840ef,0x0,0x0,0x0,0x1]),_0x437231=new Path2D();for(_0x240005=0x0;_0x3b796a&&_0x240005<=_0xa32542;_0x240005++){let _0x195e8a=_0x240005*_0x1840ef;const _0x5d1d74=_0x195e8a+_0x12cfa0;while(_0x195e8a<_0x5d1d74&&!_0x2830e2[_0x195e8a]){_0x195e8a++;}if(_0x195e8a===_0x5d1d74)continue;_0x437231[_0x298831(0x208)](_0x195e8a%_0x1840ef,_0x240005);const _0x1aff66=_0x195e8a;let _0x3480ed=_0x2830e2[_0x195e8a];do{const _0x33d422=_0x1b3f00[_0x3480ed];do{_0x195e8a+=_0x33d422;}while(!_0x2830e2[_0x195e8a]);const _0x47880c=_0x2830e2[_0x195e8a];_0x47880c!==0x5&&_0x47880c!==0xa?(_0x3480ed=_0x47880c,_0x2830e2[_0x195e8a]=0x0):(_0x3480ed=_0x47880c&0x33*_0x3480ed>>0x4,_0x2830e2[_0x195e8a]&=_0x3480ed>>0x2|_0x3480ed<<0x2),_0x437231[_0x298831(0x39f)](_0x195e8a%_0x1840ef,_0x195e8a/_0x1840ef|0x0),!_0x2830e2[_0x195e8a]&&--_0x3b796a;}while(_0x1aff66!==_0x195e8a);--_0x240005;}_0x1b5164=null,_0x2830e2=null;const _0x5dc21e=function(_0x31b515){const _0x2932b0=_0x298831;_0x31b515['save'](),_0x31b515['scale'](0x1/_0x12cfa0,-0x1/_0xa32542),_0x31b515[_0x2932b0(0x18d)](0x0,-_0xa32542),_0x31b515[_0x2932b0(0x923)](_0x437231),_0x31b515[_0x2932b0(0x1ec)](),_0x31b515[_0x2932b0(0x9ab)]();};return _0x5dc21e;}class _0xb2a509{constructor(_0x19ef13,_0x3d34f7){const _0x378ecb=_0x26edfb;this[_0x378ecb(0x963)]=![],this[_0x378ecb(0x443)]=0x0,this[_0x378ecb(0x94d)]=0x1,this[_0x378ecb(0x5c2)]=_0x37e514[_0x378ecb(0x2d6)],this['textMatrixScale']=0x1,this[_0x378ecb(0x4f3)]=_0x37e514[_0x378ecb(0x6ab)],this['leading']=0x0,this['x']=0x0,this['y']=0x0,this[_0x378ecb(0x196)]=0x0,this[_0x378ecb(0x220)]=0x0,this[_0x378ecb(0x329)]=0x0,this[_0x378ecb(0x865)]=0x0,this['textHScale']=0x1,this[_0x378ecb(0x743)]=_0x37e514[_0x378ecb(0x38b)]['FILL'],this[_0x378ecb(0x505)]=0x0,this[_0x378ecb(0x631)]=_0x378ecb(0x83d),this[_0x378ecb(0x745)]=_0x378ecb(0x83d),this[_0x378ecb(0x4b9)]=![],this[_0x378ecb(0x587)]=0x1,this[_0x378ecb(0x2ca)]=0x1,this[_0x378ecb(0x2ad)]=0x1,this['activeSMask']=null,this[_0x378ecb(0x858)]=_0x378ecb(0x122),this[_0x378ecb(0x44f)]([0x0,0x0,_0x19ef13,_0x3d34f7]);}[_0x26edfb(0x461)](){const _0x479cf1=_0x26edfb,_0xca0587=Object[_0x479cf1(0x77c)](this);return _0xca0587['clipBox']=this['clipBox'][_0x479cf1(0x80c)](),_0xca0587;}['setCurrentPoint'](_0x45b107,_0x3c2117){this['x']=_0x45b107,this['y']=_0x3c2117;}[_0x26edfb(0x883)](_0xa91955,_0x3b3854,_0x1a642e){const _0x780fd8=_0x26edfb;[_0x3b3854,_0x1a642e]=_0x37e514[_0x780fd8(0x5d7)]['applyTransform']([_0x3b3854,_0x1a642e],_0xa91955),this[_0x780fd8(0x288)]=Math[_0x780fd8(0x81b)](this[_0x780fd8(0x288)],_0x3b3854),this[_0x780fd8(0x78e)]=Math[_0x780fd8(0x81b)](this[_0x780fd8(0x78e)],_0x1a642e),this[_0x780fd8(0x13e)]=Math[_0x780fd8(0x78d)](this[_0x780fd8(0x13e)],_0x3b3854),this['maxY']=Math[_0x780fd8(0x78d)](this[_0x780fd8(0x779)],_0x1a642e);}[_0x26edfb(0x767)](_0x1235cb,_0x2f6475){const _0x277d79=_0x26edfb,_0x3366d4=_0x37e514[_0x277d79(0x5d7)][_0x277d79(0x8a2)](_0x2f6475,_0x1235cb),_0x38b091=_0x37e514[_0x277d79(0x5d7)][_0x277d79(0x8a2)](_0x2f6475[_0x277d79(0x80c)](0x2),_0x1235cb);this[_0x277d79(0x288)]=Math['min'](this[_0x277d79(0x288)],_0x3366d4[0x0],_0x38b091[0x0]),this[_0x277d79(0x78e)]=Math[_0x277d79(0x81b)](this[_0x277d79(0x78e)],_0x3366d4[0x1],_0x38b091[0x1]),this[_0x277d79(0x13e)]=Math[_0x277d79(0x78d)](this['maxX'],_0x3366d4[0x0],_0x38b091[0x0]),this[_0x277d79(0x779)]=Math[_0x277d79(0x78d)](this[_0x277d79(0x779)],_0x3366d4[0x1],_0x38b091[0x1]);}['updateScalingPathMinMax'](_0x249848,_0x5a4db1){const _0x427730=_0x26edfb;_0x37e514['Util'][_0x427730(0x7aa)](_0x249848,_0x5a4db1),this[_0x427730(0x288)]=Math[_0x427730(0x81b)](this['minX'],_0x5a4db1[0x0]),this[_0x427730(0x13e)]=Math[_0x427730(0x78d)](this[_0x427730(0x13e)],_0x5a4db1[0x1]),this['minY']=Math['min'](this[_0x427730(0x78e)],_0x5a4db1[0x2]),this[_0x427730(0x779)]=Math[_0x427730(0x78d)](this['maxY'],_0x5a4db1[0x3]);}[_0x26edfb(0x46a)](_0x1701ef,_0x493456,_0xd00054,_0x2b577b,_0x49c686,_0x46e09c,_0x323d77,_0xc407fa,_0x249c3c,_0x3f5ccd){const _0x2a2125=_0x26edfb,_0x180736=_0x37e514[_0x2a2125(0x5d7)][_0x2a2125(0x513)](_0x493456,_0xd00054,_0x2b577b,_0x49c686,_0x46e09c,_0x323d77,_0xc407fa,_0x249c3c);if(_0x3f5ccd){_0x3f5ccd[0x0]=Math[_0x2a2125(0x81b)](_0x3f5ccd[0x0],_0x180736[0x0],_0x180736[0x2]),_0x3f5ccd[0x1]=Math[_0x2a2125(0x78d)](_0x3f5ccd[0x1],_0x180736[0x0],_0x180736[0x2]),_0x3f5ccd[0x2]=Math[_0x2a2125(0x81b)](_0x3f5ccd[0x2],_0x180736[0x1],_0x180736[0x3]),_0x3f5ccd[0x3]=Math[_0x2a2125(0x78d)](_0x3f5ccd[0x3],_0x180736[0x1],_0x180736[0x3]);return;}this[_0x2a2125(0x767)](_0x1701ef,_0x180736);}[_0x26edfb(0x814)](){const _0x141e01=_0x26edfb;let _0x26746d=arguments[_0x141e01(0x557)]>0x0&&arguments[0x0]!==undefined?arguments[0x0]:_0x51d8e3[_0x141e01(0x3b9)][_0x141e01(0x61e)],_0x4066d6=arguments[_0x141e01(0x557)]>0x1&&arguments[0x1]!==undefined?arguments[0x1]:null;const _0x2acd72=[this['minX'],this[_0x141e01(0x78e)],this[_0x141e01(0x13e)],this[_0x141e01(0x779)]];if(_0x26746d===_0x51d8e3[_0x141e01(0x3b9)][_0x141e01(0x607)]){!_0x4066d6&&(0x0,_0x37e514[_0x141e01(0x749)])(_0x141e01(0x5aa));const _0x49bad9=_0x37e514[_0x141e01(0x5d7)]['singularValueDecompose2dScale'](_0x4066d6),_0x599e91=_0x49bad9[0x0]*this[_0x141e01(0x2ad)]/0x2,_0x4b1a64=_0x49bad9[0x1]*this[_0x141e01(0x2ad)]/0x2;_0x2acd72[0x0]-=_0x599e91,_0x2acd72[0x1]-=_0x4b1a64,_0x2acd72[0x2]+=_0x599e91,_0x2acd72[0x3]+=_0x4b1a64;}return _0x2acd72;}[_0x26edfb(0x6d1)](){const _0x3def9a=_0x26edfb,_0x1f111a=_0x37e514[_0x3def9a(0x5d7)][_0x3def9a(0x441)](this['clipBox'],this['getPathBoundingBox']());this['startNewPathAndClipBox'](_0x1f111a||[0x0,0x0,0x0,0x0]);}[_0x26edfb(0x69a)](){const _0x59c883=_0x26edfb;return this[_0x59c883(0x288)]===Infinity;}['startNewPathAndClipBox'](_0x54c1ae){const _0x414fde=_0x26edfb;this[_0x414fde(0x8e7)]=_0x54c1ae,this[_0x414fde(0x288)]=Infinity,this[_0x414fde(0x78e)]=Infinity,this[_0x414fde(0x13e)]=0x0,this[_0x414fde(0x779)]=0x0;}[_0x26edfb(0x1e0)](){const _0x181faf=_0x26edfb;let _0x44bd2b=arguments['length']>0x0&&arguments[0x0]!==undefined?arguments[0x0]:_0x51d8e3[_0x181faf(0x3b9)][_0x181faf(0x61e)],_0x319695=arguments[_0x181faf(0x557)]>0x1&&arguments[0x1]!==undefined?arguments[0x1]:null;return _0x37e514[_0x181faf(0x5d7)]['intersect'](this[_0x181faf(0x8e7)],this[_0x181faf(0x814)](_0x44bd2b,_0x319695));}}function _0x4b8829(_0x5e44b8,_0x4afc59){const _0x41f4ab=_0x26edfb;if(typeof ImageData!==_0x41f4ab(0x32c)&&_0x4afc59 instanceof ImageData){_0x5e44b8[_0x41f4ab(0x2b9)](_0x4afc59,0x0,0x0);return;}const _0x40446e=_0x4afc59['height'],_0x49bc8f=_0x4afc59[_0x41f4ab(0x98b)],_0x392d22=_0x40446e%_0x499ee8,_0x4958b3=(_0x40446e-_0x392d22)/_0x499ee8,_0x30c03a=_0x392d22===0x0?_0x4958b3:_0x4958b3+0x1,_0x4478c6=_0x5e44b8[_0x41f4ab(0x160)](_0x49bc8f,_0x499ee8);let _0x344a08=0x0,_0x793c4a;const _0x488064=_0x4afc59[_0x41f4ab(0x41b)],_0x3381fc=_0x4478c6['data'];let _0x5b6c03,_0x129585,_0x31b25b,_0x54ddb2;if(_0x4afc59[_0x41f4ab(0x440)]===_0x37e514[_0x41f4ab(0x163)][_0x41f4ab(0x245)]){const _0x5212fe=_0x488064['byteLength'],_0x2789c3=new Uint32Array(_0x3381fc[_0x41f4ab(0x948)],0x0,_0x3381fc[_0x41f4ab(0x110)]>>0x2),_0x4de4fa=_0x2789c3[_0x41f4ab(0x557)],_0x24a298=_0x49bc8f+0x7>>0x3,_0x2eb1a2=0xffffffff,_0x50b586=_0x37e514[_0x41f4ab(0x7a8)][_0x41f4ab(0x654)]?0xff000000:0xff;for(_0x5b6c03=0x0;_0x5b6c03<_0x30c03a;_0x5b6c03++){_0x31b25b=_0x5b6c03<_0x4958b3?_0x499ee8:_0x392d22,_0x793c4a=0x0;for(_0x129585=0x0;_0x129585<_0x31b25b;_0x129585++){const _0x5b2b4=_0x5212fe-_0x344a08;let _0x222043=0x0;const _0x2374d9=_0x5b2b4>_0x24a298?_0x49bc8f:_0x5b2b4*0x8-0x7,_0x5c3f3f=_0x2374d9&~0x7;let _0x101264=0x0,_0x4dd328=0x0;for(;_0x222043<_0x5c3f3f;_0x222043+=0x8){_0x4dd328=_0x488064[_0x344a08++],_0x2789c3[_0x793c4a++]=_0x4dd328&0x80?_0x2eb1a2:_0x50b586,_0x2789c3[_0x793c4a++]=_0x4dd328&0x40?_0x2eb1a2:_0x50b586,_0x2789c3[_0x793c4a++]=_0x4dd328&0x20?_0x2eb1a2:_0x50b586,_0x2789c3[_0x793c4a++]=_0x4dd328&0x10?_0x2eb1a2:_0x50b586,_0x2789c3[_0x793c4a++]=_0x4dd328&0x8?_0x2eb1a2:_0x50b586,_0x2789c3[_0x793c4a++]=_0x4dd328&0x4?_0x2eb1a2:_0x50b586,_0x2789c3[_0x793c4a++]=_0x4dd328&0x2?_0x2eb1a2:_0x50b586,_0x2789c3[_0x793c4a++]=_0x4dd328&0x1?_0x2eb1a2:_0x50b586;}for(;_0x222043<_0x2374d9;_0x222043++){_0x101264===0x0&&(_0x4dd328=_0x488064[_0x344a08++],_0x101264=0x80),_0x2789c3[_0x793c4a++]=_0x4dd328&_0x101264?_0x2eb1a2:_0x50b586,_0x101264>>=0x1;}}while(_0x793c4a<_0x4de4fa){_0x2789c3[_0x793c4a++]=0x0;}_0x5e44b8[_0x41f4ab(0x2b9)](_0x4478c6,0x0,_0x5b6c03*_0x499ee8);}}else{if(_0x4afc59[_0x41f4ab(0x440)]===_0x37e514['ImageKind'][_0x41f4ab(0x617)]){_0x129585=0x0,_0x54ddb2=_0x49bc8f*_0x499ee8*0x4;for(_0x5b6c03=0x0;_0x5b6c03<_0x4958b3;_0x5b6c03++){_0x3381fc['set'](_0x488064[_0x41f4ab(0x47f)](_0x344a08,_0x344a08+_0x54ddb2)),_0x344a08+=_0x54ddb2,_0x5e44b8[_0x41f4ab(0x2b9)](_0x4478c6,0x0,_0x129585),_0x129585+=_0x499ee8;}_0x5b6c03<_0x30c03a&&(_0x54ddb2=_0x49bc8f*_0x392d22*0x4,_0x3381fc['set'](_0x488064[_0x41f4ab(0x47f)](_0x344a08,_0x344a08+_0x54ddb2)),_0x5e44b8['putImageData'](_0x4478c6,0x0,_0x129585));}else{if(_0x4afc59[_0x41f4ab(0x440)]===_0x37e514[_0x41f4ab(0x163)]['RGB_24BPP']){_0x31b25b=_0x499ee8,_0x54ddb2=_0x49bc8f*_0x31b25b;for(_0x5b6c03=0x0;_0x5b6c03<_0x30c03a;_0x5b6c03++){_0x5b6c03>=_0x4958b3&&(_0x31b25b=_0x392d22,_0x54ddb2=_0x49bc8f*_0x31b25b);_0x793c4a=0x0;for(_0x129585=_0x54ddb2;_0x129585--;){_0x3381fc[_0x793c4a++]=_0x488064[_0x344a08++],_0x3381fc[_0x793c4a++]=_0x488064[_0x344a08++],_0x3381fc[_0x793c4a++]=_0x488064[_0x344a08++],_0x3381fc[_0x793c4a++]=0xff;}_0x5e44b8[_0x41f4ab(0x2b9)](_0x4478c6,0x0,_0x5b6c03*_0x499ee8);}}else throw new Error(_0x41f4ab(0x2a4)+_0x4afc59[_0x41f4ab(0x440)]);}}}function _0x5a4aed(_0x1e63cf,_0x5dd21c){const _0x5358da=_0x26edfb;if(_0x5dd21c['bitmap']){_0x1e63cf[_0x5358da(0x545)](_0x5dd21c[_0x5358da(0x7eb)],0x0,0x0);return;}const _0x2bc754=_0x5dd21c[_0x5358da(0x999)],_0x251022=_0x5dd21c[_0x5358da(0x98b)],_0x31c278=_0x2bc754%_0x499ee8,_0x1da60c=(_0x2bc754-_0x31c278)/_0x499ee8,_0x2cb61d=_0x31c278===0x0?_0x1da60c:_0x1da60c+0x1,_0x250c54=_0x1e63cf[_0x5358da(0x160)](_0x251022,_0x499ee8);let _0x30f199=0x0;const _0x299a1a=_0x5dd21c[_0x5358da(0x41b)],_0x599ec2=_0x250c54[_0x5358da(0x41b)];for(let _0x4a0da6=0x0;_0x4a0da6<_0x2cb61d;_0x4a0da6++){const _0x525f4d=_0x4a0da6<_0x1da60c?_0x499ee8:_0x31c278;({srcPos:_0x30f199}=(0x0,_0x5b082c[_0x5358da(0x62d)])({'src':_0x299a1a,'srcPos':_0x30f199,'dest':_0x599ec2,'width':_0x251022,'height':_0x525f4d,'nonBlackColor':0x0}),_0x1e63cf[_0x5358da(0x2b9)](_0x250c54,0x0,_0x4a0da6*_0x499ee8));}}function _0x567cc3(_0x49db59,_0x33c9ac){const _0x56ad21=_0x26edfb,_0x5bd65b=[_0x56ad21(0xc9),_0x56ad21(0x968),_0x56ad21(0x547),_0x56ad21(0x1b2),'lineWidth','lineCap',_0x56ad21(0x1f4),'miterLimit',_0x56ad21(0x1a2),_0x56ad21(0x59d),_0x56ad21(0x81f)];for(const _0x3101f3 of _0x5bd65b){_0x49db59[_0x3101f3]!==undefined&&(_0x33c9ac[_0x3101f3]=_0x49db59[_0x3101f3]);}_0x49db59[_0x56ad21(0x4b2)]!==undefined&&(_0x33c9ac[_0x56ad21(0x4b2)](_0x49db59[_0x56ad21(0x115)]()),_0x33c9ac['lineDashOffset']=_0x49db59['lineDashOffset']);}function _0x14e6c2(_0x4f1fb7){const _0x69e1b4=_0x26edfb;_0x4f1fb7[_0x69e1b4(0xc9)]=_0x4f1fb7[_0x69e1b4(0x968)]='#000000',_0x4f1fb7[_0x69e1b4(0x547)]='nonzero',_0x4f1fb7['globalAlpha']=0x1,_0x4f1fb7[_0x69e1b4(0x2ad)]=0x1,_0x4f1fb7[_0x69e1b4(0xc4)]='butt',_0x4f1fb7[_0x69e1b4(0x1f4)]='miter',_0x4f1fb7[_0x69e1b4(0x7d2)]=0xa,_0x4f1fb7[_0x69e1b4(0x1a2)]=_0x69e1b4(0x96b),_0x4f1fb7[_0x69e1b4(0x59d)]=_0x69e1b4(0x73e),_0x4f1fb7['setLineDash']!==undefined&&(_0x4f1fb7['setLineDash']([]),_0x4f1fb7[_0x69e1b4(0x315)]=0x0),!_0x4d5e22[_0x69e1b4(0x8c5)]&&(_0x4f1fb7['filter']=_0x69e1b4(0x122));}function _0x44505b(_0xe5e446,_0x384289,_0x5b7e18,_0x319760){const _0x298357=_0xe5e446['length'];for(let _0x243d3b=0x3;_0x243d3b<_0x298357;_0x243d3b+=0x4){const _0x401263=_0xe5e446[_0x243d3b];if(_0x401263===0x0)_0xe5e446[_0x243d3b-0x3]=_0x384289,_0xe5e446[_0x243d3b-0x2]=_0x5b7e18,_0xe5e446[_0x243d3b-0x1]=_0x319760;else{if(_0x401263<0xff){const _0x588b8d=0xff-_0x401263;_0xe5e446[_0x243d3b-0x3]=_0xe5e446[_0x243d3b-0x3]*_0x401263+_0x384289*_0x588b8d>>0x8,_0xe5e446[_0x243d3b-0x2]=_0xe5e446[_0x243d3b-0x2]*_0x401263+_0x5b7e18*_0x588b8d>>0x8,_0xe5e446[_0x243d3b-0x1]=_0xe5e446[_0x243d3b-0x1]*_0x401263+_0x319760*_0x588b8d>>0x8;}}}}function _0x5a61cd(_0x5430b9,_0x3295c3,_0x338f42){const _0x351962=_0x26edfb,_0x5b696a=_0x5430b9[_0x351962(0x557)],_0x123cb7=0x1/0xff;for(let _0x1bfc99=0x3;_0x1bfc99<_0x5b696a;_0x1bfc99+=0x4){const _0x155161=_0x338f42?_0x338f42[_0x5430b9[_0x1bfc99]]:_0x5430b9[_0x1bfc99];_0x3295c3[_0x1bfc99]=_0x3295c3[_0x1bfc99]*_0x155161*_0x123cb7|0x0;}}function _0x99785d(_0x45cec9,_0x1904fd,_0x2b3c44){const _0x1903eb=_0x45cec9['length'];for(let _0x559701=0x3;_0x559701<_0x1903eb;_0x559701+=0x4){const _0x4e86a8=_0x45cec9[_0x559701-0x3]*0x4d+_0x45cec9[_0x559701-0x2]*0x98+_0x45cec9[_0x559701-0x1]*0x1c;_0x1904fd[_0x559701]=_0x2b3c44?_0x1904fd[_0x559701]*_0x2b3c44[_0x4e86a8>>0x8]>>0x8:_0x1904fd[_0x559701]*_0x4e86a8>>0x10;}}function _0x2b7fca(_0x1056e4,_0x389a83,_0x5ee504,_0xeab05c,_0x4d85d0,_0x5859b4,_0x168048,_0x3a6465,_0x4d5c47,_0x3d8dc2,_0x32c64b){const _0x2b89e2=_0x26edfb,_0x427e12=!!_0x5859b4,_0x5eb9ab=_0x427e12?_0x5859b4[0x0]:0x0,_0x5a439c=_0x427e12?_0x5859b4[0x1]:0x0,_0x24448a=_0x427e12?_0x5859b4[0x2]:0x0;let _0x202938;_0x4d85d0==='Luminosity'?_0x202938=_0x99785d:_0x202938=_0x5a61cd;const _0x49f116=0x100000,_0x152081=Math[_0x2b89e2(0x81b)](_0xeab05c,Math[_0x2b89e2(0x213)](_0x49f116/_0x5ee504));for(let _0x188c2d=0x0;_0x188c2d<_0xeab05c;_0x188c2d+=_0x152081){const _0x1cc4fa=Math[_0x2b89e2(0x81b)](_0x152081,_0xeab05c-_0x188c2d),_0x9c349b=_0x1056e4[_0x2b89e2(0x3fc)](_0x3a6465-_0x3d8dc2,_0x188c2d+(_0x4d5c47-_0x32c64b),_0x5ee504,_0x1cc4fa),_0x48b864=_0x389a83['getImageData'](_0x3a6465,_0x188c2d+_0x4d5c47,_0x5ee504,_0x1cc4fa);_0x427e12&&_0x44505b(_0x9c349b['data'],_0x5eb9ab,_0x5a439c,_0x24448a),_0x202938(_0x9c349b[_0x2b89e2(0x41b)],_0x48b864['data'],_0x168048),_0x389a83['putImageData'](_0x48b864,_0x3a6465,_0x188c2d+_0x4d5c47);}}function _0x4dcd53(_0x503eeb,_0x56fedb,_0x429ad8,_0x8ce1fb){const _0x4cbd30=_0x26edfb,_0x1d6014=_0x8ce1fb[0x0],_0x3f6e19=_0x8ce1fb[0x1],_0xf4a938=_0x8ce1fb[0x2]-_0x1d6014,_0x53a51b=_0x8ce1fb[0x3]-_0x3f6e19;if(_0xf4a938===0x0||_0x53a51b===0x0)return;_0x2b7fca(_0x56fedb[_0x4cbd30(0x1a6)],_0x429ad8,_0xf4a938,_0x53a51b,_0x56fedb[_0x4cbd30(0x146)],_0x56fedb[_0x4cbd30(0x770)],_0x56fedb[_0x4cbd30(0x5b1)],_0x1d6014,_0x3f6e19,_0x56fedb[_0x4cbd30(0xdf)],_0x56fedb[_0x4cbd30(0x431)]),_0x503eeb[_0x4cbd30(0x7e2)](),_0x503eeb[_0x4cbd30(0x1b2)]=0x1,_0x503eeb[_0x4cbd30(0x1a2)]='source-over',_0x503eeb[_0x4cbd30(0xf1)](0x1,0x0,0x0,0x1,0x0,0x0),_0x503eeb[_0x4cbd30(0x545)](_0x429ad8[_0x4cbd30(0x75a)],0x0,0x0),_0x503eeb[_0x4cbd30(0x9ab)]();}function _0x49bafa(_0x450589,_0x45ac19){const _0x5b6153=_0x26edfb,_0x3c8489=_0x37e514[_0x5b6153(0x5d7)]['singularValueDecompose2dScale'](_0x450589);_0x3c8489[0x0]=Math[_0x5b6153(0x187)](_0x3c8489[0x0]),_0x3c8489[0x1]=Math[_0x5b6153(0x187)](_0x3c8489[0x1]);const _0x28cd87=Math['fround']((globalThis[_0x5b6153(0x31d)]||0x1)*_0x1b427a['PixelsPerInch'][_0x5b6153(0x9aa)]);if(_0x45ac19!==undefined)return _0x45ac19;else{if(_0x3c8489[0x0]<=_0x28cd87||_0x3c8489[0x1]<=_0x28cd87)return!![];}return![];}const _0x4a3982=[_0x26edfb(0x914),_0x26edfb(0x7df),_0x26edfb(0x2c6)],_0x17fa3e=[_0x26edfb(0x1bc),_0x26edfb(0x7df),'bevel'],_0x4944a6={},_0x1ddce9={};class _0x38810c{constructor(_0x3adeff,_0x352864,_0x26e6b0,_0x551498,_0x37e386,_0x1f0c93,_0x1c8198,_0x2926f4){const _0x3921bf=_0x26edfb;let {optionalContentConfig:_0x4d5261,markedContentStack:markedContentStack=null}=_0x1f0c93;this[_0x3921bf(0x427)]=_0x3adeff,this[_0x3921bf(0x835)]=new _0xb2a509(this['ctx'][_0x3921bf(0x75a)][_0x3921bf(0x98b)],this[_0x3921bf(0x427)][_0x3921bf(0x75a)]['height']),this[_0x3921bf(0x6ed)]=[],this[_0x3921bf(0x78f)]=null,this['pendingEOFill']=![],this[_0x3921bf(0x911)]=null,this[_0x3921bf(0x2c4)]=null,this['commonObjs']=_0x352864,this[_0x3921bf(0xdc)]=_0x26e6b0,this[_0x3921bf(0x5db)]=_0x551498,this[_0x3921bf(0x491)]=_0x37e386,this[_0x3921bf(0x26b)]=[],this[_0x3921bf(0x7d0)]=null,this[_0x3921bf(0x15a)]=null,this[_0x3921bf(0x2c8)]=[],this['groupLevel']=0x0,this[_0x3921bf(0x840)]=[],this[_0x3921bf(0x93c)]=0x0,this['tempSMask']=null,this[_0x3921bf(0x9d1)]=null,this[_0x3921bf(0x3ad)]=!![],this[_0x3921bf(0x201)]=markedContentStack||[],this[_0x3921bf(0x20b)]=_0x4d5261,this[_0x3921bf(0x4e8)]=new _0x127589(this['canvasFactory']),this[_0x3921bf(0x3c3)]=new Map(),this['annotationCanvasMap']=_0x1c8198,this['viewportScale']=0x1,this[_0x3921bf(0x75c)]=0x1,this[_0x3921bf(0x51f)]=0x1,this['pageColors']=_0x2926f4,this[_0x3921bf(0x7b5)]=[-0x1,0x0],this[_0x3921bf(0x5e6)]=null,this[_0x3921bf(0x310)]=new Map();}[_0x26edfb(0x3ef)](_0x77fb03){const _0x241a31=_0x26edfb;let _0x30f8db=arguments[_0x241a31(0x557)]>0x1&&arguments[0x1]!==undefined?arguments[0x1]:null;if(typeof _0x77fb03===_0x241a31(0x8cd))return _0x77fb03['startsWith']('g_')?this[_0x241a31(0x53b)][_0x241a31(0x8c4)](_0x77fb03):this['objs'][_0x241a31(0x8c4)](_0x77fb03);return _0x30f8db;}[_0x26edfb(0x5be)](_0x5f15c3){const _0x92b1df=_0x26edfb;let {transform:_0x578f77,viewport:_0x31dc38,transparency:transparency=![],background:background=null}=_0x5f15c3;const _0x39c2c9=this[_0x92b1df(0x427)][_0x92b1df(0x75a)][_0x92b1df(0x98b)],_0x5deca0=this[_0x92b1df(0x427)][_0x92b1df(0x75a)][_0x92b1df(0x999)],_0x18c41c=this[_0x92b1df(0x427)][_0x92b1df(0x968)];this['ctx'][_0x92b1df(0x968)]=background||_0x92b1df(0x253),this[_0x92b1df(0x427)]['fillRect'](0x0,0x0,_0x39c2c9,_0x5deca0),this['ctx']['fillStyle']=_0x18c41c;if(transparency){const _0x3dd792=this[_0x92b1df(0x4e8)][_0x92b1df(0x6cf)](_0x92b1df(0x910),_0x39c2c9,_0x5deca0);this[_0x92b1df(0x841)]=this[_0x92b1df(0x427)],this[_0x92b1df(0x2ab)]=_0x3dd792[_0x92b1df(0x75a)],this[_0x92b1df(0x427)]=_0x3dd792[_0x92b1df(0x1a6)],this[_0x92b1df(0x427)][_0x92b1df(0x7e2)](),this['ctx']['transform'](...(0x0,_0x1b427a[_0x92b1df(0x5f1)])(this[_0x92b1df(0x841)]));}this[_0x92b1df(0x427)][_0x92b1df(0x7e2)](),_0x14e6c2(this[_0x92b1df(0x427)]),_0x578f77&&(this[_0x92b1df(0x427)][_0x92b1df(0x5dd)](..._0x578f77),this[_0x92b1df(0x75c)]=_0x578f77[0x0],this[_0x92b1df(0x51f)]=_0x578f77[0x0]),this[_0x92b1df(0x427)][_0x92b1df(0x5dd)](..._0x31dc38[_0x92b1df(0x5dd)]),this['viewportScale']=_0x31dc38[_0x92b1df(0xc8)],this[_0x92b1df(0x15a)]=(0x0,_0x1b427a[_0x92b1df(0x5f1)])(this[_0x92b1df(0x427)]);}[_0x26edfb(0x381)](_0x219317,_0x176683,_0x473697,_0x1dd7d6){const _0x2b0116=_0x26edfb,_0x486960=_0x219317[_0x2b0116(0x20c)],_0xb7513a=_0x219317[_0x2b0116(0x681)];let _0x190ac6=_0x176683||0x0;const _0x1e90f0=_0x486960[_0x2b0116(0x557)];if(_0x1e90f0===_0x190ac6)return _0x190ac6;const _0x5ef22f=_0x1e90f0-_0x190ac6>_0x66c684&&typeof _0x473697===_0x2b0116(0x4ec),_0x566983=_0x5ef22f?Date[_0x2b0116(0x890)]()+_0x6710d7:0x0;let _0xe12772=0x0;const _0x58cdba=this[_0x2b0116(0x53b)],_0x2e07cf=this['objs'];let _0xfe0cdc;while(!![]){if(_0x1dd7d6!==undefined&&_0x190ac6===_0x1dd7d6['nextBreakPoint'])return _0x1dd7d6[_0x2b0116(0x5ab)](_0x190ac6,_0x473697),_0x190ac6;_0xfe0cdc=_0xb7513a[_0x190ac6];if(_0xfe0cdc!==_0x37e514['OPS'][_0x2b0116(0x2e2)])this[_0xfe0cdc][_0x2b0116(0x2d2)](this,_0x486960[_0x190ac6]);else for(const _0x4b9165 of _0x486960[_0x190ac6]){const _0x3ca9b0=_0x4b9165['startsWith']('g_')?_0x58cdba:_0x2e07cf;if(!_0x3ca9b0['has'](_0x4b9165))return _0x3ca9b0['get'](_0x4b9165,_0x473697),_0x190ac6;}_0x190ac6++;if(_0x190ac6===_0x1e90f0)return _0x190ac6;if(_0x5ef22f&&++_0xe12772>_0x66c684){if(Date[_0x2b0116(0x890)]()>_0x566983)return _0x473697(),_0x190ac6;_0xe12772=0x0;}}}#restoreInitialState(){const _0x566122=_0x26edfb;while(this[_0x566122(0x6ed)][_0x566122(0x557)]||this[_0x566122(0x7fa)]){this[_0x566122(0x9ab)]();}this[_0x566122(0x427)][_0x566122(0x9ab)](),this['transparentCanvas']&&(this[_0x566122(0x427)]=this['compositeCtx'],this[_0x566122(0x427)]['save'](),this['ctx'][_0x566122(0xf1)](0x1,0x0,0x0,0x1,0x0,0x0),this[_0x566122(0x427)][_0x566122(0x545)](this[_0x566122(0x2ab)],0x0,0x0),this['ctx'][_0x566122(0x9ab)](),this['transparentCanvas']=null);}[_0x26edfb(0x279)](){const _0xea35ce=_0x26edfb;this.#restoreInitialState(),this[_0xea35ce(0x4e8)][_0xea35ce(0x1ca)](),this['cachedPatterns']['clear']();for(const _0x19a3cd of this[_0xea35ce(0x310)][_0xea35ce(0x823)]()){for(const _0x27fd91 of _0x19a3cd[_0xea35ce(0x823)]()){typeof HTMLCanvasElement!==_0xea35ce(0x32c)&&_0x27fd91 instanceof HTMLCanvasElement&&(_0x27fd91[_0xea35ce(0x98b)]=_0x27fd91['height']=0x0);}_0x19a3cd[_0xea35ce(0x1ca)]();}this[_0xea35ce(0x310)]['clear'](),this.#drawFilter();}#drawFilter(){const _0x55efb6=_0x26edfb;if(this[_0x55efb6(0x61c)]){const _0x1b753b=this['filterFactory'][_0x55efb6(0x7b1)](this[_0x55efb6(0x61c)][_0x55efb6(0x953)],this[_0x55efb6(0x61c)][_0x55efb6(0x82f)]);if(_0x1b753b!=='none'){const _0x153305=this[_0x55efb6(0x427)][_0x55efb6(0x81f)];this[_0x55efb6(0x427)][_0x55efb6(0x81f)]=_0x1b753b,this[_0x55efb6(0x427)]['drawImage'](this[_0x55efb6(0x427)][_0x55efb6(0x75a)],0x0,0x0),this[_0x55efb6(0x427)]['filter']=_0x153305;}}}['_scaleImage'](_0x14c35b,_0x1a5825){const _0x4d4b0c=_0x26edfb,_0x2580c0=_0x14c35b[_0x4d4b0c(0x98b)],_0xf9408d=_0x14c35b['height'];let _0x1ed97a=Math[_0x4d4b0c(0x78d)](Math['hypot'](_0x1a5825[0x0],_0x1a5825[0x1]),0x1),_0x5e2af4=Math['max'](Math[_0x4d4b0c(0x8cb)](_0x1a5825[0x2],_0x1a5825[0x3]),0x1),_0x47d23b=_0x2580c0,_0x158375=_0xf9408d,_0x4188c2=_0x4d4b0c(0xd9),_0x33b9b5,_0x110c1f;while(_0x1ed97a>0x2&&_0x47d23b>0x1||_0x5e2af4>0x2&&_0x158375>0x1){let _0x278b4b=_0x47d23b,_0x4d97d5=_0x158375;_0x1ed97a>0x2&&_0x47d23b>0x1&&(_0x278b4b=_0x47d23b>=0x4000?Math['floor'](_0x47d23b/0x2)-0x1||0x1:Math['ceil'](_0x47d23b/0x2),_0x1ed97a/=_0x47d23b/_0x278b4b),_0x5e2af4>0x2&&_0x158375>0x1&&(_0x4d97d5=_0x158375>=0x4000?Math['floor'](_0x158375/0x2)-0x1||0x1:Math[_0x4d4b0c(0x213)](_0x158375)/0x2,_0x5e2af4/=_0x158375/_0x4d97d5),_0x33b9b5=this[_0x4d4b0c(0x4e8)][_0x4d4b0c(0x6cf)](_0x4188c2,_0x278b4b,_0x4d97d5),_0x110c1f=_0x33b9b5['context'],_0x110c1f[_0x4d4b0c(0x726)](0x0,0x0,_0x278b4b,_0x4d97d5),_0x110c1f['drawImage'](_0x14c35b,0x0,0x0,_0x47d23b,_0x158375,0x0,0x0,_0x278b4b,_0x4d97d5),_0x14c35b=_0x33b9b5['canvas'],_0x47d23b=_0x278b4b,_0x158375=_0x4d97d5,_0x4188c2=_0x4188c2===_0x4d4b0c(0xd9)?'prescale2':_0x4d4b0c(0xd9);}return{'img':_0x14c35b,'paintWidth':_0x47d23b,'paintHeight':_0x158375};}[_0x26edfb(0x354)](_0x527931){const _0x1de67b=_0x26edfb,_0x517d73=this['ctx'],{width:_0x1c1d3b,height:_0x232ae0}=_0x527931,_0x5b72ad=this['current']['fillColor'],_0x15d0d3=this[_0x1de67b(0x835)][_0x1de67b(0x4b9)],_0x138e95=(0x0,_0x1b427a['getCurrentTransform'])(_0x517d73);let _0x44b4be,_0x560de8,_0x1594ac,_0x56ecd2;if((_0x527931[_0x1de67b(0x7eb)]||_0x527931[_0x1de67b(0x41b)])&&_0x527931[_0x1de67b(0x68e)]>0x1){const _0x5a99d6=_0x527931[_0x1de67b(0x7eb)]||_0x527931['data'][_0x1de67b(0x948)];_0x560de8=JSON['stringify'](_0x15d0d3?_0x138e95:[_0x138e95['slice'](0x0,0x4),_0x5b72ad]),_0x44b4be=this[_0x1de67b(0x310)]['get'](_0x5a99d6);!_0x44b4be&&(_0x44b4be=new Map(),this[_0x1de67b(0x310)][_0x1de67b(0x98e)](_0x5a99d6,_0x44b4be));const _0xc8ca74=_0x44b4be['get'](_0x560de8);if(_0xc8ca74&&!_0x15d0d3){const _0x148d51=Math[_0x1de67b(0x7df)](Math['min'](_0x138e95[0x0],_0x138e95[0x2])+_0x138e95[0x4]),_0x4ec212=Math[_0x1de67b(0x7df)](Math['min'](_0x138e95[0x1],_0x138e95[0x3])+_0x138e95[0x5]);return{'canvas':_0xc8ca74,'offsetX':_0x148d51,'offsetY':_0x4ec212};}_0x1594ac=_0xc8ca74;}!_0x1594ac&&(_0x56ecd2=this[_0x1de67b(0x4e8)]['getCanvas']('maskCanvas',_0x1c1d3b,_0x232ae0),_0x5a4aed(_0x56ecd2[_0x1de67b(0x1a6)],_0x527931));let _0xfb6e1f=_0x37e514[_0x1de67b(0x5d7)][_0x1de67b(0x5dd)](_0x138e95,[0x1/_0x1c1d3b,0x0,0x0,-0x1/_0x232ae0,0x0,0x0]);_0xfb6e1f=_0x37e514[_0x1de67b(0x5d7)]['transform'](_0xfb6e1f,[0x1,0x0,0x0,0x1,0x0,-_0x232ae0]);const _0x353f57=_0x37e514[_0x1de67b(0x5d7)][_0x1de67b(0x8a2)]([0x0,0x0],_0xfb6e1f),_0x338cb2=_0x37e514[_0x1de67b(0x5d7)]['applyTransform']([_0x1c1d3b,_0x232ae0],_0xfb6e1f),_0x39c0a9=_0x37e514[_0x1de67b(0x5d7)][_0x1de67b(0x3da)]([_0x353f57[0x0],_0x353f57[0x1],_0x338cb2[0x0],_0x338cb2[0x1]]),_0x128a5f=Math[_0x1de67b(0x7df)](_0x39c0a9[0x2]-_0x39c0a9[0x0])||0x1,_0x2b5e73=Math[_0x1de67b(0x7df)](_0x39c0a9[0x3]-_0x39c0a9[0x1])||0x1,_0x35b95a=this[_0x1de67b(0x4e8)]['getCanvas'](_0x1de67b(0x1ac),_0x128a5f,_0x2b5e73),_0x220759=_0x35b95a[_0x1de67b(0x1a6)],_0x4ea25e=Math[_0x1de67b(0x81b)](_0x353f57[0x0],_0x338cb2[0x0]),_0x391218=Math[_0x1de67b(0x81b)](_0x353f57[0x1],_0x338cb2[0x1]);_0x220759['translate'](-_0x4ea25e,-_0x391218),_0x220759[_0x1de67b(0x5dd)](..._0xfb6e1f);!_0x1594ac&&(_0x1594ac=this['_scaleImage'](_0x56ecd2['canvas'],(0x0,_0x1b427a[_0x1de67b(0x932)])(_0x220759)),_0x1594ac=_0x1594ac[_0x1de67b(0x662)],_0x44b4be&&_0x15d0d3&&_0x44b4be[_0x1de67b(0x98e)](_0x560de8,_0x1594ac));_0x220759['imageSmoothingEnabled']=_0x49bafa((0x0,_0x1b427a['getCurrentTransform'])(_0x220759),_0x527931['interpolate']),_0x230b45(_0x220759,_0x1594ac,0x0,0x0,_0x1594ac[_0x1de67b(0x98b)],_0x1594ac[_0x1de67b(0x999)],0x0,0x0,_0x1c1d3b,_0x232ae0),_0x220759[_0x1de67b(0x1a2)]=_0x1de67b(0x5b7);const _0x3752be=_0x37e514[_0x1de67b(0x5d7)][_0x1de67b(0x5dd)]((0x0,_0x1b427a[_0x1de67b(0x932)])(_0x220759),[0x1,0x0,0x0,0x1,-_0x4ea25e,-_0x391218]);return _0x220759[_0x1de67b(0x968)]=_0x15d0d3?_0x5b72ad['getPattern'](_0x517d73,this,_0x3752be,_0x51d8e3[_0x1de67b(0x3b9)][_0x1de67b(0x61e)]):_0x5b72ad,_0x220759[_0x1de67b(0x974)](0x0,0x0,_0x1c1d3b,_0x232ae0),_0x44b4be&&!_0x15d0d3&&(this['cachedCanvases']['delete'](_0x1de67b(0x1ac)),_0x44b4be['set'](_0x560de8,_0x35b95a['canvas'])),{'canvas':_0x35b95a[_0x1de67b(0x75a)],'offsetX':Math[_0x1de67b(0x7df)](_0x4ea25e),'offsetY':Math[_0x1de67b(0x7df)](_0x391218)};}[_0x26edfb(0x671)](_0x43d222){const _0x412ec3=_0x26edfb;_0x43d222!==this[_0x412ec3(0x835)][_0x412ec3(0x2ad)]&&(this['_cachedScaleForStroking'][0x0]=-0x1),this['current'][_0x412ec3(0x2ad)]=_0x43d222,this['ctx'][_0x412ec3(0x2ad)]=_0x43d222;}[_0x26edfb(0x571)](_0x270023){const _0x2ee98e=_0x26edfb;this[_0x2ee98e(0x427)][_0x2ee98e(0xc4)]=_0x4a3982[_0x270023];}[_0x26edfb(0x597)](_0x102cd6){this['ctx']['lineJoin']=_0x17fa3e[_0x102cd6];}['setMiterLimit'](_0x38b206){this['ctx']['miterLimit']=_0x38b206;}[_0x26edfb(0x789)](_0x1370f4,_0x54ca20){const _0x26f29d=_0x26edfb,_0x27505b=this[_0x26f29d(0x427)];_0x27505b[_0x26f29d(0x4b2)]!==undefined&&(_0x27505b[_0x26f29d(0x4b2)](_0x1370f4),_0x27505b['lineDashOffset']=_0x54ca20);}[_0x26edfb(0x9fb)](_0x4d69a4){}[_0x26edfb(0x17f)](_0xbb6ef5){}[_0x26edfb(0x268)](_0x1d1fbc){const _0x35e8e7=_0x26edfb;for(const [_0x5ba84e,_0x4649df]of _0x1d1fbc){switch(_0x5ba84e){case'LW':this[_0x35e8e7(0x671)](_0x4649df);break;case'LC':this[_0x35e8e7(0x571)](_0x4649df);break;case'LJ':this[_0x35e8e7(0x597)](_0x4649df);break;case'ML':this[_0x35e8e7(0x8ea)](_0x4649df);break;case'D':this[_0x35e8e7(0x789)](_0x4649df[0x0],_0x4649df[0x1]);break;case'RI':this[_0x35e8e7(0x9fb)](_0x4649df);break;case'FL':this[_0x35e8e7(0x17f)](_0x4649df);break;case _0x35e8e7(0x538):this['setFont'](_0x4649df[0x0],_0x4649df[0x1]);break;case'CA':this[_0x35e8e7(0x835)][_0x35e8e7(0x2ca)]=_0x4649df;break;case'ca':this['current']['fillAlpha']=_0x4649df,this[_0x35e8e7(0x427)][_0x35e8e7(0x1b2)]=_0x4649df;break;case'BM':this[_0x35e8e7(0x427)][_0x35e8e7(0x1a2)]=_0x4649df;break;case _0x35e8e7(0x8a5):this[_0x35e8e7(0x835)][_0x35e8e7(0x627)]=_0x4649df?this['tempSMask']:null,this[_0x35e8e7(0x2ba)]=null,this[_0x35e8e7(0x8cc)]();break;case'TR':this[_0x35e8e7(0x427)][_0x35e8e7(0x81f)]=this['current'][_0x35e8e7(0x858)]=this['filterFactory']['addFilter'](_0x4649df);break;}}}get[_0x26edfb(0x7fa)](){return!!this['suspendedCtx'];}['checkSMaskState'](){const _0x584b0c=_0x26edfb,_0x3f43b2=this[_0x584b0c(0x7fa)];if(this[_0x584b0c(0x835)][_0x584b0c(0x627)]&&!_0x3f43b2)this[_0x584b0c(0x960)]();else!this[_0x584b0c(0x835)][_0x584b0c(0x627)]&&_0x3f43b2&&this[_0x584b0c(0x5f6)]();}[_0x26edfb(0x960)](){const _0x43798e=_0x26edfb;if(this[_0x43798e(0x7fa)])throw new Error(_0x43798e(0x242));const _0xfc67b2=this[_0x43798e(0x427)]['canvas'][_0x43798e(0x98b)],_0x52552f=this[_0x43798e(0x427)][_0x43798e(0x75a)]['height'],_0x347885=_0x43798e(0x672)+this[_0x43798e(0x336)],_0x1a6a55=this[_0x43798e(0x4e8)]['getCanvas'](_0x347885,_0xfc67b2,_0x52552f);this[_0x43798e(0x9d1)]=this[_0x43798e(0x427)],this[_0x43798e(0x427)]=_0x1a6a55[_0x43798e(0x1a6)];const _0x5cf46b=this['ctx'];_0x5cf46b[_0x43798e(0xf1)](...(0x0,_0x1b427a[_0x43798e(0x5f1)])(this['suspendedCtx'])),_0x567cc3(this[_0x43798e(0x9d1)],_0x5cf46b),_0xf871d5(_0x5cf46b,this[_0x43798e(0x9d1)]),this[_0x43798e(0x268)]([['BM',_0x43798e(0x96b)],['ca',0x1],['CA',0x1]]);}[_0x26edfb(0x5f6)](){const _0x5d6cfc=_0x26edfb;if(!this[_0x5d6cfc(0x7fa)])throw new Error(_0x5d6cfc(0x420));this[_0x5d6cfc(0x427)][_0x5d6cfc(0x656)](),_0x567cc3(this['ctx'],this[_0x5d6cfc(0x9d1)]),this[_0x5d6cfc(0x427)]=this[_0x5d6cfc(0x9d1)],this[_0x5d6cfc(0x9d1)]=null;}[_0x26edfb(0x765)](_0x3cbd56){const _0x4c578e=_0x26edfb;if(!this['current'][_0x4c578e(0x627)])return;!_0x3cbd56?_0x3cbd56=[0x0,0x0,this[_0x4c578e(0x427)][_0x4c578e(0x75a)][_0x4c578e(0x98b)],this[_0x4c578e(0x427)]['canvas'][_0x4c578e(0x999)]]:(_0x3cbd56[0x0]=Math[_0x4c578e(0x583)](_0x3cbd56[0x0]),_0x3cbd56[0x1]=Math['floor'](_0x3cbd56[0x1]),_0x3cbd56[0x2]=Math[_0x4c578e(0x213)](_0x3cbd56[0x2]),_0x3cbd56[0x3]=Math[_0x4c578e(0x213)](_0x3cbd56[0x3]));const _0x3e2c7e=this[_0x4c578e(0x835)][_0x4c578e(0x627)],_0x234462=this[_0x4c578e(0x9d1)];_0x4dcd53(_0x234462,_0x3e2c7e,this['ctx'],_0x3cbd56),this['ctx'][_0x4c578e(0x7e2)](),this[_0x4c578e(0x427)][_0x4c578e(0xf1)](0x1,0x0,0x0,0x1,0x0,0x0),this[_0x4c578e(0x427)]['clearRect'](0x0,0x0,this[_0x4c578e(0x427)]['canvas']['width'],this[_0x4c578e(0x427)][_0x4c578e(0x75a)][_0x4c578e(0x999)]),this['ctx'][_0x4c578e(0x9ab)]();}[_0x26edfb(0x7e2)](){const _0x54454c=_0x26edfb;this[_0x54454c(0x7fa)]?(_0x567cc3(this[_0x54454c(0x427)],this[_0x54454c(0x9d1)]),this[_0x54454c(0x9d1)][_0x54454c(0x7e2)]()):this[_0x54454c(0x427)][_0x54454c(0x7e2)]();const _0x396ef7=this['current'];this['stateStack']['push'](_0x396ef7),this[_0x54454c(0x835)]=_0x396ef7[_0x54454c(0x461)]();}['restore'](){const _0x4c0e16=_0x26edfb;this['stateStack'][_0x4c0e16(0x557)]===0x0&&this[_0x4c0e16(0x7fa)]&&this[_0x4c0e16(0x5f6)](),this[_0x4c0e16(0x6ed)][_0x4c0e16(0x557)]!==0x0&&(this[_0x4c0e16(0x835)]=this[_0x4c0e16(0x6ed)][_0x4c0e16(0x783)](),this[_0x4c0e16(0x7fa)]?(this[_0x4c0e16(0x9d1)][_0x4c0e16(0x9ab)](),_0x567cc3(this[_0x4c0e16(0x9d1)],this[_0x4c0e16(0x427)])):this['ctx'][_0x4c0e16(0x9ab)](),this[_0x4c0e16(0x8cc)](),this[_0x4c0e16(0x78f)]=null,this[_0x4c0e16(0x7b5)][0x0]=-0x1,this[_0x4c0e16(0x5e6)]=null);}[_0x26edfb(0x5dd)](_0x326cd4,_0x384800,_0x2b6200,_0x16e866,_0x277197,_0xab5677){const _0x52225a=_0x26edfb;this[_0x52225a(0x427)][_0x52225a(0x5dd)](_0x326cd4,_0x384800,_0x2b6200,_0x16e866,_0x277197,_0xab5677),this[_0x52225a(0x7b5)][0x0]=-0x1,this[_0x52225a(0x5e6)]=null;}[_0x26edfb(0x90e)](_0xf6b485,_0xb0e700,_0x463797){const _0x3cc333=_0x26edfb,_0x55227b=this['ctx'],_0x11e0bc=this['current'];let _0x35833a=_0x11e0bc['x'],_0x300ff7=_0x11e0bc['y'],_0x135b9d,_0x1adb80;const _0x34f4a9=(0x0,_0x1b427a[_0x3cc333(0x5f1)])(_0x55227b),_0x31f3c3=_0x34f4a9[0x0]===0x0&&_0x34f4a9[0x3]===0x0||_0x34f4a9[0x1]===0x0&&_0x34f4a9[0x2]===0x0,_0x5f65a5=_0x31f3c3?_0x463797[_0x3cc333(0x80c)](0x0):null;for(let _0x4dbc86=0x0,_0x46edf0=0x0,_0x4d0a7c=_0xf6b485['length'];_0x4dbc86<_0x4d0a7c;_0x4dbc86++){switch(_0xf6b485[_0x4dbc86]|0x0){case _0x37e514[_0x3cc333(0x13d)][_0x3cc333(0x497)]:_0x35833a=_0xb0e700[_0x46edf0++],_0x300ff7=_0xb0e700[_0x46edf0++];const _0x20f299=_0xb0e700[_0x46edf0++],_0x41b494=_0xb0e700[_0x46edf0++],_0x50093c=_0x35833a+_0x20f299,_0x1e856d=_0x300ff7+_0x41b494;_0x55227b['moveTo'](_0x35833a,_0x300ff7);_0x20f299===0x0||_0x41b494===0x0?_0x55227b[_0x3cc333(0x39f)](_0x50093c,_0x1e856d):(_0x55227b[_0x3cc333(0x39f)](_0x50093c,_0x300ff7),_0x55227b[_0x3cc333(0x39f)](_0x50093c,_0x1e856d),_0x55227b[_0x3cc333(0x39f)](_0x35833a,_0x1e856d));!_0x31f3c3&&_0x11e0bc[_0x3cc333(0x767)](_0x34f4a9,[_0x35833a,_0x300ff7,_0x50093c,_0x1e856d]);_0x55227b[_0x3cc333(0x576)]();break;case _0x37e514['OPS'][_0x3cc333(0x208)]:_0x35833a=_0xb0e700[_0x46edf0++],_0x300ff7=_0xb0e700[_0x46edf0++],_0x55227b[_0x3cc333(0x208)](_0x35833a,_0x300ff7);!_0x31f3c3&&_0x11e0bc[_0x3cc333(0x883)](_0x34f4a9,_0x35833a,_0x300ff7);break;case _0x37e514[_0x3cc333(0x13d)][_0x3cc333(0x39f)]:_0x35833a=_0xb0e700[_0x46edf0++],_0x300ff7=_0xb0e700[_0x46edf0++],_0x55227b[_0x3cc333(0x39f)](_0x35833a,_0x300ff7);!_0x31f3c3&&_0x11e0bc[_0x3cc333(0x883)](_0x34f4a9,_0x35833a,_0x300ff7);break;case _0x37e514[_0x3cc333(0x13d)]['curveTo']:_0x135b9d=_0x35833a,_0x1adb80=_0x300ff7,_0x35833a=_0xb0e700[_0x46edf0+0x4],_0x300ff7=_0xb0e700[_0x46edf0+0x5],_0x55227b[_0x3cc333(0x3c6)](_0xb0e700[_0x46edf0],_0xb0e700[_0x46edf0+0x1],_0xb0e700[_0x46edf0+0x2],_0xb0e700[_0x46edf0+0x3],_0x35833a,_0x300ff7),_0x11e0bc['updateCurvePathMinMax'](_0x34f4a9,_0x135b9d,_0x1adb80,_0xb0e700[_0x46edf0],_0xb0e700[_0x46edf0+0x1],_0xb0e700[_0x46edf0+0x2],_0xb0e700[_0x46edf0+0x3],_0x35833a,_0x300ff7,_0x5f65a5),_0x46edf0+=0x6;break;case _0x37e514[_0x3cc333(0x13d)][_0x3cc333(0x54f)]:_0x135b9d=_0x35833a,_0x1adb80=_0x300ff7,_0x55227b[_0x3cc333(0x3c6)](_0x35833a,_0x300ff7,_0xb0e700[_0x46edf0],_0xb0e700[_0x46edf0+0x1],_0xb0e700[_0x46edf0+0x2],_0xb0e700[_0x46edf0+0x3]),_0x11e0bc[_0x3cc333(0x46a)](_0x34f4a9,_0x135b9d,_0x1adb80,_0x35833a,_0x300ff7,_0xb0e700[_0x46edf0],_0xb0e700[_0x46edf0+0x1],_0xb0e700[_0x46edf0+0x2],_0xb0e700[_0x46edf0+0x3],_0x5f65a5),_0x35833a=_0xb0e700[_0x46edf0+0x2],_0x300ff7=_0xb0e700[_0x46edf0+0x3],_0x46edf0+=0x4;break;case _0x37e514[_0x3cc333(0x13d)]['curveTo3']:_0x135b9d=_0x35833a,_0x1adb80=_0x300ff7,_0x35833a=_0xb0e700[_0x46edf0+0x2],_0x300ff7=_0xb0e700[_0x46edf0+0x3],_0x55227b[_0x3cc333(0x3c6)](_0xb0e700[_0x46edf0],_0xb0e700[_0x46edf0+0x1],_0x35833a,_0x300ff7,_0x35833a,_0x300ff7),_0x11e0bc[_0x3cc333(0x46a)](_0x34f4a9,_0x135b9d,_0x1adb80,_0xb0e700[_0x46edf0],_0xb0e700[_0x46edf0+0x1],_0x35833a,_0x300ff7,_0x35833a,_0x300ff7,_0x5f65a5),_0x46edf0+=0x4;break;case _0x37e514[_0x3cc333(0x13d)][_0x3cc333(0x576)]:_0x55227b['closePath']();break;}}_0x31f3c3&&_0x11e0bc[_0x3cc333(0x296)](_0x34f4a9,_0x5f65a5),_0x11e0bc[_0x3cc333(0x2fb)](_0x35833a,_0x300ff7);}[_0x26edfb(0x576)](){this['ctx']['closePath']();}[_0x26edfb(0x849)](){const _0x34dde7=_0x26edfb;let _0x545b70=arguments['length']>0x0&&arguments[0x0]!==undefined?arguments[0x0]:!![];const _0x6cb7ef=this[_0x34dde7(0x427)],_0x19176d=this[_0x34dde7(0x835)][_0x34dde7(0x745)];_0x6cb7ef['globalAlpha']=this['current'][_0x34dde7(0x2ca)],this['contentVisible']&&(typeof _0x19176d===_0x34dde7(0x97b)&&_0x19176d?.[_0x34dde7(0x307)]?(_0x6cb7ef[_0x34dde7(0x7e2)](),_0x6cb7ef[_0x34dde7(0xc9)]=_0x19176d[_0x34dde7(0x307)](_0x6cb7ef,this,(0x0,_0x1b427a[_0x34dde7(0x932)])(_0x6cb7ef),_0x51d8e3[_0x34dde7(0x3b9)][_0x34dde7(0x607)]),this[_0x34dde7(0x2a1)](![]),_0x6cb7ef['restore']()):this[_0x34dde7(0x2a1)](!![])),_0x545b70&&this[_0x34dde7(0x697)](this[_0x34dde7(0x835)][_0x34dde7(0x1e0)]()),_0x6cb7ef[_0x34dde7(0x1b2)]=this['current'][_0x34dde7(0x587)];}[_0x26edfb(0x316)](){this['closePath'](),this['stroke']();}[_0x26edfb(0x923)](){const _0xcdc368=_0x26edfb;let _0x42be49=arguments[_0xcdc368(0x557)]>0x0&&arguments[0x0]!==undefined?arguments[0x0]:!![];const _0xc3a6cc=this[_0xcdc368(0x427)],_0x220f0e=this['current'][_0xcdc368(0x631)],_0x4cbcb1=this[_0xcdc368(0x835)][_0xcdc368(0x4b9)];let _0x227dde=![];_0x4cbcb1&&(_0xc3a6cc[_0xcdc368(0x7e2)](),_0xc3a6cc[_0xcdc368(0x968)]=_0x220f0e[_0xcdc368(0x307)](_0xc3a6cc,this,(0x0,_0x1b427a[_0xcdc368(0x932)])(_0xc3a6cc),_0x51d8e3[_0xcdc368(0x3b9)][_0xcdc368(0x61e)]),_0x227dde=!![]);const _0x586c9c=this[_0xcdc368(0x835)][_0xcdc368(0x1e0)]();this[_0xcdc368(0x3ad)]&&_0x586c9c!==null&&(this['pendingEOFill']?(_0xc3a6cc['fill']('evenodd'),this[_0xcdc368(0x9e5)]=![]):_0xc3a6cc[_0xcdc368(0x923)]()),_0x227dde&&_0xc3a6cc['restore'](),_0x42be49&&this[_0xcdc368(0x697)](_0x586c9c);}[_0x26edfb(0x52f)](){const _0x500b25=_0x26edfb;this[_0x500b25(0x9e5)]=!![],this[_0x500b25(0x923)]();}['fillStroke'](){const _0x5e1f1f=_0x26edfb;this[_0x5e1f1f(0x923)](![]),this[_0x5e1f1f(0x849)](![]),this[_0x5e1f1f(0x697)]();}[_0x26edfb(0xe4)](){const _0x157307=_0x26edfb;this[_0x157307(0x9e5)]=!![],this[_0x157307(0x207)]();}[_0x26edfb(0x188)](){const _0x3e1dcf=_0x26edfb;this['closePath'](),this[_0x3e1dcf(0x207)]();}[_0x26edfb(0x7f8)](){const _0x2c7733=_0x26edfb;this[_0x2c7733(0x9e5)]=!![],this[_0x2c7733(0x576)](),this[_0x2c7733(0x207)]();}[_0x26edfb(0x486)](){const _0x2141e9=_0x26edfb;this[_0x2141e9(0x697)]();}[_0x26edfb(0x8b0)](){const _0x2252a7=_0x26edfb;this[_0x2252a7(0x78f)]=_0x4944a6;}[_0x26edfb(0x525)](){this['pendingClip']=_0x1ddce9;}[_0x26edfb(0x741)](){const _0x325c87=_0x26edfb;this[_0x325c87(0x835)]['textMatrix']=_0x37e514[_0x325c87(0x2d6)],this[_0x325c87(0x835)][_0x325c87(0x67d)]=0x1,this['current']['x']=this['current'][_0x325c87(0x196)]=0x0,this[_0x325c87(0x835)]['y']=this[_0x325c87(0x835)][_0x325c87(0x220)]=0x0;}[_0x26edfb(0x50b)](){const _0x380fd3=_0x26edfb,_0x1f05e1=this['pendingTextPaths'],_0x46d0d3=this[_0x380fd3(0x427)];if(_0x1f05e1===undefined){_0x46d0d3[_0x380fd3(0x1ec)]();return;}_0x46d0d3[_0x380fd3(0x7e2)](),_0x46d0d3[_0x380fd3(0x1ec)]();for(const _0x2b1667 of _0x1f05e1){_0x46d0d3[_0x380fd3(0xf1)](..._0x2b1667[_0x380fd3(0x5dd)]),_0x46d0d3['translate'](_0x2b1667['x'],_0x2b1667['y']),_0x2b1667[_0x380fd3(0x3ca)](_0x46d0d3,_0x2b1667[_0x380fd3(0x443)]);}_0x46d0d3[_0x380fd3(0x9ab)](),_0x46d0d3[_0x380fd3(0x8b0)](),_0x46d0d3[_0x380fd3(0x1ec)](),delete this['pendingTextPaths'];}[_0x26edfb(0x449)](_0x4ad010){const _0x321216=_0x26edfb;this[_0x321216(0x835)][_0x321216(0x329)]=_0x4ad010;}[_0x26edfb(0x17e)](_0x5aae0b){const _0x577e97=_0x26edfb;this[_0x577e97(0x835)][_0x577e97(0x865)]=_0x5aae0b;}['setHScale'](_0xe72e60){const _0x45e26b=_0x26edfb;this['current'][_0x45e26b(0x494)]=_0xe72e60/0x64;}[_0x26edfb(0x904)](_0x465bc2){const _0x362705=_0x26edfb;this[_0x362705(0x835)][_0x362705(0x7f7)]=-_0x465bc2;}[_0x26edfb(0x952)](_0x1cf940,_0x5f2302){const _0xc515ac=_0x26edfb,_0x4ebb34=this[_0xc515ac(0x53b)][_0xc515ac(0x8c4)](_0x1cf940),_0xa6dc8b=this[_0xc515ac(0x835)];if(!_0x4ebb34)throw new Error(_0xc515ac(0x719)+_0x1cf940);_0xa6dc8b['fontMatrix']=_0x4ebb34[_0xc515ac(0x4f3)]||_0x37e514['FONT_IDENTITY_MATRIX'];(_0xa6dc8b['fontMatrix'][0x0]===0x0||_0xa6dc8b[_0xc515ac(0x4f3)][0x3]===0x0)&&(0x0,_0x37e514[_0xc515ac(0x472)])(_0xc515ac(0x9ff)+_0x1cf940);_0x5f2302<0x0?(_0x5f2302=-_0x5f2302,_0xa6dc8b[_0xc515ac(0x896)]=-0x1):_0xa6dc8b['fontDirection']=0x1;this['current']['font']=_0x4ebb34,this[_0xc515ac(0x835)][_0xc515ac(0x443)]=_0x5f2302;if(_0x4ebb34[_0xc515ac(0x109)])return;const _0x227586=_0x4ebb34[_0xc515ac(0x625)]||'sans-serif',_0xc56461=_0x4ebb34['systemFontInfo']?.[_0xc515ac(0x60e)]||'\x22'+_0x227586+_0xc515ac(0x926)+_0x4ebb34['fallbackName'];let _0xae9d3='normal';if(_0x4ebb34[_0xc515ac(0x3cc)])_0xae9d3=_0xc515ac(0x10b);else _0x4ebb34[_0xc515ac(0x1c1)]&&(_0xae9d3=_0xc515ac(0x1c1));const _0x31dc95=_0x4ebb34[_0xc515ac(0x727)]?_0xc515ac(0x727):_0xc515ac(0x102);let _0x131d48=_0x5f2302;if(_0x5f2302<_0x4987d2)_0x131d48=_0x4987d2;else _0x5f2302>_0xc27232&&(_0x131d48=_0xc27232);this[_0xc515ac(0x835)][_0xc515ac(0x94d)]=_0x5f2302/_0x131d48,this[_0xc515ac(0x427)][_0xc515ac(0x59d)]=_0x31dc95+'\x20'+_0xae9d3+'\x20'+_0x131d48+_0xc515ac(0x993)+_0xc56461;}[_0x26edfb(0x69e)](_0x1fd6ed){const _0x58120b=_0x26edfb;this[_0x58120b(0x835)][_0x58120b(0x743)]=_0x1fd6ed;}[_0x26edfb(0x178)](_0x44f036){const _0x90130a=_0x26edfb;this[_0x90130a(0x835)][_0x90130a(0x505)]=_0x44f036;}[_0x26edfb(0x79d)](_0x1e2a64,_0x51f7fc){const _0x39e431=_0x26edfb;this[_0x39e431(0x835)]['x']=this[_0x39e431(0x835)][_0x39e431(0x196)]+=_0x1e2a64,this[_0x39e431(0x835)]['y']=this[_0x39e431(0x835)]['lineY']+=_0x51f7fc;}[_0x26edfb(0x723)](_0x198f52,_0x5ef35d){const _0x420f91=_0x26edfb;this['setLeading'](-_0x5ef35d),this[_0x420f91(0x79d)](_0x198f52,_0x5ef35d);}[_0x26edfb(0x92e)](_0x51604d,_0x32e367,_0x57dae3,_0x1027ef,_0x27508d,_0x3f2363){const _0x5d7196=_0x26edfb;this['current'][_0x5d7196(0x5c2)]=[_0x51604d,_0x32e367,_0x57dae3,_0x1027ef,_0x27508d,_0x3f2363],this[_0x5d7196(0x835)][_0x5d7196(0x67d)]=Math[_0x5d7196(0x8cb)](_0x51604d,_0x32e367),this['current']['x']=this[_0x5d7196(0x835)][_0x5d7196(0x196)]=0x0,this[_0x5d7196(0x835)]['y']=this[_0x5d7196(0x835)][_0x5d7196(0x220)]=0x0;}[_0x26edfb(0x118)](){const _0x4dd6fb=_0x26edfb;this[_0x4dd6fb(0x79d)](0x0,this[_0x4dd6fb(0x835)][_0x4dd6fb(0x7f7)]);}[_0x26edfb(0x943)](_0x32f082,_0xc83439,_0x5aa119,_0x1b66f6){const _0x345efa=_0x26edfb,_0x1046a3=this['ctx'],_0x51d1bd=this[_0x345efa(0x835)],_0x4d8723=_0x51d1bd[_0x345efa(0x59d)],_0x25d314=_0x51d1bd['textRenderingMode'],_0x1f52b4=_0x51d1bd[_0x345efa(0x443)]/_0x51d1bd['fontSizeScale'],_0x3e2c15=_0x25d314&_0x37e514[_0x345efa(0x38b)][_0x345efa(0x724)],_0x34a7f4=!!(_0x25d314&_0x37e514[_0x345efa(0x38b)][_0x345efa(0x830)]),_0x45ce50=_0x51d1bd['patternFill']&&!_0x4d8723[_0x345efa(0x39b)];let _0x4ad6dd;(_0x4d8723[_0x345efa(0x8b6)]||_0x34a7f4||_0x45ce50)&&(_0x4ad6dd=_0x4d8723[_0x345efa(0x82a)](this[_0x345efa(0x53b)],_0x32f082));_0x4d8723[_0x345efa(0x8b6)]||_0x45ce50?(_0x1046a3['save'](),_0x1046a3['translate'](_0xc83439,_0x5aa119),_0x1046a3[_0x345efa(0x1ec)](),_0x4ad6dd(_0x1046a3,_0x1f52b4),_0x1b66f6&&_0x1046a3['setTransform'](..._0x1b66f6),(_0x3e2c15===_0x37e514[_0x345efa(0x38b)][_0x345efa(0x61e)]||_0x3e2c15===_0x37e514['TextRenderingMode'][_0x345efa(0x37d)])&&_0x1046a3[_0x345efa(0x923)](),(_0x3e2c15===_0x37e514[_0x345efa(0x38b)][_0x345efa(0x607)]||_0x3e2c15===_0x37e514[_0x345efa(0x38b)][_0x345efa(0x37d)])&&_0x1046a3[_0x345efa(0x849)](),_0x1046a3[_0x345efa(0x9ab)]()):((_0x3e2c15===_0x37e514['TextRenderingMode']['FILL']||_0x3e2c15===_0x37e514[_0x345efa(0x38b)][_0x345efa(0x37d)])&&_0x1046a3['fillText'](_0x32f082,_0xc83439,_0x5aa119),(_0x3e2c15===_0x37e514[_0x345efa(0x38b)]['STROKE']||_0x3e2c15===_0x37e514['TextRenderingMode'][_0x345efa(0x37d)])&&_0x1046a3[_0x345efa(0x32e)](_0x32f082,_0xc83439,_0x5aa119));if(_0x34a7f4){const _0x4eb0c6=this[_0x345efa(0x179)]||=[];_0x4eb0c6[_0x345efa(0x7d6)]({'transform':(0x0,_0x1b427a[_0x345efa(0x5f1)])(_0x1046a3),'x':_0xc83439,'y':_0x5aa119,'fontSize':_0x1f52b4,'addToPath':_0x4ad6dd});}}get[_0x26edfb(0x33b)](){const _0x3e1caa=_0x26edfb,{context:_0x25b574}=this[_0x3e1caa(0x4e8)][_0x3e1caa(0x6cf)](_0x3e1caa(0x33b),0xa,0xa);_0x25b574[_0x3e1caa(0xc8)](1.5,0x1),_0x25b574[_0x3e1caa(0x950)]('I',0x0,0xa);const _0x2f58d3=_0x25b574[_0x3e1caa(0x3fc)](0x0,0x0,0xa,0xa)[_0x3e1caa(0x41b)];let _0x5a47c1=![];for(let _0x1e44b5=0x3;_0x1e44b5<_0x2f58d3[_0x3e1caa(0x557)];_0x1e44b5+=0x4){if(_0x2f58d3[_0x1e44b5]>0x0&&_0x2f58d3[_0x1e44b5]<0xff){_0x5a47c1=!![];break;}}return(0x0,_0x37e514[_0x3e1caa(0x51d)])(this,_0x3e1caa(0x33b),_0x5a47c1);}[_0x26edfb(0x610)](_0x1a7cb0){const _0xf6eff3=_0x26edfb,_0x4460db=this[_0xf6eff3(0x835)],_0x4cf9cc=_0x4460db[_0xf6eff3(0x59d)];if(_0x4cf9cc[_0xf6eff3(0x109)])return this[_0xf6eff3(0x4e5)](_0x1a7cb0);const _0x2cff90=_0x4460db[_0xf6eff3(0x443)];if(_0x2cff90===0x0)return undefined;const _0x200105=this['ctx'],_0x1c3110=_0x4460db['fontSizeScale'],_0x2b5f32=_0x4460db[_0xf6eff3(0x329)],_0x1e5bb4=_0x4460db[_0xf6eff3(0x865)],_0x10b359=_0x4460db[_0xf6eff3(0x896)],_0x105994=_0x4460db[_0xf6eff3(0x494)]*_0x10b359,_0x231739=_0x1a7cb0[_0xf6eff3(0x557)],_0x34a772=_0x4cf9cc['vertical'],_0x16fe09=_0x34a772?0x1:-0x1,_0x8ea2da=_0x4cf9cc[_0xf6eff3(0x785)],_0x184c1e=_0x2cff90*_0x4460db['fontMatrix'][0x0],_0xc35559=_0x4460db[_0xf6eff3(0x743)]===_0x37e514[_0xf6eff3(0x38b)][_0xf6eff3(0x61e)]&&!_0x4cf9cc['disableFontFace']&&!_0x4460db[_0xf6eff3(0x4b9)];_0x200105[_0xf6eff3(0x7e2)](),_0x200105['transform'](..._0x4460db[_0xf6eff3(0x5c2)]),_0x200105['translate'](_0x4460db['x'],_0x4460db['y']+_0x4460db['textRise']);_0x10b359>0x0?_0x200105[_0xf6eff3(0xc8)](_0x105994,-0x1):_0x200105['scale'](_0x105994,0x1);let _0x27fed4;if(_0x4460db['patternFill']){_0x200105[_0xf6eff3(0x7e2)]();const _0x5ab505=_0x4460db[_0xf6eff3(0x631)][_0xf6eff3(0x307)](_0x200105,this,(0x0,_0x1b427a[_0xf6eff3(0x932)])(_0x200105),_0x51d8e3[_0xf6eff3(0x3b9)][_0xf6eff3(0x61e)]);_0x27fed4=(0x0,_0x1b427a[_0xf6eff3(0x5f1)])(_0x200105),_0x200105[_0xf6eff3(0x9ab)](),_0x200105[_0xf6eff3(0x968)]=_0x5ab505;}let _0x169916=_0x4460db[_0xf6eff3(0x2ad)];const _0x385f1e=_0x4460db['textMatrixScale'];if(_0x385f1e===0x0||_0x169916===0x0){const _0x1906fc=_0x4460db[_0xf6eff3(0x743)]&_0x37e514[_0xf6eff3(0x38b)][_0xf6eff3(0x724)];(_0x1906fc===_0x37e514[_0xf6eff3(0x38b)][_0xf6eff3(0x607)]||_0x1906fc===_0x37e514[_0xf6eff3(0x38b)]['FILL_STROKE'])&&(_0x169916=this[_0xf6eff3(0x9ec)]());}else _0x169916/=_0x385f1e;_0x1c3110!==0x1&&(_0x200105[_0xf6eff3(0xc8)](_0x1c3110,_0x1c3110),_0x169916/=_0x1c3110);_0x200105[_0xf6eff3(0x2ad)]=_0x169916;if(_0x4cf9cc[_0xf6eff3(0x3d1)]){const _0x460f8d=[];let _0x5a2f96=0x0;for(const _0x159952 of _0x1a7cb0){_0x460f8d[_0xf6eff3(0x7d6)](_0x159952['unicode']),_0x5a2f96+=_0x159952[_0xf6eff3(0x98b)];}return _0x200105[_0xf6eff3(0x950)](_0x460f8d[_0xf6eff3(0x334)](''),0x0,0x0),_0x4460db['x']+=_0x5a2f96*_0x184c1e*_0x105994,_0x200105['restore'](),this[_0xf6eff3(0x765)](),undefined;}let _0x5117ad=0x0,_0xad0c29;for(_0xad0c29=0x0;_0xad0c29<_0x231739;++_0xad0c29){const _0x374679=_0x1a7cb0[_0xad0c29];if(typeof _0x374679===_0xf6eff3(0x454)){_0x5117ad+=_0x16fe09*_0x374679*_0x2cff90/0x3e8;continue;}let _0x1ada1e=![];const _0x19c7e8=(_0x374679[_0xf6eff3(0x708)]?_0x1e5bb4:0x0)+_0x2b5f32,_0x1ff59c=_0x374679[_0xf6eff3(0x74e)],_0x3c7734=_0x374679[_0xf6eff3(0x718)];let _0x44e0d2,_0x44a63e,_0x21b808=_0x374679[_0xf6eff3(0x98b)];if(_0x34a772){const _0x4cd2e9=_0x374679[_0xf6eff3(0x8f6)]||_0x8ea2da,_0x539502=-(_0x374679['vmetric']?_0x4cd2e9[0x1]:_0x21b808*0.5)*_0x184c1e,_0x55b0b2=_0x4cd2e9[0x2]*_0x184c1e;_0x21b808=_0x4cd2e9?-_0x4cd2e9[0x0]:_0x21b808,_0x44e0d2=_0x539502/_0x1c3110,_0x44a63e=(_0x5117ad+_0x55b0b2)/_0x1c3110;}else _0x44e0d2=_0x5117ad/_0x1c3110,_0x44a63e=0x0;if(_0x4cf9cc['remeasure']&&_0x21b808>0x0){const _0x3f0266=_0x200105[_0xf6eff3(0x106)](_0x1ff59c)[_0xf6eff3(0x98b)]*0x3e8/_0x2cff90*_0x1c3110;if(_0x21b808<_0x3f0266&&this['isFontSubpixelAAEnabled']){const _0x4c9036=_0x21b808/_0x3f0266;_0x1ada1e=!![],_0x200105[_0xf6eff3(0x7e2)](),_0x200105['scale'](_0x4c9036,0x1),_0x44e0d2/=_0x4c9036;}else _0x21b808!==_0x3f0266&&(_0x44e0d2+=(_0x21b808-_0x3f0266)/0x7d0*_0x2cff90/_0x1c3110);}if(this[_0xf6eff3(0x3ad)]&&(_0x374679['isInFont']||_0x4cf9cc[_0xf6eff3(0x39b)])){if(_0xc35559&&!_0x3c7734)_0x200105[_0xf6eff3(0x950)](_0x1ff59c,_0x44e0d2,_0x44a63e);else{this[_0xf6eff3(0x943)](_0x1ff59c,_0x44e0d2,_0x44a63e,_0x27fed4);if(_0x3c7734){const _0x505e03=_0x44e0d2+_0x2cff90*_0x3c7734[_0xf6eff3(0x30d)]['x']/_0x1c3110,_0x3cde58=_0x44a63e-_0x2cff90*_0x3c7734[_0xf6eff3(0x30d)]['y']/_0x1c3110;this['paintChar'](_0x3c7734[_0xf6eff3(0x74e)],_0x505e03,_0x3cde58,_0x27fed4);}}}let _0x5d3dd8;_0x34a772?_0x5d3dd8=_0x21b808*_0x184c1e-_0x19c7e8*_0x10b359:_0x5d3dd8=_0x21b808*_0x184c1e+_0x19c7e8*_0x10b359,_0x5117ad+=_0x5d3dd8,_0x1ada1e&&_0x200105['restore']();}return _0x34a772?_0x4460db['y']-=_0x5117ad:_0x4460db['x']+=_0x5117ad*_0x105994,_0x200105[_0xf6eff3(0x9ab)](),this[_0xf6eff3(0x765)](),undefined;}[_0x26edfb(0x4e5)](_0x108ca4){const _0x4116fd=_0x26edfb,_0x350f33=this[_0x4116fd(0x427)],_0x5ae298=this[_0x4116fd(0x835)],_0x1cfd2a=_0x5ae298[_0x4116fd(0x59d)],_0x2ace9d=_0x5ae298[_0x4116fd(0x443)],_0x30c16b=_0x5ae298[_0x4116fd(0x896)],_0x1e0a9b=_0x1cfd2a[_0x4116fd(0x58b)]?0x1:-0x1,_0x17bd9b=_0x5ae298[_0x4116fd(0x329)],_0x4452ed=_0x5ae298['wordSpacing'],_0x46ab7b=_0x5ae298[_0x4116fd(0x494)]*_0x30c16b,_0x5c47c2=_0x5ae298[_0x4116fd(0x4f3)]||_0x37e514[_0x4116fd(0x6ab)],_0x3f6050=_0x108ca4[_0x4116fd(0x557)],_0x5700e0=_0x5ae298[_0x4116fd(0x743)]===_0x37e514[_0x4116fd(0x38b)][_0x4116fd(0x2d5)];let _0x135cdf,_0x337b37,_0x468848,_0x238450;if(_0x5700e0||_0x2ace9d===0x0)return;this[_0x4116fd(0x7b5)][0x0]=-0x1,this[_0x4116fd(0x5e6)]=null,_0x350f33[_0x4116fd(0x7e2)](),_0x350f33[_0x4116fd(0x5dd)](..._0x5ae298[_0x4116fd(0x5c2)]),_0x350f33[_0x4116fd(0x18d)](_0x5ae298['x'],_0x5ae298['y']),_0x350f33[_0x4116fd(0xc8)](_0x46ab7b,_0x30c16b);for(_0x135cdf=0x0;_0x135cdf<_0x3f6050;++_0x135cdf){_0x337b37=_0x108ca4[_0x135cdf];if(typeof _0x337b37===_0x4116fd(0x454)){_0x238450=_0x1e0a9b*_0x337b37*_0x2ace9d/0x3e8,this[_0x4116fd(0x427)]['translate'](_0x238450,0x0),_0x5ae298['x']+=_0x238450*_0x46ab7b;continue;}const _0x15dc0e=(_0x337b37[_0x4116fd(0x708)]?_0x4452ed:0x0)+_0x17bd9b,_0x1b705e=_0x1cfd2a['charProcOperatorList'][_0x337b37['operatorListId']];if(!_0x1b705e){(0x0,_0x37e514[_0x4116fd(0x472)])(_0x4116fd(0x143)+_0x337b37[_0x4116fd(0x2b2)]+_0x4116fd(0x579));continue;}this[_0x4116fd(0x3ad)]&&(this['processingType3']=_0x337b37,this['save'](),_0x350f33[_0x4116fd(0xc8)](_0x2ace9d,_0x2ace9d),_0x350f33[_0x4116fd(0x5dd)](..._0x5c47c2),this['executeOperatorList'](_0x1b705e),this['restore']());const _0x4ad856=_0x37e514['Util']['applyTransform']([_0x337b37['width'],0x0],_0x5c47c2);_0x468848=_0x4ad856[0x0]*_0x2ace9d+_0x15dc0e,_0x350f33[_0x4116fd(0x18d)](_0x468848,0x0),_0x5ae298['x']+=_0x468848*_0x46ab7b;}_0x350f33[_0x4116fd(0x9ab)](),this[_0x4116fd(0x7d0)]=null;}[_0x26edfb(0x95b)](_0x118033,_0x4a632f){}[_0x26edfb(0x751)](_0x4e8a64,_0x3e2ecf,_0x10df2c,_0x3645a3,_0x417e82,_0x46b710){const _0x2c52ce=_0x26edfb;this[_0x2c52ce(0x427)]['rect'](_0x10df2c,_0x3645a3,_0x417e82-_0x10df2c,_0x46b710-_0x3645a3),this[_0x2c52ce(0x427)]['clip'](),this[_0x2c52ce(0x486)]();}[_0x26edfb(0x54b)](_0x1ca8b3){const _0x42ea57=_0x26edfb;let _0x33ae7e;if(_0x1ca8b3[0x0]===_0x42ea57(0x5ec)){const _0x3fed06=_0x1ca8b3[0x1],_0x3b543e=this['baseTransform']||(0x0,_0x1b427a[_0x42ea57(0x5f1)])(this[_0x42ea57(0x427)]),_0x525ff3={'createCanvasGraphics':_0x479586=>{const _0x5947d1=_0x42ea57;return new _0x38810c(_0x479586,this['commonObjs'],this[_0x5947d1(0xdc)],this['canvasFactory'],this[_0x5947d1(0x491)],{'optionalContentConfig':this[_0x5947d1(0x20b)],'markedContentStack':this[_0x5947d1(0x201)]});}};_0x33ae7e=new _0x51d8e3[(_0x42ea57(0x5ec))](_0x1ca8b3,_0x3fed06,this['ctx'],_0x525ff3,_0x3b543e);}else _0x33ae7e=this['_getPattern'](_0x1ca8b3[0x1],_0x1ca8b3[0x2]);return _0x33ae7e;}['setStrokeColorN'](){const _0x31ba62=_0x26edfb;this[_0x31ba62(0x835)][_0x31ba62(0x745)]=this[_0x31ba62(0x54b)](arguments);}[_0x26edfb(0x463)](){const _0x3de4f4=_0x26edfb;this[_0x3de4f4(0x835)][_0x3de4f4(0x631)]=this[_0x3de4f4(0x54b)](arguments),this[_0x3de4f4(0x835)][_0x3de4f4(0x4b9)]=!![];}[_0x26edfb(0x530)](_0x448369,_0x429cdd,_0x15953e){const _0x8b38ef=_0x26edfb,_0x31b6c5=_0x37e514[_0x8b38ef(0x5d7)]['makeHexColor'](_0x448369,_0x429cdd,_0x15953e);this[_0x8b38ef(0x427)][_0x8b38ef(0xc9)]=_0x31b6c5,this['current'][_0x8b38ef(0x745)]=_0x31b6c5;}[_0x26edfb(0x9a9)](_0x3c9e85,_0x3430a2,_0x1623ba){const _0x127206=_0x26edfb,_0x39bf6b=_0x37e514[_0x127206(0x5d7)]['makeHexColor'](_0x3c9e85,_0x3430a2,_0x1623ba);this[_0x127206(0x427)]['fillStyle']=_0x39bf6b,this[_0x127206(0x835)][_0x127206(0x631)]=_0x39bf6b,this[_0x127206(0x835)][_0x127206(0x4b9)]=![];}[_0x26edfb(0x55e)](_0x4b57db){const _0x1c71ea=_0x26edfb;let _0x49fd85=arguments['length']>0x1&&arguments[0x1]!==undefined?arguments[0x1]:null,_0x10636c;return this[_0x1c71ea(0x3c3)][_0x1c71ea(0x373)](_0x4b57db)?_0x10636c=this[_0x1c71ea(0x3c3)][_0x1c71ea(0x8c4)](_0x4b57db):(_0x10636c=(0x0,_0x51d8e3[_0x1c71ea(0x2df)])(this['getObject'](_0x4b57db)),this[_0x1c71ea(0x3c3)][_0x1c71ea(0x98e)](_0x4b57db,_0x10636c)),_0x49fd85&&(_0x10636c[_0x1c71ea(0x238)]=_0x49fd85),_0x10636c;}[_0x26edfb(0x6c2)](_0x2023f5){const _0x12f606=_0x26edfb;if(!this[_0x12f606(0x3ad)])return;const _0x3c9f3a=this['ctx'];this['save']();const _0x10d794=this['_getPattern'](_0x2023f5);_0x3c9f3a[_0x12f606(0x968)]=_0x10d794['getPattern'](_0x3c9f3a,this,(0x0,_0x1b427a['getCurrentTransformInverse'])(_0x3c9f3a),_0x51d8e3[_0x12f606(0x3b9)][_0x12f606(0x6c3)]);const _0x58e534=(0x0,_0x1b427a[_0x12f606(0x932)])(_0x3c9f3a);if(_0x58e534){const {width:_0x34eddb,height:_0x23d5c3}=_0x3c9f3a[_0x12f606(0x75a)],[_0x151068,_0x5aab8f,_0x19b6cc,_0x17e7d6]=_0x37e514[_0x12f606(0x5d7)][_0x12f606(0x847)]([0x0,0x0,_0x34eddb,_0x23d5c3],_0x58e534);this[_0x12f606(0x427)][_0x12f606(0x974)](_0x151068,_0x5aab8f,_0x19b6cc-_0x151068,_0x17e7d6-_0x5aab8f);}else this['ctx'][_0x12f606(0x974)](-0x2540be400,-0x2540be400,0x4a817c800,0x4a817c800);this[_0x12f606(0x765)](this[_0x12f606(0x835)][_0x12f606(0x1e0)]()),this['restore']();}['beginInlineImage'](){const _0x4fb4bf=_0x26edfb;(0x0,_0x37e514[_0x4fb4bf(0x749)])(_0x4fb4bf(0x5c0));}['beginImageData'](){const _0x6e61e4=_0x26edfb;(0x0,_0x37e514[_0x6e61e4(0x749)])(_0x6e61e4(0x894));}[_0x26edfb(0x855)](_0x148ec1,_0x417b35){const _0x566f26=_0x26edfb;if(!this[_0x566f26(0x3ad)])return;this['save'](),this['baseTransformStack'][_0x566f26(0x7d6)](this['baseTransform']);Array[_0x566f26(0x419)](_0x148ec1)&&_0x148ec1[_0x566f26(0x557)]===0x6&&this[_0x566f26(0x5dd)](..._0x148ec1);this['baseTransform']=(0x0,_0x1b427a[_0x566f26(0x5f1)])(this['ctx']);if(_0x417b35){const _0x5da699=_0x417b35[0x2]-_0x417b35[0x0],_0x1183bd=_0x417b35[0x3]-_0x417b35[0x1];this[_0x566f26(0x427)]['rect'](_0x417b35[0x0],_0x417b35[0x1],_0x5da699,_0x1183bd),this[_0x566f26(0x835)]['updateRectMinMax']((0x0,_0x1b427a[_0x566f26(0x5f1)])(this[_0x566f26(0x427)]),_0x417b35),this[_0x566f26(0x8b0)](),this[_0x566f26(0x486)]();}}['paintFormXObjectEnd'](){const _0x3380ff=_0x26edfb;if(!this[_0x3380ff(0x3ad)])return;this['restore'](),this['baseTransform']=this[_0x3380ff(0x2c8)][_0x3380ff(0x783)]();}[_0x26edfb(0x2fd)](_0xd30bd9){const _0x4644ca=_0x26edfb;if(!this[_0x4644ca(0x3ad)])return;this['save']();this[_0x4644ca(0x7fa)]&&(this['endSMaskMode'](),this[_0x4644ca(0x835)][_0x4644ca(0x627)]=null);const _0x21aedc=this[_0x4644ca(0x427)];!_0xd30bd9[_0x4644ca(0x884)]&&(0x0,_0x37e514['info'])(_0x4644ca(0x1d6));_0xd30bd9[_0x4644ca(0x4a8)]&&(0x0,_0x37e514[_0x4644ca(0x472)])('Knockout\x20groups\x20not\x20supported.');const _0x28bf52=(0x0,_0x1b427a[_0x4644ca(0x5f1)])(_0x21aedc);_0xd30bd9[_0x4644ca(0x238)]&&_0x21aedc['transform'](..._0xd30bd9[_0x4644ca(0x238)]);if(!_0xd30bd9[_0x4644ca(0x9b0)])throw new Error(_0x4644ca(0x978));let _0x3eb632=_0x37e514['Util'][_0x4644ca(0x847)](_0xd30bd9[_0x4644ca(0x9b0)],(0x0,_0x1b427a[_0x4644ca(0x5f1)])(_0x21aedc));const _0x3a80f5=[0x0,0x0,_0x21aedc['canvas'][_0x4644ca(0x98b)],_0x21aedc[_0x4644ca(0x75a)][_0x4644ca(0x999)]];_0x3eb632=_0x37e514[_0x4644ca(0x5d7)][_0x4644ca(0x441)](_0x3eb632,_0x3a80f5)||[0x0,0x0,0x0,0x0];const _0x487fd6=Math[_0x4644ca(0x583)](_0x3eb632[0x0]),_0x1c4eff=Math[_0x4644ca(0x583)](_0x3eb632[0x1]);let _0x4577a9=Math[_0x4644ca(0x78d)](Math[_0x4644ca(0x213)](_0x3eb632[0x2])-_0x487fd6,0x1),_0x274dff=Math['max'](Math[_0x4644ca(0x213)](_0x3eb632[0x3])-_0x1c4eff,0x1),_0x34844e=0x1,_0xe5cedd=0x1;_0x4577a9>_0x3ff1fc&&(_0x34844e=_0x4577a9/_0x3ff1fc,_0x4577a9=_0x3ff1fc);_0x274dff>_0x3ff1fc&&(_0xe5cedd=_0x274dff/_0x3ff1fc,_0x274dff=_0x3ff1fc);this[_0x4644ca(0x835)][_0x4644ca(0x44f)]([0x0,0x0,_0x4577a9,_0x274dff]);let _0x18ac8d=_0x4644ca(0x658)+this[_0x4644ca(0x336)];_0xd30bd9[_0x4644ca(0x2b6)]&&(_0x18ac8d+=_0x4644ca(0x906)+this[_0x4644ca(0x93c)]++%0x2);const _0x4d5ed8=this[_0x4644ca(0x4e8)][_0x4644ca(0x6cf)](_0x18ac8d,_0x4577a9,_0x274dff),_0x4bcd8c=_0x4d5ed8['context'];_0x4bcd8c[_0x4644ca(0xc8)](0x1/_0x34844e,0x1/_0xe5cedd),_0x4bcd8c['translate'](-_0x487fd6,-_0x1c4eff),_0x4bcd8c['transform'](..._0x28bf52),_0xd30bd9['smask']?this['smaskStack'][_0x4644ca(0x7d6)]({'canvas':_0x4d5ed8['canvas'],'context':_0x4bcd8c,'offsetX':_0x487fd6,'offsetY':_0x1c4eff,'scaleX':_0x34844e,'scaleY':_0xe5cedd,'subtype':_0xd30bd9[_0x4644ca(0x2b6)][_0x4644ca(0x146)],'backdrop':_0xd30bd9[_0x4644ca(0x2b6)]['backdrop'],'transferMap':_0xd30bd9[_0x4644ca(0x2b6)][_0x4644ca(0x5b1)]||null,'startTransformInverse':null}):(_0x21aedc['setTransform'](0x1,0x0,0x0,0x1,0x0,0x0),_0x21aedc['translate'](_0x487fd6,_0x1c4eff),_0x21aedc[_0x4644ca(0xc8)](_0x34844e,_0xe5cedd),_0x21aedc[_0x4644ca(0x7e2)]()),_0x567cc3(_0x21aedc,_0x4bcd8c),this[_0x4644ca(0x427)]=_0x4bcd8c,this[_0x4644ca(0x268)]([['BM','source-over'],['ca',0x1],['CA',0x1]]),this[_0x4644ca(0x26b)]['push'](_0x21aedc),this[_0x4644ca(0x336)]++;}['endGroup'](_0x3fed6a){const _0x1603a4=_0x26edfb;if(!this[_0x1603a4(0x3ad)])return;this['groupLevel']--;const _0x1d41ee=this[_0x1603a4(0x427)],_0xa41b7=this[_0x1603a4(0x26b)]['pop']();this[_0x1603a4(0x427)]=_0xa41b7,this['ctx'][_0x1603a4(0x9a4)]=![];if(_0x3fed6a[_0x1603a4(0x2b6)])this[_0x1603a4(0x2ba)]=this[_0x1603a4(0x840)]['pop'](),this[_0x1603a4(0x9ab)]();else{this[_0x1603a4(0x427)]['restore']();const _0x1f5940=(0x0,_0x1b427a[_0x1603a4(0x5f1)])(this[_0x1603a4(0x427)]);this['restore'](),this['ctx'][_0x1603a4(0x7e2)](),this[_0x1603a4(0x427)][_0x1603a4(0xf1)](..._0x1f5940);const _0x23c4af=_0x37e514[_0x1603a4(0x5d7)][_0x1603a4(0x847)]([0x0,0x0,_0x1d41ee[_0x1603a4(0x75a)]['width'],_0x1d41ee[_0x1603a4(0x75a)][_0x1603a4(0x999)]],_0x1f5940);this[_0x1603a4(0x427)]['drawImage'](_0x1d41ee[_0x1603a4(0x75a)],0x0,0x0),this[_0x1603a4(0x427)][_0x1603a4(0x9ab)](),this['compose'](_0x23c4af);}}[_0x26edfb(0x72b)](_0x220678,_0x4ac832,_0x17ad98,_0x5f37af,_0x5afd51){const _0x5cb54d=_0x26edfb;this.#restoreInitialState(),_0x14e6c2(this[_0x5cb54d(0x427)]),this['ctx'][_0x5cb54d(0x7e2)](),this[_0x5cb54d(0x7e2)]();this[_0x5cb54d(0x15a)]&&this['ctx'][_0x5cb54d(0xf1)](...this[_0x5cb54d(0x15a)]);if(Array['isArray'](_0x4ac832)&&_0x4ac832[_0x5cb54d(0x557)]===0x4){const _0x3625c4=_0x4ac832[0x2]-_0x4ac832[0x0],_0x57e734=_0x4ac832[0x3]-_0x4ac832[0x1];if(_0x5afd51&&this[_0x5cb54d(0x368)]){_0x17ad98=_0x17ad98[_0x5cb54d(0x80c)](),_0x17ad98[0x4]-=_0x4ac832[0x0],_0x17ad98[0x5]-=_0x4ac832[0x1],_0x4ac832=_0x4ac832['slice'](),_0x4ac832[0x0]=_0x4ac832[0x1]=0x0,_0x4ac832[0x2]=_0x3625c4,_0x4ac832[0x3]=_0x57e734;const [_0x11adb1,_0x5f0958]=_0x37e514[_0x5cb54d(0x5d7)][_0x5cb54d(0x424)]((0x0,_0x1b427a[_0x5cb54d(0x5f1)])(this[_0x5cb54d(0x427)])),{viewportScale:_0x4875c5}=this,_0x256a90=Math['ceil'](_0x3625c4*this[_0x5cb54d(0x75c)]*_0x4875c5),_0x1a11bd=Math[_0x5cb54d(0x213)](_0x57e734*this[_0x5cb54d(0x51f)]*_0x4875c5);this[_0x5cb54d(0x31c)]=this['canvasFactory'][_0x5cb54d(0x77c)](_0x256a90,_0x1a11bd);const {canvas:_0x2ca534,context:_0x30260d}=this['annotationCanvas'];this[_0x5cb54d(0x368)]['set'](_0x220678,_0x2ca534),this[_0x5cb54d(0x31c)][_0x5cb54d(0x967)]=this[_0x5cb54d(0x427)],this[_0x5cb54d(0x427)]=_0x30260d,this['ctx'][_0x5cb54d(0x7e2)](),this['ctx'][_0x5cb54d(0xf1)](_0x11adb1,0x0,0x0,-_0x5f0958,0x0,_0x57e734*_0x5f0958),_0x14e6c2(this[_0x5cb54d(0x427)]);}else _0x14e6c2(this[_0x5cb54d(0x427)]),this[_0x5cb54d(0x427)][_0x5cb54d(0x333)](_0x4ac832[0x0],_0x4ac832[0x1],_0x3625c4,_0x57e734),this[_0x5cb54d(0x427)][_0x5cb54d(0x8b0)](),this['endPath']();}this[_0x5cb54d(0x835)]=new _0xb2a509(this[_0x5cb54d(0x427)]['canvas'][_0x5cb54d(0x98b)],this['ctx'][_0x5cb54d(0x75a)][_0x5cb54d(0x999)]),this[_0x5cb54d(0x5dd)](..._0x17ad98),this[_0x5cb54d(0x5dd)](..._0x5f37af);}[_0x26edfb(0x1df)](){const _0x3da637=_0x26edfb;this[_0x3da637(0x31c)]&&(this['ctx'][_0x3da637(0x9ab)](),this.#drawFilter(),this[_0x3da637(0x427)]=this['annotationCanvas']['savedCtx'],delete this[_0x3da637(0x31c)][_0x3da637(0x967)],delete this[_0x3da637(0x31c)]);}[_0x26edfb(0x94b)](_0x8cb773){const _0x5884eb=_0x26edfb;if(!this[_0x5884eb(0x3ad)])return;const _0x583aca=_0x8cb773[_0x5884eb(0x68e)];_0x8cb773=this[_0x5884eb(0x3ef)](_0x8cb773[_0x5884eb(0x41b)],_0x8cb773),_0x8cb773[_0x5884eb(0x68e)]=_0x583aca;const _0x4cee10=this['ctx'],_0x36a3a2=this[_0x5884eb(0x7d0)];if(_0x36a3a2){_0x36a3a2[_0x5884eb(0x4b5)]===undefined&&(_0x36a3a2[_0x5884eb(0x4b5)]=_0x3c1935(_0x8cb773));if(_0x36a3a2[_0x5884eb(0x4b5)]){_0x36a3a2[_0x5884eb(0x4b5)](_0x4cee10);return;}}const _0x513dc6=this[_0x5884eb(0x354)](_0x8cb773),_0x4d33b5=_0x513dc6[_0x5884eb(0x75a)];_0x4cee10['save'](),_0x4cee10[_0x5884eb(0xf1)](0x1,0x0,0x0,0x1,0x0,0x0),_0x4cee10['drawImage'](_0x4d33b5,_0x513dc6['offsetX'],_0x513dc6[_0x5884eb(0x431)]),_0x4cee10[_0x5884eb(0x9ab)](),this[_0x5884eb(0x765)]();}[_0x26edfb(0x22c)](_0x236923,_0x303a96){const _0x8ad767=_0x26edfb;let _0x28f0d2=arguments[_0x8ad767(0x557)]>0x2&&arguments[0x2]!==undefined?arguments[0x2]:0x0,_0x2bf38b=arguments[_0x8ad767(0x557)]>0x3&&arguments[0x3]!==undefined?arguments[0x3]:0x0,_0x392c6f=arguments['length']>0x4?arguments[0x4]:undefined,_0x4b86b1=arguments[_0x8ad767(0x557)]>0x5?arguments[0x5]:undefined;if(!this[_0x8ad767(0x3ad)])return;_0x236923=this[_0x8ad767(0x3ef)](_0x236923[_0x8ad767(0x41b)],_0x236923);const _0x22b288=this['ctx'];_0x22b288[_0x8ad767(0x7e2)]();const _0x2f0048=(0x0,_0x1b427a[_0x8ad767(0x5f1)])(_0x22b288);_0x22b288[_0x8ad767(0x5dd)](_0x303a96,_0x28f0d2,_0x2bf38b,_0x392c6f,0x0,0x0);const _0x17166a=this['_createMaskCanvas'](_0x236923);_0x22b288[_0x8ad767(0xf1)](0x1,0x0,0x0,0x1,_0x17166a[_0x8ad767(0xdf)]-_0x2f0048[0x4],_0x17166a[_0x8ad767(0x431)]-_0x2f0048[0x5]);for(let _0x5ea4c2=0x0,_0x1e265b=_0x4b86b1[_0x8ad767(0x557)];_0x5ea4c2<_0x1e265b;_0x5ea4c2+=0x2){const _0x590925=_0x37e514[_0x8ad767(0x5d7)][_0x8ad767(0x5dd)](_0x2f0048,[_0x303a96,_0x28f0d2,_0x2bf38b,_0x392c6f,_0x4b86b1[_0x5ea4c2],_0x4b86b1[_0x5ea4c2+0x1]]),[_0x50acf8,_0x214a54]=_0x37e514[_0x8ad767(0x5d7)][_0x8ad767(0x8a2)]([0x0,0x0],_0x590925);_0x22b288[_0x8ad767(0x545)](_0x17166a[_0x8ad767(0x75a)],_0x50acf8,_0x214a54);}_0x22b288[_0x8ad767(0x9ab)](),this[_0x8ad767(0x765)]();}[_0x26edfb(0x626)](_0x2767af){const _0x2ddb87=_0x26edfb;if(!this[_0x2ddb87(0x3ad)])return;const _0x41e228=this[_0x2ddb87(0x427)],_0x32750d=this['current'][_0x2ddb87(0x631)],_0x91bc61=this[_0x2ddb87(0x835)][_0x2ddb87(0x4b9)];for(const _0x3f2b30 of _0x2767af){const {data:_0xc82607,width:_0x5f3f94,height:_0x2a39f8,transform:_0x2def6d}=_0x3f2b30,_0x522e2a=this[_0x2ddb87(0x4e8)]['getCanvas'](_0x2ddb87(0x16a),_0x5f3f94,_0x2a39f8),_0x17d664=_0x522e2a[_0x2ddb87(0x1a6)];_0x17d664[_0x2ddb87(0x7e2)]();const _0x50ed4a=this[_0x2ddb87(0x3ef)](_0xc82607,_0x3f2b30);_0x5a4aed(_0x17d664,_0x50ed4a),_0x17d664[_0x2ddb87(0x1a2)]=_0x2ddb87(0x5b7),_0x17d664[_0x2ddb87(0x968)]=_0x91bc61?_0x32750d[_0x2ddb87(0x307)](_0x17d664,this,(0x0,_0x1b427a['getCurrentTransformInverse'])(_0x41e228),_0x51d8e3[_0x2ddb87(0x3b9)][_0x2ddb87(0x61e)]):_0x32750d,_0x17d664['fillRect'](0x0,0x0,_0x5f3f94,_0x2a39f8),_0x17d664[_0x2ddb87(0x9ab)](),_0x41e228[_0x2ddb87(0x7e2)](),_0x41e228[_0x2ddb87(0x5dd)](..._0x2def6d),_0x41e228[_0x2ddb87(0xc8)](0x1,-0x1),_0x230b45(_0x41e228,_0x522e2a['canvas'],0x0,0x0,_0x5f3f94,_0x2a39f8,0x0,-0x1,0x1,0x1),_0x41e228[_0x2ddb87(0x9ab)]();}this[_0x2ddb87(0x765)]();}[_0x26edfb(0x845)](_0x4c6fff){const _0x3c49b8=_0x26edfb;if(!this[_0x3c49b8(0x3ad)])return;const _0x5f034b=this[_0x3c49b8(0x3ef)](_0x4c6fff);if(!_0x5f034b){(0x0,_0x37e514['warn'])('Dependent\x20image\x20isn\x27t\x20ready\x20yet');return;}this[_0x3c49b8(0x661)](_0x5f034b);}[_0x26edfb(0x138)](_0x2e7cc7,_0x4a49bf,_0x2897f5,_0x41bb69){const _0x32db6e=_0x26edfb;if(!this[_0x32db6e(0x3ad)])return;const _0x42b326=this[_0x32db6e(0x3ef)](_0x2e7cc7);if(!_0x42b326){(0x0,_0x37e514[_0x32db6e(0x472)])(_0x32db6e(0x388));return;}const _0x3d251f=_0x42b326[_0x32db6e(0x98b)],_0x98814=_0x42b326['height'],_0x151028=[];for(let _0x90c2f6=0x0,_0x463e31=_0x41bb69[_0x32db6e(0x557)];_0x90c2f6<_0x463e31;_0x90c2f6+=0x2){_0x151028['push']({'transform':[_0x4a49bf,0x0,0x0,_0x2897f5,_0x41bb69[_0x90c2f6],_0x41bb69[_0x90c2f6+0x1]],'x':0x0,'y':0x0,'w':_0x3d251f,'h':_0x98814});}this[_0x32db6e(0x2d7)](_0x42b326,_0x151028);}[_0x26edfb(0x8b9)](_0x412fc3){const _0x3437b8=_0x26edfb;return this[_0x3437b8(0x835)][_0x3437b8(0x858)]!==_0x3437b8(0x122)&&(_0x412fc3[_0x3437b8(0x81f)]=this[_0x3437b8(0x835)]['transferMaps'],_0x412fc3[_0x3437b8(0x545)](_0x412fc3[_0x3437b8(0x75a)],0x0,0x0),_0x412fc3['filter']=_0x3437b8(0x122)),_0x412fc3[_0x3437b8(0x75a)];}['applyTransferMapsToBitmap'](_0x30efe6){const _0x1ab8e0=_0x26edfb;if(this[_0x1ab8e0(0x835)][_0x1ab8e0(0x858)]==='none')return _0x30efe6[_0x1ab8e0(0x7eb)];const {bitmap:_0x4ee3d0,width:_0x35e488,height:_0x4f0386}=_0x30efe6,_0xa3f370=this[_0x1ab8e0(0x4e8)][_0x1ab8e0(0x6cf)]('inlineImage',_0x35e488,_0x4f0386),_0x5a8097=_0xa3f370[_0x1ab8e0(0x1a6)];return _0x5a8097[_0x1ab8e0(0x81f)]=this['current']['transferMaps'],_0x5a8097[_0x1ab8e0(0x545)](_0x4ee3d0,0x0,0x0),_0x5a8097[_0x1ab8e0(0x81f)]=_0x1ab8e0(0x122),_0xa3f370[_0x1ab8e0(0x75a)];}['paintInlineImageXObject'](_0x3b91ae){const _0x3aaafe=_0x26edfb;if(!this[_0x3aaafe(0x3ad)])return;const _0x205ed8=_0x3b91ae[_0x3aaafe(0x98b)],_0x59050d=_0x3b91ae[_0x3aaafe(0x999)],_0x6282dc=this[_0x3aaafe(0x427)];this[_0x3aaafe(0x7e2)]();!_0x4d5e22[_0x3aaafe(0x8c5)]&&(_0x6282dc[_0x3aaafe(0x81f)]=_0x3aaafe(0x122));_0x6282dc[_0x3aaafe(0xc8)](0x1/_0x205ed8,-0x1/_0x59050d);let _0x1194d6;if(_0x3b91ae[_0x3aaafe(0x7eb)])_0x1194d6=this['applyTransferMapsToBitmap'](_0x3b91ae);else{if(typeof HTMLElement===_0x3aaafe(0x4ec)&&_0x3b91ae instanceof HTMLElement||!_0x3b91ae['data'])_0x1194d6=_0x3b91ae;else{const _0x2cbdc4=this['cachedCanvases'][_0x3aaafe(0x6cf)](_0x3aaafe(0x65c),_0x205ed8,_0x59050d),_0x13e423=_0x2cbdc4[_0x3aaafe(0x1a6)];_0x4b8829(_0x13e423,_0x3b91ae),_0x1194d6=this[_0x3aaafe(0x8b9)](_0x13e423);}}const _0x2069e1=this[_0x3aaafe(0x39d)](_0x1194d6,(0x0,_0x1b427a['getCurrentTransformInverse'])(_0x6282dc));_0x6282dc['imageSmoothingEnabled']=_0x49bafa((0x0,_0x1b427a[_0x3aaafe(0x5f1)])(_0x6282dc),_0x3b91ae[_0x3aaafe(0x55b)]),_0x230b45(_0x6282dc,_0x2069e1['img'],0x0,0x0,_0x2069e1[_0x3aaafe(0x25b)],_0x2069e1[_0x3aaafe(0x35a)],0x0,-_0x59050d,_0x205ed8,_0x59050d),this[_0x3aaafe(0x765)](),this[_0x3aaafe(0x9ab)]();}['paintInlineImageXObjectGroup'](_0x173579,_0x547cd4){const _0x5f2344=_0x26edfb;if(!this['contentVisible'])return;const _0x136f9e=this[_0x5f2344(0x427)];let _0x4bfa4d;if(_0x173579[_0x5f2344(0x7eb)])_0x4bfa4d=_0x173579[_0x5f2344(0x7eb)];else{const _0x172788=_0x173579[_0x5f2344(0x98b)],_0x2c105b=_0x173579[_0x5f2344(0x999)],_0x549a59=this[_0x5f2344(0x4e8)][_0x5f2344(0x6cf)](_0x5f2344(0x65c),_0x172788,_0x2c105b),_0x26d1a5=_0x549a59[_0x5f2344(0x1a6)];_0x4b8829(_0x26d1a5,_0x173579),_0x4bfa4d=this['applyTransferMapsToCanvas'](_0x26d1a5);}for(const _0x289bc5 of _0x547cd4){_0x136f9e[_0x5f2344(0x7e2)](),_0x136f9e[_0x5f2344(0x5dd)](..._0x289bc5[_0x5f2344(0x5dd)]),_0x136f9e[_0x5f2344(0xc8)](0x1,-0x1),_0x230b45(_0x136f9e,_0x4bfa4d,_0x289bc5['x'],_0x289bc5['y'],_0x289bc5['w'],_0x289bc5['h'],0x0,-0x1,0x1,0x1),_0x136f9e[_0x5f2344(0x9ab)]();}this[_0x5f2344(0x765)]();}[_0x26edfb(0x3e4)](){const _0x251b3b=_0x26edfb;if(!this[_0x251b3b(0x3ad)])return;this[_0x251b3b(0x427)][_0x251b3b(0x974)](0x0,0x0,0x1,0x1),this[_0x251b3b(0x765)]();}[_0x26edfb(0x775)](_0x5f0504){}['markPointProps'](_0x2c18ed,_0x273cac){}['beginMarkedContent'](_0x33060b){const _0x32c0a7=_0x26edfb;this[_0x32c0a7(0x201)][_0x32c0a7(0x7d6)]({'visible':!![]});}[_0x26edfb(0x83b)](_0x545fa0,_0xba3760){const _0xd183b9=_0x26edfb;_0x545fa0==='OC'?this[_0xd183b9(0x201)]['push']({'visible':this[_0xd183b9(0x20b)][_0xd183b9(0x6f4)](_0xba3760)}):this[_0xd183b9(0x201)]['push']({'visible':!![]}),this[_0xd183b9(0x3ad)]=this[_0xd183b9(0x458)]();}[_0x26edfb(0x8a4)](){const _0x45ddc0=_0x26edfb;this[_0x45ddc0(0x201)][_0x45ddc0(0x783)](),this[_0x45ddc0(0x3ad)]=this['isContentVisible']();}['beginCompat'](){}[_0x26edfb(0x11b)](){}[_0x26edfb(0x697)](_0x1ca012){const _0x17a93e=_0x26edfb,_0x3b26ad=this[_0x17a93e(0x835)][_0x17a93e(0x69a)]();this[_0x17a93e(0x78f)]&&this[_0x17a93e(0x835)][_0x17a93e(0x6d1)]();!this['pendingClip']&&this[_0x17a93e(0x765)](_0x1ca012);const _0x6cc316=this[_0x17a93e(0x427)];this[_0x17a93e(0x78f)]&&(!_0x3b26ad&&(this[_0x17a93e(0x78f)]===_0x1ddce9?_0x6cc316['clip']('evenodd'):_0x6cc316[_0x17a93e(0x8b0)]()),this[_0x17a93e(0x78f)]=null),this[_0x17a93e(0x835)][_0x17a93e(0x44f)](this[_0x17a93e(0x835)][_0x17a93e(0x8e7)]),_0x6cc316[_0x17a93e(0x1ec)]();}[_0x26edfb(0x9ec)](){const _0x4cbcee=_0x26edfb;if(!this[_0x4cbcee(0x5e6)]){const _0x5cc286=(0x0,_0x1b427a['getCurrentTransform'])(this[_0x4cbcee(0x427)]);if(_0x5cc286[0x1]===0x0&&_0x5cc286[0x2]===0x0)this[_0x4cbcee(0x5e6)]=0x1/Math[_0x4cbcee(0x81b)](Math[_0x4cbcee(0x346)](_0x5cc286[0x0]),Math['abs'](_0x5cc286[0x3]));else{const _0x4baab8=Math[_0x4cbcee(0x346)](_0x5cc286[0x0]*_0x5cc286[0x3]-_0x5cc286[0x2]*_0x5cc286[0x1]),_0x5f2620=Math['hypot'](_0x5cc286[0x0],_0x5cc286[0x2]),_0x38fc46=Math[_0x4cbcee(0x8cb)](_0x5cc286[0x1],_0x5cc286[0x3]);this['_cachedGetSinglePixelWidth']=Math[_0x4cbcee(0x78d)](_0x5f2620,_0x38fc46)/_0x4baab8;}}return this[_0x4cbcee(0x5e6)];}[_0x26edfb(0x777)](){const _0x3b1b3c=_0x26edfb;if(this[_0x3b1b3c(0x7b5)][0x0]===-0x1){const {lineWidth:_0x54c4a2}=this[_0x3b1b3c(0x835)],{a:_0x52594e,b:_0x33b287,c:_0x5479f1,d:_0x5ea9bb}=this[_0x3b1b3c(0x427)][_0x3b1b3c(0x56a)]();let _0x20a2a6,_0x20335a;if(_0x33b287===0x0&&_0x5479f1===0x0){const _0x16f063=Math[_0x3b1b3c(0x346)](_0x52594e),_0x5d1e71=Math[_0x3b1b3c(0x346)](_0x5ea9bb);if(_0x16f063===_0x5d1e71){if(_0x54c4a2===0x0)_0x20a2a6=_0x20335a=0x1/_0x16f063;else{const _0x935b38=_0x16f063*_0x54c4a2;_0x20a2a6=_0x20335a=_0x935b38<0x1?0x1/_0x935b38:0x1;}}else{if(_0x54c4a2===0x0)_0x20a2a6=0x1/_0x16f063,_0x20335a=0x1/_0x5d1e71;else{const _0x4b7a6a=_0x16f063*_0x54c4a2,_0x19a0aa=_0x5d1e71*_0x54c4a2;_0x20a2a6=_0x4b7a6a<0x1?0x1/_0x4b7a6a:0x1,_0x20335a=_0x19a0aa<0x1?0x1/_0x19a0aa:0x1;}}}else{const _0x164a36=Math[_0x3b1b3c(0x346)](_0x52594e*_0x5ea9bb-_0x33b287*_0x5479f1),_0x172087=Math[_0x3b1b3c(0x8cb)](_0x52594e,_0x33b287),_0x483746=Math[_0x3b1b3c(0x8cb)](_0x5479f1,_0x5ea9bb);if(_0x54c4a2===0x0)_0x20a2a6=_0x483746/_0x164a36,_0x20335a=_0x172087/_0x164a36;else{const _0x40d881=_0x54c4a2*_0x164a36;_0x20a2a6=_0x483746>_0x40d881?_0x483746/_0x40d881:0x1,_0x20335a=_0x172087>_0x40d881?_0x172087/_0x40d881:0x1;}}this['_cachedScaleForStroking'][0x0]=_0x20a2a6,this[_0x3b1b3c(0x7b5)][0x1]=_0x20335a;}return this['_cachedScaleForStroking'];}[_0x26edfb(0x2a1)](_0x2c2d30){const _0x68febc=_0x26edfb,{ctx:_0x30491e}=this,{lineWidth:_0x4e4f64}=this['current'],[_0x23db80,_0x54730f]=this[_0x68febc(0x777)]();_0x30491e[_0x68febc(0x2ad)]=_0x4e4f64||0x1;if(_0x23db80===0x1&&_0x54730f===0x1){_0x30491e[_0x68febc(0x849)]();return;}const _0x524d57=_0x30491e[_0x68febc(0x115)]();_0x2c2d30&&_0x30491e[_0x68febc(0x7e2)]();_0x30491e[_0x68febc(0xc8)](_0x23db80,_0x54730f);if(_0x524d57[_0x68febc(0x557)]>0x0){const _0x290c63=Math[_0x68febc(0x78d)](_0x23db80,_0x54730f);_0x30491e[_0x68febc(0x4b2)](_0x524d57[_0x68febc(0x7ec)](_0x1579cf=>_0x1579cf/_0x290c63)),_0x30491e[_0x68febc(0x315)]/=_0x290c63;}_0x30491e[_0x68febc(0x849)](),_0x2c2d30&&_0x30491e['restore']();}['isContentVisible'](){const _0x38a41c=_0x26edfb;for(let _0x517a25=this[_0x38a41c(0x201)][_0x38a41c(0x557)]-0x1;_0x517a25>=0x0;_0x517a25--){if(!this[_0x38a41c(0x201)][_0x517a25][_0x38a41c(0x6cd)])return![];}return!![];}}_0x14ffd0[_0x26edfb(0x6e6)]=_0x38810c;for(const _0x1cc24d in _0x37e514[_0x26edfb(0x13d)]){_0x38810c[_0x26edfb(0x821)][_0x1cc24d]!==undefined&&(_0x38810c['prototype'][_0x37e514[_0x26edfb(0x13d)][_0x1cc24d]]=_0x38810c[_0x26edfb(0x821)][_0x1cc24d]);}},(_0x4d0670,_0x43587f,_0x6f04c6)=>{'use strict';const _0x1f573d=a0_0x160d;Object[_0x1f573d(0x430)](_0x43587f,_0x1f573d(0x19a),{'value':!![]}),_0x43587f[_0x1f573d(0x5ec)]=_0x43587f['PathType']=void 0x0,_0x43587f[_0x1f573d(0x2df)]=_0x537687;var _0x5a2331=_0x6f04c6(0x1),_0x5ad228=_0x6f04c6(0x87);const _0x376924={'FILL':_0x1f573d(0x48f),'STROKE':_0x1f573d(0x503),'SHADING':_0x1f573d(0x462)};_0x43587f[_0x1f573d(0x3b9)]=_0x376924;function _0x210521(_0x425aba,_0xbd1f9){const _0x1799ec=_0x1f573d;if(!_0xbd1f9)return;const _0x205b88=_0xbd1f9[0x2]-_0xbd1f9[0x0],_0x1a0397=_0xbd1f9[0x3]-_0xbd1f9[0x1],_0x8bec84=new Path2D();_0x8bec84[_0x1799ec(0x333)](_0xbd1f9[0x0],_0xbd1f9[0x1],_0x205b88,_0x1a0397),_0x425aba['clip'](_0x8bec84);}class _0x276656{constructor(){const _0x13c2d1=_0x1f573d;this[_0x13c2d1(0x6ef)]===_0x276656&&(0x0,_0x5a2331['unreachable'])(_0x13c2d1(0x554));}[_0x1f573d(0x307)](){const _0x5af7e5=_0x1f573d;(0x0,_0x5a2331[_0x5af7e5(0x749)])(_0x5af7e5(0x4f1));}}class _0x3a0473 extends _0x276656{constructor(_0x339c94){const _0x355e60=_0x1f573d;super(),this[_0x355e60(0x879)]=_0x339c94[0x1],this[_0x355e60(0x7ca)]=_0x339c94[0x2],this[_0x355e60(0x200)]=_0x339c94[0x3],this[_0x355e60(0x4c5)]=_0x339c94[0x4],this['_p1']=_0x339c94[0x5],this['_r0']=_0x339c94[0x6],this[_0x355e60(0x2c5)]=_0x339c94[0x7],this[_0x355e60(0x238)]=null;}[_0x1f573d(0x612)](_0x138aae){const _0x52c30d=_0x1f573d;let _0x536e35;if(this['_type']==='axial')_0x536e35=_0x138aae[_0x52c30d(0x5c8)](this['_p0'][0x0],this['_p0'][0x1],this[_0x52c30d(0x34d)][0x0],this[_0x52c30d(0x34d)][0x1]);else this['_type']==='radial'&&(_0x536e35=_0x138aae[_0x52c30d(0x920)](this['_p0'][0x0],this['_p0'][0x1],this[_0x52c30d(0x80f)],this[_0x52c30d(0x34d)][0x0],this[_0x52c30d(0x34d)][0x1],this['_r1']));for(const _0x343389 of this[_0x52c30d(0x200)]){_0x536e35[_0x52c30d(0xfe)](_0x343389[0x0],_0x343389[0x1]);}return _0x536e35;}[_0x1f573d(0x307)](_0x467c0d,_0x564287,_0x3af5d9,_0xaf135c){const _0x5e5061=_0x1f573d;let _0x5c3434;if(_0xaf135c===_0x376924[_0x5e5061(0x607)]||_0xaf135c===_0x376924[_0x5e5061(0x61e)]){const _0x443cbf=_0x564287['current']['getClippedPathBoundingBox'](_0xaf135c,(0x0,_0x5ad228[_0x5e5061(0x5f1)])(_0x467c0d))||[0x0,0x0,0x0,0x0],_0x431961=Math[_0x5e5061(0x213)](_0x443cbf[0x2]-_0x443cbf[0x0])||0x1,_0x54bf17=Math[_0x5e5061(0x213)](_0x443cbf[0x3]-_0x443cbf[0x1])||0x1,_0x5bc8ac=_0x564287[_0x5e5061(0x4e8)][_0x5e5061(0x6cf)]('pattern',_0x431961,_0x54bf17,!![]),_0x56c077=_0x5bc8ac[_0x5e5061(0x1a6)];_0x56c077[_0x5e5061(0x726)](0x0,0x0,_0x56c077[_0x5e5061(0x75a)][_0x5e5061(0x98b)],_0x56c077[_0x5e5061(0x75a)][_0x5e5061(0x999)]),_0x56c077[_0x5e5061(0x1ec)](),_0x56c077[_0x5e5061(0x333)](0x0,0x0,_0x56c077['canvas']['width'],_0x56c077[_0x5e5061(0x75a)][_0x5e5061(0x999)]),_0x56c077[_0x5e5061(0x18d)](-_0x443cbf[0x0],-_0x443cbf[0x1]),_0x3af5d9=_0x5a2331[_0x5e5061(0x5d7)][_0x5e5061(0x5dd)](_0x3af5d9,[0x1,0x0,0x0,0x1,_0x443cbf[0x0],_0x443cbf[0x1]]),_0x56c077[_0x5e5061(0x5dd)](..._0x564287[_0x5e5061(0x15a)]);this[_0x5e5061(0x238)]&&_0x56c077[_0x5e5061(0x5dd)](...this['matrix']);_0x210521(_0x56c077,this['_bbox']),_0x56c077[_0x5e5061(0x968)]=this[_0x5e5061(0x612)](_0x56c077),_0x56c077[_0x5e5061(0x923)](),_0x5c3434=_0x467c0d[_0x5e5061(0x9da)](_0x5bc8ac[_0x5e5061(0x75a)],_0x5e5061(0x5f5));const _0x4aa6a4=new DOMMatrix(_0x3af5d9);_0x5c3434['setTransform'](_0x4aa6a4);}else _0x210521(_0x467c0d,this['_bbox']),_0x5c3434=this[_0x5e5061(0x612)](_0x467c0d);return _0x5c3434;}}function _0x3dfddf(_0x3af789,_0x2c23b8,_0x214cb9,_0x296684,_0x31dd79,_0x41f918,_0x5d1262,_0x457a0c){const _0x35fb06=_0x1f573d,_0x48cc85=_0x2c23b8['coords'],_0x33355b=_0x2c23b8[_0x35fb06(0x5fa)],_0x46ccf5=_0x3af789[_0x35fb06(0x41b)],_0x24a204=_0x3af789['width']*0x4;let _0x406adb;_0x48cc85[_0x214cb9+0x1]>_0x48cc85[_0x296684+0x1]&&(_0x406adb=_0x214cb9,_0x214cb9=_0x296684,_0x296684=_0x406adb,_0x406adb=_0x41f918,_0x41f918=_0x5d1262,_0x5d1262=_0x406adb);_0x48cc85[_0x296684+0x1]>_0x48cc85[_0x31dd79+0x1]&&(_0x406adb=_0x296684,_0x296684=_0x31dd79,_0x31dd79=_0x406adb,_0x406adb=_0x5d1262,_0x5d1262=_0x457a0c,_0x457a0c=_0x406adb);_0x48cc85[_0x214cb9+0x1]>_0x48cc85[_0x296684+0x1]&&(_0x406adb=_0x214cb9,_0x214cb9=_0x296684,_0x296684=_0x406adb,_0x406adb=_0x41f918,_0x41f918=_0x5d1262,_0x5d1262=_0x406adb);const _0x22aa03=(_0x48cc85[_0x214cb9]+_0x2c23b8[_0x35fb06(0xdf)])*_0x2c23b8[_0x35fb06(0x3eb)],_0xc47b19=(_0x48cc85[_0x214cb9+0x1]+_0x2c23b8[_0x35fb06(0x431)])*_0x2c23b8[_0x35fb06(0x1f0)],_0x13a50f=(_0x48cc85[_0x296684]+_0x2c23b8[_0x35fb06(0xdf)])*_0x2c23b8[_0x35fb06(0x3eb)],_0x313018=(_0x48cc85[_0x296684+0x1]+_0x2c23b8['offsetY'])*_0x2c23b8[_0x35fb06(0x1f0)],_0x309ecb=(_0x48cc85[_0x31dd79]+_0x2c23b8[_0x35fb06(0xdf)])*_0x2c23b8['scaleX'],_0x1101ec=(_0x48cc85[_0x31dd79+0x1]+_0x2c23b8[_0x35fb06(0x431)])*_0x2c23b8[_0x35fb06(0x1f0)];if(_0xc47b19>=_0x1101ec)return;const _0x1b2e28=_0x33355b[_0x41f918],_0x4a3154=_0x33355b[_0x41f918+0x1],_0xd74165=_0x33355b[_0x41f918+0x2],_0x2e9147=_0x33355b[_0x5d1262],_0x36f24e=_0x33355b[_0x5d1262+0x1],_0x5292cf=_0x33355b[_0x5d1262+0x2],_0x5a8de9=_0x33355b[_0x457a0c],_0x149193=_0x33355b[_0x457a0c+0x1],_0x1c5c82=_0x33355b[_0x457a0c+0x2],_0x1a8a2d=Math['round'](_0xc47b19),_0x5be503=Math['round'](_0x1101ec);let _0x3a9cbd,_0x25b87b,_0x3d0584,_0x5c29b1,_0x25905a,_0x1de4a5,_0x6293e1,_0x4a2ef0;for(let _0xfa6cf=_0x1a8a2d;_0xfa6cf<=_0x5be503;_0xfa6cf++){if(_0xfa6cf<_0x313018){let _0x3dd4e7;_0xfa6cf<_0xc47b19?_0x3dd4e7=0x0:_0x3dd4e7=(_0xc47b19-_0xfa6cf)/(_0xc47b19-_0x313018),_0x3a9cbd=_0x22aa03-(_0x22aa03-_0x13a50f)*_0x3dd4e7,_0x25b87b=_0x1b2e28-(_0x1b2e28-_0x2e9147)*_0x3dd4e7,_0x3d0584=_0x4a3154-(_0x4a3154-_0x36f24e)*_0x3dd4e7,_0x5c29b1=_0xd74165-(_0xd74165-_0x5292cf)*_0x3dd4e7;}else{let _0x3d05cc;if(_0xfa6cf>_0x1101ec)_0x3d05cc=0x1;else _0x313018===_0x1101ec?_0x3d05cc=0x0:_0x3d05cc=(_0x313018-_0xfa6cf)/(_0x313018-_0x1101ec);_0x3a9cbd=_0x13a50f-(_0x13a50f-_0x309ecb)*_0x3d05cc,_0x25b87b=_0x2e9147-(_0x2e9147-_0x5a8de9)*_0x3d05cc,_0x3d0584=_0x36f24e-(_0x36f24e-_0x149193)*_0x3d05cc,_0x5c29b1=_0x5292cf-(_0x5292cf-_0x1c5c82)*_0x3d05cc;}let _0x11ff32;if(_0xfa6cf<_0xc47b19)_0x11ff32=0x0;else _0xfa6cf>_0x1101ec?_0x11ff32=0x1:_0x11ff32=(_0xc47b19-_0xfa6cf)/(_0xc47b19-_0x1101ec);_0x25905a=_0x22aa03-(_0x22aa03-_0x309ecb)*_0x11ff32,_0x1de4a5=_0x1b2e28-(_0x1b2e28-_0x5a8de9)*_0x11ff32,_0x6293e1=_0x4a3154-(_0x4a3154-_0x149193)*_0x11ff32,_0x4a2ef0=_0xd74165-(_0xd74165-_0x1c5c82)*_0x11ff32;const _0x1cd323=Math[_0x35fb06(0x7df)](Math['min'](_0x3a9cbd,_0x25905a)),_0xb0cffd=Math['round'](Math[_0x35fb06(0x78d)](_0x3a9cbd,_0x25905a));let _0x32413e=_0x24a204*_0xfa6cf+_0x1cd323*0x4;for(let _0x177e06=_0x1cd323;_0x177e06<=_0xb0cffd;_0x177e06++){_0x11ff32=(_0x3a9cbd-_0x177e06)/(_0x3a9cbd-_0x25905a);if(_0x11ff32<0x0)_0x11ff32=0x0;else _0x11ff32>0x1&&(_0x11ff32=0x1);_0x46ccf5[_0x32413e++]=_0x25b87b-(_0x25b87b-_0x1de4a5)*_0x11ff32|0x0,_0x46ccf5[_0x32413e++]=_0x3d0584-(_0x3d0584-_0x6293e1)*_0x11ff32|0x0,_0x46ccf5[_0x32413e++]=_0x5c29b1-(_0x5c29b1-_0x4a2ef0)*_0x11ff32|0x0,_0x46ccf5[_0x32413e++]=0xff;}}}function _0x1daf4e(_0xec0539,_0x52a167,_0x5a895d){const _0x453697=_0x1f573d,_0x70bce6=_0x52a167['coords'],_0x53157e=_0x52a167[_0x453697(0x5fa)];let _0x2c1744,_0x4f5765;switch(_0x52a167[_0x453697(0x9fd)]){case _0x453697(0xca):const _0x5dc333=_0x52a167[_0x453697(0x1e4)],_0x3f510d=Math[_0x453697(0x583)](_0x70bce6[_0x453697(0x557)]/_0x5dc333)-0x1,_0x38eb5b=_0x5dc333-0x1;for(_0x2c1744=0x0;_0x2c1744<_0x3f510d;_0x2c1744++){let _0x486724=_0x2c1744*_0x5dc333;for(let _0x4aef80=0x0;_0x4aef80<_0x38eb5b;_0x4aef80++,_0x486724++){_0x3dfddf(_0xec0539,_0x5a895d,_0x70bce6[_0x486724],_0x70bce6[_0x486724+0x1],_0x70bce6[_0x486724+_0x5dc333],_0x53157e[_0x486724],_0x53157e[_0x486724+0x1],_0x53157e[_0x486724+_0x5dc333]),_0x3dfddf(_0xec0539,_0x5a895d,_0x70bce6[_0x486724+_0x5dc333+0x1],_0x70bce6[_0x486724+0x1],_0x70bce6[_0x486724+_0x5dc333],_0x53157e[_0x486724+_0x5dc333+0x1],_0x53157e[_0x486724+0x1],_0x53157e[_0x486724+_0x5dc333]);}}break;case _0x453697(0x77f):for(_0x2c1744=0x0,_0x4f5765=_0x70bce6[_0x453697(0x557)];_0x2c1744<_0x4f5765;_0x2c1744+=0x3){_0x3dfddf(_0xec0539,_0x5a895d,_0x70bce6[_0x2c1744],_0x70bce6[_0x2c1744+0x1],_0x70bce6[_0x2c1744+0x2],_0x53157e[_0x2c1744],_0x53157e[_0x2c1744+0x1],_0x53157e[_0x2c1744+0x2]);}break;default:throw new Error(_0x453697(0x7ab));}}class _0x387bec extends _0x276656{constructor(_0x406e65){const _0x2bcf4d=_0x1f573d;super(),this['_coords']=_0x406e65[0x2],this['_colors']=_0x406e65[0x3],this[_0x2bcf4d(0x326)]=_0x406e65[0x4],this[_0x2bcf4d(0x154)]=_0x406e65[0x5],this[_0x2bcf4d(0x7ca)]=_0x406e65[0x7],this[_0x2bcf4d(0x48d)]=_0x406e65[0x8],this[_0x2bcf4d(0x238)]=null;}[_0x1f573d(0x570)](_0x4dfad7,_0x53cac3,_0x3250b0){const _0x4cd083=_0x1f573d,_0x429767=1.1,_0x301816=0xbb8,_0x88403=0x2,_0x3990ec=Math[_0x4cd083(0x583)](this['_bounds'][0x0]),_0x139997=Math[_0x4cd083(0x583)](this[_0x4cd083(0x154)][0x1]),_0x3a4a69=Math['ceil'](this[_0x4cd083(0x154)][0x2])-_0x3990ec,_0x20a0a2=Math['ceil'](this[_0x4cd083(0x154)][0x3])-_0x139997,_0x5014eb=Math[_0x4cd083(0x81b)](Math[_0x4cd083(0x213)](Math[_0x4cd083(0x346)](_0x3a4a69*_0x4dfad7[0x0]*_0x429767)),_0x301816),_0x4d97af=Math[_0x4cd083(0x81b)](Math[_0x4cd083(0x213)](Math[_0x4cd083(0x346)](_0x20a0a2*_0x4dfad7[0x1]*_0x429767)),_0x301816),_0x3a6d2c=_0x3a4a69/_0x5014eb,_0x2b7e00=_0x20a0a2/_0x4d97af,_0x2521e5={'coords':this[_0x4cd083(0x452)],'colors':this[_0x4cd083(0x2e1)],'offsetX':-_0x3990ec,'offsetY':-_0x139997,'scaleX':0x1/_0x3a6d2c,'scaleY':0x1/_0x2b7e00},_0x4e2e1e=_0x5014eb+_0x88403*0x2,_0x4c9164=_0x4d97af+_0x88403*0x2,_0x7c111b=_0x3250b0[_0x4cd083(0x6cf)](_0x4cd083(0x990),_0x4e2e1e,_0x4c9164,![]),_0x2b3e0d=_0x7c111b['context'],_0x19c106=_0x2b3e0d[_0x4cd083(0x160)](_0x5014eb,_0x4d97af);if(_0x53cac3){const _0x2ec9cc=_0x19c106[_0x4cd083(0x41b)];for(let _0x1c7650=0x0,_0x5306d5=_0x2ec9cc['length'];_0x1c7650<_0x5306d5;_0x1c7650+=0x4){_0x2ec9cc[_0x1c7650]=_0x53cac3[0x0],_0x2ec9cc[_0x1c7650+0x1]=_0x53cac3[0x1],_0x2ec9cc[_0x1c7650+0x2]=_0x53cac3[0x2],_0x2ec9cc[_0x1c7650+0x3]=0xff;}}for(const _0x34ea30 of this[_0x4cd083(0x326)]){_0x1daf4e(_0x19c106,_0x34ea30,_0x2521e5);}_0x2b3e0d[_0x4cd083(0x2b9)](_0x19c106,_0x88403,_0x88403);const _0x310c85=_0x7c111b[_0x4cd083(0x75a)];return{'canvas':_0x310c85,'offsetX':_0x3990ec-_0x88403*_0x3a6d2c,'offsetY':_0x139997-_0x88403*_0x2b7e00,'scaleX':_0x3a6d2c,'scaleY':_0x2b7e00};}[_0x1f573d(0x307)](_0x5b6226,_0x2b5d72,_0x195635,_0x48dce7){const _0x5160fc=_0x1f573d;_0x210521(_0x5b6226,this[_0x5160fc(0x7ca)]);let _0x29b7e2;if(_0x48dce7===_0x376924['SHADING'])_0x29b7e2=_0x5a2331['Util'][_0x5160fc(0x424)]((0x0,_0x5ad228[_0x5160fc(0x5f1)])(_0x5b6226));else{_0x29b7e2=_0x5a2331['Util'][_0x5160fc(0x424)](_0x2b5d72[_0x5160fc(0x15a)]);if(this[_0x5160fc(0x238)]){const _0x3b22a6=_0x5a2331[_0x5160fc(0x5d7)][_0x5160fc(0x424)](this[_0x5160fc(0x238)]);_0x29b7e2=[_0x29b7e2[0x0]*_0x3b22a6[0x0],_0x29b7e2[0x1]*_0x3b22a6[0x1]];}}const _0x48dbf6=this[_0x5160fc(0x570)](_0x29b7e2,_0x48dce7===_0x376924[_0x5160fc(0x6c3)]?null:this[_0x5160fc(0x48d)],_0x2b5d72[_0x5160fc(0x4e8)]);return _0x48dce7!==_0x376924[_0x5160fc(0x6c3)]&&(_0x5b6226[_0x5160fc(0xf1)](..._0x2b5d72[_0x5160fc(0x15a)]),this[_0x5160fc(0x238)]&&_0x5b6226[_0x5160fc(0x5dd)](...this[_0x5160fc(0x238)])),_0x5b6226['translate'](_0x48dbf6['offsetX'],_0x48dbf6['offsetY']),_0x5b6226[_0x5160fc(0xc8)](_0x48dbf6[_0x5160fc(0x3eb)],_0x48dbf6[_0x5160fc(0x1f0)]),_0x5b6226['createPattern'](_0x48dbf6['canvas'],_0x5160fc(0x5f5));}}class _0x1351d5 extends _0x276656{[_0x1f573d(0x307)](){const _0x134298=_0x1f573d;return _0x134298(0x989);}}function _0x537687(_0x2b9986){const _0x1ce827=_0x1f573d;switch(_0x2b9986[0x0]){case'RadialAxial':return new _0x3a0473(_0x2b9986);case _0x1ce827(0xa08):return new _0x387bec(_0x2b9986);case _0x1ce827(0x9fa):return new _0x1351d5();}throw new Error(_0x1ce827(0x4fa)+_0x2b9986[0x0]);}const _0x21c771={'COLORED':0x1,'UNCOLORED':0x2};class _0x4cbd81{static ['MAX_PATTERN_SIZE']=0xbb8;constructor(_0x30f619,_0x4e40f9,_0x31434d,_0x22962b,_0x5e4b4d){const _0x2ed300=_0x1f573d;this[_0x2ed300(0x33f)]=_0x30f619[0x2],this['matrix']=_0x30f619[0x3]||[0x1,0x0,0x0,0x1,0x0,0x0],this[_0x2ed300(0x9b0)]=_0x30f619[0x4],this[_0x2ed300(0x3ab)]=_0x30f619[0x5],this[_0x2ed300(0x3f1)]=_0x30f619[0x6],this[_0x2ed300(0xed)]=_0x30f619[0x7],this[_0x2ed300(0x444)]=_0x30f619[0x8],this['color']=_0x4e40f9,this[_0x2ed300(0x427)]=_0x31434d,this[_0x2ed300(0x613)]=_0x22962b,this[_0x2ed300(0x15a)]=_0x5e4b4d;}[_0x1f573d(0x5e3)](_0x39a1a1){const _0x4b204d=_0x1f573d,_0x562ce6=this[_0x4b204d(0x33f)],_0x4f897a=this[_0x4b204d(0x9b0)],_0x3e9bcb=this[_0x4b204d(0x3ab)],_0xaa0102=this[_0x4b204d(0x3f1)],_0x45903d=this[_0x4b204d(0xed)],_0x3ccab4=this['tilingType'],_0x15b764=this[_0x4b204d(0x5fe)],_0x6c892e=this[_0x4b204d(0x613)];(0x0,_0x5a2331[_0x4b204d(0x7c1)])(_0x4b204d(0x889)+_0x3ccab4);const _0x354108=_0x4f897a[0x0],_0x160236=_0x4f897a[0x1],_0x40ffd7=_0x4f897a[0x2],_0x1767c7=_0x4f897a[0x3],_0x761dee=_0x5a2331[_0x4b204d(0x5d7)][_0x4b204d(0x424)](this[_0x4b204d(0x238)]),_0x3acccf=_0x5a2331['Util'][_0x4b204d(0x424)](this[_0x4b204d(0x15a)]),_0x145a78=[_0x761dee[0x0]*_0x3acccf[0x0],_0x761dee[0x1]*_0x3acccf[0x1]],_0x43570d=this[_0x4b204d(0x8aa)](_0x3e9bcb,this[_0x4b204d(0x427)]['canvas']['width'],_0x145a78[0x0]),_0x36bfe7=this[_0x4b204d(0x8aa)](_0xaa0102,this[_0x4b204d(0x427)][_0x4b204d(0x75a)][_0x4b204d(0x999)],_0x145a78[0x1]),_0x291467=_0x39a1a1[_0x4b204d(0x4e8)]['getCanvas'](_0x4b204d(0x8cf),_0x43570d[_0x4b204d(0x87a)],_0x36bfe7[_0x4b204d(0x87a)],!![]),_0x31379f=_0x291467[_0x4b204d(0x1a6)],_0x396992=_0x6c892e['createCanvasGraphics'](_0x31379f);_0x396992[_0x4b204d(0x336)]=_0x39a1a1['groupLevel'],this[_0x4b204d(0x309)](_0x396992,_0x45903d,_0x15b764);let _0x44d50e=_0x354108,_0x83259f=_0x160236,_0x669eb9=_0x40ffd7,_0x4793a3=_0x1767c7;return _0x354108<0x0&&(_0x44d50e=0x0,_0x669eb9+=Math[_0x4b204d(0x346)](_0x354108)),_0x160236<0x0&&(_0x83259f=0x0,_0x4793a3+=Math['abs'](_0x160236)),_0x31379f[_0x4b204d(0x18d)](-(_0x43570d[_0x4b204d(0xc8)]*_0x44d50e),-(_0x36bfe7[_0x4b204d(0xc8)]*_0x83259f)),_0x396992[_0x4b204d(0x5dd)](_0x43570d[_0x4b204d(0xc8)],0x0,0x0,_0x36bfe7[_0x4b204d(0xc8)],0x0,0x0),_0x31379f['save'](),this[_0x4b204d(0x1a5)](_0x396992,_0x44d50e,_0x83259f,_0x669eb9,_0x4793a3),_0x396992['baseTransform']=(0x0,_0x5ad228['getCurrentTransform'])(_0x396992[_0x4b204d(0x427)]),_0x396992[_0x4b204d(0x381)](_0x562ce6),_0x396992[_0x4b204d(0x279)](),{'canvas':_0x291467[_0x4b204d(0x75a)],'scaleX':_0x43570d['scale'],'scaleY':_0x36bfe7[_0x4b204d(0xc8)],'offsetX':_0x44d50e,'offsetY':_0x83259f};}[_0x1f573d(0x8aa)](_0x23e16d,_0x3ab118,_0xc5a4ca){const _0x48e199=_0x1f573d;_0x23e16d=Math[_0x48e199(0x346)](_0x23e16d);const _0x1d44b5=Math['max'](_0x4cbd81['MAX_PATTERN_SIZE'],_0x3ab118);let _0x55abc1=Math[_0x48e199(0x213)](_0x23e16d*_0xc5a4ca);return _0x55abc1>=_0x1d44b5?_0x55abc1=_0x1d44b5:_0xc5a4ca=_0x55abc1/_0x23e16d,{'scale':_0xc5a4ca,'size':_0x55abc1};}['clipBbox'](_0x4c3d38,_0x2859ad,_0x2b8bbd,_0x3d7274,_0x40ea1b){const _0x1ec63e=_0x1f573d,_0x62c2cf=_0x3d7274-_0x2859ad,_0x5be219=_0x40ea1b-_0x2b8bbd;_0x4c3d38['ctx'][_0x1ec63e(0x333)](_0x2859ad,_0x2b8bbd,_0x62c2cf,_0x5be219),_0x4c3d38[_0x1ec63e(0x835)][_0x1ec63e(0x767)]((0x0,_0x5ad228[_0x1ec63e(0x5f1)])(_0x4c3d38[_0x1ec63e(0x427)]),[_0x2859ad,_0x2b8bbd,_0x3d7274,_0x40ea1b]),_0x4c3d38[_0x1ec63e(0x8b0)](),_0x4c3d38[_0x1ec63e(0x486)]();}[_0x1f573d(0x309)](_0x3dee5a,_0x565e42,_0x2735ee){const _0x155472=_0x1f573d,_0x4de279=_0x3dee5a['ctx'],_0x5319f6=_0x3dee5a[_0x155472(0x835)];switch(_0x565e42){case _0x21c771[_0x155472(0x815)]:const _0x140559=this[_0x155472(0x427)];_0x4de279[_0x155472(0x968)]=_0x140559[_0x155472(0x968)],_0x4de279[_0x155472(0xc9)]=_0x140559[_0x155472(0xc9)],_0x5319f6[_0x155472(0x631)]=_0x140559[_0x155472(0x968)],_0x5319f6[_0x155472(0x745)]=_0x140559[_0x155472(0xc9)];break;case _0x21c771[_0x155472(0x3e3)]:const _0x3f3c0e=_0x5a2331[_0x155472(0x5d7)]['makeHexColor'](_0x2735ee[0x0],_0x2735ee[0x1],_0x2735ee[0x2]);_0x4de279[_0x155472(0x968)]=_0x3f3c0e,_0x4de279[_0x155472(0xc9)]=_0x3f3c0e,_0x5319f6[_0x155472(0x631)]=_0x3f3c0e,_0x5319f6[_0x155472(0x745)]=_0x3f3c0e;break;default:throw new _0x5a2331['FormatError']('Unsupported\x20paint\x20type:\x20'+_0x565e42);}}[_0x1f573d(0x307)](_0x40ed16,_0x2124d7,_0x5460bb,_0x4d42c7){const _0x120776=_0x1f573d;let _0x296e5a=_0x5460bb;_0x4d42c7!==_0x376924[_0x120776(0x6c3)]&&(_0x296e5a=_0x5a2331['Util'][_0x120776(0x5dd)](_0x296e5a,_0x2124d7[_0x120776(0x15a)]),this[_0x120776(0x238)]&&(_0x296e5a=_0x5a2331[_0x120776(0x5d7)][_0x120776(0x5dd)](_0x296e5a,this[_0x120776(0x238)])));const _0x295b40=this[_0x120776(0x5e3)](_0x2124d7);let _0xe62bd9=new DOMMatrix(_0x296e5a);_0xe62bd9=_0xe62bd9[_0x120776(0x18d)](_0x295b40[_0x120776(0xdf)],_0x295b40['offsetY']),_0xe62bd9=_0xe62bd9['scale'](0x1/_0x295b40[_0x120776(0x3eb)],0x1/_0x295b40['scaleY']);const _0x4dc446=_0x40ed16[_0x120776(0x9da)](_0x295b40['canvas'],_0x120776(0x539));return _0x4dc446[_0x120776(0xf1)](_0xe62bd9),_0x4dc446;}}_0x43587f[_0x1f573d(0x5ec)]=_0x4cbd81;},(_0x48ba29,_0x7255a3,_0x1988e8)=>{'use strict';const _0x30aabc=a0_0x160d;Object[_0x30aabc(0x430)](_0x7255a3,_0x30aabc(0x19a),{'value':!![]}),_0x7255a3['convertBlackAndWhiteToRGBA']=_0x3d4c86,_0x7255a3[_0x30aabc(0x3e9)]=_0x1b4375,_0x7255a3[_0x30aabc(0x6a5)]=_0x2af350;var _0xb6ee0d=_0x1988e8(0x1);function _0x1b4375(_0x3d5787){const _0x5758dc=_0x30aabc;switch(_0x3d5787['kind']){case _0xb6ee0d[_0x5758dc(0x163)][_0x5758dc(0x245)]:return _0x3d4c86(_0x3d5787);case _0xb6ee0d[_0x5758dc(0x163)][_0x5758dc(0x66e)]:return _0x3cca3e(_0x3d5787);}return null;}function _0x3d4c86(_0x4d4143){const _0x5d9af5=_0x30aabc;let {src:_0x35117b,srcPos:srcPos=0x0,dest:_0x3e0919,width:_0x1c4306,height:_0x697fc3,nonBlackColor:nonBlackColor=0xffffffff,inverseDecode:inverseDecode=![]}=_0x4d4143;const _0x2b78f0=_0xb6ee0d[_0x5d9af5(0x7a8)]['isLittleEndian']?0xff000000:0xff,[_0x2f15d4,_0x3ecca9]=inverseDecode?[nonBlackColor,_0x2b78f0]:[_0x2b78f0,nonBlackColor],_0x2619fd=_0x1c4306>>0x3,_0x3e42e6=_0x1c4306&0x7,_0x31f550=_0x35117b[_0x5d9af5(0x557)];_0x3e0919=new Uint32Array(_0x3e0919[_0x5d9af5(0x948)]);let _0x10abfb=0x0;for(let _0x13352b=0x0;_0x13352b<_0x697fc3;_0x13352b++){for(const _0x6dc5b1=srcPos+_0x2619fd;srcPos<_0x6dc5b1;srcPos++){const _0x146786=srcPos<_0x31f550?_0x35117b[srcPos]:0xff;_0x3e0919[_0x10abfb++]=_0x146786&0x80?_0x3ecca9:_0x2f15d4,_0x3e0919[_0x10abfb++]=_0x146786&0x40?_0x3ecca9:_0x2f15d4,_0x3e0919[_0x10abfb++]=_0x146786&0x20?_0x3ecca9:_0x2f15d4,_0x3e0919[_0x10abfb++]=_0x146786&0x10?_0x3ecca9:_0x2f15d4,_0x3e0919[_0x10abfb++]=_0x146786&0x8?_0x3ecca9:_0x2f15d4,_0x3e0919[_0x10abfb++]=_0x146786&0x4?_0x3ecca9:_0x2f15d4,_0x3e0919[_0x10abfb++]=_0x146786&0x2?_0x3ecca9:_0x2f15d4,_0x3e0919[_0x10abfb++]=_0x146786&0x1?_0x3ecca9:_0x2f15d4;}if(_0x3e42e6===0x0)continue;const _0x3968c8=srcPos<_0x31f550?_0x35117b[srcPos++]:0xff;for(let _0x5f0638=0x0;_0x5f0638<_0x3e42e6;_0x5f0638++){_0x3e0919[_0x10abfb++]=_0x3968c8&0x1<<0x7-_0x5f0638?_0x3ecca9:_0x2f15d4;}}return{'srcPos':srcPos,'destPos':_0x10abfb};}function _0x3cca3e(_0x4ea705){const _0x4d291d=_0x30aabc;let {src:_0x595cd5,srcPos:srcPos=0x0,dest:_0x1877a1,destPos:destPos=0x0,width:_0x13ff8b,height:_0x2dca59}=_0x4ea705,_0x551388=0x0;const _0x372529=_0x595cd5[_0x4d291d(0x557)]>>0x2,_0x43a8d5=new Uint32Array(_0x595cd5[_0x4d291d(0x948)],srcPos,_0x372529);if(_0xb6ee0d[_0x4d291d(0x7a8)][_0x4d291d(0x654)]){for(;_0x551388<_0x372529-0x2;_0x551388+=0x3,destPos+=0x4){const _0x48d86b=_0x43a8d5[_0x551388],_0x591a8c=_0x43a8d5[_0x551388+0x1],_0x16e53a=_0x43a8d5[_0x551388+0x2];_0x1877a1[destPos]=_0x48d86b|0xff000000,_0x1877a1[destPos+0x1]=_0x48d86b>>>0x18|_0x591a8c<<0x8|0xff000000,_0x1877a1[destPos+0x2]=_0x591a8c>>>0x10|_0x16e53a<<0x10|0xff000000,_0x1877a1[destPos+0x3]=_0x16e53a>>>0x8|0xff000000;}for(let _0x887aaf=_0x551388*0x4,_0x3a1e48=_0x595cd5[_0x4d291d(0x557)];_0x887aaf<_0x3a1e48;_0x887aaf+=0x3){_0x1877a1[destPos++]=_0x595cd5[_0x887aaf]|_0x595cd5[_0x887aaf+0x1]<<0x8|_0x595cd5[_0x887aaf+0x2]<<0x10|0xff000000;}}else{for(;_0x551388<_0x372529-0x2;_0x551388+=0x3,destPos+=0x4){const _0xe73a9=_0x43a8d5[_0x551388],_0x167c52=_0x43a8d5[_0x551388+0x1],_0xffae8b=_0x43a8d5[_0x551388+0x2];_0x1877a1[destPos]=_0xe73a9|0xff,_0x1877a1[destPos+0x1]=_0xe73a9<<0x18|_0x167c52>>>0x8|0xff,_0x1877a1[destPos+0x2]=_0x167c52<<0x10|_0xffae8b>>>0x10|0xff,_0x1877a1[destPos+0x3]=_0xffae8b<<0x8|0xff;}for(let _0x4b6480=_0x551388*0x4,_0x351e99=_0x595cd5[_0x4d291d(0x557)];_0x4b6480<_0x351e99;_0x4b6480+=0x3){_0x1877a1[destPos++]=_0x595cd5[_0x4b6480]<<0x18|_0x595cd5[_0x4b6480+0x1]<<0x10|_0x595cd5[_0x4b6480+0x2]<<0x8|0xff;}}return{'srcPos':srcPos,'destPos':destPos};}function _0x2af350(_0x5a42aa,_0x1a5b56){const _0x32d31d=_0x30aabc;if(_0xb6ee0d[_0x32d31d(0x7a8)]['isLittleEndian'])for(let _0x34bba9=0x0,_0x55a896=_0x5a42aa[_0x32d31d(0x557)];_0x34bba9<_0x55a896;_0x34bba9++){_0x1a5b56[_0x34bba9]=_0x5a42aa[_0x34bba9]*0x10101|0xff000000;}else for(let _0x309c5d=0x0,_0x3d4049=_0x5a42aa[_0x32d31d(0x557)];_0x309c5d<_0x3d4049;_0x309c5d++){_0x1a5b56[_0x309c5d]=_0x5a42aa[_0x309c5d]*0x1010100|0xff;}}},(_0x421d3c,_0x1ac99a)=>{'use strict';const _0x5e5b7b=a0_0x160d;Object[_0x5e5b7b(0x430)](_0x1ac99a,_0x5e5b7b(0x19a),{'value':!![]}),_0x1ac99a[_0x5e5b7b(0x445)]=void 0x0;const _0x2d304b=Object[_0x5e5b7b(0x77c)](null);_0x1ac99a['GlobalWorkerOptions']=_0x2d304b,_0x2d304b['workerPort']=null,_0x2d304b[_0x5e5b7b(0xe3)]='';},(_0x345abc,_0x445db5,_0x8a35ec)=>{'use strict';const _0x14b560=a0_0x160d;Object['defineProperty'](_0x445db5,_0x14b560(0x19a),{'value':!![]}),_0x445db5[_0x14b560(0x43f)]=void 0x0;var _0x2fe5c8=_0x8a35ec(0x1);const _0x16b598={'UNKNOWN':0x0,'DATA':0x1,'ERROR':0x2},_0x1b48ce={'UNKNOWN':0x0,'CANCEL':0x1,'CANCEL_COMPLETE':0x2,'CLOSE':0x3,'ENQUEUE':0x4,'ERROR':0x5,'PULL':0x6,'PULL_COMPLETE':0x7,'START_COMPLETE':0x8};function _0x357a64(_0x34d28a){const _0x299fb8=_0x14b560;!(_0x34d28a instanceof Error||typeof _0x34d28a===_0x299fb8(0x97b)&&_0x34d28a!==null)&&(0x0,_0x2fe5c8['unreachable'])('wrapReason:\x20Expected\x20\x22reason\x22\x20to\x20be\x20a\x20(possibly\x20cloned)\x20Error.');switch(_0x34d28a[_0x299fb8(0x499)]){case _0x299fb8(0x980):return new _0x2fe5c8[(_0x299fb8(0x980))](_0x34d28a[_0x299fb8(0x1bd)]);case _0x299fb8(0x5c5):return new _0x2fe5c8[(_0x299fb8(0x5c5))](_0x34d28a[_0x299fb8(0x1bd)]);case _0x299fb8(0x763):return new _0x2fe5c8['PasswordException'](_0x34d28a[_0x299fb8(0x1bd)],_0x34d28a[_0x299fb8(0x191)]);case _0x299fb8(0x90f):return new _0x2fe5c8[(_0x299fb8(0x90f))](_0x34d28a[_0x299fb8(0x1bd)],_0x34d28a[_0x299fb8(0x78b)]);case _0x299fb8(0x194):return new _0x2fe5c8[(_0x299fb8(0x194))](_0x34d28a['message'],_0x34d28a['details']);default:return new _0x2fe5c8[(_0x299fb8(0x194))](_0x34d28a[_0x299fb8(0x1bd)],_0x34d28a[_0x299fb8(0x83f)]());}}class _0x2eef8d{constructor(_0x27b571,_0x363edd,_0x29d3e6){const _0x1e15bd=_0x14b560;this['sourceName']=_0x27b571,this[_0x1e15bd(0x996)]=_0x363edd,this[_0x1e15bd(0x5a9)]=_0x29d3e6,this[_0x1e15bd(0x653)]=0x1,this['streamId']=0x1,this['streamSinks']=Object[_0x1e15bd(0x77c)](null),this['streamControllers']=Object['create'](null),this['callbackCapabilities']=Object['create'](null),this[_0x1e15bd(0x38a)]=Object['create'](null),this[_0x1e15bd(0x5ca)]=_0x58f948=>{const _0x54d38a=_0x1e15bd,_0x43912a=_0x58f948['data'];if(_0x43912a[_0x54d38a(0x996)]!==this[_0x54d38a(0x881)])return;if(_0x43912a[_0x54d38a(0x27e)]){this.#processStreamMessage(_0x43912a);return;}if(_0x43912a[_0x54d38a(0x35c)]){const _0x3aa942=_0x43912a[_0x54d38a(0x653)],_0x5305f9=this[_0x54d38a(0x7f2)][_0x3aa942];if(!_0x5305f9)throw new Error(_0x54d38a(0x12a)+_0x3aa942);delete this[_0x54d38a(0x7f2)][_0x3aa942];if(_0x43912a[_0x54d38a(0x35c)]===_0x16b598[_0x54d38a(0x7f4)])_0x5305f9[_0x54d38a(0x442)](_0x43912a['data']);else{if(_0x43912a[_0x54d38a(0x35c)]===_0x16b598[_0x54d38a(0x6fa)])_0x5305f9['reject'](_0x357a64(_0x43912a['reason']));else throw new Error(_0x54d38a(0x4f7));}return;}const _0x280685=this[_0x54d38a(0x38a)][_0x43912a[_0x54d38a(0x7c7)]];if(!_0x280685)throw new Error(_0x54d38a(0xf7)+_0x43912a['action']);if(_0x43912a[_0x54d38a(0x653)]){const _0x419669=this[_0x54d38a(0x881)],_0x44a931=_0x43912a[_0x54d38a(0x881)];new Promise(function(_0x4c3940){_0x4c3940(_0x280685(_0x43912a['data']));})[_0x54d38a(0x22d)](function(_0x1fc3bc){const _0xe8b486=_0x54d38a;_0x29d3e6[_0xe8b486(0x360)]({'sourceName':_0x419669,'targetName':_0x44a931,'callback':_0x16b598[_0xe8b486(0x7f4)],'callbackId':_0x43912a[_0xe8b486(0x653)],'data':_0x1fc3bc});},function(_0x193e11){const _0x2d6370=_0x54d38a;_0x29d3e6[_0x2d6370(0x360)]({'sourceName':_0x419669,'targetName':_0x44a931,'callback':_0x16b598[_0x2d6370(0x6fa)],'callbackId':_0x43912a[_0x2d6370(0x653)],'reason':_0x357a64(_0x193e11)});});return;}if(_0x43912a[_0x54d38a(0x916)]){this.#createStreamSink(_0x43912a);return;}_0x280685(_0x43912a[_0x54d38a(0x41b)]);},_0x29d3e6[_0x1e15bd(0x5cc)](_0x1e15bd(0x1bd),this[_0x1e15bd(0x5ca)]);}['on'](_0x227a2c,_0x5a48f7){const _0x504424=_0x14b560,_0x41279c=this[_0x504424(0x38a)];if(_0x41279c[_0x227a2c])throw new Error('There\x20is\x20already\x20an\x20actionName\x20called\x20\x22'+_0x227a2c+'\x22');_0x41279c[_0x227a2c]=_0x5a48f7;}[_0x14b560(0x3e0)](_0x393ec5,_0xda024,_0xe00d2f){const _0x3a8c10=_0x14b560;this['comObj']['postMessage']({'sourceName':this['sourceName'],'targetName':this[_0x3a8c10(0x996)],'action':_0x393ec5,'data':_0xda024},_0xe00d2f);}[_0x14b560(0x88c)](_0x40a5fe,_0x452237,_0x3d46d8){const _0x336b07=_0x14b560,_0x13ad50=this[_0x336b07(0x653)]++,_0x3460c5=new _0x2fe5c8[(_0x336b07(0x7e3))]();this['callbackCapabilities'][_0x13ad50]=_0x3460c5;try{this[_0x336b07(0x5a9)]['postMessage']({'sourceName':this[_0x336b07(0x881)],'targetName':this[_0x336b07(0x996)],'action':_0x40a5fe,'callbackId':_0x13ad50,'data':_0x452237},_0x3d46d8);}catch(_0x37c91f){_0x3460c5['reject'](_0x37c91f);}return _0x3460c5[_0x336b07(0x4dd)];}[_0x14b560(0x259)](_0x14aed8,_0x2df47e,_0xb2baf3,_0x1bdae9){const _0x2d1ed4=_0x14b560,_0x3b5c09=this[_0x2d1ed4(0x916)]++,_0x5d8c56=this[_0x2d1ed4(0x881)],_0x537542=this[_0x2d1ed4(0x996)],_0x419491=this['comObj'];return new ReadableStream({'start':_0x3e7522=>{const _0x3566fb=_0x2d1ed4,_0xaec88e=new _0x2fe5c8[(_0x3566fb(0x7e3))]();return this['streamControllers'][_0x3b5c09]={'controller':_0x3e7522,'startCall':_0xaec88e,'pullCall':null,'cancelCall':null,'isClosed':![]},_0x419491['postMessage']({'sourceName':_0x5d8c56,'targetName':_0x537542,'action':_0x14aed8,'streamId':_0x3b5c09,'data':_0x2df47e,'desiredSize':_0x3e7522[_0x3566fb(0x42d)]},_0x1bdae9),_0xaec88e['promise'];},'pull':_0x2d1f72=>{const _0x3eecd8=_0x2d1ed4,_0x5ef153=new _0x2fe5c8[(_0x3eecd8(0x7e3))]();return this[_0x3eecd8(0x9c5)][_0x3b5c09][_0x3eecd8(0x7f0)]=_0x5ef153,_0x419491[_0x3eecd8(0x360)]({'sourceName':_0x5d8c56,'targetName':_0x537542,'stream':_0x1b48ce['PULL'],'streamId':_0x3b5c09,'desiredSize':_0x2d1f72[_0x3eecd8(0x42d)]}),_0x5ef153[_0x3eecd8(0x4dd)];},'cancel':_0x2e03cb=>{const _0x1af5a9=_0x2d1ed4;(0x0,_0x2fe5c8['assert'])(_0x2e03cb instanceof Error,'cancel\x20must\x20have\x20a\x20valid\x20reason');const _0x332559=new _0x2fe5c8[(_0x1af5a9(0x7e3))]();return this['streamControllers'][_0x3b5c09][_0x1af5a9(0x7c6)]=_0x332559,this['streamControllers'][_0x3b5c09][_0x1af5a9(0x184)]=!![],_0x419491['postMessage']({'sourceName':_0x5d8c56,'targetName':_0x537542,'stream':_0x1b48ce[_0x1af5a9(0x2d9)],'streamId':_0x3b5c09,'reason':_0x357a64(_0x2e03cb)}),_0x332559['promise'];}},_0xb2baf3);}#createStreamSink(_0x37453a){const _0x5c7875=_0x14b560,_0x430aa1=_0x37453a[_0x5c7875(0x916)],_0x549d31=this[_0x5c7875(0x881)],_0x1ae3dd=_0x37453a[_0x5c7875(0x881)],_0x5bae0c=this[_0x5c7875(0x5a9)],_0xc919c4=this,_0x4c914c=this[_0x5c7875(0x38a)][_0x37453a['action']],_0x4e33d4={'enqueue'(_0x5247c9){const _0x2e3158=_0x5c7875;let _0x7f4bea=arguments['length']>0x1&&arguments[0x1]!==undefined?arguments[0x1]:0x1,_0x16fd47=arguments[_0x2e3158(0x557)]>0x2?arguments[0x2]:undefined;if(this[_0x2e3158(0x331)])return;const _0x4b8b8c=this[_0x2e3158(0x42d)];this[_0x2e3158(0x42d)]-=_0x7f4bea,_0x4b8b8c>0x0&&this[_0x2e3158(0x42d)]<=0x0&&(this[_0x2e3158(0x2f6)]=new _0x2fe5c8['PromiseCapability'](),this['ready']=this[_0x2e3158(0x2f6)]['promise']),_0x5bae0c[_0x2e3158(0x360)]({'sourceName':_0x549d31,'targetName':_0x1ae3dd,'stream':_0x1b48ce[_0x2e3158(0x4d8)],'streamId':_0x430aa1,'chunk':_0x5247c9},_0x16fd47);},'close'(){const _0x5cbd79=_0x5c7875;if(this[_0x5cbd79(0x331)])return;this['isCancelled']=!![],_0x5bae0c['postMessage']({'sourceName':_0x549d31,'targetName':_0x1ae3dd,'stream':_0x1b48ce['CLOSE'],'streamId':_0x430aa1}),delete _0xc919c4[_0x5cbd79(0x691)][_0x430aa1];},'error'(_0x21a7c9){const _0xdf6e7a=_0x5c7875;(0x0,_0x2fe5c8[_0xdf6e7a(0x63a)])(_0x21a7c9 instanceof Error,'error\x20must\x20have\x20a\x20valid\x20reason');if(this[_0xdf6e7a(0x331)])return;this[_0xdf6e7a(0x331)]=!![],_0x5bae0c['postMessage']({'sourceName':_0x549d31,'targetName':_0x1ae3dd,'stream':_0x1b48ce['ERROR'],'streamId':_0x430aa1,'reason':_0x357a64(_0x21a7c9)});},'sinkCapability':new _0x2fe5c8[(_0x5c7875(0x7e3))](),'onPull':null,'onCancel':null,'isCancelled':![],'desiredSize':_0x37453a[_0x5c7875(0x42d)],'ready':null};_0x4e33d4[_0x5c7875(0x2f6)][_0x5c7875(0x442)](),_0x4e33d4[_0x5c7875(0x2e5)]=_0x4e33d4[_0x5c7875(0x2f6)][_0x5c7875(0x4dd)],this['streamSinks'][_0x430aa1]=_0x4e33d4,new Promise(function(_0x2389fd){const _0x3108d4=_0x5c7875;_0x2389fd(_0x4c914c(_0x37453a[_0x3108d4(0x41b)],_0x4e33d4));})['then'](function(){const _0x5b0d6a=_0x5c7875;_0x5bae0c[_0x5b0d6a(0x360)]({'sourceName':_0x549d31,'targetName':_0x1ae3dd,'stream':_0x1b48ce[_0x5b0d6a(0x7b6)],'streamId':_0x430aa1,'success':!![]});},function(_0x5cca68){const _0x574d41=_0x5c7875;_0x5bae0c[_0x574d41(0x360)]({'sourceName':_0x549d31,'targetName':_0x1ae3dd,'stream':_0x1b48ce[_0x574d41(0x7b6)],'streamId':_0x430aa1,'reason':_0x357a64(_0x5cca68)});});}#processStreamMessage(_0x2f0239){const _0x5c4ba5=_0x14b560,_0x388ef6=_0x2f0239[_0x5c4ba5(0x916)],_0x3af3ae=this[_0x5c4ba5(0x881)],_0x5968ea=_0x2f0239[_0x5c4ba5(0x881)],_0x1db552=this[_0x5c4ba5(0x5a9)],_0x1a81cc=this['streamControllers'][_0x388ef6],_0x3f2ec6=this[_0x5c4ba5(0x691)][_0x388ef6];switch(_0x2f0239['stream']){case _0x1b48ce[_0x5c4ba5(0x7b6)]:_0x2f0239[_0x5c4ba5(0x165)]?_0x1a81cc['startCall']['resolve']():_0x1a81cc[_0x5c4ba5(0x1e8)][_0x5c4ba5(0x282)](_0x357a64(_0x2f0239['reason']));break;case _0x1b48ce['PULL_COMPLETE']:_0x2f0239[_0x5c4ba5(0x165)]?_0x1a81cc[_0x5c4ba5(0x7f0)][_0x5c4ba5(0x442)]():_0x1a81cc[_0x5c4ba5(0x7f0)]['reject'](_0x357a64(_0x2f0239[_0x5c4ba5(0x79b)]));break;case _0x1b48ce[_0x5c4ba5(0x185)]:if(!_0x3f2ec6){_0x1db552[_0x5c4ba5(0x360)]({'sourceName':_0x3af3ae,'targetName':_0x5968ea,'stream':_0x1b48ce[_0x5c4ba5(0x822)],'streamId':_0x388ef6,'success':!![]});break;}_0x3f2ec6[_0x5c4ba5(0x42d)]<=0x0&&_0x2f0239['desiredSize']>0x0&&_0x3f2ec6[_0x5c4ba5(0x2f6)]['resolve']();_0x3f2ec6[_0x5c4ba5(0x42d)]=_0x2f0239[_0x5c4ba5(0x42d)],new Promise(function(_0x2cf35e){const _0x111687=_0x5c4ba5;_0x2cf35e(_0x3f2ec6[_0x111687(0x94e)]?.());})[_0x5c4ba5(0x22d)](function(){const _0x30e416=_0x5c4ba5;_0x1db552[_0x30e416(0x360)]({'sourceName':_0x3af3ae,'targetName':_0x5968ea,'stream':_0x1b48ce[_0x30e416(0x822)],'streamId':_0x388ef6,'success':!![]});},function(_0x41e4cc){const _0x25ff96=_0x5c4ba5;_0x1db552[_0x25ff96(0x360)]({'sourceName':_0x3af3ae,'targetName':_0x5968ea,'stream':_0x1b48ce[_0x25ff96(0x822)],'streamId':_0x388ef6,'reason':_0x357a64(_0x41e4cc)});});break;case _0x1b48ce[_0x5c4ba5(0x4d8)]:(0x0,_0x2fe5c8[_0x5c4ba5(0x63a)])(_0x1a81cc,_0x5c4ba5(0x166));if(_0x1a81cc[_0x5c4ba5(0x184)])break;_0x1a81cc[_0x5c4ba5(0x6eb)]['enqueue'](_0x2f0239[_0x5c4ba5(0x1dd)]);break;case _0x1b48ce[_0x5c4ba5(0x44b)]:(0x0,_0x2fe5c8['assert'])(_0x1a81cc,_0x5c4ba5(0x33c));if(_0x1a81cc[_0x5c4ba5(0x184)])break;_0x1a81cc[_0x5c4ba5(0x184)]=!![],_0x1a81cc[_0x5c4ba5(0x6eb)][_0x5c4ba5(0x70e)](),this.#deleteStreamController(_0x1a81cc,_0x388ef6);break;case _0x1b48ce[_0x5c4ba5(0x6fa)]:(0x0,_0x2fe5c8[_0x5c4ba5(0x63a)])(_0x1a81cc,_0x5c4ba5(0x2c2)),_0x1a81cc[_0x5c4ba5(0x6eb)][_0x5c4ba5(0x9e3)](_0x357a64(_0x2f0239[_0x5c4ba5(0x79b)])),this.#deleteStreamController(_0x1a81cc,_0x388ef6);break;case _0x1b48ce[_0x5c4ba5(0xf8)]:_0x2f0239[_0x5c4ba5(0x165)]?_0x1a81cc['cancelCall'][_0x5c4ba5(0x442)]():_0x1a81cc[_0x5c4ba5(0x7c6)][_0x5c4ba5(0x282)](_0x357a64(_0x2f0239[_0x5c4ba5(0x79b)]));this.#deleteStreamController(_0x1a81cc,_0x388ef6);break;case _0x1b48ce[_0x5c4ba5(0x2d9)]:if(!_0x3f2ec6)break;new Promise(function(_0x3d8200){const _0x517a5a=_0x5c4ba5;_0x3d8200(_0x3f2ec6[_0x517a5a(0x19d)]?.(_0x357a64(_0x2f0239[_0x517a5a(0x79b)])));})[_0x5c4ba5(0x22d)](function(){const _0x48e6f9=_0x5c4ba5;_0x1db552[_0x48e6f9(0x360)]({'sourceName':_0x3af3ae,'targetName':_0x5968ea,'stream':_0x1b48ce[_0x48e6f9(0xf8)],'streamId':_0x388ef6,'success':!![]});},function(_0xc82ce){const _0x2e6030=_0x5c4ba5;_0x1db552[_0x2e6030(0x360)]({'sourceName':_0x3af3ae,'targetName':_0x5968ea,'stream':_0x1b48ce[_0x2e6030(0xf8)],'streamId':_0x388ef6,'reason':_0x357a64(_0xc82ce)});}),_0x3f2ec6[_0x5c4ba5(0x2f6)][_0x5c4ba5(0x282)](_0x357a64(_0x2f0239['reason'])),_0x3f2ec6['isCancelled']=!![],delete this[_0x5c4ba5(0x691)][_0x388ef6];break;default:throw new Error(_0x5c4ba5(0x30a));}}async #deleteStreamController(_0x4ae21d,_0x38f1aa){const _0x56ff43=_0x14b560;await Promise[_0x56ff43(0x4d5)]([_0x4ae21d[_0x56ff43(0x1e8)]?.[_0x56ff43(0x4dd)],_0x4ae21d[_0x56ff43(0x7f0)]?.[_0x56ff43(0x4dd)],_0x4ae21d[_0x56ff43(0x7c6)]?.[_0x56ff43(0x4dd)]]),delete this[_0x56ff43(0x9c5)][_0x38f1aa];}[_0x14b560(0x256)](){const _0x4c74f8=_0x14b560;this['comObj'][_0x4c74f8(0x1c0)]('message',this[_0x4c74f8(0x5ca)]);}}_0x445db5['MessageHandler']=_0x2eef8d;},(_0x16a602,_0x515c3a,_0xc1b164)=>{'use strict';const _0x3b630b=a0_0x160d;Object[_0x3b630b(0x430)](_0x515c3a,_0x3b630b(0x19a),{'value':!![]}),_0x515c3a['Metadata']=void 0x0;var _0x43a157=_0xc1b164(0x1);class _0x2c5c8d{#metadataMap;#data;constructor(_0x3367b8){let {parsedData:_0x1109e6,rawData:_0x296670}=_0x3367b8;this.#metadataMap=_0x1109e6,this.#data=_0x296670;}[_0x3b630b(0x468)](){return this.#data;}[_0x3b630b(0x8c4)](_0x38aa36){const _0x577a34=_0x3b630b;return this.#metadataMap[_0x577a34(0x8c4)](_0x38aa36)??null;}['getAll'](){const _0x22a380=_0x3b630b;return(0x0,_0x43a157[_0x22a380(0x267)])(this.#metadataMap);}[_0x3b630b(0x373)](_0x3c401f){const _0x1257ba=_0x3b630b;return this.#metadataMap[_0x1257ba(0x373)](_0x3c401f);}}_0x515c3a[_0x3b630b(0x6a2)]=_0x2c5c8d;},(_0x41f171,_0x3ed05b,_0x24da5f)=>{'use strict';const _0x5b98c5=a0_0x160d;Object['defineProperty'](_0x3ed05b,_0x5b98c5(0x19a),{'value':!![]}),_0x3ed05b[_0x5b98c5(0x68d)]=void 0x0;var _0x2e1fea=_0x24da5f(0x1),_0x4a2765=_0x24da5f(0x89);const _0x4720b4=Symbol(_0x5b98c5(0x8b7));class _0x425e4b{#visible=!![];constructor(_0x47ddfc,_0x1e0a26){const _0xc0bf22=_0x5b98c5;this[_0xc0bf22(0x499)]=_0x47ddfc,this[_0xc0bf22(0x9a5)]=_0x1e0a26;}get[_0x5b98c5(0x6cd)](){return this.#visible;}[_0x5b98c5(0x9cc)](_0x2b667c,_0x2b9744){const _0x5a2b43=_0x5b98c5;_0x2b667c!==_0x4720b4&&(0x0,_0x2e1fea[_0x5a2b43(0x749)])('Internal\x20method\x20`_setVisible`\x20called.'),this.#visible=_0x2b9744;}}class _0x4db1a0{#cachedGetHash=null;#groups=new Map();#initialHash=null;#order=null;constructor(_0x47cf0c){const _0x1b7c5b=_0x5b98c5;this[_0x1b7c5b(0x499)]=null,this[_0x1b7c5b(0x5c3)]=null;if(_0x47cf0c===null)return;this[_0x1b7c5b(0x499)]=_0x47cf0c[_0x1b7c5b(0x499)],this[_0x1b7c5b(0x5c3)]=_0x47cf0c[_0x1b7c5b(0x5c3)],this.#order=_0x47cf0c[_0x1b7c5b(0x820)];for(const _0x211df6 of _0x47cf0c[_0x1b7c5b(0x32d)]){this.#groups[_0x1b7c5b(0x98e)](_0x211df6['id'],new _0x425e4b(_0x211df6[_0x1b7c5b(0x499)],_0x211df6[_0x1b7c5b(0x9a5)]));}if(_0x47cf0c['baseState']===_0x1b7c5b(0x17d))for(const _0x2b748d of this.#groups[_0x1b7c5b(0x823)]()){_0x2b748d[_0x1b7c5b(0x9cc)](_0x4720b4,![]);}for(const _0x34d921 of _0x47cf0c['on']){this.#groups[_0x1b7c5b(0x8c4)](_0x34d921)[_0x1b7c5b(0x9cc)](_0x4720b4,!![]);}for(const _0x2e27e7 of _0x47cf0c[_0x1b7c5b(0x861)]){this.#groups[_0x1b7c5b(0x8c4)](_0x2e27e7)[_0x1b7c5b(0x9cc)](_0x4720b4,![]);}this.#initialHash=this[_0x1b7c5b(0x3d8)]();}#evaluateVisibilityExpression(_0x32b848){const _0x27ed27=_0x5b98c5,_0x581a43=_0x32b848[_0x27ed27(0x557)];if(_0x581a43<0x2)return!![];const _0x3da1c9=_0x32b848[0x0];for(let _0x170378=0x1;_0x170378<_0x581a43;_0x170378++){const _0x4878b8=_0x32b848[_0x170378];let _0x1966dc;if(Array[_0x27ed27(0x419)](_0x4878b8))_0x1966dc=this.#evaluateVisibilityExpression(_0x4878b8);else{if(this.#groups[_0x27ed27(0x373)](_0x4878b8))_0x1966dc=this.#groups[_0x27ed27(0x8c4)](_0x4878b8)[_0x27ed27(0x6cd)];else return(0x0,_0x2e1fea[_0x27ed27(0x472)])(_0x27ed27(0x95f)+_0x4878b8),!![];}switch(_0x3da1c9){case'And':if(!_0x1966dc)return![];break;case'Or':if(_0x1966dc)return!![];break;case _0x27ed27(0x524):return!_0x1966dc;default:return!![];}}return _0x3da1c9==='And';}['isVisible'](_0xa5cd00){const _0x37bc26=_0x5b98c5;if(this.#groups[_0x37bc26(0x87a)]===0x0)return!![];if(!_0xa5cd00)return(0x0,_0x2e1fea['warn'])('Optional\x20content\x20group\x20not\x20defined.'),!![];if(_0xa5cd00[_0x37bc26(0x9fd)]===_0x37bc26(0x1f9)){if(!this.#groups[_0x37bc26(0x373)](_0xa5cd00['id']))return(0x0,_0x2e1fea[_0x37bc26(0x472)])('Optional\x20content\x20group\x20not\x20found:\x20'+_0xa5cd00['id']),!![];return this.#groups[_0x37bc26(0x8c4)](_0xa5cd00['id'])[_0x37bc26(0x6cd)];}else{if(_0xa5cd00[_0x37bc26(0x9fd)]===_0x37bc26(0x6fd)){if(_0xa5cd00['expression'])return this.#evaluateVisibilityExpression(_0xa5cd00[_0x37bc26(0x87d)]);if(!_0xa5cd00[_0x37bc26(0x1e7)]||_0xa5cd00[_0x37bc26(0x1e7)]===_0x37bc26(0x796)){for(const _0x5946ab of _0xa5cd00[_0x37bc26(0x63c)]){if(!this.#groups[_0x37bc26(0x373)](_0x5946ab))return(0x0,_0x2e1fea[_0x37bc26(0x472)])('Optional\x20content\x20group\x20not\x20found:\x20'+_0x5946ab),!![];if(this.#groups[_0x37bc26(0x8c4)](_0x5946ab)[_0x37bc26(0x6cd)])return!![];}return![];}else{if(_0xa5cd00[_0x37bc26(0x1e7)]===_0x37bc26(0xd1)){for(const _0x100e82 of _0xa5cd00['ids']){if(!this.#groups[_0x37bc26(0x373)](_0x100e82))return(0x0,_0x2e1fea[_0x37bc26(0x472)])(_0x37bc26(0x95f)+_0x100e82),!![];if(!this.#groups[_0x37bc26(0x8c4)](_0x100e82)[_0x37bc26(0x6cd)])return![];}return!![];}else{if(_0xa5cd00[_0x37bc26(0x1e7)]===_0x37bc26(0x744)){for(const _0xdf92b2 of _0xa5cd00['ids']){if(!this.#groups[_0x37bc26(0x373)](_0xdf92b2))return(0x0,_0x2e1fea[_0x37bc26(0x472)])('Optional\x20content\x20group\x20not\x20found:\x20'+_0xdf92b2),!![];if(!this.#groups[_0x37bc26(0x8c4)](_0xdf92b2)[_0x37bc26(0x6cd)])return!![];}return![];}else{if(_0xa5cd00['policy']===_0x37bc26(0x3bd)){for(const _0x492ebd of _0xa5cd00[_0x37bc26(0x63c)]){if(!this.#groups[_0x37bc26(0x373)](_0x492ebd))return(0x0,_0x2e1fea[_0x37bc26(0x472)])(_0x37bc26(0x95f)+_0x492ebd),!![];if(this.#groups[_0x37bc26(0x8c4)](_0x492ebd)[_0x37bc26(0x6cd)])return![];}return!![];}}}}return(0x0,_0x2e1fea[_0x37bc26(0x472)])(_0x37bc26(0x742)+_0xa5cd00[_0x37bc26(0x1e7)]+'.'),!![];}}return(0x0,_0x2e1fea[_0x37bc26(0x472)])(_0x37bc26(0x26a)+_0xa5cd00['type']+'.'),!![];}[_0x5b98c5(0x172)](_0x6fee02){const _0x2db44f=_0x5b98c5;let _0x3c4e78=arguments[_0x2db44f(0x557)]>0x1&&arguments[0x1]!==undefined?arguments[0x1]:!![];if(!this.#groups['has'](_0x6fee02)){(0x0,_0x2e1fea[_0x2db44f(0x472)])(_0x2db44f(0x95f)+_0x6fee02);return;}this.#groups[_0x2db44f(0x8c4)](_0x6fee02)[_0x2db44f(0x9cc)](_0x4720b4,!!_0x3c4e78),this.#cachedGetHash=null;}get[_0x5b98c5(0x64f)](){const _0xb952f1=_0x5b98c5;return this[_0xb952f1(0x3d8)]()===this.#initialHash;}[_0x5b98c5(0x966)](){const _0x2f401e=_0x5b98c5;if(!this.#groups[_0x2f401e(0x87a)])return null;if(this.#order)return this.#order[_0x2f401e(0x80c)]();return[...this.#groups[_0x2f401e(0x30e)]()];}[_0x5b98c5(0x8d2)](){const _0x2822d3=_0x5b98c5;return this.#groups['size']>0x0?(0x0,_0x2e1fea[_0x2822d3(0x267)])(this.#groups):null;}[_0x5b98c5(0x886)](_0x334019){return this.#groups['get'](_0x334019)||null;}[_0x5b98c5(0x3d8)](){const _0x3050e0=_0x5b98c5;if(this.#cachedGetHash!==null)return this.#cachedGetHash;const _0x109e12=new _0x4a2765[(_0x3050e0(0x54d))]();for(const [_0x4cb6b3,_0x268f89]of this.#groups){_0x109e12[_0x3050e0(0x1b4)](_0x4cb6b3+':'+_0x268f89['visible']);}return this.#cachedGetHash=_0x109e12[_0x3050e0(0x1fa)]();}}_0x3ed05b[_0x5b98c5(0x68d)]=_0x4db1a0;},(_0x4709dc,_0x3770b8,_0x19693a)=>{'use strict';const _0x4149d5=a0_0x160d;Object[_0x4149d5(0x430)](_0x3770b8,_0x4149d5(0x19a),{'value':!![]}),_0x3770b8['PDFDataTransportStream']=void 0x0;var _0x1bae1c=_0x19693a(0x1),_0x8ca085=_0x19693a(0x87);class _0x3a5c07{constructor(_0x22aa48,_0xfa864d){const _0x152dc1=_0x4149d5;let {length:_0x2054c1,initialData:_0x517292,progressiveDone:progressiveDone=![],contentDispositionFilename:contentDispositionFilename=null,disableRange:disableRange=![],disableStream:disableStream=![]}=_0x22aa48;(0x0,_0x1bae1c['assert'])(_0xfa864d,_0x152dc1(0x891)),this['_queuedChunks']=[],this[_0x152dc1(0x5c1)]=progressiveDone,this[_0x152dc1(0x534)]=contentDispositionFilename;if(_0x517292?.[_0x152dc1(0x557)]>0x0){const _0x454519=_0x517292 instanceof Uint8Array&&_0x517292['byteLength']===_0x517292[_0x152dc1(0x948)]['byteLength']?_0x517292[_0x152dc1(0x948)]:new Uint8Array(_0x517292)['buffer'];this[_0x152dc1(0xe9)][_0x152dc1(0x7d6)](_0x454519);}this[_0x152dc1(0x85f)]=_0xfa864d,this[_0x152dc1(0x6f5)]=!disableStream,this[_0x152dc1(0x9c7)]=!disableRange,this[_0x152dc1(0x8bc)]=_0x2054c1,this[_0x152dc1(0x30c)]=null,this[_0x152dc1(0xec)]=[],this[_0x152dc1(0x85f)]['addRangeListener']((_0x564302,_0x286a7)=>{const _0x3c4d72=_0x152dc1;this[_0x3c4d72(0x71b)]({'begin':_0x564302,'chunk':_0x286a7});}),this[_0x152dc1(0x85f)][_0x152dc1(0x7db)]((_0x5a78f2,_0x2096f0)=>{const _0x50dafe=_0x152dc1;this[_0x50dafe(0x4d7)]({'loaded':_0x5a78f2,'total':_0x2096f0});}),this['_pdfDataRangeTransport'][_0x152dc1(0x236)](_0x5dbe00=>{const _0x17419c=_0x152dc1;this[_0x17419c(0x71b)]({'chunk':_0x5dbe00});}),this[_0x152dc1(0x85f)][_0x152dc1(0x955)](()=>{const _0x121944=_0x152dc1;this[_0x121944(0x1b3)]();}),this[_0x152dc1(0x85f)][_0x152dc1(0x1ba)]();}[_0x4149d5(0x71b)](_0x3f6a43){const _0x3d8e51=_0x4149d5;let {begin:_0x4a170c,chunk:_0x3e6404}=_0x3f6a43;const _0x5d82a5=_0x3e6404 instanceof Uint8Array&&_0x3e6404['byteLength']===_0x3e6404[_0x3d8e51(0x948)][_0x3d8e51(0x110)]?_0x3e6404[_0x3d8e51(0x948)]:new Uint8Array(_0x3e6404)[_0x3d8e51(0x948)];if(_0x4a170c===undefined)this[_0x3d8e51(0x30c)]?this[_0x3d8e51(0x30c)]['_enqueue'](_0x5d82a5):this[_0x3d8e51(0xe9)]['push'](_0x5d82a5);else{const _0xb13c8=this[_0x3d8e51(0xec)][_0x3d8e51(0x82e)](function(_0x421928){if(_0x421928['_begin']!==_0x4a170c)return![];return _0x421928['_enqueue'](_0x5d82a5),!![];});(0x0,_0x1bae1c[_0x3d8e51(0x63a)])(_0xb13c8,_0x3d8e51(0x1d1));}}get['_progressiveDataLength'](){const _0x5e9118=_0x4149d5;return this[_0x5e9118(0x30c)]?.[_0x5e9118(0xc7)]??0x0;}[_0x4149d5(0x4d7)](_0x16ee8e){const _0x2aa013=_0x4149d5;_0x16ee8e[_0x2aa013(0x2d4)]===undefined?this[_0x2aa013(0xec)][0x0]?.[_0x2aa013(0x3bf)]?.({'loaded':_0x16ee8e[_0x2aa013(0x19f)]}):this['_fullRequestReader']?.['onProgress']?.({'loaded':_0x16ee8e[_0x2aa013(0x19f)],'total':_0x16ee8e[_0x2aa013(0x2d4)]});}['_onProgressiveDone'](){const _0x3366e4=_0x4149d5;this[_0x3366e4(0x30c)]?.[_0x3366e4(0x16b)](),this[_0x3366e4(0x5c1)]=!![];}[_0x4149d5(0x483)](_0x30ed2e){const _0x5d4564=_0x4149d5,_0x218393=this['_rangeReaders'][_0x5d4564(0x82c)](_0x30ed2e);_0x218393>=0x0&&this[_0x5d4564(0xec)]['splice'](_0x218393,0x1);}[_0x4149d5(0x50a)](){const _0x3279b6=_0x4149d5;(0x0,_0x1bae1c[_0x3279b6(0x63a)])(!this[_0x3279b6(0x30c)],_0x3279b6(0x2f8));const _0x471180=this['_queuedChunks'];return this[_0x3279b6(0xe9)]=null,new _0x1e3e39(this,_0x471180,this[_0x3279b6(0x5c1)],this[_0x3279b6(0x534)]);}[_0x4149d5(0x7d3)](_0xe0174,_0x2c36d2){const _0x1be7ed=_0x4149d5;if(_0x2c36d2<=this['_progressiveDataLength'])return null;const _0x4506ad=new _0x870273(this,_0xe0174,_0x2c36d2);return this[_0x1be7ed(0x85f)][_0x1be7ed(0x226)](_0xe0174,_0x2c36d2),this['_rangeReaders'][_0x1be7ed(0x7d6)](_0x4506ad),_0x4506ad;}[_0x4149d5(0x8a8)](_0x420159){const _0x3d4ef2=_0x4149d5;this[_0x3d4ef2(0x30c)]?.[_0x3d4ef2(0x8c6)](_0x420159);for(const _0x20589d of this[_0x3d4ef2(0xec)][_0x3d4ef2(0x80c)](0x0)){_0x20589d[_0x3d4ef2(0x8c6)](_0x420159);}this['_pdfDataRangeTransport'][_0x3d4ef2(0x304)]();}}_0x3770b8[_0x4149d5(0x939)]=_0x3a5c07;class _0x1e3e39{constructor(_0x465e56,_0x5a7913){const _0x54dead=_0x4149d5;let _0x19975b=arguments[_0x54dead(0x557)]>0x2&&arguments[0x2]!==undefined?arguments[0x2]:![],_0x15c241=arguments[_0x54dead(0x557)]>0x3&&arguments[0x3]!==undefined?arguments[0x3]:null;this[_0x54dead(0x2a3)]=_0x465e56,this[_0x54dead(0x51a)]=_0x19975b||![],this[_0x54dead(0x2ec)]=(0x0,_0x8ca085[_0x54dead(0x2f4)])(_0x15c241)?_0x15c241:null,this[_0x54dead(0xe9)]=_0x5a7913||[],this[_0x54dead(0xc7)]=0x0;for(const _0x315a9d of this[_0x54dead(0xe9)]){this['_loaded']+=_0x315a9d[_0x54dead(0x110)];}this[_0x54dead(0x104)]=[],this[_0x54dead(0x251)]=Promise[_0x54dead(0x442)](),_0x465e56[_0x54dead(0x30c)]=this,this['onProgress']=null;}['_enqueue'](_0x1b1437){const _0x196ae1=_0x4149d5;if(this[_0x196ae1(0x51a)])return;if(this[_0x196ae1(0x104)]['length']>0x0){const _0x1df1d7=this[_0x196ae1(0x104)][_0x196ae1(0x84f)]();_0x1df1d7['resolve']({'value':_0x1b1437,'done':![]});}else this[_0x196ae1(0xe9)][_0x196ae1(0x7d6)](_0x1b1437);this[_0x196ae1(0xc7)]+=_0x1b1437[_0x196ae1(0x110)];}get[_0x4149d5(0x6f2)](){return this['_headersReady'];}get[_0x4149d5(0x5cf)](){const _0x141d01=_0x4149d5;return this[_0x141d01(0x2ec)];}get[_0x4149d5(0x7b9)](){const _0x110dfa=_0x4149d5;return this[_0x110dfa(0x2a3)][_0x110dfa(0x9c7)];}get['isStreamingSupported'](){const _0x7f46b=_0x4149d5;return this[_0x7f46b(0x2a3)][_0x7f46b(0x6f5)];}get[_0x4149d5(0x434)](){const _0x1265f3=_0x4149d5;return this['_stream'][_0x1265f3(0x8bc)];}async['read'](){const _0x55ae0b=_0x4149d5;if(this[_0x55ae0b(0xe9)][_0x55ae0b(0x557)]>0x0){const _0x1b96f5=this['_queuedChunks'][_0x55ae0b(0x84f)]();return{'value':_0x1b96f5,'done':![]};}if(this['_done'])return{'value':undefined,'done':!![]};const _0x226ae0=new _0x1bae1c['PromiseCapability']();return this['_requests'][_0x55ae0b(0x7d6)](_0x226ae0),_0x226ae0[_0x55ae0b(0x4dd)];}[_0x4149d5(0x8c6)](_0x52134b){const _0x560034=_0x4149d5;this['_done']=!![];for(const _0x3e4690 of this[_0x560034(0x104)]){_0x3e4690['resolve']({'value':undefined,'done':!![]});}this[_0x560034(0x104)][_0x560034(0x557)]=0x0;}['progressiveDone'](){const _0x42ca05=_0x4149d5;if(this['_done'])return;this[_0x42ca05(0x51a)]=!![];}}class _0x870273{constructor(_0x66dbd5,_0x48e6e4,_0x497f17){const _0x1f2dc7=_0x4149d5;this[_0x1f2dc7(0x2a3)]=_0x66dbd5,this[_0x1f2dc7(0x55f)]=_0x48e6e4,this[_0x1f2dc7(0x1f8)]=_0x497f17,this['_queuedChunk']=null,this[_0x1f2dc7(0x104)]=[],this[_0x1f2dc7(0x51a)]=![],this['onProgress']=null;}[_0x4149d5(0x291)](_0x24c1bb){const _0x3a95aa=_0x4149d5;if(this[_0x3a95aa(0x51a)])return;if(this[_0x3a95aa(0x104)][_0x3a95aa(0x557)]===0x0)this[_0x3a95aa(0x137)]=_0x24c1bb;else{const _0x779945=this[_0x3a95aa(0x104)][_0x3a95aa(0x84f)]();_0x779945[_0x3a95aa(0x442)]({'value':_0x24c1bb,'done':![]});for(const _0xc4ed14 of this[_0x3a95aa(0x104)]){_0xc4ed14[_0x3a95aa(0x442)]({'value':undefined,'done':!![]});}this[_0x3a95aa(0x104)][_0x3a95aa(0x557)]=0x0;}this['_done']=!![],this[_0x3a95aa(0x2a3)][_0x3a95aa(0x483)](this);}get[_0x4149d5(0x913)](){return![];}async['read'](){const _0x17e243=_0x4149d5;if(this['_queuedChunk']){const _0x172038=this['_queuedChunk'];return this['_queuedChunk']=null,{'value':_0x172038,'done':![]};}if(this['_done'])return{'value':undefined,'done':!![]};const _0x3146d3=new _0x1bae1c[(_0x17e243(0x7e3))]();return this[_0x17e243(0x104)][_0x17e243(0x7d6)](_0x3146d3),_0x3146d3[_0x17e243(0x4dd)];}[_0x4149d5(0x8c6)](_0x1817e3){const _0x5d38b4=_0x4149d5;this['_done']=!![];for(const _0x1ed5e4 of this[_0x5d38b4(0x104)]){_0x1ed5e4[_0x5d38b4(0x442)]({'value':undefined,'done':!![]});}this[_0x5d38b4(0x104)][_0x5d38b4(0x557)]=0x0,this[_0x5d38b4(0x2a3)][_0x5d38b4(0x483)](this);}}},(_0x8ad9f4,_0x2ebfac)=>{'use strict';const _0x35d8ee=a0_0x160d;Object[_0x35d8ee(0x430)](_0x2ebfac,'__esModule',{'value':!![]}),_0x2ebfac[_0x35d8ee(0x205)]=void 0x0;class _0x5c6ea4{static[_0x35d8ee(0x8a9)](_0x14483b){const _0x2ab469=_0x35d8ee,_0x4d9822=[],_0x582257={'items':_0x4d9822,'styles':Object[_0x2ab469(0x77c)](null)};function _0x5de18b(_0x169328){const _0x264f1e=_0x2ab469;if(!_0x169328)return;let _0x7ccb82=null;const _0x496097=_0x169328[_0x264f1e(0x499)];if(_0x496097===_0x264f1e(0x807))_0x7ccb82=_0x169328[_0x264f1e(0x2b8)];else{if(!_0x5c6ea4[_0x264f1e(0x88e)](_0x496097))return;else{if(_0x169328?.[_0x264f1e(0x6ec)]?.[_0x264f1e(0x8a9)])_0x7ccb82=_0x169328[_0x264f1e(0x6ec)][_0x264f1e(0x8a9)];else _0x169328[_0x264f1e(0x2b8)]&&(_0x7ccb82=_0x169328[_0x264f1e(0x2b8)]);}}_0x7ccb82!==null&&_0x4d9822[_0x264f1e(0x7d6)]({'str':_0x7ccb82});if(!_0x169328[_0x264f1e(0x6be)])return;for(const _0x1e30d3 of _0x169328[_0x264f1e(0x6be)]){_0x5de18b(_0x1e30d3);}}return _0x5de18b(_0x14483b),_0x582257;}static[_0x35d8ee(0x88e)](_0x549507){const _0x3c8da7=_0x35d8ee;return!(_0x549507===_0x3c8da7(0x3f2)||_0x549507===_0x3c8da7(0x3e6)||_0x549507===_0x3c8da7(0x131)||_0x549507===_0x3c8da7(0x243));}}_0x2ebfac[_0x35d8ee(0x205)]=_0x5c6ea4;},(_0x30a4f2,_0x6e1895,_0x35ec53)=>{'use strict';const _0x4ff4be=a0_0x160d;Object[_0x4ff4be(0x430)](_0x6e1895,'__esModule',{'value':!![]}),_0x6e1895[_0x4ff4be(0x666)]=_0x6e1895[_0x4ff4be(0x77e)]=_0x6e1895[_0x4ff4be(0x6b9)]=_0x6e1895[_0x4ff4be(0x34f)]=void 0x0;var _0x1c664d=_0x35ec53(0x88);;const _0x543586=function(_0x5ceec1){return new Promise((_0x2eaa5b,_0x58eb85)=>{const _0x5e5ab8=a0_0x160d,_0x16cb24=require('fs');_0x16cb24[_0x5e5ab8(0x9e0)](_0x5ceec1,(_0x483bcf,_0x20da2d)=>{if(_0x483bcf||!_0x20da2d){_0x58eb85(new Error(_0x483bcf));return;}_0x2eaa5b(new Uint8Array(_0x20da2d));});});};class _0xf95aa3 extends _0x1c664d[_0x4ff4be(0x6cb)]{}_0x6e1895[_0x4ff4be(0x77e)]=_0xf95aa3;class _0x19dc23 extends _0x1c664d['BaseCanvasFactory']{[_0x4ff4be(0x8da)](_0x3cabf4,_0x5c2a42){const _0x267325=require('canvas');return _0x267325['createCanvas'](_0x3cabf4,_0x5c2a42);}}_0x6e1895['NodeCanvasFactory']=_0x19dc23;class _0x165198 extends _0x1c664d['BaseCMapReaderFactory']{[_0x4ff4be(0x863)](_0x41e4fa,_0x380950){const _0x5741ed=_0x4ff4be;return _0x543586(_0x41e4fa)[_0x5741ed(0x22d)](_0x22db1b=>{return{'cMapData':_0x22db1b,'compressionType':_0x380950};});}}_0x6e1895[_0x4ff4be(0x34f)]=_0x165198;class _0x5552fd extends _0x1c664d[_0x4ff4be(0x99b)]{['_fetchData'](_0x4c5247){return _0x543586(_0x4c5247);}}_0x6e1895[_0x4ff4be(0x666)]=_0x5552fd;},(_0x1cc80f,_0x1c89f1,_0xf8e1e0)=>{'use strict';const _0x8f586f=a0_0x160d;Object[_0x8f586f(0x430)](_0x1c89f1,'__esModule',{'value':!![]}),_0x1c89f1[_0x8f586f(0x157)]=void 0x0;var _0x37b87a=_0xf8e1e0(0x1),_0x50f140=_0xf8e1e0(0x96);;const _0x3f4d64=require('fs'),_0x370f6c=require(_0x8f586f(0xe5)),_0x189ff5=require(_0x8f586f(0x3bc)),_0x2b572d=require(_0x8f586f(0x6a1)),_0x4da2c6=/^file:\/\/\/[a-zA-Z]:\//;function _0x367242(_0x111000){const _0x39beaf=_0x8f586f,_0x575afb=_0x2b572d[_0x39beaf(0x412)](_0x111000);if(_0x575afb['protocol']==='file:'||_0x575afb[_0x39beaf(0x53a)])return _0x575afb;if(/^[a-z]:[/\\]/i[_0x39beaf(0x6e7)](_0x111000))return _0x2b572d['parse'](_0x39beaf(0x589)+_0x111000);return!_0x575afb[_0x39beaf(0x53a)]&&(_0x575afb[_0x39beaf(0x42a)]=_0x39beaf(0x7b7)),_0x575afb;}class _0x407531{constructor(_0x30df8f){const _0x56c066=_0x8f586f;this[_0x56c066(0x3b5)]=_0x30df8f,this[_0x56c066(0x6a1)]=_0x367242(_0x30df8f['url']),this[_0x56c066(0x303)]=this[_0x56c066(0x6a1)][_0x56c066(0x42a)]==='http:'||this[_0x56c066(0x6a1)]['protocol']===_0x56c066(0x61f),this[_0x56c066(0x2bf)]=this[_0x56c066(0x6a1)][_0x56c066(0x42a)]==='file:',this[_0x56c066(0x4a6)]=this[_0x56c066(0x303)]&&_0x30df8f[_0x56c066(0x4a6)]||{},this[_0x56c066(0x30c)]=null,this[_0x56c066(0x6e2)]=[];}get[_0x8f586f(0x14b)](){const _0x1634ff=_0x8f586f;return this[_0x1634ff(0x30c)]?.['_loaded']??0x0;}[_0x8f586f(0x50a)](){const _0x28b0d2=_0x8f586f;return(0x0,_0x37b87a[_0x28b0d2(0x63a)])(!this[_0x28b0d2(0x30c)],'PDFNodeStream.getFullReader\x20can\x20only\x20be\x20called\x20once.'),this['_fullRequestReader']=this[_0x28b0d2(0x2bf)]?new _0x5bf858(this):new _0x3d11c2(this),this['_fullRequestReader'];}[_0x8f586f(0x7d3)](_0x3def63,_0x43035e){const _0x1bbdad=_0x8f586f;if(_0x43035e<=this['_progressiveDataLength'])return null;const _0x5500e2=this[_0x1bbdad(0x2bf)]?new _0x26e4dd(this,_0x3def63,_0x43035e):new _0x347fcf(this,_0x3def63,_0x43035e);return this[_0x1bbdad(0x6e2)][_0x1bbdad(0x7d6)](_0x5500e2),_0x5500e2;}[_0x8f586f(0x8a8)](_0x2f1824){const _0x3c0172=_0x8f586f;this[_0x3c0172(0x30c)]?.['cancel'](_0x2f1824);for(const _0x565c3c of this[_0x3c0172(0x6e2)][_0x3c0172(0x80c)](0x0)){_0x565c3c[_0x3c0172(0x8c6)](_0x2f1824);}}}_0x1c89f1[_0x8f586f(0x157)]=_0x407531;class _0x33b47a{constructor(_0x5ed378){const _0x1da4e3=_0x8f586f;this[_0x1da4e3(0x640)]=_0x5ed378[_0x1da4e3(0x6a1)],this[_0x1da4e3(0x51a)]=![],this[_0x1da4e3(0x882)]=null,this[_0x1da4e3(0x3bf)]=null;const _0xc81e67=_0x5ed378['source'];this[_0x1da4e3(0x8bc)]=_0xc81e67[_0x1da4e3(0x557)],this[_0x1da4e3(0xc7)]=0x0,this[_0x1da4e3(0x2ec)]=null,this[_0x1da4e3(0x28a)]=_0xc81e67[_0x1da4e3(0x5e0)]||![],this[_0x1da4e3(0x9f5)]=_0xc81e67[_0x1da4e3(0x40d)],!this[_0x1da4e3(0x9f5)]&&!this['_disableRange']&&(this[_0x1da4e3(0x28a)]=!![]),this[_0x1da4e3(0x6f5)]=!_0xc81e67[_0x1da4e3(0x56b)],this['_isRangeSupported']=!_0xc81e67[_0x1da4e3(0x5e0)],this['_readableStream']=null,this[_0x1da4e3(0x5a2)]=new _0x37b87a[(_0x1da4e3(0x7e3))](),this['_headersCapability']=new _0x37b87a[(_0x1da4e3(0x7e3))]();}get[_0x8f586f(0x6f2)](){const _0x49c3ba=_0x8f586f;return this[_0x49c3ba(0x615)]['promise'];}get[_0x8f586f(0x5cf)](){return this['_filename'];}get[_0x8f586f(0x434)](){const _0x4b2a45=_0x8f586f;return this[_0x4b2a45(0x8bc)];}get[_0x8f586f(0x7b9)](){return this['_isRangeSupported'];}get[_0x8f586f(0x913)](){const _0x442ea6=_0x8f586f;return this[_0x442ea6(0x6f5)];}async[_0x8f586f(0x37b)](){const _0x2c234d=_0x8f586f;await this[_0x2c234d(0x5a2)][_0x2c234d(0x4dd)];if(this[_0x2c234d(0x51a)])return{'value':undefined,'done':!![]};if(this[_0x2c234d(0x882)])throw this[_0x2c234d(0x882)];const _0x50e980=this[_0x2c234d(0x7c5)][_0x2c234d(0x37b)]();if(_0x50e980===null)return this['_readCapability']=new _0x37b87a[(_0x2c234d(0x7e3))](),this[_0x2c234d(0x37b)]();this[_0x2c234d(0xc7)]+=_0x50e980[_0x2c234d(0x557)],this[_0x2c234d(0x3bf)]?.({'loaded':this[_0x2c234d(0xc7)],'total':this[_0x2c234d(0x8bc)]});const _0x3ea5a9=new Uint8Array(_0x50e980)[_0x2c234d(0x948)];return{'value':_0x3ea5a9,'done':![]};}[_0x8f586f(0x8c6)](_0x5454cf){const _0x230a72=_0x8f586f;if(!this[_0x230a72(0x7c5)]){this['_error'](_0x5454cf);return;}this[_0x230a72(0x7c5)][_0x230a72(0x256)](_0x5454cf);}[_0x8f586f(0x6dc)](_0x28bc48){const _0x37d03d=_0x8f586f;this[_0x37d03d(0x882)]=_0x28bc48,this[_0x37d03d(0x5a2)][_0x37d03d(0x442)]();}[_0x8f586f(0x766)](_0x52bd5b){const _0x3d2d27=_0x8f586f;this['_readableStream']=_0x52bd5b,_0x52bd5b['on'](_0x3d2d27(0x1cd),()=>{const _0xeeaa23=_0x3d2d27;this[_0xeeaa23(0x5a2)][_0xeeaa23(0x442)]();}),_0x52bd5b['on'](_0x3d2d27(0x977),()=>{const _0x2391d3=_0x3d2d27;_0x52bd5b[_0x2391d3(0x256)](),this['_done']=!![],this[_0x2391d3(0x5a2)][_0x2391d3(0x442)]();}),_0x52bd5b['on'](_0x3d2d27(0x9e3),_0x385db0=>{this['_error'](_0x385db0);}),!this[_0x3d2d27(0x6f5)]&&this['_isRangeSupported']&&this[_0x3d2d27(0x6dc)](new _0x37b87a['AbortException'](_0x3d2d27(0x88f))),this[_0x3d2d27(0x882)]&&this[_0x3d2d27(0x7c5)][_0x3d2d27(0x256)](this[_0x3d2d27(0x882)]);}}class _0x157a9a{constructor(_0x456f45){const _0x31bac4=_0x8f586f;this[_0x31bac4(0x640)]=_0x456f45[_0x31bac4(0x6a1)],this[_0x31bac4(0x51a)]=![],this[_0x31bac4(0x882)]=null,this['onProgress']=null,this['_loaded']=0x0,this[_0x31bac4(0x7c5)]=null,this[_0x31bac4(0x5a2)]=new _0x37b87a[(_0x31bac4(0x7e3))]();const _0x387200=_0x456f45[_0x31bac4(0x3b5)];this[_0x31bac4(0x6f5)]=!_0x387200[_0x31bac4(0x56b)];}get[_0x8f586f(0x913)](){const _0x5323ea=_0x8f586f;return this[_0x5323ea(0x6f5)];}async[_0x8f586f(0x37b)](){const _0x4256bc=_0x8f586f;await this[_0x4256bc(0x5a2)]['promise'];if(this[_0x4256bc(0x51a)])return{'value':undefined,'done':!![]};if(this[_0x4256bc(0x882)])throw this[_0x4256bc(0x882)];const _0x46236a=this[_0x4256bc(0x7c5)][_0x4256bc(0x37b)]();if(_0x46236a===null)return this[_0x4256bc(0x5a2)]=new _0x37b87a[(_0x4256bc(0x7e3))](),this[_0x4256bc(0x37b)]();this[_0x4256bc(0xc7)]+=_0x46236a['length'],this[_0x4256bc(0x3bf)]?.({'loaded':this[_0x4256bc(0xc7)]});const _0x4606b3=new Uint8Array(_0x46236a)[_0x4256bc(0x948)];return{'value':_0x4606b3,'done':![]};}[_0x8f586f(0x8c6)](_0x1edf9e){const _0x4b6dc7=_0x8f586f;if(!this[_0x4b6dc7(0x7c5)]){this[_0x4b6dc7(0x6dc)](_0x1edf9e);return;}this[_0x4b6dc7(0x7c5)][_0x4b6dc7(0x256)](_0x1edf9e);}[_0x8f586f(0x6dc)](_0x585db6){const _0x4948e0=_0x8f586f;this[_0x4948e0(0x882)]=_0x585db6,this[_0x4948e0(0x5a2)][_0x4948e0(0x442)]();}[_0x8f586f(0x766)](_0x56b739){const _0x22cbfd=_0x8f586f;this[_0x22cbfd(0x7c5)]=_0x56b739,_0x56b739['on'](_0x22cbfd(0x1cd),()=>{const _0x23bb87=_0x22cbfd;this[_0x23bb87(0x5a2)][_0x23bb87(0x442)]();}),_0x56b739['on'](_0x22cbfd(0x977),()=>{const _0x3d902e=_0x22cbfd;_0x56b739['destroy'](),this[_0x3d902e(0x51a)]=!![],this['_readCapability']['resolve']();}),_0x56b739['on'](_0x22cbfd(0x9e3),_0x5c6753=>{this['_error'](_0x5c6753);}),this[_0x22cbfd(0x882)]&&this[_0x22cbfd(0x7c5)][_0x22cbfd(0x256)](this[_0x22cbfd(0x882)]);}}function _0x5bc1db(_0x523726,_0x491b01){const _0x4a8295=_0x8f586f;return{'protocol':_0x523726['protocol'],'auth':_0x523726[_0x4a8295(0x5c4)],'host':_0x523726[_0x4a8295(0x71f)],'port':_0x523726['port'],'path':_0x523726[_0x4a8295(0x987)],'method':_0x4a8295(0x117),'headers':_0x491b01};}class _0x3d11c2 extends _0x33b47a{constructor(_0x5eba71){const _0x27281d=_0x8f586f;super(_0x5eba71);const _0x56f1df=_0x8f626e=>{const _0x560195=a0_0x160d;if(_0x8f626e['statusCode']===0x194){const _0x2b9e18=new _0x37b87a[(_0x560195(0x5c5))]('Missing\x20PDF\x20\x22'+this['_url']+'\x22.');this[_0x560195(0x882)]=_0x2b9e18,this[_0x560195(0x615)][_0x560195(0x282)](_0x2b9e18);return;}this[_0x560195(0x615)][_0x560195(0x442)](),this[_0x560195(0x766)](_0x8f626e);const _0x501d96=_0x4ab9eb=>{const _0x49a663=_0x560195;return this[_0x49a663(0x7c5)]['headers'][_0x4ab9eb[_0x49a663(0x83c)]()];},{allowRangeRequests:_0x378602,suggestedLength:_0x46da7a}=(0x0,_0x50f140[_0x560195(0x66a)])({'getResponseHeader':_0x501d96,'isHttp':_0x5eba71['isHttp'],'rangeChunkSize':this['_rangeChunkSize'],'disableRange':this[_0x560195(0x28a)]});this[_0x560195(0x9c7)]=_0x378602,this[_0x560195(0x8bc)]=_0x46da7a||this['_contentLength'],this[_0x560195(0x2ec)]=(0x0,_0x50f140['extractFilenameFromHeader'])(_0x501d96);};this[_0x27281d(0x1c4)]=null,this[_0x27281d(0x640)][_0x27281d(0x42a)]===_0x27281d(0x1b5)?this[_0x27281d(0x1c4)]=_0x370f6c[_0x27281d(0x28f)](_0x5bc1db(this[_0x27281d(0x640)],_0x5eba71[_0x27281d(0x4a6)]),_0x56f1df):this[_0x27281d(0x1c4)]=_0x189ff5[_0x27281d(0x28f)](_0x5bc1db(this[_0x27281d(0x640)],_0x5eba71[_0x27281d(0x4a6)]),_0x56f1df),this[_0x27281d(0x1c4)]['on'](_0x27281d(0x9e3),_0x239cb4=>{const _0x280d18=_0x27281d;this['_storedError']=_0x239cb4,this[_0x280d18(0x615)][_0x280d18(0x282)](_0x239cb4);}),this[_0x27281d(0x1c4)][_0x27281d(0x977)]();}}class _0x347fcf extends _0x157a9a{constructor(_0x50c63b,_0x411b09,_0x3b8810){const _0x5ccd1c=_0x8f586f;super(_0x50c63b),this[_0x5ccd1c(0x396)]={};for(const _0x3eac2a in _0x50c63b[_0x5ccd1c(0x4a6)]){const _0xb65ab2=_0x50c63b[_0x5ccd1c(0x4a6)][_0x3eac2a];if(_0xb65ab2===undefined)continue;this[_0x5ccd1c(0x396)][_0x3eac2a]=_0xb65ab2;}this[_0x5ccd1c(0x396)][_0x5ccd1c(0x70b)]='bytes='+_0x411b09+'-'+(_0x3b8810-0x1);const _0xf8d4d6=_0x3082d7=>{const _0x4cefdd=_0x5ccd1c;if(_0x3082d7[_0x4cefdd(0x86c)]===0x194){const _0x149340=new _0x37b87a[(_0x4cefdd(0x5c5))](_0x4cefdd(0x2b3)+this[_0x4cefdd(0x640)]+'\x22.');this[_0x4cefdd(0x882)]=_0x149340;return;}this[_0x4cefdd(0x766)](_0x3082d7);};this['_request']=null,this[_0x5ccd1c(0x640)][_0x5ccd1c(0x42a)]===_0x5ccd1c(0x1b5)?this[_0x5ccd1c(0x1c4)]=_0x370f6c[_0x5ccd1c(0x28f)](_0x5bc1db(this['_url'],this[_0x5ccd1c(0x396)]),_0xf8d4d6):this['_request']=_0x189ff5[_0x5ccd1c(0x28f)](_0x5bc1db(this[_0x5ccd1c(0x640)],this['_httpHeaders']),_0xf8d4d6),this['_request']['on'](_0x5ccd1c(0x9e3),_0x35b863=>{const _0x19301c=_0x5ccd1c;this[_0x19301c(0x882)]=_0x35b863;}),this[_0x5ccd1c(0x1c4)][_0x5ccd1c(0x977)]();}}class _0x5bf858 extends _0x33b47a{constructor(_0x3878eb){const _0x11d714=_0x8f586f;super(_0x3878eb);let _0x47badf=decodeURIComponent(this['_url'][_0x11d714(0x987)]);_0x4da2c6[_0x11d714(0x6e7)](this[_0x11d714(0x640)][_0x11d714(0x95d)])&&(_0x47badf=_0x47badf[_0x11d714(0x342)](/^\//,'')),_0x3f4d64['lstat'](_0x47badf,(_0x4304c6,_0x38ce72)=>{const _0x4cc5b2=_0x11d714;if(_0x4304c6){_0x4304c6['code']===_0x4cc5b2(0x84e)&&(_0x4304c6=new _0x37b87a['MissingPDFException'](_0x4cc5b2(0x2b3)+_0x47badf+'\x22.'));this[_0x4cc5b2(0x882)]=_0x4304c6,this[_0x4cc5b2(0x615)][_0x4cc5b2(0x282)](_0x4304c6);return;}this[_0x4cc5b2(0x8bc)]=_0x38ce72[_0x4cc5b2(0x87a)],this[_0x4cc5b2(0x766)](_0x3f4d64[_0x4cc5b2(0x3b7)](_0x47badf)),this['_headersCapability'][_0x4cc5b2(0x442)]();});}}class _0x26e4dd extends _0x157a9a{constructor(_0x5a09e1,_0x2c1e64,_0x39a118){const _0x56eef9=_0x8f586f;super(_0x5a09e1);let _0x22b5ce=decodeURIComponent(this[_0x56eef9(0x640)][_0x56eef9(0x987)]);_0x4da2c6[_0x56eef9(0x6e7)](this[_0x56eef9(0x640)][_0x56eef9(0x95d)])&&(_0x22b5ce=_0x22b5ce[_0x56eef9(0x342)](/^\//,'')),this[_0x56eef9(0x766)](_0x3f4d64[_0x56eef9(0x3b7)](_0x22b5ce,{'start':_0x2c1e64,'end':_0x39a118-0x1}));}}},(_0x369793,_0x416d30,_0x1f2f0b)=>{'use strict';const _0x19c139=a0_0x160d;Object['defineProperty'](_0x416d30,'__esModule',{'value':!![]}),_0x416d30[_0x19c139(0x437)]=_0x1263ea,_0x416d30['extractFilenameFromHeader']=_0x274924,_0x416d30[_0x19c139(0x66a)]=_0x35f63a,_0x416d30[_0x19c139(0x9ed)]=_0x53678a;var _0x30f66f=_0x1f2f0b(0x1),_0x46e855=_0x1f2f0b(0x97),_0x4384f3=_0x1f2f0b(0x87);function _0x35f63a(_0xaa0322){const _0x126142=_0x19c139;let {getResponseHeader:_0x3a5e97,isHttp:_0xcfaff7,rangeChunkSize:_0x51ffac,disableRange:_0x3c6b75}=_0xaa0322;const _0x320835={'allowRangeRequests':![],'suggestedLength':undefined},_0x53ec82=parseInt(_0x3a5e97(_0x126142(0xd6)),0xa);if(!Number['isInteger'](_0x53ec82))return _0x320835;_0x320835[_0x126142(0x55a)]=_0x53ec82;if(_0x53ec82<=0x2*_0x51ffac)return _0x320835;if(_0x3c6b75||!_0xcfaff7)return _0x320835;if(_0x3a5e97(_0x126142(0x52a))!==_0x126142(0x9f6))return _0x320835;const _0x346797=_0x3a5e97('Content-Encoding')||'identity';if(_0x346797!=='identity')return _0x320835;return _0x320835[_0x126142(0x1f1)]=!![],_0x320835;}function _0x274924(_0x2594e2){const _0x41c675=_0x19c139,_0x5ae4ad=_0x2594e2(_0x41c675(0x33e));if(_0x5ae4ad){let _0x4e83df=(0x0,_0x46e855[_0x41c675(0x10d)])(_0x5ae4ad);if(_0x4e83df['includes']('%'))try{_0x4e83df=decodeURIComponent(_0x4e83df);}catch{}if((0x0,_0x4384f3['isPdfFile'])(_0x4e83df))return _0x4e83df;}return null;}function _0x1263ea(_0xa26f4e,_0x3fc8d4){const _0xc197f9=_0x19c139;if(_0xa26f4e===0x194||_0xa26f4e===0x0&&_0x3fc8d4['startsWith'](_0xc197f9(0x7b7)))return new _0x30f66f[(_0xc197f9(0x5c5))](_0xc197f9(0x2b3)+_0x3fc8d4+'\x22.');return new _0x30f66f[(_0xc197f9(0x90f))](_0xc197f9(0x4ac)+_0xa26f4e+_0xc197f9(0xef)+_0x3fc8d4+'\x22.',_0xa26f4e);}function _0x53678a(_0x4726cd){return _0x4726cd===0xc8||_0x4726cd===0xce;}},(_0x1ad576,_0x56fad2,_0x459deb)=>{'use strict';Object['defineProperty'](_0x56fad2,'__esModule',{'value':!![]}),_0x56fad2['getFilenameFromContentDispositionHeader']=_0x54a396;var _0x2f510a=_0x459deb(0x1);function _0x54a396(_0xbc419d){const _0x4d80b2=a0_0x160d;let _0x60108e=!![],_0x5d2ba6=_0x2e2273(_0x4d80b2(0x951),'i')[_0x4d80b2(0x249)](_0xbc419d);if(_0x5d2ba6){_0x5d2ba6=_0x5d2ba6[0x1];let _0x44ed8d=_0x27f31b(_0x5d2ba6);return _0x44ed8d=unescape(_0x44ed8d),_0x44ed8d=_0x5d94fb(_0x44ed8d),_0x44ed8d=_0x31b88d(_0x44ed8d),_0x1ff5d9(_0x44ed8d);}_0x5d2ba6=_0x37e33b(_0xbc419d);if(_0x5d2ba6){const _0xf67367=_0x31b88d(_0x5d2ba6);return _0x1ff5d9(_0xf67367);}_0x5d2ba6=_0x2e2273(_0x4d80b2(0x5cf),'i')[_0x4d80b2(0x249)](_0xbc419d);if(_0x5d2ba6){_0x5d2ba6=_0x5d2ba6[0x1];let _0x5cefb8=_0x27f31b(_0x5d2ba6);return _0x5cefb8=_0x31b88d(_0x5cefb8),_0x1ff5d9(_0x5cefb8);}function _0x2e2273(_0x5f04e1,_0x710b1){const _0x147b5a=_0x4d80b2;return new RegExp(_0x147b5a(0x5e1)+_0x5f04e1+_0x147b5a(0x2f3)+'('+_0x147b5a(0x1ee)+'|'+_0x147b5a(0x6b1)+')',_0x710b1);}function _0x123a5b(_0x34e781,_0x3a2ac8){const _0x1d3978=_0x4d80b2;if(_0x34e781){if(!/^[\x00-\xFF]+$/[_0x1d3978(0x6e7)](_0x3a2ac8))return _0x3a2ac8;try{const _0x1a911b=new TextDecoder(_0x34e781,{'fatal':!![]}),_0x1399e1=(0x0,_0x2f510a[_0x1d3978(0x647)])(_0x3a2ac8);_0x3a2ac8=_0x1a911b['decode'](_0x1399e1),_0x60108e=![];}catch{}}return _0x3a2ac8;}function _0x1ff5d9(_0x24f2df){const _0x2da669=_0x4d80b2;return _0x60108e&&/[\x80-\xff]/[_0x2da669(0x6e7)](_0x24f2df)&&(_0x24f2df=_0x123a5b('utf-8',_0x24f2df),_0x60108e&&(_0x24f2df=_0x123a5b('iso-8859-1',_0x24f2df))),_0x24f2df;}function _0x37e33b(_0x12258f){const _0x786b26=_0x4d80b2,_0x1e42bc=[];let _0x5d0b75;const _0x1c65fe=_0x2e2273(_0x786b26(0x23d),'ig');while((_0x5d0b75=_0x1c65fe[_0x786b26(0x249)](_0x12258f))!==null){let [,_0x587b94,_0x456076,_0x127289]=_0x5d0b75;_0x587b94=parseInt(_0x587b94,0xa);if(_0x587b94 in _0x1e42bc){if(_0x587b94===0x0)break;continue;}_0x1e42bc[_0x587b94]=[_0x456076,_0x127289];}const _0x113a24=[];for(let _0x420e4e=0x0;_0x420e4e<_0x1e42bc[_0x786b26(0x557)];++_0x420e4e){if(!(_0x420e4e in _0x1e42bc))break;let [_0x583d19,_0x1440f9]=_0x1e42bc[_0x420e4e];_0x1440f9=_0x27f31b(_0x1440f9),_0x583d19&&(_0x1440f9=unescape(_0x1440f9),_0x420e4e===0x0&&(_0x1440f9=_0x5d94fb(_0x1440f9))),_0x113a24[_0x786b26(0x7d6)](_0x1440f9);}return _0x113a24[_0x786b26(0x334)]('');}function _0x27f31b(_0x96f538){const _0x4103e9=_0x4d80b2;if(_0x96f538[_0x4103e9(0x2aa)]('\x22')){const _0x15f13f=_0x96f538['slice'](0x1)[_0x4103e9(0x6db)]('\x5c\x22');for(let _0x4d68ac=0x0;_0x4d68ac<_0x15f13f[_0x4103e9(0x557)];++_0x4d68ac){const _0x29d8e0=_0x15f13f[_0x4d68ac]['indexOf']('\x22');_0x29d8e0!==-0x1&&(_0x15f13f[_0x4d68ac]=_0x15f13f[_0x4d68ac][_0x4103e9(0x80c)](0x0,_0x29d8e0),_0x15f13f[_0x4103e9(0x557)]=_0x4d68ac+0x1),_0x15f13f[_0x4d68ac]=_0x15f13f[_0x4d68ac]['replaceAll'](/\\(.)/g,'$1');}_0x96f538=_0x15f13f['join']('\x22');}return _0x96f538;}function _0x5d94fb(_0x345271){const _0x5cfdb3=_0x4d80b2,_0x15d944=_0x345271[_0x5cfdb3(0x82c)]('\x27');if(_0x15d944===-0x1)return _0x345271;const _0x49a3b5=_0x345271['slice'](0x0,_0x15d944),_0x5d43ea=_0x345271[_0x5cfdb3(0x80c)](_0x15d944+0x1),_0x50a9be=_0x5d43ea[_0x5cfdb3(0x342)](/^[^']*'/,'');return _0x123a5b(_0x49a3b5,_0x50a9be);}function _0x31b88d(_0x534dc8){const _0x30d75e=_0x4d80b2;if(!_0x534dc8[_0x30d75e(0x2aa)]('=?')||/[\x00-\x19\x80-\xff]/['test'](_0x534dc8))return _0x534dc8;return _0x534dc8[_0x30d75e(0x8b5)](/=\?([\w-]*)\?([QqBb])\?((?:[^?]|\?(?!=))*)\?=/g,function(_0x4fbb26,_0x5eb5a2,_0x4c51e5,_0x4d9a38){const _0x35be5e=_0x30d75e;if(_0x4c51e5==='q'||_0x4c51e5==='Q')return _0x4d9a38=_0x4d9a38[_0x35be5e(0x8b5)]('_','\x20'),_0x4d9a38=_0x4d9a38[_0x35be5e(0x8b5)](/=([0-9a-fA-F]{2})/g,function(_0xec5d9b,_0x10594b){const _0x41bb12=_0x35be5e;return String[_0x41bb12(0x218)](parseInt(_0x10594b,0x10));}),_0x123a5b(_0x5eb5a2,_0x4d9a38);try{_0x4d9a38=atob(_0x4d9a38);}catch{}return _0x123a5b(_0x5eb5a2,_0x4d9a38);});}return'';}},(_0x3596c4,_0x8658cf,_0x4f2a7e)=>{'use strict';const _0x58a575=a0_0x160d;Object[_0x58a575(0x430)](_0x8658cf,_0x58a575(0x19a),{'value':!![]}),_0x8658cf[_0x58a575(0x518)]=void 0x0;var _0xd6c82d=_0x4f2a7e(0x1),_0x425b3e=_0x4f2a7e(0x96);;const _0xf27f08=0xc8,_0x5d2e1c=0xce;function _0x1e02ee(_0x22d5ab){const _0xf2a709=_0x58a575,_0x10ac86=_0x22d5ab['response'];if(typeof _0x10ac86!==_0xf2a709(0x8cd))return _0x10ac86;return(0x0,_0xd6c82d[_0xf2a709(0x647)])(_0x10ac86)[_0xf2a709(0x948)];}class _0x30d80a{constructor(_0x14f121){const _0x11089a=_0x58a575;let _0x648bfa=arguments[_0x11089a(0x557)]>0x1&&arguments[0x1]!==undefined?arguments[0x1]:{};this['url']=_0x14f121,this[_0x11089a(0x303)]=/^https?:/i[_0x11089a(0x6e7)](_0x14f121),this[_0x11089a(0x4a6)]=this['isHttp']&&_0x648bfa[_0x11089a(0x4a6)]||Object['create'](null),this[_0x11089a(0x113)]=_0x648bfa[_0x11089a(0x113)]||![],this[_0x11089a(0x3b4)]=0x0,this['pendingRequests']=Object[_0x11089a(0x77c)](null);}[_0x58a575(0x711)](_0xf25646,_0x4e5296,_0x36b2d9){const _0x2a3739={'begin':_0xf25646,'end':_0x4e5296};for(const _0x2434c1 in _0x36b2d9){_0x2a3739[_0x2434c1]=_0x36b2d9[_0x2434c1];}return this['request'](_0x2a3739);}[_0x58a575(0x9c9)](_0x4c412a){const _0x127884=_0x58a575;return this[_0x127884(0x28f)](_0x4c412a);}[_0x58a575(0x28f)](_0xcc0d50){const _0x597129=_0x58a575,_0x360b5d=new XMLHttpRequest(),_0x59793f=this[_0x597129(0x3b4)]++,_0x429c28=this[_0x597129(0x9d0)][_0x59793f]={'xhr':_0x360b5d};_0x360b5d[_0x597129(0x514)](_0x597129(0x117),this[_0x597129(0x6a1)]),_0x360b5d[_0x597129(0x113)]=this[_0x597129(0x113)];for(const _0xc2f845 in this[_0x597129(0x4a6)]){const _0x566d9a=this[_0x597129(0x4a6)][_0xc2f845];if(_0x566d9a===undefined)continue;_0x360b5d['setRequestHeader'](_0xc2f845,_0x566d9a);}return this[_0x597129(0x303)]&&_0x597129(0x722)in _0xcc0d50&&'end'in _0xcc0d50?(_0x360b5d[_0x597129(0x325)](_0x597129(0x70b),'bytes='+_0xcc0d50[_0x597129(0x722)]+'-'+(_0xcc0d50[_0x597129(0x977)]-0x1)),_0x429c28[_0x597129(0x4df)]=_0x5d2e1c):_0x429c28[_0x597129(0x4df)]=_0xf27f08,_0x360b5d['responseType']=_0x597129(0x551),_0xcc0d50[_0x597129(0x10c)]&&(_0x360b5d[_0x597129(0x979)]=function(_0x4fc10e){const _0xf1d9c=_0x597129;_0xcc0d50[_0xf1d9c(0x10c)](_0x360b5d[_0xf1d9c(0x78b)]);}),_0x360b5d[_0x597129(0x9be)]=this[_0x597129(0x976)][_0x597129(0x5e8)](this,_0x59793f),_0x360b5d[_0x597129(0x8b8)]=this[_0x597129(0x3bf)][_0x597129(0x5e8)](this,_0x59793f),_0x429c28['onHeadersReceived']=_0xcc0d50[_0x597129(0x7b3)],_0x429c28[_0x597129(0x8f1)]=_0xcc0d50[_0x597129(0x8f1)],_0x429c28['onError']=_0xcc0d50['onError'],_0x429c28[_0x597129(0x3bf)]=_0xcc0d50[_0x597129(0x3bf)],_0x360b5d['send'](null),_0x59793f;}[_0x58a575(0x3bf)](_0x2bc6e5,_0xf36b56){const _0x2a6dcd=this['pendingRequests'][_0x2bc6e5];if(!_0x2a6dcd)return;_0x2a6dcd['onProgress']?.(_0xf36b56);}[_0x58a575(0x976)](_0x3dd2af,_0x3db0cf){const _0x2917da=_0x58a575,_0x7449e6=this[_0x2917da(0x9d0)][_0x3dd2af];if(!_0x7449e6)return;const _0x2ce2e5=_0x7449e6[_0x2917da(0x465)];_0x2ce2e5[_0x2917da(0x5f9)]>=0x2&&_0x7449e6[_0x2917da(0x7b3)]&&(_0x7449e6[_0x2917da(0x7b3)](),delete _0x7449e6[_0x2917da(0x7b3)]);if(_0x2ce2e5['readyState']!==0x4)return;if(!(_0x3dd2af in this[_0x2917da(0x9d0)]))return;delete this[_0x2917da(0x9d0)][_0x3dd2af];if(_0x2ce2e5[_0x2917da(0x78b)]===0x0&&this[_0x2917da(0x303)]){_0x7449e6[_0x2917da(0x10c)]?.(_0x2ce2e5[_0x2917da(0x78b)]);return;}const _0x2efc1a=_0x2ce2e5[_0x2917da(0x78b)]||_0xf27f08,_0x496520=_0x2efc1a===_0xf27f08&&_0x7449e6[_0x2917da(0x4df)]===_0x5d2e1c;if(!_0x496520&&_0x2efc1a!==_0x7449e6[_0x2917da(0x4df)]){_0x7449e6['onError']?.(_0x2ce2e5['status']);return;}const _0x2d782a=_0x1e02ee(_0x2ce2e5);if(_0x2efc1a===_0x5d2e1c){const _0x183314=_0x2ce2e5['getResponseHeader'](_0x2917da(0x58e)),_0x3fccd4=/bytes (\d+)-(\d+)\/(\d+)/[_0x2917da(0x249)](_0x183314);_0x7449e6[_0x2917da(0x8f1)]({'begin':parseInt(_0x3fccd4[0x1],0xa),'chunk':_0x2d782a});}else _0x2d782a?_0x7449e6['onDone']({'begin':0x0,'chunk':_0x2d782a}):_0x7449e6[_0x2917da(0x10c)]?.(_0x2ce2e5[_0x2917da(0x78b)]);}[_0x58a575(0x9dc)](_0x528ba0){const _0x41388d=_0x58a575;return this['pendingRequests'][_0x528ba0][_0x41388d(0x465)];}[_0x58a575(0x135)](_0x37fe06){return _0x37fe06 in this['pendingRequests'];}[_0x58a575(0x585)](_0x5b1552){const _0x287651=_0x58a575,_0x1affe3=this[_0x287651(0x9d0)][_0x5b1552][_0x287651(0x465)];delete this[_0x287651(0x9d0)][_0x5b1552],_0x1affe3[_0x287651(0x304)]();}}class _0x121a0b{constructor(_0x24ea07){const _0x4d5637=_0x58a575;this[_0x4d5637(0x432)]=_0x24ea07,this['_manager']=new _0x30d80a(_0x24ea07['url'],{'httpHeaders':_0x24ea07[_0x4d5637(0x4a6)],'withCredentials':_0x24ea07['withCredentials']}),this[_0x4d5637(0x9f5)]=_0x24ea07[_0x4d5637(0x40d)],this[_0x4d5637(0x30c)]=null,this[_0x4d5637(0x6e2)]=[];}[_0x58a575(0x790)](_0x3d408d){const _0x515849=_0x58a575,_0x55bc9e=this[_0x515849(0x6e2)]['indexOf'](_0x3d408d);_0x55bc9e>=0x0&&this[_0x515849(0x6e2)]['splice'](_0x55bc9e,0x1);}[_0x58a575(0x50a)](){const _0x57dadb=_0x58a575;return(0x0,_0xd6c82d['assert'])(!this[_0x57dadb(0x30c)],_0x57dadb(0x5ce)),this[_0x57dadb(0x30c)]=new _0x432bb8(this[_0x57dadb(0x4ae)],this[_0x57dadb(0x432)]),this[_0x57dadb(0x30c)];}[_0x58a575(0x7d3)](_0x32779f,_0x36ce1f){const _0x214e27=_0x58a575,_0x350806=new _0x18508d(this[_0x214e27(0x4ae)],_0x32779f,_0x36ce1f);return _0x350806[_0x214e27(0x161)]=this[_0x214e27(0x790)][_0x214e27(0x5e8)](this),this[_0x214e27(0x6e2)]['push'](_0x350806),_0x350806;}['cancelAllRequests'](_0x3c304f){const _0x4461ef=_0x58a575;this['_fullRequestReader']?.[_0x4461ef(0x8c6)](_0x3c304f);for(const _0x1f511c of this[_0x4461ef(0x6e2)][_0x4461ef(0x80c)](0x0)){_0x1f511c[_0x4461ef(0x8c6)](_0x3c304f);}}}_0x8658cf[_0x58a575(0x518)]=_0x121a0b;class _0x432bb8{constructor(_0x304a6f,_0x195bd6){const _0x1dd199=_0x58a575;this[_0x1dd199(0x4ae)]=_0x304a6f;const _0x260ee8={'onHeadersReceived':this[_0x1dd199(0x4f5)][_0x1dd199(0x5e8)](this),'onDone':this[_0x1dd199(0x4a0)][_0x1dd199(0x5e8)](this),'onError':this[_0x1dd199(0x566)][_0x1dd199(0x5e8)](this),'onProgress':this[_0x1dd199(0x4d7)]['bind'](this)};this[_0x1dd199(0x640)]=_0x195bd6[_0x1dd199(0x6a1)],this[_0x1dd199(0x297)]=_0x304a6f[_0x1dd199(0x9c9)](_0x260ee8),this[_0x1dd199(0x8a7)]=new _0xd6c82d[(_0x1dd199(0x7e3))](),this[_0x1dd199(0x28a)]=_0x195bd6['disableRange']||![],this[_0x1dd199(0x8bc)]=_0x195bd6[_0x1dd199(0x557)],this[_0x1dd199(0x9f5)]=_0x195bd6['rangeChunkSize'],!this['_rangeChunkSize']&&!this[_0x1dd199(0x28a)]&&(this[_0x1dd199(0x28a)]=!![]),this[_0x1dd199(0x6f5)]=![],this[_0x1dd199(0x9c7)]=![],this[_0x1dd199(0xd5)]=[],this[_0x1dd199(0x104)]=[],this[_0x1dd199(0x51a)]=![],this[_0x1dd199(0x882)]=undefined,this['_filename']=null,this[_0x1dd199(0x3bf)]=null;}[_0x58a575(0x4f5)](){const _0x13426f=_0x58a575,_0x213d06=this['_fullRequestId'],_0x5909d2=this[_0x13426f(0x4ae)][_0x13426f(0x9dc)](_0x213d06),_0x1dd09e=_0x46d01d=>{return _0x5909d2['getResponseHeader'](_0x46d01d);},{allowRangeRequests:_0x1612de,suggestedLength:_0x3d4ba1}=(0x0,_0x425b3e['validateRangeRequestCapabilities'])({'getResponseHeader':_0x1dd09e,'isHttp':this[_0x13426f(0x4ae)][_0x13426f(0x303)],'rangeChunkSize':this['_rangeChunkSize'],'disableRange':this['_disableRange']});_0x1612de&&(this[_0x13426f(0x9c7)]=!![]),this['_contentLength']=_0x3d4ba1||this[_0x13426f(0x8bc)],this[_0x13426f(0x2ec)]=(0x0,_0x425b3e[_0x13426f(0x573)])(_0x1dd09e),this[_0x13426f(0x9c7)]&&this[_0x13426f(0x4ae)][_0x13426f(0x585)](_0x213d06),this[_0x13426f(0x8a7)][_0x13426f(0x442)]();}[_0x58a575(0x4a0)](_0x4813d3){const _0x57969f=_0x58a575;if(_0x4813d3){if(this['_requests'][_0x57969f(0x557)]>0x0){const _0x514df4=this[_0x57969f(0x104)][_0x57969f(0x84f)]();_0x514df4[_0x57969f(0x442)]({'value':_0x4813d3[_0x57969f(0x1dd)],'done':![]});}else this[_0x57969f(0xd5)][_0x57969f(0x7d6)](_0x4813d3[_0x57969f(0x1dd)]);}this['_done']=!![];if(this[_0x57969f(0xd5)][_0x57969f(0x557)]>0x0)return;for(const _0x11ac76 of this[_0x57969f(0x104)]){_0x11ac76['resolve']({'value':undefined,'done':!![]});}this[_0x57969f(0x104)][_0x57969f(0x557)]=0x0;}[_0x58a575(0x566)](_0x16a2ec){const _0x3a89dd=_0x58a575;this[_0x3a89dd(0x882)]=(0x0,_0x425b3e[_0x3a89dd(0x437)])(_0x16a2ec,this[_0x3a89dd(0x640)]),this[_0x3a89dd(0x8a7)]['reject'](this['_storedError']);for(const _0x10c7ab of this['_requests']){_0x10c7ab[_0x3a89dd(0x282)](this[_0x3a89dd(0x882)]);}this[_0x3a89dd(0x104)][_0x3a89dd(0x557)]=0x0,this['_cachedChunks'][_0x3a89dd(0x557)]=0x0;}['_onProgress'](_0x3b40c8){const _0x43b688=_0x58a575;this[_0x43b688(0x3bf)]?.({'loaded':_0x3b40c8['loaded'],'total':_0x3b40c8[_0x43b688(0x39e)]?_0x3b40c8['total']:this[_0x43b688(0x8bc)]});}get[_0x58a575(0x5cf)](){const _0x48543d=_0x58a575;return this[_0x48543d(0x2ec)];}get[_0x58a575(0x7b9)](){const _0x2ceeda=_0x58a575;return this[_0x2ceeda(0x9c7)];}get[_0x58a575(0x913)](){const _0x583f13=_0x58a575;return this[_0x583f13(0x6f5)];}get[_0x58a575(0x434)](){const _0x177ce5=_0x58a575;return this[_0x177ce5(0x8bc)];}get[_0x58a575(0x6f2)](){const _0x3164da=_0x58a575;return this[_0x3164da(0x8a7)][_0x3164da(0x4dd)];}async[_0x58a575(0x37b)](){const _0x5f1561=_0x58a575;if(this[_0x5f1561(0x882)])throw this[_0x5f1561(0x882)];if(this['_cachedChunks'][_0x5f1561(0x557)]>0x0){const _0x3e5521=this['_cachedChunks']['shift']();return{'value':_0x3e5521,'done':![]};}if(this[_0x5f1561(0x51a)])return{'value':undefined,'done':!![]};const _0xcb89c3=new _0xd6c82d[(_0x5f1561(0x7e3))]();return this[_0x5f1561(0x104)][_0x5f1561(0x7d6)](_0xcb89c3),_0xcb89c3[_0x5f1561(0x4dd)];}[_0x58a575(0x8c6)](_0xb5a17d){const _0x52daa2=_0x58a575;this[_0x52daa2(0x51a)]=!![],this[_0x52daa2(0x8a7)][_0x52daa2(0x282)](_0xb5a17d);for(const _0x284672 of this[_0x52daa2(0x104)]){_0x284672[_0x52daa2(0x442)]({'value':undefined,'done':!![]});}this[_0x52daa2(0x104)]['length']=0x0,this[_0x52daa2(0x4ae)]['isPendingRequest'](this[_0x52daa2(0x297)])&&this[_0x52daa2(0x4ae)]['abortRequest'](this[_0x52daa2(0x297)]),this['_fullRequestReader']=null;}}class _0x18508d{constructor(_0x29e1d9,_0x50c009,_0x194f94){const _0x4e0b4c=_0x58a575;this['_manager']=_0x29e1d9;const _0x2c95fe={'onDone':this[_0x4e0b4c(0x4a0)][_0x4e0b4c(0x5e8)](this),'onError':this['_onError'][_0x4e0b4c(0x5e8)](this),'onProgress':this[_0x4e0b4c(0x4d7)][_0x4e0b4c(0x5e8)](this)};this['_url']=_0x29e1d9[_0x4e0b4c(0x6a1)],this['_requestId']=_0x29e1d9[_0x4e0b4c(0x711)](_0x50c009,_0x194f94,_0x2c95fe),this[_0x4e0b4c(0x104)]=[],this[_0x4e0b4c(0x137)]=null,this['_done']=![],this[_0x4e0b4c(0x882)]=undefined,this['onProgress']=null,this[_0x4e0b4c(0x161)]=null;}['_close'](){const _0x424ea0=_0x58a575;this[_0x424ea0(0x161)]?.(this);}[_0x58a575(0x4a0)](_0x4b9d31){const _0x5d688c=_0x58a575,_0xb8a75d=_0x4b9d31[_0x5d688c(0x1dd)];if(this[_0x5d688c(0x104)][_0x5d688c(0x557)]>0x0){const _0x4d6693=this['_requests'][_0x5d688c(0x84f)]();_0x4d6693[_0x5d688c(0x442)]({'value':_0xb8a75d,'done':![]});}else this[_0x5d688c(0x137)]=_0xb8a75d;this['_done']=!![];for(const _0x484b44 of this['_requests']){_0x484b44[_0x5d688c(0x442)]({'value':undefined,'done':!![]});}this[_0x5d688c(0x104)]['length']=0x0,this['_close']();}[_0x58a575(0x566)](_0x3d4c7c){const _0x4b03d4=_0x58a575;this[_0x4b03d4(0x882)]=(0x0,_0x425b3e[_0x4b03d4(0x437)])(_0x3d4c7c,this[_0x4b03d4(0x640)]);for(const _0x21b88f of this['_requests']){_0x21b88f[_0x4b03d4(0x282)](this[_0x4b03d4(0x882)]);}this['_requests']['length']=0x0,this['_queuedChunk']=null;}[_0x58a575(0x4d7)](_0x45f979){const _0x4f2775=_0x58a575;!this['isStreamingSupported']&&this[_0x4f2775(0x3bf)]?.({'loaded':_0x45f979[_0x4f2775(0x19f)]});}get[_0x58a575(0x913)](){return![];}async[_0x58a575(0x37b)](){const _0x52928a=_0x58a575;if(this[_0x52928a(0x882)])throw this['_storedError'];if(this[_0x52928a(0x137)]!==null){const _0x26fdcd=this[_0x52928a(0x137)];return this['_queuedChunk']=null,{'value':_0x26fdcd,'done':![]};}if(this[_0x52928a(0x51a)])return{'value':undefined,'done':!![]};const _0x3f8989=new _0xd6c82d[(_0x52928a(0x7e3))]();return this['_requests']['push'](_0x3f8989),_0x3f8989[_0x52928a(0x4dd)];}[_0x58a575(0x8c6)](_0x1154ff){const _0x11b95d=_0x58a575;this[_0x11b95d(0x51a)]=!![];for(const _0x37eb25 of this[_0x11b95d(0x104)]){_0x37eb25[_0x11b95d(0x442)]({'value':undefined,'done':!![]});}this['_requests'][_0x11b95d(0x557)]=0x0,this[_0x11b95d(0x4ae)]['isPendingRequest'](this[_0x11b95d(0x4c1)])&&this['_manager'][_0x11b95d(0x585)](this[_0x11b95d(0x4c1)]),this['_close']();}}},(_0x45c35e,_0x26f18e,_0xf95e27)=>{'use strict';const _0x321558=a0_0x160d;Object[_0x321558(0x430)](_0x26f18e,'__esModule',{'value':!![]}),_0x26f18e[_0x321558(0x3ec)]=void 0x0;var _0x2ba3f2=_0xf95e27(0x1),_0x580dfa=_0xf95e27(0x96);;function _0x37d57a(_0x51b52c,_0x4da118,_0x5d23cc){const _0x4ba4e6=_0x321558;return{'method':_0x4ba4e6(0x117),'headers':_0x51b52c,'signal':_0x5d23cc['signal'],'mode':_0x4ba4e6(0x149),'credentials':_0x4da118?'include':_0x4ba4e6(0x6c5),'redirect':_0x4ba4e6(0x398)};}function _0xa539c3(_0x4859e7){const _0x501e0a=_0x321558,_0x3d6d6c=new Headers();for(const _0xca49b4 in _0x4859e7){const _0x1b3097=_0x4859e7[_0xca49b4];if(_0x1b3097===undefined)continue;_0x3d6d6c[_0x501e0a(0x45e)](_0xca49b4,_0x1b3097);}return _0x3d6d6c;}function _0x34af55(_0x15b09e){const _0x208eca=_0x321558;if(_0x15b09e instanceof Uint8Array)return _0x15b09e[_0x208eca(0x948)];if(_0x15b09e instanceof ArrayBuffer)return _0x15b09e;return(0x0,_0x2ba3f2[_0x208eca(0x472)])(_0x208eca(0x406)+_0x15b09e),new Uint8Array(_0x15b09e)['buffer'];}class _0x3fcb7f{constructor(_0x5ccf77){const _0x295101=_0x321558;this[_0x295101(0x3b5)]=_0x5ccf77,this[_0x295101(0x303)]=/^https?:/i[_0x295101(0x6e7)](_0x5ccf77[_0x295101(0x6a1)]),this[_0x295101(0x4a6)]=this[_0x295101(0x303)]&&_0x5ccf77['httpHeaders']||{},this[_0x295101(0x30c)]=null,this['_rangeRequestReaders']=[];}get[_0x321558(0x14b)](){const _0xef1506=_0x321558;return this[_0xef1506(0x30c)]?.[_0xef1506(0xc7)]??0x0;}[_0x321558(0x50a)](){const _0x4a6a4c=_0x321558;return(0x0,_0x2ba3f2[_0x4a6a4c(0x63a)])(!this[_0x4a6a4c(0x30c)],'PDFFetchStream.getFullReader\x20can\x20only\x20be\x20called\x20once.'),this['_fullRequestReader']=new _0xe56e60(this),this[_0x4a6a4c(0x30c)];}[_0x321558(0x7d3)](_0x4045af,_0x225cec){const _0x2af0ad=_0x321558;if(_0x225cec<=this['_progressiveDataLength'])return null;const _0x4904e9=new _0x534e26(this,_0x4045af,_0x225cec);return this[_0x2af0ad(0x6e2)][_0x2af0ad(0x7d6)](_0x4904e9),_0x4904e9;}[_0x321558(0x8a8)](_0x1b6576){const _0x3fbd50=_0x321558;this[_0x3fbd50(0x30c)]?.[_0x3fbd50(0x8c6)](_0x1b6576);for(const _0x1e2cdf of this[_0x3fbd50(0x6e2)]['slice'](0x0)){_0x1e2cdf[_0x3fbd50(0x8c6)](_0x1b6576);}}}_0x26f18e[_0x321558(0x3ec)]=_0x3fcb7f;class _0xe56e60{constructor(_0x5c16c2){const _0x120c1a=_0x321558;this[_0x120c1a(0x2a3)]=_0x5c16c2,this[_0x120c1a(0x300)]=null,this[_0x120c1a(0xc7)]=0x0,this[_0x120c1a(0x2ec)]=null;const _0x1e608b=_0x5c16c2[_0x120c1a(0x3b5)];this[_0x120c1a(0x79f)]=_0x1e608b[_0x120c1a(0x113)]||![],this[_0x120c1a(0x8bc)]=_0x1e608b[_0x120c1a(0x557)],this['_headersCapability']=new _0x2ba3f2[(_0x120c1a(0x7e3))](),this[_0x120c1a(0x28a)]=_0x1e608b[_0x120c1a(0x5e0)]||![],this[_0x120c1a(0x9f5)]=_0x1e608b['rangeChunkSize'];!this[_0x120c1a(0x9f5)]&&!this['_disableRange']&&(this[_0x120c1a(0x28a)]=!![]);this[_0x120c1a(0x6b6)]=new AbortController(),this[_0x120c1a(0x6f5)]=!_0x1e608b['disableStream'],this[_0x120c1a(0x9c7)]=!_0x1e608b[_0x120c1a(0x5e0)],this[_0x120c1a(0x289)]=_0xa539c3(this[_0x120c1a(0x2a3)]['httpHeaders']);const _0xbf4627=_0x1e608b[_0x120c1a(0x6a1)];fetch(_0xbf4627,_0x37d57a(this['_headers'],this[_0x120c1a(0x79f)],this[_0x120c1a(0x6b6)]))[_0x120c1a(0x22d)](_0x2513df=>{const _0x4fac55=_0x120c1a;if(!(0x0,_0x580dfa[_0x4fac55(0x9ed)])(_0x2513df['status']))throw(0x0,_0x580dfa[_0x4fac55(0x437)])(_0x2513df[_0x4fac55(0x78b)],_0xbf4627);this[_0x4fac55(0x300)]=_0x2513df[_0x4fac55(0x4e7)][_0x4fac55(0x3dd)](),this[_0x4fac55(0x615)]['resolve']();const _0x5425e3=_0x4d9497=>{const _0x4965cf=_0x4fac55;return _0x2513df[_0x4965cf(0x692)][_0x4965cf(0x8c4)](_0x4d9497);},{allowRangeRequests:_0x390d11,suggestedLength:_0x21a238}=(0x0,_0x580dfa[_0x4fac55(0x66a)])({'getResponseHeader':_0x5425e3,'isHttp':this[_0x4fac55(0x2a3)][_0x4fac55(0x303)],'rangeChunkSize':this[_0x4fac55(0x9f5)],'disableRange':this[_0x4fac55(0x28a)]});this['_isRangeSupported']=_0x390d11,this[_0x4fac55(0x8bc)]=_0x21a238||this['_contentLength'],this['_filename']=(0x0,_0x580dfa[_0x4fac55(0x573)])(_0x5425e3),!this[_0x4fac55(0x6f5)]&&this[_0x4fac55(0x9c7)]&&this[_0x4fac55(0x8c6)](new _0x2ba3f2['AbortException'](_0x4fac55(0x96a)));})['catch'](this['_headersCapability']['reject']),this[_0x120c1a(0x3bf)]=null;}get[_0x321558(0x6f2)](){const _0x477c02=_0x321558;return this['_headersCapability'][_0x477c02(0x4dd)];}get['filename'](){const _0x12db35=_0x321558;return this[_0x12db35(0x2ec)];}get[_0x321558(0x434)](){const _0x15f0c0=_0x321558;return this[_0x15f0c0(0x8bc)];}get['isRangeSupported'](){const _0xe8b403=_0x321558;return this[_0xe8b403(0x9c7)];}get[_0x321558(0x913)](){const _0x117179=_0x321558;return this[_0x117179(0x6f5)];}async['read'](){const _0x5aa4f7=_0x321558;await this[_0x5aa4f7(0x615)]['promise'];const {value:_0xff91ca,done:_0x177eff}=await this[_0x5aa4f7(0x300)][_0x5aa4f7(0x37b)]();if(_0x177eff)return{'value':_0xff91ca,'done':_0x177eff};return this[_0x5aa4f7(0xc7)]+=_0xff91ca['byteLength'],this[_0x5aa4f7(0x3bf)]?.({'loaded':this[_0x5aa4f7(0xc7)],'total':this[_0x5aa4f7(0x8bc)]}),{'value':_0x34af55(_0xff91ca),'done':![]};}[_0x321558(0x8c6)](_0x443b65){const _0x7f487b=_0x321558;this['_reader']?.['cancel'](_0x443b65),this[_0x7f487b(0x6b6)][_0x7f487b(0x304)]();}}class _0x534e26{constructor(_0x42e376,_0x398f33,_0xb981d2){const _0x3ca3d6=_0x321558;this[_0x3ca3d6(0x2a3)]=_0x42e376,this[_0x3ca3d6(0x300)]=null,this['_loaded']=0x0;const _0x5a8b5a=_0x42e376['source'];this[_0x3ca3d6(0x79f)]=_0x5a8b5a[_0x3ca3d6(0x113)]||![],this[_0x3ca3d6(0x5a2)]=new _0x2ba3f2['PromiseCapability'](),this[_0x3ca3d6(0x6f5)]=!_0x5a8b5a['disableStream'],this[_0x3ca3d6(0x6b6)]=new AbortController(),this[_0x3ca3d6(0x289)]=_0xa539c3(this[_0x3ca3d6(0x2a3)]['httpHeaders']),this[_0x3ca3d6(0x289)]['append'](_0x3ca3d6(0x70b),_0x3ca3d6(0x129)+_0x398f33+'-'+(_0xb981d2-0x1));const _0x38795a=_0x5a8b5a[_0x3ca3d6(0x6a1)];fetch(_0x38795a,_0x37d57a(this[_0x3ca3d6(0x289)],this['_withCredentials'],this[_0x3ca3d6(0x6b6)]))[_0x3ca3d6(0x22d)](_0x140c1c=>{const _0x2982d3=_0x3ca3d6;if(!(0x0,_0x580dfa['validateResponseStatus'])(_0x140c1c[_0x2982d3(0x78b)]))throw(0x0,_0x580dfa['createResponseStatusError'])(_0x140c1c[_0x2982d3(0x78b)],_0x38795a);this[_0x2982d3(0x5a2)][_0x2982d3(0x442)](),this[_0x2982d3(0x300)]=_0x140c1c[_0x2982d3(0x4e7)][_0x2982d3(0x3dd)]();})[_0x3ca3d6(0x75f)](this[_0x3ca3d6(0x5a2)][_0x3ca3d6(0x282)]),this[_0x3ca3d6(0x3bf)]=null;}get[_0x321558(0x913)](){const _0x50a18d=_0x321558;return this[_0x50a18d(0x6f5)];}async[_0x321558(0x37b)](){const _0x44f741=_0x321558;await this[_0x44f741(0x5a2)][_0x44f741(0x4dd)];const {value:_0x14ea45,done:_0xbc0e2f}=await this[_0x44f741(0x300)][_0x44f741(0x37b)]();if(_0xbc0e2f)return{'value':_0x14ea45,'done':_0xbc0e2f};return this[_0x44f741(0xc7)]+=_0x14ea45[_0x44f741(0x110)],this[_0x44f741(0x3bf)]?.({'loaded':this[_0x44f741(0xc7)]}),{'value':_0x34af55(_0x14ea45),'done':![]};}['cancel'](_0x24e61f){const _0x2e4983=_0x321558;this[_0x2e4983(0x300)]?.[_0x2e4983(0x8c6)](_0x24e61f),this[_0x2e4983(0x6b6)][_0x2e4983(0x304)]();}}},(_0x4a48a3,_0x5f7bb6,_0x3437f3)=>{'use strict';const _0x222f48=a0_0x160d;Object[_0x222f48(0x430)](_0x5f7bb6,_0x222f48(0x19a),{'value':!![]}),_0x5f7bb6[_0x222f48(0x6e5)]=void 0x0,_0x5f7bb6[_0x222f48(0x29e)]=_0x47a32d,_0x5f7bb6[_0x222f48(0x98f)]=_0x91b621;var _0xb42e1e=_0x3437f3(0x1),_0x298bfa=_0x3437f3(0x87);const _0x476c4d=0x186a0,_0x4dedb6=0x1e,_0x6f0a8f=0.8,_0x35d9c9=new Map();function _0x405775(_0x33827d,_0xfbfb7e){const _0xaaec7f=_0x222f48;let _0x27870c;if(_0xfbfb7e&&_0xb42e1e[_0xaaec7f(0x7a8)][_0xaaec7f(0x5ff)])_0x27870c=new OffscreenCanvas(_0x33827d,_0x33827d)[_0xaaec7f(0x802)]('2d',{'alpha':![]});else{const _0x128b26=document['createElement']('canvas');_0x128b26['width']=_0x128b26['height']=_0x33827d,_0x27870c=_0x128b26[_0xaaec7f(0x802)]('2d',{'alpha':![]});}return _0x27870c;}function _0x20b931(_0x27a481,_0x464c63){const _0x345b1f=_0x222f48,_0x29297d=_0x35d9c9[_0x345b1f(0x8c4)](_0x27a481);if(_0x29297d)return _0x29297d;const _0x2f520d=_0x405775(_0x4dedb6,_0x464c63);_0x2f520d[_0x345b1f(0x59d)]=_0x4dedb6+_0x345b1f(0x993)+_0x27a481;const _0x19b260=_0x2f520d[_0x345b1f(0x106)]('');let _0x48d8d2=_0x19b260[_0x345b1f(0x649)],_0x4cf3ef=Math[_0x345b1f(0x346)](_0x19b260[_0x345b1f(0x760)]);if(_0x48d8d2){const _0x1df6d4=_0x48d8d2/(_0x48d8d2+_0x4cf3ef);return _0x35d9c9['set'](_0x27a481,_0x1df6d4),_0x2f520d[_0x345b1f(0x75a)]['width']=_0x2f520d[_0x345b1f(0x75a)][_0x345b1f(0x999)]=0x0,_0x1df6d4;}_0x2f520d[_0x345b1f(0xc9)]=_0x345b1f(0x276),_0x2f520d[_0x345b1f(0x726)](0x0,0x0,_0x4dedb6,_0x4dedb6),_0x2f520d[_0x345b1f(0x32e)]('g',0x0,0x0);let _0x378912=_0x2f520d[_0x345b1f(0x3fc)](0x0,0x0,_0x4dedb6,_0x4dedb6)[_0x345b1f(0x41b)];_0x4cf3ef=0x0;for(let _0x31bd00=_0x378912[_0x345b1f(0x557)]-0x1-0x3;_0x31bd00>=0x0;_0x31bd00-=0x4){if(_0x378912[_0x31bd00]>0x0){_0x4cf3ef=Math[_0x345b1f(0x213)](_0x31bd00/0x4/_0x4dedb6);break;}}_0x2f520d['clearRect'](0x0,0x0,_0x4dedb6,_0x4dedb6),_0x2f520d['strokeText']('A',0x0,_0x4dedb6),_0x378912=_0x2f520d['getImageData'](0x0,0x0,_0x4dedb6,_0x4dedb6)[_0x345b1f(0x41b)],_0x48d8d2=0x0;for(let _0x11c860=0x0,_0x4b105e=_0x378912[_0x345b1f(0x557)];_0x11c860<_0x4b105e;_0x11c860+=0x4){if(_0x378912[_0x11c860]>0x0){_0x48d8d2=_0x4dedb6-Math[_0x345b1f(0x583)](_0x11c860/0x4/_0x4dedb6);break;}}_0x2f520d[_0x345b1f(0x75a)][_0x345b1f(0x98b)]=_0x2f520d['canvas'][_0x345b1f(0x999)]=0x0;if(_0x48d8d2){const _0x48ee23=_0x48d8d2/(_0x48d8d2+_0x4cf3ef);return _0x35d9c9['set'](_0x27a481,_0x48ee23),_0x48ee23;}return _0x35d9c9[_0x345b1f(0x98e)](_0x27a481,_0x6f0a8f),_0x6f0a8f;}function _0x2a05b3(_0x5b214d,_0x50cafa,_0x813b90){const _0x74ac91=_0x222f48,_0x14b2d6=document[_0x74ac91(0x400)](_0x74ac91(0x901)),_0x4e0d54={'angle':0x0,'canvasWidth':0x0,'hasText':_0x50cafa['str']!=='','hasEOL':_0x50cafa[_0x74ac91(0x837)],'fontSize':0x0};_0x5b214d['_textDivs'][_0x74ac91(0x7d6)](_0x14b2d6);const _0x1e8068=_0xb42e1e[_0x74ac91(0x5d7)][_0x74ac91(0x5dd)](_0x5b214d[_0x74ac91(0x574)],_0x50cafa[_0x74ac91(0x5dd)]);let _0x247fdb=Math[_0x74ac91(0x27c)](_0x1e8068[0x1],_0x1e8068[0x0]);const _0x12d8cf=_0x813b90[_0x50cafa['fontName']];_0x12d8cf[_0x74ac91(0x58b)]&&(_0x247fdb+=Math['PI']/0x2);const _0x49e011=Math[_0x74ac91(0x8cb)](_0x1e8068[0x2],_0x1e8068[0x3]),_0x213c04=_0x49e011*_0x20b931(_0x12d8cf[_0x74ac91(0x3a3)],_0x5b214d[_0x74ac91(0x17a)]);let _0x59c2f8,_0x5da744;_0x247fdb===0x0?(_0x59c2f8=_0x1e8068[0x4],_0x5da744=_0x1e8068[0x5]-_0x213c04):(_0x59c2f8=_0x1e8068[0x4]+_0x213c04*Math['sin'](_0x247fdb),_0x5da744=_0x1e8068[0x5]-_0x213c04*Math[_0x74ac91(0x93e)](_0x247fdb));const _0xcbf15e=_0x74ac91(0x7bd),_0xdb09b7=_0x14b2d6[_0x74ac91(0x498)];_0x5b214d[_0x74ac91(0x909)]===_0x5b214d[_0x74ac91(0x3a9)]?(_0xdb09b7[_0x74ac91(0x4fd)]=(0x64*_0x59c2f8/_0x5b214d['_pageWidth'])[_0x74ac91(0x803)](0x2)+'%',_0xdb09b7['top']=(0x64*_0x5da744/_0x5b214d[_0x74ac91(0x39c)])[_0x74ac91(0x803)](0x2)+'%'):(_0xdb09b7[_0x74ac91(0x4fd)]=''+_0xcbf15e+_0x59c2f8[_0x74ac91(0x803)](0x2)+_0x74ac91(0x426),_0xdb09b7[_0x74ac91(0x12f)]=''+_0xcbf15e+_0x5da744[_0x74ac91(0x803)](0x2)+'px)');_0xdb09b7[_0x74ac91(0x443)]=''+_0xcbf15e+_0x49e011[_0x74ac91(0x803)](0x2)+_0x74ac91(0x426),_0xdb09b7[_0x74ac91(0x3a3)]=_0x12d8cf['fontFamily'],_0x4e0d54[_0x74ac91(0x443)]=_0x49e011,_0x14b2d6['setAttribute'](_0x74ac91(0x9e4),'presentation'),_0x14b2d6[_0x74ac91(0x8a9)]=_0x50cafa[_0x74ac91(0xcf)],_0x14b2d6['dir']=_0x50cafa[_0x74ac91(0x311)];_0x5b214d['_fontInspectorEnabled']&&(_0x14b2d6[_0x74ac91(0x811)][_0x74ac91(0x247)]=_0x50cafa[_0x74ac91(0x247)]);_0x247fdb!==0x0&&(_0x4e0d54['angle']=_0x247fdb*(0xb4/Math['PI']));let _0x53df68=![];if(_0x50cafa[_0x74ac91(0xcf)][_0x74ac91(0x557)]>0x1)_0x53df68=!![];else{if(_0x50cafa['str']!=='\x20'&&_0x50cafa[_0x74ac91(0x5dd)][0x0]!==_0x50cafa['transform'][0x3]){const _0x4147cf=Math[_0x74ac91(0x346)](_0x50cafa[_0x74ac91(0x5dd)][0x0]),_0x288641=Math['abs'](_0x50cafa[_0x74ac91(0x5dd)][0x3]);_0x4147cf!==_0x288641&&Math[_0x74ac91(0x78d)](_0x4147cf,_0x288641)/Math['min'](_0x4147cf,_0x288641)>1.5&&(_0x53df68=!![]);}}_0x53df68&&(_0x4e0d54['canvasWidth']=_0x12d8cf[_0x74ac91(0x58b)]?_0x50cafa[_0x74ac91(0x999)]:_0x50cafa[_0x74ac91(0x98b)]),_0x5b214d[_0x74ac91(0x5a8)][_0x74ac91(0x98e)](_0x14b2d6,_0x4e0d54),_0x5b214d[_0x74ac91(0x4ff)]&&_0x5b214d[_0x74ac91(0x8e6)](_0x14b2d6);}function _0x429e4a(_0x45ff41){const _0x342917=_0x222f48,{div:_0x3b4f63,scale:_0x1866ae,properties:_0x383b63,ctx:_0x1a8d41,prevFontSize:_0x263840,prevFontFamily:_0x2e3547}=_0x45ff41,{style:_0x64b0b}=_0x3b4f63;let _0x3c2b66='';if(_0x383b63[_0x342917(0x18f)]!==0x0&&_0x383b63[_0x342917(0x504)]){const {fontFamily:_0x244f9c}=_0x64b0b,{canvasWidth:_0x551a8f,fontSize:_0x3e4e8e}=_0x383b63;(_0x263840!==_0x3e4e8e||_0x2e3547!==_0x244f9c)&&(_0x1a8d41[_0x342917(0x59d)]=_0x3e4e8e*_0x1866ae+_0x342917(0x993)+_0x244f9c,_0x45ff41['prevFontSize']=_0x3e4e8e,_0x45ff41[_0x342917(0x3fe)]=_0x244f9c);const {width:_0x2cd6d5}=_0x1a8d41[_0x342917(0x106)](_0x3b4f63[_0x342917(0x8a9)]);_0x2cd6d5>0x0&&(_0x3c2b66='scaleX('+_0x551a8f*_0x1866ae/_0x2cd6d5+')');}_0x383b63['angle']!==0x0&&(_0x3c2b66='rotate('+_0x383b63[_0x342917(0x3a0)]+_0x342917(0x428)+_0x3c2b66),_0x3c2b66[_0x342917(0x557)]>0x0&&(_0x64b0b['transform']=_0x3c2b66);}function _0x238899(_0x25a942){const _0x283017=_0x222f48;if(_0x25a942[_0x283017(0x202)])return;const _0x28f512=_0x25a942['_textDivs'],_0xd01dc7=_0x25a942['_capability'],_0x280484=_0x28f512[_0x283017(0x557)];if(_0x280484>_0x476c4d){_0xd01dc7['resolve']();return;}if(!_0x25a942[_0x283017(0x4ff)])for(const _0x838c1a of _0x28f512){_0x25a942[_0x283017(0x8e6)](_0x838c1a);}_0xd01dc7[_0x283017(0x442)]();}class _0x3d6b0e{constructor(_0x1e848e){const _0x536107=_0x222f48;let {textContentSource:_0x3eba44,container:_0x2b9b8f,viewport:_0x1e700a,textDivs:_0x3c0b61,textDivProperties:_0xe5d4f4,textContentItemsStr:_0x9413ff,isOffscreenCanvasSupported:_0x589988}=_0x1e848e;this[_0x536107(0x150)]=_0x3eba44,this['_isReadableStream']=_0x3eba44 instanceof ReadableStream,this[_0x536107(0x909)]=this['_rootContainer']=_0x2b9b8f,this[_0x536107(0xd4)]=_0x3c0b61||[],this[_0x536107(0x818)]=_0x9413ff||[],this[_0x536107(0x17a)]=_0x589988,this[_0x536107(0x97e)]=!!globalThis[_0x536107(0x678)]?.[_0x536107(0x829)],this[_0x536107(0x300)]=null,this['_textDivProperties']=_0xe5d4f4||new WeakMap(),this[_0x536107(0x202)]=![],this[_0x536107(0x869)]=new _0xb42e1e[(_0x536107(0x7e3))](),this[_0x536107(0x927)]={'prevFontSize':null,'prevFontFamily':null,'div':null,'scale':_0x1e700a[_0x536107(0xc8)]*(globalThis[_0x536107(0x31d)]||0x1),'properties':null,'ctx':_0x405775(0x0,_0x589988)};const {pageWidth:_0x54eb32,pageHeight:_0xf0b64f,pageX:_0x3d0672,pageY:_0x54b817}=_0x1e700a[_0x536107(0x621)];this['_transform']=[0x1,0x0,0x0,-0x1,-_0x3d0672,_0x54b817+_0xf0b64f],this[_0x536107(0x928)]=_0x54eb32,this['_pageHeight']=_0xf0b64f,(0x0,_0x298bfa['setLayerDimensions'])(_0x2b9b8f,_0x1e700a),this[_0x536107(0x869)][_0x536107(0x4dd)][_0x536107(0x7e0)](()=>{const _0xe6a12=_0x536107;this[_0xe6a12(0x927)]=null;})[_0x536107(0x75f)](()=>{});}get[_0x222f48(0x4dd)](){return this['_capability']['promise'];}[_0x222f48(0x8c6)](){const _0x372bcc=_0x222f48;this[_0x372bcc(0x202)]=!![],this['_reader']&&(this[_0x372bcc(0x300)][_0x372bcc(0x8c6)](new _0xb42e1e[(_0x372bcc(0x980))]('TextLayer\x20task\x20cancelled.'))['catch'](()=>{}),this[_0x372bcc(0x300)]=null),this['_capability']['reject'](new _0xb42e1e[(_0x372bcc(0x980))](_0x372bcc(0x404)));}['_processItems'](_0x323246,_0xd3df2){const _0x529bce=_0x222f48;for(const _0x47a1d0 of _0x323246){if(_0x47a1d0[_0x529bce(0xcf)]===undefined){if(_0x47a1d0[_0x529bce(0x9fd)]==='beginMarkedContentProps'||_0x47a1d0[_0x529bce(0x9fd)]==='beginMarkedContent'){const _0x17ebb7=this[_0x529bce(0x909)];this[_0x529bce(0x909)]=document['createElement'](_0x529bce(0x901)),this[_0x529bce(0x909)][_0x529bce(0x2bc)][_0x529bce(0x156)](_0x529bce(0x57a)),_0x47a1d0['id']!==null&&this[_0x529bce(0x909)][_0x529bce(0x636)]('id',''+_0x47a1d0['id']),_0x17ebb7[_0x529bce(0x45e)](this[_0x529bce(0x909)]);}else _0x47a1d0[_0x529bce(0x9fd)]===_0x529bce(0x8a4)&&(this[_0x529bce(0x909)]=this[_0x529bce(0x909)][_0x529bce(0x3dc)]);continue;}this[_0x529bce(0x818)][_0x529bce(0x7d6)](_0x47a1d0['str']),_0x2a05b3(this,_0x47a1d0,_0xd3df2);}}[_0x222f48(0x8e6)](_0x10074d){const _0x38bfbc=_0x222f48,_0x940033=this[_0x38bfbc(0x927)]['properties']=this[_0x38bfbc(0x5a8)][_0x38bfbc(0x8c4)](_0x10074d);this[_0x38bfbc(0x927)][_0x38bfbc(0x903)]=_0x10074d,_0x429e4a(this[_0x38bfbc(0x927)]);_0x940033[_0x38bfbc(0x504)]&&this['_container'][_0x38bfbc(0x45e)](_0x10074d);if(_0x940033[_0x38bfbc(0x837)]){const _0x46e2da=document['createElement']('br');_0x46e2da[_0x38bfbc(0x636)](_0x38bfbc(0x9e4),_0x38bfbc(0x98c)),this[_0x38bfbc(0x909)][_0x38bfbc(0x45e)](_0x46e2da);}}[_0x222f48(0x47c)](){const _0x37f66f=_0x222f48,_0x16c628=new _0xb42e1e[(_0x37f66f(0x7e3))]();let _0x5d9a68=Object[_0x37f66f(0x77c)](null);if(this['_isReadableStream']){const _0x2f3404=()=>{const _0x2bbf46=_0x37f66f;this[_0x2bbf46(0x300)]['read']()[_0x2bbf46(0x22d)](_0x178c72=>{const _0x253847=_0x2bbf46;let {value:_0xf78bf7,done:_0x1cc46f}=_0x178c72;if(_0x1cc46f){_0x16c628['resolve']();return;}Object[_0x253847(0x9c0)](_0x5d9a68,_0xf78bf7['styles']),this[_0x253847(0x4a5)](_0xf78bf7['items'],_0x5d9a68),_0x2f3404();},_0x16c628[_0x2bbf46(0x282)]);};this['_reader']=this[_0x37f66f(0x150)][_0x37f66f(0x3dd)](),_0x2f3404();}else{if(this[_0x37f66f(0x150)]){const {items:_0x2172b6,styles:_0x2704ec}=this[_0x37f66f(0x150)];this['_processItems'](_0x2172b6,_0x2704ec),_0x16c628[_0x37f66f(0x442)]();}else throw new Error('No\x20\x22textContentSource\x22\x20parameter\x20specified.');}_0x16c628[_0x37f66f(0x4dd)][_0x37f66f(0x22d)](()=>{_0x5d9a68=null,_0x238899(this);},this['_capability'][_0x37f66f(0x282)]);}}_0x5f7bb6[_0x222f48(0x6e5)]=_0x3d6b0e;function _0x47a32d(_0x1a3af1){const _0x2af8cf=_0x222f48;!_0x1a3af1[_0x2af8cf(0x8d7)]&&(_0x1a3af1[_0x2af8cf(0x8a9)]||_0x1a3af1['textContentStream'])&&((0x0,_0x298bfa[_0x2af8cf(0x30f)])(_0x2af8cf(0x2cb)+_0x2af8cf(0x870)),_0x1a3af1[_0x2af8cf(0x8d7)]=_0x1a3af1['textContent']||_0x1a3af1[_0x2af8cf(0x17c)]);const {container:_0x268c08,viewport:_0xd25fa6}=_0x1a3af1,_0x57937a=getComputedStyle(_0x268c08),_0x37bcc0=_0x57937a[_0x2af8cf(0x1bb)]('visibility'),_0x29322b=parseFloat(_0x57937a[_0x2af8cf(0x1bb)](_0x2af8cf(0x26e)));_0x37bcc0==='visible'&&(!_0x29322b||Math[_0x2af8cf(0x346)](_0x29322b-_0xd25fa6[_0x2af8cf(0xc8)])>0.00001)&&console[_0x2af8cf(0x9e3)](_0x2af8cf(0x1c7)+'to\x20the\x20same\x20value\x20as\x20`viewport.scale`,\x20'+'either\x20on\x20the\x20`container`-element\x20itself\x20or\x20higher\x20up\x20in\x20the\x20DOM.');const _0x4b15af=new _0x3d6b0e(_0x1a3af1);return _0x4b15af[_0x2af8cf(0x47c)](),_0x4b15af;}function _0x91b621(_0x2269b8){const _0x446ec3=_0x222f48;let {container:_0x8cf6e8,viewport:_0x3596b2,textDivs:_0x93a2b0,textDivProperties:_0x303e53,isOffscreenCanvasSupported:_0x34cc8c,mustRotate:mustRotate=!![],mustRescale:mustRescale=!![]}=_0x2269b8;mustRotate&&(0x0,_0x298bfa[_0x446ec3(0x95e)])(_0x8cf6e8,{'rotation':_0x3596b2[_0x446ec3(0x7af)]});if(mustRescale){const _0x3cfc96=_0x405775(0x0,_0x34cc8c),_0x2f083c=_0x3596b2[_0x446ec3(0xc8)]*(globalThis[_0x446ec3(0x31d)]||0x1),_0x21a5f8={'prevFontSize':null,'prevFontFamily':null,'div':null,'scale':_0x2f083c,'properties':null,'ctx':_0x3cfc96};for(const _0x17249d of _0x93a2b0){_0x21a5f8['properties']=_0x303e53[_0x446ec3(0x8c4)](_0x17249d),_0x21a5f8[_0x446ec3(0x903)]=_0x17249d,_0x429e4a(_0x21a5f8);}}}},(_0x14d8c5,_0x2373f6,_0xb4085f)=>{'use strict';const _0x1696c3=a0_0x160d;Object[_0x1696c3(0x430)](_0x2373f6,_0x1696c3(0x19a),{'value':!![]}),_0x2373f6[_0x1696c3(0x3a7)]=void 0x0;var _0x1c7afa=_0xb4085f(0x1),_0x194244=_0xb4085f(0x85),_0x4419f6=_0xb4085f(0x86),_0xb2d745=_0xb4085f(0x9c),_0x3c6c3d=_0xb4085f(0xa1),_0x44c54a=_0xb4085f(0x87),_0x13c59a=_0xb4085f(0xa2);class _0x3dc78e{#accessibilityManager;#allowClick=![];#annotationLayer=null;#boundPointerup=this[_0x1696c3(0x3f7)][_0x1696c3(0x5e8)](this);#boundPointerdown=this[_0x1696c3(0x546)]['bind'](this);#editors=new Map();#hadPointerDown=![];#isCleaningUp=![];#isDisabling=![];#uiManager;static [_0x1696c3(0x271)]=![];constructor(_0x5b1b88){const _0x256f9a=_0x1696c3;let {uiManager:_0x41ec5c,pageIndex:_0x555656,div:_0x5996ae,accessibilityManager:_0x1de9d8,annotationLayer:_0x346572,viewport:_0x473705,l10n:_0x2f96f6}=_0x5b1b88;const _0x20a80a=[_0xb2d745['FreeTextEditor'],_0x3c6c3d['InkEditor'],_0x13c59a[_0x256f9a(0x254)]];if(!_0x3dc78e[_0x256f9a(0x271)]){_0x3dc78e['_initialized']=!![];for(const _0x133f86 of _0x20a80a){_0x133f86[_0x256f9a(0x86f)](_0x2f96f6);}}_0x41ec5c['registerEditorTypes'](_0x20a80a),this.#uiManager=_0x41ec5c,this[_0x256f9a(0x700)]=_0x555656,this[_0x256f9a(0x903)]=_0x5996ae,this.#accessibilityManager=_0x1de9d8,this.#annotationLayer=_0x346572,this['viewport']=_0x473705,this.#uiManager[_0x256f9a(0x5d3)](this);}get['isEmpty'](){const _0x1a74be=_0x1696c3;return this.#editors[_0x1a74be(0x87a)]===0x0;}['updateToolbar'](_0x18667e){const _0x404bdf=_0x1696c3;this.#uiManager[_0x404bdf(0x3fb)](_0x18667e);}['updateMode'](){const _0x580cca=_0x1696c3;let _0x52de43=arguments[_0x580cca(0x557)]>0x0&&arguments[0x0]!==undefined?arguments[0x0]:this.#uiManager[_0x580cca(0x59a)]();this.#cleanup(),_0x52de43===_0x1c7afa['AnnotationEditorType'][_0x580cca(0x8ac)]?(this['addInkEditorIfNeeded'](![]),this[_0x580cca(0x4d9)]()):this['enableClick'](),this.#uiManager['unselectAll'](),_0x52de43!==_0x1c7afa[_0x580cca(0x9a6)][_0x580cca(0x9f7)]&&(this['div']['classList']['toggle'](_0x580cca(0x473),_0x52de43===_0x1c7afa[_0x580cca(0x9a6)][_0x580cca(0x148)]),this['div'][_0x580cca(0x2bc)][_0x580cca(0x47a)](_0x580cca(0xd8),_0x52de43===_0x1c7afa['AnnotationEditorType'][_0x580cca(0x8ac)]),this[_0x580cca(0x903)][_0x580cca(0x2bc)][_0x580cca(0x47a)](_0x580cca(0x9ee),_0x52de43===_0x1c7afa[_0x580cca(0x9a6)][_0x580cca(0x8e8)]),this['div']['hidden']=![]);}[_0x1696c3(0x6f8)](_0x468390){const _0x438f50=_0x1696c3;if(!_0x468390&&this.#uiManager[_0x438f50(0x59a)]()!==_0x1c7afa[_0x438f50(0x9a6)][_0x438f50(0x8ac)])return;if(!_0x468390)for(const _0x29ef20 of this.#editors[_0x438f50(0x823)]()){if(_0x29ef20[_0x438f50(0x480)]()){_0x29ef20[_0x438f50(0x34b)]();return;}}const _0x5f4e38=this.#createAndAddNewEditor({'offsetX':0x0,'offsetY':0x0});_0x5f4e38[_0x438f50(0x34b)]();}[_0x1696c3(0x709)](_0x531b17){const _0x1e738c=_0x1696c3;this.#uiManager[_0x1e738c(0x709)](_0x531b17);}[_0x1696c3(0x72e)](_0x94ee67){const _0x32688c=_0x1696c3;this.#uiManager[_0x32688c(0x72e)](_0x94ee67);}[_0x1696c3(0x781)](){const _0x40ad3e=_0x1696c3;this[_0x40ad3e(0x903)][_0x40ad3e(0x498)][_0x40ad3e(0x511)]=_0x40ad3e(0x464);const _0x496c78=new Set();for(const _0x38e51a of this.#editors[_0x40ad3e(0x823)]()){_0x38e51a[_0x40ad3e(0x214)](),_0x38e51a[_0x40ad3e(0x66b)]&&_0x496c78[_0x40ad3e(0x156)](_0x38e51a['annotationElementId']);}if(!this.#annotationLayer)return;const _0x4099e5=this.#annotationLayer[_0x40ad3e(0x758)]();for(const _0x4b8b49 of _0x4099e5){_0x4b8b49['hide']();if(this.#uiManager['isDeletedAnnotationElement'](_0x4b8b49[_0x40ad3e(0x41b)]['id']))continue;if(_0x496c78['has'](_0x4b8b49[_0x40ad3e(0x41b)]['id']))continue;const _0x10289f=this[_0x40ad3e(0x7a3)](_0x4b8b49);if(!_0x10289f)continue;this['addOrRebuild'](_0x10289f),_0x10289f[_0x40ad3e(0x214)]();}}[_0x1696c3(0x5b6)](){const _0x1076ff=_0x1696c3;this.#isDisabling=!![],this[_0x1076ff(0x903)][_0x1076ff(0x498)][_0x1076ff(0x511)]='none';const _0x2095d0=new Set();for(const _0x5c794e of this.#editors[_0x1076ff(0x823)]()){_0x5c794e[_0x1076ff(0x8d0)]();if(!_0x5c794e['annotationElementId']||_0x5c794e[_0x1076ff(0x65d)]()!==null){_0x2095d0['add'](_0x5c794e[_0x1076ff(0x66b)]);continue;}this[_0x1076ff(0x6bc)](_0x5c794e[_0x1076ff(0x66b)])?.['show'](),_0x5c794e[_0x1076ff(0x10a)]();}if(this.#annotationLayer){const _0x2f443c=this.#annotationLayer[_0x1076ff(0x758)]();for(const _0x6f1281 of _0x2f443c){const {id:_0x11ca2e}=_0x6f1281[_0x1076ff(0x41b)];if(_0x2095d0['has'](_0x11ca2e)||this.#uiManager[_0x1076ff(0x7cd)](_0x11ca2e))continue;_0x6f1281[_0x1076ff(0x2a0)]();}}this.#cleanup(),this[_0x1076ff(0x480)]&&(this[_0x1076ff(0x903)][_0x1076ff(0x495)]=!![]),this.#isDisabling=![];}[_0x1696c3(0x6bc)](_0x2e55b3){const _0xf72ff2=_0x1696c3;return this.#annotationLayer?.[_0xf72ff2(0x6bc)](_0x2e55b3)||null;}[_0x1696c3(0x275)](_0x1d9f27){const _0x1f8135=_0x1696c3,_0x1d1e62=this.#uiManager['getActive']();if(_0x1d1e62===_0x1d9f27)return;this.#uiManager[_0x1f8135(0x275)](_0x1d9f27);}[_0x1696c3(0x24f)](){const _0x586c5f=_0x1696c3;this['div'][_0x586c5f(0x5cc)](_0x586c5f(0x546),this.#boundPointerdown),this[_0x586c5f(0x903)][_0x586c5f(0x5cc)]('pointerup',this.#boundPointerup);}[_0x1696c3(0x4d9)](){const _0x2a20b5=_0x1696c3;this['div'][_0x2a20b5(0x1c0)]('pointerdown',this.#boundPointerdown),this[_0x2a20b5(0x903)][_0x2a20b5(0x1c0)](_0x2a20b5(0x3f7),this.#boundPointerup);}[_0x1696c3(0x1d0)](_0x1ab719){const _0x2f71be=_0x1696c3;this.#editors[_0x2f71be(0x98e)](_0x1ab719['id'],_0x1ab719);const {annotationElementId:_0x132e7f}=_0x1ab719;_0x132e7f&&this.#uiManager[_0x2f71be(0x7cd)](_0x132e7f)&&this.#uiManager[_0x2f71be(0x5b5)](_0x1ab719);}['detach'](_0x247840){const _0x143e19=_0x1696c3;this.#editors['delete'](_0x247840['id']),this.#accessibilityManager?.[_0x143e19(0x795)](_0x247840['contentDiv']),!this.#isDisabling&&_0x247840['annotationElementId']&&this.#uiManager[_0x143e19(0x91a)](_0x247840);}['remove'](_0x37a60e){const _0x26e16b=_0x1696c3;this[_0x26e16b(0x644)](_0x37a60e),this.#uiManager[_0x26e16b(0x96c)](_0x37a60e),_0x37a60e[_0x26e16b(0x903)][_0x26e16b(0x498)][_0x26e16b(0x619)]=_0x26e16b(0x122),setTimeout(()=>{const _0x520548=_0x26e16b;_0x37a60e[_0x520548(0x903)][_0x520548(0x498)][_0x520548(0x619)]='',_0x37a60e[_0x520548(0x903)][_0x520548(0x10a)](),_0x37a60e[_0x520548(0x9a7)]=![],document[_0x520548(0x366)]===document[_0x520548(0x4e7)]&&this.#uiManager['focusMainContainer']();},0x0),!this.#isCleaningUp&&this['addInkEditorIfNeeded'](![]);}#changeParent(_0x2e124a){const _0x4bed78=_0x1696c3;if(_0x2e124a[_0x4bed78(0x4c3)]===this)return;_0x2e124a['annotationElementId']&&(this.#uiManager[_0x4bed78(0x91a)](_0x2e124a['annotationElementId']),_0x194244[_0x4bed78(0x8f0)][_0x4bed78(0x578)](_0x2e124a),_0x2e124a[_0x4bed78(0x66b)]=null),this[_0x4bed78(0x1d0)](_0x2e124a),_0x2e124a[_0x4bed78(0x4c3)]?.['detach'](_0x2e124a),_0x2e124a[_0x4bed78(0x3fd)](this),_0x2e124a[_0x4bed78(0x903)]&&_0x2e124a['isAttachedToDOM']&&(_0x2e124a[_0x4bed78(0x903)][_0x4bed78(0x10a)](),this[_0x4bed78(0x903)]['append'](_0x2e124a['div']));}[_0x1696c3(0x156)](_0x2b381a){const _0x24a529=_0x1696c3;this.#changeParent(_0x2b381a),this.#uiManager['addEditor'](_0x2b381a),this[_0x24a529(0x1d0)](_0x2b381a);if(!_0x2b381a[_0x24a529(0x9a7)]){const _0x812a14=_0x2b381a[_0x24a529(0x6c8)]();this[_0x24a529(0x903)]['append'](_0x812a14),_0x2b381a[_0x24a529(0x9a7)]=!![];}this['moveEditorInDOM'](_0x2b381a),_0x2b381a[_0x24a529(0x130)](),this.#uiManager[_0x24a529(0x7e5)](_0x2b381a);}[_0x1696c3(0x27b)](_0x1edc38){const _0x528c78=_0x1696c3;this.#accessibilityManager?.[_0x528c78(0x962)](this['div'],_0x1edc38[_0x528c78(0x903)],_0x1edc38[_0x528c78(0x1fe)],!![]);}[_0x1696c3(0x510)](_0x540a7e){const _0xd6d5ff=_0x1696c3;_0x540a7e[_0xd6d5ff(0x186)]()?_0x540a7e[_0xd6d5ff(0x9d3)]():this[_0xd6d5ff(0x156)](_0x540a7e);}[_0x1696c3(0x2bd)](_0x586935){const _0x9dc4f9=_0x1696c3,_0x32e9fe=()=>{const _0x525119=a0_0x160d;this[_0x525119(0x510)](_0x586935);},_0x57e0c8=()=>{const _0xa57abd=a0_0x160d;_0x586935[_0xa57abd(0x10a)]();};this[_0x9dc4f9(0x72e)]({'cmd':_0x32e9fe,'undo':_0x57e0c8,'mustExec':![]});}[_0x1696c3(0x260)](){const _0x5c10dc=_0x1696c3;return this.#uiManager[_0x5c10dc(0x520)]();}#createNewEditor(_0x55bb58){const _0x341102=_0x1696c3;switch(this.#uiManager[_0x341102(0x59a)]()){case _0x1c7afa[_0x341102(0x9a6)][_0x341102(0x148)]:return new _0xb2d745[(_0x341102(0x34c))](_0x55bb58);case _0x1c7afa['AnnotationEditorType'][_0x341102(0x8ac)]:return new _0x3c6c3d['InkEditor'](_0x55bb58);case _0x1c7afa[_0x341102(0x9a6)]['STAMP']:return new _0x13c59a[(_0x341102(0x254))](_0x55bb58);}return null;}[_0x1696c3(0x7a3)](_0x17a942){const _0x1337ba=_0x1696c3;switch(_0x17a942[_0x1337ba(0x417)]??_0x17a942[_0x1337ba(0x4e2)]){case _0x1c7afa[_0x1337ba(0x9a6)]['FREETEXT']:return _0xb2d745[_0x1337ba(0x34c)][_0x1337ba(0x7a3)](_0x17a942,this,this.#uiManager);case _0x1c7afa[_0x1337ba(0x9a6)]['INK']:return _0x3c6c3d['InkEditor']['deserialize'](_0x17a942,this,this.#uiManager);case _0x1c7afa['AnnotationEditorType'][_0x1337ba(0x8e8)]:return _0x13c59a[_0x1337ba(0x254)][_0x1337ba(0x7a3)](_0x17a942,this,this.#uiManager);}return null;}#createAndAddNewEditor(_0x1b5dcc){const _0x141fcd=_0x1696c3,_0x5d67a0=this[_0x141fcd(0x260)](),_0x222716=this.#createNewEditor({'parent':this,'id':_0x5d67a0,'x':_0x1b5dcc[_0x141fcd(0xdf)],'y':_0x1b5dcc[_0x141fcd(0x431)],'uiManager':this.#uiManager});return _0x222716&&this['add'](_0x222716),_0x222716;}[_0x1696c3(0x18e)](_0x4e1ab4){this.#uiManager['setSelected'](_0x4e1ab4);}[_0x1696c3(0x3f3)](_0x128c5b){const _0x571964=_0x1696c3;this.#uiManager[_0x571964(0x3f3)](_0x128c5b);}['isSelected'](_0x35d83b){const _0x59a2b0=_0x1696c3;return this.#uiManager[_0x59a2b0(0x4fe)](_0x35d83b);}[_0x1696c3(0x261)](_0x50768b){const _0x1e10da=_0x1696c3;this.#uiManager[_0x1e10da(0x261)](_0x50768b);}[_0x1696c3(0x3f7)](_0x5aa733){const _0x5a07f4=_0x1696c3,{isMac:_0x57a5b6}=_0x1c7afa['FeatureTest'][_0x5a07f4(0x5e2)];if(_0x5aa733['button']!==0x0||_0x5aa733[_0x5a07f4(0x8ca)]&&_0x57a5b6)return;if(_0x5aa733[_0x5a07f4(0x1c8)]!==this[_0x5a07f4(0x903)])return;if(!this.#hadPointerDown)return;this.#hadPointerDown=![];if(!this.#allowClick){this.#allowClick=!![];return;}this.#createAndAddNewEditor(_0x5aa733);}['pointerdown'](_0x370e8d){const _0x4fbf6a=_0x1696c3,{isMac:_0x9c72b6}=_0x1c7afa[_0x4fbf6a(0x7a8)][_0x4fbf6a(0x5e2)];if(_0x370e8d['button']!==0x0||_0x370e8d[_0x4fbf6a(0x8ca)]&&_0x9c72b6)return;if(_0x370e8d[_0x4fbf6a(0x1c8)]!==this[_0x4fbf6a(0x903)])return;this.#hadPointerDown=!![];const _0x3ff039=this.#uiManager[_0x4fbf6a(0x96e)]();this.#allowClick=!_0x3ff039||_0x3ff039['isEmpty']();}[_0x1696c3(0x91c)](_0x2a06c2){const _0x534c0b=_0x1696c3,_0x3eddf0=_0x2a06c2[_0x534c0b(0x481)][_0x534c0b(0x593)](_0x534c0b(0x813)),_0x509558=this.#uiManager[_0x534c0b(0x6b0)](_0x3eddf0);if(!_0x509558)return;_0x2a06c2['preventDefault'](),_0x2a06c2[_0x534c0b(0x481)][_0x534c0b(0x230)]='move',this.#changeParent(_0x509558);const _0x50a21a=this[_0x534c0b(0x903)]['getBoundingClientRect'](),_0x5888e4=_0x2a06c2['clientX']-_0x50a21a['x'],_0x52be1c=_0x2a06c2[_0x534c0b(0x8c9)]-_0x50a21a['y'];_0x509558[_0x534c0b(0x18d)](_0x5888e4-_0x509558[_0x534c0b(0x7f3)],_0x52be1c-_0x509558[_0x534c0b(0x469)]),this['moveEditorInDOM'](_0x509558),_0x509558['div'][_0x534c0b(0x47d)]();}[_0x1696c3(0x20e)](_0x4256ea){_0x4256ea['preventDefault']();}[_0x1696c3(0x256)](){const _0x4cc4a8=_0x1696c3;this.#uiManager[_0x4cc4a8(0x96e)]()?.[_0x4cc4a8(0x4c3)]===this&&this.#uiManager[_0x4cc4a8(0x275)](null);for(const _0x169ab9 of this.#editors['values']()){this.#accessibilityManager?.[_0x4cc4a8(0x795)](_0x169ab9['contentDiv']),_0x169ab9['setParent'](null),_0x169ab9[_0x4cc4a8(0x9a7)]=![],_0x169ab9['div'][_0x4cc4a8(0x10a)]();}this[_0x4cc4a8(0x903)]=null,this.#editors['clear'](),this.#uiManager[_0x4cc4a8(0x4ca)](this);}#cleanup(){const _0x2500ac=_0x1696c3;this.#isCleaningUp=!![];for(const _0x58bd47 of this.#editors[_0x2500ac(0x823)]()){_0x58bd47[_0x2500ac(0x480)]()&&_0x58bd47['remove']();}this.#isCleaningUp=![];}[_0x1696c3(0x6c8)](_0x111184){const _0x54268f=_0x1696c3;let {viewport:_0x1c302d}=_0x111184;this['viewport']=_0x1c302d,(0x0,_0x44c54a['setLayerDimensions'])(this['div'],_0x1c302d),(0x0,_0x4419f6[_0x54268f(0x6c1)])(this,this[_0x54268f(0x903)],[_0x54268f(0x20e),'drop']);for(const _0x1ca069 of this.#uiManager[_0x54268f(0x9f1)](this[_0x54268f(0x700)])){this[_0x54268f(0x156)](_0x1ca069);}this[_0x54268f(0x929)]();}[_0x1696c3(0x1b4)](_0xb66f06){const _0x2e48ea=_0x1696c3;let {viewport:_0x2a16cf}=_0xb66f06;this.#uiManager['commitOrRemove'](),this[_0x2e48ea(0x502)]=_0x2a16cf,(0x0,_0x44c54a[_0x2e48ea(0x95e)])(this[_0x2e48ea(0x903)],{'rotation':_0x2a16cf[_0x2e48ea(0x7af)]}),this[_0x2e48ea(0x929)]();}get['pageDimensions'](){const _0xc994e6=_0x1696c3,{pageWidth:_0x2dfab2,pageHeight:_0x206856}=this['viewport'][_0xc994e6(0x621)];return[_0x2dfab2,_0x206856];}}_0x2373f6[_0x1696c3(0x3a7)]=_0x3dc78e;},(_0x4b89e4,_0x242f87,_0x284876)=>{'use strict';const _0x36bfb8=a0_0x160d;Object[_0x36bfb8(0x430)](_0x242f87,_0x36bfb8(0x19a),{'value':!![]}),_0x242f87[_0x36bfb8(0x34c)]=void 0x0;var _0x1150c4=_0x284876(0x1),_0x27b28c=_0x284876(0x86),_0xe25bfc=_0x284876(0x85),_0x4fbfd5=_0x284876(0x9d);class _0x16ccf7 extends _0xe25bfc['AnnotationEditor']{#boundEditorDivBlur=this[_0x36bfb8(0x386)]['bind'](this);#boundEditorDivFocus=this[_0x36bfb8(0x9b1)]['bind'](this);#boundEditorDivInput=this[_0x36bfb8(0x3b1)][_0x36bfb8(0x5e8)](this);#boundEditorDivKeydown=this[_0x36bfb8(0x958)]['bind'](this);#color;#content='';#editorDivId=this['id']+_0x36bfb8(0x73b);#fontSize;#initialData=null;static ['_freeTextDefaultContent']='';static [_0x36bfb8(0x1f7)];static ['_internalPadding']=0x0;static [_0x36bfb8(0x1fb)]=null;static [_0x36bfb8(0x20a)]=0xa;static get['_keyboardManager'](){const _0x11088c=_0x36bfb8;return(0x0,_0x1150c4[_0x11088c(0x51d)])(this,_0x11088c(0x76a),new _0x27b28c[(_0x11088c(0x686))]([[['ctrl+s',_0x11088c(0x8c2),_0x11088c(0x1a0),_0x11088c(0x257)],_0x16ccf7['prototype'][_0x11088c(0x69b)],!![]],[[_0x11088c(0x3df),_0x11088c(0x2e4),'Escape',_0x11088c(0x86e)],_0x16ccf7[_0x11088c(0x821)]['commitOrRemove']]]));}static [_0x36bfb8(0x879)]=_0x36bfb8(0x41a);constructor(_0x330445){const _0x379b4d=_0x36bfb8;super({..._0x330445,'name':_0x379b4d(0x265)}),this.#color=_0x330445[_0x379b4d(0x5fe)]||_0x16ccf7[_0x379b4d(0x1fb)]||_0xe25bfc[_0x379b4d(0x8f0)][_0x379b4d(0x350)],this.#fontSize=_0x330445[_0x379b4d(0x443)]||_0x16ccf7[_0x379b4d(0x20a)];}static[_0x36bfb8(0x86f)](_0xadbfdc){const _0x305557=_0x36bfb8;this['_l10nPromise']=new Map([_0x305557(0x15c),_0x305557(0x67c)][_0x305557(0x7ec)](_0x1166eb=>[_0x1166eb,_0xadbfdc[_0x305557(0x8c4)](_0x1166eb)]));const _0x203e52=getComputedStyle(document[_0x305557(0x176)]);this[_0x305557(0x1e6)]=parseFloat(_0x203e52['getPropertyValue'](_0x305557(0x994)));}static[_0x36bfb8(0x49d)](_0x26b215,_0x1da455){const _0x352fec=_0x36bfb8;switch(_0x26b215){case _0x1150c4[_0x352fec(0x6b8)][_0x352fec(0x908)]:_0x16ccf7['_defaultFontSize']=_0x1da455;break;case _0x1150c4[_0x352fec(0x6b8)][_0x352fec(0x57d)]:_0x16ccf7[_0x352fec(0x1fb)]=_0x1da455;break;}}['updateParams'](_0x35d834,_0x539358){const _0x391a58=_0x36bfb8;switch(_0x35d834){case _0x1150c4[_0x391a58(0x6b8)][_0x391a58(0x908)]:this.#updateFontSize(_0x539358);break;case _0x1150c4['AnnotationEditorParamsType'][_0x391a58(0x57d)]:this.#updateColor(_0x539358);break;}}static get[_0x36bfb8(0x5bb)](){const _0x3fb666=_0x36bfb8;return[[_0x1150c4[_0x3fb666(0x6b8)]['FREETEXT_SIZE'],_0x16ccf7['_defaultFontSize']],[_0x1150c4['AnnotationEditorParamsType']['FREETEXT_COLOR'],_0x16ccf7[_0x3fb666(0x1fb)]||_0xe25bfc[_0x3fb666(0x8f0)][_0x3fb666(0x350)]]];}get[_0x36bfb8(0x2da)](){const _0x193399=_0x36bfb8;return[[_0x1150c4['AnnotationEditorParamsType']['FREETEXT_SIZE'],this.#fontSize],[_0x1150c4[_0x193399(0x6b8)][_0x193399(0x57d)],this.#color]];}#updateFontSize(_0x52ff11){const _0x3f3da1=_0x36bfb8,_0xc32a92=_0x32c287=>{const _0x55ee98=a0_0x160d;this[_0x55ee98(0x878)][_0x55ee98(0x498)]['fontSize']=_0x55ee98(0x8de)+_0x32c287+_0x55ee98(0x108),this[_0x55ee98(0x18d)](0x0,-(_0x32c287-this.#fontSize)*this[_0x55ee98(0x54a)]),this.#fontSize=_0x32c287,this.#setEditorDimensions();},_0x4f35c8=this.#fontSize;this['addCommands']({'cmd':()=>{_0xc32a92(_0x52ff11);},'undo':()=>{_0xc32a92(_0x4f35c8);},'mustExec':!![],'type':_0x1150c4[_0x3f3da1(0x6b8)][_0x3f3da1(0x908)],'overwriteIfSameType':!![],'keepUndo':!![]});}#updateColor(_0x1900cc){const _0x286422=_0x36bfb8,_0x13681c=this.#color;this[_0x286422(0x72e)]({'cmd':()=>{const _0x4cbc66=_0x286422;this.#color=this[_0x4cbc66(0x878)][_0x4cbc66(0x498)][_0x4cbc66(0x5fe)]=_0x1900cc;},'undo':()=>{const _0x5d0c6d=_0x286422;this.#color=this['editorDiv'][_0x5d0c6d(0x498)][_0x5d0c6d(0x5fe)]=_0x13681c;},'mustExec':!![],'type':_0x1150c4[_0x286422(0x6b8)]['FREETEXT_COLOR'],'overwriteIfSameType':!![],'keepUndo':!![]});}[_0x36bfb8(0x76e)](){const _0x56cfb6=_0x36bfb8,_0x3bfb85=this[_0x56cfb6(0x54a)];return[-_0x16ccf7[_0x56cfb6(0x1e6)]*_0x3bfb85,-(_0x16ccf7[_0x56cfb6(0x1e6)]+this.#fontSize)*_0x3bfb85];}[_0x36bfb8(0x9d3)](){const _0x2aef70=_0x36bfb8;super[_0x2aef70(0x9d3)]();if(this['div']===null)return;!this[_0x2aef70(0x9a7)]&&this[_0x2aef70(0x4c3)][_0x2aef70(0x156)](this);}[_0x36bfb8(0x8ce)](){const _0x4aed67=_0x36bfb8;if(this[_0x4aed67(0x761)]())return;this[_0x4aed67(0x4c3)][_0x4aed67(0x709)](![]),this[_0x4aed67(0x4c3)][_0x4aed67(0x3fb)](_0x1150c4[_0x4aed67(0x9a6)][_0x4aed67(0x148)]),super['enableEditMode'](),this[_0x4aed67(0x91b)][_0x4aed67(0x2bc)][_0x4aed67(0x10a)](_0x4aed67(0x829)),this[_0x4aed67(0x878)][_0x4aed67(0x341)]=!![],this[_0x4aed67(0x903)][_0x4aed67(0x7dc)]=![],this[_0x4aed67(0x903)]['removeAttribute'](_0x4aed67(0x416)),this[_0x4aed67(0x878)]['addEventListener'](_0x4aed67(0x14c),this.#boundEditorDivKeydown),this[_0x4aed67(0x878)][_0x4aed67(0x5cc)](_0x4aed67(0x47d),this.#boundEditorDivFocus),this[_0x4aed67(0x878)][_0x4aed67(0x5cc)](_0x4aed67(0x456),this.#boundEditorDivBlur),this[_0x4aed67(0x878)]['addEventListener'](_0x4aed67(0x3e6),this.#boundEditorDivInput);}[_0x36bfb8(0x3ac)](){const _0x564718=_0x36bfb8;if(!this[_0x564718(0x761)]())return;this[_0x564718(0x4c3)][_0x564718(0x709)](!![]),super[_0x564718(0x3ac)](),this[_0x564718(0x91b)][_0x564718(0x2bc)]['add'](_0x564718(0x829)),this[_0x564718(0x878)][_0x564718(0x341)]=![],this[_0x564718(0x903)][_0x564718(0x636)](_0x564718(0x416),this.#editorDivId),this['div']['draggable']=!![],this[_0x564718(0x878)][_0x564718(0x1c0)](_0x564718(0x14c),this.#boundEditorDivKeydown),this['editorDiv'][_0x564718(0x1c0)](_0x564718(0x47d),this.#boundEditorDivFocus),this['editorDiv'][_0x564718(0x1c0)](_0x564718(0x456),this.#boundEditorDivBlur),this['editorDiv'][_0x564718(0x1c0)](_0x564718(0x3e6),this.#boundEditorDivInput),this[_0x564718(0x903)]['focus']({'preventScroll':!![]}),this[_0x564718(0x844)]=![],this[_0x564718(0x4c3)][_0x564718(0x903)][_0x564718(0x2bc)][_0x564718(0x156)](_0x564718(0x473));}[_0x36bfb8(0x887)](_0x1bd66c){const _0x52d1de=_0x36bfb8;super[_0x52d1de(0x887)](_0x1bd66c),_0x1bd66c['target']!==this[_0x52d1de(0x878)]&&this[_0x52d1de(0x878)][_0x52d1de(0x47d)]();}['onceAdded'](){const _0x4ab0c5=_0x36bfb8;if(this[_0x4ab0c5(0x98b)]){this.#cheatInitialRect();return;}this[_0x4ab0c5(0x8ce)](),this[_0x4ab0c5(0x878)][_0x4ab0c5(0x47d)]();}[_0x36bfb8(0x480)](){const _0x1679fb=_0x36bfb8;return!this[_0x1679fb(0x878)]||this[_0x1679fb(0x878)]['innerText'][_0x1679fb(0x900)]()==='';}[_0x36bfb8(0x10a)](){const _0xe6909e=_0x36bfb8;this[_0xe6909e(0x844)]=![],this[_0xe6909e(0x4c3)]&&(this[_0xe6909e(0x4c3)][_0xe6909e(0x709)](!![]),this[_0xe6909e(0x4c3)][_0xe6909e(0x903)]['classList'][_0xe6909e(0x156)](_0xe6909e(0x473))),super['remove']();}#extractText(){const _0x5a07bf=_0x36bfb8,_0x351780=this[_0x5a07bf(0x878)][_0x5a07bf(0x3c5)](_0x5a07bf(0x903));if(_0x351780[_0x5a07bf(0x557)]===0x0)return this[_0x5a07bf(0x878)][_0x5a07bf(0x4ef)];const _0x2bae25=[];for(const _0x4c45ac of _0x351780){_0x2bae25[_0x5a07bf(0x7d6)](_0x4c45ac[_0x5a07bf(0x4ef)]['replace'](/\r\n?|\n/,''));}return _0x2bae25['join']('\x0a');}#setEditorDimensions(){const _0xf70db2=_0x36bfb8,[_0x3912c8,_0x5dbbb3]=this[_0xf70db2(0x956)];let _0x49ccf8;if(this[_0xf70db2(0x9a7)])_0x49ccf8=this['div'][_0xf70db2(0x16d)]();else{const {currentLayer:_0x3b1919,div:_0x29eced}=this,_0x3046c8=_0x29eced[_0xf70db2(0x498)]['display'];_0x29eced[_0xf70db2(0x498)][_0xf70db2(0x619)]=_0xf70db2(0x495),_0x3b1919[_0xf70db2(0x903)][_0xf70db2(0x45e)](this[_0xf70db2(0x903)]),_0x49ccf8=_0x29eced['getBoundingClientRect'](),_0x29eced[_0xf70db2(0x10a)](),_0x29eced[_0xf70db2(0x498)][_0xf70db2(0x619)]=_0x3046c8;}this[_0xf70db2(0x7af)]%0xb4===this[_0xf70db2(0x25e)]%0xb4?(this[_0xf70db2(0x98b)]=_0x49ccf8[_0xf70db2(0x98b)]/_0x3912c8,this[_0xf70db2(0x999)]=_0x49ccf8[_0xf70db2(0x999)]/_0x5dbbb3):(this[_0xf70db2(0x98b)]=_0x49ccf8[_0xf70db2(0x999)]/_0x3912c8,this[_0xf70db2(0x999)]=_0x49ccf8[_0xf70db2(0x98b)]/_0x5dbbb3);}[_0x36bfb8(0x3b3)](){const _0x66a95=_0x36bfb8;if(!this[_0x66a95(0x761)]())return;super[_0x66a95(0x3b3)](),this[_0x66a95(0x3ac)]();const _0x19753e=this.#content,_0x15e97c=this.#content=this.#extractText()[_0x66a95(0x99e)]();if(_0x19753e===_0x15e97c)return;const _0x1e501e=_0x19d225=>{this.#content=_0x19d225;if(!_0x19d225){this['remove']();return;}this.#setContent(),this['rebuild'](),this.#setEditorDimensions();};this['addCommands']({'cmd':()=>{_0x1e501e(_0x15e97c);},'undo':()=>{_0x1e501e(_0x19753e);},'mustExec':![]}),this.#setEditorDimensions();}[_0x36bfb8(0x729)](){const _0x4c5bf3=_0x36bfb8;return this[_0x4c5bf3(0x761)]();}[_0x36bfb8(0xc5)](){const _0x20dcee=_0x36bfb8;this['enableEditMode'](),this[_0x20dcee(0x878)]['focus']();}[_0x36bfb8(0x327)](_0x40d655){const _0x1a888e=_0x36bfb8;this[_0x1a888e(0xc5)]();}[_0x36bfb8(0x14c)](_0x486253){const _0x5d0918=_0x36bfb8;_0x486253[_0x5d0918(0x1c8)]===this[_0x5d0918(0x903)]&&_0x486253[_0x5d0918(0x725)]==='Enter'&&this['enterInEditMode']();}['editorDivKeydown'](_0x28e01a){const _0xacfe01=_0x36bfb8;_0x16ccf7[_0xacfe01(0x76a)][_0xacfe01(0x249)](this,_0x28e01a);}['editorDivFocus'](_0x2fbf46){const _0x1698f8=_0x36bfb8;this[_0x1698f8(0x844)]=!![];}['editorDivBlur'](_0x31f6ab){const _0x38f9e2=_0x36bfb8;this[_0x38f9e2(0x844)]=![];}['editorDivInput'](_0x5221eb){const _0x291e68=_0x36bfb8;this['parent'][_0x291e68(0x903)]['classList']['toggle'](_0x291e68(0x473),this[_0x291e68(0x480)]());}[_0x36bfb8(0x8d0)](){const _0x567525=_0x36bfb8;this['editorDiv'][_0x567525(0x636)](_0x567525(0x9e4),'comment'),this['editorDiv'][_0x567525(0x687)](_0x567525(0x3cb));}[_0x36bfb8(0x214)](){const _0x1c15d7=_0x36bfb8;this[_0x1c15d7(0x878)]['setAttribute'](_0x1c15d7(0x9e4),_0x1c15d7(0x33a)),this['editorDiv'][_0x1c15d7(0x636)](_0x1c15d7(0x3cb),!![]);}[_0x36bfb8(0x6c8)](){const _0x2ffae8=_0x36bfb8;if(this['div'])return this[_0x2ffae8(0x903)];let _0x3a4e9a,_0x33d9aa;this[_0x2ffae8(0x98b)]&&(_0x3a4e9a=this['x'],_0x33d9aa=this['y']);super[_0x2ffae8(0x6c8)](),this[_0x2ffae8(0x878)]=document[_0x2ffae8(0x400)](_0x2ffae8(0x903)),this[_0x2ffae8(0x878)][_0x2ffae8(0x52b)]='internal',this[_0x2ffae8(0x878)][_0x2ffae8(0x636)]('id',this.#editorDivId),this[_0x2ffae8(0x214)](),_0x16ccf7[_0x2ffae8(0x1f7)][_0x2ffae8(0x8c4)](_0x2ffae8(0x67c))['then'](_0xe70b69=>this[_0x2ffae8(0x878)]?.['setAttribute'](_0x2ffae8(0x86b),_0xe70b69)),_0x16ccf7[_0x2ffae8(0x1f7)][_0x2ffae8(0x8c4)](_0x2ffae8(0x15c))['then'](_0x42b28d=>this[_0x2ffae8(0x878)]?.[_0x2ffae8(0x636)]('default-content',_0x42b28d)),this[_0x2ffae8(0x878)][_0x2ffae8(0x341)]=!![];const {style:_0x497e84}=this['editorDiv'];_0x497e84[_0x2ffae8(0x443)]='calc('+this.#fontSize+_0x2ffae8(0x108),_0x497e84[_0x2ffae8(0x5fe)]=this.#color,this[_0x2ffae8(0x903)][_0x2ffae8(0x45e)](this['editorDiv']),this[_0x2ffae8(0x91b)]=document[_0x2ffae8(0x400)](_0x2ffae8(0x903)),this[_0x2ffae8(0x91b)][_0x2ffae8(0x2bc)][_0x2ffae8(0x156)]('overlay',_0x2ffae8(0x829)),this['div']['append'](this['overlayDiv']),(0x0,_0x27b28c['bindEvents'])(this,this[_0x2ffae8(0x903)],[_0x2ffae8(0x327),_0x2ffae8(0x14c)]);if(this[_0x2ffae8(0x98b)]){const [_0x411ad3,_0x4cc41c]=this[_0x2ffae8(0x956)];if(this[_0x2ffae8(0x66b)]){const [_0x2e966f]=this[_0x2ffae8(0x76e)]();this[_0x2ffae8(0x912)](_0x3a4e9a*_0x411ad3,_0x33d9aa*_0x4cc41c,_0x2e966f,_0x2e966f);}else this[_0x2ffae8(0x912)](_0x3a4e9a*_0x411ad3,_0x33d9aa*_0x4cc41c,this[_0x2ffae8(0x98b)]*_0x411ad3,this['height']*_0x4cc41c);this.#setContent(),this[_0x2ffae8(0x903)][_0x2ffae8(0x7dc)]=!![],this['editorDiv']['contentEditable']=![];}else this[_0x2ffae8(0x903)]['draggable']=![],this[_0x2ffae8(0x878)][_0x2ffae8(0x341)]=!![];return this[_0x2ffae8(0x903)];}#setContent(){const _0x2e4e52=_0x36bfb8;this['editorDiv'][_0x2e4e52(0x572)]();if(!this.#content)return;for(const _0x12bff5 of this.#content[_0x2e4e52(0x6db)]('\x0a')){const _0x23feed=document[_0x2e4e52(0x400)]('div');_0x23feed['append'](_0x12bff5?document[_0x2e4e52(0x8fa)](_0x12bff5):document[_0x2e4e52(0x400)]('br')),this[_0x2e4e52(0x878)][_0x2e4e52(0x45e)](_0x23feed);}}get['contentDiv'](){const _0x4150c7=_0x36bfb8;return this[_0x4150c7(0x878)];}static[_0x36bfb8(0x7a3)](_0x58f5ab,_0x2e2307,_0x134d7c){const _0x280c9b=_0x36bfb8;let _0x53c03d=null;if(_0x58f5ab instanceof _0x4fbfd5['FreeTextAnnotationElement']){const {data:{defaultAppearanceData:{fontSize:_0x34992d,fontColor:_0xbb8318},rect:_0x2dd6b3,rotation:_0x1cbd60,id:_0x470a80},textContent:_0x387f91,parent:{page:{pageNumber:_0x41a417}}}=_0x58f5ab;if(!_0x387f91||_0x387f91[_0x280c9b(0x557)]===0x0)return null;_0x53c03d=_0x58f5ab={'annotationType':_0x1150c4['AnnotationEditorType']['FREETEXT'],'color':Array['from'](_0xbb8318),'fontSize':_0x34992d,'value':_0x387f91[_0x280c9b(0x334)]('\x0a'),'pageIndex':_0x41a417-0x1,'rect':_0x2dd6b3,'rotation':_0x1cbd60,'id':_0x470a80,'deleted':![]};}const _0x11d65d=super[_0x280c9b(0x7a3)](_0x58f5ab,_0x2e2307,_0x134d7c);return _0x11d65d.#fontSize=_0x58f5ab[_0x280c9b(0x443)],_0x11d65d.#color=_0x1150c4[_0x280c9b(0x5d7)][_0x280c9b(0x86a)](..._0x58f5ab['color']),_0x11d65d.#content=_0x58f5ab[_0x280c9b(0x2b8)],_0x11d65d[_0x280c9b(0x66b)]=_0x58f5ab['id']||null,_0x11d65d.#initialData=_0x53c03d,_0x11d65d;}[_0x36bfb8(0x65d)](){const _0x1a1e05=_0x36bfb8;let _0x2d3bb2=arguments['length']>0x0&&arguments[0x0]!==undefined?arguments[0x0]:![];if(this[_0x1a1e05(0x480)]())return null;if(this[_0x1a1e05(0x2f0)])return{'pageIndex':this[_0x1a1e05(0x700)],'id':this[_0x1a1e05(0x66b)],'deleted':!![]};const _0x246133=_0x16ccf7[_0x1a1e05(0x1e6)]*this[_0x1a1e05(0x54a)],_0x1c58e7=this[_0x1a1e05(0x93f)](_0x246133,_0x246133),_0x51c9f8=_0xe25bfc[_0x1a1e05(0x8f0)][_0x1a1e05(0x80b)]['convert'](this[_0x1a1e05(0x9a7)]?getComputedStyle(this[_0x1a1e05(0x878)])[_0x1a1e05(0x5fe)]:this.#color),_0x7221c4={'annotationType':_0x1150c4[_0x1a1e05(0x9a6)]['FREETEXT'],'color':_0x51c9f8,'fontSize':this.#fontSize,'value':this.#content,'pageIndex':this[_0x1a1e05(0x700)],'rect':_0x1c58e7,'rotation':this[_0x1a1e05(0x7af)]};if(_0x2d3bb2)return _0x7221c4;if(this[_0x1a1e05(0x66b)]&&!this.#hasElementChanged(_0x7221c4))return null;return _0x7221c4['id']=this[_0x1a1e05(0x66b)],_0x7221c4;}#hasElementChanged(_0x4bd078){const _0x4be150=_0x36bfb8,{value:_0x3d884a,fontSize:_0x51b701,color:_0x501802,rect:_0x2e0408,pageIndex:_0x436ce8}=this.#initialData;return _0x4bd078[_0x4be150(0x2b8)]!==_0x3d884a||_0x4bd078[_0x4be150(0x443)]!==_0x51b701||_0x4bd078[_0x4be150(0x333)][_0x4be150(0x82e)]((_0x13b1d7,_0x5a6fa3)=>Math[_0x4be150(0x346)](_0x13b1d7-_0x2e0408[_0x5a6fa3])>=0x1)||_0x4bd078[_0x4be150(0x5fe)][_0x4be150(0x82e)]((_0x3b852e,_0x3dd2ee)=>_0x3b852e!==_0x501802[_0x3dd2ee])||_0x4bd078[_0x4be150(0x700)]!==_0x436ce8;}#cheatInitialRect(){const _0xcda424=_0x36bfb8;let _0x3cd6cc=arguments['length']>0x0&&arguments[0x0]!==undefined?arguments[0x0]:![];if(!this[_0xcda424(0x66b)])return;this.#setEditorDimensions();if(!_0x3cd6cc&&(this[_0xcda424(0x98b)]===0x0||this[_0xcda424(0x999)]===0x0)){setTimeout(()=>this.#cheatInitialRect(!![]),0x0);return;}const _0x4edddf=_0x16ccf7['_internalPadding']*this['parentScale'];this.#initialData[_0xcda424(0x333)]=this[_0xcda424(0x93f)](_0x4edddf,_0x4edddf);}}_0x242f87['FreeTextEditor']=_0x16ccf7;},(_0x1c86cf,_0x2c4a41,_0x5164b3)=>{'use strict';const _0x34684e=a0_0x160d;Object[_0x34684e(0x430)](_0x2c4a41,_0x34684e(0x19a),{'value':!![]}),_0x2c4a41[_0x34684e(0x3ed)]=_0x2c4a41[_0x34684e(0x301)]=_0x2c4a41['FreeTextAnnotationElement']=_0x2c4a41['AnnotationLayer']=void 0x0;var _0x20ce9d=_0x5164b3(0x1),_0x1ee1b8=_0x5164b3(0x87),_0x3196ff=_0x5164b3(0x84),_0x1b2b23=_0x5164b3(0x9e),_0x50cc29=_0x5164b3(0x9f);const _0x3d9ae1=0x3e8,_0x32407f=0x9,_0xe9026f=new WeakSet();function _0x23686a(_0x57e4dd){return{'width':_0x57e4dd[0x2]-_0x57e4dd[0x0],'height':_0x57e4dd[0x3]-_0x57e4dd[0x1]};}class _0x1fbf87{static[_0x34684e(0x77c)](_0x2905b9){const _0x5b1f3a=_0x34684e,_0x514a54=_0x2905b9[_0x5b1f3a(0x41b)][_0x5b1f3a(0x417)];switch(_0x514a54){case _0x20ce9d[_0x5b1f3a(0x9b8)]['LINK']:return new _0x23222c(_0x2905b9);case _0x20ce9d[_0x5b1f3a(0x9b8)][_0x5b1f3a(0x422)]:return new _0x57f804(_0x2905b9);case _0x20ce9d[_0x5b1f3a(0x9b8)][_0x5b1f3a(0x701)]:const _0x344182=_0x2905b9[_0x5b1f3a(0x41b)]['fieldType'];switch(_0x344182){case'Tx':return new _0x1850f8(_0x2905b9);case _0x5b1f3a(0x85a):if(_0x2905b9[_0x5b1f3a(0x41b)][_0x5b1f3a(0x164)])return new _0x589802(_0x2905b9);else{if(_0x2905b9['data']['checkBox'])return new _0x5897b2(_0x2905b9);}return new _0x3a98a7(_0x2905b9);case'Ch':return new _0x144da5(_0x2905b9);case _0x5b1f3a(0x89b):return new _0x3af51c(_0x2905b9);}return new _0x182efb(_0x2905b9);case _0x20ce9d[_0x5b1f3a(0x9b8)][_0x5b1f3a(0x11d)]:return new _0x24aaee(_0x2905b9);case _0x20ce9d[_0x5b1f3a(0x9b8)]['FREETEXT']:return new _0x56492f(_0x2905b9);case _0x20ce9d[_0x5b1f3a(0x9b8)][_0x5b1f3a(0x4d0)]:return new _0xf4a368(_0x2905b9);case _0x20ce9d[_0x5b1f3a(0x9b8)]['SQUARE']:return new _0x2ff0ee(_0x2905b9);case _0x20ce9d[_0x5b1f3a(0x9b8)][_0x5b1f3a(0x52c)]:return new _0x2b3434(_0x2905b9);case _0x20ce9d[_0x5b1f3a(0x9b8)]['POLYLINE']:return new _0x4353ee(_0x2905b9);case _0x20ce9d[_0x5b1f3a(0x9b8)][_0x5b1f3a(0x3d9)]:return new _0x46d755(_0x2905b9);case _0x20ce9d[_0x5b1f3a(0x9b8)][_0x5b1f3a(0x8ac)]:return new _0x401798(_0x2905b9);case _0x20ce9d[_0x5b1f3a(0x9b8)][_0x5b1f3a(0x85d)]:return new _0x41f05d(_0x2905b9);case _0x20ce9d[_0x5b1f3a(0x9b8)]['HIGHLIGHT']:return new _0x488503(_0x2905b9);case _0x20ce9d[_0x5b1f3a(0x9b8)][_0x5b1f3a(0x75d)]:return new _0x56d96a(_0x2905b9);case _0x20ce9d['AnnotationType'][_0x5b1f3a(0x710)]:return new _0x1d5779(_0x2905b9);case _0x20ce9d[_0x5b1f3a(0x9b8)][_0x5b1f3a(0x63d)]:return new _0x3897cf(_0x2905b9);case _0x20ce9d[_0x5b1f3a(0x9b8)][_0x5b1f3a(0x8e8)]:return new _0x4095a7(_0x2905b9);case _0x20ce9d[_0x5b1f3a(0x9b8)][_0x5b1f3a(0x84c)]:return new _0x27bed6(_0x2905b9);default:return new _0xba9c35(_0x2905b9);}}}class _0xba9c35{constructor(_0x5b0fe8){const _0x4ecc1b=_0x34684e;let {isRenderable:isRenderable=![],ignoreBorder:ignoreBorder=![],createQuadrilaterals:createQuadrilaterals=![]}=arguments[_0x4ecc1b(0x557)]>0x1&&arguments[0x1]!==undefined?arguments[0x1]:{};this['isRenderable']=isRenderable,this['data']=_0x5b0fe8[_0x4ecc1b(0x41b)],this[_0x4ecc1b(0x8ba)]=_0x5b0fe8[_0x4ecc1b(0x8ba)],this[_0x4ecc1b(0x8a6)]=_0x5b0fe8[_0x4ecc1b(0x8a6)],this[_0x4ecc1b(0x641)]=_0x5b0fe8[_0x4ecc1b(0x641)],this[_0x4ecc1b(0x33d)]=_0x5b0fe8[_0x4ecc1b(0x33d)],this['renderForms']=_0x5b0fe8[_0x4ecc1b(0x874)],this[_0x4ecc1b(0x385)]=_0x5b0fe8[_0x4ecc1b(0x385)],this[_0x4ecc1b(0x5bf)]=_0x5b0fe8[_0x4ecc1b(0x5bf)],this[_0x4ecc1b(0x4a7)]=_0x5b0fe8[_0x4ecc1b(0x4a7)],this['hasJSActions']=_0x5b0fe8[_0x4ecc1b(0x731)],this[_0x4ecc1b(0x43e)]=_0x5b0fe8['fieldObjects'],this[_0x4ecc1b(0x4c3)]=_0x5b0fe8[_0x4ecc1b(0x4c3)],isRenderable&&(this[_0x4ecc1b(0x2e0)]=this[_0x4ecc1b(0x13f)](ignoreBorder)),createQuadrilaterals&&(this['quadrilaterals']=this[_0x4ecc1b(0x1fc)](ignoreBorder));}['_createContainer'](_0x1296a7){const _0x1eaa59=_0x34684e,{data:_0x21a39e,parent:{page:_0x1457b0,viewport:_0x458f67}}=this,_0x5b7111=document[_0x1eaa59(0x400)](_0x1eaa59(0x80e));_0x5b7111['setAttribute'](_0x1eaa59(0x262),_0x21a39e['id']),_0x5b7111[_0x1eaa59(0x498)][_0x1eaa59(0x177)]=this[_0x1eaa59(0x4c3)][_0x1eaa59(0x177)]++;this['data'][_0x1eaa59(0x9c8)]&&_0x5b7111[_0x1eaa59(0x636)](_0x1eaa59(0x7a2),_0x1eaa59(0x28b));_0x21a39e[_0x1eaa59(0x764)]&&_0x5b7111['classList'][_0x1eaa59(0x156)](_0x1eaa59(0x3b0));const {pageWidth:_0x21513d,pageHeight:_0x44429d,pageX:_0x241b24,pageY:_0x123b32}=_0x458f67['rawDims'];if(!_0x21a39e['rect']||this instanceof _0x24aaee){const {rotation:_0x40d219}=_0x21a39e;return!_0x21a39e[_0x1eaa59(0x5dc)]&&_0x40d219!==0x0&&this[_0x1eaa59(0x59c)](_0x40d219,_0x5b7111),_0x5b7111;}const {width:_0x1f6a4f,height:_0x551b62}=_0x23686a(_0x21a39e[_0x1eaa59(0x333)]),_0x3d29b5=_0x20ce9d[_0x1eaa59(0x5d7)]['normalizeRect']([_0x21a39e[_0x1eaa59(0x333)][0x0],_0x1457b0[_0x1eaa59(0x6e4)][0x3]-_0x21a39e[_0x1eaa59(0x333)][0x1]+_0x1457b0[_0x1eaa59(0x6e4)][0x1],_0x21a39e[_0x1eaa59(0x333)][0x2],_0x1457b0[_0x1eaa59(0x6e4)][0x3]-_0x21a39e[_0x1eaa59(0x333)][0x3]+_0x1457b0['view'][0x1]]);if(!_0x1296a7&&_0x21a39e['borderStyle'][_0x1eaa59(0x98b)]>0x0){_0x5b7111[_0x1eaa59(0x498)][_0x1eaa59(0x603)]=_0x21a39e[_0x1eaa59(0x7e6)]['width']+'px';const _0x5aaba9=_0x21a39e['borderStyle']['horizontalCornerRadius'],_0x1de359=_0x21a39e['borderStyle'][_0x1eaa59(0x773)];if(_0x5aaba9>0x0||_0x1de359>0x0){const _0x536880=_0x1eaa59(0x8de)+_0x5aaba9+'px\x20*\x20var(--scale-factor))\x20/\x20calc('+_0x1de359+'px\x20*\x20var(--scale-factor))';_0x5b7111[_0x1eaa59(0x498)][_0x1eaa59(0x774)]=_0x536880;}else{if(this instanceof _0x589802){const _0x2ac2e5=_0x1eaa59(0x8de)+_0x1f6a4f+_0x1eaa59(0x7d9)+_0x551b62+_0x1eaa59(0x108);_0x5b7111[_0x1eaa59(0x498)][_0x1eaa59(0x774)]=_0x2ac2e5;}}switch(_0x21a39e['borderStyle']['style']){case _0x20ce9d[_0x1eaa59(0x263)][_0x1eaa59(0x2a2)]:_0x5b7111[_0x1eaa59(0x498)][_0x1eaa59(0x7e6)]='solid';break;case _0x20ce9d[_0x1eaa59(0x263)][_0x1eaa59(0x1be)]:_0x5b7111['style'][_0x1eaa59(0x7e6)]=_0x1eaa59(0x53c);break;case _0x20ce9d[_0x1eaa59(0x263)][_0x1eaa59(0x771)]:(0x0,_0x20ce9d[_0x1eaa59(0x472)])(_0x1eaa59(0x930));break;case _0x20ce9d[_0x1eaa59(0x263)]['INSET']:(0x0,_0x20ce9d[_0x1eaa59(0x472)])(_0x1eaa59(0x1da));break;case _0x20ce9d[_0x1eaa59(0x263)]['UNDERLINE']:_0x5b7111['style']['borderBottomStyle']='solid';break;default:break;}const _0x161f2c=_0x21a39e[_0x1eaa59(0x16c)]||null;_0x161f2c?_0x5b7111[_0x1eaa59(0x498)][_0x1eaa59(0x16c)]=_0x20ce9d[_0x1eaa59(0x5d7)][_0x1eaa59(0x86a)](_0x161f2c[0x0]|0x0,_0x161f2c[0x1]|0x0,_0x161f2c[0x2]|0x0):_0x5b7111[_0x1eaa59(0x498)][_0x1eaa59(0x603)]=0x0;}_0x5b7111['style'][_0x1eaa59(0x4fd)]=0x64*(_0x3d29b5[0x0]-_0x241b24)/_0x21513d+'%',_0x5b7111[_0x1eaa59(0x498)][_0x1eaa59(0x12f)]=0x64*(_0x3d29b5[0x1]-_0x123b32)/_0x44429d+'%';const {rotation:_0xf76519}=_0x21a39e;return _0x21a39e[_0x1eaa59(0x5dc)]||_0xf76519===0x0?(_0x5b7111['style'][_0x1eaa59(0x98b)]=0x64*_0x1f6a4f/_0x21513d+'%',_0x5b7111['style'][_0x1eaa59(0x999)]=0x64*_0x551b62/_0x44429d+'%'):this['setRotation'](_0xf76519,_0x5b7111),_0x5b7111;}[_0x34684e(0x59c)](_0x1ea427){const _0x4e0d61=_0x34684e;let _0x210e52=arguments[_0x4e0d61(0x557)]>0x1&&arguments[0x1]!==undefined?arguments[0x1]:this[_0x4e0d61(0x2e0)];const {pageWidth:_0xa465e8,pageHeight:_0x5eb535}=this[_0x4e0d61(0x4c3)]['viewport'][_0x4e0d61(0x621)],{width:_0x565296,height:_0x799bd1}=_0x23686a(this[_0x4e0d61(0x41b)][_0x4e0d61(0x333)]);let _0x362c46,_0x1d855a;_0x1ea427%0xb4===0x0?(_0x362c46=0x64*_0x565296/_0xa465e8,_0x1d855a=0x64*_0x799bd1/_0x5eb535):(_0x362c46=0x64*_0x799bd1/_0xa465e8,_0x1d855a=0x64*_0x565296/_0x5eb535),_0x210e52[_0x4e0d61(0x498)]['width']=_0x362c46+'%',_0x210e52[_0x4e0d61(0x498)][_0x4e0d61(0x999)]=_0x1d855a+'%',_0x210e52[_0x4e0d61(0x636)]('data-main-rotation',(0x168-_0x1ea427)%0x168);}get[_0x34684e(0x31e)](){const _0x18a12c=_0x34684e,_0x26821c=(_0x3d7854,_0x32517b,_0x47adb1)=>{const _0x264f11=a0_0x160d,_0x2f3014=_0x47adb1[_0x264f11(0x677)][_0x3d7854];_0x47adb1[_0x264f11(0x1c8)]['style'][_0x32517b]=_0x1b2b23['ColorConverters'][_0x2f3014[0x0]+_0x264f11(0x3d3)](_0x2f3014[_0x264f11(0x80c)](0x1));};return(0x0,_0x20ce9d[_0x18a12c(0x51d)])(this,_0x18a12c(0x31e),{'display':_0x24159d=>{const _0x3db58f=_0x18a12c,_0x24549b=_0x24159d[_0x3db58f(0x677)][_0x3db58f(0x619)]%0x2===0x1;this['container'][_0x3db58f(0x498)][_0x3db58f(0x269)]=_0x24549b?_0x3db58f(0x495):'visible',this[_0x3db58f(0x5bf)][_0x3db58f(0x699)](this[_0x3db58f(0x41b)]['id'],{'hidden':_0x24549b,'print':_0x24159d['detail'][_0x3db58f(0x619)]===0x0||_0x24159d['detail'][_0x3db58f(0x619)]===0x3});},'print':_0x3ccb73=>{const _0x12f761=_0x18a12c;this['annotationStorage']['setValue'](this[_0x12f761(0x41b)]['id'],{'print':_0x3ccb73['detail'][_0x12f761(0x5f8)]});},'hidden':_0x31639e=>{const _0x32c26b=_0x18a12c;this[_0x32c26b(0x2e0)][_0x32c26b(0x498)][_0x32c26b(0x269)]=_0x31639e[_0x32c26b(0x677)][_0x32c26b(0x495)]?_0x32c26b(0x495):_0x32c26b(0x6cd),this[_0x32c26b(0x5bf)][_0x32c26b(0x699)](this['data']['id'],{'hidden':_0x31639e[_0x32c26b(0x677)][_0x32c26b(0x495)]});},'focus':_0x5e497b=>{const _0x1ba8bd=_0x18a12c;setTimeout(()=>_0x5e497b[_0x1ba8bd(0x1c8)][_0x1ba8bd(0x47d)]({'preventScroll':![]}),0x0);},'userName':_0x529d13=>{const _0x236820=_0x18a12c;_0x529d13[_0x236820(0x1c8)][_0x236820(0x5d6)]=_0x529d13[_0x236820(0x677)][_0x236820(0x5d8)];},'readonly':_0x4b362a=>{const _0x5cab96=_0x18a12c;_0x4b362a['detail'][_0x5cab96(0x512)]?_0x4b362a[_0x5cab96(0x1c8)][_0x5cab96(0x636)](_0x5cab96(0x512),''):_0x4b362a['target'][_0x5cab96(0x687)]('readonly');},'required':_0x38b7d1=>{const _0x52008a=_0x18a12c;this[_0x52008a(0xce)](_0x38b7d1[_0x52008a(0x1c8)],_0x38b7d1[_0x52008a(0x677)][_0x52008a(0x447)]);},'bgColor':_0x102a28=>{const _0x235856=_0x18a12c;_0x26821c(_0x235856(0x26d),_0x235856(0x98d),_0x102a28);},'fillColor':_0x1819fe=>{const _0x5a93d1=_0x18a12c;_0x26821c(_0x5a93d1(0x631),'backgroundColor',_0x1819fe);},'fgColor':_0x171452=>{const _0x3cd254=_0x18a12c;_0x26821c('fgColor',_0x3cd254(0x5fe),_0x171452);},'textColor':_0x1b689c=>{const _0x3fd192=_0x18a12c;_0x26821c(_0x3fd192(0x8d1),_0x3fd192(0x5fe),_0x1b689c);},'borderColor':_0x1c75d7=>{const _0x2cd9c3=_0x18a12c;_0x26821c(_0x2cd9c3(0x16c),_0x2cd9c3(0x16c),_0x1c75d7);},'strokeColor':_0x5a8421=>{const _0x13e854=_0x18a12c;_0x26821c('strokeColor',_0x13e854(0x16c),_0x5a8421);},'rotation':_0x4289e0=>{const _0x9dcab=_0x18a12c,_0x3bfd90=_0x4289e0['detail'][_0x9dcab(0x7af)];this[_0x9dcab(0x59c)](_0x3bfd90),this[_0x9dcab(0x5bf)][_0x9dcab(0x699)](this[_0x9dcab(0x41b)]['id'],{'rotation':_0x3bfd90});}});}[_0x34684e(0x695)](_0x19a683,_0x1ce9e8){const _0x195f0c=_0x34684e,_0x5c3157=this['_commonActions'];for(const _0x447b5e of Object[_0x195f0c(0x30e)](_0x1ce9e8[_0x195f0c(0x677)])){const _0x90f3d3=_0x19a683[_0x447b5e]||_0x5c3157[_0x447b5e];_0x90f3d3?.(_0x1ce9e8);}}[_0x34684e(0x9ad)](_0x8711b5){const _0x56ccc1=_0x34684e;if(!this[_0x56ccc1(0x4a7)])return;const _0x1650da=this['annotationStorage']['getRawValue'](this[_0x56ccc1(0x41b)]['id']);if(!_0x1650da)return;const _0x25c520=this[_0x56ccc1(0x31e)];for(const [_0x3c8b97,_0x3c1c35]of Object[_0x56ccc1(0x816)](_0x1650da)){const _0x5915d4=_0x25c520[_0x3c8b97];if(_0x5915d4){const _0x4c9a37={'detail':{[_0x3c8b97]:_0x3c1c35},'target':_0x8711b5};_0x5915d4(_0x4c9a37),delete _0x1650da[_0x3c8b97];}}}[_0x34684e(0x1fc)](){const _0x5c0bc3=_0x34684e;let _0x5b20fd=arguments[_0x5c0bc3(0x557)]>0x0&&arguments[0x0]!==undefined?arguments[0x0]:![];if(!this[_0x5c0bc3(0x41b)]['quadPoints'])return null;const _0x41f489=[],_0x53d23c=this['data'][_0x5c0bc3(0x333)];let _0x40448b=null;for(const _0x1fc87e of this['data'][_0x5c0bc3(0x5bc)]){this[_0x5c0bc3(0x41b)][_0x5c0bc3(0x333)]=[_0x1fc87e[0x2]['x'],_0x1fc87e[0x2]['y'],_0x1fc87e[0x1]['x'],_0x1fc87e[0x1]['y']],_0x41f489[_0x5c0bc3(0x7d6)](this[_0x5c0bc3(0x13f)](_0x5b20fd)),_0x40448b||=this[_0x5c0bc3(0x41b)]['rect'];}return this[_0x5c0bc3(0x41b)][_0x5c0bc3(0x333)]=_0x53d23c,this[_0x5c0bc3(0xf5)]=_0x40448b,_0x41f489;}[_0x34684e(0x544)](){const _0xebcc20=_0x34684e,{container:_0x97e115,data:_0x288eb7}=this;_0x97e115[_0xebcc20(0x636)]('aria-haspopup','dialog');const _0x17b382=new _0x24aaee({'data':{'color':_0x288eb7['color'],'titleObj':_0x288eb7['titleObj'],'modificationDate':_0x288eb7[_0xebcc20(0x562)],'contentsObj':_0x288eb7[_0xebcc20(0x3a1)],'richText':_0x288eb7[_0xebcc20(0x68f)],'parentRect':this[_0xebcc20(0xf5)]||_0x288eb7[_0xebcc20(0x333)],'borderStyle':0x0,'id':_0xebcc20(0x2cc)+_0x288eb7['id'],'rotation':_0x288eb7[_0xebcc20(0x7af)]},'parent':this[_0xebcc20(0x4c3)],'elements':[this]});this['parent'][_0xebcc20(0x903)][_0xebcc20(0x45e)](_0x17b382[_0xebcc20(0x6c8)]());}['_renderQuadrilaterals'](_0x44c382){const _0x3ae337=_0x34684e;for(const _0x3f2be3 of this[_0x3ae337(0x931)]){_0x3f2be3[_0x3ae337(0x2bc)][_0x3ae337(0x156)](_0x44c382);}return this['quadrilaterals'];}[_0x34684e(0x6c8)](){(0x0,_0x20ce9d['unreachable'])('Abstract\x20method\x20`AnnotationElement.render`\x20called');}[_0x34684e(0x37e)](_0xd3dc19){const _0x55539a=_0x34684e;let _0x284473=arguments[_0x55539a(0x557)]>0x1&&arguments[0x1]!==undefined?arguments[0x1]:null;const _0x156400=[];if(this[_0x55539a(0x43e)]){const _0x2d0869=this['_fieldObjects'][_0xd3dc19];if(_0x2d0869)for(const {page:_0x4f5096,id:_0x2e2ed7,exportValues:_0x19add5}of _0x2d0869){if(_0x4f5096===-0x1)continue;if(_0x2e2ed7===_0x284473)continue;const _0x50db28=typeof _0x19add5===_0x55539a(0x8cd)?_0x19add5:null,_0x1818dc=document['querySelector'](_0x55539a(0x6a6)+_0x2e2ed7+'\x22]');if(_0x1818dc&&!_0xe9026f[_0x55539a(0x373)](_0x1818dc)){(0x0,_0x20ce9d[_0x55539a(0x472)])('_getElementsByName\x20-\x20element\x20not\x20allowed:\x20'+_0x2e2ed7);continue;}_0x156400[_0x55539a(0x7d6)]({'id':_0x2e2ed7,'exportValue':_0x50db28,'domElement':_0x1818dc});}return _0x156400;}for(const _0x178f80 of document[_0x55539a(0xdb)](_0xd3dc19)){const {exportValue:_0x4de939}=_0x178f80,_0xd6c45=_0x178f80[_0x55539a(0x8ae)](_0x55539a(0x9a2));if(_0xd6c45===_0x284473)continue;if(!_0xe9026f[_0x55539a(0x373)](_0x178f80))continue;_0x156400[_0x55539a(0x7d6)]({'id':_0xd6c45,'exportValue':_0x4de939,'domElement':_0x178f80});}return _0x156400;}[_0x34684e(0x2a0)](){const _0x42a9cd=_0x34684e;this[_0x42a9cd(0x2e0)]&&(this['container'][_0x42a9cd(0x495)]=![]),this[_0x42a9cd(0x895)]?.[_0x42a9cd(0x798)]();}[_0x34684e(0x9bd)](){const _0x564cd5=_0x34684e;this['container']&&(this[_0x564cd5(0x2e0)][_0x564cd5(0x495)]=!![]),this[_0x564cd5(0x895)]?.['forceHide']();}[_0x34684e(0x3c4)](){const _0x2162a5=_0x34684e;return this[_0x2162a5(0x931)]||this[_0x2162a5(0x2e0)];}['addHighlightArea'](){const _0x5196ab=_0x34684e,_0x229b3a=this['getElementsToTriggerPopup']();if(Array[_0x5196ab(0x419)](_0x229b3a))for(const _0x4a7687 of _0x229b3a){_0x4a7687[_0x5196ab(0x2bc)][_0x5196ab(0x156)](_0x5196ab(0x89e));}else _0x229b3a[_0x5196ab(0x2bc)][_0x5196ab(0x156)](_0x5196ab(0x89e));}[_0x34684e(0x64d)](){const _0x58a446=_0x34684e,{annotationEditorType:_0x52d725,data:{id:_0x48ee60}}=this;this['container'][_0x58a446(0x5cc)](_0x58a446(0x327),()=>{const _0x3c1e50=_0x58a446;this[_0x3c1e50(0x8a6)][_0x3c1e50(0x64b)]?.[_0x3c1e50(0x3c0)](_0x3c1e50(0x3f6),{'source':this,'mode':_0x52d725,'editId':_0x48ee60});});}}class _0x23222c extends _0xba9c35{constructor(_0x198fd0){const _0x3165e5=_0x34684e;let _0x2706c5=arguments[_0x3165e5(0x557)]>0x1&&arguments[0x1]!==undefined?arguments[0x1]:null;super(_0x198fd0,{'isRenderable':!![],'ignoreBorder':!!_0x2706c5?.['ignoreBorder'],'createQuadrilaterals':!![]}),this['isTooltipOnly']=_0x198fd0[_0x3165e5(0x41b)][_0x3165e5(0x11e)];}[_0x34684e(0x6c8)](){const _0x3858af=_0x34684e,{data:_0x1b4998,linkService:_0x2776f9}=this,_0x219d2e=document['createElement']('a');_0x219d2e[_0x3858af(0x636)](_0x3858af(0x9a2),_0x1b4998['id']);let _0x2b436d=![];if(_0x1b4998[_0x3858af(0x6a1)])_0x2776f9['addLinkAttributes'](_0x219d2e,_0x1b4998['url'],_0x1b4998[_0x3858af(0x4bd)]),_0x2b436d=!![];else{if(_0x1b4998[_0x3858af(0x7c7)])this[_0x3858af(0x359)](_0x219d2e,_0x1b4998[_0x3858af(0x7c7)]),_0x2b436d=!![];else{if(_0x1b4998[_0x3858af(0x536)])this[_0x3858af(0x58a)](_0x219d2e,_0x1b4998['attachment']),_0x2b436d=!![];else{if(_0x1b4998[_0x3858af(0x87c)])this.#bindSetOCGState(_0x219d2e,_0x1b4998[_0x3858af(0x87c)]),_0x2b436d=!![];else{if(_0x1b4998['dest'])this[_0x3858af(0x1e1)](_0x219d2e,_0x1b4998[_0x3858af(0x66c)]),_0x2b436d=!![];else{_0x1b4998[_0x3858af(0x521)]&&(_0x1b4998[_0x3858af(0x521)]['Action']||_0x1b4998['actions'][_0x3858af(0x8fc)]||_0x1b4998[_0x3858af(0x521)][_0x3858af(0x6b3)])&&this[_0x3858af(0x4a7)]&&this[_0x3858af(0x731)]&&(this[_0x3858af(0x852)](_0x219d2e,_0x1b4998),_0x2b436d=!![]);if(_0x1b4998[_0x3858af(0x6c9)])this['_bindResetFormAction'](_0x219d2e,_0x1b4998[_0x3858af(0x6c9)]),_0x2b436d=!![];else this[_0x3858af(0x11e)]&&!_0x2b436d&&(this[_0x3858af(0x1e1)](_0x219d2e,''),_0x2b436d=!![]);}}}}}if(this[_0x3858af(0x931)])return this[_0x3858af(0x258)]('linkAnnotation')[_0x3858af(0x7ec)]((_0x1af076,_0x7bb88e)=>{const _0x3abb01=_0x3858af,_0x1dbe26=_0x7bb88e===0x0?_0x219d2e:_0x219d2e[_0x3abb01(0x4c9)]();return _0x1af076['append'](_0x1dbe26),_0x1af076;});return this['container'][_0x3858af(0x2bc)]['add'](_0x3858af(0x746)),_0x2b436d&&this[_0x3858af(0x2e0)][_0x3858af(0x45e)](_0x219d2e),this['container'];}#setInternalLink(){const _0x142574=_0x34684e;this[_0x142574(0x2e0)][_0x142574(0x636)](_0x142574(0x675),'');}[_0x34684e(0x1e1)](_0x9d99d2,_0x194d34){const _0x535efa=_0x34684e;_0x9d99d2[_0x535efa(0x95d)]=this[_0x535efa(0x8a6)][_0x535efa(0x91d)](_0x194d34),_0x9d99d2[_0x535efa(0x62c)]=()=>{const _0x5713aa=_0x535efa;return _0x194d34&&this[_0x5713aa(0x8a6)]['goToDestination'](_0x194d34),![];},(_0x194d34||_0x194d34==='')&&this.#setInternalLink();}[_0x34684e(0x359)](_0x408915,_0x3b7f71){const _0x3fa5e6=_0x34684e;_0x408915[_0x3fa5e6(0x95d)]=this['linkService'][_0x3fa5e6(0x9e9)](''),_0x408915[_0x3fa5e6(0x62c)]=()=>{const _0x43b12f=_0x3fa5e6;return this['linkService'][_0x43b12f(0x3c9)](_0x3b7f71),![];},this.#setInternalLink();}[_0x34684e(0x58a)](_0x4f9767,_0x4de84e){const _0x15bd05=_0x34684e;_0x4f9767['href']=this[_0x15bd05(0x8a6)][_0x15bd05(0x9e9)](''),_0x4f9767['onclick']=()=>{const _0xd4b188=_0x15bd05;return this[_0xd4b188(0x641)]?.[_0xd4b188(0x42f)](this[_0xd4b188(0x2e0)],_0x4de84e[_0xd4b188(0x609)],_0x4de84e[_0xd4b188(0x5cf)]),![];},this.#setInternalLink();}#bindSetOCGState(_0x1d0dfb,_0x38d9f2){const _0x8d7cd3=_0x34684e;_0x1d0dfb[_0x8d7cd3(0x95d)]=this[_0x8d7cd3(0x8a6)]['getAnchorUrl'](''),_0x1d0dfb[_0x8d7cd3(0x62c)]=()=>{const _0x38b1b4=_0x8d7cd3;return this[_0x38b1b4(0x8a6)][_0x38b1b4(0x180)](_0x38d9f2),![];},this.#setInternalLink();}['_bindJSAction'](_0x4876f5,_0x446452){const _0x2ae562=_0x34684e;_0x4876f5['href']=this[_0x2ae562(0x8a6)]['getAnchorUrl']('');const _0x3146ed=new Map([[_0x2ae562(0x592),_0x2ae562(0x62c)],[_0x2ae562(0x8fc),_0x2ae562(0x421)],[_0x2ae562(0x6b3),_0x2ae562(0x9a1)]]);for(const _0x13c59f of Object[_0x2ae562(0x30e)](_0x446452[_0x2ae562(0x521)])){const _0x24600a=_0x3146ed[_0x2ae562(0x8c4)](_0x13c59f);if(!_0x24600a)continue;_0x4876f5[_0x24600a]=()=>{const _0x35eb64=_0x2ae562;return this[_0x35eb64(0x8a6)][_0x35eb64(0x64b)]?.['dispatch'](_0x35eb64(0x81a),{'source':this,'detail':{'id':_0x446452['id'],'name':_0x13c59f}}),![];};}!_0x4876f5[_0x2ae562(0x62c)]&&(_0x4876f5[_0x2ae562(0x62c)]=()=>![]),this.#setInternalLink();}[_0x34684e(0x2a6)](_0x24618a,_0x4b67ef){const _0x42b1cf=_0x34684e,_0x1fcbf1=_0x24618a[_0x42b1cf(0x62c)];!_0x1fcbf1&&(_0x24618a[_0x42b1cf(0x95d)]=this['linkService']['getAnchorUrl'](''));this.#setInternalLink();if(!this['_fieldObjects']){(0x0,_0x20ce9d[_0x42b1cf(0x472)])('_bindResetFormAction\x20-\x20\x22resetForm\x22\x20action\x20not\x20supported,\x20'+'ensure\x20that\x20the\x20`fieldObjects`\x20parameter\x20is\x20provided.');!_0x1fcbf1&&(_0x24618a[_0x42b1cf(0x62c)]=()=>![]);return;}_0x24618a['onclick']=()=>{const _0x374db8=_0x42b1cf;_0x1fcbf1?.();const {fields:_0xc6a4dc,refs:_0x4a9ca9,include:_0x40eae4}=_0x4b67ef,_0x26ad3c=[];if(_0xc6a4dc[_0x374db8(0x557)]!==0x0||_0x4a9ca9[_0x374db8(0x557)]!==0x0){const _0x299f82=new Set(_0x4a9ca9);for(const _0x2e9def of _0xc6a4dc){const _0x36536a=this[_0x374db8(0x43e)][_0x2e9def]||[];for(const {id:_0x17c2e7}of _0x36536a){_0x299f82[_0x374db8(0x156)](_0x17c2e7);}}for(const _0x5a3245 of Object['values'](this[_0x374db8(0x43e)])){for(const _0x49ecae of _0x5a3245){_0x299f82[_0x374db8(0x373)](_0x49ecae['id'])===_0x40eae4&&_0x26ad3c[_0x374db8(0x7d6)](_0x49ecae);}}}else for(const _0x5a0f70 of Object['values'](this[_0x374db8(0x43e)])){_0x26ad3c[_0x374db8(0x7d6)](..._0x5a0f70);}const _0x52c772=this[_0x374db8(0x5bf)],_0x54d11e=[];for(const _0x198ff3 of _0x26ad3c){const {id:_0x2d8ef1}=_0x198ff3;_0x54d11e[_0x374db8(0x7d6)](_0x2d8ef1);switch(_0x198ff3[_0x374db8(0x9fd)]){case _0x374db8(0x739):{const _0x53a9b8=_0x198ff3['defaultValue']||'';_0x52c772['setValue'](_0x2d8ef1,{'value':_0x53a9b8});break;}case _0x374db8(0x799):case _0x374db8(0x824):{const _0x5098b0=_0x198ff3[_0x374db8(0x92f)]===_0x198ff3['exportValues'];_0x52c772[_0x374db8(0x699)](_0x2d8ef1,{'value':_0x5098b0});break;}case _0x374db8(0x1d8):case'listbox':{const _0x44a018=_0x198ff3[_0x374db8(0x92f)]||'';_0x52c772[_0x374db8(0x699)](_0x2d8ef1,{'value':_0x44a018});break;}default:continue;}const _0x257a10=document[_0x374db8(0x6c7)](_0x374db8(0x6a6)+_0x2d8ef1+'\x22]');if(!_0x257a10)continue;else{if(!_0xe9026f[_0x374db8(0x373)](_0x257a10)){(0x0,_0x20ce9d[_0x374db8(0x472)])(_0x374db8(0x379)+_0x2d8ef1);continue;}}_0x257a10[_0x374db8(0x193)](new Event('resetform'));}return this[_0x374db8(0x4a7)]&&this[_0x374db8(0x8a6)][_0x374db8(0x64b)]?.[_0x374db8(0x3c0)](_0x374db8(0x81a),{'source':this,'detail':{'id':_0x374db8(0x62b),'ids':_0x54d11e,'name':_0x374db8(0x9ca)}}),![];};}}class _0x57f804 extends _0xba9c35{constructor(_0x3e38d8){const _0x42b200=_0x34684e,_0x4e27e4=!!(_0x3e38d8[_0x42b200(0x41b)][_0x42b200(0x9c8)]||_0x3e38d8[_0x42b200(0x41b)][_0x42b200(0x363)]?.['str']||_0x3e38d8[_0x42b200(0x41b)][_0x42b200(0x3a1)]?.[_0x42b200(0xcf)]||_0x3e38d8[_0x42b200(0x41b)][_0x42b200(0x68f)]?.[_0x42b200(0xcf)]);super(_0x3e38d8,{'isRenderable':_0x4e27e4});}[_0x34684e(0x6c8)](){const _0x5e06e4=_0x34684e;this[_0x5e06e4(0x2e0)][_0x5e06e4(0x2bc)][_0x5e06e4(0x156)](_0x5e06e4(0x293));const _0xcd8b34=document[_0x5e06e4(0x400)](_0x5e06e4(0x662));return _0xcd8b34['src']=this[_0x5e06e4(0x33d)]+'annotation-'+this[_0x5e06e4(0x41b)][_0x5e06e4(0x499)][_0x5e06e4(0x83c)]()+_0x5e06e4(0x3f4),_0xcd8b34[_0x5e06e4(0x5d9)]=_0x5e06e4(0x50f),_0xcd8b34[_0x5e06e4(0x811)]['l10nId']=_0x5e06e4(0x10f),_0xcd8b34[_0x5e06e4(0x811)][_0x5e06e4(0x856)]=JSON[_0x5e06e4(0x22f)]({'type':this['data'][_0x5e06e4(0x499)]}),!this[_0x5e06e4(0x41b)][_0x5e06e4(0x9c8)]&&this[_0x5e06e4(0x544)](),this['container'][_0x5e06e4(0x45e)](_0xcd8b34),this['container'];}}class _0x182efb extends _0xba9c35{['render'](){const _0x44659=_0x34684e;return this[_0x44659(0x41b)][_0x44659(0x211)]&&(this[_0x44659(0x2e0)][_0x44659(0x5d6)]=this[_0x44659(0x41b)]['alternativeText']),this[_0x44659(0x2e0)];}[_0x34684e(0x27f)](_0x1fc210){const _0x4518f0=_0x34684e;this[_0x4518f0(0x41b)][_0x4518f0(0x5dc)]&&(_0x1fc210[_0x4518f0(0x6f9)]?.[_0x4518f0(0x1fd)]===_0x4518f0(0x4c4)&&(_0x1fc210['previousSibling']['hidden']=!![]),_0x1fc210[_0x4518f0(0x495)]=![]);}[_0x34684e(0x411)](_0x2b92f9){const _0x6ea23a=_0x34684e,{isWin:_0x3811d5,isMac:_0x483160}=_0x20ce9d[_0x6ea23a(0x7a8)][_0x6ea23a(0x5e2)];return _0x3811d5&&_0x2b92f9[_0x6ea23a(0x8ca)]||_0x483160&&_0x2b92f9[_0x6ea23a(0x60b)];}['_setEventListener'](_0x2d145f,_0x313810,_0x5f5100,_0x23b697){const _0x5bc765=_0x34684e;_0x313810[_0x5bc765(0x720)](_0x5bc765(0x6d5))?_0x2d145f[_0x5bc765(0x5cc)](_0x313810,_0x42ec92=>{const _0x1c5b75=_0x5bc765;this[_0x1c5b75(0x8a6)][_0x1c5b75(0x64b)]?.[_0x1c5b75(0x3c0)](_0x1c5b75(0x81a),{'source':this,'detail':{'id':this[_0x1c5b75(0x41b)]['id'],'name':_0x5f5100,'value':_0x23b697(_0x42ec92),'shift':_0x42ec92['shiftKey'],'modifier':this[_0x1c5b75(0x411)](_0x42ec92)}});}):_0x2d145f[_0x5bc765(0x5cc)](_0x313810,_0x19ab87=>{const _0x26b279=_0x5bc765;this[_0x26b279(0x8a6)][_0x26b279(0x64b)]?.[_0x26b279(0x3c0)](_0x26b279(0x81a),{'source':this,'detail':{'id':this[_0x26b279(0x41b)]['id'],'name':_0x5f5100,'value':_0x23b697(_0x19ab87)}});});}['_setEventListeners'](_0xf403c9,_0x2a8468,_0x19916f){const _0xf6b4a8=_0x34684e;for(const [_0xe1c010,_0x287160]of _0x2a8468){(_0x287160===_0xf6b4a8(0x592)||this[_0xf6b4a8(0x41b)][_0xf6b4a8(0x521)]?.[_0x287160])&&this[_0xf6b4a8(0x794)](_0xf403c9,_0xe1c010,_0x287160,_0x19916f);}}[_0x34684e(0x209)](_0xd55daf){const _0x59b37e=_0x34684e,_0x2e9ca8=this[_0x59b37e(0x41b)]['backgroundColor']||null;_0xd55daf[_0x59b37e(0x498)][_0x59b37e(0x98d)]=_0x2e9ca8===null?_0x59b37e(0x910):_0x20ce9d[_0x59b37e(0x5d7)]['makeHexColor'](_0x2e9ca8[0x0],_0x2e9ca8[0x1],_0x2e9ca8[0x2]);}[_0x34684e(0x663)](_0x43efff){const _0x596f70=_0x34684e,_0x475a4a=[_0x596f70(0x4fd),'center','right'],{fontColor:_0x4bb417}=this[_0x596f70(0x41b)]['defaultAppearanceData'],_0x3cdf60=this[_0x596f70(0x41b)][_0x596f70(0x2ac)]['fontSize']||_0x32407f,_0x5c32d3=_0x43efff[_0x596f70(0x498)];let _0x4972aa;const _0x45c10d=0x2,_0x5249ee=_0xa752ff=>Math['round'](0xa*_0xa752ff)/0xa;if(this['data'][_0x596f70(0x203)]){const _0x48b5d0=Math[_0x596f70(0x346)](this[_0x596f70(0x41b)][_0x596f70(0x333)][0x3]-this[_0x596f70(0x41b)][_0x596f70(0x333)][0x1]-_0x45c10d),_0x3ef1cf=Math[_0x596f70(0x7df)](_0x48b5d0/(_0x20ce9d[_0x596f70(0x90b)]*_0x3cdf60))||0x1,_0x568560=_0x48b5d0/_0x3ef1cf;_0x4972aa=Math[_0x596f70(0x81b)](_0x3cdf60,_0x5249ee(_0x568560/_0x20ce9d[_0x596f70(0x90b)]));}else{const _0x3697a1=Math[_0x596f70(0x346)](this[_0x596f70(0x41b)][_0x596f70(0x333)][0x3]-this[_0x596f70(0x41b)]['rect'][0x1]-_0x45c10d);_0x4972aa=Math[_0x596f70(0x81b)](_0x3cdf60,_0x5249ee(_0x3697a1/_0x20ce9d[_0x596f70(0x90b)]));}_0x5c32d3['fontSize']=_0x596f70(0x8de)+_0x4972aa+_0x596f70(0x108),_0x5c32d3[_0x596f70(0x5fe)]=_0x20ce9d[_0x596f70(0x5d7)][_0x596f70(0x86a)](_0x4bb417[0x0],_0x4bb417[0x1],_0x4bb417[0x2]),this[_0x596f70(0x41b)][_0x596f70(0x876)]!==null&&(_0x5c32d3[_0x596f70(0x18a)]=_0x475a4a[this['data']['textAlignment']]);}[_0x34684e(0xce)](_0x17ecbd,_0x3adcaa){const _0xb24029=_0x34684e;_0x3adcaa?_0x17ecbd['setAttribute'](_0xb24029(0x447),!![]):_0x17ecbd[_0xb24029(0x687)](_0xb24029(0x447)),_0x17ecbd['setAttribute'](_0xb24029(0xc0),_0x3adcaa);}}class _0x1850f8 extends _0x182efb{constructor(_0x417c17){const _0x4d09f0=_0x34684e,_0x20d5ef=_0x417c17[_0x4d09f0(0x874)]||!_0x417c17[_0x4d09f0(0x41b)][_0x4d09f0(0x31f)]&&!!_0x417c17[_0x4d09f0(0x41b)]['fieldValue'];super(_0x417c17,{'isRenderable':_0x20d5ef});}[_0x34684e(0x356)](_0x4fb18c,_0x42c1aa,_0x3d0339,_0x343153){const _0x565be5=_0x34684e,_0x45057b=this[_0x565be5(0x5bf)];for(const _0x599b05 of this[_0x565be5(0x37e)](_0x4fb18c[_0x565be5(0x499)],_0x4fb18c['id'])){_0x599b05[_0x565be5(0x6d3)]&&(_0x599b05['domElement'][_0x42c1aa]=_0x3d0339),_0x45057b[_0x565be5(0x699)](_0x599b05['id'],{[_0x343153]:_0x3d0339});}}[_0x34684e(0x6c8)](){const _0x501501=_0x34684e,_0x53f7e8=this[_0x501501(0x5bf)],_0x4cdf37=this[_0x501501(0x41b)]['id'];this[_0x501501(0x2e0)]['classList'][_0x501501(0x156)](_0x501501(0x306));let _0x435b48=null;if(this[_0x501501(0x874)]){const _0x2a8ad2=_0x53f7e8[_0x501501(0xde)](_0x4cdf37,{'value':this[_0x501501(0x41b)][_0x501501(0x46d)]});let _0x5f0eab=_0x2a8ad2[_0x501501(0x2b8)]||'';const _0x39e3af=_0x53f7e8[_0x501501(0xde)](_0x4cdf37,{'charLimit':this[_0x501501(0x41b)][_0x501501(0x471)]})[_0x501501(0x664)];_0x39e3af&&_0x5f0eab[_0x501501(0x557)]>_0x39e3af&&(_0x5f0eab=_0x5f0eab['slice'](0x0,_0x39e3af));let _0x1fa01d=_0x2a8ad2['formattedValue']||this[_0x501501(0x41b)][_0x501501(0x8a9)]?.[_0x501501(0x334)]('\x0a')||null;_0x1fa01d&&this[_0x501501(0x41b)][_0x501501(0x838)]&&(_0x1fa01d=_0x1fa01d[_0x501501(0x8b5)](/\s+/g,''));const _0x2d4828={'userValue':_0x5f0eab,'formattedValue':_0x1fa01d,'lastCommittedValue':null,'commitKey':0x1};this[_0x501501(0x41b)]['multiLine']?(_0x435b48=document[_0x501501(0x400)](_0x501501(0x3f2)),_0x435b48[_0x501501(0x8a9)]=_0x1fa01d??_0x5f0eab,this[_0x501501(0x41b)][_0x501501(0x1f2)]&&(_0x435b48[_0x501501(0x498)]['overflowY']='hidden')):(_0x435b48=document[_0x501501(0x400)](_0x501501(0x3e6)),_0x435b48[_0x501501(0x9fd)]=_0x501501(0x739),_0x435b48['setAttribute']('value',_0x1fa01d??_0x5f0eab),this[_0x501501(0x41b)][_0x501501(0x1f2)]&&(_0x435b48['style'][_0x501501(0x4ed)]=_0x501501(0x495)));this[_0x501501(0x41b)]['hasOwnCanvas']&&(_0x435b48[_0x501501(0x495)]=!![]);_0xe9026f[_0x501501(0x156)](_0x435b48),_0x435b48[_0x501501(0x636)](_0x501501(0x9a2),_0x4cdf37),_0x435b48[_0x501501(0x93b)]=this[_0x501501(0x41b)]['readOnly'],_0x435b48[_0x501501(0x499)]=this[_0x501501(0x41b)][_0x501501(0x509)]||this[_0x501501(0x41b)][_0x501501(0x8ed)],_0x435b48[_0x501501(0x646)]=_0x3d9ae1,this[_0x501501(0xce)](_0x435b48,this[_0x501501(0x41b)][_0x501501(0x447)]);_0x39e3af&&(_0x435b48[_0x501501(0x862)]=_0x39e3af);_0x435b48[_0x501501(0x5cc)](_0x501501(0x3e6),_0x298d9b=>{const _0x122695=_0x501501;_0x53f7e8['setValue'](_0x4cdf37,{'value':_0x298d9b[_0x122695(0x1c8)]['value']}),this[_0x122695(0x356)](_0x435b48,_0x122695(0x2b8),_0x298d9b[_0x122695(0x1c8)][_0x122695(0x2b8)],_0x122695(0x2b8)),_0x2d4828[_0x122695(0x144)]=null;}),_0x435b48[_0x501501(0x5cc)]('resetform',_0x14aef4=>{const _0x48b744=_0x501501,_0xeaa032=this[_0x48b744(0x41b)][_0x48b744(0x34a)]??'';_0x435b48['value']=_0x2d4828[_0x48b744(0x941)]=_0xeaa032,_0x2d4828[_0x48b744(0x144)]=null;});let _0x275d72=_0x44c6af=>{const _0x1e9dd0=_0x501501,{formattedValue:_0x1f69fb}=_0x2d4828;_0x1f69fb!==null&&_0x1f69fb!==undefined&&(_0x44c6af['target'][_0x1e9dd0(0x2b8)]=_0x1f69fb),_0x44c6af['target'][_0x1e9dd0(0x622)]=0x0;};if(this['enableScripting']&&this['hasJSActions']){_0x435b48['addEventListener'](_0x501501(0x47d),_0x339651=>{const _0x2ab61e=_0x501501,{target:_0x9a52d1}=_0x339651;_0x2d4828[_0x2ab61e(0x941)]&&(_0x9a52d1[_0x2ab61e(0x2b8)]=_0x2d4828[_0x2ab61e(0x941)]),_0x2d4828[_0x2ab61e(0x506)]=_0x9a52d1['value'],_0x2d4828['commitKey']=0x1;}),_0x435b48[_0x501501(0x5cc)](_0x501501(0x133),_0x5aded7=>{const _0x4cfceb=_0x501501;this[_0x4cfceb(0x27f)](_0x5aded7[_0x4cfceb(0x1c8)]);const _0x2bebe0={'value'(_0x2c42c4){const _0x519238=_0x4cfceb;_0x2d4828['userValue']=_0x2c42c4[_0x519238(0x677)][_0x519238(0x2b8)]??'',_0x53f7e8['setValue'](_0x4cdf37,{'value':_0x2d4828[_0x519238(0x941)][_0x519238(0x83f)]()}),_0x2c42c4[_0x519238(0x1c8)][_0x519238(0x2b8)]=_0x2d4828[_0x519238(0x941)];},'formattedValue'(_0xdca018){const _0x191bb9=_0x4cfceb,{formattedValue:_0x170fe3}=_0xdca018[_0x191bb9(0x677)];_0x2d4828[_0x191bb9(0x144)]=_0x170fe3,_0x170fe3!==null&&_0x170fe3!==undefined&&_0xdca018[_0x191bb9(0x1c8)]!==document[_0x191bb9(0x366)]&&(_0xdca018[_0x191bb9(0x1c8)][_0x191bb9(0x2b8)]=_0x170fe3),_0x53f7e8['setValue'](_0x4cdf37,{'formattedValue':_0x170fe3});},'selRange'(_0x3ae60e){const _0x25fbfa=_0x4cfceb;_0x3ae60e[_0x25fbfa(0x1c8)]['setSelectionRange'](..._0x3ae60e[_0x25fbfa(0x677)][_0x25fbfa(0x564)]);},'charLimit':_0x2cd972=>{const _0x22d90f=_0x4cfceb,{charLimit:_0x4fb2e0}=_0x2cd972[_0x22d90f(0x677)],{target:_0x2b8aab}=_0x2cd972;if(_0x4fb2e0===0x0){_0x2b8aab[_0x22d90f(0x687)](_0x22d90f(0x862));return;}_0x2b8aab['setAttribute'](_0x22d90f(0x862),_0x4fb2e0);let _0xc008a2=_0x2d4828[_0x22d90f(0x941)];if(!_0xc008a2||_0xc008a2['length']<=_0x4fb2e0)return;_0xc008a2=_0xc008a2[_0x22d90f(0x80c)](0x0,_0x4fb2e0),_0x2b8aab[_0x22d90f(0x2b8)]=_0x2d4828[_0x22d90f(0x941)]=_0xc008a2,_0x53f7e8['setValue'](_0x4cdf37,{'value':_0xc008a2}),this[_0x22d90f(0x8a6)][_0x22d90f(0x64b)]?.[_0x22d90f(0x3c0)]('dispatcheventinsandbox',{'source':this,'detail':{'id':_0x4cdf37,'name':_0x22d90f(0x16f),'value':_0xc008a2,'willCommit':!![],'commitKey':0x1,'selStart':_0x2b8aab[_0x22d90f(0x40e)],'selEnd':_0x2b8aab['selectionEnd']}});}};this['_dispatchEventFromSandbox'](_0x2bebe0,_0x5aded7);}),_0x435b48['addEventListener'](_0x501501(0x14c),_0x237d42=>{const _0x29fb19=_0x501501;_0x2d4828['commitKey']=0x1;let _0x5f47dc=-0x1;if(_0x237d42['key']===_0x29fb19(0x508))_0x5f47dc=0x0;else{if(_0x237d42[_0x29fb19(0x725)]==='Enter'&&!this['data'][_0x29fb19(0x203)])_0x5f47dc=0x2;else _0x237d42[_0x29fb19(0x725)]===_0x29fb19(0x3e5)&&(_0x2d4828[_0x29fb19(0x67a)]=0x3);}if(_0x5f47dc===-0x1)return;const {value:_0x309c9d}=_0x237d42[_0x29fb19(0x1c8)];if(_0x2d4828['lastCommittedValue']===_0x309c9d)return;_0x2d4828['lastCommittedValue']=_0x309c9d,_0x2d4828[_0x29fb19(0x941)]=_0x309c9d,this[_0x29fb19(0x8a6)][_0x29fb19(0x64b)]?.[_0x29fb19(0x3c0)]('dispatcheventinsandbox',{'source':this,'detail':{'id':_0x4cdf37,'name':_0x29fb19(0x16f),'value':_0x309c9d,'willCommit':!![],'commitKey':_0x5f47dc,'selStart':_0x237d42[_0x29fb19(0x1c8)][_0x29fb19(0x40e)],'selEnd':_0x237d42[_0x29fb19(0x1c8)]['selectionEnd']}});});const _0x139fbb=_0x275d72;_0x275d72=null,_0x435b48[_0x501501(0x5cc)](_0x501501(0x456),_0x34aceb=>{const _0x9131e2=_0x501501;if(!_0x34aceb[_0x9131e2(0x7f5)])return;const {value:_0x31a6d6}=_0x34aceb[_0x9131e2(0x1c8)];_0x2d4828[_0x9131e2(0x941)]=_0x31a6d6,_0x2d4828[_0x9131e2(0x506)]!==_0x31a6d6&&this[_0x9131e2(0x8a6)][_0x9131e2(0x64b)]?.[_0x9131e2(0x3c0)](_0x9131e2(0x81a),{'source':this,'detail':{'id':_0x4cdf37,'name':_0x9131e2(0x16f),'value':_0x31a6d6,'willCommit':!![],'commitKey':_0x2d4828[_0x9131e2(0x67a)],'selStart':_0x34aceb['target'][_0x9131e2(0x40e)],'selEnd':_0x34aceb['target']['selectionEnd']}}),_0x139fbb(_0x34aceb);}),this['data'][_0x501501(0x521)]?.['Keystroke']&&_0x435b48[_0x501501(0x5cc)]('beforeinput',_0xea08b9=>{const _0x106c20=_0x501501;_0x2d4828['lastCommittedValue']=null;const {data:_0x177ff3,target:_0x5f3e9a}=_0xea08b9,{value:_0x4a2902,selectionStart:_0x506591,selectionEnd:_0x3e5890}=_0x5f3e9a;let _0x123614=_0x506591,_0x22b70f=_0x3e5890;switch(_0xea08b9[_0x106c20(0x7a5)]){case _0x106c20(0xa04):{const _0x202aac=_0x4a2902[_0x106c20(0x5d2)](0x0,_0x506591)[_0x106c20(0x1c6)](/\w*[^\w]*$/);_0x202aac&&(_0x123614-=_0x202aac[0x0]['length']);break;}case _0x106c20(0x2dd):{const _0x1c7ab1=_0x4a2902[_0x106c20(0x5d2)](_0x506591)[_0x106c20(0x1c6)](/^[^\w]*\w*/);_0x1c7ab1&&(_0x22b70f+=_0x1c7ab1[0x0][_0x106c20(0x557)]);break;}case _0x106c20(0x684):_0x506591===_0x3e5890&&(_0x123614-=0x1);break;case'deleteContentForward':_0x506591===_0x3e5890&&(_0x22b70f+=0x1);break;}_0xea08b9[_0x106c20(0x9af)](),this[_0x106c20(0x8a6)][_0x106c20(0x64b)]?.[_0x106c20(0x3c0)](_0x106c20(0x81a),{'source':this,'detail':{'id':_0x4cdf37,'name':_0x106c20(0x16f),'value':_0x4a2902,'change':_0x177ff3||'','willCommit':![],'selStart':_0x123614,'selEnd':_0x22b70f}});}),this['_setEventListeners'](_0x435b48,[[_0x501501(0x47d),_0x501501(0x560)],[_0x501501(0x456),'Blur'],[_0x501501(0x7ed),_0x501501(0x6b3)],[_0x501501(0x5ed),_0x501501(0x228)],[_0x501501(0x4e4),'Mouse\x20Exit'],['mouseup',_0x501501(0x8fc)]],_0x2d535d=>_0x2d535d[_0x501501(0x1c8)][_0x501501(0x2b8)]);}_0x275d72&&_0x435b48['addEventListener'](_0x501501(0x456),_0x275d72);if(this[_0x501501(0x41b)][_0x501501(0x838)]){const _0x2c4856=this['data'][_0x501501(0x333)][0x2]-this[_0x501501(0x41b)][_0x501501(0x333)][0x0],_0x57525e=_0x2c4856/_0x39e3af;_0x435b48['classList'][_0x501501(0x156)]('comb'),_0x435b48[_0x501501(0x498)][_0x501501(0x3b6)]=_0x501501(0x8de)+_0x57525e+_0x501501(0x216);}}else _0x435b48=document[_0x501501(0x400)](_0x501501(0x903)),_0x435b48[_0x501501(0x8a9)]=this[_0x501501(0x41b)]['fieldValue'],_0x435b48[_0x501501(0x498)][_0x501501(0x3ae)]=_0x501501(0x839),_0x435b48['style'][_0x501501(0x619)]=_0x501501(0x983);return this['_setTextStyle'](_0x435b48),this['_setBackgroundColor'](_0x435b48),this['_setDefaultPropertiesFromJS'](_0x435b48),this['container']['append'](_0x435b48),this[_0x501501(0x2e0)];}}class _0x3af51c extends _0x182efb{constructor(_0x172834){const _0x8a7876=_0x34684e;super(_0x172834,{'isRenderable':!!_0x172834[_0x8a7876(0x41b)][_0x8a7876(0x5dc)]});}}class _0x5897b2 extends _0x182efb{constructor(_0x113bcd){const _0x5e9066=_0x34684e;super(_0x113bcd,{'isRenderable':_0x113bcd[_0x5e9066(0x874)]});}[_0x34684e(0x6c8)](){const _0x8f3711=_0x34684e,_0x61461d=this[_0x8f3711(0x5bf)],_0x68999e=this[_0x8f3711(0x41b)],_0xc2293f=_0x68999e['id'];let _0x47537e=_0x61461d['getValue'](_0xc2293f,{'value':_0x68999e['exportValue']===_0x68999e[_0x8f3711(0x46d)]})['value'];typeof _0x47537e==='string'&&(_0x47537e=_0x47537e!=='Off',_0x61461d[_0x8f3711(0x699)](_0xc2293f,{'value':_0x47537e}));this['container']['classList'][_0x8f3711(0x156)](_0x8f3711(0x1eb),'checkBox');const _0x200620=document['createElement'](_0x8f3711(0x3e6));return _0xe9026f[_0x8f3711(0x156)](_0x200620),_0x200620[_0x8f3711(0x636)](_0x8f3711(0x9a2),_0xc2293f),_0x200620[_0x8f3711(0x93b)]=_0x68999e['readOnly'],this[_0x8f3711(0xce)](_0x200620,this['data'][_0x8f3711(0x447)]),_0x200620[_0x8f3711(0x9fd)]=_0x8f3711(0x799),_0x200620[_0x8f3711(0x499)]=_0x68999e[_0x8f3711(0x509)]||_0x68999e[_0x8f3711(0x8ed)],_0x47537e&&_0x200620['setAttribute'](_0x8f3711(0xfc),!![]),_0x200620[_0x8f3711(0x636)](_0x8f3711(0x7a7),_0x68999e[_0x8f3711(0x7a7)]),_0x200620[_0x8f3711(0x646)]=_0x3d9ae1,_0x200620[_0x8f3711(0x5cc)](_0x8f3711(0x169),_0x47f5b2=>{const _0x4e8b0e=_0x8f3711,{name:_0x27fc64,checked:_0x2fa09a}=_0x47f5b2[_0x4e8b0e(0x1c8)];for(const _0x5c4c6a of this[_0x4e8b0e(0x37e)](_0x27fc64,_0xc2293f)){const _0x16397e=_0x2fa09a&&_0x5c4c6a[_0x4e8b0e(0x7a7)]===_0x68999e['exportValue'];_0x5c4c6a[_0x4e8b0e(0x6d3)]&&(_0x5c4c6a[_0x4e8b0e(0x6d3)]['checked']=_0x16397e),_0x61461d[_0x4e8b0e(0x699)](_0x5c4c6a['id'],{'value':_0x16397e});}_0x61461d[_0x4e8b0e(0x699)](_0xc2293f,{'value':_0x2fa09a});}),_0x200620['addEventListener'](_0x8f3711(0x340),_0x41b00a=>{const _0x475e0c=_0x8f3711,_0x82dbc9=_0x68999e[_0x475e0c(0x34a)]||_0x475e0c(0x6e8);_0x41b00a[_0x475e0c(0x1c8)][_0x475e0c(0xfc)]=_0x82dbc9===_0x68999e[_0x475e0c(0x7a7)];}),this[_0x8f3711(0x4a7)]&&this[_0x8f3711(0x731)]&&(_0x200620['addEventListener'](_0x8f3711(0x133),_0xe63104=>{const _0x340fc9=_0x8f3711,_0x5564fb={'value'(_0x339468){const _0x20ba56=a0_0x160d;_0x339468[_0x20ba56(0x1c8)]['checked']=_0x339468[_0x20ba56(0x677)][_0x20ba56(0x2b8)]!==_0x20ba56(0x6e8),_0x61461d['setValue'](_0xc2293f,{'value':_0x339468[_0x20ba56(0x1c8)][_0x20ba56(0xfc)]});}};this[_0x340fc9(0x695)](_0x5564fb,_0xe63104);}),this[_0x8f3711(0x5cd)](_0x200620,[['change',_0x8f3711(0x550)],['change',_0x8f3711(0x592)],['focus','Focus'],[_0x8f3711(0x456),_0x8f3711(0x634)],['mousedown',_0x8f3711(0x6b3)],[_0x8f3711(0x5ed),_0x8f3711(0x228)],[_0x8f3711(0x4e4),_0x8f3711(0x56e)],['mouseup',_0x8f3711(0x8fc)]],_0x153419=>_0x153419['target'][_0x8f3711(0xfc)])),this[_0x8f3711(0x209)](_0x200620),this[_0x8f3711(0x9ad)](_0x200620),this['container'][_0x8f3711(0x45e)](_0x200620),this[_0x8f3711(0x2e0)];}}class _0x589802 extends _0x182efb{constructor(_0x227f5f){const _0x288c1f=_0x34684e;super(_0x227f5f,{'isRenderable':_0x227f5f[_0x288c1f(0x874)]});}[_0x34684e(0x6c8)](){const _0x57b32c=_0x34684e;this['container'][_0x57b32c(0x2bc)][_0x57b32c(0x156)](_0x57b32c(0x1eb),_0x57b32c(0x164));const _0x3aa674=this['annotationStorage'],_0x176282=this[_0x57b32c(0x41b)],_0x41ccc6=_0x176282['id'];let _0x128dd3=_0x3aa674[_0x57b32c(0xde)](_0x41ccc6,{'value':_0x176282[_0x57b32c(0x46d)]===_0x176282[_0x57b32c(0x3fa)]})[_0x57b32c(0x2b8)];typeof _0x128dd3===_0x57b32c(0x8cd)&&(_0x128dd3=_0x128dd3!==_0x176282['buttonValue'],_0x3aa674[_0x57b32c(0x699)](_0x41ccc6,{'value':_0x128dd3}));const _0x20730a=document[_0x57b32c(0x400)](_0x57b32c(0x3e6));_0xe9026f['add'](_0x20730a),_0x20730a['setAttribute'](_0x57b32c(0x9a2),_0x41ccc6),_0x20730a[_0x57b32c(0x93b)]=_0x176282[_0x57b32c(0x23f)],this['_setRequired'](_0x20730a,this['data'][_0x57b32c(0x447)]),_0x20730a['type']=_0x57b32c(0x2fe),_0x20730a[_0x57b32c(0x499)]=_0x176282[_0x57b32c(0x509)]||_0x176282[_0x57b32c(0x8ed)];_0x128dd3&&_0x20730a['setAttribute'](_0x57b32c(0xfc),!![]);_0x20730a['tabIndex']=_0x3d9ae1,_0x20730a['addEventListener'](_0x57b32c(0x169),_0x596086=>{const _0xa405f7=_0x57b32c,{name:_0x27917d,checked:_0x36dfa6}=_0x596086[_0xa405f7(0x1c8)];for(const _0x2cc839 of this[_0xa405f7(0x37e)](_0x27917d,_0x41ccc6)){_0x3aa674[_0xa405f7(0x699)](_0x2cc839['id'],{'value':![]});}_0x3aa674['setValue'](_0x41ccc6,{'value':_0x36dfa6});}),_0x20730a[_0x57b32c(0x5cc)](_0x57b32c(0x340),_0x470ee9=>{const _0x4c04fe=_0x57b32c,_0x2a849b=_0x176282[_0x4c04fe(0x34a)];_0x470ee9['target'][_0x4c04fe(0xfc)]=_0x2a849b!==null&&_0x2a849b!==undefined&&_0x2a849b===_0x176282[_0x4c04fe(0x3fa)];});if(this[_0x57b32c(0x4a7)]&&this['hasJSActions']){const _0x3f5313=_0x176282['buttonValue'];_0x20730a[_0x57b32c(0x5cc)](_0x57b32c(0x133),_0x3b7ab7=>{const _0xc5bba2={'value':_0x96697f=>{const _0x261415=a0_0x160d,_0x4fa8da=_0x3f5313===_0x96697f[_0x261415(0x677)][_0x261415(0x2b8)];for(const _0x2b2fa4 of this['_getElementsByName'](_0x96697f[_0x261415(0x1c8)][_0x261415(0x499)])){const _0x1d1514=_0x4fa8da&&_0x2b2fa4['id']===_0x41ccc6;_0x2b2fa4[_0x261415(0x6d3)]&&(_0x2b2fa4[_0x261415(0x6d3)][_0x261415(0xfc)]=_0x1d1514),_0x3aa674[_0x261415(0x699)](_0x2b2fa4['id'],{'value':_0x1d1514});}}};this['_dispatchEventFromSandbox'](_0xc5bba2,_0x3b7ab7);}),this['_setEventListeners'](_0x20730a,[[_0x57b32c(0x169),'Validate'],['change',_0x57b32c(0x592)],['focus',_0x57b32c(0x560)],[_0x57b32c(0x456),'Blur'],['mousedown','Mouse\x20Down'],[_0x57b32c(0x5ed),_0x57b32c(0x228)],['mouseleave',_0x57b32c(0x56e)],[_0x57b32c(0x45a),_0x57b32c(0x8fc)]],_0x3c8de9=>_0x3c8de9[_0x57b32c(0x1c8)][_0x57b32c(0xfc)]);}return this[_0x57b32c(0x209)](_0x20730a),this['_setDefaultPropertiesFromJS'](_0x20730a),this[_0x57b32c(0x2e0)][_0x57b32c(0x45e)](_0x20730a),this['container'];}}class _0x3a98a7 extends _0x23222c{constructor(_0x480124){const _0x531b78=_0x34684e;super(_0x480124,{'ignoreBorder':_0x480124[_0x531b78(0x41b)][_0x531b78(0x31f)]});}['render'](){const _0x20a1d0=_0x34684e,_0x23a34b=super[_0x20a1d0(0x6c8)]();_0x23a34b[_0x20a1d0(0x2bc)][_0x20a1d0(0x156)]('buttonWidgetAnnotation','pushButton');this['data'][_0x20a1d0(0x211)]&&(_0x23a34b[_0x20a1d0(0x5d6)]=this['data'][_0x20a1d0(0x211)]);const _0x26e44d=_0x23a34b['lastChild'];return this[_0x20a1d0(0x4a7)]&&this['hasJSActions']&&_0x26e44d&&(this[_0x20a1d0(0x9ad)](_0x26e44d),_0x26e44d[_0x20a1d0(0x5cc)](_0x20a1d0(0x133),_0x1d1ecd=>{const _0x1c4a51=_0x20a1d0;this[_0x1c4a51(0x695)]({},_0x1d1ecd);})),_0x23a34b;}}class _0x144da5 extends _0x182efb{constructor(_0x41a9e0){const _0x3c7803=_0x34684e;super(_0x41a9e0,{'isRenderable':_0x41a9e0[_0x3c7803(0x874)]});}[_0x34684e(0x6c8)](){const _0x45815f=_0x34684e;this[_0x45815f(0x2e0)][_0x45815f(0x2bc)][_0x45815f(0x156)]('choiceWidgetAnnotation');const _0x119dab=this[_0x45815f(0x5bf)],_0x4b477f=this[_0x45815f(0x41b)]['id'],_0x811fb=_0x119dab[_0x45815f(0xde)](_0x4b477f,{'value':this['data'][_0x45815f(0x46d)]}),_0x41e924=document[_0x45815f(0x400)](_0x45815f(0x243));_0xe9026f['add'](_0x41e924),_0x41e924['setAttribute'](_0x45815f(0x9a2),_0x4b477f),_0x41e924['disabled']=this[_0x45815f(0x41b)][_0x45815f(0x23f)],this[_0x45815f(0xce)](_0x41e924,this[_0x45815f(0x41b)][_0x45815f(0x447)]),_0x41e924[_0x45815f(0x499)]=this[_0x45815f(0x41b)][_0x45815f(0x509)]||this[_0x45815f(0x41b)][_0x45815f(0x8ed)],_0x41e924['tabIndex']=_0x3d9ae1;let _0x16adba=this[_0x45815f(0x41b)][_0x45815f(0x90c)]&&this[_0x45815f(0x41b)][_0x45815f(0x18b)][_0x45815f(0x557)]>0x0;!this[_0x45815f(0x41b)]['combo']&&(_0x41e924[_0x45815f(0x87a)]=this[_0x45815f(0x41b)][_0x45815f(0x18b)][_0x45815f(0x557)],this['data'][_0x45815f(0x490)]&&(_0x41e924[_0x45815f(0x9f2)]=!![]));_0x41e924[_0x45815f(0x5cc)]('resetform',_0x4da0ce=>{const _0x15808a=_0x45815f,_0x5eb72e=this[_0x15808a(0x41b)][_0x15808a(0x34a)];for(const _0x424dc4 of _0x41e924['options']){_0x424dc4[_0x15808a(0x78a)]=_0x424dc4[_0x15808a(0x2b8)]===_0x5eb72e;}});for(const _0x2793b7 of this[_0x45815f(0x41b)][_0x45815f(0x18b)]){const _0x908f2c=document[_0x45815f(0x400)](_0x45815f(0x131));_0x908f2c[_0x45815f(0x8a9)]=_0x2793b7[_0x45815f(0x8b1)],_0x908f2c[_0x45815f(0x2b8)]=_0x2793b7[_0x45815f(0x7a7)],_0x811fb['value'][_0x45815f(0x720)](_0x2793b7[_0x45815f(0x7a7)])&&(_0x908f2c[_0x45815f(0x636)](_0x45815f(0x78a),!![]),_0x16adba=![]),_0x41e924[_0x45815f(0x45e)](_0x908f2c);}let _0xc3e8dd=null;if(_0x16adba){const _0x1ed343=document[_0x45815f(0x400)](_0x45815f(0x131));_0x1ed343[_0x45815f(0x2b8)]='\x20',_0x1ed343[_0x45815f(0x636)]('hidden',!![]),_0x1ed343[_0x45815f(0x636)](_0x45815f(0x78a),!![]),_0x41e924['prepend'](_0x1ed343),_0xc3e8dd=()=>{const _0x3067ef=_0x45815f;_0x1ed343[_0x3067ef(0x10a)](),_0x41e924[_0x3067ef(0x1c0)](_0x3067ef(0x3e6),_0xc3e8dd),_0xc3e8dd=null;},_0x41e924[_0x45815f(0x5cc)](_0x45815f(0x3e6),_0xc3e8dd);}const _0x7e5d82=_0xdf4120=>{const _0x3e5179=_0x45815f,_0x592a38=_0xdf4120?_0x3e5179(0x2b8):_0x3e5179(0x8a9),{options:_0x2cf3dc,multiple:_0x246b17}=_0x41e924;if(!_0x246b17)return _0x2cf3dc[_0x3e5179(0x97c)]===-0x1?null:_0x2cf3dc[_0x2cf3dc[_0x3e5179(0x97c)]][_0x592a38];return Array[_0x3e5179(0x821)]['filter']['call'](_0x2cf3dc,_0x48ce=>_0x48ce[_0x3e5179(0x78a)])[_0x3e5179(0x7ec)](_0x1c975d=>_0x1c975d[_0x592a38]);};let _0x1148eb=_0x7e5d82(![]);const _0x2bb050=_0x461717=>{const _0x54d532=_0x45815f,_0x129829=_0x461717['target'][_0x54d532(0x18b)];return Array[_0x54d532(0x821)][_0x54d532(0x7ec)][_0x54d532(0x569)](_0x129829,_0x579a4c=>{const _0x44535b=_0x54d532;return{'displayValue':_0x579a4c[_0x44535b(0x8a9)],'exportValue':_0x579a4c[_0x44535b(0x2b8)]};});};this[_0x45815f(0x4a7)]&&this[_0x45815f(0x731)]?(_0x41e924[_0x45815f(0x5cc)]('updatefromsandbox',_0xe89d48=>{const _0x5443a0=_0x45815f,_0x1db04c={'value'(_0x32e7a9){const _0x486135=a0_0x160d;_0xc3e8dd?.();const _0x2d91f0=_0x32e7a9[_0x486135(0x677)]['value'],_0x3a1f4d=new Set(Array[_0x486135(0x419)](_0x2d91f0)?_0x2d91f0:[_0x2d91f0]);for(const _0x2b0293 of _0x41e924[_0x486135(0x18b)]){_0x2b0293[_0x486135(0x78a)]=_0x3a1f4d[_0x486135(0x373)](_0x2b0293[_0x486135(0x2b8)]);}_0x119dab['setValue'](_0x4b477f,{'value':_0x7e5d82(!![])}),_0x1148eb=_0x7e5d82(![]);},'multipleSelection'(_0x50f980){_0x41e924['multiple']=!![];},'remove'(_0x394375){const _0x46c786=a0_0x160d,_0x34bcb8=_0x41e924[_0x46c786(0x18b)],_0x25f272=_0x394375[_0x46c786(0x677)][_0x46c786(0x10a)];_0x34bcb8[_0x25f272][_0x46c786(0x78a)]=![],_0x41e924['remove'](_0x25f272);if(_0x34bcb8[_0x46c786(0x557)]>0x0){const _0x3885ad=Array[_0x46c786(0x821)][_0x46c786(0x5eb)][_0x46c786(0x569)](_0x34bcb8,_0x53efb2=>_0x53efb2[_0x46c786(0x78a)]);_0x3885ad===-0x1&&(_0x34bcb8[0x0][_0x46c786(0x78a)]=!![]);}_0x119dab[_0x46c786(0x699)](_0x4b477f,{'value':_0x7e5d82(!![]),'items':_0x2bb050(_0x394375)}),_0x1148eb=_0x7e5d82(![]);},'clear'(_0x3311fc){const _0x25e79c=a0_0x160d;while(_0x41e924[_0x25e79c(0x557)]!==0x0){_0x41e924[_0x25e79c(0x10a)](0x0);}_0x119dab[_0x25e79c(0x699)](_0x4b477f,{'value':null,'items':[]}),_0x1148eb=_0x7e5d82(![]);},'insert'(_0x1eb3d6){const _0x1d4a23=a0_0x160d,{index:_0x15cddd,displayValue:_0x1c1af4,exportValue:_0x1a29bf}=_0x1eb3d6[_0x1d4a23(0x677)][_0x1d4a23(0x762)],_0x7a9983=_0x41e924[_0x1d4a23(0x6be)][_0x15cddd],_0x3b9f17=document['createElement'](_0x1d4a23(0x131));_0x3b9f17[_0x1d4a23(0x8a9)]=_0x1c1af4,_0x3b9f17[_0x1d4a23(0x2b8)]=_0x1a29bf,_0x7a9983?_0x7a9983[_0x1d4a23(0x8f7)](_0x3b9f17):_0x41e924[_0x1d4a23(0x45e)](_0x3b9f17),_0x119dab[_0x1d4a23(0x699)](_0x4b477f,{'value':_0x7e5d82(!![]),'items':_0x2bb050(_0x1eb3d6)}),_0x1148eb=_0x7e5d82(![]);},'items'(_0x1c2e1f){const _0x2ecece=a0_0x160d,{items:_0x4fb57a}=_0x1c2e1f[_0x2ecece(0x677)];while(_0x41e924['length']!==0x0){_0x41e924[_0x2ecece(0x10a)](0x0);}for(const _0x20e1a5 of _0x4fb57a){const {displayValue:_0x2d13ac,exportValue:_0xf8ab4b}=_0x20e1a5,_0x5f3561=document[_0x2ecece(0x400)](_0x2ecece(0x131));_0x5f3561[_0x2ecece(0x8a9)]=_0x2d13ac,_0x5f3561[_0x2ecece(0x2b8)]=_0xf8ab4b,_0x41e924[_0x2ecece(0x45e)](_0x5f3561);}_0x41e924[_0x2ecece(0x18b)]['length']>0x0&&(_0x41e924['options'][0x0]['selected']=!![]),_0x119dab[_0x2ecece(0x699)](_0x4b477f,{'value':_0x7e5d82(!![]),'items':_0x2bb050(_0x1c2e1f)}),_0x1148eb=_0x7e5d82(![]);},'indices'(_0x13ce3d){const _0x51821e=a0_0x160d,_0x40d7ab=new Set(_0x13ce3d[_0x51821e(0x677)][_0x51821e(0x46e)]);for(const _0x62cf24 of _0x13ce3d[_0x51821e(0x1c8)][_0x51821e(0x18b)]){_0x62cf24[_0x51821e(0x78a)]=_0x40d7ab[_0x51821e(0x373)](_0x62cf24[_0x51821e(0x37c)]);}_0x119dab[_0x51821e(0x699)](_0x4b477f,{'value':_0x7e5d82(!![])}),_0x1148eb=_0x7e5d82(![]);},'editable'(_0x543a74){const _0x30500d=a0_0x160d;_0x543a74[_0x30500d(0x1c8)][_0x30500d(0x93b)]=!_0x543a74[_0x30500d(0x677)][_0x30500d(0x27d)];}};this[_0x5443a0(0x695)](_0x1db04c,_0xe89d48);}),_0x41e924[_0x45815f(0x5cc)]('input',_0x3e93d6=>{const _0x3421d0=_0x45815f,_0x25c207=_0x7e5d82(!![]);_0x119dab['setValue'](_0x4b477f,{'value':_0x25c207}),_0x3e93d6[_0x3421d0(0x9af)](),this[_0x3421d0(0x8a6)][_0x3421d0(0x64b)]?.[_0x3421d0(0x3c0)](_0x3421d0(0x81a),{'source':this,'detail':{'id':_0x4b477f,'name':_0x3421d0(0x16f),'value':_0x1148eb,'changeEx':_0x25c207,'willCommit':![],'commitKey':0x1,'keyDown':![]}});}),this[_0x45815f(0x5cd)](_0x41e924,[[_0x45815f(0x47d),_0x45815f(0x560)],['blur',_0x45815f(0x634)],[_0x45815f(0x7ed),_0x45815f(0x6b3)],[_0x45815f(0x5ed),_0x45815f(0x228)],[_0x45815f(0x4e4),_0x45815f(0x56e)],[_0x45815f(0x45a),_0x45815f(0x8fc)],[_0x45815f(0x3e6),_0x45815f(0x592)],['input',_0x45815f(0x550)]],_0x1b4744=>_0x1b4744[_0x45815f(0x1c8)]['value'])):_0x41e924['addEventListener'](_0x45815f(0x3e6),function(_0x530c97){const _0x3e0223=_0x45815f;_0x119dab[_0x3e0223(0x699)](_0x4b477f,{'value':_0x7e5d82(!![])});});if(this[_0x45815f(0x41b)]['combo'])this[_0x45815f(0x663)](_0x41e924);else{}return this[_0x45815f(0x209)](_0x41e924),this[_0x45815f(0x9ad)](_0x41e924),this[_0x45815f(0x2e0)]['append'](_0x41e924),this[_0x45815f(0x2e0)];}}class _0x24aaee extends _0xba9c35{constructor(_0x4703f5){const _0x1e9713=_0x34684e,{data:_0x2dca47,elements:_0xbaae51}=_0x4703f5,_0x56c1ae=!!(_0x2dca47['titleObj']?.['str']||_0x2dca47[_0x1e9713(0x3a1)]?.[_0x1e9713(0xcf)]||_0x2dca47[_0x1e9713(0x68f)]?.[_0x1e9713(0xcf)]);super(_0x4703f5,{'isRenderable':_0x56c1ae}),this['elements']=_0xbaae51;}['render'](){const _0xaeb1e5=_0x34684e;this[_0xaeb1e5(0x2e0)][_0xaeb1e5(0x2bc)][_0xaeb1e5(0x156)](_0xaeb1e5(0x29f));const _0x560cb4=new _0x42f658({'container':this[_0xaeb1e5(0x2e0)],'color':this[_0xaeb1e5(0x41b)][_0xaeb1e5(0x5fe)],'titleObj':this[_0xaeb1e5(0x41b)][_0xaeb1e5(0x363)],'modificationDate':this['data'][_0xaeb1e5(0x562)],'contentsObj':this['data'][_0xaeb1e5(0x3a1)],'richText':this[_0xaeb1e5(0x41b)][_0xaeb1e5(0x68f)],'rect':this[_0xaeb1e5(0x41b)][_0xaeb1e5(0x333)],'parentRect':this[_0xaeb1e5(0x41b)]['parentRect']||null,'parent':this[_0xaeb1e5(0x4c3)],'elements':this[_0xaeb1e5(0x367)],'open':this[_0xaeb1e5(0x41b)][_0xaeb1e5(0x514)]}),_0x5e460a=[];for(const _0xee5cd7 of this['elements']){_0xee5cd7[_0xaeb1e5(0x895)]=_0x560cb4,_0x5e460a['push'](_0xee5cd7['data']['id']),_0xee5cd7['addHighlightArea']();}return this[_0xaeb1e5(0x2e0)][_0xaeb1e5(0x636)]('aria-controls',_0x5e460a[_0xaeb1e5(0x334)](',')),this[_0xaeb1e5(0x2e0)];}}class _0x42f658{#dateTimePromise=null;#boundHide=this.#hide[_0x34684e(0x5e8)](this);#boundShow=this.#show[_0x34684e(0x5e8)](this);#boundToggle=this.#toggle[_0x34684e(0x5e8)](this);#color=null;#container=null;#contentsObj=null;#elements=null;#parent=null;#parentRect=null;#pinned=![];#popup=null;#rect=null;#richText=null;#titleObj=null;#wasVisible=![];constructor(_0x210d9e){const _0x3ab652=_0x34684e;let {container:_0x529dcc,color:_0x16183b,elements:_0x1dee4c,titleObj:_0x1490ae,modificationDate:_0x3cc136,contentsObj:_0x5c09fa,richText:_0x17d9ee,parent:_0x329022,rect:_0x2b7a81,parentRect:_0x2d9a49,open:_0x5e3e90}=_0x210d9e;this.#container=_0x529dcc,this.#titleObj=_0x1490ae,this.#contentsObj=_0x5c09fa,this.#richText=_0x17d9ee,this.#parent=_0x329022,this.#color=_0x16183b,this.#rect=_0x2b7a81,this.#parentRect=_0x2d9a49,this.#elements=_0x1dee4c;const _0x29ccdd=_0x1ee1b8[_0x3ab652(0x35e)]['toDateObject'](_0x3cc136);_0x29ccdd&&(this.#dateTimePromise=_0x329022['l10n'][_0x3ab652(0x8c4)](_0x3ab652(0x975),{'date':_0x29ccdd[_0x3ab652(0x489)](),'time':_0x29ccdd[_0x3ab652(0x984)]()}));this['trigger']=_0x1dee4c[_0x3ab652(0x9bf)](_0x584e76=>_0x584e76[_0x3ab652(0x3c4)]());for(const _0x3720c7 of this[_0x3ab652(0x808)]){_0x3720c7[_0x3ab652(0x5cc)](_0x3ab652(0x45d),this.#boundToggle),_0x3720c7['addEventListener'](_0x3ab652(0x5ed),this.#boundShow),_0x3720c7[_0x3ab652(0x5cc)]('mouseleave',this.#boundHide);}this.#container['hidden']=!![],_0x5e3e90&&this.#toggle();}['render'](){const _0x1999f8=_0x34684e;if(this.#popup)return;const {page:{view:_0x22ac4f},viewport:{rawDims:{pageWidth:_0x38f8dd,pageHeight:_0x1b8a62,pageX:_0xf30d4,pageY:_0x481276}}}=this.#parent,_0x355571=this.#popup=document[_0x1999f8(0x400)](_0x1999f8(0x903));_0x355571['className']=_0x1999f8(0x895);if(this.#color){const _0x8850e1=_0x355571[_0x1999f8(0x498)]['outlineColor']=_0x20ce9d['Util'][_0x1999f8(0x86a)](...this.#color);if(CSS[_0x1999f8(0x2d8)](_0x1999f8(0x3a5),'color-mix(in\x20srgb,\x20red\x2030%,\x20white)'))_0x355571['style'][_0x1999f8(0x98d)]=_0x1999f8(0x3c8)+_0x8850e1+_0x1999f8(0x3a4);else{const _0x25d7ce=0.7;_0x355571[_0x1999f8(0x498)]['backgroundColor']=_0x20ce9d[_0x1999f8(0x5d7)]['makeHexColor'](...this.#color[_0x1999f8(0x7ec)](_0x3a77e5=>Math[_0x1999f8(0x583)](_0x25d7ce*(0xff-_0x3a77e5)+_0x3a77e5)));}}const _0x91b302=document[_0x1999f8(0x400)](_0x1999f8(0x901));_0x91b302[_0x1999f8(0x52b)]=_0x1999f8(0x935);const _0x426d15=document[_0x1999f8(0x400)]('h1');_0x91b302[_0x1999f8(0x45e)](_0x426d15),{dir:_0x426d15['dir'],str:_0x426d15[_0x1999f8(0x8a9)]}=this.#titleObj,_0x355571[_0x1999f8(0x45e)](_0x91b302);if(this.#dateTimePromise){const _0x1710d6=document[_0x1999f8(0x400)](_0x1999f8(0x901));_0x1710d6[_0x1999f8(0x2bc)][_0x1999f8(0x156)](_0x1999f8(0x8d9)),this.#dateTimePromise[_0x1999f8(0x22d)](_0x31ebde=>{const _0x31ab09=_0x1999f8;_0x1710d6[_0x31ab09(0x8a9)]=_0x31ebde;}),_0x91b302['append'](_0x1710d6);}const _0x3e2854=this.#contentsObj,_0x21453f=this.#richText;if(_0x21453f?.[_0x1999f8(0xcf)]&&(!_0x3e2854?.[_0x1999f8(0xcf)]||_0x3e2854['str']===_0x21453f['str']))_0x50cc29[_0x1999f8(0x139)][_0x1999f8(0x6c8)]({'xfaHtml':_0x21453f[_0x1999f8(0x850)],'intent':_0x1999f8(0x68f),'div':_0x355571}),_0x355571[_0x1999f8(0x9d9)][_0x1999f8(0x2bc)]['add']('richText',_0x1999f8(0x57e));else{const _0x27bb7d=this[_0x1999f8(0x740)](_0x3e2854);_0x355571[_0x1999f8(0x45e)](_0x27bb7d);}let _0x7e5b84=!!this.#parentRect,_0x7c40c2=_0x7e5b84?this.#parentRect:this.#rect;for(const _0x16e6d1 of this.#elements){if(!_0x7c40c2||_0x20ce9d[_0x1999f8(0x5d7)][_0x1999f8(0x441)](_0x16e6d1[_0x1999f8(0x41b)][_0x1999f8(0x333)],_0x7c40c2)!==null){_0x7c40c2=_0x16e6d1['data']['rect'],_0x7e5b84=!![];break;}}const _0x228be8=_0x20ce9d['Util'][_0x1999f8(0x3da)]([_0x7c40c2[0x0],_0x22ac4f[0x3]-_0x7c40c2[0x1]+_0x22ac4f[0x1],_0x7c40c2[0x2],_0x22ac4f[0x3]-_0x7c40c2[0x3]+_0x22ac4f[0x1]]),_0x47601c=0x5,_0x1a8e1e=_0x7e5b84?_0x7c40c2[0x2]-_0x7c40c2[0x0]+_0x47601c:0x0,_0x25b19d=_0x228be8[0x0]+_0x1a8e1e,_0x42020a=_0x228be8[0x1],{style:_0x339126}=this.#container;_0x339126[_0x1999f8(0x4fd)]=0x64*(_0x25b19d-_0xf30d4)/_0x38f8dd+'%',_0x339126[_0x1999f8(0x12f)]=0x64*(_0x42020a-_0x481276)/_0x1b8a62+'%',this.#container[_0x1999f8(0x45e)](_0x355571);}['_formatContents'](_0x342016){const _0x5d048b=_0x34684e;let {str:_0x2aa66d,dir:_0x325668}=_0x342016;const _0x514879=document[_0x5d048b(0x400)]('p');_0x514879[_0x5d048b(0x2bc)][_0x5d048b(0x156)]('popupContent'),_0x514879['dir']=_0x325668;const _0x496a95=_0x2aa66d[_0x5d048b(0x6db)](/(?:\r\n?|\n)/);for(let _0x44ffcb=0x0,_0xcc2ac7=_0x496a95[_0x5d048b(0x557)];_0x44ffcb<_0xcc2ac7;++_0x44ffcb){const _0x14a784=_0x496a95[_0x44ffcb];_0x514879[_0x5d048b(0x45e)](document[_0x5d048b(0x8fa)](_0x14a784)),_0x44ffcb<_0xcc2ac7-0x1&&_0x514879[_0x5d048b(0x45e)](document[_0x5d048b(0x400)]('br'));}return _0x514879;}#toggle(){const _0x122500=_0x34684e;this.#pinned=!this.#pinned,this.#pinned?(this.#show(),this.#container['addEventListener'](_0x122500(0x45d),this.#boundToggle)):(this.#hide(),this.#container[_0x122500(0x1c0)](_0x122500(0x45d),this.#boundToggle));}#show(){const _0x599ecd=_0x34684e;!this.#popup&&this[_0x599ecd(0x6c8)]();if(!this['isVisible'])this.#container[_0x599ecd(0x495)]=![],this.#container[_0x599ecd(0x498)][_0x599ecd(0x177)]=parseInt(this.#container[_0x599ecd(0x498)]['zIndex'])+0x3e8;else this.#pinned&&this.#container[_0x599ecd(0x2bc)][_0x599ecd(0x156)](_0x599ecd(0x5ea));}#hide(){const _0x52157f=_0x34684e;this.#container[_0x52157f(0x2bc)]['remove'](_0x52157f(0x5ea));if(this.#pinned||!this[_0x52157f(0x6f4)])return;this.#container['hidden']=!![],this.#container[_0x52157f(0x498)][_0x52157f(0x177)]=parseInt(this.#container[_0x52157f(0x498)]['zIndex'])-0x3e8;}['forceHide'](){const _0x37928e=_0x34684e;this.#wasVisible=this[_0x37928e(0x6f4)];if(!this.#wasVisible)return;this.#container['hidden']=!![];}[_0x34684e(0x798)](){if(!this.#wasVisible)return;this.#wasVisible=![],this.#container['hidden']=![];}get[_0x34684e(0x6f4)](){return this.#container['hidden']===![];}}class _0x56492f extends _0xba9c35{constructor(_0x4deadd){const _0x2a23fd=_0x34684e,_0x3e01a4=!!(_0x4deadd[_0x2a23fd(0x41b)][_0x2a23fd(0x9c8)]||_0x4deadd[_0x2a23fd(0x41b)][_0x2a23fd(0x363)]?.[_0x2a23fd(0xcf)]||_0x4deadd[_0x2a23fd(0x41b)][_0x2a23fd(0x3a1)]?.[_0x2a23fd(0xcf)]||_0x4deadd[_0x2a23fd(0x41b)][_0x2a23fd(0x68f)]?.[_0x2a23fd(0xcf)]);super(_0x4deadd,{'isRenderable':_0x3e01a4,'ignoreBorder':!![]}),this[_0x2a23fd(0x8a9)]=_0x4deadd[_0x2a23fd(0x41b)][_0x2a23fd(0x8a9)],this[_0x2a23fd(0x4e2)]=_0x20ce9d[_0x2a23fd(0x9a6)][_0x2a23fd(0x148)];}['render'](){const _0x5c9861=_0x34684e;this['container'][_0x5c9861(0x2bc)][_0x5c9861(0x156)](_0x5c9861(0x4a9));if(this[_0x5c9861(0x8a9)]){const _0x323a8c=document[_0x5c9861(0x400)](_0x5c9861(0x903));_0x323a8c[_0x5c9861(0x2bc)][_0x5c9861(0x156)](_0x5c9861(0x4bc)),_0x323a8c[_0x5c9861(0x636)]('role',_0x5c9861(0x84a));for(const _0x2b5659 of this['textContent']){const _0x2a4f84=document[_0x5c9861(0x400)](_0x5c9861(0x901));_0x2a4f84[_0x5c9861(0x8a9)]=_0x2b5659,_0x323a8c[_0x5c9861(0x45e)](_0x2a4f84);}this['container'][_0x5c9861(0x45e)](_0x323a8c);}return!this[_0x5c9861(0x41b)]['popupRef']&&this[_0x5c9861(0x544)](),this[_0x5c9861(0x64d)](),this[_0x5c9861(0x2e0)];}}_0x2c4a41['FreeTextAnnotationElement']=_0x56492f;class _0xf4a368 extends _0xba9c35{#line=null;constructor(_0x2bd4a){const _0x4b4a9e=_0x34684e,_0x82b898=!!(_0x2bd4a['data'][_0x4b4a9e(0x9c8)]||_0x2bd4a['data']['titleObj']?.[_0x4b4a9e(0xcf)]||_0x2bd4a['data'][_0x4b4a9e(0x3a1)]?.[_0x4b4a9e(0xcf)]||_0x2bd4a[_0x4b4a9e(0x41b)]['richText']?.[_0x4b4a9e(0xcf)]);super(_0x2bd4a,{'isRenderable':_0x82b898,'ignoreBorder':!![]});}[_0x34684e(0x6c8)](){const _0x524f83=_0x34684e;this[_0x524f83(0x2e0)][_0x524f83(0x2bc)][_0x524f83(0x156)](_0x524f83(0x922));const _0x319b47=this[_0x524f83(0x41b)],{width:_0x28f2cd,height:_0x1f4cd3}=_0x23686a(_0x319b47['rect']),_0x52d96b=this[_0x524f83(0x385)][_0x524f83(0x77c)](_0x28f2cd,_0x1f4cd3,!![]),_0x4a04a9=this.#line=this[_0x524f83(0x385)][_0x524f83(0x400)]('svg:line');return _0x4a04a9[_0x524f83(0x636)]('x1',_0x319b47['rect'][0x2]-_0x319b47[_0x524f83(0x436)][0x0]),_0x4a04a9[_0x524f83(0x636)]('y1',_0x319b47[_0x524f83(0x333)][0x3]-_0x319b47[_0x524f83(0x436)][0x1]),_0x4a04a9[_0x524f83(0x636)]('x2',_0x319b47[_0x524f83(0x333)][0x2]-_0x319b47[_0x524f83(0x436)][0x2]),_0x4a04a9[_0x524f83(0x636)]('y2',_0x319b47[_0x524f83(0x333)][0x3]-_0x319b47[_0x524f83(0x436)][0x3]),_0x4a04a9[_0x524f83(0x636)]('stroke-width',_0x319b47[_0x524f83(0x7e6)][_0x524f83(0x98b)]||0x1),_0x4a04a9['setAttribute'](_0x524f83(0x849),'transparent'),_0x4a04a9[_0x524f83(0x636)](_0x524f83(0x923),_0x524f83(0x910)),_0x52d96b[_0x524f83(0x45e)](_0x4a04a9),this[_0x524f83(0x2e0)][_0x524f83(0x45e)](_0x52d96b),!_0x319b47[_0x524f83(0x9c8)]&&this[_0x524f83(0x544)](),this[_0x524f83(0x2e0)];}['getElementsToTriggerPopup'](){return this.#line;}[_0x34684e(0xf0)](){const _0x17a57c=_0x34684e;this[_0x17a57c(0x2e0)][_0x17a57c(0x2bc)][_0x17a57c(0x156)](_0x17a57c(0x89e));}}class _0x2ff0ee extends _0xba9c35{#square=null;constructor(_0xaa3eb4){const _0x1d52cf=_0x34684e,_0x2cb626=!!(_0xaa3eb4[_0x1d52cf(0x41b)]['popupRef']||_0xaa3eb4['data']['titleObj']?.['str']||_0xaa3eb4[_0x1d52cf(0x41b)][_0x1d52cf(0x3a1)]?.[_0x1d52cf(0xcf)]||_0xaa3eb4[_0x1d52cf(0x41b)][_0x1d52cf(0x68f)]?.[_0x1d52cf(0xcf)]);super(_0xaa3eb4,{'isRenderable':_0x2cb626,'ignoreBorder':!![]});}[_0x34684e(0x6c8)](){const _0x4c9d70=_0x34684e;this[_0x4c9d70(0x2e0)][_0x4c9d70(0x2bc)][_0x4c9d70(0x156)](_0x4c9d70(0x61a));const _0x1975fc=this[_0x4c9d70(0x41b)],{width:_0x504c7f,height:_0x4958e0}=_0x23686a(_0x1975fc[_0x4c9d70(0x333)]),_0x52695a=this[_0x4c9d70(0x385)][_0x4c9d70(0x77c)](_0x504c7f,_0x4958e0,!![]),_0x2398a1=_0x1975fc[_0x4c9d70(0x7e6)][_0x4c9d70(0x98b)],_0x2d7443=this.#square=this[_0x4c9d70(0x385)][_0x4c9d70(0x400)](_0x4c9d70(0x20f));return _0x2d7443[_0x4c9d70(0x636)]('x',_0x2398a1/0x2),_0x2d7443[_0x4c9d70(0x636)]('y',_0x2398a1/0x2),_0x2d7443[_0x4c9d70(0x636)](_0x4c9d70(0x98b),_0x504c7f-_0x2398a1),_0x2d7443[_0x4c9d70(0x636)]('height',_0x4958e0-_0x2398a1),_0x2d7443['setAttribute']('stroke-width',_0x2398a1||0x1),_0x2d7443[_0x4c9d70(0x636)](_0x4c9d70(0x849),_0x4c9d70(0x910)),_0x2d7443[_0x4c9d70(0x636)]('fill',_0x4c9d70(0x910)),_0x52695a[_0x4c9d70(0x45e)](_0x2d7443),this[_0x4c9d70(0x2e0)][_0x4c9d70(0x45e)](_0x52695a),!_0x1975fc[_0x4c9d70(0x9c8)]&&this[_0x4c9d70(0x544)](),this[_0x4c9d70(0x2e0)];}['getElementsToTriggerPopup'](){return this.#square;}[_0x34684e(0xf0)](){const _0x299282=_0x34684e;this['container'][_0x299282(0x2bc)][_0x299282(0x156)](_0x299282(0x89e));}}class _0x2b3434 extends _0xba9c35{#circle=null;constructor(_0x6f356){const _0x3fca5b=_0x34684e,_0x2f85be=!!(_0x6f356[_0x3fca5b(0x41b)][_0x3fca5b(0x9c8)]||_0x6f356[_0x3fca5b(0x41b)][_0x3fca5b(0x363)]?.[_0x3fca5b(0xcf)]||_0x6f356[_0x3fca5b(0x41b)][_0x3fca5b(0x3a1)]?.[_0x3fca5b(0xcf)]||_0x6f356[_0x3fca5b(0x41b)][_0x3fca5b(0x68f)]?.[_0x3fca5b(0xcf)]);super(_0x6f356,{'isRenderable':_0x2f85be,'ignoreBorder':!![]});}['render'](){const _0x3dbf03=_0x34684e;this[_0x3dbf03(0x2e0)][_0x3dbf03(0x2bc)][_0x3dbf03(0x156)](_0x3dbf03(0x3d0));const _0x4eb50f=this[_0x3dbf03(0x41b)],{width:_0x377405,height:_0x1ba99b}=_0x23686a(_0x4eb50f[_0x3dbf03(0x333)]),_0x5a09e7=this[_0x3dbf03(0x385)][_0x3dbf03(0x77c)](_0x377405,_0x1ba99b,!![]),_0x253383=_0x4eb50f['borderStyle'][_0x3dbf03(0x98b)],_0x40966b=this.#circle=this[_0x3dbf03(0x385)][_0x3dbf03(0x400)]('svg:ellipse');return _0x40966b['setAttribute']('cx',_0x377405/0x2),_0x40966b['setAttribute']('cy',_0x1ba99b/0x2),_0x40966b[_0x3dbf03(0x636)]('rx',_0x377405/0x2-_0x253383/0x2),_0x40966b[_0x3dbf03(0x636)]('ry',_0x1ba99b/0x2-_0x253383/0x2),_0x40966b[_0x3dbf03(0x636)](_0x3dbf03(0x34e),_0x253383||0x1),_0x40966b[_0x3dbf03(0x636)](_0x3dbf03(0x849),'transparent'),_0x40966b[_0x3dbf03(0x636)]('fill',_0x3dbf03(0x910)),_0x5a09e7['append'](_0x40966b),this[_0x3dbf03(0x2e0)][_0x3dbf03(0x45e)](_0x5a09e7),!_0x4eb50f[_0x3dbf03(0x9c8)]&&this[_0x3dbf03(0x544)](),this['container'];}['getElementsToTriggerPopup'](){return this.#circle;}[_0x34684e(0xf0)](){const _0x1a863a=_0x34684e;this[_0x1a863a(0x2e0)][_0x1a863a(0x2bc)][_0x1a863a(0x156)](_0x1a863a(0x89e));}}class _0x4353ee extends _0xba9c35{#polyline=null;constructor(_0x4bf1fb){const _0x1c1b22=_0x34684e,_0x9e44d9=!!(_0x4bf1fb[_0x1c1b22(0x41b)]['popupRef']||_0x4bf1fb[_0x1c1b22(0x41b)][_0x1c1b22(0x363)]?.['str']||_0x4bf1fb['data']['contentsObj']?.[_0x1c1b22(0xcf)]||_0x4bf1fb[_0x1c1b22(0x41b)][_0x1c1b22(0x68f)]?.['str']);super(_0x4bf1fb,{'isRenderable':_0x9e44d9,'ignoreBorder':!![]}),this['containerClassName']=_0x1c1b22(0x192),this[_0x1c1b22(0x4ad)]='svg:polyline';}[_0x34684e(0x6c8)](){const _0x1793d6=_0x34684e;this[_0x1793d6(0x2e0)][_0x1793d6(0x2bc)]['add'](this[_0x1793d6(0x215)]);const _0x4cd8a5=this[_0x1793d6(0x41b)],{width:_0x8cc8a9,height:_0x1a572f}=_0x23686a(_0x4cd8a5['rect']),_0x19b2fd=this[_0x1793d6(0x385)][_0x1793d6(0x77c)](_0x8cc8a9,_0x1a572f,!![]);let _0x5f23ca=[];for(const _0x4c0fda of _0x4cd8a5[_0x1793d6(0x69f)]){const _0x4dc349=_0x4c0fda['x']-_0x4cd8a5[_0x1793d6(0x333)][0x0],_0x35d7d7=_0x4cd8a5[_0x1793d6(0x333)][0x3]-_0x4c0fda['y'];_0x5f23ca[_0x1793d6(0x7d6)](_0x4dc349+','+_0x35d7d7);}_0x5f23ca=_0x5f23ca[_0x1793d6(0x334)]('\x20');const _0x45d8cb=this.#polyline=this[_0x1793d6(0x385)][_0x1793d6(0x400)](this[_0x1793d6(0x4ad)]);return _0x45d8cb[_0x1793d6(0x636)](_0x1793d6(0x97f),_0x5f23ca),_0x45d8cb[_0x1793d6(0x636)](_0x1793d6(0x34e),_0x4cd8a5[_0x1793d6(0x7e6)]['width']||0x1),_0x45d8cb[_0x1793d6(0x636)]('stroke',_0x1793d6(0x910)),_0x45d8cb[_0x1793d6(0x636)]('fill',_0x1793d6(0x910)),_0x19b2fd[_0x1793d6(0x45e)](_0x45d8cb),this[_0x1793d6(0x2e0)][_0x1793d6(0x45e)](_0x19b2fd),!_0x4cd8a5[_0x1793d6(0x9c8)]&&this['_createPopup'](_0x45d8cb,_0x4cd8a5),this[_0x1793d6(0x2e0)];}[_0x34684e(0x3c4)](){return this.#polyline;}[_0x34684e(0xf0)](){const _0x3e66a0=_0x34684e;this[_0x3e66a0(0x2e0)][_0x3e66a0(0x2bc)][_0x3e66a0(0x156)](_0x3e66a0(0x89e));}}class _0x41f05d extends _0x4353ee{constructor(_0x2c63a8){const _0x1e02b2=_0x34684e;super(_0x2c63a8),this[_0x1e02b2(0x215)]=_0x1e02b2(0x7a0),this['svgElementName']=_0x1e02b2(0x755);}}class _0x46d755 extends _0xba9c35{constructor(_0x5c70cc){const _0xe652b5=_0x34684e,_0x39434f=!!(_0x5c70cc[_0xe652b5(0x41b)][_0xe652b5(0x9c8)]||_0x5c70cc[_0xe652b5(0x41b)][_0xe652b5(0x363)]?.[_0xe652b5(0xcf)]||_0x5c70cc[_0xe652b5(0x41b)][_0xe652b5(0x3a1)]?.[_0xe652b5(0xcf)]||_0x5c70cc[_0xe652b5(0x41b)][_0xe652b5(0x68f)]?.[_0xe652b5(0xcf)]);super(_0x5c70cc,{'isRenderable':_0x39434f,'ignoreBorder':!![]});}[_0x34684e(0x6c8)](){const _0x1230e4=_0x34684e;return this['container'][_0x1230e4(0x2bc)][_0x1230e4(0x156)](_0x1230e4(0x140)),!this[_0x1230e4(0x41b)][_0x1230e4(0x9c8)]&&this[_0x1230e4(0x544)](),this[_0x1230e4(0x2e0)];}}class _0x401798 extends _0xba9c35{#polylines=[];constructor(_0x532c69){const _0x44caea=_0x34684e,_0x4ad4b5=!!(_0x532c69['data'][_0x44caea(0x9c8)]||_0x532c69[_0x44caea(0x41b)][_0x44caea(0x363)]?.[_0x44caea(0xcf)]||_0x532c69[_0x44caea(0x41b)][_0x44caea(0x3a1)]?.['str']||_0x532c69['data']['richText']?.[_0x44caea(0xcf)]);super(_0x532c69,{'isRenderable':_0x4ad4b5,'ignoreBorder':!![]}),this[_0x44caea(0x215)]=_0x44caea(0x694),this[_0x44caea(0x4ad)]=_0x44caea(0x8c7),this[_0x44caea(0x4e2)]=_0x20ce9d['AnnotationEditorType'][_0x44caea(0x8ac)];}[_0x34684e(0x6c8)](){const _0x41b455=_0x34684e;this[_0x41b455(0x2e0)][_0x41b455(0x2bc)][_0x41b455(0x156)](this[_0x41b455(0x215)]);const _0x4b73f8=this[_0x41b455(0x41b)],{width:_0x3323ef,height:_0x48c96f}=_0x23686a(_0x4b73f8[_0x41b455(0x333)]),_0x999f3f=this[_0x41b455(0x385)][_0x41b455(0x77c)](_0x3323ef,_0x48c96f,!![]);for(const _0x47e148 of _0x4b73f8[_0x41b455(0x241)]){let _0x372a92=[];for(const _0x3bc264 of _0x47e148){const _0x5d317f=_0x3bc264['x']-_0x4b73f8[_0x41b455(0x333)][0x0],_0x434d51=_0x4b73f8[_0x41b455(0x333)][0x3]-_0x3bc264['y'];_0x372a92[_0x41b455(0x7d6)](_0x5d317f+','+_0x434d51);}_0x372a92=_0x372a92[_0x41b455(0x334)]('\x20');const _0x3a26ea=this[_0x41b455(0x385)][_0x41b455(0x400)](this[_0x41b455(0x4ad)]);this.#polylines[_0x41b455(0x7d6)](_0x3a26ea),_0x3a26ea[_0x41b455(0x636)]('points',_0x372a92),_0x3a26ea[_0x41b455(0x636)](_0x41b455(0x34e),_0x4b73f8[_0x41b455(0x7e6)][_0x41b455(0x98b)]||0x1),_0x3a26ea[_0x41b455(0x636)](_0x41b455(0x849),_0x41b455(0x910)),_0x3a26ea[_0x41b455(0x636)](_0x41b455(0x923),'transparent'),!_0x4b73f8[_0x41b455(0x9c8)]&&this[_0x41b455(0x544)](_0x3a26ea,_0x4b73f8),_0x999f3f[_0x41b455(0x45e)](_0x3a26ea);}return this['container'][_0x41b455(0x45e)](_0x999f3f),this['container'];}['getElementsToTriggerPopup'](){return this.#polylines;}[_0x34684e(0xf0)](){const _0x1ef83a=_0x34684e;this['container'][_0x1ef83a(0x2bc)][_0x1ef83a(0x156)](_0x1ef83a(0x89e));}}_0x2c4a41[_0x34684e(0x301)]=_0x401798;class _0x488503 extends _0xba9c35{constructor(_0x2c1f45){const _0x39e904=_0x34684e,_0x2c7605=!!(_0x2c1f45[_0x39e904(0x41b)]['popupRef']||_0x2c1f45['data'][_0x39e904(0x363)]?.[_0x39e904(0xcf)]||_0x2c1f45[_0x39e904(0x41b)][_0x39e904(0x3a1)]?.['str']||_0x2c1f45['data'][_0x39e904(0x68f)]?.[_0x39e904(0xcf)]);super(_0x2c1f45,{'isRenderable':_0x2c7605,'ignoreBorder':!![],'createQuadrilaterals':!![]});}[_0x34684e(0x6c8)](){const _0x31f2e0=_0x34684e;!this[_0x31f2e0(0x41b)][_0x31f2e0(0x9c8)]&&this[_0x31f2e0(0x544)]();if(this['quadrilaterals'])return this[_0x31f2e0(0x258)]('highlightAnnotation');return this['container'][_0x31f2e0(0x2bc)][_0x31f2e0(0x156)](_0x31f2e0(0x19e)),this['container'];}}class _0x56d96a extends _0xba9c35{constructor(_0x1474d6){const _0xc0d1d6=_0x34684e,_0x243540=!!(_0x1474d6['data']['popupRef']||_0x1474d6[_0xc0d1d6(0x41b)][_0xc0d1d6(0x363)]?.[_0xc0d1d6(0xcf)]||_0x1474d6[_0xc0d1d6(0x41b)][_0xc0d1d6(0x3a1)]?.[_0xc0d1d6(0xcf)]||_0x1474d6[_0xc0d1d6(0x41b)][_0xc0d1d6(0x68f)]?.[_0xc0d1d6(0xcf)]);super(_0x1474d6,{'isRenderable':_0x243540,'ignoreBorder':!![],'createQuadrilaterals':!![]});}[_0x34684e(0x6c8)](){const _0x496e3b=_0x34684e;!this[_0x496e3b(0x41b)][_0x496e3b(0x9c8)]&&this[_0x496e3b(0x544)]();if(this['quadrilaterals'])return this[_0x496e3b(0x258)](_0x496e3b(0x14a));return this[_0x496e3b(0x2e0)][_0x496e3b(0x2bc)][_0x496e3b(0x156)](_0x496e3b(0x14a)),this[_0x496e3b(0x2e0)];}}class _0x1d5779 extends _0xba9c35{constructor(_0x365533){const _0x1a7758=_0x34684e,_0x4c7c52=!!(_0x365533[_0x1a7758(0x41b)][_0x1a7758(0x9c8)]||_0x365533[_0x1a7758(0x41b)][_0x1a7758(0x363)]?.[_0x1a7758(0xcf)]||_0x365533[_0x1a7758(0x41b)]['contentsObj']?.[_0x1a7758(0xcf)]||_0x365533[_0x1a7758(0x41b)]['richText']?.[_0x1a7758(0xcf)]);super(_0x365533,{'isRenderable':_0x4c7c52,'ignoreBorder':!![],'createQuadrilaterals':!![]});}[_0x34684e(0x6c8)](){const _0x366fe3=_0x34684e;!this[_0x366fe3(0x41b)]['popupRef']&&this[_0x366fe3(0x544)]();if(this['quadrilaterals'])return this[_0x366fe3(0x258)](_0x366fe3(0x7d7));return this[_0x366fe3(0x2e0)]['classList'][_0x366fe3(0x156)]('squigglyAnnotation'),this[_0x366fe3(0x2e0)];}}class _0x3897cf extends _0xba9c35{constructor(_0x219376){const _0x430abc=_0x34684e,_0xa08d78=!!(_0x219376['data'][_0x430abc(0x9c8)]||_0x219376[_0x430abc(0x41b)]['titleObj']?.['str']||_0x219376[_0x430abc(0x41b)]['contentsObj']?.[_0x430abc(0xcf)]||_0x219376[_0x430abc(0x41b)][_0x430abc(0x68f)]?.[_0x430abc(0xcf)]);super(_0x219376,{'isRenderable':_0xa08d78,'ignoreBorder':!![],'createQuadrilaterals':!![]});}['render'](){const _0x2e4691=_0x34684e;!this[_0x2e4691(0x41b)][_0x2e4691(0x9c8)]&&this['_createPopup']();if(this[_0x2e4691(0x931)])return this[_0x2e4691(0x258)](_0x2e4691(0x4cc));return this[_0x2e4691(0x2e0)][_0x2e4691(0x2bc)][_0x2e4691(0x156)](_0x2e4691(0x4cc)),this[_0x2e4691(0x2e0)];}}class _0x4095a7 extends _0xba9c35{constructor(_0x146050){const _0x4e59cd=_0x34684e,_0xbfb7b4=!!(_0x146050[_0x4e59cd(0x41b)][_0x4e59cd(0x9c8)]||_0x146050['data'][_0x4e59cd(0x363)]?.['str']||_0x146050['data'][_0x4e59cd(0x3a1)]?.['str']||_0x146050[_0x4e59cd(0x41b)]['richText']?.[_0x4e59cd(0xcf)]);super(_0x146050,{'isRenderable':_0xbfb7b4,'ignoreBorder':!![]});}[_0x34684e(0x6c8)](){const _0x1f7d3a=_0x34684e;return this[_0x1f7d3a(0x2e0)]['classList']['add'](_0x1f7d3a(0x12b)),!this['data'][_0x1f7d3a(0x9c8)]&&this[_0x1f7d3a(0x544)](),this[_0x1f7d3a(0x2e0)];}}_0x2c4a41[_0x34684e(0x3ed)]=_0x4095a7;class _0x27bed6 extends _0xba9c35{#trigger=null;constructor(_0x4b0d3d){const _0x15e640=_0x34684e;super(_0x4b0d3d,{'isRenderable':!![]});const {filename:_0x1afda6,content:_0x557af7}=this[_0x15e640(0x41b)][_0x15e640(0x151)];this[_0x15e640(0x5cf)]=(0x0,_0x1ee1b8[_0x15e640(0x598)])(_0x1afda6,!![]),this[_0x15e640(0x609)]=_0x557af7,this[_0x15e640(0x8a6)][_0x15e640(0x64b)]?.[_0x15e640(0x3c0)](_0x15e640(0x1e3),{'source':this,'filename':_0x1afda6,'content':_0x557af7});}[_0x34684e(0x6c8)](){const _0x232b28=_0x34684e;this[_0x232b28(0x2e0)]['classList'][_0x232b28(0x156)](_0x232b28(0x834));let _0x5698fe;return this['data'][_0x232b28(0x31f)]?_0x5698fe=document[_0x232b28(0x400)]('div'):(_0x5698fe=document[_0x232b28(0x400)](_0x232b28(0x662)),_0x5698fe[_0x232b28(0x5ef)]=this['imageResourcesPath']+_0x232b28(0x95c)+(/paperclip/i[_0x232b28(0x6e7)](this['data'][_0x232b28(0x499)])?_0x232b28(0x1b1):_0x232b28(0x5ee))+'.svg'),_0x5698fe['classList'][_0x232b28(0x156)](_0x232b28(0x36a)),_0x5698fe[_0x232b28(0x5cc)](_0x232b28(0x327),this[_0x232b28(0x6d2)][_0x232b28(0x5e8)](this)),this.#trigger=_0x5698fe,!this[_0x232b28(0x41b)][_0x232b28(0x9c8)]&&(this[_0x232b28(0x41b)][_0x232b28(0x363)]?.[_0x232b28(0xcf)]||this['data'][_0x232b28(0x3a1)]?.[_0x232b28(0xcf)]||this['data']['richText'])&&this[_0x232b28(0x544)](),this['container'][_0x232b28(0x45e)](_0x5698fe),this[_0x232b28(0x2e0)];}[_0x34684e(0x3c4)](){return this.#trigger;}[_0x34684e(0xf0)](){const _0x530800=_0x34684e;this[_0x530800(0x2e0)]['classList'][_0x530800(0x156)]('highlightArea');}[_0x34684e(0x6d2)](){const _0x688713=_0x34684e;this[_0x688713(0x641)]?.[_0x688713(0x42f)](this['container'],this[_0x688713(0x609)],this[_0x688713(0x5cf)]);}}class _0x2f5674{#accessibilityManager=null;#annotationCanvasMap=null;#editableAnnotations=new Map();constructor(_0x2fc710){const _0x3523eb=_0x34684e;let {div:_0x4e5455,accessibilityManager:_0x5cf163,annotationCanvasMap:_0x5e1844,l10n:_0x32e773,page:_0x3e9e38,viewport:_0x234ff5}=_0x2fc710;this[_0x3523eb(0x903)]=_0x4e5455,this.#accessibilityManager=_0x5cf163,this.#annotationCanvasMap=_0x5e1844,this['l10n']=_0x32e773,this[_0x3523eb(0x6ea)]=_0x3e9e38,this['viewport']=_0x234ff5,this['zIndex']=0x0;const {NullL10n:_0x2b831c}=_0x5164b3(0xa0);this[_0x3523eb(0x4e9)]||=_0x2b831c;}#appendElement(_0x158f84,_0x17f830){const _0x230415=_0x34684e,_0x2733f5=_0x158f84['firstChild']||_0x158f84;_0x2733f5['id']=''+_0x1ee1b8[_0x230415(0x1de)]+_0x17f830,this[_0x230415(0x903)][_0x230415(0x45e)](_0x158f84),this.#accessibilityManager?.['moveElementInDOM'](this[_0x230415(0x903)],_0x158f84,_0x2733f5,![]);}async['render'](_0x2f90c3){const _0x39c843=_0x34684e,{annotations:_0x593ec1}=_0x2f90c3,_0x2e889c=this[_0x39c843(0x903)];(0x0,_0x1ee1b8[_0x39c843(0x95e)])(_0x2e889c,this[_0x39c843(0x502)]);const _0x157a58=new Map(),_0x66fe63={'data':null,'layer':_0x2e889c,'linkService':_0x2f90c3[_0x39c843(0x8a6)],'downloadManager':_0x2f90c3[_0x39c843(0x641)],'imageResourcesPath':_0x2f90c3[_0x39c843(0x33d)]||'','renderForms':_0x2f90c3[_0x39c843(0x874)]!==![],'svgFactory':new _0x1ee1b8[(_0x39c843(0x7be))](),'annotationStorage':_0x2f90c3['annotationStorage']||new _0x3196ff['AnnotationStorage'](),'enableScripting':_0x2f90c3[_0x39c843(0x4a7)]===!![],'hasJSActions':_0x2f90c3[_0x39c843(0x731)],'fieldObjects':_0x2f90c3[_0x39c843(0x500)],'parent':this,'elements':null};for(const _0x1c5d38 of _0x593ec1){if(_0x1c5d38[_0x39c843(0x782)])continue;const _0x485018=_0x1c5d38['annotationType']===_0x20ce9d['AnnotationType'][_0x39c843(0x11d)];if(!_0x485018){const {width:_0x4bee0d,height:_0xea42cf}=_0x23686a(_0x1c5d38[_0x39c843(0x333)]);if(_0x4bee0d<=0x0||_0xea42cf<=0x0)continue;}else{const _0x15252e=_0x157a58[_0x39c843(0x8c4)](_0x1c5d38['id']);if(!_0x15252e)continue;_0x66fe63[_0x39c843(0x367)]=_0x15252e;}_0x66fe63[_0x39c843(0x41b)]=_0x1c5d38;const _0x26ddd0=_0x1fbf87[_0x39c843(0x77c)](_0x66fe63);if(!_0x26ddd0['isRenderable'])continue;if(!_0x485018&&_0x1c5d38['popupRef']){const _0x2e3ea6=_0x157a58[_0x39c843(0x8c4)](_0x1c5d38[_0x39c843(0x9c8)]);!_0x2e3ea6?_0x157a58['set'](_0x1c5d38[_0x39c843(0x9c8)],[_0x26ddd0]):_0x2e3ea6[_0x39c843(0x7d6)](_0x26ddd0);}_0x26ddd0[_0x39c843(0x4e2)]>0x0&&this.#editableAnnotations[_0x39c843(0x98e)](_0x26ddd0[_0x39c843(0x41b)]['id'],_0x26ddd0);const _0x613b76=_0x26ddd0['render']();_0x1c5d38['hidden']&&(_0x613b76[_0x39c843(0x498)]['visibility']='hidden');if(Array['isArray'](_0x613b76))for(const _0x16c8fd of _0x613b76){this.#appendElement(_0x16c8fd,_0x1c5d38['id']);}else this.#appendElement(_0x613b76,_0x1c5d38['id']);}this.#setAnnotationCanvasMap(),await this[_0x39c843(0x4e9)][_0x39c843(0x18d)](_0x2e889c);}[_0x34684e(0x1b4)](_0x268f03){const _0x5ceb0b=_0x34684e;let {viewport:_0x2bfcaa}=_0x268f03;const _0x582098=this[_0x5ceb0b(0x903)];this[_0x5ceb0b(0x502)]=_0x2bfcaa,(0x0,_0x1ee1b8['setLayerDimensions'])(_0x582098,{'rotation':_0x2bfcaa[_0x5ceb0b(0x7af)]}),this.#setAnnotationCanvasMap(),_0x582098[_0x5ceb0b(0x495)]=![];}#setAnnotationCanvasMap(){const _0x3c3a49=_0x34684e;if(!this.#annotationCanvasMap)return;const _0x39ce0e=this[_0x3c3a49(0x903)];for(const [_0x18d048,_0x51e8f2]of this.#annotationCanvasMap){const _0x2eca70=_0x39ce0e[_0x3c3a49(0x6c7)](_0x3c3a49(0x273)+_0x18d048+'\x22]');if(!_0x2eca70)continue;const {firstChild:_0x1e67e5}=_0x2eca70;if(!_0x1e67e5)_0x2eca70[_0x3c3a49(0x45e)](_0x51e8f2);else _0x1e67e5[_0x3c3a49(0x1fd)]==='CANVAS'?_0x1e67e5['replaceWith'](_0x51e8f2):_0x1e67e5[_0x3c3a49(0x8f7)](_0x51e8f2);}this.#annotationCanvasMap[_0x3c3a49(0x1ca)]();}['getEditableAnnotations'](){const _0x34d89a=_0x34684e;return Array['from'](this.#editableAnnotations[_0x34d89a(0x823)]());}['getEditableAnnotation'](_0x8219c3){const _0x53809f=_0x34684e;return this.#editableAnnotations[_0x53809f(0x8c4)](_0x8219c3);}}_0x2c4a41['AnnotationLayer']=_0x2f5674;},(_0x3544ff,_0x325490)=>{'use strict';const _0x12b0f8=a0_0x160d;Object[_0x12b0f8(0x430)](_0x325490,_0x12b0f8(0x19a),{'value':!![]}),_0x325490[_0x12b0f8(0x703)]=void 0x0;function _0x5db9cd(_0x3416c9){const _0x5d077c=_0x12b0f8;return Math[_0x5d077c(0x583)](Math['max'](0x0,Math[_0x5d077c(0x81b)](0x1,_0x3416c9))*0xff)['toString'](0x10)['padStart'](0x2,'0');}class _0xa0846d{static['CMYK_G'](_0x50f6a){const _0x5b7b9c=_0x12b0f8;let [_0x402684,_0x561be0,_0x3ec6af,_0x24a8d9]=_0x50f6a;return['G',0x1-Math[_0x5b7b9c(0x81b)](0x1,0.3*_0x402684+0.59*_0x3ec6af+0.11*_0x561be0+_0x24a8d9)];}static['G_CMYK'](_0x43640b){const _0x1a7b24=_0x12b0f8;let [_0x3c3038]=_0x43640b;return[_0x1a7b24(0x6f3),0x0,0x0,0x0,0x1-_0x3c3038];}static[_0x12b0f8(0x507)](_0x5cf391){const _0x54fb36=_0x12b0f8;let [_0x29c091]=_0x5cf391;return[_0x54fb36(0x559),_0x29c091,_0x29c091,_0x29c091];}static[_0x12b0f8(0x772)](_0x7cb5e0){let [_0xeef270]=_0x7cb5e0;const _0x27ce1f=_0x5db9cd(_0xeef270);return'#'+_0x27ce1f+_0x27ce1f+_0x27ce1f;}static['RGB_G'](_0x499e19){let [_0x15852e,_0x4c0bcf,_0x3c8c2d]=_0x499e19;return['G',0.3*_0x15852e+0.59*_0x4c0bcf+0.11*_0x3c8c2d];}static[_0x12b0f8(0x4c8)](_0x40b17f){let [_0x5c2df5,_0x50e829,_0x473db3]=_0x40b17f;const _0x42db83=_0x5db9cd(_0x5c2df5),_0x4e3fd2=_0x5db9cd(_0x50e829),_0x4c6d41=_0x5db9cd(_0x473db3);return'#'+_0x42db83+_0x4e3fd2+_0x4c6d41;}static[_0x12b0f8(0x9f8)](){const _0x153084=_0x12b0f8;return _0x153084(0x493);}static[_0x12b0f8(0x4d4)](_0x5cfeae){const _0x2337e0=_0x12b0f8;let [_0x8e1805,_0x186186,_0x255cc1,_0x6b4d8e]=_0x5cfeae;return[_0x2337e0(0x559),0x1-Math[_0x2337e0(0x81b)](0x1,_0x8e1805+_0x6b4d8e),0x1-Math['min'](0x1,_0x255cc1+_0x6b4d8e),0x1-Math[_0x2337e0(0x81b)](0x1,_0x186186+_0x6b4d8e)];}static[_0x12b0f8(0x676)](_0x12c7bc){const _0x19a385=_0x12b0f8,_0x5b107c=this['CMYK_RGB'](_0x12c7bc)[_0x19a385(0x80c)](0x1);return this[_0x19a385(0x4c8)](_0x5b107c);}static['RGB_CMYK'](_0x2d292e){const _0x57de80=_0x12b0f8;let [_0x2172a8,_0x2dc1a9,_0x166edc]=_0x2d292e;const _0x1606ab=0x1-_0x2172a8,_0x4cfbac=0x1-_0x2dc1a9,_0x5c3018=0x1-_0x166edc,_0x2a8d14=Math[_0x57de80(0x81b)](_0x1606ab,_0x4cfbac,_0x5c3018);return['CMYK',_0x1606ab,_0x4cfbac,_0x5c3018,_0x2a8d14];}}_0x325490[_0x12b0f8(0x703)]=_0xa0846d;},(_0x493ae1,_0x45af19,_0x2c7e2d)=>{'use strict';const _0x5bfea8=a0_0x160d;Object[_0x5bfea8(0x430)](_0x45af19,_0x5bfea8(0x19a),{'value':!![]}),_0x45af19[_0x5bfea8(0x139)]=void 0x0;var _0x3df9b0=_0x2c7e2d(0x93);class _0x1bd1f4{static[_0x5bfea8(0x9dd)](_0x57fb80,_0x4d16d4,_0x6e4eb1,_0x188840,_0x205a1a){const _0x21681b=_0x5bfea8,_0x3440c1=_0x188840[_0x21681b(0xde)](_0x4d16d4,{'value':null});switch(_0x6e4eb1[_0x21681b(0x499)]){case _0x21681b(0x3f2):_0x3440c1[_0x21681b(0x2b8)]!==null&&(_0x57fb80[_0x21681b(0x8a9)]=_0x3440c1[_0x21681b(0x2b8)]);if(_0x205a1a===_0x21681b(0x5f8))break;_0x57fb80[_0x21681b(0x5cc)](_0x21681b(0x3e6),_0x21d692=>{const _0x5ced6d=_0x21681b;_0x188840['setValue'](_0x4d16d4,{'value':_0x21d692[_0x5ced6d(0x1c8)][_0x5ced6d(0x2b8)]});});break;case _0x21681b(0x3e6):if(_0x6e4eb1[_0x21681b(0x6ec)]['type']===_0x21681b(0x2fe)||_0x6e4eb1[_0x21681b(0x6ec)][_0x21681b(0x9fd)]===_0x21681b(0x799)){if(_0x3440c1[_0x21681b(0x2b8)]===_0x6e4eb1[_0x21681b(0x6ec)][_0x21681b(0x80d)])_0x57fb80[_0x21681b(0x636)](_0x21681b(0xfc),!![]);else _0x3440c1['value']===_0x6e4eb1[_0x21681b(0x6ec)][_0x21681b(0x1d9)]&&_0x57fb80['removeAttribute'](_0x21681b(0xfc));if(_0x205a1a===_0x21681b(0x5f8))break;_0x57fb80['addEventListener'](_0x21681b(0x169),_0x2c2dfb=>{const _0x2a9199=_0x21681b;_0x188840[_0x2a9199(0x699)](_0x4d16d4,{'value':_0x2c2dfb[_0x2a9199(0x1c8)][_0x2a9199(0xfc)]?_0x2c2dfb[_0x2a9199(0x1c8)]['getAttribute']('xfaOn'):_0x2c2dfb[_0x2a9199(0x1c8)][_0x2a9199(0x8ae)](_0x2a9199(0x1d9))});});}else{_0x3440c1[_0x21681b(0x2b8)]!==null&&_0x57fb80[_0x21681b(0x636)]('value',_0x3440c1[_0x21681b(0x2b8)]);if(_0x205a1a===_0x21681b(0x5f8))break;_0x57fb80[_0x21681b(0x5cc)](_0x21681b(0x3e6),_0x24ad4d=>{const _0x5529b4=_0x21681b;_0x188840[_0x5529b4(0x699)](_0x4d16d4,{'value':_0x24ad4d[_0x5529b4(0x1c8)][_0x5529b4(0x2b8)]});});}break;case _0x21681b(0x243):if(_0x3440c1['value']!==null)for(const _0x2e1202 of _0x6e4eb1[_0x21681b(0x6be)]){_0x2e1202[_0x21681b(0x6ec)][_0x21681b(0x2b8)]===_0x3440c1[_0x21681b(0x2b8)]&&(_0x2e1202['attributes'][_0x21681b(0x78a)]=!![]);}_0x57fb80['addEventListener'](_0x21681b(0x3e6),_0x590277=>{const _0x1fb38c=_0x21681b,_0x114782=_0x590277[_0x1fb38c(0x1c8)][_0x1fb38c(0x18b)],_0x405e08=_0x114782[_0x1fb38c(0x97c)]===-0x1?'':_0x114782[_0x114782[_0x1fb38c(0x97c)]][_0x1fb38c(0x2b8)];_0x188840[_0x1fb38c(0x699)](_0x4d16d4,{'value':_0x405e08});});break;}}static['setAttributes'](_0x404e16){const _0x42f110=_0x5bfea8;let {html:_0x48a66d,element:_0x29e98b,storage:storage=null,intent:_0x533158,linkService:_0x1d4b25}=_0x404e16;const {attributes:_0x565fdd}=_0x29e98b,_0x1cca84=_0x48a66d instanceof HTMLAnchorElement;_0x565fdd[_0x42f110(0x9fd)]===_0x42f110(0x2fe)&&(_0x565fdd[_0x42f110(0x499)]=_0x565fdd['name']+'-'+_0x533158);for(const [_0x17333d,_0x5983f8]of Object[_0x42f110(0x816)](_0x565fdd)){if(_0x5983f8===null||_0x5983f8===undefined)continue;switch(_0x17333d){case _0x42f110(0x2f7):_0x5983f8[_0x42f110(0x557)]&&_0x48a66d['setAttribute'](_0x17333d,_0x5983f8[_0x42f110(0x334)]('\x20'));break;case _0x42f110(0x74a):break;case'id':_0x48a66d['setAttribute']('data-element-id',_0x5983f8);break;case _0x42f110(0x498):Object[_0x42f110(0x9c0)](_0x48a66d['style'],_0x5983f8);break;case _0x42f110(0x8a9):_0x48a66d['textContent']=_0x5983f8;break;default:(!_0x1cca84||_0x17333d!==_0x42f110(0x95d)&&_0x17333d!==_0x42f110(0x4bd))&&_0x48a66d['setAttribute'](_0x17333d,_0x5983f8);}}_0x1cca84&&_0x1d4b25['addLinkAttributes'](_0x48a66d,_0x565fdd[_0x42f110(0x95d)],_0x565fdd[_0x42f110(0x4bd)]),storage&&_0x565fdd[_0x42f110(0x74a)]&&this[_0x42f110(0x9dd)](_0x48a66d,_0x565fdd['dataId'],_0x29e98b,storage);}static[_0x5bfea8(0x6c8)](_0x32d369){const _0x1f9f0f=_0x5bfea8,_0x52f67f=_0x32d369[_0x1f9f0f(0x5bf)],_0x24783d=_0x32d369['linkService'],_0x33fc3a=_0x32d369[_0x1f9f0f(0x217)],_0x1d344e=_0x32d369['intent']||_0x1f9f0f(0x619),_0x4d88f9=document[_0x1f9f0f(0x400)](_0x33fc3a[_0x1f9f0f(0x499)]);_0x33fc3a['attributes']&&this[_0x1f9f0f(0x650)]({'html':_0x4d88f9,'element':_0x33fc3a,'intent':_0x1d344e,'linkService':_0x24783d});const _0xdc4eeb=[[_0x33fc3a,-0x1,_0x4d88f9]],_0xa10550=_0x32d369[_0x1f9f0f(0x903)];_0xa10550[_0x1f9f0f(0x45e)](_0x4d88f9);if(_0x32d369[_0x1f9f0f(0x502)]){const _0x256854=_0x1f9f0f(0x29c)+_0x32d369[_0x1f9f0f(0x502)][_0x1f9f0f(0x5dd)][_0x1f9f0f(0x334)](',')+')';_0xa10550[_0x1f9f0f(0x498)]['transform']=_0x256854;}_0x1d344e!==_0x1f9f0f(0x68f)&&_0xa10550['setAttribute'](_0x1f9f0f(0x2f7),_0x1f9f0f(0x7d8));const _0x36e042=[];while(_0xdc4eeb[_0x1f9f0f(0x557)]>0x0){const [_0x405fe7,_0x3823da,_0x914daa]=_0xdc4eeb['at'](-0x1);if(_0x3823da+0x1===_0x405fe7[_0x1f9f0f(0x6be)][_0x1f9f0f(0x557)]){_0xdc4eeb['pop']();continue;}const _0x42d219=_0x405fe7['children'][++_0xdc4eeb['at'](-0x1)[0x1]];if(_0x42d219===null)continue;const {name:_0x5b9add}=_0x42d219;if(_0x5b9add===_0x1f9f0f(0x807)){const _0x333642=document[_0x1f9f0f(0x8fa)](_0x42d219[_0x1f9f0f(0x2b8)]);_0x36e042[_0x1f9f0f(0x7d6)](_0x333642),_0x914daa[_0x1f9f0f(0x45e)](_0x333642);continue;}let _0x3dcc17;_0x42d219?.['attributes']?.[_0x1f9f0f(0x100)]?_0x3dcc17=document[_0x1f9f0f(0x48b)](_0x42d219[_0x1f9f0f(0x6ec)][_0x1f9f0f(0x100)],_0x5b9add):_0x3dcc17=document[_0x1f9f0f(0x400)](_0x5b9add);_0x914daa[_0x1f9f0f(0x45e)](_0x3dcc17);_0x42d219['attributes']&&this[_0x1f9f0f(0x650)]({'html':_0x3dcc17,'element':_0x42d219,'storage':_0x52f67f,'intent':_0x1d344e,'linkService':_0x24783d});if(_0x42d219['children']&&_0x42d219[_0x1f9f0f(0x6be)]['length']>0x0)_0xdc4eeb[_0x1f9f0f(0x7d6)]([_0x42d219,-0x1,_0x3dcc17]);else{if(_0x42d219[_0x1f9f0f(0x2b8)]){const _0x317c94=document[_0x1f9f0f(0x8fa)](_0x42d219[_0x1f9f0f(0x2b8)]);_0x3df9b0[_0x1f9f0f(0x205)][_0x1f9f0f(0x88e)](_0x5b9add)&&_0x36e042[_0x1f9f0f(0x7d6)](_0x317c94),_0x3dcc17[_0x1f9f0f(0x45e)](_0x317c94);}}}for(const _0x558705 of _0xa10550[_0x1f9f0f(0x70f)](_0x1f9f0f(0x2f2))){_0x558705[_0x1f9f0f(0x636)](_0x1f9f0f(0x23f),!![]);}return{'textDivs':_0x36e042};}static[_0x5bfea8(0x1b4)](_0x2b56d8){const _0x148b75=_0x5bfea8,_0x4b5b21=_0x148b75(0x29c)+_0x2b56d8[_0x148b75(0x502)][_0x148b75(0x5dd)][_0x148b75(0x334)](',')+')';_0x2b56d8[_0x148b75(0x903)][_0x148b75(0x498)]['transform']=_0x4b5b21,_0x2b56d8[_0x148b75(0x903)]['hidden']=![];}}_0x45af19[_0x5bfea8(0x139)]=_0x1bd1f4;},(_0x26449c,_0x2b3797)=>{'use strict';const _0x2f1f4b=a0_0x160d;Object[_0x2f1f4b(0x430)](_0x2b3797,_0x2f1f4b(0x19a),{'value':!![]}),_0x2b3797[_0x2f1f4b(0x173)]=void 0x0,_0x2b3797[_0x2f1f4b(0x3d4)]=_0x399da9;const _0x21d874={'of_pages':_0x2f1f4b(0x81c),'page_of_pages':_0x2f1f4b(0x7c9),'document_properties_kb':_0x2f1f4b(0x5a7),'document_properties_mb':_0x2f1f4b(0x938),'document_properties_date_string':_0x2f1f4b(0x39a),'document_properties_page_size_unit_inches':'in','document_properties_page_size_unit_millimeters':'mm','document_properties_page_size_orientation_portrait':_0x2f1f4b(0x868),'document_properties_page_size_orientation_landscape':_0x2f1f4b(0x127),'document_properties_page_size_name_a3':'A3','document_properties_page_size_name_a4':'A4','document_properties_page_size_name_letter':_0x2f1f4b(0x73f),'document_properties_page_size_name_legal':_0x2f1f4b(0x54e),'document_properties_page_size_dimension_string':_0x2f1f4b(0x753),'document_properties_page_size_dimension_name_string':_0x2f1f4b(0x716),'document_properties_linearized_yes':_0x2f1f4b(0xc2),'document_properties_linearized_no':'No','additional_layers':'Additional\x20Layers','page_landmark':_0x2f1f4b(0x880),'thumb_page_title':_0x2f1f4b(0x880),'thumb_page_canvas':'Thumbnail\x20of\x20Page\x20{{page}}','find_reached_top':_0x2f1f4b(0x181),'find_reached_bottom':_0x2f1f4b(0xd3),'find_match_count[one]':'{{current}}\x20of\x20{{total}}\x20match','find_match_count[other]':_0x2f1f4b(0x892),'find_match_count_limit[one]':_0x2f1f4b(0x4f2),'find_match_count_limit[other]':'More\x20than\x20{{limit}}\x20matches','find_not_found':_0x2f1f4b(0x981),'page_scale_width':'Page\x20Width','page_scale_fit':'Page\x20Fit','page_scale_auto':_0x2f1f4b(0x4b6),'page_scale_actual':'Actual\x20Size','page_scale_percent':_0x2f1f4b(0x8e3),'loading_error':'An\x20error\x20occurred\x20while\x20loading\x20the\x20PDF.','invalid_file_error':_0x2f1f4b(0x395),'missing_file_error':_0x2f1f4b(0x8b3),'unexpected_response_error':_0x2f1f4b(0x44e),'rendering_error':'An\x20error\x20occurred\x20while\x20rendering\x20the\x20page.','annotation_date_string':'{{date}},\x20{{time}}','printing_not_supported':_0x2f1f4b(0x665),'printing_not_ready':_0x2f1f4b(0x145),'web_fonts_disabled':_0x2f1f4b(0x219),'free_text2_default_content':_0x2f1f4b(0x14e),'editor_free_text2_aria_label':_0x2f1f4b(0x50d),'editor_ink2_aria_label':_0x2f1f4b(0x159),'editor_ink_canvas_aria_label':'User-created\x20image'};{_0x21d874[_0x2f1f4b(0x7ea)]=_0x2f1f4b(0x7b8);}function _0x399da9(_0x2ce4bc,_0x4ec3b0){const _0x2723e3=_0x2f1f4b;switch(_0x2ce4bc){case _0x2723e3(0x56d):_0x2ce4bc=_0x2723e3(0x515)+(_0x4ec3b0['total']===0x1?_0x2723e3(0x383):_0x2723e3(0x4ba))+']';break;case _0x2723e3(0x17b):_0x2ce4bc=_0x2723e3(0x23a)+(_0x4ec3b0[_0x2723e3(0x371)]===0x1?_0x2723e3(0x383):_0x2723e3(0x4ba))+']';break;}return _0x21d874[_0x2ce4bc]||'';}function _0x37056d(_0x61cad6,_0x201fbc){const _0x1ea43c=_0x2f1f4b;if(!_0x201fbc)return _0x61cad6;return _0x61cad6[_0x1ea43c(0x8b5)](/\{\{\s*(\w+)\s*\}\}/g,(_0x102e66,_0x3d4810)=>{return _0x3d4810 in _0x201fbc?_0x201fbc[_0x3d4810]:'{{'+_0x3d4810+'}}';});}const _0x214708={async 'getLanguage'(){const _0x54af10=_0x2f1f4b;return _0x54af10(0x6f0);},async 'getDirection'(){const _0x1fb4b9=_0x2f1f4b;return _0x1fb4b9(0x4db);},async 'get'(_0x178bd8){const _0x3d104b=_0x2f1f4b;let _0x1a9dae=arguments[_0x3d104b(0x557)]>0x1&&arguments[0x1]!==undefined?arguments[0x1]:null,_0x1b3bf7=arguments['length']>0x2&&arguments[0x2]!==undefined?arguments[0x2]:_0x399da9(_0x178bd8,_0x1a9dae);return _0x37056d(_0x1b3bf7,_0x1a9dae);},async 'translate'(_0x7387d8){}};_0x2b3797[_0x2f1f4b(0x173)]=_0x214708;},(_0x3372ab,_0x5447ba,_0x55ca60)=>{'use strict';const _0x36cdb6=a0_0x160d;Object['defineProperty'](_0x5447ba,_0x36cdb6(0x19a),{'value':!![]}),_0x5447ba[_0x36cdb6(0x7e1)]=void 0x0;var _0x55e52b=_0x55ca60(0x1),_0xc11234=_0x55ca60(0x85),_0x1305fa=_0x55ca60(0x9d),_0x47a576=_0x55ca60(0x86);class _0x3dd333 extends _0xc11234['AnnotationEditor']{#baseHeight=0x0;#baseWidth=0x0;#boundCanvasContextMenu=this['canvasContextMenu']['bind'](this);#boundCanvasPointermove=this[_0x36cdb6(0x21d)][_0x36cdb6(0x5e8)](this);#boundCanvasPointerleave=this[_0x36cdb6(0x9b4)][_0x36cdb6(0x5e8)](this);#boundCanvasPointerup=this[_0x36cdb6(0x738)][_0x36cdb6(0x5e8)](this);#boundCanvasPointerdown=this[_0x36cdb6(0x9b7)][_0x36cdb6(0x5e8)](this);#currentPath2D=new Path2D();#disableEditing=![];#hasSomethingToDraw=![];#isCanvasInitialized=![];#observer=null;#realWidth=0x0;#realHeight=0x0;#requestFrameCallback=null;static [_0x36cdb6(0x1fb)]=null;static [_0x36cdb6(0x73d)]=0x1;static ['_defaultThickness']=0x1;static [_0x36cdb6(0x1f7)];static ['_type']=_0x36cdb6(0x4b8);constructor(_0x24f4c8){const _0x4b3608=_0x36cdb6;super({..._0x24f4c8,'name':'inkEditor'}),this[_0x4b3608(0x5fe)]=_0x24f4c8[_0x4b3608(0x5fe)]||null,this[_0x4b3608(0x776)]=_0x24f4c8[_0x4b3608(0x776)]||null,this['opacity']=_0x24f4c8['opacity']||null,this[_0x4b3608(0xe0)]=[],this[_0x4b3608(0x2cd)]=[],this[_0x4b3608(0x543)]=[],this[_0x4b3608(0x9e6)]=[],this[_0x4b3608(0x778)]=0x1,this['translationX']=this[_0x4b3608(0x696)]=0x0,this['x']=0x0,this['y']=0x0;}static[_0x36cdb6(0x86f)](_0x996421){const _0x24190c=_0x36cdb6;this['_l10nPromise']=new Map([_0x24190c(0x52e),_0x24190c(0x357)][_0x24190c(0x7ec)](_0x14fc9c=>[_0x14fc9c,_0x996421[_0x24190c(0x8c4)](_0x14fc9c)]));}static[_0x36cdb6(0x49d)](_0x596bcf,_0x183dfc){const _0x15d341=_0x36cdb6;switch(_0x596bcf){case _0x55e52b[_0x15d341(0x6b8)]['INK_THICKNESS']:_0x3dd333['_defaultThickness']=_0x183dfc;break;case _0x55e52b[_0x15d341(0x6b8)][_0x15d341(0x7fd)]:_0x3dd333['_defaultColor']=_0x183dfc;break;case _0x55e52b['AnnotationEditorParamsType'][_0x15d341(0x4a1)]:_0x3dd333[_0x15d341(0x73d)]=_0x183dfc/0x64;break;}}['updateParams'](_0x2ab520,_0x3a076e){const _0x45a6b4=_0x36cdb6;switch(_0x2ab520){case _0x55e52b[_0x45a6b4(0x6b8)][_0x45a6b4(0x111)]:this.#updateThickness(_0x3a076e);break;case _0x55e52b[_0x45a6b4(0x6b8)][_0x45a6b4(0x7fd)]:this.#updateColor(_0x3a076e);break;case _0x55e52b[_0x45a6b4(0x6b8)][_0x45a6b4(0x4a1)]:this.#updateOpacity(_0x3a076e);break;}}static get[_0x36cdb6(0x5bb)](){const _0x150457=_0x36cdb6;return[[_0x55e52b[_0x150457(0x6b8)][_0x150457(0x111)],_0x3dd333[_0x150457(0x936)]],[_0x55e52b[_0x150457(0x6b8)][_0x150457(0x7fd)],_0x3dd333[_0x150457(0x1fb)]||_0xc11234['AnnotationEditor']['_defaultLineColor']],[_0x55e52b[_0x150457(0x6b8)]['INK_OPACITY'],Math[_0x150457(0x7df)](_0x3dd333[_0x150457(0x73d)]*0x64)]];}get[_0x36cdb6(0x2da)](){const _0x8486b5=_0x36cdb6;return[[_0x55e52b[_0x8486b5(0x6b8)][_0x8486b5(0x111)],this[_0x8486b5(0x776)]||_0x3dd333[_0x8486b5(0x936)]],[_0x55e52b[_0x8486b5(0x6b8)][_0x8486b5(0x7fd)],this['color']||_0x3dd333['_defaultColor']||_0xc11234[_0x8486b5(0x8f0)]['_defaultLineColor']],[_0x55e52b[_0x8486b5(0x6b8)][_0x8486b5(0x4a1)],Math[_0x8486b5(0x7df)](0x64*(this[_0x8486b5(0x53e)]??_0x3dd333[_0x8486b5(0x73d)]))]];}#updateThickness(_0x28e8e1){const _0xc24937=_0x36cdb6,_0x35253e=this['thickness'];this[_0xc24937(0x72e)]({'cmd':()=>{this['thickness']=_0x28e8e1,this.#fitToContent();},'undo':()=>{const _0x36ec2e=_0xc24937;this[_0x36ec2e(0x776)]=_0x35253e,this.#fitToContent();},'mustExec':!![],'type':_0x55e52b[_0xc24937(0x6b8)][_0xc24937(0x111)],'overwriteIfSameType':!![],'keepUndo':!![]});}#updateColor(_0xc451e3){const _0x1dcb02=_0x36cdb6,_0x46d644=this[_0x1dcb02(0x5fe)];this[_0x1dcb02(0x72e)]({'cmd':()=>{const _0x56aec7=_0x1dcb02;this[_0x56aec7(0x5fe)]=_0xc451e3,this.#redraw();},'undo':()=>{const _0x112f6a=_0x1dcb02;this[_0x112f6a(0x5fe)]=_0x46d644,this.#redraw();},'mustExec':!![],'type':_0x55e52b[_0x1dcb02(0x6b8)][_0x1dcb02(0x7fd)],'overwriteIfSameType':!![],'keepUndo':!![]});}#updateOpacity(_0x5a74f5){const _0x5bd0b8=_0x36cdb6;_0x5a74f5/=0x64;const _0x4e8429=this['opacity'];this[_0x5bd0b8(0x72e)]({'cmd':()=>{this['opacity']=_0x5a74f5,this.#redraw();},'undo':()=>{this['opacity']=_0x4e8429,this.#redraw();},'mustExec':!![],'type':_0x55e52b[_0x5bd0b8(0x6b8)][_0x5bd0b8(0x4a1)],'overwriteIfSameType':!![],'keepUndo':!![]});}[_0x36cdb6(0x9d3)](){const _0x2e0378=_0x36cdb6;super[_0x2e0378(0x9d3)]();if(this[_0x2e0378(0x903)]===null)return;!this[_0x2e0378(0x75a)]&&(this.#createCanvas(),this.#createObserver()),!this[_0x2e0378(0x9a7)]&&(this[_0x2e0378(0x4c3)][_0x2e0378(0x156)](this),this.#setCanvasDims()),this.#fitToContent();}[_0x36cdb6(0x10a)](){const _0x54ba8f=_0x36cdb6;if(this['canvas']===null)return;!this[_0x54ba8f(0x480)]()&&this['commit'](),this[_0x54ba8f(0x75a)][_0x54ba8f(0x98b)]=this[_0x54ba8f(0x75a)][_0x54ba8f(0x999)]=0x0,this['canvas'][_0x54ba8f(0x10a)](),this[_0x54ba8f(0x75a)]=null,this.#observer[_0x54ba8f(0x817)](),this.#observer=null,super[_0x54ba8f(0x10a)]();}[_0x36cdb6(0x3fd)](_0x4d2e93){const _0x574f66=_0x36cdb6;if(!this[_0x574f66(0x4c3)]&&_0x4d2e93)this[_0x574f66(0x5e4)][_0x574f66(0x632)](this);else this[_0x574f66(0x4c3)]&&_0x4d2e93===null&&this['_uiManager']['addShouldRescale'](this);super[_0x574f66(0x3fd)](_0x4d2e93);}['onScaleChanging'](){const _0x2ba3bd=_0x36cdb6,[_0x3cef9d,_0x28207d]=this[_0x2ba3bd(0x956)],_0x4b2569=this[_0x2ba3bd(0x98b)]*_0x3cef9d,_0xb350a0=this[_0x2ba3bd(0x999)]*_0x28207d;this[_0x2ba3bd(0x833)](_0x4b2569,_0xb350a0);}[_0x36cdb6(0x8ce)](){const _0x5e52b4=_0x36cdb6;if(this.#disableEditing||this['canvas']===null)return;super['enableEditMode'](),this[_0x5e52b4(0x903)][_0x5e52b4(0x7dc)]=![],this['canvas']['addEventListener'](_0x5e52b4(0x546),this.#boundCanvasPointerdown);}[_0x36cdb6(0x3ac)](){const _0x47ea6c=_0x36cdb6;if(!this[_0x47ea6c(0x761)]()||this[_0x47ea6c(0x75a)]===null)return;super[_0x47ea6c(0x3ac)](),this[_0x47ea6c(0x903)][_0x47ea6c(0x7dc)]=!this['isEmpty'](),this[_0x47ea6c(0x903)][_0x47ea6c(0x2bc)]['remove'](_0x47ea6c(0x756)),this[_0x47ea6c(0x75a)]['removeEventListener'](_0x47ea6c(0x546),this.#boundCanvasPointerdown);}['onceAdded'](){const _0x1e7224=_0x36cdb6;this[_0x1e7224(0x903)][_0x1e7224(0x7dc)]=!this[_0x1e7224(0x480)]();}[_0x36cdb6(0x480)](){const _0x17e5a6=_0x36cdb6;return this['paths']['length']===0x0||this[_0x17e5a6(0xe0)][_0x17e5a6(0x557)]===0x1&&this['paths'][0x0]['length']===0x0;}#getInitialBBox(){const {parentRotation:_0x494884,parentDimensions:[_0x57bd98,_0x3125ce]}=this;switch(_0x494884){case 0x5a:return[0x0,_0x3125ce,_0x3125ce,_0x57bd98];case 0xb4:return[_0x57bd98,_0x3125ce,_0x57bd98,_0x3125ce];case 0x10e:return[_0x57bd98,0x0,_0x3125ce,_0x57bd98];default:return[0x0,0x0,_0x57bd98,_0x3125ce];}}#setStroke(){const _0x5d0ea5=_0x36cdb6,{ctx:_0x230e0d,color:_0x5b5282,opacity:_0x187e1d,thickness:_0x496405,parentScale:_0x445fff,scaleFactor:_0x13a87c}=this;_0x230e0d[_0x5d0ea5(0x2ad)]=_0x496405*_0x445fff/_0x13a87c,_0x230e0d['lineCap']=_0x5d0ea5(0x7df),_0x230e0d[_0x5d0ea5(0x1f4)]=_0x5d0ea5(0x7df),_0x230e0d['miterLimit']=0xa,_0x230e0d['strokeStyle']=''+_0x5b5282+(0x0,_0x47a576[_0x5d0ea5(0x171)])(_0x187e1d);}#startDrawing(_0x493528,_0x4727a7){const _0x34927c=_0x36cdb6;this[_0x34927c(0x75a)]['addEventListener'](_0x34927c(0x56f),this.#boundCanvasContextMenu),this['canvas'][_0x34927c(0x5cc)]('pointerleave',this.#boundCanvasPointerleave),this[_0x34927c(0x75a)][_0x34927c(0x5cc)](_0x34927c(0x35d),this.#boundCanvasPointermove),this[_0x34927c(0x75a)][_0x34927c(0x5cc)](_0x34927c(0x3f7),this.#boundCanvasPointerup),this['canvas']['removeEventListener'](_0x34927c(0x546),this.#boundCanvasPointerdown),this['isEditing']=!![],!this.#isCanvasInitialized&&(this.#isCanvasInitialized=!![],this.#setCanvasDims(),this[_0x34927c(0x776)]||=_0x3dd333['_defaultThickness'],this[_0x34927c(0x5fe)]||=_0x3dd333[_0x34927c(0x1fb)]||_0xc11234[_0x34927c(0x8f0)][_0x34927c(0x350)],this[_0x34927c(0x53e)]??=_0x3dd333[_0x34927c(0x73d)]),this[_0x34927c(0x9e6)][_0x34927c(0x7d6)]([_0x493528,_0x4727a7]),this.#hasSomethingToDraw=![],this.#setStroke(),this.#requestFrameCallback=()=>{const _0x2f6124=_0x34927c;this.#drawPoints(),this.#requestFrameCallback&&window[_0x2f6124(0x75e)](this.#requestFrameCallback);},window[_0x34927c(0x75e)](this.#requestFrameCallback);}#draw(_0x2150f8,_0x5e14b0){const _0x2ae1c5=_0x36cdb6,[_0x2bdcf7,_0x42e954]=this[_0x2ae1c5(0x9e6)]['at'](-0x1);if(this[_0x2ae1c5(0x9e6)][_0x2ae1c5(0x557)]>0x1&&_0x2150f8===_0x2bdcf7&&_0x5e14b0===_0x42e954)return;const _0x88804a=this[_0x2ae1c5(0x9e6)];let _0x53052e=this.#currentPath2D;_0x88804a[_0x2ae1c5(0x7d6)]([_0x2150f8,_0x5e14b0]),this.#hasSomethingToDraw=!![];if(_0x88804a['length']<=0x2){_0x53052e['moveTo'](..._0x88804a[0x0]),_0x53052e[_0x2ae1c5(0x39f)](_0x2150f8,_0x5e14b0);return;}_0x88804a['length']===0x3&&(this.#currentPath2D=_0x53052e=new Path2D(),_0x53052e['moveTo'](..._0x88804a[0x0])),this.#makeBezierCurve(_0x53052e,..._0x88804a['at'](-0x3),..._0x88804a['at'](-0x2),_0x2150f8,_0x5e14b0);}#endPath(){const _0x529893=_0x36cdb6;if(this[_0x529893(0x9e6)][_0x529893(0x557)]===0x0)return;const _0x28658f=this[_0x529893(0x9e6)]['at'](-0x1);this.#currentPath2D[_0x529893(0x39f)](..._0x28658f);}#stopDrawing(_0x100b2e,_0x9c0164){const _0x27aceb=_0x36cdb6;this.#requestFrameCallback=null,_0x100b2e=Math[_0x27aceb(0x81b)](Math['max'](_0x100b2e,0x0),this['canvas']['width']),_0x9c0164=Math['min'](Math[_0x27aceb(0x78d)](_0x9c0164,0x0),this[_0x27aceb(0x75a)][_0x27aceb(0x999)]),this.#draw(_0x100b2e,_0x9c0164),this.#endPath();let _0x480d24;if(this['currentPath'][_0x27aceb(0x557)]!==0x1)_0x480d24=this.#generateBezierPoints();else{const _0xe23324=[_0x100b2e,_0x9c0164];_0x480d24=[[_0xe23324,_0xe23324[_0x27aceb(0x80c)](),_0xe23324[_0x27aceb(0x80c)](),_0xe23324]];}const _0x3f294b=this.#currentPath2D,_0x54fb5d=this[_0x27aceb(0x9e6)];this['currentPath']=[],this.#currentPath2D=new Path2D();const _0x39d2b4=()=>{const _0x517f93=_0x27aceb;this['allRawPaths'][_0x517f93(0x7d6)](_0x54fb5d),this[_0x517f93(0xe0)][_0x517f93(0x7d6)](_0x480d24),this[_0x517f93(0x2cd)]['push'](_0x3f294b),this[_0x517f93(0x9d3)]();},_0xbeef91=()=>{const _0xf7fb6e=_0x27aceb;this[_0xf7fb6e(0x543)][_0xf7fb6e(0x783)](),this[_0xf7fb6e(0xe0)]['pop'](),this[_0xf7fb6e(0x2cd)][_0xf7fb6e(0x783)](),this['paths'][_0xf7fb6e(0x557)]===0x0?this[_0xf7fb6e(0x10a)]():(!this['canvas']&&(this.#createCanvas(),this.#createObserver()),this.#fitToContent());};this[_0x27aceb(0x72e)]({'cmd':_0x39d2b4,'undo':_0xbeef91,'mustExec':!![]});}#drawPoints(){const _0x416311=_0x36cdb6;if(!this.#hasSomethingToDraw)return;this.#hasSomethingToDraw=![];const _0x31cdf6=Math[_0x416311(0x213)](this[_0x416311(0x776)]*this[_0x416311(0x54a)]),_0x2a0c55=this[_0x416311(0x9e6)][_0x416311(0x80c)](-0x3),_0x3c4bda=_0x2a0c55[_0x416311(0x7ec)](_0x5019b1=>_0x5019b1[0x0]),_0xb6ecea=_0x2a0c55[_0x416311(0x7ec)](_0x557571=>_0x557571[0x1]),_0x55b15b=Math[_0x416311(0x81b)](..._0x3c4bda)-_0x31cdf6,_0x33bfc2=Math['max'](..._0x3c4bda)+_0x31cdf6,_0x526da0=Math[_0x416311(0x81b)](..._0xb6ecea)-_0x31cdf6,_0x3dfd40=Math[_0x416311(0x78d)](..._0xb6ecea)+_0x31cdf6,{ctx:_0x29f92a}=this;_0x29f92a['save'](),_0x29f92a['clearRect'](0x0,0x0,this[_0x416311(0x75a)]['width'],this[_0x416311(0x75a)][_0x416311(0x999)]);for(const _0x5ac44d of this[_0x416311(0x2cd)]){_0x29f92a[_0x416311(0x849)](_0x5ac44d);}_0x29f92a[_0x416311(0x849)](this.#currentPath2D),_0x29f92a[_0x416311(0x9ab)]();}#makeBezierCurve(_0x488837,_0x1c91fc,_0x5724db,_0x4fabb0,_0x3a51ef,_0x3e87d,_0x1eb49b){const _0x3a1b98=_0x36cdb6,_0x49b73b=(_0x1c91fc+_0x4fabb0)/0x2,_0x476b46=(_0x5724db+_0x3a51ef)/0x2,_0x3e8f9e=(_0x4fabb0+_0x3e87d)/0x2,_0x385882=(_0x3a51ef+_0x1eb49b)/0x2;_0x488837[_0x3a1b98(0x3c6)](_0x49b73b+0x2*(_0x4fabb0-_0x49b73b)/0x3,_0x476b46+0x2*(_0x3a51ef-_0x476b46)/0x3,_0x3e8f9e+0x2*(_0x4fabb0-_0x3e8f9e)/0x3,_0x385882+0x2*(_0x3a51ef-_0x385882)/0x3,_0x3e8f9e,_0x385882);}#generateBezierPoints(){const _0x2baabb=_0x36cdb6,_0x32a0e3=this['currentPath'];if(_0x32a0e3[_0x2baabb(0x557)]<=0x2)return[[_0x32a0e3[0x0],_0x32a0e3[0x0],_0x32a0e3['at'](-0x1),_0x32a0e3['at'](-0x1)]];const _0x24a2c8=[];let _0x1718a9,[_0x4831a9,_0x2c431c]=_0x32a0e3[0x0];for(_0x1718a9=0x1;_0x1718a9<_0x32a0e3['length']-0x2;_0x1718a9++){const [_0x4e2916,_0x159b81]=_0x32a0e3[_0x1718a9],[_0x5ad1ce,_0x44f31b]=_0x32a0e3[_0x1718a9+0x1],_0x1335b6=(_0x4e2916+_0x5ad1ce)/0x2,_0x4f7458=(_0x159b81+_0x44f31b)/0x2,_0x45dd8b=[_0x4831a9+0x2*(_0x4e2916-_0x4831a9)/0x3,_0x2c431c+0x2*(_0x159b81-_0x2c431c)/0x3],_0x34204a=[_0x1335b6+0x2*(_0x4e2916-_0x1335b6)/0x3,_0x4f7458+0x2*(_0x159b81-_0x4f7458)/0x3];_0x24a2c8['push']([[_0x4831a9,_0x2c431c],_0x45dd8b,_0x34204a,[_0x1335b6,_0x4f7458]]),[_0x4831a9,_0x2c431c]=[_0x1335b6,_0x4f7458];}const [_0x3d19f5,_0x4f4934]=_0x32a0e3[_0x1718a9],[_0x595a6e,_0x18fe6c]=_0x32a0e3[_0x1718a9+0x1],_0x279bae=[_0x4831a9+0x2*(_0x3d19f5-_0x4831a9)/0x3,_0x2c431c+0x2*(_0x4f4934-_0x2c431c)/0x3],_0x125d24=[_0x595a6e+0x2*(_0x3d19f5-_0x595a6e)/0x3,_0x18fe6c+0x2*(_0x4f4934-_0x18fe6c)/0x3];return _0x24a2c8[_0x2baabb(0x7d6)]([[_0x4831a9,_0x2c431c],_0x279bae,_0x125d24,[_0x595a6e,_0x18fe6c]]),_0x24a2c8;}#redraw(){const _0x1a7e21=_0x36cdb6;if(this[_0x1a7e21(0x480)]()){this.#updateTransform();return;}this.#setStroke();const {canvas:_0x3f09d0,ctx:_0x2464ae}=this;_0x2464ae[_0x1a7e21(0xf1)](0x1,0x0,0x0,0x1,0x0,0x0),_0x2464ae[_0x1a7e21(0x726)](0x0,0x0,_0x3f09d0['width'],_0x3f09d0['height']),this.#updateTransform();for(const _0x384a43 of this['bezierPath2D']){_0x2464ae['stroke'](_0x384a43);}}[_0x36cdb6(0x3b3)](){const _0x4621d7=_0x36cdb6;if(this.#disableEditing)return;super[_0x4621d7(0x3b3)](),this[_0x4621d7(0x844)]=![],this['disableEditMode'](),this[_0x4621d7(0x532)](),this.#disableEditing=!![],this[_0x4621d7(0x903)]['classList']['add'](_0x4621d7(0x93b)),this.#fitToContent(!![]),this[_0x4621d7(0x4c3)][_0x4621d7(0x6f8)](!![]),this[_0x4621d7(0x4c3)][_0x4621d7(0x27b)](this),this[_0x4621d7(0x903)][_0x4621d7(0x47d)]({'preventScroll':!![]});}['focusin'](_0x58c999){const _0x1fb83b=_0x36cdb6;super[_0x1fb83b(0x887)](_0x58c999),this[_0x1fb83b(0x8ce)]();}[_0x36cdb6(0x9b7)](_0x450e5f){const _0x3942d7=_0x36cdb6;if(_0x450e5f[_0x3942d7(0x831)]!==0x0||!this[_0x3942d7(0x761)]()||this.#disableEditing)return;this[_0x3942d7(0x532)](),_0x450e5f[_0x3942d7(0x9af)](),_0x450e5f[_0x3942d7(0x9fd)]!==_0x3942d7(0x6d5)&&this[_0x3942d7(0x903)][_0x3942d7(0x47d)](),this.#startDrawing(_0x450e5f['offsetX'],_0x450e5f['offsetY']);}[_0x36cdb6(0x8e5)](_0x29bc37){const _0x5bdfa9=_0x36cdb6;_0x29bc37[_0x5bdfa9(0x9af)]();}[_0x36cdb6(0x21d)](_0x2f1557){const _0xd134d0=_0x36cdb6;_0x2f1557['preventDefault'](),this.#draw(_0x2f1557[_0xd134d0(0xdf)],_0x2f1557['offsetY']);}['canvasPointerup'](_0x1f101f){const _0x9c294b=_0x36cdb6;_0x1f101f[_0x9c294b(0x9af)](),this.#endDrawing(_0x1f101f);}[_0x36cdb6(0x9b4)](_0xcded05){this.#endDrawing(_0xcded05);}#endDrawing(_0x1c3bd1){const _0x4ddae6=_0x36cdb6;this[_0x4ddae6(0x75a)][_0x4ddae6(0x1c0)](_0x4ddae6(0x47e),this.#boundCanvasPointerleave),this['canvas'][_0x4ddae6(0x1c0)](_0x4ddae6(0x35d),this.#boundCanvasPointermove),this['canvas'][_0x4ddae6(0x1c0)](_0x4ddae6(0x3f7),this.#boundCanvasPointerup),this[_0x4ddae6(0x75a)]['addEventListener'](_0x4ddae6(0x546),this.#boundCanvasPointerdown),setTimeout(()=>{const _0x27eeed=_0x4ddae6;this[_0x27eeed(0x75a)][_0x27eeed(0x1c0)]('contextmenu',this.#boundCanvasContextMenu);},0xa),this.#stopDrawing(_0x1c3bd1[_0x4ddae6(0xdf)],_0x1c3bd1[_0x4ddae6(0x431)]),this[_0x4ddae6(0x7e5)](),this[_0x4ddae6(0x34b)]();}#createCanvas(){const _0x27c959=_0x36cdb6;this[_0x27c959(0x75a)]=document['createElement'](_0x27c959(0x75a)),this[_0x27c959(0x75a)][_0x27c959(0x98b)]=this[_0x27c959(0x75a)][_0x27c959(0x999)]=0x0,this[_0x27c959(0x75a)][_0x27c959(0x52b)]=_0x27c959(0x1a8),_0x3dd333[_0x27c959(0x1f7)][_0x27c959(0x8c4)](_0x27c959(0x52e))[_0x27c959(0x22d)](_0x3c4470=>this[_0x27c959(0x75a)]?.[_0x27c959(0x636)](_0x27c959(0x86b),_0x3c4470)),this[_0x27c959(0x903)]['append'](this['canvas']),this['ctx']=this[_0x27c959(0x75a)][_0x27c959(0x802)]('2d');}#createObserver(){const _0x5e7ec2=_0x36cdb6;this.#observer=new ResizeObserver(_0x1edd71=>{const _0x97a8d0=a0_0x160d,_0x3783d3=_0x1edd71[0x0][_0x97a8d0(0x418)];_0x3783d3[_0x97a8d0(0x98b)]&&_0x3783d3[_0x97a8d0(0x999)]&&this[_0x97a8d0(0x833)](_0x3783d3[_0x97a8d0(0x98b)],_0x3783d3[_0x97a8d0(0x999)]);}),this.#observer[_0x5e7ec2(0x9ac)](this[_0x5e7ec2(0x903)]);}['render'](){const _0x138a93=_0x36cdb6;if(this[_0x138a93(0x903)])return this['div'];let _0x3d704f,_0x2cb939;this[_0x138a93(0x98b)]&&(_0x3d704f=this['x'],_0x2cb939=this['y']);super[_0x138a93(0x6c8)](),_0x3dd333['_l10nPromise']['get'](_0x138a93(0x357))[_0x138a93(0x22d)](_0x5115f3=>this[_0x138a93(0x903)]?.[_0x138a93(0x636)](_0x138a93(0x86b),_0x5115f3));const [_0x3771aa,_0x19bd56,_0x2441f5,_0x1fb200]=this.#getInitialBBox();this[_0x138a93(0x912)](_0x3771aa,_0x19bd56,0x0,0x0),this['setDims'](_0x2441f5,_0x1fb200),this.#createCanvas();if(this[_0x138a93(0x98b)]){const [_0xcf17c8,_0x5b3e4f]=this['parentDimensions'];this[_0x138a93(0x231)](this[_0x138a93(0x98b)]*_0xcf17c8,this[_0x138a93(0x999)]*_0x5b3e4f),this[_0x138a93(0x912)](_0x3d704f*_0xcf17c8,_0x2cb939*_0x5b3e4f,this[_0x138a93(0x98b)]*_0xcf17c8,this[_0x138a93(0x999)]*_0x5b3e4f),this.#isCanvasInitialized=!![],this.#setCanvasDims(),this['setDims'](this[_0x138a93(0x98b)]*_0xcf17c8,this['height']*_0x5b3e4f),this.#redraw(),this[_0x138a93(0x903)][_0x138a93(0x2bc)][_0x138a93(0x156)](_0x138a93(0x93b));}else this[_0x138a93(0x903)][_0x138a93(0x2bc)][_0x138a93(0x156)]('editing'),this[_0x138a93(0x8ce)]();return this.#createObserver(),this[_0x138a93(0x903)];}#setCanvasDims(){const _0x4dc605=_0x36cdb6;if(!this.#isCanvasInitialized)return;const [_0x5ddc9c,_0x103ef9]=this[_0x4dc605(0x956)];this[_0x4dc605(0x75a)][_0x4dc605(0x98b)]=Math['ceil'](this[_0x4dc605(0x98b)]*_0x5ddc9c),this[_0x4dc605(0x75a)][_0x4dc605(0x999)]=Math[_0x4dc605(0x213)](this[_0x4dc605(0x999)]*_0x103ef9),this.#updateTransform();}[_0x36cdb6(0x833)](_0x2aa091,_0x152ea6){const _0x58db0e=_0x36cdb6,_0x4b443d=Math[_0x58db0e(0x7df)](_0x2aa091),_0x5e4dc1=Math[_0x58db0e(0x7df)](_0x152ea6);if(this.#realWidth===_0x4b443d&&this.#realHeight===_0x5e4dc1)return;this.#realWidth=_0x4b443d,this.#realHeight=_0x5e4dc1,this['canvas'][_0x58db0e(0x498)][_0x58db0e(0x269)]='hidden';const [_0x3da9d2,_0x16b194]=this[_0x58db0e(0x956)];this['width']=_0x2aa091/_0x3da9d2,this['height']=_0x152ea6/_0x16b194,this.#disableEditing&&this.#setScaleFactor(_0x2aa091,_0x152ea6),this.#setCanvasDims(),this.#redraw(),this['canvas'][_0x58db0e(0x498)][_0x58db0e(0x269)]=_0x58db0e(0x6cd),this[_0x58db0e(0x8d4)]();}#setScaleFactor(_0x1e1dbf,_0x382201){const _0x2ae76e=_0x36cdb6,_0x44465b=this.#getPadding(),_0x54c006=(_0x1e1dbf-_0x44465b)/this.#baseWidth,_0x57a07c=(_0x382201-_0x44465b)/this.#baseHeight;this[_0x2ae76e(0x778)]=Math['min'](_0x54c006,_0x57a07c);}#updateTransform(){const _0x27ff37=_0x36cdb6,_0x425843=this.#getPadding()/0x2;this[_0x27ff37(0x427)][_0x27ff37(0xf1)](this[_0x27ff37(0x778)],0x0,0x0,this[_0x27ff37(0x778)],this[_0x27ff37(0x1cb)]*this[_0x27ff37(0x778)]+_0x425843,this[_0x27ff37(0x696)]*this['scaleFactor']+_0x425843);}static#buildPath2D(_0xc5d392){const _0x3c793f=_0x36cdb6,_0x31a71e=new Path2D();for(let _0x301d0f=0x0,_0x5345e0=_0xc5d392[_0x3c793f(0x557)];_0x301d0f<_0x5345e0;_0x301d0f++){const [_0x1080f6,_0x4c338c,_0x33d4ad,_0xa3d55]=_0xc5d392[_0x301d0f];_0x301d0f===0x0&&_0x31a71e[_0x3c793f(0x208)](..._0x1080f6),_0x31a71e[_0x3c793f(0x3c6)](_0x4c338c[0x0],_0x4c338c[0x1],_0x33d4ad[0x0],_0x33d4ad[0x1],_0xa3d55[0x0],_0xa3d55[0x1]);}return _0x31a71e;}static#toPDFCoordinates(_0x43c1ea,_0x32f253,_0x4ed91a){const _0x54a38d=_0x36cdb6,[_0x58501d,_0x7c309f,_0x4a5310,_0x3a5aad]=_0x32f253;switch(_0x4ed91a){case 0x0:for(let _0x257af6=0x0,_0x362aa5=_0x43c1ea[_0x54a38d(0x557)];_0x257af6<_0x362aa5;_0x257af6+=0x2){_0x43c1ea[_0x257af6]+=_0x58501d,_0x43c1ea[_0x257af6+0x1]=_0x3a5aad-_0x43c1ea[_0x257af6+0x1];}break;case 0x5a:for(let _0xf18688=0x0,_0x228c26=_0x43c1ea['length'];_0xf18688<_0x228c26;_0xf18688+=0x2){const _0x55709e=_0x43c1ea[_0xf18688];_0x43c1ea[_0xf18688]=_0x43c1ea[_0xf18688+0x1]+_0x58501d,_0x43c1ea[_0xf18688+0x1]=_0x55709e+_0x7c309f;}break;case 0xb4:for(let _0x13bc8f=0x0,_0x56904c=_0x43c1ea[_0x54a38d(0x557)];_0x13bc8f<_0x56904c;_0x13bc8f+=0x2){_0x43c1ea[_0x13bc8f]=_0x4a5310-_0x43c1ea[_0x13bc8f],_0x43c1ea[_0x13bc8f+0x1]+=_0x7c309f;}break;case 0x10e:for(let _0x2c5177=0x0,_0x1cba5c=_0x43c1ea[_0x54a38d(0x557)];_0x2c5177<_0x1cba5c;_0x2c5177+=0x2){const _0x15a260=_0x43c1ea[_0x2c5177];_0x43c1ea[_0x2c5177]=_0x4a5310-_0x43c1ea[_0x2c5177+0x1],_0x43c1ea[_0x2c5177+0x1]=_0x3a5aad-_0x15a260;}break;default:throw new Error(_0x54a38d(0x21f));}return _0x43c1ea;}static#fromPDFCoordinates(_0x42e723,_0x2303b7,_0x35be2f){const _0x2ed71c=_0x36cdb6,[_0xae6b4e,_0x269c61,_0x25e1b1,_0x1dea66]=_0x2303b7;switch(_0x35be2f){case 0x0:for(let _0x2647bf=0x0,_0x291d77=_0x42e723[_0x2ed71c(0x557)];_0x2647bf<_0x291d77;_0x2647bf+=0x2){_0x42e723[_0x2647bf]-=_0xae6b4e,_0x42e723[_0x2647bf+0x1]=_0x1dea66-_0x42e723[_0x2647bf+0x1];}break;case 0x5a:for(let _0x4a80d4=0x0,_0x25ea7a=_0x42e723[_0x2ed71c(0x557)];_0x4a80d4<_0x25ea7a;_0x4a80d4+=0x2){const _0x37031d=_0x42e723[_0x4a80d4];_0x42e723[_0x4a80d4]=_0x42e723[_0x4a80d4+0x1]-_0x269c61,_0x42e723[_0x4a80d4+0x1]=_0x37031d-_0xae6b4e;}break;case 0xb4:for(let _0x3a1f13=0x0,_0x256b0e=_0x42e723[_0x2ed71c(0x557)];_0x3a1f13<_0x256b0e;_0x3a1f13+=0x2){_0x42e723[_0x3a1f13]=_0x25e1b1-_0x42e723[_0x3a1f13],_0x42e723[_0x3a1f13+0x1]-=_0x269c61;}break;case 0x10e:for(let _0x59305b=0x0,_0x1d8020=_0x42e723['length'];_0x59305b<_0x1d8020;_0x59305b+=0x2){const _0x2f88f1=_0x42e723[_0x59305b];_0x42e723[_0x59305b]=_0x1dea66-_0x42e723[_0x59305b+0x1],_0x42e723[_0x59305b+0x1]=_0x25e1b1-_0x2f88f1;}break;default:throw new Error('Invalid\x20rotation');}return _0x42e723;}#serializePaths(_0x173213,_0x2d1312,_0x49b748,_0x135c0d){const _0xf0ca5d=_0x36cdb6,_0x12fd0a=[],_0x181d9a=this[_0xf0ca5d(0x776)]/0x2,_0x5306c5=_0x173213*_0x2d1312+_0x181d9a,_0xa6d403=_0x173213*_0x49b748+_0x181d9a;for(const _0x3918a4 of this[_0xf0ca5d(0xe0)]){const _0x287cbc=[],_0x211e8f=[];for(let _0x35baf0=0x0,_0xebe440=_0x3918a4[_0xf0ca5d(0x557)];_0x35baf0<_0xebe440;_0x35baf0++){const [_0x2738e9,_0x456f9a,_0xb204d8,_0x40a47f]=_0x3918a4[_0x35baf0],_0x43e9f8=_0x173213*_0x2738e9[0x0]+_0x5306c5,_0x1931b6=_0x173213*_0x2738e9[0x1]+_0xa6d403,_0x497058=_0x173213*_0x456f9a[0x0]+_0x5306c5,_0x3dd1a8=_0x173213*_0x456f9a[0x1]+_0xa6d403,_0x4d44e5=_0x173213*_0xb204d8[0x0]+_0x5306c5,_0x72f6e7=_0x173213*_0xb204d8[0x1]+_0xa6d403,_0x222dee=_0x173213*_0x40a47f[0x0]+_0x5306c5,_0x2876a5=_0x173213*_0x40a47f[0x1]+_0xa6d403;_0x35baf0===0x0&&(_0x287cbc[_0xf0ca5d(0x7d6)](_0x43e9f8,_0x1931b6),_0x211e8f['push'](_0x43e9f8,_0x1931b6)),_0x287cbc['push'](_0x497058,_0x3dd1a8,_0x4d44e5,_0x72f6e7,_0x222dee,_0x2876a5),_0x211e8f[_0xf0ca5d(0x7d6)](_0x497058,_0x3dd1a8),_0x35baf0===_0xebe440-0x1&&_0x211e8f[_0xf0ca5d(0x7d6)](_0x222dee,_0x2876a5);}_0x12fd0a[_0xf0ca5d(0x7d6)]({'bezier':_0x3dd333.#toPDFCoordinates(_0x287cbc,_0x135c0d,this[_0xf0ca5d(0x7af)]),'points':_0x3dd333.#toPDFCoordinates(_0x211e8f,_0x135c0d,this[_0xf0ca5d(0x7af)])});}return _0x12fd0a;}#getBbox(){const _0x539d2b=_0x36cdb6;let _0x3d25b7=Infinity,_0x2fbe4e=-Infinity,_0x30e0ba=Infinity,_0x3342c5=-Infinity;for(const _0x1c9349 of this['paths']){for(const [_0x534303,_0x353e46,_0x1159f2,_0x10bc35]of _0x1c9349){const _0x10f27d=_0x55e52b[_0x539d2b(0x5d7)]['bezierBoundingBox'](..._0x534303,..._0x353e46,..._0x1159f2,..._0x10bc35);_0x3d25b7=Math[_0x539d2b(0x81b)](_0x3d25b7,_0x10f27d[0x0]),_0x30e0ba=Math['min'](_0x30e0ba,_0x10f27d[0x1]),_0x2fbe4e=Math[_0x539d2b(0x78d)](_0x2fbe4e,_0x10f27d[0x2]),_0x3342c5=Math[_0x539d2b(0x78d)](_0x3342c5,_0x10f27d[0x3]);}}return[_0x3d25b7,_0x30e0ba,_0x2fbe4e,_0x3342c5];}#getPadding(){const _0xef01c9=_0x36cdb6;return this.#disableEditing?Math[_0xef01c9(0x213)](this[_0xef01c9(0x776)]*this[_0xef01c9(0x54a)]):0x0;}#fitToContent(){const _0x29a5b4=_0x36cdb6;let _0x3ce113=arguments['length']>0x0&&arguments[0x0]!==undefined?arguments[0x0]:![];if(this[_0x29a5b4(0x480)]())return;if(!this.#disableEditing){this.#redraw();return;}const _0x1f3184=this.#getBbox(),_0x3b56b6=this.#getPadding();this.#baseWidth=Math['max'](_0xc11234[_0x29a5b4(0x8f0)]['MIN_SIZE'],_0x1f3184[0x2]-_0x1f3184[0x0]),this.#baseHeight=Math[_0x29a5b4(0x78d)](_0xc11234['AnnotationEditor'][_0x29a5b4(0x527)],_0x1f3184[0x3]-_0x1f3184[0x1]);const _0x49cbcb=Math[_0x29a5b4(0x213)](_0x3b56b6+this.#baseWidth*this[_0x29a5b4(0x778)]),_0x506798=Math[_0x29a5b4(0x213)](_0x3b56b6+this.#baseHeight*this['scaleFactor']),[_0x36ea56,_0x4e197f]=this[_0x29a5b4(0x956)];this['width']=_0x49cbcb/_0x36ea56,this[_0x29a5b4(0x999)]=_0x506798/_0x4e197f,this['setAspectRatio'](_0x49cbcb,_0x506798);const _0x29375f=this[_0x29a5b4(0x1cb)],_0x1127a2=this['translationY'];this[_0x29a5b4(0x1cb)]=-_0x1f3184[0x0],this[_0x29a5b4(0x696)]=-_0x1f3184[0x1],this.#setCanvasDims(),this.#redraw(),this.#realWidth=_0x49cbcb,this.#realHeight=_0x506798,this[_0x29a5b4(0x5f7)](_0x49cbcb,_0x506798);const _0x428a1f=_0x3ce113?_0x3b56b6/this[_0x29a5b4(0x778)]/0x2:0x0;this[_0x29a5b4(0x18d)](_0x29375f-this['translationX']-_0x428a1f,_0x1127a2-this[_0x29a5b4(0x696)]-_0x428a1f);}static['deserialize'](_0x1f9fd4,_0x1debdd,_0x151da2){const _0x532f15=_0x36cdb6;if(_0x1f9fd4 instanceof _0x1305fa[_0x532f15(0x301)])return null;const _0x290bde=super[_0x532f15(0x7a3)](_0x1f9fd4,_0x1debdd,_0x151da2);_0x290bde['thickness']=_0x1f9fd4['thickness'],_0x290bde[_0x532f15(0x5fe)]=_0x55e52b['Util']['makeHexColor'](..._0x1f9fd4[_0x532f15(0x5fe)]),_0x290bde[_0x532f15(0x53e)]=_0x1f9fd4[_0x532f15(0x53e)];const [_0x5ad54d,_0xd7f3f7]=_0x290bde[_0x532f15(0x37f)],_0x2ccbc8=_0x290bde[_0x532f15(0x98b)]*_0x5ad54d,_0x30098b=_0x290bde[_0x532f15(0x999)]*_0xd7f3f7,_0x437df7=_0x290bde[_0x532f15(0x54a)],_0x3a4954=_0x1f9fd4[_0x532f15(0x776)]/0x2;_0x290bde.#disableEditing=!![],_0x290bde.#realWidth=Math['round'](_0x2ccbc8),_0x290bde.#realHeight=Math[_0x532f15(0x7df)](_0x30098b);const {paths:_0x12de63,rect:_0x56920a,rotation:_0x3ba040}=_0x1f9fd4;for(let {bezier:_0x2640ed}of _0x12de63){_0x2640ed=_0x3dd333.#fromPDFCoordinates(_0x2640ed,_0x56920a,_0x3ba040);const _0x2f2b44=[];_0x290bde['paths'][_0x532f15(0x7d6)](_0x2f2b44);let _0xa3d1da=_0x437df7*(_0x2640ed[0x0]-_0x3a4954),_0x18ff8b=_0x437df7*(_0x2640ed[0x1]-_0x3a4954);for(let _0x44678d=0x2,_0x99dab1=_0x2640ed['length'];_0x44678d<_0x99dab1;_0x44678d+=0x6){const _0x34ff70=_0x437df7*(_0x2640ed[_0x44678d]-_0x3a4954),_0x5e6c85=_0x437df7*(_0x2640ed[_0x44678d+0x1]-_0x3a4954),_0x1e14c6=_0x437df7*(_0x2640ed[_0x44678d+0x2]-_0x3a4954),_0x34ca0d=_0x437df7*(_0x2640ed[_0x44678d+0x3]-_0x3a4954),_0x18da9e=_0x437df7*(_0x2640ed[_0x44678d+0x4]-_0x3a4954),_0x1fd6d0=_0x437df7*(_0x2640ed[_0x44678d+0x5]-_0x3a4954);_0x2f2b44[_0x532f15(0x7d6)]([[_0xa3d1da,_0x18ff8b],[_0x34ff70,_0x5e6c85],[_0x1e14c6,_0x34ca0d],[_0x18da9e,_0x1fd6d0]]),_0xa3d1da=_0x18da9e,_0x18ff8b=_0x1fd6d0;}const _0x35a26a=this.#buildPath2D(_0x2f2b44);_0x290bde[_0x532f15(0x2cd)][_0x532f15(0x7d6)](_0x35a26a);}const _0x25eed4=_0x290bde.#getBbox();return _0x290bde.#baseWidth=Math[_0x532f15(0x78d)](_0xc11234[_0x532f15(0x8f0)]['MIN_SIZE'],_0x25eed4[0x2]-_0x25eed4[0x0]),_0x290bde.#baseHeight=Math[_0x532f15(0x78d)](_0xc11234['AnnotationEditor'][_0x532f15(0x527)],_0x25eed4[0x3]-_0x25eed4[0x1]),_0x290bde.#setScaleFactor(_0x2ccbc8,_0x30098b),_0x290bde;}[_0x36cdb6(0x65d)](){const _0x3bfca5=_0x36cdb6;if(this['isEmpty']())return null;const _0x38a1b7=this[_0x3bfca5(0x93f)](0x0,0x0),_0x5ede22=_0xc11234[_0x3bfca5(0x8f0)][_0x3bfca5(0x80b)][_0x3bfca5(0x836)](this[_0x3bfca5(0x427)]['strokeStyle']);return{'annotationType':_0x55e52b['AnnotationEditorType']['INK'],'color':_0x5ede22,'thickness':this[_0x3bfca5(0x776)],'opacity':this[_0x3bfca5(0x53e)],'paths':this.#serializePaths(this[_0x3bfca5(0x778)]/this[_0x3bfca5(0x54a)],this[_0x3bfca5(0x1cb)],this[_0x3bfca5(0x696)],_0x38a1b7),'pageIndex':this[_0x3bfca5(0x700)],'rect':_0x38a1b7,'rotation':this[_0x3bfca5(0x7af)]};}}_0x5447ba[_0x36cdb6(0x7e1)]=_0x3dd333;},(_0x1a421f,_0x463535,_0x42b8da)=>{'use strict';const _0x5cdb12=a0_0x160d;Object[_0x5cdb12(0x430)](_0x463535,_0x5cdb12(0x19a),{'value':!![]}),_0x463535['StampEditor']=void 0x0;var _0xa997b2=_0x42b8da(0x85),_0x15e2ee=_0x42b8da(0x1),_0x3bf4e6=_0x42b8da(0x87),_0xfb6e85=_0x42b8da(0x9d);class _0x4a84cc extends _0xa997b2[_0x5cdb12(0x8f0)]{#bitmap=null;#bitmapId=null;#bitmapPromise=null;#bitmapUrl=null;#canvas=null;#observer=null;#resizeTimeoutId=null;#isSvg=![];static [_0x5cdb12(0x879)]=_0x5cdb12(0x89f);constructor(_0x449db3){super({..._0x449db3,'name':'stampEditor'}),this.#bitmapUrl=_0x449db3['bitmapUrl'];}#getBitmap(){const _0x46c6cf=_0x5cdb12;if(this.#bitmapId){this[_0x46c6cf(0x5e4)][_0x46c6cf(0x204)]['getFromId'](this.#bitmapId)[_0x46c6cf(0x22d)](_0x474295=>{const _0x537742=_0x46c6cf;if(!_0x474295){this[_0x537742(0x10a)]();return;}this.#bitmap=_0x474295[_0x537742(0x7eb)],this.#createCanvas();});return;}if(this.#bitmapUrl){const _0x1fd645=this.#bitmapUrl;this.#bitmapUrl=null,this.#bitmapPromise=this[_0x46c6cf(0x5e4)][_0x46c6cf(0x204)][_0x46c6cf(0x2e3)](_0x1fd645)[_0x46c6cf(0x22d)](_0x31593c=>{this.#bitmapPromise=null;if(!_0x31593c){this['remove']();return;}({bitmap:this.#bitmap,id:this.#bitmapId,isSvg:this.#isSvg}=_0x31593c,this.#createCanvas());});return;}const _0x755a3d=document[_0x46c6cf(0x400)](_0x46c6cf(0x3e6));_0x755a3d[_0x46c6cf(0x9fd)]='file',_0x755a3d[_0x46c6cf(0x606)]=_0x46c6cf(0x542),this.#bitmapPromise=new Promise(_0x4ed309=>{const _0xf9bb05=_0x46c6cf;_0x755a3d['addEventListener']('change',async()=>{const _0x17c287=a0_0x160d;this.#bitmapPromise=null;if(!_0x755a3d[_0x17c287(0x5df)]||_0x755a3d[_0x17c287(0x5df)][_0x17c287(0x557)]===0x0)this[_0x17c287(0x10a)]();else{const _0x46d75b=await this[_0x17c287(0x5e4)][_0x17c287(0x204)][_0x17c287(0x682)](_0x755a3d[_0x17c287(0x5df)][0x0]);if(!_0x46d75b){this['remove']();return;}({bitmap:this.#bitmap,id:this.#bitmapId,isSvg:this.#isSvg}=_0x46d75b,this.#createCanvas());}_0x4ed309();}),_0x755a3d[_0xf9bb05(0x5cc)]('cancel',()=>{this.#bitmapPromise=null,this['remove'](),_0x4ed309();});}),_0x755a3d[_0x46c6cf(0x45d)]();}[_0x5cdb12(0x10a)](){const _0x5863a3=_0x5cdb12;this.#bitmapId&&(this.#bitmap=null,this['_uiManager'][_0x5863a3(0x204)][_0x5863a3(0x376)](this.#bitmapId),this.#canvas?.['remove'](),this.#canvas=null,this.#observer?.['disconnect'](),this.#observer=null),super['remove']();}[_0x5cdb12(0x9d3)](){const _0x1aa5d6=_0x5cdb12;super[_0x1aa5d6(0x9d3)]();if(this[_0x1aa5d6(0x903)]===null)return;this.#bitmapId&&this.#getBitmap(),!this['isAttachedToDOM']&&this[_0x1aa5d6(0x4c3)][_0x1aa5d6(0x156)](this);}['onceAdded'](){const _0x494d0d=_0x5cdb12;this[_0x494d0d(0x903)][_0x494d0d(0x7dc)]=!![],this[_0x494d0d(0x4c3)][_0x494d0d(0x2bd)](this),this[_0x494d0d(0x903)]['focus']();}[_0x5cdb12(0x480)](){return this.#bitmapPromise===null&&this.#bitmap===null&&this.#bitmapUrl===null;}['render'](){const _0xc7ca33=_0x5cdb12;if(this['div'])return this[_0xc7ca33(0x903)];let _0x305e25,_0xde2bc;this[_0xc7ca33(0x98b)]&&(_0x305e25=this['x'],_0xde2bc=this['y']);super[_0xc7ca33(0x6c8)]();this.#bitmap?this.#createCanvas():(this[_0xc7ca33(0x903)]['classList'][_0xc7ca33(0x156)](_0xc7ca33(0x1ad)),this.#getBitmap());if(this[_0xc7ca33(0x98b)]){const [_0x4d5057,_0x46ebbe]=this[_0xc7ca33(0x956)];this[_0xc7ca33(0x231)](this[_0xc7ca33(0x98b)]*_0x4d5057,this[_0xc7ca33(0x999)]*_0x46ebbe),this[_0xc7ca33(0x912)](_0x305e25*_0x4d5057,_0xde2bc*_0x46ebbe,this[_0xc7ca33(0x98b)]*_0x4d5057,this[_0xc7ca33(0x999)]*_0x46ebbe);}return this[_0xc7ca33(0x903)];}#createCanvas(){const _0x511377=_0x5cdb12,{div:_0x5c6c39}=this;let {width:_0x36167b,height:_0x45be64}=this.#bitmap;const [_0x3fa45b,_0x531915]=this[_0x511377(0x37f)],_0x17223d=0.75;if(this[_0x511377(0x98b)])_0x36167b=this[_0x511377(0x98b)]*_0x3fa45b,_0x45be64=this[_0x511377(0x999)]*_0x531915;else{if(_0x36167b>_0x17223d*_0x3fa45b||_0x45be64>_0x17223d*_0x531915){const _0x1150f5=Math[_0x511377(0x81b)](_0x17223d*_0x3fa45b/_0x36167b,_0x17223d*_0x531915/_0x45be64);_0x36167b*=_0x1150f5,_0x45be64*=_0x1150f5;}}const [_0x4facb9,_0x523836]=this[_0x511377(0x956)];this[_0x511377(0x5f7)](_0x36167b*_0x4facb9/_0x3fa45b,_0x45be64*_0x523836/_0x531915),this[_0x511377(0x231)](_0x36167b,_0x45be64);const _0x2bce03=this.#canvas=document[_0x511377(0x400)](_0x511377(0x75a));_0x5c6c39[_0x511377(0x45e)](_0x2bce03),this.#drawBitmap(_0x36167b,_0x45be64),this.#createObserver(),_0x5c6c39[_0x511377(0x2bc)][_0x511377(0x10a)]('loading');}#setDimensions(_0x1c7540,_0x326fa1){const _0x1ae5c5=_0x5cdb12,[_0x1e9d2d,_0x297c0b]=this[_0x1ae5c5(0x956)];if(Math[_0x1ae5c5(0x346)](_0x1c7540-this[_0x1ae5c5(0x98b)]*_0x1e9d2d)<0x1&&Math[_0x1ae5c5(0x346)](_0x326fa1-this[_0x1ae5c5(0x999)]*_0x297c0b)<0x1)return;this[_0x1ae5c5(0x98b)]=_0x1c7540/_0x1e9d2d,this[_0x1ae5c5(0x999)]=_0x326fa1/_0x297c0b,this[_0x1ae5c5(0x5f7)](_0x1c7540,_0x326fa1);this.#resizeTimeoutId!==null&&clearTimeout(this.#resizeTimeoutId);const _0x132215=0xc8;this.#resizeTimeoutId=setTimeout(()=>{this.#resizeTimeoutId=null,this.#drawBitmap(_0x1c7540,_0x326fa1);},_0x132215);}#scaleBitmap(_0x43b4df,_0x7b4500){const _0x5b632f=_0x5cdb12,{width:_0x375d74,height:_0x204721}=this.#bitmap;let _0x46cc2f=_0x375d74,_0x4dc337=_0x204721,_0x126710=this.#bitmap;while(_0x46cc2f>0x2*_0x43b4df||_0x4dc337>0x2*_0x7b4500){const _0x11efb4=_0x46cc2f,_0x1d7957=_0x4dc337;_0x46cc2f>0x2*_0x43b4df&&(_0x46cc2f=_0x46cc2f>=0x4000?Math[_0x5b632f(0x583)](_0x46cc2f/0x2)-0x1:Math[_0x5b632f(0x213)](_0x46cc2f/0x2));_0x4dc337>0x2*_0x7b4500&&(_0x4dc337=_0x4dc337>=0x4000?Math[_0x5b632f(0x583)](_0x4dc337/0x2)-0x1:Math[_0x5b632f(0x213)](_0x4dc337/0x2));const _0x19fd9f=new OffscreenCanvas(_0x46cc2f,_0x4dc337),_0x5204f7=_0x19fd9f[_0x5b632f(0x802)]('2d');_0x5204f7[_0x5b632f(0x545)](_0x126710,0x0,0x0,_0x11efb4,_0x1d7957,0x0,0x0,_0x46cc2f,_0x4dc337),_0x126710=_0x19fd9f[_0x5b632f(0x5de)]();}return _0x126710;}#drawBitmap(_0x31de05,_0x1ab226){const _0x15fd60=_0x5cdb12,_0x4bfd0a=this.#canvas;if(!_0x4bfd0a||_0x4bfd0a['width']===_0x31de05&&_0x4bfd0a[_0x15fd60(0x999)]===_0x1ab226)return;_0x4bfd0a['width']=_0x31de05,_0x4bfd0a[_0x15fd60(0x999)]=_0x1ab226;const _0x3b1fc0=this.#isSvg?this.#bitmap:this.#scaleBitmap(_0x31de05,_0x1ab226),_0x42da9c=_0x4bfd0a[_0x15fd60(0x802)]('2d');_0x42da9c['filter']=this['_uiManager'][_0x15fd60(0x370)],_0x42da9c[_0x15fd60(0x545)](_0x3b1fc0,0x0,0x0,_0x3b1fc0[_0x15fd60(0x98b)],_0x3b1fc0[_0x15fd60(0x999)],0x0,0x0,_0x31de05,_0x1ab226);}#serializeBitmap(_0x3ac80e){const _0x107017=_0x5cdb12;if(_0x3ac80e){if(this.#isSvg){const _0x50ccac=this[_0x107017(0x5e4)][_0x107017(0x204)][_0x107017(0x71e)](this.#bitmapId);if(_0x50ccac)return _0x50ccac;}const _0x47b612=document[_0x107017(0x400)]('canvas');({width:_0x47b612[_0x107017(0x98b)],height:_0x47b612['height']}=this.#bitmap);const _0x5aebbe=_0x47b612[_0x107017(0x802)]('2d');return _0x5aebbe[_0x107017(0x545)](this.#bitmap,0x0,0x0),_0x47b612['toDataURL']();}if(this.#isSvg){const [_0x55f6ed,_0x1f9504]=this[_0x107017(0x37f)],_0x3b4825=Math['round'](this[_0x107017(0x98b)]*_0x55f6ed*_0x3bf4e6[_0x107017(0x705)][_0x107017(0x9aa)]),_0x1193fb=Math[_0x107017(0x7df)](this['height']*_0x1f9504*_0x3bf4e6[_0x107017(0x705)][_0x107017(0x9aa)]),_0x23b486=new OffscreenCanvas(_0x3b4825,_0x1193fb),_0x386fc2=_0x23b486[_0x107017(0x802)]('2d');return _0x386fc2[_0x107017(0x545)](this.#bitmap,0x0,0x0,this.#bitmap[_0x107017(0x98b)],this.#bitmap[_0x107017(0x999)],0x0,0x0,_0x3b4825,_0x1193fb),_0x23b486[_0x107017(0x5de)]();}return structuredClone(this.#bitmap);}#createObserver(){const _0x125780=_0x5cdb12;this.#observer=new ResizeObserver(_0x581f37=>{const _0x4d492e=a0_0x160d,_0x4be665=_0x581f37[0x0]['contentRect'];_0x4be665[_0x4d492e(0x98b)]&&_0x4be665[_0x4d492e(0x999)]&&this.#setDimensions(_0x4be665['width'],_0x4be665['height']);}),this.#observer['observe'](this[_0x125780(0x903)]);}static[_0x5cdb12(0x7a3)](_0x2298e8,_0x22775d,_0x33f114){const _0x5ea56f=_0x5cdb12;if(_0x2298e8 instanceof _0xfb6e85[_0x5ea56f(0x3ed)])return null;const _0x4bef22=super[_0x5ea56f(0x7a3)](_0x2298e8,_0x22775d,_0x33f114),{rect:_0x4db67b,bitmapUrl:_0x2bde18,bitmapId:_0xfacd7,isSvg:_0x1c634c}=_0x2298e8;_0xfacd7&&_0x33f114[_0x5ea56f(0x204)]['isValidId'](_0xfacd7)?_0x4bef22.#bitmapId=_0xfacd7:_0x4bef22.#bitmapUrl=_0x2bde18;_0x4bef22.#isSvg=_0x1c634c;const [_0x292d68,_0xad5c38]=_0x4bef22[_0x5ea56f(0x37f)];return _0x4bef22[_0x5ea56f(0x98b)]=(_0x4db67b[0x2]-_0x4db67b[0x0])/_0x292d68,_0x4bef22[_0x5ea56f(0x999)]=(_0x4db67b[0x3]-_0x4db67b[0x1])/_0xad5c38,_0x4bef22;}['serialize'](){const _0x2fc68f=_0x5cdb12;let _0x159afe=arguments[_0x2fc68f(0x557)]>0x0&&arguments[0x0]!==undefined?arguments[0x0]:![],_0x1ea762=arguments[_0x2fc68f(0x557)]>0x1&&arguments[0x1]!==undefined?arguments[0x1]:null;if(this['isEmpty']())return null;const _0x55b35a={'annotationType':_0x15e2ee[_0x2fc68f(0x9a6)][_0x2fc68f(0x8e8)],'bitmapId':this.#bitmapId,'pageIndex':this[_0x2fc68f(0x700)],'rect':this[_0x2fc68f(0x93f)](0x0,0x0),'rotation':this[_0x2fc68f(0x7af)],'isSvg':this.#isSvg};if(_0x159afe)return _0x55b35a[_0x2fc68f(0x168)]=this.#serializeBitmap(!![]),_0x55b35a;if(_0x1ea762===null)return _0x55b35a;_0x1ea762[_0x2fc68f(0xf4)]||=new Map();const _0x72966b=this.#isSvg?(_0x55b35a['rect'][0x2]-_0x55b35a['rect'][0x0])*(_0x55b35a[_0x2fc68f(0x333)][0x3]-_0x55b35a['rect'][0x1]):null;if(!_0x1ea762['stamps'][_0x2fc68f(0x373)](this.#bitmapId))_0x1ea762[_0x2fc68f(0xf4)][_0x2fc68f(0x98e)](this.#bitmapId,{'area':_0x72966b,'serialized':_0x55b35a}),_0x55b35a[_0x2fc68f(0x7eb)]=this.#serializeBitmap(![]);else{if(this.#isSvg){const _0x5cbb94=_0x1ea762[_0x2fc68f(0xf4)][_0x2fc68f(0x8c4)](this.#bitmapId);_0x72966b>_0x5cbb94['area']&&(_0x5cbb94[_0x2fc68f(0x806)]=_0x72966b,_0x5cbb94[_0x2fc68f(0x4ce)]['bitmap']['close'](),_0x5cbb94[_0x2fc68f(0x4ce)][_0x2fc68f(0x7eb)]=this.#serializeBitmap(![]));}}return _0x55b35a;}}_0x463535['StampEditor']=_0x4a84cc;},(_0x1d4389,_0x3afacb,_0xfb7b59)=>{'use strict';const _0x150b74=a0_0x160d;Object['defineProperty'](_0x3afacb,_0x150b74(0x19a),{'value':!![]}),_0x3afacb['SVGGraphics']=void 0x0;var _0x57526a=_0xfb7b59(0x87),_0x41bc5e=_0xfb7b59(0x1),_0x2d7290=_0xfb7b59(0x3);;const _0x517386={'fontStyle':_0x150b74(0x102),'fontWeight':_0x150b74(0x102),'fillColor':_0x150b74(0x83d)},_0x1af505=_0x150b74(0x308),_0x13d3b1=_0x150b74(0x8af),_0x2720e0=['butt',_0x150b74(0x7df),_0x150b74(0x2c6)],_0x4a998d=[_0x150b74(0x1bc),_0x150b74(0x7df),'bevel'],_0x1e6a71=function(_0x36761d){const _0x13368a=_0x150b74;let _0x1b2fc3=arguments['length']>0x1&&arguments[0x1]!==undefined?arguments[0x1]:'',_0x33fd5a=arguments[_0x13368a(0x557)]>0x2&&arguments[0x2]!==undefined?arguments[0x2]:![];if(URL[_0x13368a(0x9c1)]&&typeof Blob!==_0x13368a(0x32c)&&!_0x33fd5a)return URL[_0x13368a(0x9c1)](new Blob([_0x36761d],{'type':_0x1b2fc3}));const _0x3c97bc=_0x13368a(0x9f4);let _0x3b91a0='data:'+_0x1b2fc3+_0x13368a(0x7ae);for(let _0x2d863b=0x0,_0x2f88b6=_0x36761d[_0x13368a(0x557)];_0x2d863b<_0x2f88b6;_0x2d863b+=0x3){const _0x16f10e=_0x36761d[_0x2d863b]&0xff,_0x5943ac=_0x36761d[_0x2d863b+0x1]&0xff,_0x295073=_0x36761d[_0x2d863b+0x2]&0xff,_0x3e432e=_0x16f10e>>0x2,_0x23a001=(_0x16f10e&0x3)<<0x4|_0x5943ac>>0x4,_0x55c45e=_0x2d863b+0x1<_0x2f88b6?(_0x5943ac&0xf)<<0x2|_0x295073>>0x6:0x40,_0x506209=_0x2d863b+0x2<_0x2f88b6?_0x295073&0x3f:0x40;_0x3b91a0+=_0x3c97bc[_0x3e432e]+_0x3c97bc[_0x23a001]+_0x3c97bc[_0x55c45e]+_0x3c97bc[_0x506209];}return _0x3b91a0;},_0x2e0f43=(function(){const _0x5ce09d=new Uint8Array([0x89,0x50,0x4e,0x47,0xd,0xa,0x1a,0xa]),_0x3fdb16=0xc,_0x1ef517=new Int32Array(0x100);for(let _0x563ddb=0x0;_0x563ddb<0x100;_0x563ddb++){let _0x52e52a=_0x563ddb;for(let _0xb6cf07=0x0;_0xb6cf07<0x8;_0xb6cf07++){_0x52e52a&0x1?_0x52e52a=0xedb88320^_0x52e52a>>0x1&0x7fffffff:_0x52e52a=_0x52e52a>>0x1&0x7fffffff;}_0x1ef517[_0x563ddb]=_0x52e52a;}function _0x327639(_0x2137bd,_0x119c26,_0x123a49){let _0x8ecbfc=-0x1;for(let _0x336d4a=_0x119c26;_0x336d4a<_0x123a49;_0x336d4a++){const _0x3cb003=(_0x8ecbfc^_0x2137bd[_0x336d4a])&0xff,_0x5d5f70=_0x1ef517[_0x3cb003];_0x8ecbfc=_0x8ecbfc>>>0x8^_0x5d5f70;}return _0x8ecbfc^-0x1;}function _0x5aef5c(_0x4633ed,_0x450421,_0x55e95f,_0x42a51e){const _0x538df9=a0_0x160d;let _0x3dad87=_0x42a51e;const _0x1c0042=_0x450421[_0x538df9(0x557)];_0x55e95f[_0x3dad87]=_0x1c0042>>0x18&0xff,_0x55e95f[_0x3dad87+0x1]=_0x1c0042>>0x10&0xff,_0x55e95f[_0x3dad87+0x2]=_0x1c0042>>0x8&0xff,_0x55e95f[_0x3dad87+0x3]=_0x1c0042&0xff,_0x3dad87+=0x4,_0x55e95f[_0x3dad87]=_0x4633ed['charCodeAt'](0x0)&0xff,_0x55e95f[_0x3dad87+0x1]=_0x4633ed[_0x538df9(0x9f3)](0x1)&0xff,_0x55e95f[_0x3dad87+0x2]=_0x4633ed[_0x538df9(0x9f3)](0x2)&0xff,_0x55e95f[_0x3dad87+0x3]=_0x4633ed['charCodeAt'](0x3)&0xff,_0x3dad87+=0x4,_0x55e95f[_0x538df9(0x98e)](_0x450421,_0x3dad87),_0x3dad87+=_0x450421[_0x538df9(0x557)];const _0x4289b3=_0x327639(_0x55e95f,_0x42a51e+0x4,_0x3dad87);_0x55e95f[_0x3dad87]=_0x4289b3>>0x18&0xff,_0x55e95f[_0x3dad87+0x1]=_0x4289b3>>0x10&0xff,_0x55e95f[_0x3dad87+0x2]=_0x4289b3>>0x8&0xff,_0x55e95f[_0x3dad87+0x3]=_0x4289b3&0xff;}function _0x3d517c(_0x5449d3,_0x1465fd,_0x191798){let _0x33a2a=0x1,_0x315333=0x0;for(let _0x12f4a9=_0x1465fd;_0x12f4a9<_0x191798;++_0x12f4a9){_0x33a2a=(_0x33a2a+(_0x5449d3[_0x12f4a9]&0xff))%0xfff1,_0x315333=(_0x315333+_0x33a2a)%0xfff1;}return _0x315333<<0x10|_0x33a2a;}function _0x26c79d(_0x3b8f2d){const _0x4ef0a7=a0_0x160d;if(!_0x2d7290[_0x4ef0a7(0x8c5)])return _0x3e076d(_0x3b8f2d);try{let _0x76cf41;parseInt(process[_0x4ef0a7(0x83a)][_0x4ef0a7(0x4d3)])>=0x8?_0x76cf41=_0x3b8f2d:_0x76cf41=Buffer[_0x4ef0a7(0x875)](_0x3b8f2d);const _0x33f082=require(_0x4ef0a7(0x848))[_0x4ef0a7(0x1a7)](_0x76cf41,{'level':0x9});return _0x33f082 instanceof Uint8Array?_0x33f082:new Uint8Array(_0x33f082);}catch(_0x55fede){(0x0,_0x41bc5e[_0x4ef0a7(0x472)])('Not\x20compressing\x20PNG\x20because\x20zlib.deflateSync\x20is\x20unavailable:\x20'+_0x55fede);}return _0x3e076d(_0x3b8f2d);}function _0x3e076d(_0x3b3e98){const _0x36cc7b=a0_0x160d;let _0x450393=_0x3b3e98[_0x36cc7b(0x557)];const _0x17c6a2=0xffff,_0xf5a766=Math[_0x36cc7b(0x213)](_0x450393/_0x17c6a2),_0x245592=new Uint8Array(0x2+_0x450393+_0xf5a766*0x5+0x4);let _0x433ce6=0x0;_0x245592[_0x433ce6++]=0x78,_0x245592[_0x433ce6++]=0x9c;let _0xbdddd1=0x0;while(_0x450393>_0x17c6a2){_0x245592[_0x433ce6++]=0x0,_0x245592[_0x433ce6++]=0xff,_0x245592[_0x433ce6++]=0xff,_0x245592[_0x433ce6++]=0x0,_0x245592[_0x433ce6++]=0x0,_0x245592[_0x36cc7b(0x98e)](_0x3b3e98[_0x36cc7b(0x47f)](_0xbdddd1,_0xbdddd1+_0x17c6a2),_0x433ce6),_0x433ce6+=_0x17c6a2,_0xbdddd1+=_0x17c6a2,_0x450393-=_0x17c6a2;}_0x245592[_0x433ce6++]=0x1,_0x245592[_0x433ce6++]=_0x450393&0xff,_0x245592[_0x433ce6++]=_0x450393>>0x8&0xff,_0x245592[_0x433ce6++]=~_0x450393&0xffff&0xff,_0x245592[_0x433ce6++]=(~_0x450393&0xffff)>>0x8&0xff,_0x245592['set'](_0x3b3e98[_0x36cc7b(0x47f)](_0xbdddd1),_0x433ce6),_0x433ce6+=_0x3b3e98[_0x36cc7b(0x557)]-_0xbdddd1;const _0x347f4d=_0x3d517c(_0x3b3e98,0x0,_0x3b3e98['length']);return _0x245592[_0x433ce6++]=_0x347f4d>>0x18&0xff,_0x245592[_0x433ce6++]=_0x347f4d>>0x10&0xff,_0x245592[_0x433ce6++]=_0x347f4d>>0x8&0xff,_0x245592[_0x433ce6++]=_0x347f4d&0xff,_0x245592;}function _0x4504bd(_0x5e13f2,_0x45a5b2,_0x4c98b1,_0x22e168){const _0xd0e714=a0_0x160d,_0x3bae3a=_0x5e13f2[_0xd0e714(0x98b)],_0x45b58a=_0x5e13f2[_0xd0e714(0x999)];let _0x5df02a,_0x4b826a,_0x3a239b;const _0x418ab1=_0x5e13f2[_0xd0e714(0x41b)];switch(_0x45a5b2){case _0x41bc5e[_0xd0e714(0x163)][_0xd0e714(0x245)]:_0x4b826a=0x0,_0x5df02a=0x1,_0x3a239b=_0x3bae3a+0x7>>0x3;break;case _0x41bc5e[_0xd0e714(0x163)][_0xd0e714(0x66e)]:_0x4b826a=0x2,_0x5df02a=0x8,_0x3a239b=_0x3bae3a*0x3;break;case _0x41bc5e[_0xd0e714(0x163)][_0xd0e714(0x617)]:_0x4b826a=0x6,_0x5df02a=0x8,_0x3a239b=_0x3bae3a*0x4;break;default:throw new Error(_0xd0e714(0x77b));}const _0x6a994d=new Uint8Array((0x1+_0x3a239b)*_0x45b58a);let _0x34abfd=0x0,_0x4d7086=0x0;for(let _0x5b4727=0x0;_0x5b4727<_0x45b58a;++_0x5b4727){_0x6a994d[_0x34abfd++]=0x0,_0x6a994d['set'](_0x418ab1[_0xd0e714(0x47f)](_0x4d7086,_0x4d7086+_0x3a239b),_0x34abfd),_0x4d7086+=_0x3a239b,_0x34abfd+=_0x3a239b;}if(_0x45a5b2===_0x41bc5e[_0xd0e714(0x163)][_0xd0e714(0x245)]&&_0x22e168){_0x34abfd=0x0;for(let _0x3761ff=0x0;_0x3761ff<_0x45b58a;_0x3761ff++){_0x34abfd++;for(let _0x2d9e8c=0x0;_0x2d9e8c<_0x3a239b;_0x2d9e8c++){_0x6a994d[_0x34abfd++]^=0xff;}}}const _0x21d836=new Uint8Array([_0x3bae3a>>0x18&0xff,_0x3bae3a>>0x10&0xff,_0x3bae3a>>0x8&0xff,_0x3bae3a&0xff,_0x45b58a>>0x18&0xff,_0x45b58a>>0x10&0xff,_0x45b58a>>0x8&0xff,_0x45b58a&0xff,_0x5df02a,_0x4b826a,0x0,0x0,0x0]),_0x28afce=_0x26c79d(_0x6a994d),_0x2e91b2=_0x5ce09d['length']+_0x3fdb16*0x3+_0x21d836[_0xd0e714(0x557)]+_0x28afce[_0xd0e714(0x557)],_0x143297=new Uint8Array(_0x2e91b2);let _0x55ff5d=0x0;return _0x143297[_0xd0e714(0x98e)](_0x5ce09d,_0x55ff5d),_0x55ff5d+=_0x5ce09d[_0xd0e714(0x557)],_0x5aef5c('IHDR',_0x21d836,_0x143297,_0x55ff5d),_0x55ff5d+=_0x3fdb16+_0x21d836[_0xd0e714(0x557)],_0x5aef5c(_0xd0e714(0x233),_0x28afce,_0x143297,_0x55ff5d),_0x55ff5d+=_0x3fdb16+_0x28afce['length'],_0x5aef5c(_0xd0e714(0x1c9),new Uint8Array(0x0),_0x143297,_0x55ff5d),_0x1e6a71(_0x143297,_0xd0e714(0x1a1),_0x4c98b1);}return function _0x135fcb(_0x465994,_0x1d1f91,_0x1f001e){const _0x275093=a0_0x160d,_0x29dc15=_0x465994[_0x275093(0x440)]===undefined?_0x41bc5e[_0x275093(0x163)][_0x275093(0x245)]:_0x465994[_0x275093(0x440)];return _0x4504bd(_0x465994,_0x29dc15,_0x1d1f91,_0x1f001e);};}());class _0xc8b0fd{constructor(){const _0x51fc8b=_0x150b74;this[_0x51fc8b(0x94d)]=0x1,this['fontWeight']=_0x517386[_0x51fc8b(0x5f0)],this['fontSize']=0x0,this['textMatrix']=_0x41bc5e[_0x51fc8b(0x2d6)],this[_0x51fc8b(0x4f3)]=_0x41bc5e[_0x51fc8b(0x6ab)],this[_0x51fc8b(0x7f7)]=0x0,this[_0x51fc8b(0x743)]=_0x41bc5e[_0x51fc8b(0x38b)][_0x51fc8b(0x61e)],this['textMatrixScale']=0x1,this['x']=0x0,this['y']=0x0,this['lineX']=0x0,this[_0x51fc8b(0x220)]=0x0,this[_0x51fc8b(0x329)]=0x0,this[_0x51fc8b(0x865)]=0x0,this[_0x51fc8b(0x494)]=0x1,this['textRise']=0x0,this[_0x51fc8b(0x631)]=_0x517386[_0x51fc8b(0x631)],this['strokeColor']=_0x51fc8b(0x83d),this[_0x51fc8b(0x587)]=0x1,this[_0x51fc8b(0x2ca)]=0x1,this['lineWidth']=0x1,this[_0x51fc8b(0x1f4)]='',this['lineCap']='',this[_0x51fc8b(0x7d2)]=0x0,this['dashArray']=[],this[_0x51fc8b(0x680)]=0x0,this[_0x51fc8b(0x438)]=[],this[_0x51fc8b(0x199)]=null,this[_0x51fc8b(0x8b2)]=null,this[_0x51fc8b(0x27a)]='';}[_0x150b74(0x461)](){const _0xe74f10=_0x150b74;return Object[_0xe74f10(0x77c)](this);}['setCurrentPoint'](_0x24cfaa,_0x47a921){this['x']=_0x24cfaa,this['y']=_0x47a921;}}function _0x1d2582(_0x583c34){const _0xbcbd40=_0x150b74;let _0x210619=[];const _0x584bc3=[];for(const _0x2309a0 of _0x583c34){if(_0x2309a0['fn']===_0xbcbd40(0x7e2)){_0x210619['push']({'fnId':0x5c,'fn':_0xbcbd40(0x4cb),'items':[]}),_0x584bc3[_0xbcbd40(0x7d6)](_0x210619),_0x210619=_0x210619['at'](-0x1)[_0xbcbd40(0x44d)];continue;}_0x2309a0['fn']===_0xbcbd40(0x9ab)?_0x210619=_0x584bc3[_0xbcbd40(0x783)]():_0x210619[_0xbcbd40(0x7d6)](_0x2309a0);}return _0x210619;}function _0x48533e(_0x141a41){const _0xbcc696=_0x150b74;if(Number[_0xbcc696(0x235)](_0x141a41))return _0x141a41[_0xbcc696(0x83f)]();const _0x241600=_0x141a41['toFixed'](0xa);let _0x5358e9=_0x241600[_0xbcc696(0x557)]-0x1;if(_0x241600[_0x5358e9]!=='0')return _0x241600;do{_0x5358e9--;}while(_0x241600[_0x5358e9]==='0');return _0x241600[_0xbcc696(0x5d2)](0x0,_0x241600[_0x5358e9]==='.'?_0x5358e9:_0x5358e9+0x1);}function _0x5473ca(_0x51fa5e){const _0x22fd04=_0x150b74;if(_0x51fa5e[0x4]===0x0&&_0x51fa5e[0x5]===0x0){if(_0x51fa5e[0x1]===0x0&&_0x51fa5e[0x2]===0x0){if(_0x51fa5e[0x0]===0x1&&_0x51fa5e[0x3]===0x1)return'';return'scale('+_0x48533e(_0x51fa5e[0x0])+'\x20'+_0x48533e(_0x51fa5e[0x3])+')';}if(_0x51fa5e[0x0]===_0x51fa5e[0x3]&&_0x51fa5e[0x1]===-_0x51fa5e[0x2]){const _0x4d630a=Math['acos'](_0x51fa5e[0x0])*0xb4/Math['PI'];return'rotate('+_0x48533e(_0x4d630a)+')';}}else{if(_0x51fa5e[0x0]===0x1&&_0x51fa5e[0x1]===0x0&&_0x51fa5e[0x2]===0x0&&_0x51fa5e[0x3]===0x1)return _0x22fd04(0x2b7)+_0x48533e(_0x51fa5e[0x4])+'\x20'+_0x48533e(_0x51fa5e[0x5])+')';}return _0x22fd04(0x29c)+_0x48533e(_0x51fa5e[0x0])+'\x20'+_0x48533e(_0x51fa5e[0x1])+'\x20'+_0x48533e(_0x51fa5e[0x2])+'\x20'+_0x48533e(_0x51fa5e[0x3])+'\x20'+_0x48533e(_0x51fa5e[0x4])+'\x20'+(_0x48533e(_0x51fa5e[0x5])+')');}let _0x2ade60=0x0,_0x2188cc=0x0,_0x491b93=0x0;class _0x52d6c5{constructor(_0x351f40,_0x44bd07){const _0x414e3b=_0x150b74;let _0x1a5b6b=arguments[_0x414e3b(0x557)]>0x2&&arguments[0x2]!==undefined?arguments[0x2]:![];(0x0,_0x57526a[_0x414e3b(0x30f)])(_0x414e3b(0x734)),this[_0x414e3b(0x385)]=new _0x57526a[(_0x414e3b(0x7be))](),this[_0x414e3b(0x835)]=new _0xc8b0fd(),this[_0x414e3b(0x516)]=_0x41bc5e[_0x414e3b(0x2d6)],this[_0x414e3b(0x90a)]=[],this['extraStack']=[],this['commonObjs']=_0x351f40,this[_0x414e3b(0xdc)]=_0x44bd07,this[_0x414e3b(0x78f)]=null,this['pendingEOFill']=![],this[_0x414e3b(0x393)]=![],this[_0x414e3b(0xc3)]=Object[_0x414e3b(0x77c)](null),this[_0x414e3b(0x1cf)]=null,this[_0x414e3b(0xd7)]=!!_0x1a5b6b,this[_0x414e3b(0x87e)]=[];for(const _0x3bb49f in _0x41bc5e[_0x414e3b(0x13d)]){this[_0x414e3b(0x87e)][_0x41bc5e[_0x414e3b(0x13d)][_0x3bb49f]]=_0x3bb49f;}}['getObject'](_0x27bd43){const _0x114bec=_0x150b74;let _0x1a59b9=arguments[_0x114bec(0x557)]>0x1&&arguments[0x1]!==undefined?arguments[0x1]:null;if(typeof _0x27bd43===_0x114bec(0x8cd))return _0x27bd43[_0x114bec(0x2aa)]('g_')?this[_0x114bec(0x53b)][_0x114bec(0x8c4)](_0x27bd43):this['objs'][_0x114bec(0x8c4)](_0x27bd43);return _0x1a59b9;}[_0x150b74(0x7e2)](){const _0x53ff74=_0x150b74;this[_0x53ff74(0x90a)][_0x53ff74(0x7d6)](this[_0x53ff74(0x516)]);const _0x5178c4=this[_0x53ff74(0x835)];this[_0x53ff74(0x1ed)]['push'](_0x5178c4),this[_0x53ff74(0x835)]=_0x5178c4[_0x53ff74(0x461)]();}[_0x150b74(0x9ab)](){const _0x5dacd7=_0x150b74;this[_0x5dacd7(0x516)]=this[_0x5dacd7(0x90a)][_0x5dacd7(0x783)](),this['current']=this['extraStack'][_0x5dacd7(0x783)](),this[_0x5dacd7(0x78f)]=null,this[_0x5dacd7(0x278)]=null;}[_0x150b74(0x4cb)](_0x3630eb){const _0x1b9a56=_0x150b74;this[_0x1b9a56(0x7e2)](),this[_0x1b9a56(0x114)](_0x3630eb),this[_0x1b9a56(0x9ab)]();}['loadDependencies'](_0x3741b5){const _0x59fa4d=_0x150b74,_0x3d3a35=_0x3741b5[_0x59fa4d(0x681)],_0x40ed0c=_0x3741b5[_0x59fa4d(0x20c)];for(let _0x27252a=0x0,_0x37394d=_0x3d3a35['length'];_0x27252a<_0x37394d;_0x27252a++){if(_0x3d3a35[_0x27252a]!==_0x41bc5e['OPS'][_0x59fa4d(0x2e2)])continue;for(const _0x18984d of _0x40ed0c[_0x27252a]){const _0x11d7a0=_0x18984d[_0x59fa4d(0x2aa)]('g_')?this[_0x59fa4d(0x53b)]:this[_0x59fa4d(0xdc)],_0x177df9=new Promise(_0x406b2f=>{_0x11d7a0['get'](_0x18984d,_0x406b2f);});this['current'][_0x59fa4d(0x438)][_0x59fa4d(0x7d6)](_0x177df9);}}return Promise[_0x59fa4d(0x586)](this[_0x59fa4d(0x835)]['dependencies']);}[_0x150b74(0x5dd)](_0x188241,_0x584017,_0x5b50a2,_0xa98256,_0x3e6274,_0x5e9be1){const _0x4663f2=_0x150b74,_0x29ef9f=[_0x188241,_0x584017,_0x5b50a2,_0xa98256,_0x3e6274,_0x5e9be1];this[_0x4663f2(0x516)]=_0x41bc5e['Util']['transform'](this['transformMatrix'],_0x29ef9f),this[_0x4663f2(0x278)]=null;}[_0x150b74(0xff)](_0x2d17a5,_0x3fa0ff){const _0x2fe41c=_0x150b74;this[_0x2fe41c(0x502)]=_0x3fa0ff;const _0x4defd0=this[_0x2fe41c(0x9f0)](_0x3fa0ff);return this[_0x2fe41c(0x2cf)](_0x2d17a5)[_0x2fe41c(0x22d)](()=>{const _0x250cca=_0x2fe41c;return this['transformMatrix']=_0x41bc5e[_0x250cca(0x2d6)],this[_0x250cca(0x114)](this[_0x250cca(0x873)](_0x2d17a5)),_0x4defd0;});}[_0x150b74(0x873)](_0x4e15e9){const _0x90c01c=_0x150b74,_0x1d10b0=this[_0x90c01c(0x87e)],_0x581056=_0x4e15e9['argsArray'],_0x295eff=_0x4e15e9['fnArray'],_0x1ec7bc=[];for(let _0x1307aa=0x0,_0x3e146a=_0x295eff['length'];_0x1307aa<_0x3e146a;_0x1307aa++){const _0x59e961=_0x295eff[_0x1307aa];_0x1ec7bc[_0x90c01c(0x7d6)]({'fnId':_0x59e961,'fn':_0x1d10b0[_0x59e961],'args':_0x581056[_0x1307aa]});}return _0x1d2582(_0x1ec7bc);}['executeOpTree'](_0x5c3050){const _0x32e8aa=_0x150b74;for(const _0x5d7b14 of _0x5c3050){const _0x8ab5e0=_0x5d7b14['fn'],_0x1c9195=_0x5d7b14[_0x32e8aa(0x8ee)],_0x3c7c4b=_0x5d7b14['args'];switch(_0x1c9195|0x0){case _0x41bc5e[_0x32e8aa(0x13d)][_0x32e8aa(0x741)]:this[_0x32e8aa(0x741)]();break;case _0x41bc5e[_0x32e8aa(0x13d)]['dependency']:break;case _0x41bc5e[_0x32e8aa(0x13d)]['setLeading']:this[_0x32e8aa(0x904)](_0x3c7c4b);break;case _0x41bc5e[_0x32e8aa(0x13d)]['setLeadingMoveText']:this['setLeadingMoveText'](_0x3c7c4b[0x0],_0x3c7c4b[0x1]);break;case _0x41bc5e[_0x32e8aa(0x13d)][_0x32e8aa(0x952)]:this[_0x32e8aa(0x952)](_0x3c7c4b);break;case _0x41bc5e[_0x32e8aa(0x13d)][_0x32e8aa(0x610)]:this['showText'](_0x3c7c4b[0x0]);break;case _0x41bc5e[_0x32e8aa(0x13d)][_0x32e8aa(0x832)]:this[_0x32e8aa(0x610)](_0x3c7c4b[0x0]);break;case _0x41bc5e[_0x32e8aa(0x13d)][_0x32e8aa(0x50b)]:this[_0x32e8aa(0x50b)]();break;case _0x41bc5e['OPS'][_0x32e8aa(0x79d)]:this['moveText'](_0x3c7c4b[0x0],_0x3c7c4b[0x1]);break;case _0x41bc5e[_0x32e8aa(0x13d)][_0x32e8aa(0x449)]:this[_0x32e8aa(0x449)](_0x3c7c4b[0x0]);break;case _0x41bc5e[_0x32e8aa(0x13d)]['setWordSpacing']:this[_0x32e8aa(0x17e)](_0x3c7c4b[0x0]);break;case _0x41bc5e[_0x32e8aa(0x13d)][_0x32e8aa(0x175)]:this[_0x32e8aa(0x175)](_0x3c7c4b[0x0]);break;case _0x41bc5e[_0x32e8aa(0x13d)][_0x32e8aa(0x92e)]:this[_0x32e8aa(0x92e)](_0x3c7c4b[0x0],_0x3c7c4b[0x1],_0x3c7c4b[0x2],_0x3c7c4b[0x3],_0x3c7c4b[0x4],_0x3c7c4b[0x5]);break;case _0x41bc5e[_0x32e8aa(0x13d)]['setTextRise']:this[_0x32e8aa(0x178)](_0x3c7c4b[0x0]);break;case _0x41bc5e[_0x32e8aa(0x13d)][_0x32e8aa(0x69e)]:this[_0x32e8aa(0x69e)](_0x3c7c4b[0x0]);break;case _0x41bc5e[_0x32e8aa(0x13d)][_0x32e8aa(0x671)]:this[_0x32e8aa(0x671)](_0x3c7c4b[0x0]);break;case _0x41bc5e['OPS'][_0x32e8aa(0x597)]:this[_0x32e8aa(0x597)](_0x3c7c4b[0x0]);break;case _0x41bc5e[_0x32e8aa(0x13d)][_0x32e8aa(0x571)]:this['setLineCap'](_0x3c7c4b[0x0]);break;case _0x41bc5e[_0x32e8aa(0x13d)][_0x32e8aa(0x8ea)]:this[_0x32e8aa(0x8ea)](_0x3c7c4b[0x0]);break;case _0x41bc5e[_0x32e8aa(0x13d)][_0x32e8aa(0x9a9)]:this[_0x32e8aa(0x9a9)](_0x3c7c4b[0x0],_0x3c7c4b[0x1],_0x3c7c4b[0x2]);break;case _0x41bc5e[_0x32e8aa(0x13d)][_0x32e8aa(0x530)]:this[_0x32e8aa(0x530)](_0x3c7c4b[0x0],_0x3c7c4b[0x1],_0x3c7c4b[0x2]);break;case _0x41bc5e[_0x32e8aa(0x13d)][_0x32e8aa(0x4de)]:this[_0x32e8aa(0x4de)](_0x3c7c4b);break;case _0x41bc5e[_0x32e8aa(0x13d)][_0x32e8aa(0x463)]:this[_0x32e8aa(0x463)](_0x3c7c4b);break;case _0x41bc5e[_0x32e8aa(0x13d)]['shadingFill']:this[_0x32e8aa(0x6c2)](_0x3c7c4b[0x0]);break;case _0x41bc5e[_0x32e8aa(0x13d)][_0x32e8aa(0x789)]:this['setDash'](_0x3c7c4b[0x0],_0x3c7c4b[0x1]);break;case _0x41bc5e[_0x32e8aa(0x13d)][_0x32e8aa(0x9fb)]:this[_0x32e8aa(0x9fb)](_0x3c7c4b[0x0]);break;case _0x41bc5e[_0x32e8aa(0x13d)][_0x32e8aa(0x17f)]:this['setFlatness'](_0x3c7c4b[0x0]);break;case _0x41bc5e[_0x32e8aa(0x13d)]['setGState']:this['setGState'](_0x3c7c4b[0x0]);break;case _0x41bc5e[_0x32e8aa(0x13d)][_0x32e8aa(0x923)]:this['fill']();break;case _0x41bc5e['OPS'][_0x32e8aa(0x52f)]:this[_0x32e8aa(0x52f)]();break;case _0x41bc5e[_0x32e8aa(0x13d)][_0x32e8aa(0x849)]:this[_0x32e8aa(0x849)]();break;case _0x41bc5e['OPS'][_0x32e8aa(0x207)]:this[_0x32e8aa(0x207)]();break;case _0x41bc5e[_0x32e8aa(0x13d)]['eoFillStroke']:this[_0x32e8aa(0xe4)]();break;case _0x41bc5e[_0x32e8aa(0x13d)][_0x32e8aa(0x8b0)]:this[_0x32e8aa(0x8b0)](_0x32e8aa(0x57b));break;case _0x41bc5e[_0x32e8aa(0x13d)][_0x32e8aa(0x525)]:this['clip'](_0x32e8aa(0x70d));break;case _0x41bc5e['OPS'][_0x32e8aa(0x3e4)]:this[_0x32e8aa(0x3e4)]();break;case _0x41bc5e[_0x32e8aa(0x13d)][_0x32e8aa(0x845)]:this['paintImageXObject'](_0x3c7c4b[0x0]);break;case _0x41bc5e[_0x32e8aa(0x13d)]['paintInlineImageXObject']:this[_0x32e8aa(0x661)](_0x3c7c4b[0x0]);break;case _0x41bc5e[_0x32e8aa(0x13d)][_0x32e8aa(0x94b)]:this[_0x32e8aa(0x94b)](_0x3c7c4b[0x0]);break;case _0x41bc5e[_0x32e8aa(0x13d)]['paintFormXObjectBegin']:this['paintFormXObjectBegin'](_0x3c7c4b[0x0],_0x3c7c4b[0x1]);break;case _0x41bc5e[_0x32e8aa(0x13d)][_0x32e8aa(0x439)]:this[_0x32e8aa(0x439)]();break;case _0x41bc5e[_0x32e8aa(0x13d)][_0x32e8aa(0x576)]:this[_0x32e8aa(0x576)]();break;case _0x41bc5e[_0x32e8aa(0x13d)][_0x32e8aa(0x316)]:this['closeStroke']();break;case _0x41bc5e[_0x32e8aa(0x13d)][_0x32e8aa(0x188)]:this['closeFillStroke']();break;case _0x41bc5e['OPS']['closeEOFillStroke']:this[_0x32e8aa(0x7f8)]();break;case _0x41bc5e[_0x32e8aa(0x13d)][_0x32e8aa(0x118)]:this[_0x32e8aa(0x118)]();break;case _0x41bc5e[_0x32e8aa(0x13d)][_0x32e8aa(0x5dd)]:this[_0x32e8aa(0x5dd)](_0x3c7c4b[0x0],_0x3c7c4b[0x1],_0x3c7c4b[0x2],_0x3c7c4b[0x3],_0x3c7c4b[0x4],_0x3c7c4b[0x5]);break;case _0x41bc5e[_0x32e8aa(0x13d)][_0x32e8aa(0x90e)]:this[_0x32e8aa(0x90e)](_0x3c7c4b[0x0],_0x3c7c4b[0x1]);break;case _0x41bc5e[_0x32e8aa(0x13d)][_0x32e8aa(0x486)]:this[_0x32e8aa(0x486)]();break;case 0x5c:this['group'](_0x5d7b14[_0x32e8aa(0x44d)]);break;default:(0x0,_0x41bc5e[_0x32e8aa(0x472)])(_0x32e8aa(0x277)+_0x8ab5e0);break;}}}['setWordSpacing'](_0x57c3a3){const _0x2314b3=_0x150b74;this[_0x2314b3(0x835)][_0x2314b3(0x865)]=_0x57c3a3;}['setCharSpacing'](_0xb631c6){const _0x5a653d=_0x150b74;this['current'][_0x5a653d(0x329)]=_0xb631c6;}[_0x150b74(0x118)](){const _0x350f4c=_0x150b74;this[_0x350f4c(0x79d)](0x0,this[_0x350f4c(0x835)][_0x350f4c(0x7f7)]);}[_0x150b74(0x92e)](_0x3576d7,_0x24cdec,_0x22c38f,_0xefad42,_0x10537b,_0x299739){const _0x1b8fb9=_0x150b74,_0x5a36cd=this[_0x1b8fb9(0x835)];_0x5a36cd['textMatrix']=_0x5a36cd[_0x1b8fb9(0x7b4)]=[_0x3576d7,_0x24cdec,_0x22c38f,_0xefad42,_0x10537b,_0x299739],_0x5a36cd[_0x1b8fb9(0x67d)]=Math[_0x1b8fb9(0x8cb)](_0x3576d7,_0x24cdec),_0x5a36cd['x']=_0x5a36cd[_0x1b8fb9(0x196)]=0x0,_0x5a36cd['y']=_0x5a36cd['lineY']=0x0,_0x5a36cd[_0x1b8fb9(0x44a)]=[],_0x5a36cd[_0x1b8fb9(0x344)]=[],_0x5a36cd['tspan']=this['svgFactory'][_0x1b8fb9(0x400)](_0x1b8fb9(0x29b)),_0x5a36cd['tspan']['setAttributeNS'](null,_0x1b8fb9(0x757),_0x5a36cd[_0x1b8fb9(0x3a3)]),_0x5a36cd[_0x1b8fb9(0x688)]['setAttributeNS'](null,_0x1b8fb9(0x2e9),_0x48533e(_0x5a36cd[_0x1b8fb9(0x443)])+'px'),_0x5a36cd[_0x1b8fb9(0x688)][_0x1b8fb9(0x343)](null,'y',_0x48533e(-_0x5a36cd['y'])),_0x5a36cd[_0x1b8fb9(0x501)]=this['svgFactory']['createElement'](_0x1b8fb9(0x6a9)),_0x5a36cd[_0x1b8fb9(0x501)][_0x1b8fb9(0x45e)](_0x5a36cd['tspan']);}['beginText'](){const _0x77eb32=_0x150b74,_0x35cf20=this[_0x77eb32(0x835)];_0x35cf20['x']=_0x35cf20['lineX']=0x0,_0x35cf20['y']=_0x35cf20[_0x77eb32(0x220)]=0x0,_0x35cf20[_0x77eb32(0x5c2)]=_0x41bc5e[_0x77eb32(0x2d6)],_0x35cf20[_0x77eb32(0x7b4)]=_0x41bc5e[_0x77eb32(0x2d6)],_0x35cf20['textMatrixScale']=0x1,_0x35cf20[_0x77eb32(0x688)]=this[_0x77eb32(0x385)][_0x77eb32(0x400)](_0x77eb32(0x29b)),_0x35cf20[_0x77eb32(0x501)]=this[_0x77eb32(0x385)][_0x77eb32(0x400)](_0x77eb32(0x6a9)),_0x35cf20['txtgrp']=this['svgFactory']['createElement'](_0x77eb32(0x80a)),_0x35cf20['xcoords']=[],_0x35cf20['ycoords']=[];}[_0x150b74(0x79d)](_0x1aa0eb,_0x56bdc6){const _0x4f48b8=_0x150b74,_0x1988ad=this['current'];_0x1988ad['x']=_0x1988ad[_0x4f48b8(0x196)]+=_0x1aa0eb,_0x1988ad['y']=_0x1988ad[_0x4f48b8(0x220)]+=_0x56bdc6,_0x1988ad[_0x4f48b8(0x44a)]=[],_0x1988ad['ycoords']=[],_0x1988ad['tspan']=this[_0x4f48b8(0x385)]['createElement'](_0x4f48b8(0x29b)),_0x1988ad[_0x4f48b8(0x688)][_0x4f48b8(0x343)](null,_0x4f48b8(0x757),_0x1988ad['fontFamily']),_0x1988ad['tspan'][_0x4f48b8(0x343)](null,_0x4f48b8(0x2e9),_0x48533e(_0x1988ad['fontSize'])+'px'),_0x1988ad[_0x4f48b8(0x688)][_0x4f48b8(0x343)](null,'y',_0x48533e(-_0x1988ad['y']));}[_0x150b74(0x610)](_0x1c6836){const _0x38db64=_0x150b74,_0xe333f5=this[_0x38db64(0x835)],_0x3e12ed=_0xe333f5[_0x38db64(0x59d)],_0x392a79=_0xe333f5[_0x38db64(0x443)];if(_0x392a79===0x0)return;const _0x50e404=_0xe333f5[_0x38db64(0x94d)],_0x6392ed=_0xe333f5[_0x38db64(0x329)],_0x4919e5=_0xe333f5[_0x38db64(0x865)],_0x4dbbb2=_0xe333f5[_0x38db64(0x896)],_0x541ea3=_0xe333f5[_0x38db64(0x494)]*_0x4dbbb2,_0x2ad435=_0x3e12ed[_0x38db64(0x58b)],_0x38ea54=_0x2ad435?0x1:-0x1,_0x3d9901=_0x3e12ed[_0x38db64(0x785)],_0x1d8175=_0x392a79*_0xe333f5['fontMatrix'][0x0];let _0x34274f=0x0;for(const _0x45e3d9 of _0x1c6836){if(_0x45e3d9===null){_0x34274f+=_0x4dbbb2*_0x4919e5;continue;}else{if(typeof _0x45e3d9===_0x38db64(0x454)){_0x34274f+=_0x38ea54*_0x45e3d9*_0x392a79/0x3e8;continue;}}const _0x1c3d5f=(_0x45e3d9[_0x38db64(0x708)]?_0x4919e5:0x0)+_0x6392ed,_0x5b67be=_0x45e3d9[_0x38db64(0x74e)];let _0x398822,_0x3bcb02,_0x56f5df=_0x45e3d9['width'];if(_0x2ad435){let _0x2b175b;const _0x1df98e=_0x45e3d9['vmetric']||_0x3d9901;_0x2b175b=_0x45e3d9[_0x38db64(0x8f6)]?_0x1df98e[0x1]:_0x56f5df*0.5,_0x2b175b=-_0x2b175b*_0x1d8175;const _0x2deef2=_0x1df98e[0x2]*_0x1d8175;_0x56f5df=_0x1df98e?-_0x1df98e[0x0]:_0x56f5df,_0x398822=_0x2b175b/_0x50e404,_0x3bcb02=(_0x34274f+_0x2deef2)/_0x50e404;}else _0x398822=_0x34274f/_0x50e404,_0x3bcb02=0x0;if(_0x45e3d9[_0x38db64(0x1b6)]||_0x3e12ed[_0x38db64(0x39b)])_0xe333f5[_0x38db64(0x44a)][_0x38db64(0x7d6)](_0xe333f5['x']+_0x398822),_0x2ad435&&_0xe333f5[_0x38db64(0x344)][_0x38db64(0x7d6)](-_0xe333f5['y']+_0x3bcb02),_0xe333f5[_0x38db64(0x688)][_0x38db64(0x8a9)]+=_0x5b67be;else{}let _0x4f5e27;_0x2ad435?_0x4f5e27=_0x56f5df*_0x1d8175-_0x1c3d5f*_0x4dbbb2:_0x4f5e27=_0x56f5df*_0x1d8175+_0x1c3d5f*_0x4dbbb2,_0x34274f+=_0x4f5e27;}_0xe333f5[_0x38db64(0x688)][_0x38db64(0x343)](null,'x',_0xe333f5[_0x38db64(0x44a)][_0x38db64(0x7ec)](_0x48533e)[_0x38db64(0x334)]('\x20'));_0x2ad435?_0xe333f5[_0x38db64(0x688)][_0x38db64(0x343)](null,'y',_0xe333f5[_0x38db64(0x344)][_0x38db64(0x7ec)](_0x48533e)[_0x38db64(0x334)]('\x20')):_0xe333f5['tspan'][_0x38db64(0x343)](null,'y',_0x48533e(-_0xe333f5['y']));_0x2ad435?_0xe333f5['y']-=_0x34274f:_0xe333f5['x']+=_0x34274f*_0x541ea3;_0xe333f5[_0x38db64(0x688)][_0x38db64(0x343)](null,_0x38db64(0x757),_0xe333f5['fontFamily']),_0xe333f5['tspan'][_0x38db64(0x343)](null,_0x38db64(0x2e9),_0x48533e(_0xe333f5['fontSize'])+'px');_0xe333f5[_0x38db64(0x403)]!==_0x517386['fontStyle']&&_0xe333f5[_0x38db64(0x688)][_0x38db64(0x343)](null,_0x38db64(0x8db),_0xe333f5[_0x38db64(0x403)]);_0xe333f5[_0x38db64(0x5f0)]!==_0x517386[_0x38db64(0x5f0)]&&_0xe333f5[_0x38db64(0x688)][_0x38db64(0x343)](null,_0x38db64(0x45f),_0xe333f5[_0x38db64(0x5f0)]);const _0xfccc21=_0xe333f5['textRenderingMode']&_0x41bc5e[_0x38db64(0x38b)][_0x38db64(0x724)];if(_0xfccc21===_0x41bc5e[_0x38db64(0x38b)][_0x38db64(0x61e)]||_0xfccc21===_0x41bc5e['TextRenderingMode'][_0x38db64(0x37d)])_0xe333f5['fillColor']!==_0x517386['fillColor']&&_0xe333f5['tspan'][_0x38db64(0x343)](null,'fill',_0xe333f5[_0x38db64(0x631)]),_0xe333f5['fillAlpha']<0x1&&_0xe333f5[_0x38db64(0x688)][_0x38db64(0x343)](null,_0x38db64(0x3de),_0xe333f5[_0x38db64(0x587)]);else _0xe333f5[_0x38db64(0x743)]===_0x41bc5e[_0x38db64(0x38b)]['ADD_TO_PATH']?_0xe333f5[_0x38db64(0x688)]['setAttributeNS'](null,_0x38db64(0x923),_0x38db64(0x910)):_0xe333f5['tspan']['setAttributeNS'](null,_0x38db64(0x923),'none');if(_0xfccc21===_0x41bc5e[_0x38db64(0x38b)][_0x38db64(0x607)]||_0xfccc21===_0x41bc5e[_0x38db64(0x38b)]['FILL_STROKE']){const _0x30196a=0x1/(_0xe333f5[_0x38db64(0x67d)]||0x1);this['_setStrokeAttributes'](_0xe333f5['tspan'],_0x30196a);}let _0x2ee22e=_0xe333f5[_0x38db64(0x5c2)];_0xe333f5[_0x38db64(0x505)]!==0x0&&(_0x2ee22e=_0x2ee22e[_0x38db64(0x80c)](),_0x2ee22e[0x5]+=_0xe333f5['textRise']),_0xe333f5[_0x38db64(0x501)]['setAttributeNS'](null,_0x38db64(0x5dd),_0x5473ca(_0x2ee22e)+_0x38db64(0x453)+_0x48533e(_0x541ea3)+_0x38db64(0x358)),_0xe333f5[_0x38db64(0x501)]['setAttributeNS'](_0x1af505,'xml:space',_0x38db64(0x90d)),_0xe333f5[_0x38db64(0x501)][_0x38db64(0x45e)](_0xe333f5[_0x38db64(0x688)]),_0xe333f5['txtgrp'][_0x38db64(0x45e)](_0xe333f5[_0x38db64(0x501)]),this[_0x38db64(0x409)]()[_0x38db64(0x45e)](_0xe333f5[_0x38db64(0x501)]);}['setLeadingMoveText'](_0x46ca17,_0x110859){const _0x529b79=_0x150b74;this[_0x529b79(0x904)](-_0x110859),this[_0x529b79(0x79d)](_0x46ca17,_0x110859);}['addFontStyle'](_0x5a377b){const _0x533fef=_0x150b74;if(!_0x5a377b[_0x533fef(0x41b)])throw new Error('addFontStyle:\x20No\x20font\x20data\x20available,\x20'+_0x533fef(0x332));!this['cssStyle']&&(this[_0x533fef(0x1cf)]=this['svgFactory'][_0x533fef(0x400)](_0x533fef(0x944)),this[_0x533fef(0x1cf)][_0x533fef(0x343)](null,_0x533fef(0x9fd),_0x533fef(0x119)),this[_0x533fef(0x487)][_0x533fef(0x45e)](this[_0x533fef(0x1cf)]));const _0x565c33=_0x1e6a71(_0x5a377b[_0x533fef(0x41b)],_0x5a377b['mimetype'],this[_0x533fef(0xd7)]);this[_0x533fef(0x1cf)][_0x533fef(0x8a9)]+='@font-face\x20{\x20font-family:\x20\x22'+_0x5a377b[_0x533fef(0x625)]+'\x22;'+('\x20src:\x20url('+_0x565c33+_0x533fef(0x229));}[_0x150b74(0x952)](_0x5770d0){const _0x9bd323=_0x150b74,_0x4d3cf8=this['current'],_0x461a3f=this[_0x9bd323(0x53b)]['get'](_0x5770d0[0x0]);let _0x4dd267=_0x5770d0[0x1];_0x4d3cf8[_0x9bd323(0x59d)]=_0x461a3f;this['embedFonts']&&!_0x461a3f[_0x9bd323(0x39b)]&&!this[_0x9bd323(0xc3)][_0x461a3f[_0x9bd323(0x625)]]&&(this[_0x9bd323(0x98a)](_0x461a3f),this['embeddedFonts'][_0x461a3f[_0x9bd323(0x625)]]=_0x461a3f);_0x4d3cf8[_0x9bd323(0x4f3)]=_0x461a3f[_0x9bd323(0x4f3)]||_0x41bc5e['FONT_IDENTITY_MATRIX'];let _0x126670=_0x9bd323(0x102);if(_0x461a3f[_0x9bd323(0x3cc)])_0x126670=_0x9bd323(0x10b);else _0x461a3f['bold']&&(_0x126670='bold');const _0x4e006b=_0x461a3f['italic']?'italic':_0x9bd323(0x102);_0x4dd267<0x0?(_0x4dd267=-_0x4dd267,_0x4d3cf8[_0x9bd323(0x896)]=-0x1):_0x4d3cf8[_0x9bd323(0x896)]=0x1,_0x4d3cf8[_0x9bd323(0x443)]=_0x4dd267,_0x4d3cf8['fontFamily']=_0x461a3f['loadedName'],_0x4d3cf8[_0x9bd323(0x5f0)]=_0x126670,_0x4d3cf8[_0x9bd323(0x403)]=_0x4e006b,_0x4d3cf8[_0x9bd323(0x688)]=this[_0x9bd323(0x385)][_0x9bd323(0x400)](_0x9bd323(0x29b)),_0x4d3cf8[_0x9bd323(0x688)]['setAttributeNS'](null,'y',_0x48533e(-_0x4d3cf8['y'])),_0x4d3cf8[_0x9bd323(0x44a)]=[],_0x4d3cf8[_0x9bd323(0x344)]=[];}['endText'](){const _0x3e8803=_0x150b74,_0x262444=this['current'];_0x262444['textRenderingMode']&_0x41bc5e[_0x3e8803(0x38b)][_0x3e8803(0x830)]&&_0x262444['txtElement']?.['hasChildNodes']()&&(_0x262444['element']=_0x262444[_0x3e8803(0x501)],this[_0x3e8803(0x8b0)](_0x3e8803(0x57b)),this[_0x3e8803(0x486)]());}[_0x150b74(0x671)](_0x525b9b){_0x525b9b>0x0&&(this['current']['lineWidth']=_0x525b9b);}['setLineCap'](_0xb50dec){const _0xa653ae=_0x150b74;this[_0xa653ae(0x835)][_0xa653ae(0xc4)]=_0x2720e0[_0xb50dec];}[_0x150b74(0x597)](_0x34cc9a){const _0xf8d29e=_0x150b74;this[_0xf8d29e(0x835)][_0xf8d29e(0x1f4)]=_0x4a998d[_0x34cc9a];}['setMiterLimit'](_0x576f24){const _0x2839b3=_0x150b74;this['current'][_0x2839b3(0x7d2)]=_0x576f24;}['setStrokeAlpha'](_0x23d9f1){const _0xd99c83=_0x150b74;this[_0xd99c83(0x835)][_0xd99c83(0x2ca)]=_0x23d9f1;}[_0x150b74(0x530)](_0x34ee2e,_0x3937b4,_0x7097cc){const _0x4c6aef=_0x150b74;this[_0x4c6aef(0x835)]['strokeColor']=_0x41bc5e[_0x4c6aef(0x5d7)]['makeHexColor'](_0x34ee2e,_0x3937b4,_0x7097cc);}[_0x150b74(0x15d)](_0x42c856){const _0x13362c=_0x150b74;this[_0x13362c(0x835)][_0x13362c(0x587)]=_0x42c856;}[_0x150b74(0x9a9)](_0x3f1a9d,_0x369202,_0x5cce81){const _0x24243b=_0x150b74;this[_0x24243b(0x835)][_0x24243b(0x631)]=_0x41bc5e[_0x24243b(0x5d7)][_0x24243b(0x86a)](_0x3f1a9d,_0x369202,_0x5cce81),this['current'][_0x24243b(0x688)]=this[_0x24243b(0x385)][_0x24243b(0x400)](_0x24243b(0x29b)),this['current'][_0x24243b(0x44a)]=[],this[_0x24243b(0x835)][_0x24243b(0x344)]=[];}[_0x150b74(0x4de)](_0x377fad){const _0x356a50=_0x150b74;this[_0x356a50(0x835)]['strokeColor']=this[_0x356a50(0x3d2)](_0x377fad);}[_0x150b74(0x463)](_0x5357e4){const _0x10bbdc=_0x150b74;this[_0x10bbdc(0x835)]['fillColor']=this['_makeColorN_Pattern'](_0x5357e4);}[_0x150b74(0x6c2)](_0x5780ee){const _0x3268a6=_0x150b74,{width:_0xf2aa83,height:_0x2921c7}=this[_0x3268a6(0x502)],_0x469c57=_0x41bc5e['Util'][_0x3268a6(0x8f2)](this[_0x3268a6(0x516)]),[_0x4f1583,_0x55c157,_0x4d5d2c,_0x2e61c9]=_0x41bc5e[_0x3268a6(0x5d7)][_0x3268a6(0x847)]([0x0,0x0,_0xf2aa83,_0x2921c7],_0x469c57),_0x483a49=this['svgFactory'][_0x3268a6(0x400)](_0x3268a6(0x20f));_0x483a49['setAttributeNS'](null,'x',_0x4f1583),_0x483a49[_0x3268a6(0x343)](null,'y',_0x55c157),_0x483a49[_0x3268a6(0x343)](null,_0x3268a6(0x98b),_0x4d5d2c-_0x4f1583),_0x483a49[_0x3268a6(0x343)](null,_0x3268a6(0x999),_0x2e61c9-_0x55c157),_0x483a49[_0x3268a6(0x343)](null,_0x3268a6(0x923),this['_makeShadingPattern'](_0x5780ee)),this['current'][_0x3268a6(0x587)]<0x1&&_0x483a49[_0x3268a6(0x343)](null,_0x3268a6(0x3de),this['current'][_0x3268a6(0x587)]),this['_ensureTransformGroup']()[_0x3268a6(0x45e)](_0x483a49);}[_0x150b74(0x3d2)](_0x61f244){const _0x115026=_0x150b74;if(_0x61f244[0x0]===_0x115026(0x5ec))return this['_makeTilingPattern'](_0x61f244);return this[_0x115026(0x683)](_0x61f244);}['_makeTilingPattern'](_0x27c339){const _0x15b785=_0x150b74,_0x443fd2=_0x27c339[0x1],_0x16a548=_0x27c339[0x2],_0x23a623=_0x27c339[0x3]||_0x41bc5e[_0x15b785(0x2d6)],[_0x2d498a,_0x2f7db7,_0x504dc0,_0x94111c]=_0x27c339[0x4],_0x4b3623=_0x27c339[0x5],_0x563163=_0x27c339[0x6],_0x53536f=_0x27c339[0x7],_0x5a5bde=_0x15b785(0x68c)+_0x491b93++,[_0x1e1cb0,_0x20879a,_0x14b3eb,_0x213dba]=_0x41bc5e[_0x15b785(0x5d7)][_0x15b785(0x3da)]([..._0x41bc5e['Util'][_0x15b785(0x8a2)]([_0x2d498a,_0x2f7db7],_0x23a623),..._0x41bc5e['Util'][_0x15b785(0x8a2)]([_0x504dc0,_0x94111c],_0x23a623)]),[_0x3d41c4,_0x572d60]=_0x41bc5e[_0x15b785(0x5d7)][_0x15b785(0x424)](_0x23a623),_0x355c50=_0x4b3623*_0x3d41c4,_0x5bcb5b=_0x563163*_0x572d60,_0x15015e=this[_0x15b785(0x385)]['createElement'](_0x15b785(0x314));_0x15015e[_0x15b785(0x343)](null,'id',_0x5a5bde),_0x15015e['setAttributeNS'](null,_0x15b785(0x195),_0x15b785(0x36d)),_0x15015e['setAttributeNS'](null,_0x15b785(0x98b),_0x355c50),_0x15015e[_0x15b785(0x343)](null,_0x15b785(0x999),_0x5bcb5b),_0x15015e[_0x15b785(0x343)](null,'x',''+_0x1e1cb0),_0x15015e[_0x15b785(0x343)](null,'y',''+_0x20879a);const _0x47aa3f=this[_0x15b785(0x286)],_0x2d3ae2=this[_0x15b785(0x516)],_0x252689=this['current'][_0x15b785(0x631)],_0x4a41ba=this[_0x15b785(0x835)][_0x15b785(0x745)],_0x15bf6a=this['svgFactory'][_0x15b785(0x77c)](_0x14b3eb-_0x1e1cb0,_0x213dba-_0x20879a);this[_0x15b785(0x286)]=_0x15bf6a,this[_0x15b785(0x516)]=_0x23a623;if(_0x53536f===0x2){const _0x4f9f44=_0x41bc5e['Util']['makeHexColor'](..._0x443fd2);this[_0x15b785(0x835)][_0x15b785(0x631)]=_0x4f9f44,this[_0x15b785(0x835)]['strokeColor']=_0x4f9f44;}return this['executeOpTree'](this[_0x15b785(0x873)](_0x16a548)),this[_0x15b785(0x286)]=_0x47aa3f,this[_0x15b785(0x516)]=_0x2d3ae2,this[_0x15b785(0x835)][_0x15b785(0x631)]=_0x252689,this[_0x15b785(0x835)]['strokeColor']=_0x4a41ba,_0x15015e['append'](_0x15bf6a['childNodes'][0x0]),this[_0x15b785(0x487)][_0x15b785(0x45e)](_0x15015e),_0x15b785(0x475)+_0x5a5bde+')';}[_0x150b74(0x683)](_0x5b685d){const _0x164138=_0x150b74;typeof _0x5b685d===_0x164138(0x8cd)&&(_0x5b685d=this['objs'][_0x164138(0x8c4)](_0x5b685d));switch(_0x5b685d[0x0]){case'RadialAxial':const _0x321570=_0x164138(0x68c)+_0x491b93++;var _0x3e18f0=_0x5b685d[0x3];let _0x5ce422;switch(_0x5b685d[0x1]){case'axial':var _0x5548c4=_0x5b685d[0x4],_0x4919f3=_0x5b685d[0x5];_0x5b685d[0x3]&&_0x5b685d[0x3][_0x164138(0x557)]===0x3&&typeof _0x5b685d[0x3][0x0]===_0x164138(0x454)&&(_0x5548c4=_0x5b685d[0x3],_0x4919f3=_0x5b685d[0x4]);_0x5ce422=this[_0x164138(0x385)][_0x164138(0x400)]('svg:linearGradient'),_0x5ce422[_0x164138(0x343)](null,'id',_0x321570),_0x5ce422[_0x164138(0x343)](null,'gradientUnits',_0x164138(0x36d)),_0x5ce422[_0x164138(0x343)](null,'x1',_0x5548c4[0x0]),_0x5ce422[_0x164138(0x343)](null,'y1',_0x5548c4[0x1]),_0x5ce422['setAttributeNS'](null,'x2',_0x4919f3[0x0]),_0x5ce422[_0x164138(0x343)](null,'y2',_0x4919f3[0x1]);break;case _0x164138(0x73a):const _0x219cf9=_0x5b685d[0x4],_0xb67a67=_0x5b685d[0x5],_0x5f6be2=_0x5b685d[0x6],_0x35bc84=_0x5b685d[0x7];_0x5ce422=this[_0x164138(0x385)][_0x164138(0x400)](_0x164138(0x5f2)),_0x5ce422[_0x164138(0x343)](null,'id',_0x321570),_0x5ce422['setAttributeNS'](null,'gradientUnits',_0x164138(0x36d)),_0x5ce422[_0x164138(0x343)](null,'cx',_0xb67a67[0x0]),_0x5ce422[_0x164138(0x343)](null,'cy',_0xb67a67[0x1]),_0x5ce422[_0x164138(0x343)](null,'r',_0x35bc84),_0x5ce422['setAttributeNS'](null,'fx',_0x219cf9[0x0]),_0x5ce422[_0x164138(0x343)](null,'fy',_0x219cf9[0x1]),_0x5ce422['setAttributeNS'](null,'fr',_0x5f6be2);break;default:throw new Error(_0x164138(0x41e)+_0x5b685d[0x1]);}for(const _0x4b0e30 of _0x3e18f0){const _0x879410=this['svgFactory'][_0x164138(0x400)](_0x164138(0x5a4));_0x879410[_0x164138(0x343)](null,'offset',_0x4b0e30[0x0]),_0x879410['setAttributeNS'](null,_0x164138(0x8ad),_0x4b0e30[0x1]),_0x5ce422['append'](_0x879410);}this[_0x164138(0x487)]['append'](_0x5ce422);return _0x164138(0x475)+_0x321570+')';case _0x164138(0xa08):(0x0,_0x41bc5e[_0x164138(0x472)])(_0x164138(0x85c));return null;case _0x164138(0x9fa):return _0x164138(0x989);default:throw new Error('Unknown\x20IR\x20type:\x20'+_0x5b685d[0x0]);}}[_0x150b74(0x789)](_0x4c10f4,_0x4a4286){const _0x4e94d8=_0x150b74;this['current'][_0x4e94d8(0x5ba)]=_0x4c10f4,this[_0x4e94d8(0x835)]['dashPhase']=_0x4a4286;}[_0x150b74(0x90e)](_0x5f2430,_0x3f8ba0){const _0x10118e=_0x150b74,_0x3b41d9=this[_0x10118e(0x835)];let _0x2183c2=_0x3b41d9['x'],_0x49c806=_0x3b41d9['y'],_0x2bc0e8=[],_0x3e6fdd=0x0;for(const _0x14d262 of _0x5f2430){switch(_0x14d262|0x0){case _0x41bc5e[_0x10118e(0x13d)][_0x10118e(0x497)]:_0x2183c2=_0x3f8ba0[_0x3e6fdd++],_0x49c806=_0x3f8ba0[_0x3e6fdd++];const _0x4c22a7=_0x3f8ba0[_0x3e6fdd++],_0x1f3204=_0x3f8ba0[_0x3e6fdd++],_0x4311dc=_0x2183c2+_0x4c22a7,_0x1502bf=_0x49c806+_0x1f3204;_0x2bc0e8['push']('M',_0x48533e(_0x2183c2),_0x48533e(_0x49c806),'L',_0x48533e(_0x4311dc),_0x48533e(_0x49c806),'L',_0x48533e(_0x4311dc),_0x48533e(_0x1502bf),'L',_0x48533e(_0x2183c2),_0x48533e(_0x1502bf),'Z');break;case _0x41bc5e[_0x10118e(0x13d)][_0x10118e(0x208)]:_0x2183c2=_0x3f8ba0[_0x3e6fdd++],_0x49c806=_0x3f8ba0[_0x3e6fdd++],_0x2bc0e8['push']('M',_0x48533e(_0x2183c2),_0x48533e(_0x49c806));break;case _0x41bc5e[_0x10118e(0x13d)][_0x10118e(0x39f)]:_0x2183c2=_0x3f8ba0[_0x3e6fdd++],_0x49c806=_0x3f8ba0[_0x3e6fdd++],_0x2bc0e8[_0x10118e(0x7d6)]('L',_0x48533e(_0x2183c2),_0x48533e(_0x49c806));break;case _0x41bc5e[_0x10118e(0x13d)][_0x10118e(0x2ef)]:_0x2183c2=_0x3f8ba0[_0x3e6fdd+0x4],_0x49c806=_0x3f8ba0[_0x3e6fdd+0x5],_0x2bc0e8[_0x10118e(0x7d6)]('C',_0x48533e(_0x3f8ba0[_0x3e6fdd]),_0x48533e(_0x3f8ba0[_0x3e6fdd+0x1]),_0x48533e(_0x3f8ba0[_0x3e6fdd+0x2]),_0x48533e(_0x3f8ba0[_0x3e6fdd+0x3]),_0x48533e(_0x2183c2),_0x48533e(_0x49c806)),_0x3e6fdd+=0x6;break;case _0x41bc5e[_0x10118e(0x13d)]['curveTo2']:_0x2bc0e8['push']('C',_0x48533e(_0x2183c2),_0x48533e(_0x49c806),_0x48533e(_0x3f8ba0[_0x3e6fdd]),_0x48533e(_0x3f8ba0[_0x3e6fdd+0x1]),_0x48533e(_0x3f8ba0[_0x3e6fdd+0x2]),_0x48533e(_0x3f8ba0[_0x3e6fdd+0x3])),_0x2183c2=_0x3f8ba0[_0x3e6fdd+0x2],_0x49c806=_0x3f8ba0[_0x3e6fdd+0x3],_0x3e6fdd+=0x4;break;case _0x41bc5e[_0x10118e(0x13d)][_0x10118e(0x4c2)]:_0x2183c2=_0x3f8ba0[_0x3e6fdd+0x2],_0x49c806=_0x3f8ba0[_0x3e6fdd+0x3],_0x2bc0e8[_0x10118e(0x7d6)]('C',_0x48533e(_0x3f8ba0[_0x3e6fdd]),_0x48533e(_0x3f8ba0[_0x3e6fdd+0x1]),_0x48533e(_0x2183c2),_0x48533e(_0x49c806),_0x48533e(_0x2183c2),_0x48533e(_0x49c806)),_0x3e6fdd+=0x4;break;case _0x41bc5e[_0x10118e(0x13d)]['closePath']:_0x2bc0e8[_0x10118e(0x7d6)]('Z');break;}}_0x2bc0e8=_0x2bc0e8[_0x10118e(0x334)]('\x20'),_0x3b41d9['path']&&_0x5f2430[_0x10118e(0x557)]>0x0&&_0x5f2430[0x0]!==_0x41bc5e[_0x10118e(0x13d)][_0x10118e(0x497)]&&_0x5f2430[0x0]!==_0x41bc5e[_0x10118e(0x13d)]['moveTo']?_0x2bc0e8=_0x3b41d9['path'][_0x10118e(0x5f3)](null,'d')+_0x2bc0e8:(_0x3b41d9['path']=this[_0x10118e(0x385)][_0x10118e(0x400)](_0x10118e(0x8f9)),this[_0x10118e(0x409)]()[_0x10118e(0x45e)](_0x3b41d9[_0x10118e(0x987)])),_0x3b41d9[_0x10118e(0x987)]['setAttributeNS'](null,'d',_0x2bc0e8),_0x3b41d9[_0x10118e(0x987)]['setAttributeNS'](null,_0x10118e(0x923),_0x10118e(0x122)),_0x3b41d9['element']=_0x3b41d9[_0x10118e(0x987)],_0x3b41d9['setCurrentPoint'](_0x2183c2,_0x49c806);}['endPath'](){const _0x1f1ae7=_0x150b74,_0x30a1fa=this[_0x1f1ae7(0x835)];_0x30a1fa[_0x1f1ae7(0x987)]=null;if(!this[_0x1f1ae7(0x78f)])return;if(!_0x30a1fa[_0x1f1ae7(0x369)]){this[_0x1f1ae7(0x78f)]=null;return;}const _0xb45ad6='clippath'+_0x2ade60++,_0x4cdbb6=this[_0x1f1ae7(0x385)][_0x1f1ae7(0x400)](_0x1f1ae7(0x9e2));_0x4cdbb6[_0x1f1ae7(0x343)](null,'id',_0xb45ad6),_0x4cdbb6['setAttributeNS'](null,_0x1f1ae7(0x5dd),_0x5473ca(this[_0x1f1ae7(0x516)]));const _0x14f63c=_0x30a1fa[_0x1f1ae7(0x369)][_0x1f1ae7(0x4c9)](!![]);this[_0x1f1ae7(0x78f)]===_0x1f1ae7(0x70d)?_0x14f63c[_0x1f1ae7(0x343)](null,_0x1f1ae7(0x7ee),_0x1f1ae7(0x70d)):_0x14f63c[_0x1f1ae7(0x343)](null,'clip-rule',_0x1f1ae7(0x57b));this['pendingClip']=null,_0x4cdbb6[_0x1f1ae7(0x45e)](_0x14f63c),this[_0x1f1ae7(0x487)][_0x1f1ae7(0x45e)](_0x4cdbb6);if(_0x30a1fa[_0x1f1ae7(0x199)]){_0x30a1fa[_0x1f1ae7(0x8b2)]=null;for(const _0xc00948 of this[_0x1f1ae7(0x1ed)]){_0xc00948[_0x1f1ae7(0x8b2)]=null;}_0x4cdbb6[_0x1f1ae7(0x343)](null,_0x1f1ae7(0x45c),_0x30a1fa['activeClipUrl']);}_0x30a1fa[_0x1f1ae7(0x199)]=_0x1f1ae7(0x475)+_0xb45ad6+')',this[_0x1f1ae7(0x278)]=null;}['clip'](_0x1fb3a3){this['pendingClip']=_0x1fb3a3;}[_0x150b74(0x576)](){const _0x5de3fa=_0x150b74,_0x34e311=this[_0x5de3fa(0x835)];if(_0x34e311['path']){const _0xfb6a61=_0x34e311[_0x5de3fa(0x987)]['getAttributeNS'](null,'d')+'Z';_0x34e311[_0x5de3fa(0x987)][_0x5de3fa(0x343)](null,'d',_0xfb6a61);}}['setLeading'](_0x2654bf){const _0x4f275f=_0x150b74;this[_0x4f275f(0x835)][_0x4f275f(0x7f7)]=-_0x2654bf;}[_0x150b74(0x178)](_0x188046){const _0x3e3bfc=_0x150b74;this['current'][_0x3e3bfc(0x505)]=_0x188046;}[_0x150b74(0x69e)](_0x14a1a0){this['current']['textRenderingMode']=_0x14a1a0;}[_0x150b74(0x175)](_0x252a24){this['current']['textHScale']=_0x252a24/0x64;}['setRenderingIntent'](_0x367189){}['setFlatness'](_0x284b7c){}[_0x150b74(0x268)](_0x253314){const _0x32f85d=_0x150b74;for(const [_0x541a56,_0x48a239]of _0x253314){switch(_0x541a56){case'LW':this[_0x32f85d(0x671)](_0x48a239);break;case'LC':this['setLineCap'](_0x48a239);break;case'LJ':this[_0x32f85d(0x597)](_0x48a239);break;case'ML':this['setMiterLimit'](_0x48a239);break;case'D':this[_0x32f85d(0x789)](_0x48a239[0x0],_0x48a239[0x1]);break;case'RI':this[_0x32f85d(0x9fb)](_0x48a239);break;case'FL':this[_0x32f85d(0x17f)](_0x48a239);break;case _0x32f85d(0x538):this[_0x32f85d(0x952)](_0x48a239);break;case'CA':this[_0x32f85d(0x3be)](_0x48a239);break;case'ca':this['setFillAlpha'](_0x48a239);break;default:(0x0,_0x41bc5e[_0x32f85d(0x472)])(_0x32f85d(0x915)+_0x541a56);break;}}}[_0x150b74(0x923)](){const _0x95780=_0x150b74,_0x1fd917=this[_0x95780(0x835)];_0x1fd917[_0x95780(0x369)]&&(_0x1fd917[_0x95780(0x369)][_0x95780(0x343)](null,_0x95780(0x923),_0x1fd917[_0x95780(0x631)]),_0x1fd917[_0x95780(0x369)][_0x95780(0x343)](null,_0x95780(0x3de),_0x1fd917['fillAlpha']),this[_0x95780(0x486)]());}[_0x150b74(0x849)](){const _0x24faed=_0x150b74,_0x137e76=this[_0x24faed(0x835)];_0x137e76[_0x24faed(0x369)]&&(this[_0x24faed(0x47b)](_0x137e76[_0x24faed(0x369)]),_0x137e76[_0x24faed(0x369)][_0x24faed(0x343)](null,_0x24faed(0x923),_0x24faed(0x122)),this[_0x24faed(0x486)]());}['_setStrokeAttributes'](_0x4e6316){const _0x21cfdc=_0x150b74;let _0x10eabd=arguments[_0x21cfdc(0x557)]>0x1&&arguments[0x1]!==undefined?arguments[0x1]:0x1;const _0x3bde1a=this['current'];let _0x5d3cd4=_0x3bde1a[_0x21cfdc(0x5ba)];_0x10eabd!==0x1&&_0x5d3cd4[_0x21cfdc(0x557)]>0x0&&(_0x5d3cd4=_0x5d3cd4[_0x21cfdc(0x7ec)](function(_0x39c4a3){return _0x10eabd*_0x39c4a3;})),_0x4e6316[_0x21cfdc(0x343)](null,_0x21cfdc(0x849),_0x3bde1a['strokeColor']),_0x4e6316[_0x21cfdc(0x343)](null,_0x21cfdc(0x2ed),_0x3bde1a[_0x21cfdc(0x2ca)]),_0x4e6316[_0x21cfdc(0x343)](null,_0x21cfdc(0x5b8),_0x48533e(_0x3bde1a[_0x21cfdc(0x7d2)])),_0x4e6316[_0x21cfdc(0x343)](null,'stroke-linecap',_0x3bde1a[_0x21cfdc(0xc4)]),_0x4e6316['setAttributeNS'](null,'stroke-linejoin',_0x3bde1a[_0x21cfdc(0x1f4)]),_0x4e6316[_0x21cfdc(0x343)](null,_0x21cfdc(0x34e),_0x48533e(_0x10eabd*_0x3bde1a[_0x21cfdc(0x2ad)])+'px'),_0x4e6316[_0x21cfdc(0x343)](null,_0x21cfdc(0x96f),_0x5d3cd4[_0x21cfdc(0x7ec)](_0x48533e)[_0x21cfdc(0x334)]('\x20')),_0x4e6316[_0x21cfdc(0x343)](null,_0x21cfdc(0x754),_0x48533e(_0x10eabd*_0x3bde1a['dashPhase'])+'px');}[_0x150b74(0x52f)](){const _0x23734e=_0x150b74;this[_0x23734e(0x835)][_0x23734e(0x369)]?.[_0x23734e(0x343)](null,_0x23734e(0x389),_0x23734e(0x70d)),this['fill']();}['fillStroke'](){const _0x4ee26e=_0x150b74;this[_0x4ee26e(0x849)](),this[_0x4ee26e(0x923)]();}[_0x150b74(0xe4)](){const _0xaa9674=_0x150b74;this['current'][_0xaa9674(0x369)]?.[_0xaa9674(0x343)](null,_0xaa9674(0x389),_0xaa9674(0x70d)),this['fillStroke']();}['closeStroke'](){const _0x281e34=_0x150b74;this[_0x281e34(0x576)](),this['stroke']();}[_0x150b74(0x188)](){const _0x13f1a8=_0x150b74;this[_0x13f1a8(0x576)](),this[_0x13f1a8(0x207)]();}['closeEOFillStroke'](){const _0x59337b=_0x150b74;this[_0x59337b(0x576)](),this[_0x59337b(0xe4)]();}[_0x150b74(0x3e4)](){const _0x174412=_0x150b74,_0x2592a0=this['svgFactory'][_0x174412(0x400)]('svg:rect');_0x2592a0[_0x174412(0x343)](null,'x','0'),_0x2592a0[_0x174412(0x343)](null,'y','0'),_0x2592a0['setAttributeNS'](null,_0x174412(0x98b),'1px'),_0x2592a0[_0x174412(0x343)](null,'height',_0x174412(0x48a)),_0x2592a0[_0x174412(0x343)](null,_0x174412(0x923),this['current']['fillColor']),this[_0x174412(0x409)]()['append'](_0x2592a0);}[_0x150b74(0x845)](_0x3815ce){const _0x3e3fc6=_0x150b74,_0x3e8acb=this[_0x3e3fc6(0x3ef)](_0x3815ce);if(!_0x3e8acb){(0x0,_0x41bc5e['warn'])(_0x3e3fc6(0x9ef)+_0x3815ce+_0x3e3fc6(0x965));return;}this[_0x3e3fc6(0x661)](_0x3e8acb);}['paintInlineImageXObject'](_0x5efad5,_0x3136db){const _0x48b7ae=_0x150b74,_0x1c8414=_0x5efad5[_0x48b7ae(0x98b)],_0x1eeb39=_0x5efad5['height'],_0x1ab891=_0x2e0f43(_0x5efad5,this[_0x48b7ae(0xd7)],!!_0x3136db),_0x5e6dd0=this[_0x48b7ae(0x385)][_0x48b7ae(0x400)](_0x48b7ae(0x20f));_0x5e6dd0[_0x48b7ae(0x343)](null,'x','0'),_0x5e6dd0['setAttributeNS'](null,'y','0'),_0x5e6dd0[_0x48b7ae(0x343)](null,_0x48b7ae(0x98b),_0x48533e(_0x1c8414)),_0x5e6dd0['setAttributeNS'](null,'height',_0x48533e(_0x1eeb39)),this[_0x48b7ae(0x835)][_0x48b7ae(0x369)]=_0x5e6dd0,this[_0x48b7ae(0x8b0)](_0x48b7ae(0x57b));const _0x5f3a83=this[_0x48b7ae(0x385)]['createElement'](_0x48b7ae(0x8fd));_0x5f3a83[_0x48b7ae(0x343)](_0x13d3b1,_0x48b7ae(0xeb),_0x1ab891),_0x5f3a83[_0x48b7ae(0x343)](null,'x','0'),_0x5f3a83[_0x48b7ae(0x343)](null,'y',_0x48533e(-_0x1eeb39)),_0x5f3a83['setAttributeNS'](null,_0x48b7ae(0x98b),_0x48533e(_0x1c8414)+'px'),_0x5f3a83[_0x48b7ae(0x343)](null,'height',_0x48533e(_0x1eeb39)+'px'),_0x5f3a83[_0x48b7ae(0x343)](null,_0x48b7ae(0x5dd),_0x48b7ae(0x153)+_0x48533e(0x1/_0x1c8414)+'\x20'+_0x48533e(-0x1/_0x1eeb39)+')'),_0x3136db?_0x3136db['append'](_0x5f3a83):this['_ensureTransformGroup']()['append'](_0x5f3a83);}[_0x150b74(0x94b)](_0x1b4ded){const _0x28ec63=_0x150b74,_0x2325b8=this[_0x28ec63(0x3ef)](_0x1b4ded['data'],_0x1b4ded);if(_0x2325b8['bitmap']){(0x0,_0x41bc5e[_0x28ec63(0x472)])(_0x28ec63(0xe6)+'ensure\x20that\x20the\x20`isOffscreenCanvasSupported`\x20API\x20parameter\x20is\x20disabled.');return;}const _0x40cc01=this['current'],_0x2275ad=_0x2325b8['width'],_0x3c929e=_0x2325b8[_0x28ec63(0x999)],_0x274033=_0x40cc01[_0x28ec63(0x631)];_0x40cc01[_0x28ec63(0x27a)]=_0x28ec63(0x4c0)+_0x2188cc++;const _0x114729=this[_0x28ec63(0x385)][_0x28ec63(0x400)]('svg:mask');_0x114729[_0x28ec63(0x343)](null,'id',_0x40cc01[_0x28ec63(0x27a)]);const _0x3c32fb=this[_0x28ec63(0x385)]['createElement'](_0x28ec63(0x20f));_0x3c32fb['setAttributeNS'](null,'x','0'),_0x3c32fb[_0x28ec63(0x343)](null,'y','0'),_0x3c32fb[_0x28ec63(0x343)](null,_0x28ec63(0x98b),_0x48533e(_0x2275ad)),_0x3c32fb[_0x28ec63(0x343)](null,'height',_0x48533e(_0x3c929e)),_0x3c32fb[_0x28ec63(0x343)](null,_0x28ec63(0x923),_0x274033),_0x3c32fb[_0x28ec63(0x343)](null,'mask',_0x28ec63(0x475)+_0x40cc01['maskId']+')'),this[_0x28ec63(0x487)][_0x28ec63(0x45e)](_0x114729),this[_0x28ec63(0x409)]()[_0x28ec63(0x45e)](_0x3c32fb),this['paintInlineImageXObject'](_0x2325b8,_0x114729);}['paintFormXObjectBegin'](_0x38c759,_0x1158a4){const _0x314d5a=_0x150b74;Array['isArray'](_0x38c759)&&_0x38c759[_0x314d5a(0x557)]===0x6&&this[_0x314d5a(0x5dd)](_0x38c759[0x0],_0x38c759[0x1],_0x38c759[0x2],_0x38c759[0x3],_0x38c759[0x4],_0x38c759[0x5]);if(_0x1158a4){const _0x3e400e=_0x1158a4[0x2]-_0x1158a4[0x0],_0x354d5e=_0x1158a4[0x3]-_0x1158a4[0x1],_0x392a9c=this[_0x314d5a(0x385)][_0x314d5a(0x400)](_0x314d5a(0x20f));_0x392a9c[_0x314d5a(0x343)](null,'x',_0x1158a4[0x0]),_0x392a9c[_0x314d5a(0x343)](null,'y',_0x1158a4[0x1]),_0x392a9c[_0x314d5a(0x343)](null,'width',_0x48533e(_0x3e400e)),_0x392a9c['setAttributeNS'](null,_0x314d5a(0x999),_0x48533e(_0x354d5e)),this[_0x314d5a(0x835)][_0x314d5a(0x369)]=_0x392a9c,this[_0x314d5a(0x8b0)]('nonzero'),this[_0x314d5a(0x486)]();}}[_0x150b74(0x439)](){}[_0x150b74(0x9f0)](_0x25240b){const _0x12ab64=_0x150b74,_0x2205b1=this[_0x12ab64(0x385)]['create'](_0x25240b[_0x12ab64(0x98b)],_0x25240b[_0x12ab64(0x999)]),_0x1f1206=this[_0x12ab64(0x385)][_0x12ab64(0x400)]('svg:defs');_0x2205b1[_0x12ab64(0x45e)](_0x1f1206),this[_0x12ab64(0x487)]=_0x1f1206;const _0x8b837=this['svgFactory'][_0x12ab64(0x400)]('svg:g');return _0x8b837[_0x12ab64(0x343)](null,_0x12ab64(0x5dd),_0x5473ca(_0x25240b[_0x12ab64(0x5dd)])),_0x2205b1[_0x12ab64(0x45e)](_0x8b837),this[_0x12ab64(0x286)]=_0x8b837,_0x2205b1;}[_0x150b74(0x6ba)](){const _0x5b92dd=_0x150b74;if(!this[_0x5b92dd(0x835)][_0x5b92dd(0x8b2)]){const _0x2f94b1=this[_0x5b92dd(0x385)][_0x5b92dd(0x400)](_0x5b92dd(0x80a));_0x2f94b1['setAttributeNS'](null,_0x5b92dd(0x45c),this['current'][_0x5b92dd(0x199)]),this['svg'][_0x5b92dd(0x45e)](_0x2f94b1),this[_0x5b92dd(0x835)][_0x5b92dd(0x8b2)]=_0x2f94b1;}return this[_0x5b92dd(0x835)]['clipGroup'];}[_0x150b74(0x409)](){const _0xe222d6=_0x150b74;return!this['tgrp']&&(this[_0xe222d6(0x278)]=this[_0xe222d6(0x385)]['createElement'](_0xe222d6(0x80a)),this[_0xe222d6(0x278)][_0xe222d6(0x343)](null,_0xe222d6(0x5dd),_0x5473ca(this[_0xe222d6(0x516)])),this[_0xe222d6(0x835)]['activeClipUrl']?this[_0xe222d6(0x6ba)]()['append'](this[_0xe222d6(0x278)]):this['svg'][_0xe222d6(0x45e)](this[_0xe222d6(0x278)])),this[_0xe222d6(0x278)];}}_0x3afacb['SVGGraphics']=_0x52d6c5;}],_0x4d5884={};function _0x22c265(_0x2c34cb){const _0x3172e5=a0_0x160d;var _0x283507=_0x4d5884[_0x2c34cb];if(_0x283507!==undefined)return _0x283507['exports'];var _0x29ad22=_0x4d5884[_0x2c34cb]={'exports':{}};return _0x2c322a[_0x2c34cb][_0x3172e5(0x569)](_0x29ad22[_0x3172e5(0x5e9)],_0x29ad22,_0x29ad22[_0x3172e5(0x5e9)],_0x22c265),_0x29ad22[_0x3172e5(0x5e9)];}var _0x2b1cd2={};return((()=>{'use strict';const _0x4a3f09=a0_0x160d;var _0x8e637d=_0x2b1cd2;Object[_0x4a3f09(0x430)](_0x8e637d,_0x4a3f09(0x19a),{'value':!![]}),Object[_0x4a3f09(0x430)](_0x8e637d,_0x4a3f09(0x980),{'enumerable':!![],'get':function(){const _0x361e43=_0x4a3f09;return _0x4be29d[_0x361e43(0x980)];}}),Object[_0x4a3f09(0x430)](_0x8e637d,_0x4a3f09(0x3a7),{'enumerable':!![],'get':function(){const _0x3ec6dc=_0x4a3f09;return _0x400a57[_0x3ec6dc(0x3a7)];}}),Object[_0x4a3f09(0x430)](_0x8e637d,'AnnotationEditorParamsType',{'enumerable':!![],'get':function(){const _0x41aa19=_0x4a3f09;return _0x4be29d[_0x41aa19(0x6b8)];}}),Object[_0x4a3f09(0x430)](_0x8e637d,_0x4a3f09(0x9a6),{'enumerable':!![],'get':function(){const _0x24f097=_0x4a3f09;return _0x4be29d[_0x24f097(0x9a6)];}}),Object[_0x4a3f09(0x430)](_0x8e637d,_0x4a3f09(0x73c),{'enumerable':!![],'get':function(){const _0x205564=_0x4a3f09;return _0x5edbe0[_0x205564(0x73c)];}}),Object['defineProperty'](_0x8e637d,_0x4a3f09(0x580),{'enumerable':!![],'get':function(){const _0x59911c=_0x4a3f09;return _0x583cd4[_0x59911c(0x580)];}}),Object[_0x4a3f09(0x430)](_0x8e637d,_0x4a3f09(0x2a5),{'enumerable':!![],'get':function(){const _0x11d3df=_0x4a3f09;return _0x4be29d[_0x11d3df(0x2a5)];}}),Object[_0x4a3f09(0x430)](_0x8e637d,_0x4a3f09(0x4a3),{'enumerable':!![],'get':function(){const _0x3a204b=_0x4a3f09;return _0x4be29d[_0x3a204b(0x4a3)];}}),Object[_0x4a3f09(0x430)](_0x8e637d,_0x4a3f09(0x7a8),{'enumerable':!![],'get':function(){return _0x4be29d['FeatureTest'];}}),Object[_0x4a3f09(0x430)](_0x8e637d,'GlobalWorkerOptions',{'enumerable':!![],'get':function(){return _0x4b40bb['GlobalWorkerOptions'];}}),Object[_0x4a3f09(0x430)](_0x8e637d,_0x4a3f09(0x163),{'enumerable':!![],'get':function(){return _0x4be29d['ImageKind'];}}),Object[_0x4a3f09(0x430)](_0x8e637d,'InvalidPDFException',{'enumerable':!![],'get':function(){const _0x3a78ce=_0x4a3f09;return _0x4be29d[_0x3a78ce(0x46b)];}}),Object[_0x4a3f09(0x430)](_0x8e637d,'MissingPDFException',{'enumerable':!![],'get':function(){const _0x2cb132=_0x4a3f09;return _0x4be29d[_0x2cb132(0x5c5)];}}),Object[_0x4a3f09(0x430)](_0x8e637d,_0x4a3f09(0x13d),{'enumerable':!![],'get':function(){const _0x126061=_0x4a3f09;return _0x4be29d[_0x126061(0x13d)];}}),Object[_0x4a3f09(0x430)](_0x8e637d,'PDFDataRangeTransport',{'enumerable':!![],'get':function(){const _0x48547f=_0x4a3f09;return _0x4958d6[_0x48547f(0x7a1)];}}),Object['defineProperty'](_0x8e637d,_0x4a3f09(0x35e),{'enumerable':!![],'get':function(){return _0x20c831['PDFDateString'];}}),Object[_0x4a3f09(0x430)](_0x8e637d,_0x4a3f09(0x7f1),{'enumerable':!![],'get':function(){return _0x4958d6['PDFWorker'];}}),Object[_0x4a3f09(0x430)](_0x8e637d,_0x4a3f09(0x655),{'enumerable':!![],'get':function(){const _0x2c092c=_0x4a3f09;return _0x4be29d[_0x2c092c(0x655)];}}),Object[_0x4a3f09(0x430)](_0x8e637d,_0x4a3f09(0x305),{'enumerable':!![],'get':function(){return _0x4be29d['PermissionFlag'];}}),Object[_0x4a3f09(0x430)](_0x8e637d,_0x4a3f09(0x705),{'enumerable':!![],'get':function(){const _0x443b76=_0x4a3f09;return _0x20c831[_0x443b76(0x705)];}}),Object[_0x4a3f09(0x430)](_0x8e637d,_0x4a3f09(0x7e3),{'enumerable':!![],'get':function(){const _0x346b83=_0x4a3f09;return _0x4be29d[_0x346b83(0x7e3)];}}),Object[_0x4a3f09(0x430)](_0x8e637d,_0x4a3f09(0x450),{'enumerable':!![],'get':function(){const _0x4b71e5=_0x4a3f09;return _0x20c831[_0x4b71e5(0x450)];}}),_0x8e637d[_0x4a3f09(0x1e2)]=void 0x0,Object[_0x4a3f09(0x430)](_0x8e637d,_0x4a3f09(0x90f),{'enumerable':!![],'get':function(){const _0x1b4f96=_0x4a3f09;return _0x4be29d[_0x1b4f96(0x90f)];}}),Object[_0x4a3f09(0x430)](_0x8e637d,_0x4a3f09(0x5d7),{'enumerable':!![],'get':function(){return _0x4be29d['Util'];}}),Object[_0x4a3f09(0x430)](_0x8e637d,_0x4a3f09(0x45b),{'enumerable':!![],'get':function(){const _0x24ada1=_0x4a3f09;return _0x4be29d[_0x24ada1(0x45b)];}}),Object['defineProperty'](_0x8e637d,'XfaLayer',{'enumerable':!![],'get':function(){return _0x7a54cb['XfaLayer'];}}),Object['defineProperty'](_0x8e637d,_0x4a3f09(0x407),{'enumerable':!![],'get':function(){return _0x4958d6['build'];}}),Object['defineProperty'](_0x8e637d,_0x4a3f09(0x5b0),{'enumerable':!![],'get':function(){const _0x3e80aa=_0x4a3f09;return _0x4be29d[_0x3e80aa(0x5b0)];}}),Object[_0x4a3f09(0x430)](_0x8e637d,_0x4a3f09(0x48c),{'enumerable':!![],'get':function(){const _0xb51739=_0x4a3f09;return _0x4958d6[_0xb51739(0x48c)];}}),Object[_0x4a3f09(0x430)](_0x8e637d,_0x4a3f09(0x598),{'enumerable':!![],'get':function(){const _0x438a23=_0x4a3f09;return _0x20c831[_0x438a23(0x598)];}}),Object['defineProperty'](_0x8e637d,_0x4a3f09(0x415),{'enumerable':!![],'get':function(){const _0x2864b4=_0x4a3f09;return _0x20c831[_0x2864b4(0x415)];}}),Object[_0x4a3f09(0x430)](_0x8e637d,'getXfaPageViewport',{'enumerable':!![],'get':function(){const _0x1fed08=_0x4a3f09;return _0x20c831[_0x1fed08(0x460)];}}),Object[_0x4a3f09(0x430)](_0x8e637d,_0x4a3f09(0x337),{'enumerable':!![],'get':function(){const _0x1355f7=_0x4a3f09;return _0x20c831[_0x1355f7(0x337)];}}),Object[_0x4a3f09(0x430)](_0x8e637d,'isPdfFile',{'enumerable':!![],'get':function(){const _0x3f8d8c=_0x4a3f09;return _0x20c831[_0x3f8d8c(0x2f4)];}}),Object[_0x4a3f09(0x430)](_0x8e637d,_0x4a3f09(0x4f0),{'enumerable':!![],'get':function(){const _0x5327f1=_0x4a3f09;return _0x20c831[_0x5327f1(0x4f0)];}}),Object[_0x4a3f09(0x430)](_0x8e637d,'normalizeUnicode',{'enumerable':!![],'get':function(){const _0x4df966=_0x4a3f09;return _0x4be29d[_0x4df966(0x4a4)];}}),Object[_0x4a3f09(0x430)](_0x8e637d,_0x4a3f09(0x29e),{'enumerable':!![],'get':function(){const _0x2dc1c2=_0x4a3f09;return _0x109f81[_0x2dc1c2(0x29e)];}}),Object[_0x4a3f09(0x430)](_0x8e637d,_0x4a3f09(0x95e),{'enumerable':!![],'get':function(){return _0x20c831['setLayerDimensions'];}}),Object['defineProperty'](_0x8e637d,'shadow',{'enumerable':!![],'get':function(){return _0x4be29d['shadow'];}}),Object[_0x4a3f09(0x430)](_0x8e637d,_0x4a3f09(0x98f),{'enumerable':!![],'get':function(){return _0x109f81['updateTextLayer'];}}),Object[_0x4a3f09(0x430)](_0x8e637d,'version',{'enumerable':!![],'get':function(){return _0x4958d6['version'];}});var _0x4be29d=_0x22c265(0x1),_0x4958d6=_0x22c265(0x83),_0x20c831=_0x22c265(0x87),_0x109f81=_0x22c265(0x9a),_0x400a57=_0x22c265(0x9b),_0x5edbe0=_0x22c265(0x86),_0x583cd4=_0x22c265(0x9d),_0x4b40bb=_0x22c265(0x8e),_0x7a54cb=_0x22c265(0x9f);const _0x46fd7b=_0x4a3f09(0x623),_0x5b345e='',_0x1c39a7=_0x22c265(0xa3)[_0x4a3f09(0x1e2)];_0x8e637d[_0x4a3f09(0x1e2)]=_0x1c39a7;})()),_0x2b1cd2;})());}));
\ No newline at end of file
diff --git a/node_modules/pdfh5/js/pdf.js b/node_modules/pdfh5/js/pdf.js
new file mode 100644
index 0000000..f23920c
--- /dev/null
+++ b/node_modules/pdfh5/js/pdf.js
@@ -0,0 +1,22 @@
+/**
+ * @licstart The following is the entire license notice for the
+ * Javascript code in this page
+ *
+ * Copyright 2021 Mozilla Foundation
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ * @licend The above is the entire license notice for the
+ * Javascript code in this page
+ */
+!function webpackUniversalModuleDefinition(t,r){"object"==typeof exports&&"object"==typeof module?module.exports=r():"function"==typeof define&&define.amd?define("pdfjs-dist/build/pdf",[],r):"object"==typeof exports?exports["pdfjs-dist/build/pdf"]=r():t["pdfjs-dist/build/pdf"]=t.pdfjsLib=r()}(this,(function(){return(()=>{var __webpack_modules__=[,(t,r,a)=>{"use strict";function _typeof(t){_typeof="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function _typeof(t){return typeof t}:function _typeof(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t};return _typeof(t)}Object.defineProperty(r,"__esModule",{value:!0});r.addLinkAttributes=function addLinkAttributes(t){var r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},a=r.url,o=r.target,l=r.rel,c=r.enabled,d=void 0===c||c;(0,i.assert)(a&&"string"==typeof a,'addLinkAttributes: A valid "url" parameter must provided.');var h=(0,i.removeNullCharacters)(a);if(d)t.href=t.title=h;else{t.href="";t.title="Disabled: ".concat(h);t.onclick=function(){return!1}}var p="";switch(o){case g.NONE:break;case g.SELF:p="_self";break;case g.BLANK:p="_blank";break;case g.PARENT:p="_parent";break;case g.TOP:p="_top"}t.target=p;t.rel="string"==typeof l?l:u};r.deprecated=function deprecated(t){console.log("Deprecated API usage: "+t)};r.getFilenameFromUrl=function getFilenameFromUrl(t){var r=t.indexOf("#"),a=t.indexOf("?"),o=Math.min(r>0?r:t.length,a>0?a:t.length);return t.substring(t.lastIndexOf("/",o)+1,o)};r.getPdfFilenameFromUrl=function getPdfFilenameFromUrl(t){var r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"document.pdf";if("string"!=typeof t)return r;if(isDataScheme(t)){(0,i.warn)('getPdfFilenameFromUrl: ignore "data:"-URL for performance reasons.');return r}var a=/^(?:(?:[^:]+:)?\/\/[^/]+)?([^?#]*)(\?[^#]*)?(#.*)?$/,o=/[^/?#=]+\.pdf\b(?!.*\.pdf\b)/i,l=a.exec(t),u=o.exec(l[1])||o.exec(l[2])||o.exec(l[3]);if(u&&(u=u[0]).includes("%"))try{u=o.exec(decodeURIComponent(u))[0]}catch(t){}return u||r};r.getXfaPageViewport=function getXfaPageViewport(t,r){var a=r.scale,o=void 0===a?1:a,i=r.rotation,l=void 0===i?0:i,u=t.attributes.style,c=u.width,d=u.height,h=[0,0,parseInt(c),parseInt(d)];return new y({viewBox:h,scale:o,rotation:l})};r.isDataScheme=isDataScheme;r.isPdfFile=function isPdfFile(t){return"string"==typeof t&&/\.pdf$/i.test(t)};r.isValidFetchUrl=isValidFetchUrl;r.loadScript=function loadScript(t){var r=arguments.length>1&&void 0!==arguments[1]&&arguments[1];return new Promise((function(a,o){var i=document.createElement("script");i.src=t;i.onload=function(t){r&&i.remove();a(t)};i.onerror=function(){o(new Error("Cannot load script at: ".concat(i.src)))};(document.head||document.documentElement).appendChild(i)}))};r.StatTimer=r.RenderingCancelledException=r.PixelsPerInch=r.PDFDateString=r.PageViewport=r.LinkTarget=r.DOMSVGFactory=r.DOMStandardFontDataFactory=r.DOMCMapReaderFactory=r.DOMCanvasFactory=void 0;var o=function _interopRequireDefault(t){return t&&t.__esModule?t:{default:t}}(a(2)),i=a(4),l=a(118);function _createForOfIteratorHelper(t,r){var a="undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(!a){if(Array.isArray(t)||(a=function _unsupportedIterableToArray(t,r){if(!t)return;if("string"==typeof t)return _arrayLikeToArray(t,r);var a=Object.prototype.toString.call(t).slice(8,-1);"Object"===a&&t.constructor&&(a=t.constructor.name);if("Map"===a||"Set"===a)return Array.from(t);if("Arguments"===a||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(a))return _arrayLikeToArray(t,r)}(t))||r&&t&&"number"==typeof t.length){a&&(t=a);var o=0,i=function F(){};return{s:i,n:function n(){return o>=t.length?{done:!0}:{done:!1,value:t[o++]}},e:function e(t){throw t},f:i}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var l,u=!0,c=!1;return{s:function s(){a=a.call(t)},n:function n(){var t=a.next();u=t.done;return t},e:function e(t){c=!0;l=t},f:function f(){try{u||null==a.return||a.return()}finally{if(c)throw l}}}}function _arrayLikeToArray(t,r){(null==r||r>t.length)&&(r=t.length);for(var a=0,o=new Array(r);a<r;a++)o[a]=t[a];return o}function asyncGeneratorStep(t,r,a,o,i,l,u){try{var c=t[l](u),d=c.value}catch(t){a(t);return}c.done?r(d):Promise.resolve(d).then(o,i)}function _asyncToGenerator(t){return function(){var r=this,a=arguments;return new Promise((function(o,i){var l=t.apply(r,a);function _next(t){asyncGeneratorStep(l,o,i,_next,_throw,"next",t)}function _throw(t){asyncGeneratorStep(l,o,i,_next,_throw,"throw",t)}_next(void 0)}))}}function _classCallCheck(t,r){if(!(t instanceof r))throw new TypeError("Cannot call a class as a function")}function _defineProperties(t,r){for(var a=0;a<r.length;a++){var o=r[a];o.enumerable=o.enumerable||!1;o.configurable=!0;"value"in o&&(o.writable=!0);Object.defineProperty(t,o.key,o)}}function _createClass(t,r,a){r&&_defineProperties(t.prototype,r);a&&_defineProperties(t,a);return t}function _inherits(t,r){if("function"!=typeof r&&null!==r)throw new TypeError("Super expression must either be null or a function");t.prototype=Object.create(r&&r.prototype,{constructor:{value:t,writable:!0,configurable:!0}});r&&_setPrototypeOf(t,r)}function _setPrototypeOf(t,r){_setPrototypeOf=Object.setPrototypeOf||function _setPrototypeOf(t,r){t.__proto__=r;return t};return _setPrototypeOf(t,r)}function _createSuper(t){var r=function _isNativeReflectConstruct(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){})));return!0}catch(t){return!1}}();return function _createSuperInternal(){var a,o=_getPrototypeOf(t);if(r){var i=_getPrototypeOf(this).constructor;a=Reflect.construct(o,arguments,i)}else a=o.apply(this,arguments);return _possibleConstructorReturn(this,a)}}function _possibleConstructorReturn(t,r){if(r&&("object"===_typeof(r)||"function"==typeof r))return r;if(void 0!==r)throw new TypeError("Derived constructors may only return object or undefined");return function _assertThisInitialized(t){if(void 0===t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return t}(t)}function _getPrototypeOf(t){_getPrototypeOf=Object.setPrototypeOf?Object.getPrototypeOf:function _getPrototypeOf(t){return t.__proto__||Object.getPrototypeOf(t)};return _getPrototypeOf(t)}var u="noopener noreferrer nofollow",c={CSS:96,PDF:72,get PDF_TO_CSS_UNITS(){return(0,i.shadow)(this,"PDF_TO_CSS_UNITS",this.CSS/this.PDF)}};r.PixelsPerInch=c;var d=function(t){_inherits(DOMCanvasFactory,t);var r=_createSuper(DOMCanvasFactory);function DOMCanvasFactory(){var t,a=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},o=a.ownerDocument,i=void 0===o?globalThis.document:o;_classCallCheck(this,DOMCanvasFactory);(t=r.call(this))._document=i;return t}_createClass(DOMCanvasFactory,[{key:"_createCanvas",value:function _createCanvas(t,r){var a=this._document.createElement("canvas");a.width=t;a.height=r;return a}}]);return DOMCanvasFactory}(l.BaseCanvasFactory);r.DOMCanvasFactory=d;function fetchData(t){return _fetchData.apply(this,arguments)}function _fetchData(){_fetchData=_asyncToGenerator(o.default.mark((function _callee(t){var r,a,l=arguments;return o.default.wrap((function _callee$(o){for(;;)switch(o.prev=o.next){case 0:r=l.length>1&&void 0!==l[1]&&l[1];if(!isValidFetchUrl(t,document.baseURI)){o.next=21;break}o.next=4;return fetch(t);case 4:if((a=o.sent).ok){o.next=7;break}throw new Error(a.statusText);case 7:if(!r){o.next=15;break}o.t1=Uint8Array;o.next=11;return a.arrayBuffer();case 11:o.t2=o.sent;o.t0=new o.t1(o.t2);o.next=20;break;case 15:o.t3=i.stringToBytes;o.next=18;return a.text();case 18:o.t4=o.sent;o.t0=(0,o.t3)(o.t4);case 20:return o.abrupt("return",o.t0);case 21:return o.abrupt("return",new Promise((function(a,o){var l=new XMLHttpRequest;l.open("GET",t,!0);r&&(l.responseType="arraybuffer");l.onreadystatechange=function(){if(l.readyState===XMLHttpRequest.DONE){if(200===l.status||0===l.status){var t;r&&l.response?t=new Uint8Array(l.response):!r&&l.responseText&&(t=(0,i.stringToBytes)(l.responseText));if(t){a(t);return}}o(new Error(l.statusText))}};l.send(null)})));case 22:case"end":return o.stop()}}),_callee)})));return _fetchData.apply(this,arguments)}var h=function(t){_inherits(DOMCMapReaderFactory,t);var r=_createSuper(DOMCMapReaderFactory);function DOMCMapReaderFactory(){_classCallCheck(this,DOMCMapReaderFactory);return r.apply(this,arguments)}_createClass(DOMCMapReaderFactory,[{key:"_fetchData",value:function _fetchData(t,r){return fetchData(t,this.isCompressed).then((function(t){return{cMapData:t,compressionType:r}}))}}]);return DOMCMapReaderFactory}(l.BaseCMapReaderFactory);r.DOMCMapReaderFactory=h;var p=function(t){_inherits(DOMStandardFontDataFactory,t);var r=_createSuper(DOMStandardFontDataFactory);function DOMStandardFontDataFactory(){_classCallCheck(this,DOMStandardFontDataFactory);return r.apply(this,arguments)}_createClass(DOMStandardFontDataFactory,[{key:"_fetchData",value:function _fetchData(t){return fetchData(t,!0)}}]);return DOMStandardFontDataFactory}(l.BaseStandardFontDataFactory);r.DOMStandardFontDataFactory=p;var m=function(t){_inherits(DOMSVGFactory,t);var r=_createSuper(DOMSVGFactory);function DOMSVGFactory(){_classCallCheck(this,DOMSVGFactory);return r.apply(this,arguments)}_createClass(DOMSVGFactory,[{key:"_createSVG",value:function _createSVG(t){return document.createElementNS("http://www.w3.org/2000/svg",t)}}]);return DOMSVGFactory}(l.BaseSVGFactory);r.DOMSVGFactory=m;var y=function(){function PageViewport(t){var r=t.viewBox,a=t.scale,o=t.rotation,i=t.offsetX,l=void 0===i?0:i,u=t.offsetY,c=void 0===u?0:u,d=t.dontFlip,h=void 0!==d&&d;_classCallCheck(this,PageViewport);this.viewBox=r;this.scale=a;this.rotation=o;this.offsetX=l;this.offsetY=c;var p,m,y,v,g,b,_,S,A=(r[2]+r[0])/2,C=(r[3]+r[1])/2;(o%=360)<0&&(o+=360);switch(o){case 180:p=-1;m=0;y=0;v=1;break;case 90:p=0;m=1;y=1;v=0;break;case 270:p=0;m=-1;y=-1;v=0;break;case 0:p=1;m=0;y=0;v=-1;break;default:throw new Error("PageViewport: Invalid rotation, must be a multiple of 90 degrees.")}if(h){y=-y;v=-v}if(0===p){g=Math.abs(C-r[1])*a+l;b=Math.abs(A-r[0])*a+c;_=Math.abs(r[3]-r[1])*a;S=Math.abs(r[2]-r[0])*a}else{g=Math.abs(A-r[0])*a+l;b=Math.abs(C-r[1])*a+c;_=Math.abs(r[2]-r[0])*a;S=Math.abs(r[3]-r[1])*a}this.transform=[p*a,m*a,y*a,v*a,g-p*a*A-y*a*C,b-m*a*A-v*a*C];this.width=_;this.height=S}_createClass(PageViewport,[{key:"clone",value:function clone(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},r=t.scale,a=void 0===r?this.scale:r,o=t.rotation,i=void 0===o?this.rotation:o,l=t.offsetX,u=void 0===l?this.offsetX:l,c=t.offsetY,d=void 0===c?this.offsetY:c,h=t.dontFlip,p=void 0!==h&&h;return new PageViewport({viewBox:this.viewBox.slice(),scale:a,rotation:i,offsetX:u,offsetY:d,dontFlip:p})}},{key:"convertToViewportPoint",value:function convertToViewportPoint(t,r){return i.Util.applyTransform([t,r],this.transform)}},{key:"convertToViewportRectangle",value:function convertToViewportRectangle(t){var r=i.Util.applyTransform([t[0],t[1]],this.transform),a=i.Util.applyTransform([t[2],t[3]],this.transform);return[r[0],r[1],a[0],a[1]]}},{key:"convertToPdfPoint",value:function convertToPdfPoint(t,r){return i.Util.applyInverseTransform([t,r],this.transform)}}]);return PageViewport}();r.PageViewport=y;var v=function(t){_inherits(RenderingCancelledException,t);var r=_createSuper(RenderingCancelledException);function RenderingCancelledException(t,a){var o;_classCallCheck(this,RenderingCancelledException);(o=r.call(this,t,"RenderingCancelledException")).type=a;return o}return RenderingCancelledException}(i.BaseException);r.RenderingCancelledException=v;var g={NONE:0,SELF:1,BLANK:2,PARENT:3,TOP:4};r.LinkTarget=g;function isDataScheme(t){for(var r=t.length,a=0;a<r&&""===t[a].trim();)a++;return"data:"===t.substring(a,a+5).toLowerCase()}var b,_=function(){function StatTimer(){_classCallCheck(this,StatTimer);this.started=Object.create(null);this.times=[]}_createClass(StatTimer,[{key:"time",value:function time(t){t in this.started&&(0,i.warn)("Timer is already running for ".concat(t));this.started[t]=Date.now()}},{key:"timeEnd",value:function timeEnd(t){t in this.started||(0,i.warn)("Timer has not been started for ".concat(t));this.times.push({name:t,start:this.started[t],end:Date.now()});delete this.started[t]}},{key:"toString",value:function toString(){var t,r=[],a=0,o=_createForOfIteratorHelper(this.times);try{for(o.s();!(t=o.n()).done;){var i=t.value.name;i.length>a&&(a=i.length)}}catch(t){o.e(t)}finally{o.f()}var l,u=_createForOfIteratorHelper(this.times);try{for(u.s();!(l=u.n()).done;){var c=l.value,d=c.end-c.start;r.push("".concat(c.name.padEnd(a)," ").concat(d,"ms\n"))}}catch(t){u.e(t)}finally{u.f()}return r.join("")}}]);return StatTimer}();r.StatTimer=_;function isValidFetchUrl(t,r){try{var a=(r?new URL(t,r):new URL(t)).protocol;return"http:"===a||"https:"===a}catch(t){return!1}}var S=function(){function PDFDateString(){_classCallCheck(this,PDFDateString)}_createClass(PDFDateString,null,[{key:"toDateObject",value:function toDateObject(t){if(!t||!(0,i.isString)(t))return null;b||(b=new RegExp("^D:(\\d{4})(\\d{2})?(\\d{2})?(\\d{2})?(\\d{2})?(\\d{2})?([Z|+|-])?(\\d{2})?'?(\\d{2})?'?"));var r=b.exec(t);if(!r)return null;var a=parseInt(r[1],10),o=parseInt(r[2],10);o=o>=1&&o<=12?o-1:0;var l=parseInt(r[3],10);l=l>=1&&l<=31?l:1;var u=parseInt(r[4],10);u=u>=0&&u<=23?u:0;var c=parseInt(r[5],10);c=c>=0&&c<=59?c:0;var d=parseInt(r[6],10);d=d>=0&&d<=59?d:0;var h=r[7]||"Z",p=parseInt(r[8],10);p=p>=0&&p<=23?p:0;var m=parseInt(r[9],10)||0;m=m>=0&&m<=59?m:0;if("-"===h){u+=p;c+=m}else if("+"===h){u-=p;c-=m}return new Date(Date.UTC(a,o,l,u,c,d))}}]);return PDFDateString}();r.PDFDateString=S},(t,r,a)=>{"use strict";t.exports=a(3)},(t,r,a)=>{"use strict";function _typeof(t){_typeof="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function _typeof(t){return typeof t}:function _typeof(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t};return _typeof(t)}var o=function(t){var r,a=Object.prototype,o=a.hasOwnProperty,i="function"==typeof Symbol?Symbol:{},l=i.iterator||"@@iterator",u=i.asyncIterator||"@@asyncIterator",c=i.toStringTag||"@@toStringTag";function define(t,r,a){Object.defineProperty(t,r,{value:a,enumerable:!0,configurable:!0,writable:!0});return t[r]}try{define({},"")}catch(t){define=function define(t,r,a){return t[r]=a}}function wrap(t,r,a,o){var i=r&&r.prototype instanceof Generator?r:Generator,l=Object.create(i.prototype),u=new Context(o||[]);l._invoke=function makeInvokeMethod(t,r,a){var o=d;return function invoke(i,l){if(o===p)throw new Error("Generator is already running");if(o===m){if("throw"===i)throw l;return doneResult()}a.method=i;a.arg=l;for(;;){var u=a.delegate;if(u){var c=maybeInvokeDelegate(u,a);if(c){if(c===y)continue;return c}}if("next"===a.method)a.sent=a._sent=a.arg;else if("throw"===a.method){if(o===d){o=m;throw a.arg}a.dispatchException(a.arg)}else"return"===a.method&&a.abrupt("return",a.arg);o=p;var v=tryCatch(t,r,a);if("normal"===v.type){o=a.done?m:h;if(v.arg===y)continue;return{value:v.arg,done:a.done}}if("throw"===v.type){o=m;a.method="throw";a.arg=v.arg}}}}(t,a,u);return l}t.wrap=wrap;function tryCatch(t,r,a){try{return{type:"normal",arg:t.call(r,a)}}catch(t){return{type:"throw",arg:t}}}var d="suspendedStart",h="suspendedYield",p="executing",m="completed",y={};function Generator(){}function GeneratorFunction(){}function GeneratorFunctionPrototype(){}var v={};define(v,l,(function(){return this}));var g=Object.getPrototypeOf,b=g&&g(g(values([])));b&&b!==a&&o.call(b,l)&&(v=b);var _=GeneratorFunctionPrototype.prototype=Generator.prototype=Object.create(v);GeneratorFunction.prototype=GeneratorFunctionPrototype;define(_,"constructor",GeneratorFunctionPrototype);define(GeneratorFunctionPrototype,"constructor",GeneratorFunction);GeneratorFunction.displayName=define(GeneratorFunctionPrototype,c,"GeneratorFunction");function defineIteratorMethods(t){["next","throw","return"].forEach((function(r){define(t,r,(function(t){return this._invoke(r,t)}))}))}t.isGeneratorFunction=function(t){var r="function"==typeof t&&t.constructor;return!!r&&(r===GeneratorFunction||"GeneratorFunction"===(r.displayName||r.name))};t.mark=function(t){if(Object.setPrototypeOf)Object.setPrototypeOf(t,GeneratorFunctionPrototype);else{t.__proto__=GeneratorFunctionPrototype;define(t,c,"GeneratorFunction")}t.prototype=Object.create(_);return t};t.awrap=function(t){return{__await:t}};function AsyncIterator(t,r){function invoke(a,i,l,u){var c=tryCatch(t[a],t,i);if("throw"!==c.type){var d=c.arg,h=d.value;return h&&"object"===_typeof(h)&&o.call(h,"__await")?r.resolve(h.__await).then((function(t){invoke("next",t,l,u)}),(function(t){invoke("throw",t,l,u)})):r.resolve(h).then((function(t){d.value=t;l(d)}),(function(t){return invoke("throw",t,l,u)}))}u(c.arg)}var a;this._invoke=function enqueue(t,o){function callInvokeWithMethodAndArg(){return new r((function(r,a){invoke(t,o,r,a)}))}return a=a?a.then(callInvokeWithMethodAndArg,callInvokeWithMethodAndArg):callInvokeWithMethodAndArg()}}defineIteratorMethods(AsyncIterator.prototype);define(AsyncIterator.prototype,u,(function(){return this}));t.AsyncIterator=AsyncIterator;t.async=function(r,a,o,i,l){void 0===l&&(l=Promise);var u=new AsyncIterator(wrap(r,a,o,i),l);return t.isGeneratorFunction(a)?u:u.next().then((function(t){return t.done?t.value:u.next()}))};function maybeInvokeDelegate(t,a){var o=t.iterator[a.method];if(o===r){a.delegate=null;if("throw"===a.method){if(t.iterator.return){a.method="return";a.arg=r;maybeInvokeDelegate(t,a);if("throw"===a.method)return y}a.method="throw";a.arg=new TypeError("The iterator does not provide a 'throw' method")}return y}var i=tryCatch(o,t.iterator,a.arg);if("throw"===i.type){a.method="throw";a.arg=i.arg;a.delegate=null;return y}var l=i.arg;if(!l){a.method="throw";a.arg=new TypeError("iterator result is not an object");a.delegate=null;return y}if(!l.done)return l;a[t.resultName]=l.value;a.next=t.nextLoc;if("return"!==a.method){a.method="next";a.arg=r}a.delegate=null;return y}defineIteratorMethods(_);define(_,c,"Generator");define(_,l,(function(){return this}));define(_,"toString",(function(){return"[object Generator]"}));function pushTryEntry(t){var r={tryLoc:t[0]};1 in t&&(r.catchLoc=t[1]);if(2 in t){r.finallyLoc=t[2];r.afterLoc=t[3]}this.tryEntries.push(r)}function resetTryEntry(t){var r=t.completion||{};r.type="normal";delete r.arg;t.completion=r}function Context(t){this.tryEntries=[{tryLoc:"root"}];t.forEach(pushTryEntry,this);this.reset(!0)}t.keys=function(t){var r=[];for(var a in t)r.push(a);r.reverse();return function next(){for(;r.length;){var a=r.pop();if(a in t){next.value=a;next.done=!1;return next}}next.done=!0;return next}};function values(t){if(t){var a=t[l];if(a)return a.call(t);if("function"==typeof t.next)return t;if(!isNaN(t.length)){var i=-1,u=function next(){for(;++i<t.length;)if(o.call(t,i)){next.value=t[i];next.done=!1;return next}next.value=r;next.done=!0;return next};return u.next=u}}return{next:doneResult}}t.values=values;function doneResult(){return{value:r,done:!0}}Context.prototype={constructor:Context,reset:function reset(t){this.prev=0;this.next=0;this.sent=this._sent=r;this.done=!1;this.delegate=null;this.method="next";this.arg=r;this.tryEntries.forEach(resetTryEntry);if(!t)for(var a in this)"t"===a.charAt(0)&&o.call(this,a)&&!isNaN(+a.slice(1))&&(this[a]=r)},stop:function stop(){this.done=!0;var t=this.tryEntries[0].completion;if("throw"===t.type)throw t.arg;return this.rval},dispatchException:function dispatchException(t){if(this.done)throw t;var a=this;function handle(o,i){u.type="throw";u.arg=t;a.next=o;if(i){a.method="next";a.arg=r}return!!i}for(var i=this.tryEntries.length-1;i>=0;--i){var l=this.tryEntries[i],u=l.completion;if("root"===l.tryLoc)return handle("end");if(l.tryLoc<=this.prev){var c=o.call(l,"catchLoc"),d=o.call(l,"finallyLoc");if(c&&d){if(this.prev<l.catchLoc)return handle(l.catchLoc,!0);if(this.prev<l.finallyLoc)return handle(l.finallyLoc)}else if(c){if(this.prev<l.catchLoc)return handle(l.catchLoc,!0)}else{if(!d)throw new Error("try statement without catch or finally");if(this.prev<l.finallyLoc)return handle(l.finallyLoc)}}}},abrupt:function abrupt(t,r){for(var a=this.tryEntries.length-1;a>=0;--a){var i=this.tryEntries[a];if(i.tryLoc<=this.prev&&o.call(i,"finallyLoc")&&this.prev<i.finallyLoc){var l=i;break}}l&&("break"===t||"continue"===t)&&l.tryLoc<=r&&r<=l.finallyLoc&&(l=null);var u=l?l.completion:{};u.type=t;u.arg=r;if(l){this.method="next";this.next=l.finallyLoc;return y}return this.complete(u)},complete:function complete(t,r){if("throw"===t.type)throw t.arg;if("break"===t.type||"continue"===t.type)this.next=t.arg;else if("return"===t.type){this.rval=this.arg=t.arg;this.method="return";this.next="end"}else"normal"===t.type&&r&&(this.next=r);return y},finish:function finish(t){for(var r=this.tryEntries.length-1;r>=0;--r){var a=this.tryEntries[r];if(a.finallyLoc===t){this.complete(a.completion,a.afterLoc);resetTryEntry(a);return y}}},catch:function _catch(t){for(var r=this.tryEntries.length-1;r>=0;--r){var a=this.tryEntries[r];if(a.tryLoc===t){var o=a.completion;if("throw"===o.type){var i=o.arg;resetTryEntry(a)}return i}}throw new Error("illegal catch attempt")},delegateYield:function delegateYield(t,a,o){this.delegate={iterator:values(t),resultName:a,nextLoc:o};"next"===this.method&&(this.arg=r);return y}};return t}("object"===_typeof(t=a.nmd(t))?t.exports:{});try{regeneratorRuntime=o}catch(t){"object"===("undefined"==typeof globalThis?"undefined":_typeof(globalThis))?globalThis.regeneratorRuntime=o:Function("r","regeneratorRuntime = r")(o)}},(t,r,a)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});r.arrayByteLength=arrayByteLength;r.arraysToBytes=function arraysToBytes(t){var r=t.length;if(1===r&&t[0]instanceof Uint8Array)return t[0];for(var a=0,o=0;o<r;o++)a+=arrayByteLength(t[o]);for(var i=0,l=new Uint8Array(a),u=0;u<r;u++){var c=t[u];c instanceof Uint8Array||(c="string"==typeof c?stringToBytes(c):new Uint8Array(c));var d=c.byteLength;l.set(c,i);i+=d}return l};r.assert=assert;r.bytesToString=function bytesToString(t){assert(null!==t&&"object"===_typeof(t)&&void 0!==t.length,"Invalid argument for bytesToString");var r=t.length,a=8192;if(r<a)return String.fromCharCode.apply(null,t);for(var o=[],i=0;i<r;i+=a){var l=Math.min(i+a,r),u=t.subarray(i,l);o.push(String.fromCharCode.apply(null,u))}return o.join("")};r.createObjectURL=function createObjectURL(t){var r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"",a=arguments.length>2&&void 0!==arguments[2]&&arguments[2];if(URL.createObjectURL&&!a)return URL.createObjectURL(new Blob([t],{type:r}));for(var o="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",i="data:".concat(r,";base64,"),l=0,u=t.length;l<u;l+=3){var c=255&t[l],d=255&t[l+1],h=255&t[l+2],p=c>>2,m=(3&c)<<4|d>>4,y=l+1<u?(15&d)<<2|h>>6:64,v=l+2<u?63&h:64;i+=o[p]+o[m]+o[y]+o[v]}return i};r.createPromiseCapability=function createPromiseCapability(){var t=Object.create(null),r=!1;Object.defineProperty(t,"settled",{get:function get(){return r}});t.promise=new Promise((function(a,o){t.resolve=function(t){r=!0;a(t)};t.reject=function(t){r=!0;o(t)}}));return t};r.createValidAbsoluteUrl=function createValidAbsoluteUrl(t){var r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null,a=arguments.length>2&&void 0!==arguments[2]?arguments[2]:null;if(!t)return null;try{if(a&&"string"==typeof t){if(a.addDefaultProtocol&&t.startsWith("www.")){var o=t.match(/\./g);o&&o.length>=2&&(t="http://".concat(t))}if(a.tryConvertEncoding)try{t=stringToUTF8String(t)}catch(t){}}var i=r?new URL(t,r):new URL(t);if(_isValidProtocol(i))return i}catch(t){}return null};r.escapeString=function escapeString(t){return t.replace(/([()\\\n\r])/g,(function(t){return"\n"===t?"\\n":"\r"===t?"\\r":"\\".concat(t)}))};r.getModificationDate=function getModificationDate(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:new Date,r=[t.getUTCFullYear().toString(),(t.getUTCMonth()+1).toString().padStart(2,"0"),t.getUTCDate().toString().padStart(2,"0"),t.getUTCHours().toString().padStart(2,"0"),t.getUTCMinutes().toString().padStart(2,"0"),t.getUTCSeconds().toString().padStart(2,"0")];return r.join("")};r.getVerbosityLevel=function getVerbosityLevel(){return i};r.info=function info(t){i>=o.INFOS&&console.log("Info: ".concat(t))};r.isArrayBuffer=function isArrayBuffer(t){return"object"===_typeof(t)&&null!==t&&void 0!==t.byteLength};r.isArrayEqual=function isArrayEqual(t,r){if(t.length!==r.length)return!1;for(var a=0,o=t.length;a<o;a++)if(t[a]!==r[a])return!1;return!0};r.isAscii=function isAscii(t){return/^[\x00-\x7F]*$/.test(t)};r.isBool=function isBool(t){return"boolean"==typeof t};r.isNum=function isNum(t){return"number"==typeof t};r.isSameOrigin=function isSameOrigin(t,r){var a;try{if(!(a=new URL(t)).origin||"null"===a.origin)return!1}catch(t){return!1}var o=new URL(r,a);return a.origin===o.origin};r.isString=function isString(t){return"string"==typeof t};r.objectFromMap=function objectFromMap(t){var r,a=Object.create(null),o=function _createForOfIteratorHelper(t,r){var a="undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(!a){if(Array.isArray(t)||(a=_unsupportedIterableToArray(t))||r&&t&&"number"==typeof t.length){a&&(t=a);var o=0,i=function F(){};return{s:i,n:function n(){return o>=t.length?{done:!0}:{done:!1,value:t[o++]}},e:function e(t){throw t},f:i}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var l,u=!0,c=!1;return{s:function s(){a=a.call(t)},n:function n(){var t=a.next();u=t.done;return t},e:function e(t){c=!0;l=t},f:function f(){try{u||null==a.return||a.return()}finally{if(c)throw l}}}}(t);try{for(o.s();!(r=o.n()).done;){var i=(c=r.value,d=2,function _arrayWithHoles(t){if(Array.isArray(t))return t}(c)||function _iterableToArrayLimit(t,r){var a=null==t?null:"undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(null==a)return;var o,i,l=[],u=!0,c=!1;try{for(a=a.call(t);!(u=(o=a.next()).done);u=!0){l.push(o.value);if(r&&l.length===r)break}}catch(t){c=!0;i=t}finally{try{u||null==a.return||a.return()}finally{if(c)throw i}}return l}(c,d)||_unsupportedIterableToArray(c,d)||function _nonIterableRest(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()),l=i[0],u=i[1];a[l]=u}}catch(t){o.e(t)}finally{o.f()}var c,d;return a};r.objectSize=function objectSize(t){return Object.keys(t).length};r.removeNullCharacters=function removeNullCharacters(t){if("string"!=typeof t){warn("The argument for removeNullCharacters must be a string.");return t}return t.replace(v,"")};r.setVerbosityLevel=function setVerbosityLevel(t){Number.isInteger(t)&&(i=t)};r.shadow=shadow;r.string32=function string32(t){return String.fromCharCode(t>>24&255,t>>16&255,t>>8&255,255&t)};r.stringToBytes=stringToBytes;r.stringToPDFString=function stringToPDFString(t){var r=t.length,a=[];if("þ"===t[0]&&"ÿ"===t[1])for(var o=2;o<r;o+=2)a.push(String.fromCharCode(t.charCodeAt(o)<<8|t.charCodeAt(o+1)));else if("ÿ"===t[0]&&"þ"===t[1])for(var i=2;i<r;i+=2)a.push(String.fromCharCode(t.charCodeAt(i+1)<<8|t.charCodeAt(i)));else for(var l=0;l<r;++l){var u=A[t.charCodeAt(l)];a.push(u?String.fromCharCode(u):t.charAt(l))}return a.join("")};r.stringToUTF16BEString=function stringToUTF16BEString(t){for(var r=["þÿ"],a=0,o=t.length;a<o;a++){var i=t.charCodeAt(a);r.push(String.fromCharCode(i>>8&255),String.fromCharCode(255&i))}return r.join("")};r.stringToUTF8String=stringToUTF8String;r.unreachable=unreachable;r.utf8StringToString=function utf8StringToString(t){return unescape(encodeURIComponent(t))};r.warn=warn;r.VerbosityLevel=r.Util=r.UNSUPPORTED_FEATURES=r.UnknownErrorException=r.UnexpectedResponseException=r.TextRenderingMode=r.StreamType=r.RenderingIntentFlag=r.PermissionFlag=r.PasswordResponses=r.PasswordException=r.PageActionEventType=r.OPS=r.MissingPDFException=r.IsLittleEndianCached=r.IsEvalSupportedCached=r.InvalidPDFException=r.ImageKind=r.IDENTITY_MATRIX=r.FormatError=r.FontType=r.FONT_IDENTITY_MATRIX=r.DocumentActionEventType=r.CMapCompressionType=r.BaseException=r.AnnotationType=r.AnnotationStateModelType=r.AnnotationReviewState=r.AnnotationReplyType=r.AnnotationMode=r.AnnotationMarkedState=r.AnnotationFlag=r.AnnotationFieldFlag=r.AnnotationBorderStyleType=r.AnnotationActionEventType=r.AbortException=void 0;a(5);function _defineProperties(t,r){for(var a=0;a<r.length;a++){var o=r[a];o.enumerable=o.enumerable||!1;o.configurable=!0;"value"in o&&(o.writable=!0);Object.defineProperty(t,o.key,o)}}function _unsupportedIterableToArray(t,r){if(t){if("string"==typeof t)return _arrayLikeToArray(t,r);var a=Object.prototype.toString.call(t).slice(8,-1);"Object"===a&&t.constructor&&(a=t.constructor.name);return"Map"===a||"Set"===a?Array.from(t):"Arguments"===a||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(a)?_arrayLikeToArray(t,r):void 0}}function _arrayLikeToArray(t,r){(null==r||r>t.length)&&(r=t.length);for(var a=0,o=new Array(r);a<r;a++)o[a]=t[a];return o}function _typeof(t){_typeof="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function _typeof(t){return typeof t}:function _typeof(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t};return _typeof(t)}function _classCallCheck(t,r){if(!(t instanceof r))throw new TypeError("Cannot call a class as a function")}function _inherits(t,r){if("function"!=typeof r&&null!==r)throw new TypeError("Super expression must either be null or a function");t.prototype=Object.create(r&&r.prototype,{constructor:{value:t,writable:!0,configurable:!0}});r&&_setPrototypeOf(t,r)}function _setPrototypeOf(t,r){_setPrototypeOf=Object.setPrototypeOf||function _setPrototypeOf(t,r){t.__proto__=r;return t};return _setPrototypeOf(t,r)}function _createSuper(t){var r=function _isNativeReflectConstruct(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){})));return!0}catch(t){return!1}}();return function _createSuperInternal(){var a,o=_getPrototypeOf(t);if(r){var i=_getPrototypeOf(this).constructor;a=Reflect.construct(o,arguments,i)}else a=o.apply(this,arguments);return _possibleConstructorReturn(this,a)}}function _possibleConstructorReturn(t,r){if(r&&("object"===_typeof(r)||"function"==typeof r))return r;if(void 0!==r)throw new TypeError("Derived constructors may only return object or undefined");return function _assertThisInitialized(t){if(void 0===t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return t}(t)}function _getPrototypeOf(t){_getPrototypeOf=Object.setPrototypeOf?Object.getPrototypeOf:function _getPrototypeOf(t){return t.__proto__||Object.getPrototypeOf(t)};return _getPrototypeOf(t)}r.IDENTITY_MATRIX=[1,0,0,1,0,0];r.FONT_IDENTITY_MATRIX=[.001,0,0,.001,0,0];r.RenderingIntentFlag={ANY:1,DISPLAY:2,PRINT:4,ANNOTATIONS_FORMS:16,ANNOTATIONS_STORAGE:32,ANNOTATIONS_DISABLE:64,OPLIST:256};r.AnnotationMode={DISABLE:0,ENABLE:1,ENABLE_FORMS:2,ENABLE_STORAGE:3};r.PermissionFlag={PRINT:4,MODIFY_CONTENTS:8,COPY:16,MODIFY_ANNOTATIONS:32,FILL_INTERACTIVE_FORMS:256,COPY_FOR_ACCESSIBILITY:512,ASSEMBLE:1024,PRINT_HIGH_QUALITY:2048};r.TextRenderingMode={FILL:0,STROKE:1,FILL_STROKE:2,INVISIBLE:3,FILL_ADD_TO_PATH:4,STROKE_ADD_TO_PATH:5,FILL_STROKE_ADD_TO_PATH:6,ADD_TO_PATH:7,FILL_STROKE_MASK:3,ADD_TO_PATH_FLAG:4};r.ImageKind={GRAYSCALE_1BPP:1,RGB_24BPP:2,RGBA_32BPP:3};r.AnnotationType={TEXT:1,LINK:2,FREETEXT:3,LINE:4,SQUARE:5,CIRCLE:6,POLYGON:7,POLYLINE:8,HIGHLIGHT:9,UNDERLINE:10,SQUIGGLY:11,STRIKEOUT:12,STAMP:13,CARET:14,INK:15,POPUP:16,FILEATTACHMENT:17,SOUND:18,MOVIE:19,WIDGET:20,SCREEN:21,PRINTERMARK:22,TRAPNET:23,WATERMARK:24,THREED:25,REDACT:26};r.AnnotationStateModelType={MARKED:"Marked",REVIEW:"Review"};r.AnnotationMarkedState={MARKED:"Marked",UNMARKED:"Unmarked"};r.AnnotationReviewState={ACCEPTED:"Accepted",REJECTED:"Rejected",CANCELLED:"Cancelled",COMPLETED:"Completed",NONE:"None"};r.AnnotationReplyType={GROUP:"Group",REPLY:"R"};r.AnnotationFlag={INVISIBLE:1,HIDDEN:2,PRINT:4,NOZOOM:8,NOROTATE:16,NOVIEW:32,READONLY:64,LOCKED:128,TOGGLENOVIEW:256,LOCKEDCONTENTS:512};r.AnnotationFieldFlag={READONLY:1,REQUIRED:2,NOEXPORT:4,MULTILINE:4096,PASSWORD:8192,NOTOGGLETOOFF:16384,RADIO:32768,PUSHBUTTON:65536,COMBO:131072,EDIT:262144,SORT:524288,FILESELECT:1048576,MULTISELECT:2097152,DONOTSPELLCHECK:4194304,DONOTSCROLL:8388608,COMB:16777216,RICHTEXT:33554432,RADIOSINUNISON:33554432,COMMITONSELCHANGE:67108864};r.AnnotationBorderStyleType={SOLID:1,DASHED:2,BEVELED:3,INSET:4,UNDERLINE:5};r.AnnotationActionEventType={E:"Mouse Enter",X:"Mouse Exit",D:"Mouse Down",U:"Mouse Up",Fo:"Focus",Bl:"Blur",PO:"PageOpen",PC:"PageClose",PV:"PageVisible",PI:"PageInvisible",K:"Keystroke",F:"Format",V:"Validate",C:"Calculate"};r.DocumentActionEventType={WC:"WillClose",WS:"WillSave",DS:"DidSave",WP:"WillPrint",DP:"DidPrint"};r.PageActionEventType={O:"PageOpen",C:"PageClose"};r.StreamType={UNKNOWN:"UNKNOWN",FLATE:"FLATE",LZW:"LZW",DCT:"DCT",JPX:"JPX",JBIG:"JBIG",A85:"A85",AHX:"AHX",CCF:"CCF",RLX:"RLX"};r.FontType={UNKNOWN:"UNKNOWN",TYPE1:"TYPE1",TYPE1STANDARD:"TYPE1STANDARD",TYPE1C:"TYPE1C",CIDFONTTYPE0:"CIDFONTTYPE0",CIDFONTTYPE0C:"CIDFONTTYPE0C",TRUETYPE:"TRUETYPE",CIDFONTTYPE2:"CIDFONTTYPE2",TYPE3:"TYPE3",OPENTYPE:"OPENTYPE",TYPE0:"TYPE0",MMTYPE1:"MMTYPE1"};var o={ERRORS:0,WARNINGS:1,INFOS:5};r.VerbosityLevel=o;r.CMapCompressionType={NONE:0,BINARY:1,STREAM:2};r.OPS={dependency:1,setLineWidth:2,setLineCap:3,setLineJoin:4,setMiterLimit:5,setDash:6,setRenderingIntent:7,setFlatness:8,setGState:9,save:10,restore:11,transform:12,moveTo:13,lineTo:14,curveTo:15,curveTo2:16,curveTo3:17,closePath:18,rectangle:19,stroke:20,closeStroke:21,fill:22,eoFill:23,fillStroke:24,eoFillStroke:25,closeFillStroke:26,closeEOFillStroke:27,endPath:28,clip:29,eoClip:30,beginText:31,endText:32,setCharSpacing:33,setWordSpacing:34,setHScale:35,setLeading:36,setFont:37,setTextRenderingMode:38,setTextRise:39,moveText:40,setLeadingMoveText:41,setTextMatrix:42,nextLine:43,showText:44,showSpacedText:45,nextLineShowText:46,nextLineSetSpacingShowText:47,setCharWidth:48,setCharWidthAndBounds:49,setStrokeColorSpace:50,setFillColorSpace:51,setStrokeColor:52,setStrokeColorN:53,setFillColor:54,setFillColorN:55,setStrokeGray:56,setFillGray:57,setStrokeRGBColor:58,setFillRGBColor:59,setStrokeCMYKColor:60,setFillCMYKColor:61,shadingFill:62,beginInlineImage:63,beginImageData:64,endInlineImage:65,paintXObject:66,markPoint:67,markPointProps:68,beginMarkedContent:69,beginMarkedContentProps:70,endMarkedContent:71,beginCompat:72,endCompat:73,paintFormXObjectBegin:74,paintFormXObjectEnd:75,beginGroup:76,endGroup:77,beginAnnotations:78,endAnnotations:79,beginAnnotation:80,endAnnotation:81,paintJpegXObject:82,paintImageMaskXObject:83,paintImageMaskXObjectGroup:84,paintImageXObject:85,paintInlineImageXObject:86,paintInlineImageXObjectGroup:87,paintImageXObjectRepeat:88,paintImageMaskXObjectRepeat:89,paintSolidColorImageMask:90,constructPath:91};r.UNSUPPORTED_FEATURES={unknown:"unknown",forms:"forms",javaScript:"javaScript",signatures:"signatures",smask:"smask",shadingPattern:"shadingPattern",font:"font",errorTilingPattern:"errorTilingPattern",errorExtGState:"errorExtGState",errorXObject:"errorXObject",errorFontLoadType3:"errorFontLoadType3",errorFontState:"errorFontState",errorFontMissing:"errorFontMissing",errorFontTranslate:"errorFontTranslate",errorColorSpace:"errorColorSpace",errorOperatorList:"errorOperatorList",errorFontToUnicode:"errorFontToUnicode",errorFontLoadNative:"errorFontLoadNative",errorFontBuildPath:"errorFontBuildPath",errorFontGetPath:"errorFontGetPath",errorMarkedContent:"errorMarkedContent",errorContentSubStream:"errorContentSubStream"};r.PasswordResponses={NEED_PASSWORD:1,INCORRECT_PASSWORD:2};var i=o.WARNINGS;function warn(t){i>=o.WARNINGS&&console.log("Warning: ".concat(t))}function unreachable(t){throw new Error(t)}function assert(t,r){t||unreachable(r)}function _isValidProtocol(t){if(!t)return!1;switch(t.protocol){case"http:":case"https:":case"ftp:":case"mailto:":case"tel:":return!0;default:return!1}}function shadow(t,r,a){Object.defineProperty(t,r,{value:a,enumerable:!0,configurable:!0,writable:!1});return a}var l=function BaseExceptionClosure(){function BaseException(t,r){this.constructor===BaseException&&unreachable("Cannot initialize BaseException.");this.message=t;this.name=r}BaseException.prototype=new Error;BaseException.constructor=BaseException;return BaseException}();r.BaseException=l;var u=function(t){_inherits(PasswordException,t);var r=_createSuper(PasswordException);function PasswordException(t,a){var o;_classCallCheck(this,PasswordException);(o=r.call(this,t,"PasswordException")).code=a;return o}return PasswordException}(l);r.PasswordException=u;var c=function(t){_inherits(UnknownErrorException,t);var r=_createSuper(UnknownErrorException);function UnknownErrorException(t,a){var o;_classCallCheck(this,UnknownErrorException);(o=r.call(this,t,"UnknownErrorException")).details=a;return o}return UnknownErrorException}(l);r.UnknownErrorException=c;var d=function(t){_inherits(InvalidPDFException,t);var r=_createSuper(InvalidPDFException);function InvalidPDFException(t){_classCallCheck(this,InvalidPDFException);return r.call(this,t,"InvalidPDFException")}return InvalidPDFException}(l);r.InvalidPDFException=d;var h=function(t){_inherits(MissingPDFException,t);var r=_createSuper(MissingPDFException);function MissingPDFException(t){_classCallCheck(this,MissingPDFException);return r.call(this,t,"MissingPDFException")}return MissingPDFException}(l);r.MissingPDFException=h;var p=function(t){_inherits(UnexpectedResponseException,t);var r=_createSuper(UnexpectedResponseException);function UnexpectedResponseException(t,a){var o;_classCallCheck(this,UnexpectedResponseException);(o=r.call(this,t,"UnexpectedResponseException")).status=a;return o}return UnexpectedResponseException}(l);r.UnexpectedResponseException=p;var m=function(t){_inherits(FormatError,t);var r=_createSuper(FormatError);function FormatError(t){_classCallCheck(this,FormatError);return r.call(this,t,"FormatError")}return FormatError}(l);r.FormatError=m;var y=function(t){_inherits(AbortException,t);var r=_createSuper(AbortException);function AbortException(t){_classCallCheck(this,AbortException);return r.call(this,t,"AbortException")}return AbortException}(l);r.AbortException=y;var v=/\x00/g;function stringToBytes(t){assert("string"==typeof t,"Invalid argument for stringToBytes");for(var r=t.length,a=new Uint8Array(r),o=0;o<r;++o)a[o]=255&t.charCodeAt(o);return a}function arrayByteLength(t){if(void 0!==t.length)return t.length;assert(void 0!==t.byteLength,"arrayByteLength - invalid argument.");return t.byteLength}var g={get value(){return shadow(this,"value",function isLittleEndian(){var t=new Uint8Array(4);t[0]=1;return 1===new Uint32Array(t.buffer,0,1)[0]}())}};r.IsLittleEndianCached=g;var b={get value(){return shadow(this,"value",function isEvalSupported(){try{new Function("");return!0}catch(t){return!1}}())}};r.IsEvalSupportedCached=b;var _=function _toConsumableArray(t){return function _arrayWithoutHoles(t){if(Array.isArray(t))return _arrayLikeToArray(t)}(t)||function _iterableToArray(t){if("undefined"!=typeof Symbol&&null!=t[Symbol.iterator]||null!=t["@@iterator"])return Array.from(t)}(t)||_unsupportedIterableToArray(t)||function _nonIterableSpread(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}(Array(256).keys()).map((function(t){return t.toString(16).padStart(2,"0")})),S=function(){function Util(){_classCallCheck(this,Util)}!function _createClass(t,r,a){r&&_defineProperties(t.prototype,r);a&&_defineProperties(t,a);return t}(Util,null,[{key:"makeHexColor",value:function makeHexColor(t,r,a){return"#".concat(_[t]).concat(_[r]).concat(_[a])}},{key:"transform",value:function transform(t,r){return[t[0]*r[0]+t[2]*r[1],t[1]*r[0]+t[3]*r[1],t[0]*r[2]+t[2]*r[3],t[1]*r[2]+t[3]*r[3],t[0]*r[4]+t[2]*r[5]+t[4],t[1]*r[4]+t[3]*r[5]+t[5]]}},{key:"applyTransform",value:function applyTransform(t,r){return[t[0]*r[0]+t[1]*r[2]+r[4],t[0]*r[1]+t[1]*r[3]+r[5]]}},{key:"applyInverseTransform",value:function applyInverseTransform(t,r){var a=r[0]*r[3]-r[1]*r[2];return[(t[0]*r[3]-t[1]*r[2]+r[2]*r[5]-r[4]*r[3])/a,(-t[0]*r[1]+t[1]*r[0]+r[4]*r[1]-r[5]*r[0])/a]}},{key:"getAxialAlignedBoundingBox",value:function getAxialAlignedBoundingBox(t,r){var a=Util.applyTransform(t,r),o=Util.applyTransform(t.slice(2,4),r),i=Util.applyTransform([t[0],t[3]],r),l=Util.applyTransform([t[2],t[1]],r);return[Math.min(a[0],o[0],i[0],l[0]),Math.min(a[1],o[1],i[1],l[1]),Math.max(a[0],o[0],i[0],l[0]),Math.max(a[1],o[1],i[1],l[1])]}},{key:"inverseTransform",value:function inverseTransform(t){var r=t[0]*t[3]-t[1]*t[2];return[t[3]/r,-t[1]/r,-t[2]/r,t[0]/r,(t[2]*t[5]-t[4]*t[3])/r,(t[4]*t[1]-t[5]*t[0])/r]}},{key:"apply3dTransform",value:function apply3dTransform(t,r){return[t[0]*r[0]+t[1]*r[1]+t[2]*r[2],t[3]*r[0]+t[4]*r[1]+t[5]*r[2],t[6]*r[0]+t[7]*r[1]+t[8]*r[2]]}},{key:"singularValueDecompose2dScale",value:function singularValueDecompose2dScale(t){var r=[t[0],t[2],t[1],t[3]],a=t[0]*r[0]+t[1]*r[2],o=t[0]*r[1]+t[1]*r[3],i=t[2]*r[0]+t[3]*r[2],l=t[2]*r[1]+t[3]*r[3],u=(a+l)/2,c=Math.sqrt(Math.pow(a+l,2)-4*(a*l-i*o))/2,d=u+c||1,h=u-c||1;return[Math.sqrt(d),Math.sqrt(h)]}},{key:"normalizeRect",value:function normalizeRect(t){var r=t.slice(0);if(t[0]>t[2]){r[0]=t[2];r[2]=t[0]}if(t[1]>t[3]){r[1]=t[3];r[3]=t[1]}return r}},{key:"intersect",value:function intersect(t,r){function compare(t,r){return t-r}var a=[t[0],t[2],r[0],r[2]].sort(compare),o=[t[1],t[3],r[1],r[3]].sort(compare),i=[];t=Util.normalizeRect(t);r=Util.normalizeRect(r);if(!(a[0]===t[0]&&a[1]===r[0]||a[0]===r[0]&&a[1]===t[0]))return null;i[0]=a[1];i[2]=a[2];if(!(o[0]===t[1]&&o[1]===r[1]||o[0]===r[1]&&o[1]===t[1]))return null;i[1]=o[1];i[3]=o[2];return i}}]);return Util}();r.Util=S;var A=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,728,711,710,729,733,731,730,732,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,8226,8224,8225,8230,8212,8211,402,8260,8249,8250,8722,8240,8222,8220,8221,8216,8217,8218,8482,64257,64258,321,338,352,376,381,305,322,339,353,382,0,8364];function stringToUTF8String(t){return decodeURIComponent(escape(t))}},(t,r,a)=>{"use strict";var o=a(6);if("undefined"==typeof globalThis||!globalThis._pdfjsCompatibilityChecked){"undefined"!=typeof globalThis&&globalThis.Math===Math||(globalThis=a(7));globalThis._pdfjsCompatibilityChecked=!0;!function checkNodeBtoa(){!globalThis.btoa&&o.isNodeJS&&(globalThis.btoa=function(t){return Buffer.from(t,"binary").toString("base64")})}();!function checkNodeAtob(){!globalThis.atob&&o.isNodeJS&&(globalThis.atob=function(t){return Buffer.from(t,"base64").toString("binary")})}();!function checkDOMMatrix(){!globalThis.DOMMatrix&&o.isNodeJS&&(globalThis.DOMMatrix=a(60))}();!function checkObjectFromEntries(){Object.fromEntries||a(61)}();!function checkPromise(){globalThis.Promise.allSettled||(globalThis.Promise=a(89))}();!function checkReadableStream(){!globalThis.ReadableStream&&o.isNodeJS&&(globalThis.ReadableStream=a(117).ReadableStream)}()}},(t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});r.isNodeJS=void 0;function _typeof(t){_typeof="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function _typeof(t){return typeof t}:function _typeof(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t};return _typeof(t)}var a=!("object"!==("undefined"==typeof process?"undefined":_typeof(process))||process+""!="[object process]"||process.versions.nw||process.versions.electron&&process.type&&"browser"!==process.type);r.isNodeJS=a},(t,r,a)=>{a(8);t.exports=a(10)},(t,r,a)=>{a(9)({global:!0},{globalThis:a(10)})},(t,r,a)=>{var o=a(10),i=a(11).f,l=a(40),u=a(43),c=a(34),d=a(49),h=a(59);t.exports=function(t,r){var a,p,m,y,v,g=t.target,b=t.global,_=t.stat;if(a=b?o:_?o[g]||c(g,{}):(o[g]||{}).prototype)for(p in r){y=r[p];m=t.noTargetGet?(v=i(a,p))&&v.value:a[p];if(!h(b?p:g+(_?".":"#")+p,t.forced)&&void 0!==m){if(typeof y==typeof m)continue;d(y,m)}(t.sham||m&&m.sham)&&l(y,"sham",!0);u(a,p,y,t)}}},t=>{var check=function(t){return t&&t.Math==Math&&t};t.exports=check("object"==typeof globalThis&&globalThis)||check("object"==typeof window&&window)||check("object"==typeof self&&self)||check("object"==typeof global&&global)||function(){return this}()||Function("return this")()},(t,r,a)=>{var o=a(12),i=a(14),l=a(15),u=a(16),c=a(20),d=a(35),h=a(38),p=Object.getOwnPropertyDescriptor;r.f=o?p:function getOwnPropertyDescriptor(t,r){t=u(t);r=c(r);if(h)try{return p(t,r)}catch(t){}if(d(t,r))return l(!i.f.call(t,r),t[r])}},(t,r,a)=>{var o=a(13);t.exports=!o((function(){return 7!=Object.defineProperty({},1,{get:function(){return 7}})[1]}))},t=>{t.exports=function(t){try{return!!t()}catch(t){return!0}}},(t,r)=>{"use strict";var a={}.propertyIsEnumerable,o=Object.getOwnPropertyDescriptor,i=o&&!a.call({1:2},1);r.f=i?function propertyIsEnumerable(t){var r=o(this,t);return!!r&&r.enumerable}:a},t=>{t.exports=function(t,r){return{enumerable:!(1&t),configurable:!(2&t),writable:!(4&t),value:r}}},(t,r,a)=>{var o=a(17),i=a(19);t.exports=function(t){return o(i(t))}},(t,r,a)=>{var o=a(13),i=a(18),l="".split;t.exports=o((function(){return!Object("z").propertyIsEnumerable(0)}))?function(t){return"String"==i(t)?l.call(t,""):Object(t)}:Object},t=>{var r={}.toString;t.exports=function(t){return r.call(t).slice(8,-1)}},t=>{t.exports=function(t){if(null==t)throw TypeError("Can't call method on "+t);return t}},(t,r,a)=>{var o=a(21),i=a(23);t.exports=function(t){var r=o(t,"string");return i(r)?r:String(r)}},(t,r,a)=>{var o=a(22),i=a(23),l=a(29),u=a(30)("toPrimitive");t.exports=function(t,r){if(!o(t)||i(t))return t;var a,c=t[u];if(void 0!==c){void 0===r&&(r="default");a=c.call(t,r);if(!o(a)||i(a))return a;throw TypeError("Can't convert object to primitive value")}void 0===r&&(r="number");return l(t,r)}},t=>{t.exports=function(t){return"object"==typeof t?null!==t:"function"==typeof t}},(t,r,a)=>{var o=a(24),i=a(25);t.exports=i?function(t){return"symbol"==typeof t}:function(t){var r=o("Symbol");return"function"==typeof r&&Object(t)instanceof r}},(t,r,a)=>{var o=a(10),aFunction=function(t){return"function"==typeof t?t:void 0};t.exports=function(t,r){return arguments.length<2?aFunction(o[t]):o[t]&&o[t][r]}},(t,r,a)=>{var o=a(26);t.exports=o&&!Symbol.sham&&"symbol"==typeof Symbol.iterator},(t,r,a)=>{var o=a(27),i=a(13);t.exports=!!Object.getOwnPropertySymbols&&!i((function(){var t=Symbol();return!String(t)||!(Object(t)instanceof Symbol)||!Symbol.sham&&o&&o<41}))},(t,r,a)=>{var o,i,l=a(10),u=a(28),c=l.process,d=l.Deno,h=c&&c.versions||d&&d.version,p=h&&h.v8;p?i=(o=p.split("."))[0]<4?1:o[0]+o[1]:u&&(!(o=u.match(/Edge\/(\d+)/))||o[1]>=74)&&(o=u.match(/Chrome\/(\d+)/))&&(i=o[1]);t.exports=i&&+i},(t,r,a)=>{var o=a(24);t.exports=o("navigator","userAgent")||""},(t,r,a)=>{var o=a(22);t.exports=function(t,r){var a,i;if("string"===r&&"function"==typeof(a=t.toString)&&!o(i=a.call(t)))return i;if("function"==typeof(a=t.valueOf)&&!o(i=a.call(t)))return i;if("string"!==r&&"function"==typeof(a=t.toString)&&!o(i=a.call(t)))return i;throw TypeError("Can't convert object to primitive value")}},(t,r,a)=>{var o=a(10),i=a(31),l=a(35),u=a(37),c=a(26),d=a(25),h=i("wks"),p=o.Symbol,m=d?p:p&&p.withoutSetter||u;t.exports=function(t){l(h,t)&&(c||"string"==typeof h[t])||(c&&l(p,t)?h[t]=p[t]:h[t]=m("Symbol."+t));return h[t]}},(t,r,a)=>{var o=a(32),i=a(33);(t.exports=function(t,r){return i[t]||(i[t]=void 0!==r?r:{})})("versions",[]).push({version:"3.17.3",mode:o?"pure":"global",copyright:"© 2021 Denis Pushkarev (zloirock.ru)"})},t=>{t.exports=!1},(t,r,a)=>{var o=a(10),i=a(34),l="__core-js_shared__",u=o[l]||i(l,{});t.exports=u},(t,r,a)=>{var o=a(10);t.exports=function(t,r){try{Object.defineProperty(o,t,{value:r,configurable:!0,writable:!0})}catch(a){o[t]=r}return r}},(t,r,a)=>{var o=a(36),i={}.hasOwnProperty;t.exports=Object.hasOwn||function hasOwn(t,r){return i.call(o(t),r)}},(t,r,a)=>{var o=a(19);t.exports=function(t){return Object(o(t))}},t=>{var r=0,a=Math.random();t.exports=function(t){return"Symbol("+String(void 0===t?"":t)+")_"+(++r+a).toString(36)}},(t,r,a)=>{var o=a(12),i=a(13),l=a(39);t.exports=!o&&!i((function(){return 7!=Object.defineProperty(l("div"),"a",{get:function(){return 7}}).a}))},(t,r,a)=>{var o=a(10),i=a(22),l=o.document,u=i(l)&&i(l.createElement);t.exports=function(t){return u?l.createElement(t):{}}},(t,r,a)=>{var o=a(12),i=a(41),l=a(15);t.exports=o?function(t,r,a){return i.f(t,r,l(1,a))}:function(t,r,a){t[r]=a;return t}},(t,r,a)=>{var o=a(12),i=a(38),l=a(42),u=a(20),c=Object.defineProperty;r.f=o?c:function defineProperty(t,r,a){l(t);r=u(r);l(a);if(i)try{return c(t,r,a)}catch(t){}if("get"in a||"set"in a)throw TypeError("Accessors not supported");"value"in a&&(t[r]=a.value);return t}},(t,r,a)=>{var o=a(22);t.exports=function(t){if(!o(t))throw TypeError(String(t)+" is not an object");return t}},(t,r,a)=>{var o=a(10),i=a(40),l=a(35),u=a(34),c=a(44),d=a(45),h=d.get,p=d.enforce,m=String(String).split("String");(t.exports=function(t,r,a,c){var d,h=!!c&&!!c.unsafe,y=!!c&&!!c.enumerable,v=!!c&&!!c.noTargetGet;if("function"==typeof a){"string"!=typeof r||l(a,"name")||i(a,"name",r);(d=p(a)).source||(d.source=m.join("string"==typeof r?r:""))}if(t!==o){h?!v&&t[r]&&(y=!0):delete t[r];y?t[r]=a:i(t,r,a)}else y?t[r]=a:u(r,a)})(Function.prototype,"toString",(function toString(){return"function"==typeof this&&h(this).source||c(this)}))},(t,r,a)=>{var o=a(33),i=Function.toString;"function"!=typeof o.inspectSource&&(o.inspectSource=function(t){return i.call(t)});t.exports=o.inspectSource},(t,r,a)=>{var o,i,l,u=a(46),c=a(10),d=a(22),h=a(40),p=a(35),m=a(33),y=a(47),v=a(48),g="Object already initialized",b=c.WeakMap;if(u||m.state){var _=m.state||(m.state=new b),S=_.get,A=_.has,C=_.set;o=function(t,r){if(A.call(_,t))throw new TypeError(g);r.facade=t;C.call(_,t,r);return r};i=function(t){return S.call(_,t)||{}};l=function(t){return A.call(_,t)}}else{var k=y("state");v[k]=!0;o=function(t,r){if(p(t,k))throw new TypeError(g);r.facade=t;h(t,k,r);return r};i=function(t){return p(t,k)?t[k]:{}};l=function(t){return p(t,k)}}t.exports={set:o,get:i,has:l,enforce:function(t){return l(t)?i(t):o(t,{})},getterFor:function(t){return function(r){var a;if(!d(r)||(a=i(r)).type!==t)throw TypeError("Incompatible receiver, "+t+" required");return a}}}},(t,r,a)=>{var o=a(10),i=a(44),l=o.WeakMap;t.exports="function"==typeof l&&/native code/.test(i(l))},(t,r,a)=>{var o=a(31),i=a(37),l=o("keys");t.exports=function(t){return l[t]||(l[t]=i(t))}},t=>{t.exports={}},(t,r,a)=>{var o=a(35),i=a(50),l=a(11),u=a(41);t.exports=function(t,r){for(var a=i(r),c=u.f,d=l.f,h=0;h<a.length;h++){var p=a[h];o(t,p)||c(t,p,d(r,p))}}},(t,r,a)=>{var o=a(24),i=a(51),l=a(58),u=a(42);t.exports=o("Reflect","ownKeys")||function ownKeys(t){var r=i.f(u(t)),a=l.f;return a?r.concat(a(t)):r}},(t,r,a)=>{var o=a(52),i=a(57).concat("length","prototype");r.f=Object.getOwnPropertyNames||function getOwnPropertyNames(t){return o(t,i)}},(t,r,a)=>{var o=a(35),i=a(16),l=a(53).indexOf,u=a(48);t.exports=function(t,r){var a,c=i(t),d=0,h=[];for(a in c)!o(u,a)&&o(c,a)&&h.push(a);for(;r.length>d;)o(c,a=r[d++])&&(~l(h,a)||h.push(a));return h}},(t,r,a)=>{var o=a(16),i=a(54),l=a(56),createMethod=function(t){return function(r,a,u){var c,d=o(r),h=i(d.length),p=l(u,h);if(t&&a!=a){for(;h>p;)if((c=d[p++])!=c)return!0}else for(;h>p;p++)if((t||p in d)&&d[p]===a)return t||p||0;return!t&&-1}};t.exports={includes:createMethod(!0),indexOf:createMethod(!1)}},(t,r,a)=>{var o=a(55),i=Math.min;t.exports=function(t){return t>0?i(o(t),9007199254740991):0}},t=>{var r=Math.ceil,a=Math.floor;t.exports=function(t){return isNaN(t=+t)?0:(t>0?a:r)(t)}},(t,r,a)=>{var o=a(55),i=Math.max,l=Math.min;t.exports=function(t,r){var a=o(t);return a<0?i(a+r,0):l(a,r)}},t=>{t.exports=["constructor","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","toLocaleString","toString","valueOf"]},(t,r)=>{r.f=Object.getOwnPropertySymbols},(t,r,a)=>{var o=a(13),i=/#|\.prototype\./,isForced=function(t,r){var a=u[l(t)];return a==d||a!=c&&("function"==typeof r?o(r):!!r)},l=isForced.normalize=function(t){return String(t).replace(i,".").toLowerCase()},u=isForced.data={},c=isForced.NATIVE="N",d=isForced.POLYFILL="P";t.exports=isForced},(t,r,a)=>{"use strict";var o,i,l;function _typeof(t){_typeof="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function _typeof(t){return typeof t}:function _typeof(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t};return _typeof(t)}l=function(){var t=function CSSMatrix(){for(var t=[],r=arguments.length;r--;)t[r]=arguments[r];this.setIdentity();return t&&t.length&&this.setMatrixValue(t)},r={isIdentity:{configurable:!0},is2D:{configurable:!0}};r.isIdentity.get=function(){var t=this;return 1===t.m11&&0===t.m12&&0===t.m13&&0===t.m14&&0===t.m21&&1===t.m22&&0===t.m23&&0===t.m24&&0===t.m31&&0===t.m32&&1===t.m33&&0===t.m34&&0===t.m41&&0===t.m42&&0===t.m43&&1===t.m44};r.isIdentity.set=function(t){this.isIdentity=t};r.is2D.get=function(){var t=this;return 0===t.m31&&0===t.m32&&1===t.m33&&0===t.m34&&0===t.m43&&1===t.m44};r.is2D.set=function(t){this.is2D=t};Object.defineProperties(t.prototype,r);var a=t.prototype;function Translate(r,a,o){var i=new t;i.m41=r;i.e=r;i.m42=a;i.f=a;i.m43=o;return i}function Rotate(r,a,o){var i=new t,l=r*Math.PI/180,u=a*Math.PI/180,c=o*Math.PI/180,d=Math.cos(l),h=-Math.sin(l),p=Math.cos(u),m=-Math.sin(u),y=Math.cos(c),v=-Math.sin(c),g=p*y,b=-p*v;i.m11=g;i.a=g;i.m12=b;i.b=b;i.m13=m;var _=h*m*y+d*v;i.m21=_;i.c=_;var S=d*y-h*m*v;i.m22=S;i.d=S;i.m23=-h*p;i.m31=h*v-d*m*y;i.m32=h*y+d*m*v;i.m33=d*p;return i}function RotateAxisAngle(r,a,o,i){var l=new t,u=i*Math.PI/360,c=Math.sin(u),d=Math.cos(u),h=c*c,p=Math.sqrt(r*r+a*a+o*o),m=0,y=0,v=1;if(0!==p){m=r/p;y=a/p;v=o/p}var g=m*m,b=y*y,_=v*v,S=1-2*(b+_)*h;l.m11=S;l.a=S;var A=2*(r*a*h+o*c*d);l.m12=A;l.b=A;l.m13=2*(r*o*h-a*c*d);var C=2*(a*r*h-o*c*d);l.m21=C;l.c=C;var k=1-2*(_+g)*h;l.m22=k;l.d=k;l.m23=2*(a*o*h+r*c*d);l.m31=2*(o*r*h+a*c*d);l.m32=2*(o*a*h-r*c*d);l.m33=1-2*(g+b)*h;l.m14=0;l.m24=0;l.m34=0;l.m41=0;l.e=0;l.m42=0;l.f=0;l.m43=0;l.m44=1;return l}function Scale(r,a,o){var i=new t;i.m11=r;i.a=r;i.m22=a;i.d=a;i.m33=o;return i}function SkewX(r){var a=r*Math.PI/180,o=new t,i=Math.tan(a);o.m21=i;o.c=i;return o}function SkewY(r){var a=r*Math.PI/180,o=new t,i=Math.tan(a);o.m12=i;o.b=i;return o}function Multiply(r,a){var o=a.m11*r.m11+a.m12*r.m21+a.m13*r.m31+a.m14*r.m41,i=a.m11*r.m12+a.m12*r.m22+a.m13*r.m32+a.m14*r.m42,l=a.m11*r.m13+a.m12*r.m23+a.m13*r.m33+a.m14*r.m43,u=a.m11*r.m14+a.m12*r.m24+a.m13*r.m34+a.m14*r.m44,c=a.m21*r.m11+a.m22*r.m21+a.m23*r.m31+a.m24*r.m41,d=a.m21*r.m12+a.m22*r.m22+a.m23*r.m32+a.m24*r.m42,h=a.m21*r.m13+a.m22*r.m23+a.m23*r.m33+a.m24*r.m43,p=a.m21*r.m14+a.m22*r.m24+a.m23*r.m34+a.m24*r.m44,m=a.m31*r.m11+a.m32*r.m21+a.m33*r.m31+a.m34*r.m41,y=a.m31*r.m12+a.m32*r.m22+a.m33*r.m32+a.m34*r.m42,v=a.m31*r.m13+a.m32*r.m23+a.m33*r.m33+a.m34*r.m43,g=a.m31*r.m14+a.m32*r.m24+a.m33*r.m34+a.m34*r.m44,b=a.m41*r.m11+a.m42*r.m21+a.m43*r.m31+a.m44*r.m41,_=a.m41*r.m12+a.m42*r.m22+a.m43*r.m32+a.m44*r.m42,S=a.m41*r.m13+a.m42*r.m23+a.m43*r.m33+a.m44*r.m43,A=a.m41*r.m14+a.m42*r.m24+a.m43*r.m34+a.m44*r.m44;return new t([o,c,m,b,i,d,y,_,l,h,v,S,u,p,g,A])}function feedFromArray(t,r){var a=Array.from(r);if(16===a.length){var o=a[0],i=a[1],l=a[2],u=a[3],c=a[4],d=a[5],h=a[6],p=a[7],m=a[8],y=a[9],v=a[10],g=a[11],b=a[12],_=a[13],S=a[14],A=a[15];t.m11=o;t.a=o;t.m21=i;t.c=i;t.m31=l;t.m41=u;t.e=u;t.m12=c;t.b=c;t.m22=d;t.d=d;t.m32=h;t.m42=p;t.f=p;t.m13=m;t.m23=y;t.m33=v;t.m43=g;t.m14=b;t.m24=_;t.m34=S;t.m44=A}else{if(6!==a.length)throw new TypeError("CSSMatrix: expecting a 6/16 values Array");var C=a[0],k=a[1],R=a[2],w=a[3],P=a[4],x=a[5];t.m11=C;t.a=C;t.m12=k;t.b=k;t.m21=R;t.c=R;t.m22=w;t.d=w;t.m14=P;t.e=P;t.m24=x;t.f=x}return t}a.setMatrixValue=function setMatrixValue(r){var a=this;if(!r||!r.length)return a;if(r.length&&"string"==typeof r[0]&&r[0].length){var o,i,l=String(r[0]).trim();if("none"===l)return a;o=l.slice(0,l.indexOf("("));i=l.slice("matrix"===o?7:9,-1).split(",").map((function(t){return Math.abs(t)<1e-6?0:+t}));if(!([6,16].indexOf(i.length)>-1))throw new TypeError("CSSMatrix: expecting valid CSS matrix() / matrix3d() syntax");feedFromArray(a,i)}else r[0]instanceof t?feedFromArray(a,r[0].toArray()):Array.isArray(r[0])?feedFromArray(a,r[0]):Array.isArray(r)&&feedFromArray(a,r);return a};a.toString=function toString(){return(this.is2D?"matrix":"matrix3d")+"("+this.toArray(1).join(",")+")"};a.toArray=function toArray(t){var r=this;return r.is2D?[r.a,r.b,r.c,r.d,r.e,r.f]:t?[r.m11,r.m12,r.m13,r.m14,r.m21,r.m22,r.m23,r.m24,r.m31,r.m32,r.m33,r.m34,r.m41,r.m42,r.m43,r.m44]:[r.m11,r.m21,r.m31,r.m41,r.m12,r.m22,r.m32,r.m42,r.m13,r.m23,r.m33,r.m43,r.m14,r.m24,r.m34,r.m44]};a.multiply=function multiply(t){return Multiply(this,t)};a.translate=function translate(t,r,a){var o=r,i=a;null==i&&(i=0);null==o&&(o=0);return Multiply(this,Translate(t,o,i))};a.scale=function scale(t,r,a){var o=r,i=a;null==o&&(o=t);null==i&&(i=t);return Multiply(this,Scale(t,o,i))};a.rotate=function rotate(t,r,a){var o=t,i=r,l=a;null==i&&(i=0);if(null==l){l=o;o=0}return Multiply(this,Rotate(o,i,l))};a.rotateAxisAngle=function rotateAxisAngle(t,r,a,o){if(4!==arguments.length)throw new TypeError("CSSMatrix: expecting 4 values");return Multiply(this,RotateAxisAngle(t,r,a,o))};a.skewX=function skewX(t){return Multiply(this,SkewX(t))};a.skewY=function skewY(t){return Multiply(this,SkewY(t))};a.setIdentity=function setIdentity(){return feedFromArray(this,[1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1])};a.transformPoint=function transformPoint(t){var r=Translate(t.x,t.y,t.z);r.m44=t.w||1;return{x:(r=this.multiply(r)).m41,y:r.m42,z:r.m43,w:r.m44}};a.transform=function transform(t){var r=this,a=r.m11*t.x+r.m12*t.y+r.m13*t.z+r.m14*t.w,o=r.m21*t.x+r.m22*t.y+r.m23*t.z+r.m24*t.w,i=r.m31*t.x+r.m32*t.y+r.m33*t.z+r.m34*t.w,l=r.m41*t.x+r.m42*t.y+r.m43*t.z+r.m44*t.w;return{x:a/l,y:o/l,z:i/l,w:l}};t.Translate=Translate;t.Rotate=Rotate;t.RotateAxisAngle=RotateAxisAngle;t.Scale=Scale;t.SkewX=SkewX;t.SkewY=SkewY;t.Multiply=Multiply;t.fromMatrix=function fromMatrix(r){return new t([r.m11,r.m21,r.m31,r.m41,r.m12,r.m22,r.m32,r.m42,r.m13,r.m23,r.m33,r.m43,r.m14,r.m24,r.m34,r.m44])};t.fromArray=function fromArray(r){return feedFromArray(new t,r)};t.feedFromArray=feedFromArray;return t},"object"===_typeof(r)?t.exports=l():void 0!==(i="function"==typeof(o=l)?o.call(r,a,r,t):o)&&(t.exports=i)},(t,r,a)=>{a(62);a(77);var o=a(88);t.exports=o.Object.fromEntries},(t,r,a)=>{"use strict";var o=a(16),i=a(63),l=a(68),u=a(45),c=a(69),d="Array Iterator",h=u.set,p=u.getterFor(d);t.exports=c(Array,"Array",(function(t,r){h(this,{type:d,target:o(t),index:0,kind:r})}),(function(){var t=p(this),r=t.target,a=t.kind,o=t.index++;if(!r||o>=r.length){t.target=void 0;return{value:void 0,done:!0}}return"keys"==a?{value:o,done:!1}:"values"==a?{value:r[o],done:!1}:{value:[o,r[o]],done:!1}}),"values");l.Arguments=l.Array;i("keys");i("values");i("entries")},(t,r,a)=>{var o=a(30),i=a(64),l=a(41),u=o("unscopables"),c=Array.prototype;null==c[u]&&l.f(c,u,{configurable:!0,value:i(null)});t.exports=function(t){c[u][t]=!0}},(t,r,a)=>{var o,i=a(42),l=a(65),u=a(57),c=a(48),d=a(67),h=a(39),p=a(47),m=p("IE_PROTO"),EmptyConstructor=function(){},scriptTag=function(t){return"<script>"+t+"</"+"script>"},NullProtoObjectViaActiveX=function(t){t.write(scriptTag(""));t.close();var r=t.parentWindow.Object;t=null;return r},NullProtoObject=function(){try{o=new ActiveXObject("htmlfile")}catch(t){}NullProtoObject="undefined"!=typeof document?document.domain&&o?NullProtoObjectViaActiveX(o):function(){var t,r=h("iframe");r.style.display="none";d.appendChild(r);r.src=String("javascript:");(t=r.contentWindow.document).open();t.write(scriptTag("document.F=Object"));t.close();return t.F}():NullProtoObjectViaActiveX(o);for(var t=u.length;t--;)delete NullProtoObject.prototype[u[t]];return NullProtoObject()};c[m]=!0;t.exports=Object.create||function create(t,r){var a;if(null!==t){EmptyConstructor.prototype=i(t);a=new EmptyConstructor;EmptyConstructor.prototype=null;a[m]=t}else a=NullProtoObject();return void 0===r?a:l(a,r)}},(t,r,a)=>{var o=a(12),i=a(41),l=a(42),u=a(66);t.exports=o?Object.defineProperties:function defineProperties(t,r){l(t);for(var a,o=u(r),c=o.length,d=0;c>d;)i.f(t,a=o[d++],r[a]);return t}},(t,r,a)=>{var o=a(52),i=a(57);t.exports=Object.keys||function keys(t){return o(t,i)}},(t,r,a)=>{var o=a(24);t.exports=o("document","documentElement")},t=>{t.exports={}},(t,r,a)=>{"use strict";var o=a(9),i=a(70),l=a(72),u=a(75),c=a(74),d=a(40),h=a(43),p=a(30),m=a(32),y=a(68),v=a(71),g=v.IteratorPrototype,b=v.BUGGY_SAFARI_ITERATORS,_=p("iterator"),S="keys",A="values",C="entries",returnThis=function(){return this};t.exports=function(t,r,a,p,v,k,R){i(a,r,p);var w,P,x,getIterationMethod=function(t){if(t===v&&D)return D;if(!b&&t in O)return O[t];switch(t){case S:return function keys(){return new a(this,t)};case A:return function values(){return new a(this,t)};case C:return function entries(){return new a(this,t)}}return function(){return new a(this)}},T=r+" Iterator",E=!1,O=t.prototype,I=O[_]||O["@@iterator"]||v&&O[v],D=!b&&I||getIterationMethod(v),M="Array"==r&&O.entries||I;if(M&&(w=l(M.call(new t)))!==Object.prototype&&w.next){m||l(w)===g||(u?u(w,g):"function"!=typeof w[_]&&d(w,_,returnThis));c(w,T,!0,!0);m&&(y[T]=returnThis)}if(v==A&&I&&I.name!==A){E=!0;D=function values(){return I.call(this)}}m&&!R||O[_]===D||d(O,_,D);y[r]=D;if(v){P={values:getIterationMethod(A),keys:k?D:getIterationMethod(S),entries:getIterationMethod(C)};if(R)for(x in P)(b||E||!(x in O))&&h(O,x,P[x]);else o({target:r,proto:!0,forced:b||E},P)}return P}},(t,r,a)=>{"use strict";var o=a(71).IteratorPrototype,i=a(64),l=a(15),u=a(74),c=a(68),returnThis=function(){return this};t.exports=function(t,r,a){var d=r+" Iterator";t.prototype=i(o,{next:l(1,a)});u(t,d,!1,!0);c[d]=returnThis;return t}},(t,r,a)=>{"use strict";var o,i,l,u=a(13),c=a(64),d=a(72),h=a(40),p=a(30),m=a(32),y=p("iterator"),v=!1;[].keys&&("next"in(l=[].keys())?(i=d(d(l)))!==Object.prototype&&(o=i):v=!0);null==o||u((function(){var t={};return o[y].call(t)!==t}))?o={}:m&&(o=c(o));"function"!=typeof o[y]&&h(o,y,(function(){return this}));t.exports={IteratorPrototype:o,BUGGY_SAFARI_ITERATORS:v}},(t,r,a)=>{var o=a(35),i=a(36),l=a(47),u=a(73),c=l("IE_PROTO"),d=Object.prototype;t.exports=u?Object.getPrototypeOf:function(t){t=i(t);return o(t,c)?t[c]:"function"==typeof t.constructor&&t instanceof t.constructor?t.constructor.prototype:t instanceof Object?d:null}},(t,r,a)=>{var o=a(13);t.exports=!o((function(){function F(){}F.prototype.constructor=null;return Object.getPrototypeOf(new F)!==F.prototype}))},(t,r,a)=>{var o=a(41).f,i=a(35),l=a(30)("toStringTag");t.exports=function(t,r,a){t&&!i(t=a?t:t.prototype,l)&&o(t,l,{configurable:!0,value:r})}},(t,r,a)=>{var o=a(42),i=a(76);t.exports=Object.setPrototypeOf||("__proto__"in{}?function(){var t,r=!1,a={};try{(t=Object.getOwnPropertyDescriptor(Object.prototype,"__proto__").set).call(a,[]);r=a instanceof Array}catch(t){}return function setPrototypeOf(a,l){o(a);i(l);r?t.call(a,l):a.__proto__=l;return a}}():void 0)},(t,r,a)=>{var o=a(22);t.exports=function(t){if(!o(t)&&null!==t)throw TypeError("Can't set "+String(t)+" as a prototype");return t}},(t,r,a)=>{var o=a(9),i=a(78),l=a(87);o({target:"Object",stat:!0},{fromEntries:function fromEntries(t){var r={};i(t,(function(t,a){l(r,t,a)}),{AS_ENTRIES:!0});return r}})},(t,r,a)=>{var o=a(42),i=a(79),l=a(54),u=a(80),c=a(82),d=a(83),h=a(86),Result=function(t,r){this.stopped=t;this.result=r};t.exports=function(t,r,a){var p,m,y,v,g,b,_,S=a&&a.that,A=!(!a||!a.AS_ENTRIES),C=!(!a||!a.IS_ITERATOR),k=!(!a||!a.INTERRUPTED),R=u(r,S,1+A+k),stop=function(t){p&&h(p,"normal",t);return new Result(!0,t)},callFn=function(t){if(A){o(t);return k?R(t[0],t[1],stop):R(t[0],t[1])}return k?R(t,stop):R(t)};if(C)p=t;else{if("function"!=typeof(m=d(t)))throw TypeError("Target is not iterable");if(i(m)){for(y=0,v=l(t.length);v>y;y++)if((g=callFn(t[y]))&&g instanceof Result)return g;return new Result(!1)}p=c(t,m)}b=p.next;for(;!(_=b.call(p)).done;){try{g=callFn(_.value)}catch(t){h(p,"throw",t)}if("object"==typeof g&&g&&g instanceof Result)return g}return new Result(!1)}},(t,r,a)=>{var o=a(30),i=a(68),l=o("iterator"),u=Array.prototype;t.exports=function(t){return void 0!==t&&(i.Array===t||u[l]===t)}},(t,r,a)=>{var o=a(81);t.exports=function(t,r,a){o(t);if(void 0===r)return t;switch(a){case 0:return function(){return t.call(r)};case 1:return function(a){return t.call(r,a)};case 2:return function(a,o){return t.call(r,a,o)};case 3:return function(a,o,i){return t.call(r,a,o,i)}}return function(){return t.apply(r,arguments)}}},t=>{t.exports=function(t){if("function"!=typeof t)throw TypeError(String(t)+" is not a function");return t}},(t,r,a)=>{var o=a(42),i=a(83);t.exports=function(t,r){var a=arguments.length<2?i(t):r;if("function"!=typeof a)throw TypeError(String(t)+" is not iterable");return o(a.call(t))}},(t,r,a)=>{var o=a(84),i=a(68),l=a(30)("iterator");t.exports=function(t){if(null!=t)return t[l]||t["@@iterator"]||i[o(t)]}},(t,r,a)=>{var o=a(85),i=a(18),l=a(30)("toStringTag"),u="Arguments"==i(function(){return arguments}());t.exports=o?i:function(t){var r,a,o;return void 0===t?"Undefined":null===t?"Null":"string"==typeof(a=function(t,r){try{return t[r]}catch(t){}}(r=Object(t),l))?a:u?i(r):"Object"==(o=i(r))&&"function"==typeof r.callee?"Arguments":o}},(t,r,a)=>{var o={};o[a(30)("toStringTag")]="z";t.exports="[object z]"===String(o)},(t,r,a)=>{var o=a(42);t.exports=function(t,r,a){var i,l;o(t);try{if(void 0===(i=t.return)){if("throw"===r)throw a;return a}i=i.call(t)}catch(t){l=!0;i=t}if("throw"===r)throw a;if(l)throw i;o(i);return a}},(t,r,a)=>{"use strict";var o=a(20),i=a(41),l=a(15);t.exports=function(t,r,a){var u=o(r);u in t?i.f(t,u,l(0,a)):t[u]=a}},(t,r,a)=>{var o=a(10);t.exports=o},(t,r,a)=>{a(90);a(62);a(92);a(94);a(112);a(113);a(114);a(115);var o=a(88);t.exports=o.Promise},(t,r,a)=>{"use strict";var o=a(9),i=a(72),l=a(75),u=a(64),c=a(40),d=a(15),h=a(78),p=a(91),m=function AggregateError(t,r){var a=this;if(!(a instanceof m))return new m(t,r);l&&(a=l(new Error(void 0),i(a)));void 0!==r&&c(a,"message",p(r));var o=[];h(t,o.push,{that:o});c(a,"errors",o);return a};m.prototype=u(Error.prototype,{constructor:d(5,m),message:d(5,""),name:d(5,"AggregateError")});o({global:!0},{AggregateError:m})},(t,r,a)=>{var o=a(23);t.exports=function(t){if(o(t))throw TypeError("Cannot convert a Symbol value to a string");return String(t)}},(t,r,a)=>{var o=a(85),i=a(43),l=a(93);o||i(Object.prototype,"toString",l,{unsafe:!0})},(t,r,a)=>{"use strict";var o=a(85),i=a(84);t.exports=o?{}.toString:function toString(){return"[object "+i(this)+"]"}},(t,r,a)=>{"use strict";var o,i,l,u,c=a(9),d=a(32),h=a(10),p=a(24),m=a(95),y=a(43),v=a(96),g=a(75),b=a(74),_=a(97),S=a(22),A=a(81),C=a(98),k=a(44),R=a(78),w=a(99),P=a(100),x=a(101).set,T=a(104),E=a(107),O=a(109),I=a(108),D=a(110),M=a(45),j=a(59),L=a(30),W=a(111),B=a(103),N=a(27),q=L("species"),U="Promise",G=M.get,H=M.set,z=M.getterFor(U),V=m&&m.prototype,Y=m,X=V,Q=h.TypeError,K=h.document,J=h.process,$=I.f,Z=$,ee=!!(K&&K.createEvent&&h.dispatchEvent),te="function"==typeof PromiseRejectionEvent,re="unhandledrejection",ne=!1,ae=j(U,(function(){var t=k(Y),r=t!==String(Y);if(!r&&66===N)return!0;if(d&&!X.finally)return!0;if(N>=51&&/native code/.test(t))return!1;var a=new Y((function(t){t(1)})),FakePromise=function(t){t((function(){}),(function(){}))};(a.constructor={})[q]=FakePromise;return!(ne=a.then((function(){}))instanceof FakePromise)||!r&&W&&!te})),oe=ae||!w((function(t){Y.all(t).catch((function(){}))})),isThenable=function(t){var r;return!(!S(t)||"function"!=typeof(r=t.then))&&r},notify=function(t,r){if(!t.notified){t.notified=!0;var a=t.reactions;T((function(){for(var o=t.value,i=1==t.state,l=0;a.length>l;){var u,c,d,h=a[l++],p=i?h.ok:h.fail,m=h.resolve,y=h.reject,v=h.domain;try{if(p){if(!i){2===t.rejection&&onHandleUnhandled(t);t.rejection=1}if(!0===p)u=o;else{v&&v.enter();u=p(o);if(v){v.exit();d=!0}}u===h.promise?y(Q("Promise-chain cycle")):(c=isThenable(u))?c.call(u,m,y):m(u)}else y(o)}catch(t){v&&!d&&v.exit();y(t)}}t.reactions=[];t.notified=!1;r&&!t.rejection&&onUnhandled(t)}))}},dispatchEvent=function(t,r,a){var o,i;if(ee){(o=K.createEvent("Event")).promise=r;o.reason=a;o.initEvent(t,!1,!0);h.dispatchEvent(o)}else o={promise:r,reason:a};!te&&(i=h["on"+t])?i(o):t===re&&O("Unhandled promise rejection",a)},onUnhandled=function(t){x.call(h,(function(){var r,a=t.facade,o=t.value;if(isUnhandled(t)){r=D((function(){B?J.emit("unhandledRejection",o,a):dispatchEvent(re,a,o)}));t.rejection=B||isUnhandled(t)?2:1;if(r.error)throw r.value}}))},isUnhandled=function(t){return 1!==t.rejection&&!t.parent},onHandleUnhandled=function(t){x.call(h,(function(){var r=t.facade;B?J.emit("rejectionHandled",r):dispatchEvent("rejectionhandled",r,t.value)}))},bind=function(t,r,a){return function(o){t(r,o,a)}},internalReject=function(t,r,a){if(!t.done){t.done=!0;a&&(t=a);t.value=r;t.state=2;notify(t,!0)}},internalResolve=function(t,r,a){if(!t.done){t.done=!0;a&&(t=a);try{if(t.facade===r)throw Q("Promise can't be resolved itself");var o=isThenable(r);if(o)T((function(){var a={done:!1};try{o.call(r,bind(internalResolve,a,t),bind(internalReject,a,t))}catch(r){internalReject(a,r,t)}}));else{t.value=r;t.state=1;notify(t,!1)}}catch(r){internalReject({done:!1},r,t)}}};if(ae){X=(Y=function Promise(t){C(this,Y,U);A(t);o.call(this);var r=G(this);try{t(bind(internalResolve,r),bind(internalReject,r))}catch(t){internalReject(r,t)}}).prototype;(o=function Promise(t){H(this,{type:U,done:!1,notified:!1,parent:!1,reactions:[],rejection:!1,state:0,value:void 0})}).prototype=v(X,{then:function then(t,r){var a=z(this),o=$(P(this,Y));o.ok="function"!=typeof t||t;o.fail="function"==typeof r&&r;o.domain=B?J.domain:void 0;a.parent=!0;a.reactions.push(o);0!=a.state&¬ify(a,!1);return o.promise},catch:function(t){return this.then(void 0,t)}});i=function(){var t=new o,r=G(t);this.promise=t;this.resolve=bind(internalResolve,r);this.reject=bind(internalReject,r)};I.f=$=function(t){return t===Y||t===l?new i(t):Z(t)};if(!d&&"function"==typeof m&&V!==Object.prototype){u=V.then;if(!ne){y(V,"then",(function then(t,r){var a=this;return new Y((function(t,r){u.call(a,t,r)})).then(t,r)}),{unsafe:!0});y(V,"catch",X.catch,{unsafe:!0})}try{delete V.constructor}catch(t){}g&&g(V,X)}}c({global:!0,wrap:!0,forced:ae},{Promise:Y});b(Y,U,!1,!0);_(U);l=p(U);c({target:U,stat:!0,forced:ae},{reject:function reject(t){var r=$(this);r.reject.call(void 0,t);return r.promise}});c({target:U,stat:!0,forced:d||ae},{resolve:function resolve(t){return E(d&&this===l?Y:this,t)}});c({target:U,stat:!0,forced:oe},{all:function all(t){var r=this,a=$(r),o=a.resolve,i=a.reject,l=D((function(){var a=A(r.resolve),l=[],u=0,c=1;R(t,(function(t){var d=u++,h=!1;l.push(void 0);c++;a.call(r,t).then((function(t){if(!h){h=!0;l[d]=t;--c||o(l)}}),i)}));--c||o(l)}));l.error&&i(l.value);return a.promise},race:function race(t){var r=this,a=$(r),o=a.reject,i=D((function(){var i=A(r.resolve);R(t,(function(t){i.call(r,t).then(a.resolve,o)}))}));i.error&&o(i.value);return a.promise}})},(t,r,a)=>{var o=a(10);t.exports=o.Promise},(t,r,a)=>{var o=a(43);t.exports=function(t,r,a){for(var i in r)o(t,i,r[i],a);return t}},(t,r,a)=>{"use strict";var o=a(24),i=a(41),l=a(30),u=a(12),c=l("species");t.exports=function(t){var r=o(t),a=i.f;u&&r&&!r[c]&&a(r,c,{configurable:!0,get:function(){return this}})}},t=>{t.exports=function(t,r,a){if(!(t instanceof r))throw TypeError("Incorrect "+(a?a+" ":"")+"invocation");return t}},(t,r,a)=>{var o=a(30)("iterator"),i=!1;try{var l=0,u={next:function(){return{done:!!l++}},return:function(){i=!0}};u[o]=function(){return this};Array.from(u,(function(){throw 2}))}catch(t){}t.exports=function(t,r){if(!r&&!i)return!1;var a=!1;try{var l={};l[o]=function(){return{next:function(){return{done:a=!0}}}};t(l)}catch(t){}return a}},(t,r,a)=>{var o=a(42),i=a(81),l=a(30)("species");t.exports=function(t,r){var a,u=o(t).constructor;return void 0===u||null==(a=o(u)[l])?r:i(a)}},(t,r,a)=>{var o,i,l,u,c=a(10),d=a(13),h=a(80),p=a(67),m=a(39),y=a(102),v=a(103),g=c.setImmediate,b=c.clearImmediate,_=c.process,S=c.MessageChannel,A=c.Dispatch,C=0,k={},R="onreadystatechange";try{o=c.location}catch(t){}var run=function(t){if(k.hasOwnProperty(t)){var r=k[t];delete k[t];r()}},runner=function(t){return function(){run(t)}},listener=function(t){run(t.data)},post=function(t){c.postMessage(String(t),o.protocol+"//"+o.host)};if(!g||!b){g=function setImmediate(t){for(var r=[],a=arguments.length,o=1;a>o;)r.push(arguments[o++]);k[++C]=function(){("function"==typeof t?t:Function(t)).apply(void 0,r)};i(C);return C};b=function clearImmediate(t){delete k[t]};if(v)i=function(t){_.nextTick(runner(t))};else if(A&&A.now)i=function(t){A.now(runner(t))};else if(S&&!y){u=(l=new S).port2;l.port1.onmessage=listener;i=h(u.postMessage,u,1)}else if(c.addEventListener&&"function"==typeof postMessage&&!c.importScripts&&o&&"file:"!==o.protocol&&!d(post)){i=post;c.addEventListener("message",listener,!1)}else i=R in m("script")?function(t){p.appendChild(m("script")).onreadystatechange=function(){p.removeChild(this);run(t)}}:function(t){setTimeout(runner(t),0)}}t.exports={set:g,clear:b}},(t,r,a)=>{var o=a(28);t.exports=/(?:ipad|iphone|ipod).*applewebkit/i.test(o)},(t,r,a)=>{var o=a(18),i=a(10);t.exports="process"==o(i.process)},(t,r,a)=>{var o,i,l,u,c,d,h,p,m=a(10),y=a(11).f,v=a(101).set,g=a(102),b=a(105),_=a(106),S=a(103),A=m.MutationObserver||m.WebKitMutationObserver,C=m.document,k=m.process,R=m.Promise,w=y(m,"queueMicrotask"),P=w&&w.value;if(!P){o=function(){var t,r;S&&(t=k.domain)&&t.exit();for(;i;){r=i.fn;i=i.next;try{r()}catch(t){i?u():l=void 0;throw t}}l=void 0;t&&t.enter()};if(g||S||_||!A||!C)if(!b&&R&&R.resolve){(h=R.resolve(void 0)).constructor=R;p=h.then;u=function(){p.call(h,o)}}else u=S?function(){k.nextTick(o)}:function(){v.call(m,o)};else{c=!0;d=C.createTextNode("");new A(o).observe(d,{characterData:!0});u=function(){d.data=c=!c}}}t.exports=P||function(t){var r={fn:t,next:void 0};l&&(l.next=r);if(!i){i=r;u()}l=r}},(t,r,a)=>{var o=a(28),i=a(10);t.exports=/ipad|iphone|ipod/i.test(o)&&void 0!==i.Pebble},(t,r,a)=>{var o=a(28);t.exports=/web0s(?!.*chrome)/i.test(o)},(t,r,a)=>{var o=a(42),i=a(22),l=a(108);t.exports=function(t,r){o(t);if(i(r)&&r.constructor===t)return r;var a=l.f(t);(0,a.resolve)(r);return a.promise}},(t,r,a)=>{"use strict";var o=a(81),PromiseCapability=function(t){var r,a;this.promise=new t((function(t,o){if(void 0!==r||void 0!==a)throw TypeError("Bad Promise constructor");r=t;a=o}));this.resolve=o(r);this.reject=o(a)};t.exports.f=function(t){return new PromiseCapability(t)}},(t,r,a)=>{var o=a(10);t.exports=function(t,r){var a=o.console;a&&a.error&&(1===arguments.length?a.error(t):a.error(t,r))}},t=>{t.exports=function(t){try{return{error:!1,value:t()}}catch(t){return{error:!0,value:t}}}},t=>{t.exports="object"==typeof window},(t,r,a)=>{"use strict";var o=a(9),i=a(81),l=a(108),u=a(110),c=a(78);o({target:"Promise",stat:!0},{allSettled:function allSettled(t){var r=this,a=l.f(r),o=a.resolve,d=a.reject,h=u((function(){var a=i(r.resolve),l=[],u=0,d=1;c(t,(function(t){var i=u++,c=!1;l.push(void 0);d++;a.call(r,t).then((function(t){if(!c){c=!0;l[i]={status:"fulfilled",value:t};--d||o(l)}}),(function(t){if(!c){c=!0;l[i]={status:"rejected",reason:t};--d||o(l)}}))}));--d||o(l)}));h.error&&d(h.value);return a.promise}})},(t,r,a)=>{"use strict";var o=a(9),i=a(81),l=a(24),u=a(108),c=a(110),d=a(78),h="No one promise resolved";o({target:"Promise",stat:!0},{any:function any(t){var r=this,a=u.f(r),o=a.resolve,p=a.reject,m=c((function(){var a=i(r.resolve),u=[],c=0,m=1,y=!1;d(t,(function(t){var i=c++,d=!1;u.push(void 0);m++;a.call(r,t).then((function(t){if(!d&&!y){y=!0;o(t)}}),(function(t){if(!d&&!y){d=!0;u[i]=t;--m||p(new(l("AggregateError"))(u,h))}}))}));--m||p(new(l("AggregateError"))(u,h))}));m.error&&p(m.value);return a.promise}})},(t,r,a)=>{"use strict";var o=a(9),i=a(32),l=a(95),u=a(13),c=a(24),d=a(100),h=a(107),p=a(43);o({target:"Promise",proto:!0,real:!0,forced:!!l&&u((function(){l.prototype.finally.call({then:function(){}},(function(){}))}))},{finally:function(t){var r=d(this,c("Promise")),a="function"==typeof t;return this.then(a?function(a){return h(r,t()).then((function(){return a}))}:t,a?function(a){return h(r,t()).then((function(){throw a}))}:t)}});if(!i&&"function"==typeof l){var m=c("Promise").prototype.finally;l.prototype.finally!==m&&p(l.prototype,"finally",m,{unsafe:!0})}},(t,r,a)=>{"use strict";var o=a(116).charAt,i=a(91),l=a(45),u=a(69),c="String Iterator",d=l.set,h=l.getterFor(c);u(String,"String",(function(t){d(this,{type:c,string:i(t),index:0})}),(function next(){var t,r=h(this),a=r.string,i=r.index;if(i>=a.length)return{value:void 0,done:!0};t=o(a,i);r.index+=t.length;return{value:t,done:!1}}))},(t,r,a)=>{var o=a(55),i=a(91),l=a(19),createMethod=function(t){return function(r,a){var u,c,d=i(l(r)),h=o(a),p=d.length;return h<0||h>=p?t?"":void 0:(u=d.charCodeAt(h))<55296||u>56319||h+1===p||(c=d.charCodeAt(h+1))<56320||c>57343?t?d.charAt(h):u:t?d.slice(h,h+2):c-56320+(u-55296<<10)+65536}};t.exports={codeAt:createMethod(!1),charAt:createMethod(!0)}},function(t,r){a=function(t){"use strict";var r="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?Symbol:function(t){return"Symbol("+t+")"};function noop(){}var a=function getGlobals(){return"undefined"!=typeof self?self:"undefined"!=typeof window?window:"undefined"!=typeof global?global:void 0}();function typeIsObject(t){return"object"==typeof t&&null!==t||"function"==typeof t}var o=noop,i=Promise,l=Promise.prototype.then,u=Promise.resolve.bind(i),c=Promise.reject.bind(i);function newPromise(t){return new i(t)}function promiseResolvedWith(t){return u(t)}function promiseRejectedWith(t){return c(t)}function PerformPromiseThen(t,r,a){return l.call(t,r,a)}function uponPromise(t,r,a){PerformPromiseThen(PerformPromiseThen(t,r,a),void 0,o)}function uponFulfillment(t,r){uponPromise(t,r)}function uponRejection(t,r){uponPromise(t,void 0,r)}function transformPromiseWith(t,r,a){return PerformPromiseThen(t,r,a)}function setPromiseIsHandledToTrue(t){PerformPromiseThen(t,void 0,o)}var d=function(){var t=a&&a.queueMicrotask;if("function"==typeof t)return t;var r=promiseResolvedWith(void 0);return function(t){return PerformPromiseThen(r,t)}}();function reflectCall(t,r,a){if("function"!=typeof t)throw new TypeError("Argument is not a function");return Function.prototype.apply.call(t,r,a)}function promiseCall(t,r,a){try{return promiseResolvedWith(reflectCall(t,r,a))}catch(t){return promiseRejectedWith(t)}}var h=function(){function SimpleQueue(){this._cursor=0;this._size=0;this._front={_elements:[],_next:void 0};this._back=this._front;this._cursor=0;this._size=0}Object.defineProperty(SimpleQueue.prototype,"length",{get:function(){return this._size},enumerable:!1,configurable:!0});SimpleQueue.prototype.push=function(t){var r=this._back,a=r;16383===r._elements.length&&(a={_elements:[],_next:void 0});r._elements.push(t);if(a!==r){this._back=a;r._next=a}++this._size};SimpleQueue.prototype.shift=function(){var t=this._front,r=t,a=this._cursor,o=a+1,i=t._elements,l=i[a];if(16384===o){r=t._next;o=0}--this._size;this._cursor=o;t!==r&&(this._front=r);i[a]=void 0;return l};SimpleQueue.prototype.forEach=function(t){for(var r=this._cursor,a=this._front,o=a._elements;r!==o.length||void 0!==a._next;){if(r===o.length){r=0;if(0===(o=(a=a._next)._elements).length)break}t(o[r]);++r}};SimpleQueue.prototype.peek=function(){var t=this._front,r=this._cursor;return t._elements[r]};return SimpleQueue}();function ReadableStreamReaderGenericInitialize(t,r){t._ownerReadableStream=r;r._reader=t;"readable"===r._state?defaultReaderClosedPromiseInitialize(t):"closed"===r._state?function defaultReaderClosedPromiseInitializeAsResolved(t){defaultReaderClosedPromiseInitialize(t);defaultReaderClosedPromiseResolve(t)}(t):defaultReaderClosedPromiseInitializeAsRejected(t,r._storedError)}function ReadableStreamReaderGenericCancel(t,r){return ReadableStreamCancel(t._ownerReadableStream,r)}function ReadableStreamReaderGenericRelease(t){"readable"===t._ownerReadableStream._state?defaultReaderClosedPromiseReject(t,new TypeError("Reader was released and can no longer be used to monitor the stream's closedness")):function defaultReaderClosedPromiseResetToRejected(t,r){defaultReaderClosedPromiseInitializeAsRejected(t,r)}(t,new TypeError("Reader was released and can no longer be used to monitor the stream's closedness"));t._ownerReadableStream._reader=void 0;t._ownerReadableStream=void 0}function readerLockException(t){return new TypeError("Cannot "+t+" a stream using a released reader")}function defaultReaderClosedPromiseInitialize(t){t._closedPromise=newPromise((function(r,a){t._closedPromise_resolve=r;t._closedPromise_reject=a}))}function defaultReaderClosedPromiseInitializeAsRejected(t,r){defaultReaderClosedPromiseInitialize(t);defaultReaderClosedPromiseReject(t,r)}function defaultReaderClosedPromiseReject(t,r){if(void 0!==t._closedPromise_reject){setPromiseIsHandledToTrue(t._closedPromise);t._closedPromise_reject(r);t._closedPromise_resolve=void 0;t._closedPromise_reject=void 0}}function defaultReaderClosedPromiseResolve(t){if(void 0!==t._closedPromise_resolve){t._closedPromise_resolve(void 0);t._closedPromise_resolve=void 0;t._closedPromise_reject=void 0}}var p=r("[[AbortSteps]]"),m=r("[[ErrorSteps]]"),y=r("[[CancelSteps]]"),v=r("[[PullSteps]]"),g=Number.isFinite||function(t){return"number"==typeof t&&isFinite(t)},b=Math.trunc||function(t){return t<0?Math.ceil(t):Math.floor(t)};function assertDictionary(t,r){if(void 0!==t&&!function isDictionary(t){return"object"==typeof t||"function"==typeof t}(t))throw new TypeError(r+" is not an object.")}function assertFunction(t,r){if("function"!=typeof t)throw new TypeError(r+" is not a function.")}function assertObject(t,r){if(!function isObject(t){return"object"==typeof t&&null!==t||"function"==typeof t}(t))throw new TypeError(r+" is not an object.")}function assertRequiredArgument(t,r,a){if(void 0===t)throw new TypeError("Parameter "+r+" is required in '"+a+"'.")}function assertRequiredField(t,r,a){if(void 0===t)throw new TypeError(r+" is required in '"+a+"'.")}function convertUnrestrictedDouble(t){return Number(t)}function censorNegativeZero(t){return 0===t?0:t}function convertUnsignedLongLongWithEnforceRange(t,r){var a=Number.MAX_SAFE_INTEGER,o=Number(t);o=censorNegativeZero(o);if(!g(o))throw new TypeError(r+" is not a finite number");if((o=function integerPart(t){return censorNegativeZero(b(t))}(o))<0||o>a)throw new TypeError(r+" is outside the accepted range of 0 to "+a+", inclusive");return g(o)&&0!==o?o:0}function assertReadableStream(t,r){if(!IsReadableStream(t))throw new TypeError(r+" is not a ReadableStream.")}function AcquireReadableStreamDefaultReader(t){return new A(t)}function ReadableStreamAddReadRequest(t,r){t._reader._readRequests.push(r)}function ReadableStreamFulfillReadRequest(t,r,a){var o=t._reader._readRequests.shift();a?o._closeSteps():o._chunkSteps(r)}function ReadableStreamGetNumReadRequests(t){return t._reader._readRequests.length}function ReadableStreamHasDefaultReader(t){var r=t._reader;return void 0!==r&&!!IsReadableStreamDefaultReader(r)}var _,S,A=function(){function ReadableStreamDefaultReader(t){assertRequiredArgument(t,1,"ReadableStreamDefaultReader");assertReadableStream(t,"First parameter");if(IsReadableStreamLocked(t))throw new TypeError("This stream has already been locked for exclusive reading by another reader");ReadableStreamReaderGenericInitialize(this,t);this._readRequests=new h}Object.defineProperty(ReadableStreamDefaultReader.prototype,"closed",{get:function(){return IsReadableStreamDefaultReader(this)?this._closedPromise:promiseRejectedWith(defaultReaderBrandCheckException("closed"))},enumerable:!1,configurable:!0});ReadableStreamDefaultReader.prototype.cancel=function(t){void 0===t&&(t=void 0);return IsReadableStreamDefaultReader(this)?void 0===this._ownerReadableStream?promiseRejectedWith(readerLockException("cancel")):ReadableStreamReaderGenericCancel(this,t):promiseRejectedWith(defaultReaderBrandCheckException("cancel"))};ReadableStreamDefaultReader.prototype.read=function(){if(!IsReadableStreamDefaultReader(this))return promiseRejectedWith(defaultReaderBrandCheckException("read"));if(void 0===this._ownerReadableStream)return promiseRejectedWith(readerLockException("read from"));var t,r,a=newPromise((function(a,o){t=a;r=o}));ReadableStreamDefaultReaderRead(this,{_chunkSteps:function(r){return t({value:r,done:!1})},_closeSteps:function(){return t({value:void 0,done:!0})},_errorSteps:function(t){return r(t)}});return a};ReadableStreamDefaultReader.prototype.releaseLock=function(){if(!IsReadableStreamDefaultReader(this))throw defaultReaderBrandCheckException("releaseLock");if(void 0!==this._ownerReadableStream){if(this._readRequests.length>0)throw new TypeError("Tried to release a reader lock when that reader has pending read() calls un-settled");ReadableStreamReaderGenericRelease(this)}};return ReadableStreamDefaultReader}();Object.defineProperties(A.prototype,{cancel:{enumerable:!0},read:{enumerable:!0},releaseLock:{enumerable:!0},closed:{enumerable:!0}});"symbol"==typeof r.toStringTag&&Object.defineProperty(A.prototype,r.toStringTag,{value:"ReadableStreamDefaultReader",configurable:!0});function IsReadableStreamDefaultReader(t){return!!typeIsObject(t)&&!!Object.prototype.hasOwnProperty.call(t,"_readRequests")&&t instanceof A}function ReadableStreamDefaultReaderRead(t,r){var a=t._ownerReadableStream;a._disturbed=!0;"closed"===a._state?r._closeSteps():"errored"===a._state?r._errorSteps(a._storedError):a._readableStreamController[v](r)}function defaultReaderBrandCheckException(t){return new TypeError("ReadableStreamDefaultReader.prototype."+t+" can only be used on a ReadableStreamDefaultReader")}if("symbol"==typeof r.asyncIterator){S=((_={})[r.asyncIterator]=function(){return this},_);Object.defineProperty(S,r.asyncIterator,{enumerable:!1})}var C=function(){function ReadableStreamAsyncIteratorImpl(t,r){this._ongoingPromise=void 0;this._isFinished=!1;this._reader=t;this._preventCancel=r}ReadableStreamAsyncIteratorImpl.prototype.next=function(){var t=this,nextSteps=function(){return t._nextSteps()};this._ongoingPromise=this._ongoingPromise?transformPromiseWith(this._ongoingPromise,nextSteps,nextSteps):nextSteps();return this._ongoingPromise};ReadableStreamAsyncIteratorImpl.prototype.return=function(t){var r=this,returnSteps=function(){return r._returnSteps(t)};return this._ongoingPromise?transformPromiseWith(this._ongoingPromise,returnSteps,returnSteps):returnSteps()};ReadableStreamAsyncIteratorImpl.prototype._nextSteps=function(){var t=this;if(this._isFinished)return Promise.resolve({value:void 0,done:!0});var r,a,o=this._reader;if(void 0===o._ownerReadableStream)return promiseRejectedWith(readerLockException("iterate"));var i=newPromise((function(t,o){r=t;a=o}));ReadableStreamDefaultReaderRead(o,{_chunkSteps:function(a){t._ongoingPromise=void 0;d((function(){return r({value:a,done:!1})}))},_closeSteps:function(){t._ongoingPromise=void 0;t._isFinished=!0;ReadableStreamReaderGenericRelease(o);r({value:void 0,done:!0})},_errorSteps:function(r){t._ongoingPromise=void 0;t._isFinished=!0;ReadableStreamReaderGenericRelease(o);a(r)}});return i};ReadableStreamAsyncIteratorImpl.prototype._returnSteps=function(t){if(this._isFinished)return Promise.resolve({value:t,done:!0});this._isFinished=!0;var r=this._reader;if(void 0===r._ownerReadableStream)return promiseRejectedWith(readerLockException("finish iterating"));if(!this._preventCancel){var a=ReadableStreamReaderGenericCancel(r,t);ReadableStreamReaderGenericRelease(r);return transformPromiseWith(a,(function(){return{value:t,done:!0}}))}ReadableStreamReaderGenericRelease(r);return promiseResolvedWith({value:t,done:!0})};return ReadableStreamAsyncIteratorImpl}(),k={next:function(){return IsReadableStreamAsyncIterator(this)?this._asyncIteratorImpl.next():promiseRejectedWith(streamAsyncIteratorBrandCheckException("next"))},return:function(t){return IsReadableStreamAsyncIterator(this)?this._asyncIteratorImpl.return(t):promiseRejectedWith(streamAsyncIteratorBrandCheckException("return"))}};void 0!==S&&Object.setPrototypeOf(k,S);function IsReadableStreamAsyncIterator(t){if(!typeIsObject(t))return!1;if(!Object.prototype.hasOwnProperty.call(t,"_asyncIteratorImpl"))return!1;try{return t._asyncIteratorImpl instanceof C}catch(t){return!1}}function streamAsyncIteratorBrandCheckException(t){return new TypeError("ReadableStreamAsyncIterator."+t+" can only be used on a ReadableSteamAsyncIterator")}var R=Number.isNaN||function(t){return t!=t};function CreateArrayFromList(t){return t.slice()}function CopyDataBlockBytes(t,r,a,o,i){new Uint8Array(t).set(new Uint8Array(a,o,i),r)}function ArrayBufferSlice(t,r,a){if(t.slice)return t.slice(r,a);var o=a-r,i=new ArrayBuffer(o);CopyDataBlockBytes(i,0,t,r,o);return i}function CloneAsUint8Array(t){var r=ArrayBufferSlice(t.buffer,t.byteOffset,t.byteOffset+t.byteLength);return new Uint8Array(r)}function DequeueValue(t){var r=t._queue.shift();t._queueTotalSize-=r.size;t._queueTotalSize<0&&(t._queueTotalSize=0);return r.value}function EnqueueValueWithSize(t,r,a){if(!function IsNonNegativeNumber(t){return!("number"!=typeof t||R(t)||t<0)}(a)||a===1/0)throw new RangeError("Size must be a finite, non-NaN, non-negative number.");t._queue.push({value:r,size:a});t._queueTotalSize+=a}function ResetQueue(t){t._queue=new h;t._queueTotalSize=0}var w=function(){function ReadableStreamBYOBRequest(){throw new TypeError("Illegal constructor")}Object.defineProperty(ReadableStreamBYOBRequest.prototype,"view",{get:function(){if(!IsReadableStreamBYOBRequest(this))throw byobRequestBrandCheckException("view");return this._view},enumerable:!1,configurable:!0});ReadableStreamBYOBRequest.prototype.respond=function(t){if(!IsReadableStreamBYOBRequest(this))throw byobRequestBrandCheckException("respond");assertRequiredArgument(t,1,"respond");t=convertUnsignedLongLongWithEnforceRange(t,"First parameter");if(void 0===this._associatedReadableByteStreamController)throw new TypeError("This BYOB request has been invalidated");this._view.buffer;ReadableByteStreamControllerRespond(this._associatedReadableByteStreamController,t)};ReadableStreamBYOBRequest.prototype.respondWithNewView=function(t){if(!IsReadableStreamBYOBRequest(this))throw byobRequestBrandCheckException("respondWithNewView");assertRequiredArgument(t,1,"respondWithNewView");if(!ArrayBuffer.isView(t))throw new TypeError("You can only respond with array buffer views");if(void 0===this._associatedReadableByteStreamController)throw new TypeError("This BYOB request has been invalidated");t.buffer;ReadableByteStreamControllerRespondWithNewView(this._associatedReadableByteStreamController,t)};return ReadableStreamBYOBRequest}();Object.defineProperties(w.prototype,{respond:{enumerable:!0},respondWithNewView:{enumerable:!0},view:{enumerable:!0}});"symbol"==typeof r.toStringTag&&Object.defineProperty(w.prototype,r.toStringTag,{value:"ReadableStreamBYOBRequest",configurable:!0});var P=function(){function ReadableByteStreamController(){throw new TypeError("Illegal constructor")}Object.defineProperty(ReadableByteStreamController.prototype,"byobRequest",{get:function(){if(!IsReadableByteStreamController(this))throw byteStreamControllerBrandCheckException("byobRequest");return ReadableByteStreamControllerGetBYOBRequest(this)},enumerable:!1,configurable:!0});Object.defineProperty(ReadableByteStreamController.prototype,"desiredSize",{get:function(){if(!IsReadableByteStreamController(this))throw byteStreamControllerBrandCheckException("desiredSize");return ReadableByteStreamControllerGetDesiredSize(this)},enumerable:!1,configurable:!0});ReadableByteStreamController.prototype.close=function(){if(!IsReadableByteStreamController(this))throw byteStreamControllerBrandCheckException("close");if(this._closeRequested)throw new TypeError("The stream has already been closed; do not close it again!");var t=this._controlledReadableByteStream._state;if("readable"!==t)throw new TypeError("The stream (in "+t+" state) is not in the readable state and cannot be closed");ReadableByteStreamControllerClose(this)};ReadableByteStreamController.prototype.enqueue=function(t){if(!IsReadableByteStreamController(this))throw byteStreamControllerBrandCheckException("enqueue");assertRequiredArgument(t,1,"enqueue");if(!ArrayBuffer.isView(t))throw new TypeError("chunk must be an array buffer view");if(0===t.byteLength)throw new TypeError("chunk must have non-zero byteLength");if(0===t.buffer.byteLength)throw new TypeError("chunk's buffer must have non-zero byteLength");if(this._closeRequested)throw new TypeError("stream is closed or draining");var r=this._controlledReadableByteStream._state;if("readable"!==r)throw new TypeError("The stream (in "+r+" state) is not in the readable state and cannot be enqueued to");ReadableByteStreamControllerEnqueue(this,t)};ReadableByteStreamController.prototype.error=function(t){void 0===t&&(t=void 0);if(!IsReadableByteStreamController(this))throw byteStreamControllerBrandCheckException("error");ReadableByteStreamControllerError(this,t)};ReadableByteStreamController.prototype[y]=function(t){ReadableByteStreamControllerClearPendingPullIntos(this);ResetQueue(this);var r=this._cancelAlgorithm(t);ReadableByteStreamControllerClearAlgorithms(this);return r};ReadableByteStreamController.prototype[v]=function(t){var r=this._controlledReadableByteStream;if(this._queueTotalSize>0){var a=this._queue.shift();this._queueTotalSize-=a.byteLength;ReadableByteStreamControllerHandleQueueDrain(this);var o=new Uint8Array(a.buffer,a.byteOffset,a.byteLength);t._chunkSteps(o)}else{var i=this._autoAllocateChunkSize;if(void 0!==i){var l=void 0;try{l=new ArrayBuffer(i)}catch(r){t._errorSteps(r);return}var u={buffer:l,bufferByteLength:i,byteOffset:0,byteLength:i,bytesFilled:0,elementSize:1,viewConstructor:Uint8Array,readerType:"default"};this._pendingPullIntos.push(u)}ReadableStreamAddReadRequest(r,t);ReadableByteStreamControllerCallPullIfNeeded(this)}};return ReadableByteStreamController}();Object.defineProperties(P.prototype,{close:{enumerable:!0},enqueue:{enumerable:!0},error:{enumerable:!0},byobRequest:{enumerable:!0},desiredSize:{enumerable:!0}});"symbol"==typeof r.toStringTag&&Object.defineProperty(P.prototype,r.toStringTag,{value:"ReadableByteStreamController",configurable:!0});function IsReadableByteStreamController(t){return!!typeIsObject(t)&&!!Object.prototype.hasOwnProperty.call(t,"_controlledReadableByteStream")&&t instanceof P}function IsReadableStreamBYOBRequest(t){return!!typeIsObject(t)&&!!Object.prototype.hasOwnProperty.call(t,"_associatedReadableByteStreamController")&&t instanceof w}function ReadableByteStreamControllerCallPullIfNeeded(t){var r=function ReadableByteStreamControllerShouldCallPull(t){var r=t._controlledReadableByteStream;return"readable"===r._state&&(!t._closeRequested&&(!!t._started&&(!!(ReadableStreamHasDefaultReader(r)&&ReadableStreamGetNumReadRequests(r)>0)||(!!(ReadableStreamHasBYOBReader(r)&&ReadableStreamGetNumReadIntoRequests(r)>0)||ReadableByteStreamControllerGetDesiredSize(t)>0))))}(t);if(r)if(t._pulling)t._pullAgain=!0;else{t._pulling=!0;uponPromise(t._pullAlgorithm(),(function(){t._pulling=!1;if(t._pullAgain){t._pullAgain=!1;ReadableByteStreamControllerCallPullIfNeeded(t)}}),(function(r){ReadableByteStreamControllerError(t,r)}))}}function ReadableByteStreamControllerClearPendingPullIntos(t){ReadableByteStreamControllerInvalidateBYOBRequest(t);t._pendingPullIntos=new h}function ReadableByteStreamControllerCommitPullIntoDescriptor(t,r){var a=!1;"closed"===t._state&&(a=!0);var o=ReadableByteStreamControllerConvertPullIntoDescriptor(r);"default"===r.readerType?ReadableStreamFulfillReadRequest(t,o,a):function ReadableStreamFulfillReadIntoRequest(t,r,a){var o=t._reader._readIntoRequests.shift();a?o._closeSteps(r):o._chunkSteps(r)}(t,o,a)}function ReadableByteStreamControllerConvertPullIntoDescriptor(t){var r=t.bytesFilled,a=t.elementSize;return new t.viewConstructor(t.buffer,t.byteOffset,r/a)}function ReadableByteStreamControllerEnqueueChunkToQueue(t,r,a,o){t._queue.push({buffer:r,byteOffset:a,byteLength:o});t._queueTotalSize+=o}function ReadableByteStreamControllerFillPullIntoDescriptorFromQueue(t,r){var a=r.elementSize,o=r.bytesFilled-r.bytesFilled%a,i=Math.min(t._queueTotalSize,r.byteLength-r.bytesFilled),l=r.bytesFilled+i,u=l-l%a,c=i,d=!1;if(u>o){c=u-r.bytesFilled;d=!0}for(var h=t._queue;c>0;){var p=h.peek(),m=Math.min(c,p.byteLength),y=r.byteOffset+r.bytesFilled;CopyDataBlockBytes(r.buffer,y,p.buffer,p.byteOffset,m);if(p.byteLength===m)h.shift();else{p.byteOffset+=m;p.byteLength-=m}t._queueTotalSize-=m;ReadableByteStreamControllerFillHeadPullIntoDescriptor(0,m,r);c-=m}return d}function ReadableByteStreamControllerFillHeadPullIntoDescriptor(t,r,a){a.bytesFilled+=r}function ReadableByteStreamControllerHandleQueueDrain(t){if(0===t._queueTotalSize&&t._closeRequested){ReadableByteStreamControllerClearAlgorithms(t);ReadableStreamClose(t._controlledReadableByteStream)}else ReadableByteStreamControllerCallPullIfNeeded(t)}function ReadableByteStreamControllerInvalidateBYOBRequest(t){if(null!==t._byobRequest){t._byobRequest._associatedReadableByteStreamController=void 0;t._byobRequest._view=null;t._byobRequest=null}}function ReadableByteStreamControllerProcessPullIntoDescriptorsUsingQueue(t){for(;t._pendingPullIntos.length>0;){if(0===t._queueTotalSize)return;var r=t._pendingPullIntos.peek();if(ReadableByteStreamControllerFillPullIntoDescriptorFromQueue(t,r)){ReadableByteStreamControllerShiftPendingPullInto(t);ReadableByteStreamControllerCommitPullIntoDescriptor(t._controlledReadableByteStream,r)}}}function ReadableByteStreamControllerRespondInternal(t,r){var a=t._pendingPullIntos.peek();ReadableByteStreamControllerInvalidateBYOBRequest(t);"closed"===t._controlledReadableByteStream._state?function ReadableByteStreamControllerRespondInClosedState(t,r){var a=t._controlledReadableByteStream;if(ReadableStreamHasBYOBReader(a))for(;ReadableStreamGetNumReadIntoRequests(a)>0;)ReadableByteStreamControllerCommitPullIntoDescriptor(a,ReadableByteStreamControllerShiftPendingPullInto(t))}(t):function ReadableByteStreamControllerRespondInReadableState(t,r,a){ReadableByteStreamControllerFillHeadPullIntoDescriptor(0,r,a);if(!(a.bytesFilled<a.elementSize)){ReadableByteStreamControllerShiftPendingPullInto(t);var o=a.bytesFilled%a.elementSize;if(o>0){var i=a.byteOffset+a.bytesFilled,l=ArrayBufferSlice(a.buffer,i-o,i);ReadableByteStreamControllerEnqueueChunkToQueue(t,l,0,l.byteLength)}a.bytesFilled-=o;ReadableByteStreamControllerCommitPullIntoDescriptor(t._controlledReadableByteStream,a);ReadableByteStreamControllerProcessPullIntoDescriptorsUsingQueue(t)}}(t,r,a);ReadableByteStreamControllerCallPullIfNeeded(t)}function ReadableByteStreamControllerShiftPendingPullInto(t){return t._pendingPullIntos.shift()}function ReadableByteStreamControllerClearAlgorithms(t){t._pullAlgorithm=void 0;t._cancelAlgorithm=void 0}function ReadableByteStreamControllerClose(t){var r=t._controlledReadableByteStream;if(!t._closeRequested&&"readable"===r._state)if(t._queueTotalSize>0)t._closeRequested=!0;else{if(t._pendingPullIntos.length>0&&t._pendingPullIntos.peek().bytesFilled>0){var a=new TypeError("Insufficient bytes to fill elements in the given buffer");ReadableByteStreamControllerError(t,a);throw a}ReadableByteStreamControllerClearAlgorithms(t);ReadableStreamClose(r)}}function ReadableByteStreamControllerEnqueue(t,r){var a=t._controlledReadableByteStream;if(!t._closeRequested&&"readable"===a._state){var o=r.buffer,i=r.byteOffset,l=r.byteLength,u=o;if(t._pendingPullIntos.length>0){var c=t._pendingPullIntos.peek();c.buffer;c.buffer=c.buffer}ReadableByteStreamControllerInvalidateBYOBRequest(t);if(ReadableStreamHasDefaultReader(a))0===ReadableStreamGetNumReadRequests(a)?ReadableByteStreamControllerEnqueueChunkToQueue(t,u,i,l):ReadableStreamFulfillReadRequest(a,new Uint8Array(u,i,l),!1);else if(ReadableStreamHasBYOBReader(a)){ReadableByteStreamControllerEnqueueChunkToQueue(t,u,i,l);ReadableByteStreamControllerProcessPullIntoDescriptorsUsingQueue(t)}else ReadableByteStreamControllerEnqueueChunkToQueue(t,u,i,l);ReadableByteStreamControllerCallPullIfNeeded(t)}}function ReadableByteStreamControllerError(t,r){var a=t._controlledReadableByteStream;if("readable"===a._state){ReadableByteStreamControllerClearPendingPullIntos(t);ResetQueue(t);ReadableByteStreamControllerClearAlgorithms(t);ReadableStreamError(a,r)}}function ReadableByteStreamControllerGetBYOBRequest(t){if(null===t._byobRequest&&t._pendingPullIntos.length>0){var r=t._pendingPullIntos.peek(),a=new Uint8Array(r.buffer,r.byteOffset+r.bytesFilled,r.byteLength-r.bytesFilled),o=Object.create(w.prototype);!function SetUpReadableStreamBYOBRequest(t,r,a){t._associatedReadableByteStreamController=r;t._view=a}(o,t,a);t._byobRequest=o}return t._byobRequest}function ReadableByteStreamControllerGetDesiredSize(t){var r=t._controlledReadableByteStream._state;return"errored"===r?null:"closed"===r?0:t._strategyHWM-t._queueTotalSize}function ReadableByteStreamControllerRespond(t,r){var a=t._pendingPullIntos.peek();if("closed"===t._controlledReadableByteStream._state){if(0!==r)throw new TypeError("bytesWritten must be 0 when calling respond() on a closed stream")}else{if(0===r)throw new TypeError("bytesWritten must be greater than 0 when calling respond() on a readable stream");if(a.bytesFilled+r>a.byteLength)throw new RangeError("bytesWritten out of range")}a.buffer=a.buffer;ReadableByteStreamControllerRespondInternal(t,r)}function ReadableByteStreamControllerRespondWithNewView(t,r){var a=t._pendingPullIntos.peek();if("closed"===t._controlledReadableByteStream._state){if(0!==r.byteLength)throw new TypeError("The view's length must be 0 when calling respondWithNewView() on a closed stream")}else if(0===r.byteLength)throw new TypeError("The view's length must be greater than 0 when calling respondWithNewView() on a readable stream");if(a.byteOffset+a.bytesFilled!==r.byteOffset)throw new RangeError("The region specified by view does not match byobRequest");if(a.bufferByteLength!==r.buffer.byteLength)throw new RangeError("The buffer of view has different capacity than byobRequest");if(a.bytesFilled+r.byteLength>a.byteLength)throw new RangeError("The region specified by view is larger than byobRequest");a.buffer=r.buffer;ReadableByteStreamControllerRespondInternal(t,r.byteLength)}function SetUpReadableByteStreamController(t,r,a,o,i,l,u){r._controlledReadableByteStream=t;r._pullAgain=!1;r._pulling=!1;r._byobRequest=null;r._queue=r._queueTotalSize=void 0;ResetQueue(r);r._closeRequested=!1;r._started=!1;r._strategyHWM=l;r._pullAlgorithm=o;r._cancelAlgorithm=i;r._autoAllocateChunkSize=u;r._pendingPullIntos=new h;t._readableStreamController=r;uponPromise(promiseResolvedWith(a()),(function(){r._started=!0;ReadableByteStreamControllerCallPullIfNeeded(r)}),(function(t){ReadableByteStreamControllerError(r,t)}))}function byobRequestBrandCheckException(t){return new TypeError("ReadableStreamBYOBRequest.prototype."+t+" can only be used on a ReadableStreamBYOBRequest")}function byteStreamControllerBrandCheckException(t){return new TypeError("ReadableByteStreamController.prototype."+t+" can only be used on a ReadableByteStreamController")}function AcquireReadableStreamBYOBReader(t){return new x(t)}function ReadableStreamAddReadIntoRequest(t,r){t._reader._readIntoRequests.push(r)}function ReadableStreamGetNumReadIntoRequests(t){return t._reader._readIntoRequests.length}function ReadableStreamHasBYOBReader(t){var r=t._reader;return void 0!==r&&!!IsReadableStreamBYOBReader(r)}var x=function(){function ReadableStreamBYOBReader(t){assertRequiredArgument(t,1,"ReadableStreamBYOBReader");assertReadableStream(t,"First parameter");if(IsReadableStreamLocked(t))throw new TypeError("This stream has already been locked for exclusive reading by another reader");if(!IsReadableByteStreamController(t._readableStreamController))throw new TypeError("Cannot construct a ReadableStreamBYOBReader for a stream not constructed with a byte source");ReadableStreamReaderGenericInitialize(this,t);this._readIntoRequests=new h}Object.defineProperty(ReadableStreamBYOBReader.prototype,"closed",{get:function(){return IsReadableStreamBYOBReader(this)?this._closedPromise:promiseRejectedWith(byobReaderBrandCheckException("closed"))},enumerable:!1,configurable:!0});ReadableStreamBYOBReader.prototype.cancel=function(t){void 0===t&&(t=void 0);return IsReadableStreamBYOBReader(this)?void 0===this._ownerReadableStream?promiseRejectedWith(readerLockException("cancel")):ReadableStreamReaderGenericCancel(this,t):promiseRejectedWith(byobReaderBrandCheckException("cancel"))};ReadableStreamBYOBReader.prototype.read=function(t){if(!IsReadableStreamBYOBReader(this))return promiseRejectedWith(byobReaderBrandCheckException("read"));if(!ArrayBuffer.isView(t))return promiseRejectedWith(new TypeError("view must be an array buffer view"));if(0===t.byteLength)return promiseRejectedWith(new TypeError("view must have non-zero byteLength"));if(0===t.buffer.byteLength)return promiseRejectedWith(new TypeError("view's buffer must have non-zero byteLength"));t.buffer;if(void 0===this._ownerReadableStream)return promiseRejectedWith(readerLockException("read from"));var r,a,o=newPromise((function(t,o){r=t;a=o}));ReadableStreamBYOBReaderRead(this,t,{_chunkSteps:function(t){return r({value:t,done:!1})},_closeSteps:function(t){return r({value:t,done:!0})},_errorSteps:function(t){return a(t)}});return o};ReadableStreamBYOBReader.prototype.releaseLock=function(){if(!IsReadableStreamBYOBReader(this))throw byobReaderBrandCheckException("releaseLock");if(void 0!==this._ownerReadableStream){if(this._readIntoRequests.length>0)throw new TypeError("Tried to release a reader lock when that reader has pending read() calls un-settled");ReadableStreamReaderGenericRelease(this)}};return ReadableStreamBYOBReader}();Object.defineProperties(x.prototype,{cancel:{enumerable:!0},read:{enumerable:!0},releaseLock:{enumerable:!0},closed:{enumerable:!0}});"symbol"==typeof r.toStringTag&&Object.defineProperty(x.prototype,r.toStringTag,{value:"ReadableStreamBYOBReader",configurable:!0});function IsReadableStreamBYOBReader(t){return!!typeIsObject(t)&&!!Object.prototype.hasOwnProperty.call(t,"_readIntoRequests")&&t instanceof x}function ReadableStreamBYOBReaderRead(t,r,a){var o=t._ownerReadableStream;o._disturbed=!0;"errored"===o._state?a._errorSteps(o._storedError):function ReadableByteStreamControllerPullInto(t,r,a){var o=t._controlledReadableByteStream,i=1;r.constructor!==DataView&&(i=r.constructor.BYTES_PER_ELEMENT);var l=r.constructor,u=r.buffer,c={buffer:u,bufferByteLength:u.byteLength,byteOffset:r.byteOffset,byteLength:r.byteLength,bytesFilled:0,elementSize:i,viewConstructor:l,readerType:"byob"};if(t._pendingPullIntos.length>0){t._pendingPullIntos.push(c);ReadableStreamAddReadIntoRequest(o,a)}else if("closed"!==o._state){if(t._queueTotalSize>0){if(ReadableByteStreamControllerFillPullIntoDescriptorFromQueue(t,c)){var d=ReadableByteStreamControllerConvertPullIntoDescriptor(c);ReadableByteStreamControllerHandleQueueDrain(t);a._chunkSteps(d);return}if(t._closeRequested){var h=new TypeError("Insufficient bytes to fill elements in the given buffer");ReadableByteStreamControllerError(t,h);a._errorSteps(h);return}}t._pendingPullIntos.push(c);ReadableStreamAddReadIntoRequest(o,a);ReadableByteStreamControllerCallPullIfNeeded(t)}else{var p=new l(c.buffer,c.byteOffset,0);a._closeSteps(p)}}(o._readableStreamController,r,a)}function byobReaderBrandCheckException(t){return new TypeError("ReadableStreamBYOBReader.prototype."+t+" can only be used on a ReadableStreamBYOBReader")}function ExtractHighWaterMark(t,r){var a=t.highWaterMark;if(void 0===a)return r;if(R(a)||a<0)throw new RangeError("Invalid highWaterMark");return a}function ExtractSizeAlgorithm(t){var r=t.size;return r||function(){return 1}}function convertQueuingStrategy(t,r){assertDictionary(t,r);var a=null==t?void 0:t.highWaterMark,o=null==t?void 0:t.size;return{highWaterMark:void 0===a?void 0:convertUnrestrictedDouble(a),size:void 0===o?void 0:convertQueuingStrategySize(o,r+" has member 'size' that")}}function convertQueuingStrategySize(t,r){assertFunction(t,r);return function(r){return convertUnrestrictedDouble(t(r))}}function convertUnderlyingSinkAbortCallback(t,r,a){assertFunction(t,a);return function(a){return promiseCall(t,r,[a])}}function convertUnderlyingSinkCloseCallback(t,r,a){assertFunction(t,a);return function(){return promiseCall(t,r,[])}}function convertUnderlyingSinkStartCallback(t,r,a){assertFunction(t,a);return function(a){return reflectCall(t,r,[a])}}function convertUnderlyingSinkWriteCallback(t,r,a){assertFunction(t,a);return function(a,o){return promiseCall(t,r,[a,o])}}function assertWritableStream(t,r){if(!IsWritableStream(t))throw new TypeError(r+" is not a WritableStream.")}var T="function"==typeof AbortController,E=function(){function WritableStream(t,r){void 0===t&&(t={});void 0===r&&(r={});void 0===t?t=null:assertObject(t,"First parameter");var a=convertQueuingStrategy(r,"Second parameter"),o=function convertUnderlyingSink(t,r){assertDictionary(t,r);var a=null==t?void 0:t.abort,o=null==t?void 0:t.close,i=null==t?void 0:t.start,l=null==t?void 0:t.type,u=null==t?void 0:t.write;return{abort:void 0===a?void 0:convertUnderlyingSinkAbortCallback(a,t,r+" has member 'abort' that"),close:void 0===o?void 0:convertUnderlyingSinkCloseCallback(o,t,r+" has member 'close' that"),start:void 0===i?void 0:convertUnderlyingSinkStartCallback(i,t,r+" has member 'start' that"),write:void 0===u?void 0:convertUnderlyingSinkWriteCallback(u,t,r+" has member 'write' that"),type:l}}(t,"First parameter");InitializeWritableStream(this);if(void 0!==o.type)throw new RangeError("Invalid type is specified");var i=ExtractSizeAlgorithm(a);!function SetUpWritableStreamDefaultControllerFromUnderlyingSink(t,r,a,o){var i=Object.create(D.prototype),startAlgorithm=function(){},writeAlgorithm=function(){return promiseResolvedWith(void 0)},closeAlgorithm=function(){return promiseResolvedWith(void 0)},abortAlgorithm=function(){return promiseResolvedWith(void 0)};void 0!==r.start&&(startAlgorithm=function(){return r.start(i)});void 0!==r.write&&(writeAlgorithm=function(t){return r.write(t,i)});void 0!==r.close&&(closeAlgorithm=function(){return r.close()});void 0!==r.abort&&(abortAlgorithm=function(t){return r.abort(t)});SetUpWritableStreamDefaultController(t,i,startAlgorithm,writeAlgorithm,closeAlgorithm,abortAlgorithm,a,o)}(this,o,ExtractHighWaterMark(a,1),i)}Object.defineProperty(WritableStream.prototype,"locked",{get:function(){if(!IsWritableStream(this))throw streamBrandCheckException$2("locked");return IsWritableStreamLocked(this)},enumerable:!1,configurable:!0});WritableStream.prototype.abort=function(t){void 0===t&&(t=void 0);return IsWritableStream(this)?IsWritableStreamLocked(this)?promiseRejectedWith(new TypeError("Cannot abort a stream that already has a writer")):WritableStreamAbort(this,t):promiseRejectedWith(streamBrandCheckException$2("abort"))};WritableStream.prototype.close=function(){return IsWritableStream(this)?IsWritableStreamLocked(this)?promiseRejectedWith(new TypeError("Cannot close a stream that already has a writer")):WritableStreamCloseQueuedOrInFlight(this)?promiseRejectedWith(new TypeError("Cannot close an already-closing stream")):WritableStreamClose(this):promiseRejectedWith(streamBrandCheckException$2("close"))};WritableStream.prototype.getWriter=function(){if(!IsWritableStream(this))throw streamBrandCheckException$2("getWriter");return AcquireWritableStreamDefaultWriter(this)};return WritableStream}();Object.defineProperties(E.prototype,{abort:{enumerable:!0},close:{enumerable:!0},getWriter:{enumerable:!0},locked:{enumerable:!0}});"symbol"==typeof r.toStringTag&&Object.defineProperty(E.prototype,r.toStringTag,{value:"WritableStream",configurable:!0});function AcquireWritableStreamDefaultWriter(t){return new O(t)}function InitializeWritableStream(t){t._state="writable";t._storedError=void 0;t._writer=void 0;t._writableStreamController=void 0;t._writeRequests=new h;t._inFlightWriteRequest=void 0;t._closeRequest=void 0;t._inFlightCloseRequest=void 0;t._pendingAbortRequest=void 0;t._backpressure=!1}function IsWritableStream(t){return!!typeIsObject(t)&&!!Object.prototype.hasOwnProperty.call(t,"_writableStreamController")&&t instanceof E}function IsWritableStreamLocked(t){return void 0!==t._writer}function WritableStreamAbort(t,r){var a;if("closed"===t._state||"errored"===t._state)return promiseResolvedWith(void 0);t._writableStreamController._abortReason=r;null===(a=t._writableStreamController._abortController)||void 0===a||a.abort();var o=t._state;if("closed"===o||"errored"===o)return promiseResolvedWith(void 0);if(void 0!==t._pendingAbortRequest)return t._pendingAbortRequest._promise;var i=!1;if("erroring"===o){i=!0;r=void 0}var l=newPromise((function(a,o){t._pendingAbortRequest={_promise:void 0,_resolve:a,_reject:o,_reason:r,_wasAlreadyErroring:i}}));t._pendingAbortRequest._promise=l;i||WritableStreamStartErroring(t,r);return l}function WritableStreamClose(t){var r=t._state;if("closed"===r||"errored"===r)return promiseRejectedWith(new TypeError("The stream (in "+r+" state) is not in the writable state and cannot be closed"));var a=newPromise((function(r,a){var o={_resolve:r,_reject:a};t._closeRequest=o})),o=t._writer;void 0!==o&&t._backpressure&&"writable"===r&&defaultWriterReadyPromiseResolve(o);!function WritableStreamDefaultControllerClose(t){EnqueueValueWithSize(t,I,0);WritableStreamDefaultControllerAdvanceQueueIfNeeded(t)}(t._writableStreamController);return a}function WritableStreamDealWithRejection(t,r){"writable"!==t._state?WritableStreamFinishErroring(t):WritableStreamStartErroring(t,r)}function WritableStreamStartErroring(t,r){var a=t._writableStreamController;t._state="erroring";t._storedError=r;var o=t._writer;void 0!==o&&WritableStreamDefaultWriterEnsureReadyPromiseRejected(o,r);!function WritableStreamHasOperationMarkedInFlight(t){return void 0!==t._inFlightWriteRequest||void 0!==t._inFlightCloseRequest}(t)&&a._started&&WritableStreamFinishErroring(t)}function WritableStreamFinishErroring(t){t._state="errored";t._writableStreamController[m]();var r=t._storedError;t._writeRequests.forEach((function(t){t._reject(r)}));t._writeRequests=new h;if(void 0!==t._pendingAbortRequest){var a=t._pendingAbortRequest;t._pendingAbortRequest=void 0;if(a._wasAlreadyErroring){a._reject(r);WritableStreamRejectCloseAndClosedPromiseIfNeeded(t)}else uponPromise(t._writableStreamController[p](a._reason),(function(){a._resolve();WritableStreamRejectCloseAndClosedPromiseIfNeeded(t)}),(function(r){a._reject(r);WritableStreamRejectCloseAndClosedPromiseIfNeeded(t)}))}else WritableStreamRejectCloseAndClosedPromiseIfNeeded(t)}function WritableStreamCloseQueuedOrInFlight(t){return void 0!==t._closeRequest||void 0!==t._inFlightCloseRequest}function WritableStreamRejectCloseAndClosedPromiseIfNeeded(t){if(void 0!==t._closeRequest){t._closeRequest._reject(t._storedError);t._closeRequest=void 0}var r=t._writer;void 0!==r&&defaultWriterClosedPromiseReject(r,t._storedError)}function WritableStreamUpdateBackpressure(t,r){var a=t._writer;void 0!==a&&r!==t._backpressure&&(r?function defaultWriterReadyPromiseReset(t){defaultWriterReadyPromiseInitialize(t)}(a):defaultWriterReadyPromiseResolve(a));t._backpressure=r}var O=function(){function WritableStreamDefaultWriter(t){assertRequiredArgument(t,1,"WritableStreamDefaultWriter");assertWritableStream(t,"First parameter");if(IsWritableStreamLocked(t))throw new TypeError("This stream has already been locked for exclusive writing by another writer");this._ownerWritableStream=t;t._writer=this;var r=t._state;if("writable"===r){!WritableStreamCloseQueuedOrInFlight(t)&&t._backpressure?defaultWriterReadyPromiseInitialize(this):defaultWriterReadyPromiseInitializeAsResolved(this);defaultWriterClosedPromiseInitialize(this)}else if("erroring"===r){defaultWriterReadyPromiseInitializeAsRejected(this,t._storedError);defaultWriterClosedPromiseInitialize(this)}else if("closed"===r){defaultWriterReadyPromiseInitializeAsResolved(this);!function defaultWriterClosedPromiseInitializeAsResolved(t){defaultWriterClosedPromiseInitialize(t);defaultWriterClosedPromiseResolve(t)}(this)}else{var a=t._storedError;defaultWriterReadyPromiseInitializeAsRejected(this,a);defaultWriterClosedPromiseInitializeAsRejected(this,a)}}Object.defineProperty(WritableStreamDefaultWriter.prototype,"closed",{get:function(){return IsWritableStreamDefaultWriter(this)?this._closedPromise:promiseRejectedWith(defaultWriterBrandCheckException("closed"))},enumerable:!1,configurable:!0});Object.defineProperty(WritableStreamDefaultWriter.prototype,"desiredSize",{get:function(){if(!IsWritableStreamDefaultWriter(this))throw defaultWriterBrandCheckException("desiredSize");if(void 0===this._ownerWritableStream)throw defaultWriterLockException("desiredSize");return function WritableStreamDefaultWriterGetDesiredSize(t){var r=t._ownerWritableStream,a=r._state;return"errored"===a||"erroring"===a?null:"closed"===a?0:WritableStreamDefaultControllerGetDesiredSize(r._writableStreamController)}(this)},enumerable:!1,configurable:!0});Object.defineProperty(WritableStreamDefaultWriter.prototype,"ready",{get:function(){return IsWritableStreamDefaultWriter(this)?this._readyPromise:promiseRejectedWith(defaultWriterBrandCheckException("ready"))},enumerable:!1,configurable:!0});WritableStreamDefaultWriter.prototype.abort=function(t){void 0===t&&(t=void 0);return IsWritableStreamDefaultWriter(this)?void 0===this._ownerWritableStream?promiseRejectedWith(defaultWriterLockException("abort")):function WritableStreamDefaultWriterAbort(t,r){return WritableStreamAbort(t._ownerWritableStream,r)}(this,t):promiseRejectedWith(defaultWriterBrandCheckException("abort"))};WritableStreamDefaultWriter.prototype.close=function(){if(!IsWritableStreamDefaultWriter(this))return promiseRejectedWith(defaultWriterBrandCheckException("close"));var t=this._ownerWritableStream;return void 0===t?promiseRejectedWith(defaultWriterLockException("close")):WritableStreamCloseQueuedOrInFlight(t)?promiseRejectedWith(new TypeError("Cannot close an already-closing stream")):WritableStreamDefaultWriterClose(this)};WritableStreamDefaultWriter.prototype.releaseLock=function(){if(!IsWritableStreamDefaultWriter(this))throw defaultWriterBrandCheckException("releaseLock");void 0!==this._ownerWritableStream&&WritableStreamDefaultWriterRelease(this)};WritableStreamDefaultWriter.prototype.write=function(t){void 0===t&&(t=void 0);return IsWritableStreamDefaultWriter(this)?void 0===this._ownerWritableStream?promiseRejectedWith(defaultWriterLockException("write to")):WritableStreamDefaultWriterWrite(this,t):promiseRejectedWith(defaultWriterBrandCheckException("write"))};return WritableStreamDefaultWriter}();Object.defineProperties(O.prototype,{abort:{enumerable:!0},close:{enumerable:!0},releaseLock:{enumerable:!0},write:{enumerable:!0},closed:{enumerable:!0},desiredSize:{enumerable:!0},ready:{enumerable:!0}});"symbol"==typeof r.toStringTag&&Object.defineProperty(O.prototype,r.toStringTag,{value:"WritableStreamDefaultWriter",configurable:!0});function IsWritableStreamDefaultWriter(t){return!!typeIsObject(t)&&!!Object.prototype.hasOwnProperty.call(t,"_ownerWritableStream")&&t instanceof O}function WritableStreamDefaultWriterClose(t){return WritableStreamClose(t._ownerWritableStream)}function WritableStreamDefaultWriterEnsureClosedPromiseRejected(t,r){"pending"===t._closedPromiseState?defaultWriterClosedPromiseReject(t,r):function defaultWriterClosedPromiseResetToRejected(t,r){defaultWriterClosedPromiseInitializeAsRejected(t,r)}(t,r)}function WritableStreamDefaultWriterEnsureReadyPromiseRejected(t,r){"pending"===t._readyPromiseState?defaultWriterReadyPromiseReject(t,r):function defaultWriterReadyPromiseResetToRejected(t,r){defaultWriterReadyPromiseInitializeAsRejected(t,r)}(t,r)}function WritableStreamDefaultWriterRelease(t){var r=t._ownerWritableStream,a=new TypeError("Writer was released and can no longer be used to monitor the stream's closedness");WritableStreamDefaultWriterEnsureReadyPromiseRejected(t,a);WritableStreamDefaultWriterEnsureClosedPromiseRejected(t,a);r._writer=void 0;t._ownerWritableStream=void 0}function WritableStreamDefaultWriterWrite(t,r){var a=t._ownerWritableStream,o=a._writableStreamController,i=function WritableStreamDefaultControllerGetChunkSize(t,r){try{return t._strategySizeAlgorithm(r)}catch(r){WritableStreamDefaultControllerErrorIfNeeded(t,r);return 1}}(o,r);if(a!==t._ownerWritableStream)return promiseRejectedWith(defaultWriterLockException("write to"));var l=a._state;if("errored"===l)return promiseRejectedWith(a._storedError);if(WritableStreamCloseQueuedOrInFlight(a)||"closed"===l)return promiseRejectedWith(new TypeError("The stream is closing or closed and cannot be written to"));if("erroring"===l)return promiseRejectedWith(a._storedError);var u=function WritableStreamAddWriteRequest(t){return newPromise((function(r,a){var o={_resolve:r,_reject:a};t._writeRequests.push(o)}))}(a);!function WritableStreamDefaultControllerWrite(t,r,a){try{EnqueueValueWithSize(t,r,a)}catch(r){WritableStreamDefaultControllerErrorIfNeeded(t,r);return}var o=t._controlledWritableStream;WritableStreamCloseQueuedOrInFlight(o)||"writable"!==o._state||WritableStreamUpdateBackpressure(o,WritableStreamDefaultControllerGetBackpressure(t));WritableStreamDefaultControllerAdvanceQueueIfNeeded(t)}(o,r,i);return u}var I={},D=function(){function WritableStreamDefaultController(){throw new TypeError("Illegal constructor")}Object.defineProperty(WritableStreamDefaultController.prototype,"abortReason",{get:function(){if(!IsWritableStreamDefaultController(this))throw defaultControllerBrandCheckException$2("abortReason");return this._abortReason},enumerable:!1,configurable:!0});Object.defineProperty(WritableStreamDefaultController.prototype,"signal",{get:function(){if(!IsWritableStreamDefaultController(this))throw defaultControllerBrandCheckException$2("signal");if(void 0===this._abortController)throw new TypeError("WritableStreamDefaultController.prototype.signal is not supported");return this._abortController.signal},enumerable:!1,configurable:!0});WritableStreamDefaultController.prototype.error=function(t){void 0===t&&(t=void 0);if(!IsWritableStreamDefaultController(this))throw defaultControllerBrandCheckException$2("error");"writable"===this._controlledWritableStream._state&&WritableStreamDefaultControllerError(this,t)};WritableStreamDefaultController.prototype[p]=function(t){var r=this._abortAlgorithm(t);WritableStreamDefaultControllerClearAlgorithms(this);return r};WritableStreamDefaultController.prototype[m]=function(){ResetQueue(this)};return WritableStreamDefaultController}();Object.defineProperties(D.prototype,{error:{enumerable:!0}});"symbol"==typeof r.toStringTag&&Object.defineProperty(D.prototype,r.toStringTag,{value:"WritableStreamDefaultController",configurable:!0});function IsWritableStreamDefaultController(t){return!!typeIsObject(t)&&!!Object.prototype.hasOwnProperty.call(t,"_controlledWritableStream")&&t instanceof D}function SetUpWritableStreamDefaultController(t,r,a,o,i,l,u,c){r._controlledWritableStream=t;t._writableStreamController=r;r._queue=void 0;r._queueTotalSize=void 0;ResetQueue(r);r._abortReason=void 0;r._abortController=function createAbortController(){if(T)return new AbortController}();r._started=!1;r._strategySizeAlgorithm=c;r._strategyHWM=u;r._writeAlgorithm=o;r._closeAlgorithm=i;r._abortAlgorithm=l;var d=WritableStreamDefaultControllerGetBackpressure(r);WritableStreamUpdateBackpressure(t,d);uponPromise(promiseResolvedWith(a()),(function(){r._started=!0;WritableStreamDefaultControllerAdvanceQueueIfNeeded(r)}),(function(a){r._started=!0;WritableStreamDealWithRejection(t,a)}))}function WritableStreamDefaultControllerClearAlgorithms(t){t._writeAlgorithm=void 0;t._closeAlgorithm=void 0;t._abortAlgorithm=void 0;t._strategySizeAlgorithm=void 0}function WritableStreamDefaultControllerGetDesiredSize(t){return t._strategyHWM-t._queueTotalSize}function WritableStreamDefaultControllerAdvanceQueueIfNeeded(t){var r=t._controlledWritableStream;if(t._started&&void 0===r._inFlightWriteRequest)if("erroring"!==r._state){if(0!==t._queue.length){var a=function PeekQueueValue(t){return t._queue.peek().value}(t);a===I?function WritableStreamDefaultControllerProcessClose(t){var r=t._controlledWritableStream;!function WritableStreamMarkCloseRequestInFlight(t){t._inFlightCloseRequest=t._closeRequest;t._closeRequest=void 0}(r);DequeueValue(t);var a=t._closeAlgorithm();WritableStreamDefaultControllerClearAlgorithms(t);uponPromise(a,(function(){!function WritableStreamFinishInFlightClose(t){t._inFlightCloseRequest._resolve(void 0);t._inFlightCloseRequest=void 0;if("erroring"===t._state){t._storedError=void 0;if(void 0!==t._pendingAbortRequest){t._pendingAbortRequest._resolve();t._pendingAbortRequest=void 0}}t._state="closed";var r=t._writer;void 0!==r&&defaultWriterClosedPromiseResolve(r)}(r)}),(function(t){!function WritableStreamFinishInFlightCloseWithError(t,r){t._inFlightCloseRequest._reject(r);t._inFlightCloseRequest=void 0;if(void 0!==t._pendingAbortRequest){t._pendingAbortRequest._reject(r);t._pendingAbortRequest=void 0}WritableStreamDealWithRejection(t,r)}(r,t)}))}(t):function WritableStreamDefaultControllerProcessWrite(t,r){var a=t._controlledWritableStream;!function WritableStreamMarkFirstWriteRequestInFlight(t){t._inFlightWriteRequest=t._writeRequests.shift()}(a);uponPromise(t._writeAlgorithm(r),(function(){!function WritableStreamFinishInFlightWrite(t){t._inFlightWriteRequest._resolve(void 0);t._inFlightWriteRequest=void 0}(a);var r=a._state;DequeueValue(t);if(!WritableStreamCloseQueuedOrInFlight(a)&&"writable"===r){var o=WritableStreamDefaultControllerGetBackpressure(t);WritableStreamUpdateBackpressure(a,o)}WritableStreamDefaultControllerAdvanceQueueIfNeeded(t)}),(function(r){"writable"===a._state&&WritableStreamDefaultControllerClearAlgorithms(t);!function WritableStreamFinishInFlightWriteWithError(t,r){t._inFlightWriteRequest._reject(r);t._inFlightWriteRequest=void 0;WritableStreamDealWithRejection(t,r)}(a,r)}))}(t,a)}}else WritableStreamFinishErroring(r)}function WritableStreamDefaultControllerErrorIfNeeded(t,r){"writable"===t._controlledWritableStream._state&&WritableStreamDefaultControllerError(t,r)}function WritableStreamDefaultControllerGetBackpressure(t){return WritableStreamDefaultControllerGetDesiredSize(t)<=0}function WritableStreamDefaultControllerError(t,r){var a=t._controlledWritableStream;WritableStreamDefaultControllerClearAlgorithms(t);WritableStreamStartErroring(a,r)}function streamBrandCheckException$2(t){return new TypeError("WritableStream.prototype."+t+" can only be used on a WritableStream")}function defaultControllerBrandCheckException$2(t){return new TypeError("WritableStreamDefaultController.prototype."+t+" can only be used on a WritableStreamDefaultController")}function defaultWriterBrandCheckException(t){return new TypeError("WritableStreamDefaultWriter.prototype."+t+" can only be used on a WritableStreamDefaultWriter")}function defaultWriterLockException(t){return new TypeError("Cannot "+t+" a stream using a released writer")}function defaultWriterClosedPromiseInitialize(t){t._closedPromise=newPromise((function(r,a){t._closedPromise_resolve=r;t._closedPromise_reject=a;t._closedPromiseState="pending"}))}function defaultWriterClosedPromiseInitializeAsRejected(t,r){defaultWriterClosedPromiseInitialize(t);defaultWriterClosedPromiseReject(t,r)}function defaultWriterClosedPromiseReject(t,r){if(void 0!==t._closedPromise_reject){setPromiseIsHandledToTrue(t._closedPromise);t._closedPromise_reject(r);t._closedPromise_resolve=void 0;t._closedPromise_reject=void 0;t._closedPromiseState="rejected"}}function defaultWriterClosedPromiseResolve(t){if(void 0!==t._closedPromise_resolve){t._closedPromise_resolve(void 0);t._closedPromise_resolve=void 0;t._closedPromise_reject=void 0;t._closedPromiseState="resolved"}}function defaultWriterReadyPromiseInitialize(t){t._readyPromise=newPromise((function(r,a){t._readyPromise_resolve=r;t._readyPromise_reject=a}));t._readyPromiseState="pending"}function defaultWriterReadyPromiseInitializeAsRejected(t,r){defaultWriterReadyPromiseInitialize(t);defaultWriterReadyPromiseReject(t,r)}function defaultWriterReadyPromiseInitializeAsResolved(t){defaultWriterReadyPromiseInitialize(t);defaultWriterReadyPromiseResolve(t)}function defaultWriterReadyPromiseReject(t,r){if(void 0!==t._readyPromise_reject){setPromiseIsHandledToTrue(t._readyPromise);t._readyPromise_reject(r);t._readyPromise_resolve=void 0;t._readyPromise_reject=void 0;t._readyPromiseState="rejected"}}function defaultWriterReadyPromiseResolve(t){if(void 0!==t._readyPromise_resolve){t._readyPromise_resolve(void 0);t._readyPromise_resolve=void 0;t._readyPromise_reject=void 0;t._readyPromiseState="fulfilled"}}var M="undefined"!=typeof DOMException?DOMException:void 0,j=function isDOMExceptionConstructor(t){if("function"!=typeof t&&"object"!=typeof t)return!1;try{new t;return!0}catch(t){return!1}}(M)?M:function createDOMExceptionPolyfill(){var t=function DOMException(t,r){this.message=t||"";this.name=r||"Error";Error.captureStackTrace&&Error.captureStackTrace(this,this.constructor)};t.prototype=Object.create(Error.prototype);Object.defineProperty(t.prototype,"constructor",{value:t,writable:!0,configurable:!0});return t}();function ReadableStreamPipeTo(t,r,a,o,i,l){var u=AcquireReadableStreamDefaultReader(t),c=AcquireWritableStreamDefaultWriter(r);t._disturbed=!0;var d=!1,h=promiseResolvedWith(void 0);return newPromise((function(p,m){var y;if(void 0!==l){y=function(){var a=new j("Aborted","AbortError"),l=[];o||l.push((function(){return"writable"===r._state?WritableStreamAbort(r,a):promiseResolvedWith(void 0)}));i||l.push((function(){return"readable"===t._state?ReadableStreamCancel(t,a):promiseResolvedWith(void 0)}));shutdownWithAction((function(){return Promise.all(l.map((function(t){return t()})))}),!0,a)};if(l.aborted){y();return}l.addEventListener("abort",y)}isOrBecomesErrored(t,u._closedPromise,(function(t){o?shutdown(!0,t):shutdownWithAction((function(){return WritableStreamAbort(r,t)}),!0,t)}));isOrBecomesErrored(r,c._closedPromise,(function(r){i?shutdown(!0,r):shutdownWithAction((function(){return ReadableStreamCancel(t,r)}),!0,r)}));!function isOrBecomesClosed(t,r,a){"closed"===t._state?a():uponFulfillment(r,a)}(t,u._closedPromise,(function(){a?shutdown():shutdownWithAction((function(){return function WritableStreamDefaultWriterCloseWithErrorPropagation(t){var r=t._ownerWritableStream,a=r._state;return WritableStreamCloseQueuedOrInFlight(r)||"closed"===a?promiseResolvedWith(void 0):"errored"===a?promiseRejectedWith(r._storedError):WritableStreamDefaultWriterClose(t)}(c)}))}));if(WritableStreamCloseQueuedOrInFlight(r)||"closed"===r._state){var v=new TypeError("the destination writable stream closed before all data could be piped to it");i?shutdown(!0,v):shutdownWithAction((function(){return ReadableStreamCancel(t,v)}),!0,v)}setPromiseIsHandledToTrue(function pipeLoop(){return newPromise((function(t,r){!function next(a){a?t():PerformPromiseThen(function pipeStep(){return d?promiseResolvedWith(!0):PerformPromiseThen(c._readyPromise,(function(){return newPromise((function(t,r){ReadableStreamDefaultReaderRead(u,{_chunkSteps:function(r){h=PerformPromiseThen(WritableStreamDefaultWriterWrite(c,r),void 0,noop);t(!1)},_closeSteps:function(){return t(!0)},_errorSteps:r})}))}))}(),next,r)}(!1)}))}());function waitForWritesToFinish(){var t=h;return PerformPromiseThen(h,(function(){return t!==h?waitForWritesToFinish():void 0}))}function isOrBecomesErrored(t,r,a){"errored"===t._state?a(t._storedError):uponRejection(r,a)}function shutdownWithAction(t,a,o){if(!d){d=!0;"writable"!==r._state||WritableStreamCloseQueuedOrInFlight(r)?doTheRest():uponFulfillment(waitForWritesToFinish(),doTheRest)}function doTheRest(){uponPromise(t(),(function(){return finalize(a,o)}),(function(t){return finalize(!0,t)}))}}function shutdown(t,a){if(!d){d=!0;"writable"!==r._state||WritableStreamCloseQueuedOrInFlight(r)?finalize(t,a):uponFulfillment(waitForWritesToFinish(),(function(){return finalize(t,a)}))}}function finalize(t,r){WritableStreamDefaultWriterRelease(c);ReadableStreamReaderGenericRelease(u);void 0!==l&&l.removeEventListener("abort",y);t?m(r):p(void 0)}}))}var L=function(){function ReadableStreamDefaultController(){throw new TypeError("Illegal constructor")}Object.defineProperty(ReadableStreamDefaultController.prototype,"desiredSize",{get:function(){if(!IsReadableStreamDefaultController(this))throw defaultControllerBrandCheckException$1("desiredSize");return ReadableStreamDefaultControllerGetDesiredSize(this)},enumerable:!1,configurable:!0});ReadableStreamDefaultController.prototype.close=function(){if(!IsReadableStreamDefaultController(this))throw defaultControllerBrandCheckException$1("close");if(!ReadableStreamDefaultControllerCanCloseOrEnqueue(this))throw new TypeError("The stream is not in a state that permits close");ReadableStreamDefaultControllerClose(this)};ReadableStreamDefaultController.prototype.enqueue=function(t){void 0===t&&(t=void 0);if(!IsReadableStreamDefaultController(this))throw defaultControllerBrandCheckException$1("enqueue");if(!ReadableStreamDefaultControllerCanCloseOrEnqueue(this))throw new TypeError("The stream is not in a state that permits enqueue");return ReadableStreamDefaultControllerEnqueue(this,t)};ReadableStreamDefaultController.prototype.error=function(t){void 0===t&&(t=void 0);if(!IsReadableStreamDefaultController(this))throw defaultControllerBrandCheckException$1("error");ReadableStreamDefaultControllerError(this,t)};ReadableStreamDefaultController.prototype[y]=function(t){ResetQueue(this);var r=this._cancelAlgorithm(t);ReadableStreamDefaultControllerClearAlgorithms(this);return r};ReadableStreamDefaultController.prototype[v]=function(t){var r=this._controlledReadableStream;if(this._queue.length>0){var a=DequeueValue(this);if(this._closeRequested&&0===this._queue.length){ReadableStreamDefaultControllerClearAlgorithms(this);ReadableStreamClose(r)}else ReadableStreamDefaultControllerCallPullIfNeeded(this);t._chunkSteps(a)}else{ReadableStreamAddReadRequest(r,t);ReadableStreamDefaultControllerCallPullIfNeeded(this)}};return ReadableStreamDefaultController}();Object.defineProperties(L.prototype,{close:{enumerable:!0},enqueue:{enumerable:!0},error:{enumerable:!0},desiredSize:{enumerable:!0}});"symbol"==typeof r.toStringTag&&Object.defineProperty(L.prototype,r.toStringTag,{value:"ReadableStreamDefaultController",configurable:!0});function IsReadableStreamDefaultController(t){return!!typeIsObject(t)&&!!Object.prototype.hasOwnProperty.call(t,"_controlledReadableStream")&&t instanceof L}function ReadableStreamDefaultControllerCallPullIfNeeded(t){if(ReadableStreamDefaultControllerShouldCallPull(t))if(t._pulling)t._pullAgain=!0;else{t._pulling=!0;uponPromise(t._pullAlgorithm(),(function(){t._pulling=!1;if(t._pullAgain){t._pullAgain=!1;ReadableStreamDefaultControllerCallPullIfNeeded(t)}}),(function(r){ReadableStreamDefaultControllerError(t,r)}))}}function ReadableStreamDefaultControllerShouldCallPull(t){var r=t._controlledReadableStream;return!!ReadableStreamDefaultControllerCanCloseOrEnqueue(t)&&!!t._started&&(!!(IsReadableStreamLocked(r)&&ReadableStreamGetNumReadRequests(r)>0)||ReadableStreamDefaultControllerGetDesiredSize(t)>0)}function ReadableStreamDefaultControllerClearAlgorithms(t){t._pullAlgorithm=void 0;t._cancelAlgorithm=void 0;t._strategySizeAlgorithm=void 0}function ReadableStreamDefaultControllerClose(t){if(ReadableStreamDefaultControllerCanCloseOrEnqueue(t)){var r=t._controlledReadableStream;t._closeRequested=!0;if(0===t._queue.length){ReadableStreamDefaultControllerClearAlgorithms(t);ReadableStreamClose(r)}}}function ReadableStreamDefaultControllerEnqueue(t,r){if(ReadableStreamDefaultControllerCanCloseOrEnqueue(t)){var a=t._controlledReadableStream;if(IsReadableStreamLocked(a)&&ReadableStreamGetNumReadRequests(a)>0)ReadableStreamFulfillReadRequest(a,r,!1);else{var o=void 0;try{o=t._strategySizeAlgorithm(r)}catch(r){ReadableStreamDefaultControllerError(t,r);throw r}try{EnqueueValueWithSize(t,r,o)}catch(r){ReadableStreamDefaultControllerError(t,r);throw r}}ReadableStreamDefaultControllerCallPullIfNeeded(t)}}function ReadableStreamDefaultControllerError(t,r){var a=t._controlledReadableStream;if("readable"===a._state){ResetQueue(t);ReadableStreamDefaultControllerClearAlgorithms(t);ReadableStreamError(a,r)}}function ReadableStreamDefaultControllerGetDesiredSize(t){var r=t._controlledReadableStream._state;return"errored"===r?null:"closed"===r?0:t._strategyHWM-t._queueTotalSize}function ReadableStreamDefaultControllerCanCloseOrEnqueue(t){var r=t._controlledReadableStream._state;return!t._closeRequested&&"readable"===r}function SetUpReadableStreamDefaultController(t,r,a,o,i,l,u){r._controlledReadableStream=t;r._queue=void 0;r._queueTotalSize=void 0;ResetQueue(r);r._started=!1;r._closeRequested=!1;r._pullAgain=!1;r._pulling=!1;r._strategySizeAlgorithm=u;r._strategyHWM=l;r._pullAlgorithm=o;r._cancelAlgorithm=i;t._readableStreamController=r;uponPromise(promiseResolvedWith(a()),(function(){r._started=!0;ReadableStreamDefaultControllerCallPullIfNeeded(r)}),(function(t){ReadableStreamDefaultControllerError(r,t)}))}function defaultControllerBrandCheckException$1(t){return new TypeError("ReadableStreamDefaultController.prototype."+t+" can only be used on a ReadableStreamDefaultController")}function ReadableStreamTee(t,r){return IsReadableByteStreamController(t._readableStreamController)?function ReadableByteStreamTee(t){var r,a,o,i,l,u=AcquireReadableStreamDefaultReader(t),c=!1,h=!1,p=!1,m=newPromise((function(t){l=t}));function forwardReaderError(t){uponRejection(t._closedPromise,(function(r){if(t===u){ReadableByteStreamControllerError(o._readableStreamController,r);ReadableByteStreamControllerError(i._readableStreamController,r);h&&p||l(void 0)}}))}function pullWithDefaultReader(){if(IsReadableStreamBYOBReader(u)){ReadableStreamReaderGenericRelease(u);forwardReaderError(u=AcquireReadableStreamDefaultReader(t))}ReadableStreamDefaultReaderRead(u,{_chunkSteps:function(r){d((function(){c=!1;var a=r,u=r;if(!h&&!p)try{u=CloneAsUint8Array(r)}catch(r){ReadableByteStreamControllerError(o._readableStreamController,r);ReadableByteStreamControllerError(i._readableStreamController,r);l(ReadableStreamCancel(t,r));return}h||ReadableByteStreamControllerEnqueue(o._readableStreamController,a);p||ReadableByteStreamControllerEnqueue(i._readableStreamController,u)}))},_closeSteps:function(){c=!1;h||ReadableByteStreamControllerClose(o._readableStreamController);p||ReadableByteStreamControllerClose(i._readableStreamController);o._readableStreamController._pendingPullIntos.length>0&&ReadableByteStreamControllerRespond(o._readableStreamController,0);i._readableStreamController._pendingPullIntos.length>0&&ReadableByteStreamControllerRespond(i._readableStreamController,0);h&&p||l(void 0)},_errorSteps:function(){c=!1}})}function pullWithBYOBReader(r,a){if(IsReadableStreamDefaultReader(u)){ReadableStreamReaderGenericRelease(u);forwardReaderError(u=AcquireReadableStreamBYOBReader(t))}var m=a?i:o,y=a?o:i;ReadableStreamBYOBReaderRead(u,r,{_chunkSteps:function(r){d((function(){c=!1;var o=a?p:h;if(a?h:p)o||ReadableByteStreamControllerRespondWithNewView(m._readableStreamController,r);else{var i=void 0;try{i=CloneAsUint8Array(r)}catch(r){ReadableByteStreamControllerError(m._readableStreamController,r);ReadableByteStreamControllerError(y._readableStreamController,r);l(ReadableStreamCancel(t,r));return}o||ReadableByteStreamControllerRespondWithNewView(m._readableStreamController,r);ReadableByteStreamControllerEnqueue(y._readableStreamController,i)}}))},_closeSteps:function(t){c=!1;var r=a?p:h,o=a?h:p;r||ReadableByteStreamControllerClose(m._readableStreamController);o||ReadableByteStreamControllerClose(y._readableStreamController);if(void 0!==t){r||ReadableByteStreamControllerRespondWithNewView(m._readableStreamController,t);!o&&y._readableStreamController._pendingPullIntos.length>0&&ReadableByteStreamControllerRespond(y._readableStreamController,0)}r&&o||l(void 0)},_errorSteps:function(){c=!1}})}function pull1Algorithm(){if(c)return promiseResolvedWith(void 0);c=!0;var t=ReadableByteStreamControllerGetBYOBRequest(o._readableStreamController);null===t?pullWithDefaultReader():pullWithBYOBReader(t._view,!1);return promiseResolvedWith(void 0)}function pull2Algorithm(){if(c)return promiseResolvedWith(void 0);c=!0;var t=ReadableByteStreamControllerGetBYOBRequest(i._readableStreamController);null===t?pullWithDefaultReader():pullWithBYOBReader(t._view,!0);return promiseResolvedWith(void 0)}function cancel1Algorithm(o){h=!0;r=o;if(p){var i=CreateArrayFromList([r,a]),u=ReadableStreamCancel(t,i);l(u)}return m}function cancel2Algorithm(o){p=!0;a=o;if(h){var i=CreateArrayFromList([r,a]),u=ReadableStreamCancel(t,i);l(u)}return m}function startAlgorithm(){}o=CreateReadableByteStream(startAlgorithm,pull1Algorithm,cancel1Algorithm);i=CreateReadableByteStream(startAlgorithm,pull2Algorithm,cancel2Algorithm);forwardReaderError(u);return[o,i]}(t):function ReadableStreamDefaultTee(t,r){var a,o,i,l,u,c=AcquireReadableStreamDefaultReader(t),h=!1,p=!1,m=!1,y=newPromise((function(t){u=t}));function pullAlgorithm(){if(h)return promiseResolvedWith(void 0);h=!0;ReadableStreamDefaultReaderRead(c,{_chunkSteps:function(t){d((function(){h=!1;var r=t,a=t;p||ReadableStreamDefaultControllerEnqueue(i._readableStreamController,r);m||ReadableStreamDefaultControllerEnqueue(l._readableStreamController,a)}))},_closeSteps:function(){h=!1;p||ReadableStreamDefaultControllerClose(i._readableStreamController);m||ReadableStreamDefaultControllerClose(l._readableStreamController);p&&m||u(void 0)},_errorSteps:function(){h=!1}});return promiseResolvedWith(void 0)}function cancel1Algorithm(r){p=!0;a=r;if(m){var i=CreateArrayFromList([a,o]),l=ReadableStreamCancel(t,i);u(l)}return y}function cancel2Algorithm(r){m=!0;o=r;if(p){var i=CreateArrayFromList([a,o]),l=ReadableStreamCancel(t,i);u(l)}return y}function startAlgorithm(){}i=CreateReadableStream(startAlgorithm,pullAlgorithm,cancel1Algorithm);l=CreateReadableStream(startAlgorithm,pullAlgorithm,cancel2Algorithm);uponRejection(c._closedPromise,(function(t){ReadableStreamDefaultControllerError(i._readableStreamController,t);ReadableStreamDefaultControllerError(l._readableStreamController,t);p&&m||u(void 0)}));return[i,l]}(t)}function convertUnderlyingSourceCancelCallback(t,r,a){assertFunction(t,a);return function(a){return promiseCall(t,r,[a])}}function convertUnderlyingSourcePullCallback(t,r,a){assertFunction(t,a);return function(a){return promiseCall(t,r,[a])}}function convertUnderlyingSourceStartCallback(t,r,a){assertFunction(t,a);return function(a){return reflectCall(t,r,[a])}}function convertReadableStreamType(t,r){if("bytes"!=(t=""+t))throw new TypeError(r+" '"+t+"' is not a valid enumeration value for ReadableStreamType");return t}function convertReadableStreamReaderMode(t,r){if("byob"!=(t=""+t))throw new TypeError(r+" '"+t+"' is not a valid enumeration value for ReadableStreamReaderMode");return t}function convertPipeOptions(t,r){assertDictionary(t,r);var a=null==t?void 0:t.preventAbort,o=null==t?void 0:t.preventCancel,i=null==t?void 0:t.preventClose,l=null==t?void 0:t.signal;void 0!==l&&function assertAbortSignal(t,r){if(!function isAbortSignal(t){if("object"!=typeof t||null===t)return!1;try{return"boolean"==typeof t.aborted}catch(t){return!1}}(t))throw new TypeError(r+" is not an AbortSignal.")}(l,r+" has member 'signal' that");return{preventAbort:Boolean(a),preventCancel:Boolean(o),preventClose:Boolean(i),signal:l}}var W=function(){function ReadableStream(t,r){void 0===t&&(t={});void 0===r&&(r={});void 0===t?t=null:assertObject(t,"First parameter");var a=convertQueuingStrategy(r,"Second parameter"),o=function convertUnderlyingDefaultOrByteSource(t,r){assertDictionary(t,r);var a=t,o=null==a?void 0:a.autoAllocateChunkSize,i=null==a?void 0:a.cancel,l=null==a?void 0:a.pull,u=null==a?void 0:a.start,c=null==a?void 0:a.type;return{autoAllocateChunkSize:void 0===o?void 0:convertUnsignedLongLongWithEnforceRange(o,r+" has member 'autoAllocateChunkSize' that"),cancel:void 0===i?void 0:convertUnderlyingSourceCancelCallback(i,a,r+" has member 'cancel' that"),pull:void 0===l?void 0:convertUnderlyingSourcePullCallback(l,a,r+" has member 'pull' that"),start:void 0===u?void 0:convertUnderlyingSourceStartCallback(u,a,r+" has member 'start' that"),type:void 0===c?void 0:convertReadableStreamType(c,r+" has member 'type' that")}}(t,"First parameter");InitializeReadableStream(this);if("bytes"===o.type){if(void 0!==a.size)throw new RangeError("The strategy for a byte stream cannot have a size function");!function SetUpReadableByteStreamControllerFromUnderlyingSource(t,r,a){var o=Object.create(P.prototype),startAlgorithm=function(){},pullAlgorithm=function(){return promiseResolvedWith(void 0)},cancelAlgorithm=function(){return promiseResolvedWith(void 0)};void 0!==r.start&&(startAlgorithm=function(){return r.start(o)});void 0!==r.pull&&(pullAlgorithm=function(){return r.pull(o)});void 0!==r.cancel&&(cancelAlgorithm=function(t){return r.cancel(t)});var i=r.autoAllocateChunkSize;if(0===i)throw new TypeError("autoAllocateChunkSize must be greater than 0");SetUpReadableByteStreamController(t,o,startAlgorithm,pullAlgorithm,cancelAlgorithm,a,i)}(this,o,ExtractHighWaterMark(a,0))}else{var i=ExtractSizeAlgorithm(a);!function SetUpReadableStreamDefaultControllerFromUnderlyingSource(t,r,a,o){var i=Object.create(L.prototype),startAlgorithm=function(){},pullAlgorithm=function(){return promiseResolvedWith(void 0)},cancelAlgorithm=function(){return promiseResolvedWith(void 0)};void 0!==r.start&&(startAlgorithm=function(){return r.start(i)});void 0!==r.pull&&(pullAlgorithm=function(){return r.pull(i)});void 0!==r.cancel&&(cancelAlgorithm=function(t){return r.cancel(t)});SetUpReadableStreamDefaultController(t,i,startAlgorithm,pullAlgorithm,cancelAlgorithm,a,o)}(this,o,ExtractHighWaterMark(a,1),i)}}Object.defineProperty(ReadableStream.prototype,"locked",{get:function(){if(!IsReadableStream(this))throw streamBrandCheckException$1("locked");return IsReadableStreamLocked(this)},enumerable:!1,configurable:!0});ReadableStream.prototype.cancel=function(t){void 0===t&&(t=void 0);return IsReadableStream(this)?IsReadableStreamLocked(this)?promiseRejectedWith(new TypeError("Cannot cancel a stream that already has a reader")):ReadableStreamCancel(this,t):promiseRejectedWith(streamBrandCheckException$1("cancel"))};ReadableStream.prototype.getReader=function(t){void 0===t&&(t=void 0);if(!IsReadableStream(this))throw streamBrandCheckException$1("getReader");return void 0===function convertReaderOptions(t,r){assertDictionary(t,r);var a=null==t?void 0:t.mode;return{mode:void 0===a?void 0:convertReadableStreamReaderMode(a,r+" has member 'mode' that")}}(t,"First parameter").mode?AcquireReadableStreamDefaultReader(this):AcquireReadableStreamBYOBReader(this)};ReadableStream.prototype.pipeThrough=function(t,r){void 0===r&&(r={});if(!IsReadableStream(this))throw streamBrandCheckException$1("pipeThrough");assertRequiredArgument(t,1,"pipeThrough");var a=function convertReadableWritablePair(t,r){assertDictionary(t,r);var a=null==t?void 0:t.readable;assertRequiredField(a,"readable","ReadableWritablePair");assertReadableStream(a,r+" has member 'readable' that");var o=null==t?void 0:t.writable;assertRequiredField(o,"writable","ReadableWritablePair");assertWritableStream(o,r+" has member 'writable' that");return{readable:a,writable:o}}(t,"First parameter"),o=convertPipeOptions(r,"Second parameter");if(IsReadableStreamLocked(this))throw new TypeError("ReadableStream.prototype.pipeThrough cannot be used on a locked ReadableStream");if(IsWritableStreamLocked(a.writable))throw new TypeError("ReadableStream.prototype.pipeThrough cannot be used on a locked WritableStream");setPromiseIsHandledToTrue(ReadableStreamPipeTo(this,a.writable,o.preventClose,o.preventAbort,o.preventCancel,o.signal));return a.readable};ReadableStream.prototype.pipeTo=function(t,r){void 0===r&&(r={});if(!IsReadableStream(this))return promiseRejectedWith(streamBrandCheckException$1("pipeTo"));if(void 0===t)return promiseRejectedWith("Parameter 1 is required in 'pipeTo'.");if(!IsWritableStream(t))return promiseRejectedWith(new TypeError("ReadableStream.prototype.pipeTo's first argument must be a WritableStream"));var a;try{a=convertPipeOptions(r,"Second parameter")}catch(t){return promiseRejectedWith(t)}return IsReadableStreamLocked(this)?promiseRejectedWith(new TypeError("ReadableStream.prototype.pipeTo cannot be used on a locked ReadableStream")):IsWritableStreamLocked(t)?promiseRejectedWith(new TypeError("ReadableStream.prototype.pipeTo cannot be used on a locked WritableStream")):ReadableStreamPipeTo(this,t,a.preventClose,a.preventAbort,a.preventCancel,a.signal)};ReadableStream.prototype.tee=function(){if(!IsReadableStream(this))throw streamBrandCheckException$1("tee");return CreateArrayFromList(ReadableStreamTee(this))};ReadableStream.prototype.values=function(t){void 0===t&&(t=void 0);if(!IsReadableStream(this))throw streamBrandCheckException$1("values");return function AcquireReadableStreamAsyncIterator(t,r){var a=AcquireReadableStreamDefaultReader(t),o=new C(a,r),i=Object.create(k);i._asyncIteratorImpl=o;return i}(this,function convertIteratorOptions(t,r){assertDictionary(t,r);var a=null==t?void 0:t.preventCancel;return{preventCancel:Boolean(a)}}(t,"First parameter").preventCancel)};return ReadableStream}();Object.defineProperties(W.prototype,{cancel:{enumerable:!0},getReader:{enumerable:!0},pipeThrough:{enumerable:!0},pipeTo:{enumerable:!0},tee:{enumerable:!0},values:{enumerable:!0},locked:{enumerable:!0}});"symbol"==typeof r.toStringTag&&Object.defineProperty(W.prototype,r.toStringTag,{value:"ReadableStream",configurable:!0});"symbol"==typeof r.asyncIterator&&Object.defineProperty(W.prototype,r.asyncIterator,{value:W.prototype.values,writable:!0,configurable:!0});function CreateReadableStream(t,r,a,o,i){void 0===o&&(o=1);void 0===i&&(i=function(){return 1});var l=Object.create(W.prototype);InitializeReadableStream(l);SetUpReadableStreamDefaultController(l,Object.create(L.prototype),t,r,a,o,i);return l}function CreateReadableByteStream(t,r,a){var o=Object.create(W.prototype);InitializeReadableStream(o);SetUpReadableByteStreamController(o,Object.create(P.prototype),t,r,a,0,void 0);return o}function InitializeReadableStream(t){t._state="readable";t._reader=void 0;t._storedError=void 0;t._disturbed=!1}function IsReadableStream(t){return!!typeIsObject(t)&&!!Object.prototype.hasOwnProperty.call(t,"_readableStreamController")&&t instanceof W}function IsReadableStreamLocked(t){return void 0!==t._reader}function ReadableStreamCancel(t,r){t._disturbed=!0;if("closed"===t._state)return promiseResolvedWith(void 0);if("errored"===t._state)return promiseRejectedWith(t._storedError);ReadableStreamClose(t);var a=t._reader;if(void 0!==a&&IsReadableStreamBYOBReader(a)){a._readIntoRequests.forEach((function(t){t._closeSteps(void 0)}));a._readIntoRequests=new h}return transformPromiseWith(t._readableStreamController[y](r),noop)}function ReadableStreamClose(t){t._state="closed";var r=t._reader;if(void 0!==r){defaultReaderClosedPromiseResolve(r);if(IsReadableStreamDefaultReader(r)){r._readRequests.forEach((function(t){t._closeSteps()}));r._readRequests=new h}}}function ReadableStreamError(t,r){t._state="errored";t._storedError=r;var a=t._reader;if(void 0!==a){defaultReaderClosedPromiseReject(a,r);if(IsReadableStreamDefaultReader(a)){a._readRequests.forEach((function(t){t._errorSteps(r)}));a._readRequests=new h}else{a._readIntoRequests.forEach((function(t){t._errorSteps(r)}));a._readIntoRequests=new h}}}function streamBrandCheckException$1(t){return new TypeError("ReadableStream.prototype."+t+" can only be used on a ReadableStream")}function convertQueuingStrategyInit(t,r){assertDictionary(t,r);var a=null==t?void 0:t.highWaterMark;assertRequiredField(a,"highWaterMark","QueuingStrategyInit");return{highWaterMark:convertUnrestrictedDouble(a)}}var byteLengthSizeFunction=function(t){return t.byteLength};Object.defineProperty(byteLengthSizeFunction,"name",{value:"size",configurable:!0});var B=function(){function ByteLengthQueuingStrategy(t){assertRequiredArgument(t,1,"ByteLengthQueuingStrategy");t=convertQueuingStrategyInit(t,"First parameter");this._byteLengthQueuingStrategyHighWaterMark=t.highWaterMark}Object.defineProperty(ByteLengthQueuingStrategy.prototype,"highWaterMark",{get:function(){if(!IsByteLengthQueuingStrategy(this))throw byteLengthBrandCheckException("highWaterMark");return this._byteLengthQueuingStrategyHighWaterMark},enumerable:!1,configurable:!0});Object.defineProperty(ByteLengthQueuingStrategy.prototype,"size",{get:function(){if(!IsByteLengthQueuingStrategy(this))throw byteLengthBrandCheckException("size");return byteLengthSizeFunction},enumerable:!1,configurable:!0});return ByteLengthQueuingStrategy}();Object.defineProperties(B.prototype,{highWaterMark:{enumerable:!0},size:{enumerable:!0}});"symbol"==typeof r.toStringTag&&Object.defineProperty(B.prototype,r.toStringTag,{value:"ByteLengthQueuingStrategy",configurable:!0});function byteLengthBrandCheckException(t){return new TypeError("ByteLengthQueuingStrategy.prototype."+t+" can only be used on a ByteLengthQueuingStrategy")}function IsByteLengthQueuingStrategy(t){return!!typeIsObject(t)&&!!Object.prototype.hasOwnProperty.call(t,"_byteLengthQueuingStrategyHighWaterMark")&&t instanceof B}var countSizeFunction=function(){return 1};Object.defineProperty(countSizeFunction,"name",{value:"size",configurable:!0});var N=function(){function CountQueuingStrategy(t){assertRequiredArgument(t,1,"CountQueuingStrategy");t=convertQueuingStrategyInit(t,"First parameter");this._countQueuingStrategyHighWaterMark=t.highWaterMark}Object.defineProperty(CountQueuingStrategy.prototype,"highWaterMark",{get:function(){if(!IsCountQueuingStrategy(this))throw countBrandCheckException("highWaterMark");return this._countQueuingStrategyHighWaterMark},enumerable:!1,configurable:!0});Object.defineProperty(CountQueuingStrategy.prototype,"size",{get:function(){if(!IsCountQueuingStrategy(this))throw countBrandCheckException("size");return countSizeFunction},enumerable:!1,configurable:!0});return CountQueuingStrategy}();Object.defineProperties(N.prototype,{highWaterMark:{enumerable:!0},size:{enumerable:!0}});"symbol"==typeof r.toStringTag&&Object.defineProperty(N.prototype,r.toStringTag,{value:"CountQueuingStrategy",configurable:!0});function countBrandCheckException(t){return new TypeError("CountQueuingStrategy.prototype."+t+" can only be used on a CountQueuingStrategy")}function IsCountQueuingStrategy(t){return!!typeIsObject(t)&&!!Object.prototype.hasOwnProperty.call(t,"_countQueuingStrategyHighWaterMark")&&t instanceof N}function convertTransformerFlushCallback(t,r,a){assertFunction(t,a);return function(a){return promiseCall(t,r,[a])}}function convertTransformerStartCallback(t,r,a){assertFunction(t,a);return function(a){return reflectCall(t,r,[a])}}function convertTransformerTransformCallback(t,r,a){assertFunction(t,a);return function(a,o){return promiseCall(t,r,[a,o])}}var q=function(){function TransformStream(t,r,a){void 0===t&&(t={});void 0===r&&(r={});void 0===a&&(a={});void 0===t&&(t=null);var o=convertQueuingStrategy(r,"Second parameter"),i=convertQueuingStrategy(a,"Third parameter"),l=function convertTransformer(t,r){assertDictionary(t,r);var a=null==t?void 0:t.flush,o=null==t?void 0:t.readableType,i=null==t?void 0:t.start,l=null==t?void 0:t.transform,u=null==t?void 0:t.writableType;return{flush:void 0===a?void 0:convertTransformerFlushCallback(a,t,r+" has member 'flush' that"),readableType:o,start:void 0===i?void 0:convertTransformerStartCallback(i,t,r+" has member 'start' that"),transform:void 0===l?void 0:convertTransformerTransformCallback(l,t,r+" has member 'transform' that"),writableType:u}}(t,"First parameter");if(void 0!==l.readableType)throw new RangeError("Invalid readableType specified");if(void 0!==l.writableType)throw new RangeError("Invalid writableType specified");var u,c=ExtractHighWaterMark(i,0),d=ExtractSizeAlgorithm(i),h=ExtractHighWaterMark(o,1),p=ExtractSizeAlgorithm(o);!function InitializeTransformStream(t,r,a,o,i,l){function startAlgorithm(){return r}function writeAlgorithm(r){return function TransformStreamDefaultSinkWriteAlgorithm(t,r){var a=t._transformStreamController;return t._backpressure?transformPromiseWith(t._backpressureChangePromise,(function(){var o=t._writable;if("erroring"===o._state)throw o._storedError;return TransformStreamDefaultControllerPerformTransform(a,r)})):TransformStreamDefaultControllerPerformTransform(a,r)}(t,r)}function abortAlgorithm(r){return function TransformStreamDefaultSinkAbortAlgorithm(t,r){TransformStreamError(t,r);return promiseResolvedWith(void 0)}(t,r)}function closeAlgorithm(){return function TransformStreamDefaultSinkCloseAlgorithm(t){var r=t._readable,a=t._transformStreamController,o=a._flushAlgorithm();TransformStreamDefaultControllerClearAlgorithms(a);return transformPromiseWith(o,(function(){if("errored"===r._state)throw r._storedError;ReadableStreamDefaultControllerClose(r._readableStreamController)}),(function(a){TransformStreamError(t,a);throw r._storedError}))}(t)}t._writable=function CreateWritableStream(t,r,a,o,i,l){void 0===i&&(i=1);void 0===l&&(l=function(){return 1});var u=Object.create(E.prototype);InitializeWritableStream(u);SetUpWritableStreamDefaultController(u,Object.create(D.prototype),t,r,a,o,i,l);return u}(startAlgorithm,writeAlgorithm,closeAlgorithm,abortAlgorithm,a,o);function pullAlgorithm(){return function TransformStreamDefaultSourcePullAlgorithm(t){TransformStreamSetBackpressure(t,!1);return t._backpressureChangePromise}(t)}function cancelAlgorithm(r){TransformStreamErrorWritableAndUnblockWrite(t,r);return promiseResolvedWith(void 0)}t._readable=CreateReadableStream(startAlgorithm,pullAlgorithm,cancelAlgorithm,i,l);t._backpressure=void 0;t._backpressureChangePromise=void 0;t._backpressureChangePromise_resolve=void 0;TransformStreamSetBackpressure(t,!0);t._transformStreamController=void 0}(this,newPromise((function(t){u=t})),h,p,c,d);!function SetUpTransformStreamDefaultControllerFromTransformer(t,r){var a=Object.create(U.prototype),transformAlgorithm=function(t){try{TransformStreamDefaultControllerEnqueue(a,t);return promiseResolvedWith(void 0)}catch(t){return promiseRejectedWith(t)}},flushAlgorithm=function(){return promiseResolvedWith(void 0)};void 0!==r.transform&&(transformAlgorithm=function(t){return r.transform(t,a)});void 0!==r.flush&&(flushAlgorithm=function(){return r.flush(a)});!function SetUpTransformStreamDefaultController(t,r,a,o){r._controlledTransformStream=t;t._transformStreamController=r;r._transformAlgorithm=a;r._flushAlgorithm=o}(t,a,transformAlgorithm,flushAlgorithm)}(this,l);void 0!==l.start?u(l.start(this._transformStreamController)):u(void 0)}Object.defineProperty(TransformStream.prototype,"readable",{get:function(){if(!IsTransformStream(this))throw streamBrandCheckException("readable");return this._readable},enumerable:!1,configurable:!0});Object.defineProperty(TransformStream.prototype,"writable",{get:function(){if(!IsTransformStream(this))throw streamBrandCheckException("writable");return this._writable},enumerable:!1,configurable:!0});return TransformStream}();Object.defineProperties(q.prototype,{readable:{enumerable:!0},writable:{enumerable:!0}});"symbol"==typeof r.toStringTag&&Object.defineProperty(q.prototype,r.toStringTag,{value:"TransformStream",configurable:!0});function IsTransformStream(t){return!!typeIsObject(t)&&!!Object.prototype.hasOwnProperty.call(t,"_transformStreamController")&&t instanceof q}function TransformStreamError(t,r){ReadableStreamDefaultControllerError(t._readable._readableStreamController,r);TransformStreamErrorWritableAndUnblockWrite(t,r)}function TransformStreamErrorWritableAndUnblockWrite(t,r){TransformStreamDefaultControllerClearAlgorithms(t._transformStreamController);WritableStreamDefaultControllerErrorIfNeeded(t._writable._writableStreamController,r);t._backpressure&&TransformStreamSetBackpressure(t,!1)}function TransformStreamSetBackpressure(t,r){void 0!==t._backpressureChangePromise&&t._backpressureChangePromise_resolve();t._backpressureChangePromise=newPromise((function(r){t._backpressureChangePromise_resolve=r}));t._backpressure=r}var U=function(){function TransformStreamDefaultController(){throw new TypeError("Illegal constructor")}Object.defineProperty(TransformStreamDefaultController.prototype,"desiredSize",{get:function(){if(!IsTransformStreamDefaultController(this))throw defaultControllerBrandCheckException("desiredSize");return ReadableStreamDefaultControllerGetDesiredSize(this._controlledTransformStream._readable._readableStreamController)},enumerable:!1,configurable:!0});TransformStreamDefaultController.prototype.enqueue=function(t){void 0===t&&(t=void 0);if(!IsTransformStreamDefaultController(this))throw defaultControllerBrandCheckException("enqueue");TransformStreamDefaultControllerEnqueue(this,t)};TransformStreamDefaultController.prototype.error=function(t){void 0===t&&(t=void 0);if(!IsTransformStreamDefaultController(this))throw defaultControllerBrandCheckException("error");!function TransformStreamDefaultControllerError(t,r){TransformStreamError(t._controlledTransformStream,r)}(this,t)};TransformStreamDefaultController.prototype.terminate=function(){if(!IsTransformStreamDefaultController(this))throw defaultControllerBrandCheckException("terminate");!function TransformStreamDefaultControllerTerminate(t){var r=t._controlledTransformStream;ReadableStreamDefaultControllerClose(r._readable._readableStreamController);var a=new TypeError("TransformStream terminated");TransformStreamErrorWritableAndUnblockWrite(r,a)}(this)};return TransformStreamDefaultController}();Object.defineProperties(U.prototype,{enqueue:{enumerable:!0},error:{enumerable:!0},terminate:{enumerable:!0},desiredSize:{enumerable:!0}});"symbol"==typeof r.toStringTag&&Object.defineProperty(U.prototype,r.toStringTag,{value:"TransformStreamDefaultController",configurable:!0});function IsTransformStreamDefaultController(t){return!!typeIsObject(t)&&!!Object.prototype.hasOwnProperty.call(t,"_controlledTransformStream")&&t instanceof U}function TransformStreamDefaultControllerClearAlgorithms(t){t._transformAlgorithm=void 0;t._flushAlgorithm=void 0}function TransformStreamDefaultControllerEnqueue(t,r){var a=t._controlledTransformStream,o=a._readable._readableStreamController;if(!ReadableStreamDefaultControllerCanCloseOrEnqueue(o))throw new TypeError("Readable side is not in a state that permits enqueue");try{ReadableStreamDefaultControllerEnqueue(o,r)}catch(t){TransformStreamErrorWritableAndUnblockWrite(a,t);throw a._readable._storedError}var i=function ReadableStreamDefaultControllerHasBackpressure(t){return!ReadableStreamDefaultControllerShouldCallPull(t)}(o);i!==a._backpressure&&TransformStreamSetBackpressure(a,!0)}function TransformStreamDefaultControllerPerformTransform(t,r){return transformPromiseWith(t._transformAlgorithm(r),void 0,(function(r){TransformStreamError(t._controlledTransformStream,r);throw r}))}function defaultControllerBrandCheckException(t){return new TypeError("TransformStreamDefaultController.prototype."+t+" can only be used on a TransformStreamDefaultController")}function streamBrandCheckException(t){return new TypeError("TransformStream.prototype."+t+" can only be used on a TransformStream")}t.ByteLengthQueuingStrategy=B;t.CountQueuingStrategy=N;t.ReadableByteStreamController=P;t.ReadableStream=W;t.ReadableStreamBYOBReader=x;t.ReadableStreamBYOBRequest=w;t.ReadableStreamDefaultController=L;t.ReadableStreamDefaultReader=A;t.TransformStream=q;t.TransformStreamDefaultController=U;t.WritableStream=E;t.WritableStreamDefaultController=D;t.WritableStreamDefaultWriter=O;Object.defineProperty(t,"__esModule",{value:!0})},a(r);var a},(t,r,a)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});r.BaseSVGFactory=r.BaseStandardFontDataFactory=r.BaseCMapReaderFactory=r.BaseCanvasFactory=void 0;var o=function _interopRequireDefault(t){return t&&t.__esModule?t:{default:t}}(a(2)),i=a(4);function asyncGeneratorStep(t,r,a,o,i,l,u){try{var c=t[l](u),d=c.value}catch(t){a(t);return}c.done?r(d):Promise.resolve(d).then(o,i)}function _asyncToGenerator(t){return function(){var r=this,a=arguments;return new Promise((function(o,i){var l=t.apply(r,a);function _next(t){asyncGeneratorStep(l,o,i,_next,_throw,"next",t)}function _throw(t){asyncGeneratorStep(l,o,i,_next,_throw,"throw",t)}_next(void 0)}))}}function _classCallCheck(t,r){if(!(t instanceof r))throw new TypeError("Cannot call a class as a function")}function _defineProperties(t,r){for(var a=0;a<r.length;a++){var o=r[a];o.enumerable=o.enumerable||!1;o.configurable=!0;"value"in o&&(o.writable=!0);Object.defineProperty(t,o.key,o)}}function _createClass(t,r,a){r&&_defineProperties(t.prototype,r);a&&_defineProperties(t,a);return t}var l=function(){function BaseCanvasFactory(){_classCallCheck(this,BaseCanvasFactory);this.constructor===BaseCanvasFactory&&(0,i.unreachable)("Cannot initialize BaseCanvasFactory.")}_createClass(BaseCanvasFactory,[{key:"create",value:function create(t,r){if(t<=0||r<=0)throw new Error("Invalid canvas size");var a=this._createCanvas(t,r);return{canvas:a,context:a.getContext("2d")}}},{key:"reset",value:function reset(t,r,a){if(!t.canvas)throw new Error("Canvas is not specified");if(r<=0||a<=0)throw new Error("Invalid canvas size");t.canvas.width=r;t.canvas.height=a}},{key:"destroy",value:function destroy(t){if(!t.canvas)throw new Error("Canvas is not specified");t.canvas.width=0;t.canvas.height=0;t.canvas=null;t.context=null}},{key:"_createCanvas",value:function _createCanvas(t,r){(0,i.unreachable)("Abstract method `_createCanvas` called.")}}]);return BaseCanvasFactory}();r.BaseCanvasFactory=l;var u=function(){function BaseCMapReaderFactory(t){var r=t.baseUrl,a=void 0===r?null:r,o=t.isCompressed,l=void 0!==o&&o;_classCallCheck(this,BaseCMapReaderFactory);this.constructor===BaseCMapReaderFactory&&(0,i.unreachable)("Cannot initialize BaseCMapReaderFactory.");this.baseUrl=a;this.isCompressed=l}_createClass(BaseCMapReaderFactory,[{key:"fetch",value:(t=_asyncToGenerator(o.default.mark((function _callee(t){var r,a,l,u=this;return o.default.wrap((function _callee$(o){for(;;)switch(o.prev=o.next){case 0:r=t.name;if(this.baseUrl){o.next=3;break}throw new Error('The CMap "baseUrl" parameter must be specified, ensure that the "cMapUrl" and "cMapPacked" API parameters are provided.');case 3:if(r){o.next=5;break}throw new Error("CMap name must be specified.");case 5:a=this.baseUrl+r+(this.isCompressed?".bcmap":"");l=this.isCompressed?i.CMapCompressionType.BINARY:i.CMapCompressionType.NONE;return o.abrupt("return",this._fetchData(a,l).catch((function(t){throw new Error("Unable to load ".concat(u.isCompressed?"binary ":"","CMap at: ").concat(a))})));case 8:case"end":return o.stop()}}),_callee,this)}))),function fetch(r){return t.apply(this,arguments)})},{key:"_fetchData",value:function _fetchData(t,r){(0,i.unreachable)("Abstract method `_fetchData` called.")}}]);var t;return BaseCMapReaderFactory}();r.BaseCMapReaderFactory=u;var c=function(){function BaseStandardFontDataFactory(t){var r=t.baseUrl,a=void 0===r?null:r;_classCallCheck(this,BaseStandardFontDataFactory);this.constructor===BaseStandardFontDataFactory&&(0,i.unreachable)("Cannot initialize BaseStandardFontDataFactory.");this.baseUrl=a}_createClass(BaseStandardFontDataFactory,[{key:"fetch",value:(t=_asyncToGenerator(o.default.mark((function _callee2(t){var r,a;return o.default.wrap((function _callee2$(o){for(;;)switch(o.prev=o.next){case 0:r=t.filename;if(this.baseUrl){o.next=3;break}throw new Error('The standard font "baseUrl" parameter must be specified, ensure that the "standardFontDataUrl" API parameter is provided.');case 3:if(r){o.next=5;break}throw new Error("Font filename must be specified.");case 5:a="".concat(this.baseUrl).concat(r);return o.abrupt("return",this._fetchData(a).catch((function(t){throw new Error("Unable to load font data at: ".concat(a))})));case 7:case"end":return o.stop()}}),_callee2,this)}))),function fetch(r){return t.apply(this,arguments)})},{key:"_fetchData",value:function _fetchData(t){(0,i.unreachable)("Abstract method `_fetchData` called.")}}]);var t;return BaseStandardFontDataFactory}();r.BaseStandardFontDataFactory=c;var d=function(){function BaseSVGFactory(){_classCallCheck(this,BaseSVGFactory);this.constructor===BaseSVGFactory&&(0,i.unreachable)("Cannot initialize BaseSVGFactory.")}_createClass(BaseSVGFactory,[{key:"create",value:function create(t,r){if(t<=0||r<=0)throw new Error("Invalid SVG dimensions");var a=this._createSVG("svg:svg");a.setAttribute("version","1.1");a.setAttribute("width","".concat(t,"px"));a.setAttribute("height","".concat(r,"px"));a.setAttribute("preserveAspectRatio","none");a.setAttribute("viewBox","0 0 ".concat(t," ").concat(r));return a}},{key:"createElement",value:function createElement(t){if("string"!=typeof t)throw new Error("Invalid SVG element type");return this._createSVG(t)}},{key:"_createSVG",value:function _createSVG(t){(0,i.unreachable)("Abstract method `_createSVG` called.")}}]);return BaseSVGFactory}();r.BaseSVGFactory=d},(__unused_webpack_module,exports,__w_pdfjs_require__)=>{"use strict";Object.defineProperty(exports,"__esModule",{value:!0});exports.getDocument=getDocument;exports.setPDFNetworkStreamFactory=setPDFNetworkStreamFactory;exports.version=exports.RenderTask=exports.PDFWorker=exports.PDFPageProxy=exports.PDFDocumentProxy=exports.PDFDocumentLoadingTask=exports.PDFDataRangeTransport=exports.LoopbackPort=exports.DefaultStandardFontDataFactory=exports.DefaultCMapReaderFactory=exports.DefaultCanvasFactory=exports.build=void 0;var _regenerator=_interopRequireDefault(__w_pdfjs_require__(2)),_util=__w_pdfjs_require__(4),_display_utils=__w_pdfjs_require__(1),_font_loader=__w_pdfjs_require__(120),_node_utils=__w_pdfjs_require__(121),_annotation_storage=__w_pdfjs_require__(122),_canvas=__w_pdfjs_require__(123),_worker_options=__w_pdfjs_require__(125),_is_node=__w_pdfjs_require__(6),_message_handler=__w_pdfjs_require__(126),_metadata=__w_pdfjs_require__(127),_optional_content_config=__w_pdfjs_require__(128),_transport_stream=__w_pdfjs_require__(129),_xfa_text=__w_pdfjs_require__(130);function _interopRequireDefault(t){return t&&t.__esModule?t:{default:t}}function _toConsumableArray(t){return _arrayWithoutHoles(t)||_iterableToArray(t)||_unsupportedIterableToArray(t)||_nonIterableSpread()}function _nonIterableSpread(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}function _iterableToArray(t){if("undefined"!=typeof Symbol&&null!=t[Symbol.iterator]||null!=t["@@iterator"])return Array.from(t)}function _arrayWithoutHoles(t){if(Array.isArray(t))return _arrayLikeToArray(t)}function _createForOfIteratorHelper(t,r){var a="undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(!a){if(Array.isArray(t)||(a=_unsupportedIterableToArray(t))||r&&t&&"number"==typeof t.length){a&&(t=a);var o=0,i=function F(){};return{s:i,n:function n(){return o>=t.length?{done:!0}:{done:!1,value:t[o++]}},e:function e(t){throw t},f:i}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var l,u=!0,c=!1;return{s:function s(){a=a.call(t)},n:function n(){var t=a.next();u=t.done;return t},e:function e(t){c=!0;l=t},f:function f(){try{u||null==a.return||a.return()}finally{if(c)throw l}}}}function _classCallCheck(t,r){if(!(t instanceof r))throw new TypeError("Cannot call a class as a function")}function _defineProperties(t,r){for(var a=0;a<r.length;a++){var o=r[a];o.enumerable=o.enumerable||!1;o.configurable=!0;"value"in o&&(o.writable=!0);Object.defineProperty(t,o.key,o)}}function _createClass(t,r,a){r&&_defineProperties(t.prototype,r);a&&_defineProperties(t,a);return t}function asyncGeneratorStep(t,r,a,o,i,l,u){try{var c=t[l](u),d=c.value}catch(t){a(t);return}c.done?r(d):Promise.resolve(d).then(o,i)}function _asyncToGenerator(t){return function(){var r=this,a=arguments;return new Promise((function(o,i){var l=t.apply(r,a);function _next(t){asyncGeneratorStep(l,o,i,_next,_throw,"next",t)}function _throw(t){asyncGeneratorStep(l,o,i,_next,_throw,"throw",t)}_next(void 0)}))}}function _slicedToArray(t,r){return _arrayWithHoles(t)||_iterableToArrayLimit(t,r)||_unsupportedIterableToArray(t,r)||_nonIterableRest()}function _nonIterableRest(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}function _unsupportedIterableToArray(t,r){if(t){if("string"==typeof t)return _arrayLikeToArray(t,r);var a=Object.prototype.toString.call(t).slice(8,-1);"Object"===a&&t.constructor&&(a=t.constructor.name);return"Map"===a||"Set"===a?Array.from(t):"Arguments"===a||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(a)?_arrayLikeToArray(t,r):void 0}}function _arrayLikeToArray(t,r){(null==r||r>t.length)&&(r=t.length);for(var a=0,o=new Array(r);a<r;a++)o[a]=t[a];return o}function _iterableToArrayLimit(t,r){var a=null==t?null:"undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(null!=a){var o,i,l=[],u=!0,c=!1;try{for(a=a.call(t);!(u=(o=a.next()).done);u=!0){l.push(o.value);if(r&&l.length===r)break}}catch(t){c=!0;i=t}finally{try{u||null==a.return||a.return()}finally{if(c)throw i}}return l}}function _arrayWithHoles(t){if(Array.isArray(t))return t}function _typeof(t){_typeof="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function _typeof(t){return typeof t}:function _typeof(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t};return _typeof(t)}var DEFAULT_RANGE_CHUNK_SIZE=65536,RENDERING_CANCELLED_TIMEOUT=100,DefaultCanvasFactory=_is_node.isNodeJS?_node_utils.NodeCanvasFactory:_display_utils.DOMCanvasFactory;exports.DefaultCanvasFactory=DefaultCanvasFactory;var DefaultCMapReaderFactory=_is_node.isNodeJS?_node_utils.NodeCMapReaderFactory:_display_utils.DOMCMapReaderFactory;exports.DefaultCMapReaderFactory=DefaultCMapReaderFactory;var DefaultStandardFontDataFactory=_is_node.isNodeJS?_node_utils.NodeStandardFontDataFactory:_display_utils.DOMStandardFontDataFactory,createPDFNetworkStream;exports.DefaultStandardFontDataFactory=DefaultStandardFontDataFactory;function setPDFNetworkStreamFactory(t){createPDFNetworkStream=t}function getDocument(t){var r,a=new PDFDocumentLoadingTask;if("string"==typeof t||t instanceof URL)r={url:t};else if((0,_util.isArrayBuffer)(t))r={data:t};else if(t instanceof PDFDataRangeTransport)r={range:t};else{if("object"!==_typeof(t))throw new Error("Invalid parameter in getDocument, need either string, URL, Uint8Array, or parameter object.");if(!t.url&&!t.data&&!t.range)throw new Error("Invalid parameter object: need either .data, .range or .url");r=t}var o=Object.create(null),i=null,l=null;for(var u in r){var c=r[u];switch(u){case"url":if("undefined"!=typeof window)try{o[u]=new URL(c,window.location).href;continue}catch(t){(0,_util.warn)('Cannot create valid URL: "'.concat(t,'".'))}else if("string"==typeof c||c instanceof URL){o[u]=c.toString();continue}throw new Error("Invalid PDF url data: either string or URL-object is expected in the url property.");case"range":i=c;continue;case"worker":l=c;continue;case"data":if(_is_node.isNodeJS&&"undefined"!=typeof Buffer&&c instanceof Buffer)o[u]=new Uint8Array(c);else{if(c instanceof Uint8Array)break;if("string"==typeof c)o[u]=(0,_util.stringToBytes)(c);else if("object"!==_typeof(c)||null===c||isNaN(c.length)){if(!(0,_util.isArrayBuffer)(c))throw new Error("Invalid PDF binary data: either typed array, string, or array-like object is expected in the data property.");o[u]=new Uint8Array(c)}else o[u]=new Uint8Array(c)}continue}o[u]=c}o.rangeChunkSize=o.rangeChunkSize||DEFAULT_RANGE_CHUNK_SIZE;o.CMapReaderFactory=o.CMapReaderFactory||DefaultCMapReaderFactory;o.StandardFontDataFactory=o.StandardFontDataFactory||DefaultStandardFontDataFactory;o.ignoreErrors=!0!==o.stopAtErrors;o.fontExtraProperties=!0===o.fontExtraProperties;o.pdfBug=!0===o.pdfBug;o.enableXfa=!0===o.enableXfa;("string"!=typeof o.docBaseUrl||(0,_display_utils.isDataScheme)(o.docBaseUrl))&&(o.docBaseUrl=null);Number.isInteger(o.maxImageSize)||(o.maxImageSize=-1);"boolean"!=typeof o.useWorkerFetch&&(o.useWorkerFetch=o.CMapReaderFactory===_display_utils.DOMCMapReaderFactory&&o.StandardFontDataFactory===_display_utils.DOMStandardFontDataFactory);"boolean"!=typeof o.isEvalSupported&&(o.isEvalSupported=!0);"boolean"!=typeof o.disableFontFace&&(o.disableFontFace=_is_node.isNodeJS);"boolean"!=typeof o.useSystemFonts&&(o.useSystemFonts=!_is_node.isNodeJS&&!o.disableFontFace);void 0===o.ownerDocument&&(o.ownerDocument=globalThis.document);"boolean"!=typeof o.disableRange&&(o.disableRange=!1);"boolean"!=typeof o.disableStream&&(o.disableStream=!1);"boolean"!=typeof o.disableAutoFetch&&(o.disableAutoFetch=!1);(0,_util.setVerbosityLevel)(o.verbosity);if(!l){var d={verbosity:o.verbosity,port:_worker_options.GlobalWorkerOptions.workerPort};l=d.port?PDFWorker.fromPort(d):new PDFWorker(d);a._worker=l}var h=a.docId;l.promise.then((function(){if(a.destroyed)throw new Error("Loading aborted");var t=_fetchDocument(l,o,i,h),r=new Promise((function(t){var r;i?r=new _transport_stream.PDFDataTransportStream({length:o.length,initialData:o.initialData,progressiveDone:o.progressiveDone,contentDispositionFilename:o.contentDispositionFilename,disableRange:o.disableRange,disableStream:o.disableStream},i):o.data||(r=createPDFNetworkStream({url:o.url,length:o.length,httpHeaders:o.httpHeaders,withCredentials:o.withCredentials,rangeChunkSize:o.rangeChunkSize,disableRange:o.disableRange,disableStream:o.disableStream}));t(r)}));return Promise.all([t,r]).then((function(t){var r=_slicedToArray(t,2),i=r[0],u=r[1];if(a.destroyed)throw new Error("Loading aborted");var c=new _message_handler.MessageHandler(h,i,l.port);c.postMessageTransfers=l.postMessageTransfers;var d=new WorkerTransport(c,a,u,o);a._transport=d;c.send("Ready",null)}))})).catch(a._capability.reject);return a}function _fetchDocument(t,r,a,o){return _fetchDocument2.apply(this,arguments)}function _fetchDocument2(){return(_fetchDocument2=_asyncToGenerator(_regenerator.default.mark((function _callee6(t,r,a,o){var i;return _regenerator.default.wrap((function _callee6$(l){for(;;)switch(l.prev=l.next){case 0:if(!t.destroyed){l.next=2;break}throw new Error("Worker was destroyed");case 2:if(a){r.length=a.length;r.initialData=a.initialData;r.progressiveDone=a.progressiveDone;r.contentDispositionFilename=a.contentDispositionFilename}l.next=5;return t.messageHandler.sendWithPromise("GetDocRequest",{docId:o,apiVersion:"2.11.338",source:{data:r.data,url:r.url,password:r.password,disableAutoFetch:r.disableAutoFetch,rangeChunkSize:r.rangeChunkSize,length:r.length},maxImageSize:r.maxImageSize,disableFontFace:r.disableFontFace,postMessageTransfers:t.postMessageTransfers,docBaseUrl:r.docBaseUrl,ignoreErrors:r.ignoreErrors,isEvalSupported:r.isEvalSupported,fontExtraProperties:r.fontExtraProperties,enableXfa:r.enableXfa,useSystemFonts:r.useSystemFonts,cMapUrl:r.useWorkerFetch?r.cMapUrl:null,standardFontDataUrl:r.useWorkerFetch?r.standardFontDataUrl:null});case 5:i=l.sent;if(!t.destroyed){l.next=8;break}throw new Error("Worker was destroyed");case 8:return l.abrupt("return",i);case 9:case"end":return l.stop()}}),_callee6)})))).apply(this,arguments)}var PDFDocumentLoadingTask=function(){function PDFDocumentLoadingTask(){_classCallCheck(this,PDFDocumentLoadingTask);this._capability=(0,_util.createPromiseCapability)();this._transport=null;this._worker=null;this.docId="d".concat(PDFDocumentLoadingTask.idCounters.doc++);this.destroyed=!1;this.onPassword=null;this.onProgress=null;this.onUnsupportedFeature=null}_createClass(PDFDocumentLoadingTask,[{key:"promise",get:function get(){return this._capability.promise}},{key:"destroy",value:(t=_asyncToGenerator(_regenerator.default.mark((function _callee(){var t;return _regenerator.default.wrap((function _callee$(r){for(;;)switch(r.prev=r.next){case 0:this.destroyed=!0;r.next=3;return null===(t=this._transport)||void 0===t?void 0:t.destroy();case 3:this._transport=null;if(this._worker){this._worker.destroy();this._worker=null}case 5:case"end":return r.stop()}}),_callee,this)}))),function destroy(){return t.apply(this,arguments)})}],[{key:"idCounters",get:function get(){return(0,_util.shadow)(this,"idCounters",{doc:0})}}]);var t;return PDFDocumentLoadingTask}();exports.PDFDocumentLoadingTask=PDFDocumentLoadingTask;var PDFDataRangeTransport=function(){function PDFDataRangeTransport(t,r){var a=arguments.length>2&&void 0!==arguments[2]&&arguments[2],o=arguments.length>3&&void 0!==arguments[3]?arguments[3]:null;_classCallCheck(this,PDFDataRangeTransport);this.length=t;this.initialData=r;this.progressiveDone=a;this.contentDispositionFilename=o;this._rangeListeners=[];this._progressListeners=[];this._progressiveReadListeners=[];this._progressiveDoneListeners=[];this._readyCapability=(0,_util.createPromiseCapability)()}_createClass(PDFDataRangeTransport,[{key:"addRangeListener",value:function addRangeListener(t){this._rangeListeners.push(t)}},{key:"addProgressListener",value:function addProgressListener(t){this._progressListeners.push(t)}},{key:"addProgressiveReadListener",value:function addProgressiveReadListener(t){this._progressiveReadListeners.push(t)}},{key:"addProgressiveDoneListener",value:function addProgressiveDoneListener(t){this._progressiveDoneListeners.push(t)}},{key:"onDataRange",value:function onDataRange(t,r){var a,o=_createForOfIteratorHelper(this._rangeListeners);try{for(o.s();!(a=o.n()).done;){(0,a.value)(t,r)}}catch(t){o.e(t)}finally{o.f()}}},{key:"onDataProgress",value:function onDataProgress(t,r){var a=this;this._readyCapability.promise.then((function(){var o,i=_createForOfIteratorHelper(a._progressListeners);try{for(i.s();!(o=i.n()).done;){(0,o.value)(t,r)}}catch(t){i.e(t)}finally{i.f()}}))}},{key:"onDataProgressiveRead",value:function onDataProgressiveRead(t){var r=this;this._readyCapability.promise.then((function(){var a,o=_createForOfIteratorHelper(r._progressiveReadListeners);try{for(o.s();!(a=o.n()).done;){(0,a.value)(t)}}catch(t){o.e(t)}finally{o.f()}}))}},{key:"onDataProgressiveDone",value:function onDataProgressiveDone(){var t=this;this._readyCapability.promise.then((function(){var r,a=_createForOfIteratorHelper(t._progressiveDoneListeners);try{for(a.s();!(r=a.n()).done;){(0,r.value)()}}catch(t){a.e(t)}finally{a.f()}}))}},{key:"transportReady",value:function transportReady(){this._readyCapability.resolve()}},{key:"requestDataRange",value:function requestDataRange(t,r){(0,_util.unreachable)("Abstract method PDFDataRangeTransport.requestDataRange")}},{key:"abort",value:function abort(){}}]);return PDFDataRangeTransport}();exports.PDFDataRangeTransport=PDFDataRangeTransport;var PDFDocumentProxy=function(){function PDFDocumentProxy(t,r){_classCallCheck(this,PDFDocumentProxy);this._pdfInfo=t;this._transport=r;Object.defineProperty(this,"fingerprint",{get:function get(){(0,_display_utils.deprecated)("`PDFDocumentProxy.fingerprint`, please use `PDFDocumentProxy.fingerprints` instead.");return this.fingerprints[0]}})}_createClass(PDFDocumentProxy,[{key:"annotationStorage",get:function get(){return this._transport.annotationStorage}},{key:"numPages",get:function get(){return this._pdfInfo.numPages}},{key:"fingerprints",get:function get(){return this._pdfInfo.fingerprints}},{key:"isPureXfa",get:function get(){return!!this._transport._htmlForXfa}},{key:"allXfaHtml",get:function get(){return this._transport._htmlForXfa}},{key:"getPage",value:function getPage(t){return this._transport.getPage(t)}},{key:"getPageIndex",value:function getPageIndex(t){return this._transport.getPageIndex(t)}},{key:"getDestinations",value:function getDestinations(){return this._transport.getDestinations()}},{key:"getDestination",value:function getDestination(t){return this._transport.getDestination(t)}},{key:"getPageLabels",value:function getPageLabels(){return this._transport.getPageLabels()}},{key:"getPageLayout",value:function getPageLayout(){return this._transport.getPageLayout()}},{key:"getPageMode",value:function getPageMode(){return this._transport.getPageMode()}},{key:"getViewerPreferences",value:function getViewerPreferences(){return this._transport.getViewerPreferences()}},{key:"getOpenAction",value:function getOpenAction(){return this._transport.getOpenAction()}},{key:"getAttachments",value:function getAttachments(){return this._transport.getAttachments()}},{key:"getJavaScript",value:function getJavaScript(){return this._transport.getJavaScript()}},{key:"getJSActions",value:function getJSActions(){return this._transport.getDocJSActions()}},{key:"getOutline",value:function getOutline(){return this._transport.getOutline()}},{key:"getOptionalContentConfig",value:function getOptionalContentConfig(){return this._transport.getOptionalContentConfig()}},{key:"getPermissions",value:function getPermissions(){return this._transport.getPermissions()}},{key:"getMetadata",value:function getMetadata(){return this._transport.getMetadata()}},{key:"getMarkInfo",value:function getMarkInfo(){return this._transport.getMarkInfo()}},{key:"getData",value:function getData(){return this._transport.getData()}},{key:"getDownloadInfo",value:function getDownloadInfo(){return this._transport.downloadInfoCapability.promise}},{key:"getStats",value:function getStats(){return this._transport.getStats()}},{key:"cleanup",value:function cleanup(){var t=arguments.length>0&&void 0!==arguments[0]&&arguments[0];return this._transport.startCleanup(t||this.isPureXfa)}},{key:"destroy",value:function destroy(){return this.loadingTask.destroy()}},{key:"loadingParams",get:function get(){return this._transport.loadingParams}},{key:"loadingTask",get:function get(){return this._transport.loadingTask}},{key:"saveDocument",value:function saveDocument(){this._transport.annotationStorage.size<=0&&(0,_display_utils.deprecated)("saveDocument called while `annotationStorage` is empty, please use the getData-method instead.");return this._transport.saveDocument()}},{key:"getFieldObjects",value:function getFieldObjects(){return this._transport.getFieldObjects()}},{key:"hasJSActions",value:function hasJSActions(){return this._transport.hasJSActions()}},{key:"getCalculationOrderIds",value:function getCalculationOrderIds(){return this._transport.getCalculationOrderIds()}}]);return PDFDocumentProxy}();exports.PDFDocumentProxy=PDFDocumentProxy;var PDFPageProxy=function(){function PDFPageProxy(t,r,a,o){var i=arguments.length>4&&void 0!==arguments[4]&&arguments[4];_classCallCheck(this,PDFPageProxy);this._pageIndex=t;this._pageInfo=r;this._ownerDocument=o;this._transport=a;this._stats=i?new _display_utils.StatTimer:null;this._pdfBug=i;this.commonObjs=a.commonObjs;this.objs=new PDFObjects;this.cleanupAfterRender=!1;this.pendingCleanup=!1;this._intentStates=new Map;this._annotationPromises=new Map;this.destroyed=!1}_createClass(PDFPageProxy,[{key:"pageNumber",get:function get(){return this._pageIndex+1}},{key:"rotate",get:function get(){return this._pageInfo.rotate}},{key:"ref",get:function get(){return this._pageInfo.ref}},{key:"userUnit",get:function get(){return this._pageInfo.userUnit}},{key:"view",get:function get(){return this._pageInfo.view}},{key:"getViewport",value:function getViewport(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},r=t.scale,a=t.rotation,o=void 0===a?this.rotate:a,i=t.offsetX,l=void 0===i?0:i,u=t.offsetY,c=void 0===u?0:u,d=t.dontFlip,h=void 0!==d&&d;return new _display_utils.PageViewport({viewBox:this.view,scale:r,rotation:o,offsetX:l,offsetY:c,dontFlip:h})}},{key:"getAnnotations",value:function getAnnotations(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},r=t.intent,a=void 0===r?"display":r,o=this._transport.getRenderingIntent(a),i=this._annotationPromises.get(o.cacheKey);if(!i){i=this._transport.getAnnotations(this._pageIndex,o.renderingIntent);this._annotationPromises.set(o.cacheKey,i);i=i.then((function(t){var r,a=_createForOfIteratorHelper(t);try{var o=function _loop(){var t=r.value;void 0!==t.titleObj&&Object.defineProperty(t,"title",{get:function get(){(0,_display_utils.deprecated)("`title`-property on annotation, please use `titleObj` instead.");return t.titleObj.str}});void 0!==t.contentsObj&&Object.defineProperty(t,"contents",{get:function get(){(0,_display_utils.deprecated)("`contents`-property on annotation, please use `contentsObj` instead.");return t.contentsObj.str}})};for(a.s();!(r=a.n()).done;)o()}catch(t){a.e(t)}finally{a.f()}return t}))}return i}},{key:"getJSActions",value:function getJSActions(){return this._jsActionsPromise||(this._jsActionsPromise=this._transport.getPageJSActions(this._pageIndex))}},{key:"getXfa",value:(t=_asyncToGenerator(_regenerator.default.mark((function _callee2(){var t;return _regenerator.default.wrap((function _callee2$(r){for(;;)switch(r.prev=r.next){case 0:return r.abrupt("return",(null===(t=this._transport._htmlForXfa)||void 0===t?void 0:t.children[this._pageIndex])||null);case 1:case"end":return r.stop()}}),_callee2,this)}))),function getXfa(){return t.apply(this,arguments)})},{key:"render",value:function render(t){var r,a,o,i=this,l=t.canvasContext,u=t.viewport,c=t.intent,d=void 0===c?"display":c,h=t.annotationMode,p=void 0===h?_util.AnnotationMode.ENABLE:h,m=t.transform,y=void 0===m?null:m,v=t.imageLayer,g=void 0===v?null:v,b=t.canvasFactory,_=void 0===b?null:b,S=t.background,A=void 0===S?null:S,C=t.optionalContentConfigPromise,k=void 0===C?null:C;if(void 0!==(null===(r=arguments[0])||void 0===r?void 0:r.renderInteractiveForms)){(0,_display_utils.deprecated)("render no longer accepts the `renderInteractiveForms`-option, please use the `annotationMode`-option instead.");!0===arguments[0].renderInteractiveForms&&p===_util.AnnotationMode.ENABLE&&(p=_util.AnnotationMode.ENABLE_FORMS)}if(void 0!==(null===(a=arguments[0])||void 0===a?void 0:a.includeAnnotationStorage)){(0,_display_utils.deprecated)("render no longer accepts the `includeAnnotationStorage`-option, please use the `annotationMode`-option instead.");!0===arguments[0].includeAnnotationStorage&&p===_util.AnnotationMode.ENABLE&&(p=_util.AnnotationMode.ENABLE_STORAGE)}this._stats&&this._stats.time("Overall");var R=this._transport.getRenderingIntent(d,p);this.pendingCleanup=!1;k||(k=this._transport.getOptionalContentConfig());var w=this._intentStates.get(R.cacheKey);if(!w){w=Object.create(null);this._intentStates.set(R.cacheKey,w)}if(w.streamReaderCancelTimeout){clearTimeout(w.streamReaderCancelTimeout);w.streamReaderCancelTimeout=null}var P=_||new DefaultCanvasFactory({ownerDocument:this._ownerDocument}),x=!!(R.renderingIntent&_util.RenderingIntentFlag.PRINT);if(!w.displayReadyCapability){w.displayReadyCapability=(0,_util.createPromiseCapability)();w.operatorList={fnArray:[],argsArray:[],lastChunk:!1};this._stats&&this._stats.time("Page Request");this._pumpOperatorList(R)}var T=function complete(t){w.renderTasks.delete(E);(i.cleanupAfterRender||x)&&(i.pendingCleanup=!0);i._tryCleanup();if(t){E.capability.reject(t);i._abortOperatorList({intentState:w,reason:t instanceof Error?t:new Error(t)})}else E.capability.resolve();if(i._stats){i._stats.timeEnd("Rendering");i._stats.timeEnd("Overall")}},E=new InternalRenderTask({callback:T,params:{canvasContext:l,viewport:u,transform:y,imageLayer:g,background:A},objs:this.objs,commonObjs:this.commonObjs,operatorList:w.operatorList,pageIndex:this._pageIndex,canvasFactory:P,useRequestAnimationFrame:!x,pdfBug:this._pdfBug});((o=w).renderTasks||(o.renderTasks=new Set)).add(E);var O=E.task;Promise.all([w.displayReadyCapability.promise,k]).then((function(t){var r=_slicedToArray(t,2),a=r[0],o=r[1];if(i.pendingCleanup)T();else{i._stats&&i._stats.time("Rendering");E.initializeGraphics({transparency:a,optionalContentConfig:o});E.operatorListChanged()}})).catch(T);return O}},{key:"getOperatorList",value:function getOperatorList(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},r=t.intent,a=void 0===r?"display":r,o=t.annotationMode,i=void 0===o?_util.AnnotationMode.ENABLE:o;function operatorListChanged(){if(c.operatorList.lastChunk){c.opListReadCapability.resolve(c.operatorList);c.renderTasks.delete(l)}}var l,u=this._transport.getRenderingIntent(a,i,!0),c=this._intentStates.get(u.cacheKey);if(!c){c=Object.create(null);this._intentStates.set(u.cacheKey,c)}if(!c.opListReadCapability){var d;(l=Object.create(null)).operatorListChanged=operatorListChanged;c.opListReadCapability=(0,_util.createPromiseCapability)();((d=c).renderTasks||(d.renderTasks=new Set)).add(l);c.operatorList={fnArray:[],argsArray:[],lastChunk:!1};this._stats&&this._stats.time("Page Request");this._pumpOperatorList(u)}return c.opListReadCapability.promise}},{key:"streamTextContent",value:function streamTextContent(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},r=t.normalizeWhitespace,a=void 0!==r&&r,o=t.disableCombineTextItems,i=void 0!==o&&o,l=t.includeMarkedContent,u=void 0!==l&&l,c=100;return this._transport.messageHandler.sendWithStream("GetTextContent",{pageIndex:this._pageIndex,normalizeWhitespace:!0===a,combineTextItems:!0!==i,includeMarkedContent:!0===u},{highWaterMark:c,size:function size(t){return t.items.length}})}},{key:"getTextContent",value:function getTextContent(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};if(this._transport._htmlForXfa)return this.getXfa().then((function(t){return _xfa_text.XfaText.textContent(t)}));var r=this.streamTextContent(t);return new Promise((function(t,a){var o=r.getReader(),i={items:[],styles:Object.create(null)};!function pump(){o.read().then((function(r){var a,o=r.value;if(r.done)t(i);else{Object.assign(i.styles,o.styles);(a=i.items).push.apply(a,_toConsumableArray(o.items));pump()}}),a)}()}))}},{key:"getStructTree",value:function getStructTree(){return this._structTreePromise||(this._structTreePromise=this._transport.getStructTree(this._pageIndex))}},{key:"_destroy",value:function _destroy(){this.destroyed=!0;this._transport.pageCache[this._pageIndex]=null;var t,r=[],a=_createForOfIteratorHelper(this._intentStates.values());try{for(a.s();!(t=a.n()).done;){var o=t.value;this._abortOperatorList({intentState:o,reason:new Error("Page was destroyed."),force:!0});if(!o.opListReadCapability){var i,l=_createForOfIteratorHelper(o.renderTasks);try{for(l.s();!(i=l.n()).done;){var u=i.value;r.push(u.completed);u.cancel()}}catch(t){l.e(t)}finally{l.f()}}}}catch(t){a.e(t)}finally{a.f()}this.objs.clear();this._annotationPromises.clear();this._jsActionsPromise=null;this._structTreePromise=null;this.pendingCleanup=!1;return Promise.all(r)}},{key:"cleanup",value:function cleanup(){var t=arguments.length>0&&void 0!==arguments[0]&&arguments[0];this.pendingCleanup=!0;return this._tryCleanup(t)}},{key:"_tryCleanup",value:function _tryCleanup(){var t=arguments.length>0&&void 0!==arguments[0]&&arguments[0];if(!this.pendingCleanup)return!1;var r,a=_createForOfIteratorHelper(this._intentStates.values());try{for(a.s();!(r=a.n()).done;){var o=r.value,i=o.renderTasks,l=o.operatorList;if(i.size>0||!l.lastChunk)return!1}}catch(t){a.e(t)}finally{a.f()}this._intentStates.clear();this.objs.clear();this._annotationPromises.clear();this._jsActionsPromise=null;this._structTreePromise=null;t&&this._stats&&(this._stats=new _display_utils.StatTimer);this.pendingCleanup=!1;return!0}},{key:"_startRenderPage",value:function _startRenderPage(t,r){var a=this._intentStates.get(r);if(a){this._stats&&this._stats.timeEnd("Page Request");a.displayReadyCapability&&a.displayReadyCapability.resolve(t)}}},{key:"_renderPageChunk",value:function _renderPageChunk(t,r){for(var a=0,o=t.length;a<o;a++){r.operatorList.fnArray.push(t.fnArray[a]);r.operatorList.argsArray.push(t.argsArray[a])}r.operatorList.lastChunk=t.lastChunk;var i,l=_createForOfIteratorHelper(r.renderTasks);try{for(l.s();!(i=l.n()).done;){i.value.operatorListChanged()}}catch(t){l.e(t)}finally{l.f()}t.lastChunk&&this._tryCleanup()}},{key:"_pumpOperatorList",value:function _pumpOperatorList(t){var r=this,a=t.renderingIntent,o=t.cacheKey,i=this._transport.messageHandler.sendWithStream("GetOperatorList",{pageIndex:this._pageIndex,intent:a,cacheKey:o,annotationStorage:a&_util.RenderingIntentFlag.ANNOTATIONS_STORAGE?this._transport.annotationStorage.serializable:null}).getReader(),l=this._intentStates.get(o);l.streamReader=i;!function pump(){i.read().then((function(t){var a=t.value;if(t.done)l.streamReader=null;else if(!r._transport.destroyed){r._renderPageChunk(a,l);pump()}}),(function(t){l.streamReader=null;if(!r._transport.destroyed){if(l.operatorList){l.operatorList.lastChunk=!0;var a,o=_createForOfIteratorHelper(l.renderTasks);try{for(o.s();!(a=o.n()).done;){a.value.operatorListChanged()}}catch(t){o.e(t)}finally{o.f()}r._tryCleanup()}if(l.displayReadyCapability)l.displayReadyCapability.reject(t);else{if(!l.opListReadCapability)throw t;l.opListReadCapability.reject(t)}}}))}()}},{key:"_abortOperatorList",value:function _abortOperatorList(t){var r=this,a=t.intentState,o=t.reason,i=t.force,l=void 0!==i&&i;if(a.streamReader){if(!l){if(a.renderTasks.size>0)return;if(o instanceof _display_utils.RenderingCancelledException){a.streamReaderCancelTimeout=setTimeout((function(){r._abortOperatorList({intentState:a,reason:o,force:!0});a.streamReaderCancelTimeout=null}),RENDERING_CANCELLED_TIMEOUT);return}}a.streamReader.cancel(new _util.AbortException(o.message)).catch((function(){}));a.streamReader=null;if(!this._transport.destroyed){var u,c=_createForOfIteratorHelper(this._intentStates);try{for(c.s();!(u=c.n()).done;){var d=_slicedToArray(u.value,2),h=d[0];if(d[1]===a){this._intentStates.delete(h);break}}}catch(t){c.e(t)}finally{c.f()}this.cleanup()}}}},{key:"stats",get:function get(){return this._stats}}]);var t;return PDFPageProxy}();exports.PDFPageProxy=PDFPageProxy;var LoopbackPort=function(){function LoopbackPort(){_classCallCheck(this,LoopbackPort);this._listeners=[];this._deferred=Promise.resolve(void 0)}_createClass(LoopbackPort,[{key:"postMessage",value:function postMessage(t,r){var a=this;var o=new WeakMap,i={data:function cloneValue(t){if("function"==typeof t||"symbol"===_typeof(t)||t instanceof URL)throw new Error("LoopbackPort.postMessage - cannot clone: ".concat(null==t?void 0:t.toString()));if("object"!==_typeof(t)||null===t)return t;if(o.has(t))return o.get(t);var a,i;if((a=t.buffer)&&(0,_util.isArrayBuffer)(a)){i=null!=r&&r.includes(a)?new t.constructor(a,t.byteOffset,t.byteLength):new t.constructor(t);o.set(t,i);return i}if(t instanceof Map){i=new Map;o.set(t,i);var l,u=_createForOfIteratorHelper(t);try{for(u.s();!(l=u.n()).done;){var c=_slicedToArray(l.value,2),d=c[0],h=c[1];i.set(d,cloneValue(h))}}catch(t){u.e(t)}finally{u.f()}return i}if(t instanceof Set){i=new Set;o.set(t,i);var p,m=_createForOfIteratorHelper(t);try{for(m.s();!(p=m.n()).done;){var y=p.value;i.add(cloneValue(y))}}catch(t){m.e(t)}finally{m.f()}return i}i=Array.isArray(t)?[]:Object.create(null);o.set(t,i);for(var v in t){for(var g,b=void 0,_=t;!(b=Object.getOwnPropertyDescriptor(_,v));)_=Object.getPrototypeOf(_);void 0!==b.value&&(("function"!=typeof b.value||null!==(g=t.hasOwnProperty)&&void 0!==g&&g.call(t,v))&&(i[v]=cloneValue(b.value)))}return i}(t)};this._deferred.then((function(){var t,r=_createForOfIteratorHelper(a._listeners);try{for(r.s();!(t=r.n()).done;){t.value.call(a,i)}}catch(t){r.e(t)}finally{r.f()}}))}},{key:"addEventListener",value:function addEventListener(t,r){this._listeners.push(r)}},{key:"removeEventListener",value:function removeEventListener(t,r){var a=this._listeners.indexOf(r);this._listeners.splice(a,1)}},{key:"terminate",value:function terminate(){this._listeners.length=0}}]);return LoopbackPort}();exports.LoopbackPort=LoopbackPort;var PDFWorkerUtil={isWorkerDisabled:!1,fallbackWorkerSrc:null,fakeWorkerId:0};if(_is_node.isNodeJS&&"function"==typeof require){PDFWorkerUtil.isWorkerDisabled=!0;PDFWorkerUtil.fallbackWorkerSrc="./pdf.worker.js"}else if("object"===("undefined"==typeof document?"undefined":_typeof(document))){var _document,_document$currentScri,pdfjsFilePath=null===(_document=document)||void 0===_document||null===(_document$currentScri=_document.currentScript)||void 0===_document$currentScri?void 0:_document$currentScri.src;pdfjsFilePath&&(PDFWorkerUtil.fallbackWorkerSrc=pdfjsFilePath.replace(/(\.(?:min\.)?js)(\?.*)?$/i,".worker$1$2"))}PDFWorkerUtil.createCDNWrapper=function(t){var r='importScripts("'.concat(t,'");');return URL.createObjectURL(new Blob([r]))};var PDFWorker=function(){function PDFWorker(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},r=t.name,a=void 0===r?null:r,o=t.port,i=void 0===o?null:o,l=t.verbosity,u=void 0===l?(0,_util.getVerbosityLevel)():l;_classCallCheck(this,PDFWorker);if(i&&PDFWorker._workerPorts.has(i))throw new Error("Cannot use more than one PDFWorker per port.");this.name=a;this.destroyed=!1;this.postMessageTransfers=!0;this.verbosity=u;this._readyCapability=(0,_util.createPromiseCapability)();this._port=null;this._webWorker=null;this._messageHandler=null;if(i){PDFWorker._workerPorts.set(i,this);this._initializeFromPort(i)}else this._initialize()}_createClass(PDFWorker,[{key:"promise",get:function get(){return this._readyCapability.promise}},{key:"port",get:function get(){return this._port}},{key:"messageHandler",get:function get(){return this._messageHandler}},{key:"_initializeFromPort",value:function _initializeFromPort(t){this._port=t;this._messageHandler=new _message_handler.MessageHandler("main","worker",t);this._messageHandler.on("ready",(function(){}));this._readyCapability.resolve()}},{key:"_initialize",value:function _initialize(){var t=this;if("undefined"!=typeof Worker&&!PDFWorkerUtil.isWorkerDisabled&&!PDFWorker._mainThreadWorkerMessageHandler){var r=PDFWorker.workerSrc;try{(0,_util.isSameOrigin)(window.location.href,r)||(r=PDFWorkerUtil.createCDNWrapper(new URL(r,window.location).href));var a=new Worker(r),o=new _message_handler.MessageHandler("main","worker",a),i=function terminateEarly(){a.removeEventListener("error",l);o.destroy();a.terminate();t.destroyed?t._readyCapability.reject(new Error("Worker was destroyed")):t._setupFakeWorker()},l=function onWorkerError(){t._webWorker||i()};a.addEventListener("error",l);o.on("test",(function(r){a.removeEventListener("error",l);if(t.destroyed)i();else if(r){t._messageHandler=o;t._port=a;t._webWorker=a;r.supportTransfers||(t.postMessageTransfers=!1);t._readyCapability.resolve();o.send("configure",{verbosity:t.verbosity})}else{t._setupFakeWorker();o.destroy();a.terminate()}}));o.on("ready",(function(r){a.removeEventListener("error",l);if(t.destroyed)i();else try{u()}catch(r){t._setupFakeWorker()}}));var u=function sendTest(){var r=new Uint8Array([t.postMessageTransfers?255:0]);try{o.send("test",r,[r.buffer])}catch(t){(0,_util.warn)("Cannot use postMessage transfers.");r[0]=0;o.send("test",r)}};u();return}catch(t){(0,_util.info)("The worker has been disabled.")}}this._setupFakeWorker()}},{key:"_setupFakeWorker",value:function _setupFakeWorker(){var t=this;if(!PDFWorkerUtil.isWorkerDisabled){(0,_util.warn)("Setting up fake worker.");PDFWorkerUtil.isWorkerDisabled=!0}PDFWorker._setupFakeWorkerGlobal.then((function(r){if(t.destroyed)t._readyCapability.reject(new Error("Worker was destroyed"));else{var a=new LoopbackPort;t._port=a;var o="fake".concat(PDFWorkerUtil.fakeWorkerId++),i=new _message_handler.MessageHandler(o+"_worker",o,a);r.setup(i,a);var l=new _message_handler.MessageHandler(o,o+"_worker",a);t._messageHandler=l;t._readyCapability.resolve();l.send("configure",{verbosity:t.verbosity})}})).catch((function(r){t._readyCapability.reject(new Error('Setting up fake worker failed: "'.concat(r.message,'".')))}))}},{key:"destroy",value:function destroy(){this.destroyed=!0;if(this._webWorker){this._webWorker.terminate();this._webWorker=null}PDFWorker._workerPorts.delete(this._port);this._port=null;if(this._messageHandler){this._messageHandler.destroy();this._messageHandler=null}}}],[{key:"_workerPorts",get:function get(){return(0,_util.shadow)(this,"_workerPorts",new WeakMap)}},{key:"fromPort",value:function fromPort(t){if(null==t||!t.port)throw new Error("PDFWorker.fromPort - invalid method signature.");return this._workerPorts.has(t.port)?this._workerPorts.get(t.port):new PDFWorker(t)}},{key:"workerSrc",get:function get(){if(_worker_options.GlobalWorkerOptions.workerSrc)return _worker_options.GlobalWorkerOptions.workerSrc;if(null!==PDFWorkerUtil.fallbackWorkerSrc){_is_node.isNodeJS||(0,_display_utils.deprecated)('No "GlobalWorkerOptions.workerSrc" specified.');return PDFWorkerUtil.fallbackWorkerSrc}throw new Error('No "GlobalWorkerOptions.workerSrc" specified.')}},{key:"_mainThreadWorkerMessageHandler",get:function get(){try{var t;return(null===(t=globalThis.pdfjsWorker)||void 0===t?void 0:t.WorkerMessageHandler)||null}catch(t){return null}}},{key:"_setupFakeWorkerGlobal",get:function get(){var _this10=this,loader=function(){var _ref15=_asyncToGenerator(_regenerator.default.mark((function _callee3(){var mainWorkerMessageHandler,worker;return _regenerator.default.wrap((function _callee3$(_context3){for(;;)switch(_context3.prev=_context3.next){case 0:mainWorkerMessageHandler=_this10._mainThreadWorkerMessageHandler;if(!mainWorkerMessageHandler){_context3.next=3;break}return _context3.abrupt("return",mainWorkerMessageHandler);case 3:if(!_is_node.isNodeJS||"function"!=typeof require){_context3.next=6;break}worker=eval("require")(_this10.workerSrc);return _context3.abrupt("return",worker.WorkerMessageHandler);case 6:_context3.next=8;return(0,_display_utils.loadScript)(_this10.workerSrc);case 8:return _context3.abrupt("return",window.pdfjsWorker.WorkerMessageHandler);case 9:case"end":return _context3.stop()}}),_callee3)})));return function loader(){return _ref15.apply(this,arguments)}}();return(0,_util.shadow)(this,"_setupFakeWorkerGlobal",loader())}}]);return PDFWorker}();exports.PDFWorker=PDFWorker;PDFWorker.getWorkerSrc=function(){(0,_display_utils.deprecated)("`PDFWorker.getWorkerSrc()`, please use `PDFWorker.workerSrc` instead.");return this.workerSrc};var WorkerTransport=function(){function WorkerTransport(t,r,a,o){_classCallCheck(this,WorkerTransport);this.messageHandler=t;this.loadingTask=r;this.commonObjs=new PDFObjects;this.fontLoader=new _font_loader.FontLoader({docId:r.docId,onUnsupportedFeature:this._onUnsupportedFeature.bind(this),ownerDocument:o.ownerDocument,styleElement:o.styleElement});this._params=o;if(!o.useWorkerFetch){this.CMapReaderFactory=new o.CMapReaderFactory({baseUrl:o.cMapUrl,isCompressed:o.cMapPacked});this.StandardFontDataFactory=new o.StandardFontDataFactory({baseUrl:o.standardFontDataUrl})}this.destroyed=!1;this.destroyCapability=null;this._passwordCapability=null;this._networkStream=a;this._fullReader=null;this._lastProgress=null;this.pageCache=[];this.pagePromises=[];this.downloadInfoCapability=(0,_util.createPromiseCapability)();this.setupMessageHandler()}_createClass(WorkerTransport,[{key:"annotationStorage",get:function get(){return(0,_util.shadow)(this,"annotationStorage",new _annotation_storage.AnnotationStorage)}},{key:"getRenderingIntent",value:function getRenderingIntent(t){var r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:_util.AnnotationMode.ENABLE,a=arguments.length>2&&void 0!==arguments[2]&&arguments[2],o=_util.RenderingIntentFlag.DISPLAY,i="";switch(t){case"any":o=_util.RenderingIntentFlag.ANY;break;case"display":break;case"print":o=_util.RenderingIntentFlag.PRINT;break;default:(0,_util.warn)("getRenderingIntent - invalid intent: ".concat(t))}switch(r){case _util.AnnotationMode.DISABLE:o+=_util.RenderingIntentFlag.ANNOTATIONS_DISABLE;break;case _util.AnnotationMode.ENABLE:break;case _util.AnnotationMode.ENABLE_FORMS:o+=_util.RenderingIntentFlag.ANNOTATIONS_FORMS;break;case _util.AnnotationMode.ENABLE_STORAGE:o+=_util.RenderingIntentFlag.ANNOTATIONS_STORAGE;i=this.annotationStorage.lastModified;break;default:(0,_util.warn)("getRenderingIntent - invalid annotationMode: ".concat(r))}a&&(o+=_util.RenderingIntentFlag.OPLIST);return{renderingIntent:o,cacheKey:"".concat(o,"_").concat(i)}}},{key:"destroy",value:function destroy(){var t=this;if(this.destroyCapability)return this.destroyCapability.promise;this.destroyed=!0;this.destroyCapability=(0,_util.createPromiseCapability)();this._passwordCapability&&this._passwordCapability.reject(new Error("Worker was destroyed during onPassword callback"));var r,a=[],o=_createForOfIteratorHelper(this.pageCache);try{for(o.s();!(r=o.n()).done;){var i=r.value;i&&a.push(i._destroy())}}catch(t){o.e(t)}finally{o.f()}this.pageCache.length=0;this.pagePromises.length=0;this.hasOwnProperty("annotationStorage")&&this.annotationStorage.resetModified();var l=this.messageHandler.sendWithPromise("Terminate",null);a.push(l);Promise.all(a).then((function(){t.commonObjs.clear();t.fontLoader.clear();t._getFieldObjectsPromise=null;t._hasJSActionsPromise=null;t._networkStream&&t._networkStream.cancelAllRequests(new _util.AbortException("Worker was terminated."));if(t.messageHandler){t.messageHandler.destroy();t.messageHandler=null}t.destroyCapability.resolve()}),this.destroyCapability.reject);return this.destroyCapability.promise}},{key:"setupMessageHandler",value:function setupMessageHandler(){var t=this,r=this.messageHandler,a=this.loadingTask;r.on("GetReader",(function(r,a){(0,_util.assert)(t._networkStream,"GetReader - no `IPDFStream` instance available.");t._fullReader=t._networkStream.getFullReader();t._fullReader.onProgress=function(r){t._lastProgress={loaded:r.loaded,total:r.total}};a.onPull=function(){t._fullReader.read().then((function(t){var r=t.value;if(t.done)a.close();else{(0,_util.assert)((0,_util.isArrayBuffer)(r),"GetReader - expected an ArrayBuffer.");a.enqueue(new Uint8Array(r),1,[r])}})).catch((function(t){a.error(t)}))};a.onCancel=function(r){t._fullReader.cancel(r);a.ready.catch((function(r){if(!t.destroyed)throw r}))}}));r.on("ReaderHeadersReady",(function(r){var o=(0,_util.createPromiseCapability)(),i=t._fullReader;i.headersReady.then((function(){if(!i.isStreamingSupported||!i.isRangeSupported){t._lastProgress&&a.onProgress&&a.onProgress(t._lastProgress);i.onProgress=function(t){a.onProgress&&a.onProgress({loaded:t.loaded,total:t.total})}}o.resolve({isStreamingSupported:i.isStreamingSupported,isRangeSupported:i.isRangeSupported,contentLength:i.contentLength})}),o.reject);return o.promise}));r.on("GetRangeReader",(function(r,a){(0,_util.assert)(t._networkStream,"GetRangeReader - no `IPDFStream` instance available.");var o=t._networkStream.getRangeReader(r.begin,r.end);if(o){a.onPull=function(){o.read().then((function(t){var r=t.value;if(t.done)a.close();else{(0,_util.assert)((0,_util.isArrayBuffer)(r),"GetRangeReader - expected an ArrayBuffer.");a.enqueue(new Uint8Array(r),1,[r])}})).catch((function(t){a.error(t)}))};a.onCancel=function(r){o.cancel(r);a.ready.catch((function(r){if(!t.destroyed)throw r}))}}else a.close()}));r.on("GetDoc",(function(r){var o=r.pdfInfo;t._numPages=o.numPages;t._htmlForXfa=o.htmlForXfa;delete o.htmlForXfa;a._capability.resolve(new PDFDocumentProxy(o,t))}));r.on("DocException",(function(t){var r;switch(t.name){case"PasswordException":r=new _util.PasswordException(t.message,t.code);break;case"InvalidPDFException":r=new _util.InvalidPDFException(t.message);break;case"MissingPDFException":r=new _util.MissingPDFException(t.message);break;case"UnexpectedResponseException":r=new _util.UnexpectedResponseException(t.message,t.status);break;case"UnknownErrorException":r=new _util.UnknownErrorException(t.message,t.details);break;default:(0,_util.unreachable)("DocException - expected a valid Error.")}a._capability.reject(r)}));r.on("PasswordRequest",(function(r){t._passwordCapability=(0,_util.createPromiseCapability)();if(a.onPassword){try{a.onPassword((function updatePassword(r){t._passwordCapability.resolve({password:r})}),r.code)}catch(r){t._passwordCapability.reject(r)}}else t._passwordCapability.reject(new _util.PasswordException(r.message,r.code));return t._passwordCapability.promise}));r.on("DataLoaded",(function(r){a.onProgress&&a.onProgress({loaded:r.length,total:r.length});t.downloadInfoCapability.resolve(r)}));r.on("StartRenderPage",(function(r){if(!t.destroyed){t.pageCache[r.pageIndex]._startRenderPage(r.transparency,r.cacheKey)}}));r.on("commonobj",(function(a){var o;if(!t.destroyed){var i=_slicedToArray(a,3),l=i[0],u=i[1],c=i[2];if(!t.commonObjs.has(l))switch(u){case"Font":var d=t._params;if("error"in c){var h=c.error;(0,_util.warn)("Error during font loading: ".concat(h));t.commonObjs.resolve(l,h);break}var p=null;d.pdfBug&&null!==(o=globalThis.FontInspector)&&void 0!==o&&o.enabled&&(p={registerFont:function registerFont(t,r){globalThis.FontInspector.fontAdded(t,r)}});var m=new _font_loader.FontFaceObject(c,{isEvalSupported:d.isEvalSupported,disableFontFace:d.disableFontFace,ignoreErrors:d.ignoreErrors,onUnsupportedFeature:t._onUnsupportedFeature.bind(t),fontRegistry:p});t.fontLoader.bind(m).catch((function(t){return r.sendWithPromise("FontFallback",{id:l})})).finally((function(){!d.fontExtraProperties&&m.data&&(m.data=null);t.commonObjs.resolve(l,m)}));break;case"FontPath":case"Image":t.commonObjs.resolve(l,c);break;default:throw new Error("Got unknown common object type ".concat(u))}}}));r.on("obj",(function(r){var a;if(!t.destroyed){var o=_slicedToArray(r,4),i=o[0],l=o[1],u=o[2],c=o[3],d=t.pageCache[l];if(!d.objs.has(i))switch(u){case"Image":d.objs.resolve(i,c);(null==c||null===(a=c.data)||void 0===a?void 0:a.length)>8e6&&(d.cleanupAfterRender=!0);break;case"Pattern":d.objs.resolve(i,c);break;default:throw new Error("Got unknown object type ".concat(u))}}}));r.on("DocProgress",(function(r){t.destroyed||a.onProgress&&a.onProgress({loaded:r.loaded,total:r.total})}));r.on("UnsupportedFeature",this._onUnsupportedFeature.bind(this));r.on("FetchBuiltInCMap",(function(r){return t.destroyed?Promise.reject(new Error("Worker was destroyed.")):t.CMapReaderFactory?t.CMapReaderFactory.fetch(r):Promise.reject(new Error("CMapReaderFactory not initialized, see the `useWorkerFetch` parameter."))}));r.on("FetchStandardFontData",(function(r){return t.destroyed?Promise.reject(new Error("Worker was destroyed.")):t.StandardFontDataFactory?t.StandardFontDataFactory.fetch(r):Promise.reject(new Error("StandardFontDataFactory not initialized, see the `useWorkerFetch` parameter."))}))}},{key:"_onUnsupportedFeature",value:function _onUnsupportedFeature(t){var r=t.featureId;this.destroyed||this.loadingTask.onUnsupportedFeature&&this.loadingTask.onUnsupportedFeature(r)}},{key:"getData",value:function getData(){return this.messageHandler.sendWithPromise("GetData",null)}},{key:"getPage",value:function getPage(t){var r=this;if(!Number.isInteger(t)||t<=0||t>this._numPages)return Promise.reject(new Error("Invalid page request"));var a=t-1;if(a in this.pagePromises)return this.pagePromises[a];var o=this.messageHandler.sendWithPromise("GetPage",{pageIndex:a}).then((function(t){if(r.destroyed)throw new Error("Transport destroyed");var o=new PDFPageProxy(a,t,r,r._params.ownerDocument,r._params.pdfBug);r.pageCache[a]=o;return o}));this.pagePromises[a]=o;return o}},{key:"getPageIndex",value:function getPageIndex(t){return this.messageHandler.sendWithPromise("GetPageIndex",{ref:t})}},{key:"getAnnotations",value:function getAnnotations(t,r){return this.messageHandler.sendWithPromise("GetAnnotations",{pageIndex:t,intent:r})}},{key:"saveDocument",value:function saveDocument(){var t,r,a=this;return this.messageHandler.sendWithPromise("SaveDocument",{isPureXfa:!!this._htmlForXfa,numPages:this._numPages,annotationStorage:this.annotationStorage.serializable,filename:null!==(t=null===(r=this._fullReader)||void 0===r?void 0:r.filename)&&void 0!==t?t:null}).finally((function(){a.annotationStorage.resetModified()}))}},{key:"getFieldObjects",value:function getFieldObjects(){return this._getFieldObjectsPromise||(this._getFieldObjectsPromise=this.messageHandler.sendWithPromise("GetFieldObjects",null))}},{key:"hasJSActions",value:function hasJSActions(){return this._hasJSActionsPromise||(this._hasJSActionsPromise=this.messageHandler.sendWithPromise("HasJSActions",null))}},{key:"getCalculationOrderIds",value:function getCalculationOrderIds(){return this.messageHandler.sendWithPromise("GetCalculationOrderIds",null)}},{key:"getDestinations",value:function getDestinations(){return this.messageHandler.sendWithPromise("GetDestinations",null)}},{key:"getDestination",value:function getDestination(t){return"string"!=typeof t?Promise.reject(new Error("Invalid destination request.")):this.messageHandler.sendWithPromise("GetDestination",{id:t})}},{key:"getPageLabels",value:function getPageLabels(){return this.messageHandler.sendWithPromise("GetPageLabels",null)}},{key:"getPageLayout",value:function getPageLayout(){return this.messageHandler.sendWithPromise("GetPageLayout",null)}},{key:"getPageMode",value:function getPageMode(){return this.messageHandler.sendWithPromise("GetPageMode",null)}},{key:"getViewerPreferences",value:function getViewerPreferences(){return this.messageHandler.sendWithPromise("GetViewerPreferences",null)}},{key:"getOpenAction",value:function getOpenAction(){return this.messageHandler.sendWithPromise("GetOpenAction",null)}},{key:"getAttachments",value:function getAttachments(){return this.messageHandler.sendWithPromise("GetAttachments",null)}},{key:"getJavaScript",value:function getJavaScript(){return this.messageHandler.sendWithPromise("GetJavaScript",null)}},{key:"getDocJSActions",value:function getDocJSActions(){return this.messageHandler.sendWithPromise("GetDocJSActions",null)}},{key:"getPageJSActions",value:function getPageJSActions(t){return this.messageHandler.sendWithPromise("GetPageJSActions",{pageIndex:t})}},{key:"getStructTree",value:function getStructTree(t){return this.messageHandler.sendWithPromise("GetStructTree",{pageIndex:t})}},{key:"getOutline",value:function getOutline(){return this.messageHandler.sendWithPromise("GetOutline",null)}},{key:"getOptionalContentConfig",value:function getOptionalContentConfig(){return this.messageHandler.sendWithPromise("GetOptionalContentConfig",null).then((function(t){return new _optional_content_config.OptionalContentConfig(t)}))}},{key:"getPermissions",value:function getPermissions(){return this.messageHandler.sendWithPromise("GetPermissions",null)}},{key:"getMetadata",value:function getMetadata(){var t=this;return this.messageHandler.sendWithPromise("GetMetadata",null).then((function(r){var a,o,i,l;return{info:r[0],metadata:r[1]?new _metadata.Metadata(r[1]):null,contentDispositionFilename:null!==(a=null===(o=t._fullReader)||void 0===o?void 0:o.filename)&&void 0!==a?a:null,contentLength:null!==(i=null===(l=t._fullReader)||void 0===l?void 0:l.contentLength)&&void 0!==i?i:null}}))}},{key:"getMarkInfo",value:function getMarkInfo(){return this.messageHandler.sendWithPromise("GetMarkInfo",null)}},{key:"getStats",value:function getStats(){return this.messageHandler.sendWithPromise("GetStats",null)}},{key:"startCleanup",value:(t=_asyncToGenerator(_regenerator.default.mark((function _callee4(){var t,r,a,o,i=arguments;return _regenerator.default.wrap((function _callee4$(l){for(;;)switch(l.prev=l.next){case 0:t=i.length>0&&void 0!==i[0]&&i[0];l.next=3;return this.messageHandler.sendWithPromise("Cleanup",null);case 3:if(!this.destroyed){l.next=5;break}return l.abrupt("return");case 5:r=0,a=this.pageCache.length;case 6:if(!(r<a)){l.next=16;break}if(o=this.pageCache[r]){l.next=10;break}return l.abrupt("continue",13);case 10:if(o.cleanup()){l.next=13;break}throw new Error("startCleanup: Page ".concat(r+1," is currently rendering."));case 13:r++;l.next=6;break;case 16:this.commonObjs.clear();t||this.fontLoader.clear();this._getFieldObjectsPromise=null;this._hasJSActionsPromise=null;case 20:case"end":return l.stop()}}),_callee4,this)}))),function startCleanup(){return t.apply(this,arguments)})},{key:"loadingParams",get:function get(){var t=this._params;return(0,_util.shadow)(this,"loadingParams",{disableAutoFetch:t.disableAutoFetch,enableXfa:t.enableXfa})}}]);var t;return WorkerTransport}(),PDFObjects=function(){function PDFObjects(){_classCallCheck(this,PDFObjects);this._objs=Object.create(null)}_createClass(PDFObjects,[{key:"_ensureObj",value:function _ensureObj(t){return this._objs[t]?this._objs[t]:this._objs[t]={capability:(0,_util.createPromiseCapability)(),data:null,resolved:!1}}},{key:"get",value:function get(t){var r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null;if(r){this._ensureObj(t).capability.promise.then(r);return null}var a=this._objs[t];if(!a||!a.resolved)throw new Error("Requesting object that isn't resolved yet ".concat(t,"."));return a.data}},{key:"has",value:function has(t){var r=this._objs[t];return(null==r?void 0:r.resolved)||!1}},{key:"resolve",value:function resolve(t,r){var a=this._ensureObj(t);a.resolved=!0;a.data=r;a.capability.resolve(r)}},{key:"clear",value:function clear(){this._objs=Object.create(null)}}]);return PDFObjects}(),RenderTask=function(){function RenderTask(t){_classCallCheck(this,RenderTask);this._internalRenderTask=t;this.onContinue=null}_createClass(RenderTask,[{key:"promise",get:function get(){return this._internalRenderTask.capability.promise}},{key:"cancel",value:function cancel(){this._internalRenderTask.cancel()}}]);return RenderTask}();exports.RenderTask=RenderTask;var InternalRenderTask=function(){function InternalRenderTask(t){var r=t.callback,a=t.params,o=t.objs,i=t.commonObjs,l=t.operatorList,u=t.pageIndex,c=t.canvasFactory,d=t.useRequestAnimationFrame,h=void 0!==d&&d,p=t.pdfBug,m=void 0!==p&&p;_classCallCheck(this,InternalRenderTask);this.callback=r;this.params=a;this.objs=o;this.commonObjs=i;this.operatorListIdx=null;this.operatorList=l;this._pageIndex=u;this.canvasFactory=c;this._pdfBug=m;this.running=!1;this.graphicsReadyCallback=null;this.graphicsReady=!1;this._useRequestAnimationFrame=!0===h&&"undefined"!=typeof window;this.cancelled=!1;this.capability=(0,_util.createPromiseCapability)();this.task=new RenderTask(this);this._cancelBound=this.cancel.bind(this);this._continueBound=this._continue.bind(this);this._scheduleNextBound=this._scheduleNext.bind(this);this._nextBound=this._next.bind(this);this._canvas=a.canvasContext.canvas}_createClass(InternalRenderTask,[{key:"completed",get:function get(){return this.capability.promise.catch((function(){}))}},{key:"initializeGraphics",value:function initializeGraphics(t){var r,a=t.transparency,o=void 0!==a&&a,i=t.optionalContentConfig;if(!this.cancelled){if(this._canvas){if(InternalRenderTask.canvasInUse.has(this._canvas))throw new Error("Cannot use the same canvas during multiple render() operations. Use different canvas or ensure previous operations were cancelled or completed.");InternalRenderTask.canvasInUse.add(this._canvas)}if(this._pdfBug&&null!==(r=globalThis.StepperManager)&&void 0!==r&&r.enabled){this.stepper=globalThis.StepperManager.create(this._pageIndex);this.stepper.init(this.operatorList);this.stepper.nextBreakPoint=this.stepper.getNextBreakPoint()}var l=this.params,u=l.canvasContext,c=l.viewport,d=l.transform,h=l.imageLayer,p=l.background;this.gfx=new _canvas.CanvasGraphics(u,this.commonObjs,this.objs,this.canvasFactory,h,i);this.gfx.beginDrawing({transform:d,viewport:c,transparency:o,background:p});this.operatorListIdx=0;this.graphicsReady=!0;this.graphicsReadyCallback&&this.graphicsReadyCallback()}}},{key:"cancel",value:function cancel(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:null;this.running=!1;this.cancelled=!0;this.gfx&&this.gfx.endDrawing();this._canvas&&InternalRenderTask.canvasInUse.delete(this._canvas);this.callback(t||new _display_utils.RenderingCancelledException("Rendering cancelled, page ".concat(this._pageIndex+1),"canvas"))}},{key:"operatorListChanged",value:function operatorListChanged(){if(this.graphicsReady){this.stepper&&this.stepper.updateOperatorList(this.operatorList);this.running||this._continue()}else this.graphicsReadyCallback||(this.graphicsReadyCallback=this._continueBound)}},{key:"_continue",value:function _continue(){this.running=!0;this.cancelled||(this.task.onContinue?this.task.onContinue(this._scheduleNextBound):this._scheduleNext())}},{key:"_scheduleNext",value:function _scheduleNext(){var t=this;this._useRequestAnimationFrame?window.requestAnimationFrame((function(){t._nextBound().catch(t._cancelBound)})):Promise.resolve().then(this._nextBound).catch(this._cancelBound)}},{key:"_next",value:(t=_asyncToGenerator(_regenerator.default.mark((function _callee5(){return _regenerator.default.wrap((function _callee5$(t){for(;;)switch(t.prev=t.next){case 0:if(!this.cancelled){t.next=2;break}return t.abrupt("return");case 2:this.operatorListIdx=this.gfx.executeOperatorList(this.operatorList,this.operatorListIdx,this._continueBound,this.stepper);if(this.operatorListIdx===this.operatorList.argsArray.length){this.running=!1;if(this.operatorList.lastChunk){this.gfx.endDrawing();this._canvas&&InternalRenderTask.canvasInUse.delete(this._canvas);this.callback()}}case 4:case"end":return t.stop()}}),_callee5,this)}))),function _next(){return t.apply(this,arguments)})}],[{key:"canvasInUse",get:function get(){return(0,_util.shadow)(this,"canvasInUse",new WeakSet)}}]);var t;return InternalRenderTask}(),version="2.11.338";exports.version=version;var build="dedff3c98";exports.build=build},(t,r,a)=>{"use strict";function _typeof(t){_typeof="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function _typeof(t){return typeof t}:function _typeof(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t};return _typeof(t)}Object.defineProperty(r,"__esModule",{value:!0});r.FontLoader=r.FontFaceObject=void 0;var o=function _interopRequireDefault(t){return t&&t.__esModule?t:{default:t}}(a(2)),i=a(4);function _setPrototypeOf(t,r){_setPrototypeOf=Object.setPrototypeOf||function _setPrototypeOf(t,r){t.__proto__=r;return t};return _setPrototypeOf(t,r)}function _createSuper(t){var r=function _isNativeReflectConstruct(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){})));return!0}catch(t){return!1}}();return function _createSuperInternal(){var a,o=_getPrototypeOf(t);if(r){var i=_getPrototypeOf(this).constructor;a=Reflect.construct(o,arguments,i)}else a=o.apply(this,arguments);return _possibleConstructorReturn(this,a)}}function _possibleConstructorReturn(t,r){if(r&&("object"===_typeof(r)||"function"==typeof r))return r;if(void 0!==r)throw new TypeError("Derived constructors may only return object or undefined");return function _assertThisInitialized(t){if(void 0===t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return t}(t)}function _getPrototypeOf(t){_getPrototypeOf=Object.setPrototypeOf?Object.getPrototypeOf:function _getPrototypeOf(t){return t.__proto__||Object.getPrototypeOf(t)};return _getPrototypeOf(t)}function asyncGeneratorStep(t,r,a,o,i,l,u){try{var c=t[l](u),d=c.value}catch(t){a(t);return}c.done?r(d):Promise.resolve(d).then(o,i)}function _createForOfIteratorHelper(t,r){var a="undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(!a){if(Array.isArray(t)||(a=function _unsupportedIterableToArray(t,r){if(!t)return;if("string"==typeof t)return _arrayLikeToArray(t,r);var a=Object.prototype.toString.call(t).slice(8,-1);"Object"===a&&t.constructor&&(a=t.constructor.name);if("Map"===a||"Set"===a)return Array.from(t);if("Arguments"===a||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(a))return _arrayLikeToArray(t,r)}(t))||r&&t&&"number"==typeof t.length){a&&(t=a);var o=0,i=function F(){};return{s:i,n:function n(){return o>=t.length?{done:!0}:{done:!1,value:t[o++]}},e:function e(t){throw t},f:i}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var l,u=!0,c=!1;return{s:function s(){a=a.call(t)},n:function n(){var t=a.next();u=t.done;return t},e:function e(t){c=!0;l=t},f:function f(){try{u||null==a.return||a.return()}finally{if(c)throw l}}}}function _arrayLikeToArray(t,r){(null==r||r>t.length)&&(r=t.length);for(var a=0,o=new Array(r);a<r;a++)o[a]=t[a];return o}function _classCallCheck(t,r){if(!(t instanceof r))throw new TypeError("Cannot call a class as a function")}function _defineProperties(t,r){for(var a=0;a<r.length;a++){var o=r[a];o.enumerable=o.enumerable||!1;o.configurable=!0;"value"in o&&(o.writable=!0);Object.defineProperty(t,o.key,o)}}function _createClass(t,r,a){r&&_defineProperties(t.prototype,r);a&&_defineProperties(t,a);return t}var l,u=function(){function BaseFontLoader(t){var r=t.docId,a=t.onUnsupportedFeature,o=t.ownerDocument,l=void 0===o?globalThis.document:o;t.styleElement;_classCallCheck(this,BaseFontLoader);this.constructor===BaseFontLoader&&(0,i.unreachable)("Cannot initialize BaseFontLoader.");this.docId=r;this._onUnsupportedFeature=a;this._document=l;this.nativeFontFaces=[];this.styleElement=null}_createClass(BaseFontLoader,[{key:"addNativeFontFace",value:function addNativeFontFace(t){this.nativeFontFaces.push(t);this._document.fonts.add(t)}},{key:"insertRule",value:function insertRule(t){var r=this.styleElement;if(!r){(r=this.styleElement=this._document.createElement("style")).id="PDFJS_FONT_STYLE_TAG_".concat(this.docId);this._document.documentElement.getElementsByTagName("head")[0].appendChild(r)}var a=r.sheet;a.insertRule(t,a.cssRules.length)}},{key:"clear",value:function clear(){var t,r=_createForOfIteratorHelper(this.nativeFontFaces);try{for(r.s();!(t=r.n()).done;){var a=t.value;this._document.fonts.delete(a)}}catch(t){r.e(t)}finally{r.f()}this.nativeFontFaces.length=0;if(this.styleElement){this.styleElement.remove();this.styleElement=null}}},{key:"bind",value:(t=function _asyncToGenerator(t){return function(){var r=this,a=arguments;return new Promise((function(o,i){var l=t.apply(r,a);function _next(t){asyncGeneratorStep(l,o,i,_next,_throw,"next",t)}function _throw(t){asyncGeneratorStep(l,o,i,_next,_throw,"throw",t)}_next(void 0)}))}}(o.default.mark((function _callee(t){var r,a,l=this;return o.default.wrap((function _callee$(o){for(;;)switch(o.prev=o.next){case 0:if(!t.attached&&!t.missingFile){o.next=2;break}return o.abrupt("return");case 2:t.attached=!0;if(!this.isFontLoadingAPISupported){o.next=19;break}if(!(r=t.createNativeFontFace())){o.next=18;break}this.addNativeFontFace(r);o.prev=7;o.next=10;return r.loaded;case 10:o.next=18;break;case 12:o.prev=12;o.t0=o.catch(7);this._onUnsupportedFeature({featureId:i.UNSUPPORTED_FEATURES.errorFontLoadNative});(0,i.warn)("Failed to load font '".concat(r.family,"': '").concat(o.t0,"'."));t.disableFontFace=!0;throw o.t0;case 18:return o.abrupt("return");case 19:if(!(a=t.createFontFaceRule())){o.next=26;break}this.insertRule(a);if(!this.isSyncFontLoadingSupported){o.next=24;break}return o.abrupt("return");case 24:o.next=26;return new Promise((function(r){var o=l._queueLoadingCallback(r);l._prepareFontLoadEvent([a],[t],o)}));case 26:case"end":return o.stop()}}),_callee,this,[[7,12]])}))),function bind(r){return t.apply(this,arguments)})},{key:"_queueLoadingCallback",value:function _queueLoadingCallback(t){(0,i.unreachable)("Abstract method `_queueLoadingCallback`.")}},{key:"isFontLoadingAPISupported",get:function get(){var t,r=!(null===(t=this._document)||void 0===t||!t.fonts);return(0,i.shadow)(this,"isFontLoadingAPISupported",r)}},{key:"isSyncFontLoadingSupported",get:function get(){(0,i.unreachable)("Abstract method `isSyncFontLoadingSupported`.")}},{key:"_loadTestFont",get:function get(){(0,i.unreachable)("Abstract method `_loadTestFont`.")}},{key:"_prepareFontLoadEvent",value:function _prepareFontLoadEvent(t,r,a){(0,i.unreachable)("Abstract method `_prepareFontLoadEvent`.")}}]);var t;return BaseFontLoader}();r.FontLoader=l;r.FontLoader=l=function(t){!function _inherits(t,r){if("function"!=typeof r&&null!==r)throw new TypeError("Super expression must either be null or a function");t.prototype=Object.create(r&&r.prototype,{constructor:{value:t,writable:!0,configurable:!0}});r&&_setPrototypeOf(t,r)}(GenericFontLoader,t);var r=_createSuper(GenericFontLoader);function GenericFontLoader(t){var a;_classCallCheck(this,GenericFontLoader);(a=r.call(this,t)).loadingContext={requests:[],nextRequestId:0};a.loadTestFontId=0;return a}_createClass(GenericFontLoader,[{key:"isSyncFontLoadingSupported",get:function get(){var t=!1;if("undefined"==typeof navigator)t=!0;else{var r=/Mozilla\/5.0.*?rv:(\d+).*? Gecko/.exec(navigator.userAgent);(null==r?void 0:r[1])>=14&&(t=!0)}return(0,i.shadow)(this,"isSyncFontLoadingSupported",t)}},{key:"_queueLoadingCallback",value:function _queueLoadingCallback(t){var r=this.loadingContext,a={id:"pdfjs-font-loading-".concat(r.nextRequestId++),done:!1,complete:function completeRequest(){(0,i.assert)(!a.done,"completeRequest() cannot be called twice.");a.done=!0;for(;r.requests.length>0&&r.requests[0].done;){var t=r.requests.shift();setTimeout(t.callback,0)}},callback:t};r.requests.push(a);return a}},{key:"_loadTestFont",get:function get(){return(0,i.shadow)(this,"_loadTestFont",function getLoadTestFont(){return atob("T1RUTwALAIAAAwAwQ0ZGIDHtZg4AAAOYAAAAgUZGVE1lkzZwAAAEHAAAABxHREVGABQAFQAABDgAAAAeT1MvMlYNYwkAAAEgAAAAYGNtYXABDQLUAAACNAAAAUJoZWFk/xVFDQAAALwAAAA2aGhlYQdkA+oAAAD0AAAAJGhtdHgD6AAAAAAEWAAAAAZtYXhwAAJQAAAAARgAAAAGbmFtZVjmdH4AAAGAAAAAsXBvc3T/hgAzAAADeAAAACAAAQAAAAEAALZRFsRfDzz1AAsD6AAAAADOBOTLAAAAAM4KHDwAAAAAA+gDIQAAAAgAAgAAAAAAAAABAAADIQAAAFoD6AAAAAAD6AABAAAAAAAAAAAAAAAAAAAAAQAAUAAAAgAAAAQD6AH0AAUAAAKKArwAAACMAooCvAAAAeAAMQECAAACAAYJAAAAAAAAAAAAAQAAAAAAAAAAAAAAAFBmRWQAwAAuAC4DIP84AFoDIQAAAAAAAQAAAAAAAAAAACAAIAABAAAADgCuAAEAAAAAAAAAAQAAAAEAAAAAAAEAAQAAAAEAAAAAAAIAAQAAAAEAAAAAAAMAAQAAAAEAAAAAAAQAAQAAAAEAAAAAAAUAAQAAAAEAAAAAAAYAAQAAAAMAAQQJAAAAAgABAAMAAQQJAAEAAgABAAMAAQQJAAIAAgABAAMAAQQJAAMAAgABAAMAAQQJAAQAAgABAAMAAQQJAAUAAgABAAMAAQQJAAYAAgABWABYAAAAAAAAAwAAAAMAAAAcAAEAAAAAADwAAwABAAAAHAAEACAAAAAEAAQAAQAAAC7//wAAAC7////TAAEAAAAAAAABBgAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMAAAAAAAD/gwAyAAAAAQAAAAAAAAAAAAAAAAAAAAABAAQEAAEBAQJYAAEBASH4DwD4GwHEAvgcA/gXBIwMAYuL+nz5tQXkD5j3CBLnEQACAQEBIVhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYAAABAQAADwACAQEEE/t3Dov6fAH6fAT+fPp8+nwHDosMCvm1Cvm1DAz6fBQAAAAAAAABAAAAAMmJbzEAAAAAzgTjFQAAAADOBOQpAAEAAAAAAAAADAAUAAQAAAABAAAAAgABAAAAAAAAAAAD6AAAAAAAAA==")}())}},{key:"_prepareFontLoadEvent",value:function _prepareFontLoadEvent(t,r,a){var o,l,u=this;function int32(t,r){return t.charCodeAt(r)<<24|t.charCodeAt(r+1)<<16|t.charCodeAt(r+2)<<8|255&t.charCodeAt(r+3)}function spliceString(t,r,a,o){return t.substring(0,r)+o+t.substring(r+a)}var c=this._document.createElement("canvas");c.width=1;c.height=1;var d=c.getContext("2d"),h=0;var p="lt".concat(Date.now()).concat(this.loadTestFontId++),m=this._loadTestFont,y=1482184792,v=int32(m=spliceString(m,976,p.length,p),16);for(o=0,l=p.length-3;o<l;o+=4)v=v-y+int32(p,o)|0;o<p.length&&(v=v-y+int32(p+"XXX",o)|0);m=spliceString(m,16,4,(0,i.string32)(v));var g="url(data:font/opentype;base64,".concat(btoa(m),");"),b='@font-face {font-family:"'.concat(p,'";src:').concat(g,"}");this.insertRule(b);var _,S=[],A=_createForOfIteratorHelper(r);try{for(A.s();!(_=A.n()).done;){var C=_.value;S.push(C.loadedName)}}catch(t){A.e(t)}finally{A.f()}S.push(p);var k=this._document.createElement("div");k.style.visibility="hidden";k.style.width=k.style.height="10px";k.style.position="absolute";k.style.top=k.style.left="0px";for(var R=0,w=S;R<w.length;R++){var P=w[R],x=this._document.createElement("span");x.textContent="Hi";x.style.fontFamily=P;k.appendChild(x)}this._document.body.appendChild(k);!function isFontReady(t,r){if(++h>30){(0,i.warn)("Load test font never loaded.");r()}else{d.font="30px "+t;d.fillText(".",0,20);d.getImageData(0,0,1,1).data[3]>0?r():setTimeout(isFontReady.bind(null,t,r))}}(p,(function(){u._document.body.removeChild(k);a.complete()}))}}]);return GenericFontLoader}(u);var c=function(){function FontFaceObject(t,r){var a=r.isEvalSupported,o=void 0===a||a,i=r.disableFontFace,l=void 0!==i&&i,u=r.ignoreErrors,c=void 0!==u&&u,d=r.onUnsupportedFeature,h=r.fontRegistry,p=void 0===h?null:h;_classCallCheck(this,FontFaceObject);this.compiledGlyphs=Object.create(null);for(var m in t)this[m]=t[m];this.isEvalSupported=!1!==o;this.disableFontFace=!0===l;this.ignoreErrors=!0===c;this._onUnsupportedFeature=d;this.fontRegistry=p}_createClass(FontFaceObject,[{key:"createNativeFontFace",value:function createNativeFontFace(){if(!this.data||this.disableFontFace)return null;var t;if(this.cssFontInfo){var r={weight:this.cssFontInfo.fontWeight};this.cssFontInfo.italicAngle&&(r.style="oblique ".concat(this.cssFontInfo.italicAngle,"deg"));t=new FontFace(this.cssFontInfo.fontFamily,this.data,r)}else t=new FontFace(this.loadedName,this.data,{});this.fontRegistry&&this.fontRegistry.registerFont(this);return t}},{key:"createFontFaceRule",value:function createFontFaceRule(){if(!this.data||this.disableFontFace)return null;var t,r=(0,i.bytesToString)(this.data),a="url(data:".concat(this.mimetype,";base64,").concat(btoa(r),");");if(this.cssFontInfo){var o="font-weight: ".concat(this.cssFontInfo.fontWeight,";");this.cssFontInfo.italicAngle&&(o+="font-style: oblique ".concat(this.cssFontInfo.italicAngle,"deg;"));t='@font-face {font-family:"'.concat(this.cssFontInfo.fontFamily,'";').concat(o,"src:").concat(a,"}")}else t='@font-face {font-family:"'.concat(this.loadedName,'";src:').concat(a,"}");this.fontRegistry&&this.fontRegistry.registerFont(this,a);return t}},{key:"getPathGenerator",value:function getPathGenerator(t,r){if(void 0!==this.compiledGlyphs[r])return this.compiledGlyphs[r];var a;try{a=t.get(this.loadedName+"_path_"+r)}catch(t){if(!this.ignoreErrors)throw t;this._onUnsupportedFeature({featureId:i.UNSUPPORTED_FEATURES.errorFontGetPath});(0,i.warn)('getPathGenerator - ignoring character: "'.concat(t,'".'));return this.compiledGlyphs[r]=function(t,r){}}if(this.isEvalSupported&&i.IsEvalSupportedCached.value){var o,l=[],u=_createForOfIteratorHelper(a);try{for(u.s();!(o=u.n()).done;){var c=o.value,d=void 0!==c.args?c.args.join(","):"";l.push("c.",c.cmd,"(",d,");\n")}}catch(t){u.e(t)}finally{u.f()}return this.compiledGlyphs[r]=new Function("c","size",l.join(""))}return this.compiledGlyphs[r]=function(t,r){var o,i=_createForOfIteratorHelper(a);try{for(i.s();!(o=i.n()).done;){var l=o.value;"scale"===l.cmd&&(l.args=[r,-r]);t[l.cmd].apply(t,l.args)}}catch(t){i.e(t)}finally{i.f()}}}}]);return FontFaceObject}();r.FontFaceObject=c},(t,r,a)=>{"use strict";function _typeof(t){_typeof="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function _typeof(t){return typeof t}:function _typeof(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t};return _typeof(t)}Object.defineProperty(r,"__esModule",{value:!0});r.NodeStandardFontDataFactory=r.NodeCMapReaderFactory=r.NodeCanvasFactory=void 0;var o=a(118),i=a(6),l=a(4);function _defineProperties(t,r){for(var a=0;a<r.length;a++){var o=r[a];o.enumerable=o.enumerable||!1;o.configurable=!0;"value"in o&&(o.writable=!0);Object.defineProperty(t,o.key,o)}}function _createClass(t,r,a){r&&_defineProperties(t.prototype,r);a&&_defineProperties(t,a);return t}function _inherits(t,r){if("function"!=typeof r&&null!==r)throw new TypeError("Super expression must either be null or a function");t.prototype=Object.create(r&&r.prototype,{constructor:{value:t,writable:!0,configurable:!0}});r&&_setPrototypeOf(t,r)}function _setPrototypeOf(t,r){_setPrototypeOf=Object.setPrototypeOf||function _setPrototypeOf(t,r){t.__proto__=r;return t};return _setPrototypeOf(t,r)}function _createSuper(t){var r=function _isNativeReflectConstruct(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){})));return!0}catch(t){return!1}}();return function _createSuperInternal(){var a,o=_getPrototypeOf(t);if(r){var i=_getPrototypeOf(this).constructor;a=Reflect.construct(o,arguments,i)}else a=o.apply(this,arguments);return _possibleConstructorReturn(this,a)}}function _possibleConstructorReturn(t,r){if(r&&("object"===_typeof(r)||"function"==typeof r))return r;if(void 0!==r)throw new TypeError("Derived constructors may only return object or undefined");return function _assertThisInitialized(t){if(void 0===t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return t}(t)}function _getPrototypeOf(t){_getPrototypeOf=Object.setPrototypeOf?Object.getPrototypeOf:function _getPrototypeOf(t){return t.__proto__||Object.getPrototypeOf(t)};return _getPrototypeOf(t)}function _classCallCheck(t,r){if(!(t instanceof r))throw new TypeError("Cannot call a class as a function")}var u=function NodeCanvasFactory(){_classCallCheck(this,NodeCanvasFactory);(0,l.unreachable)("Not implemented: NodeCanvasFactory")};r.NodeCanvasFactory=u;var c=function NodeCMapReaderFactory(){_classCallCheck(this,NodeCMapReaderFactory);(0,l.unreachable)("Not implemented: NodeCMapReaderFactory")};r.NodeCMapReaderFactory=c;var d=function NodeStandardFontDataFactory(){_classCallCheck(this,NodeStandardFontDataFactory);(0,l.unreachable)("Not implemented: NodeStandardFontDataFactory")};r.NodeStandardFontDataFactory=d;if(i.isNodeJS){var h=function fetchData(t){return new Promise((function(r,a){require("fs").readFile(t,(function(t,o){!t&&o?r(new Uint8Array(o)):a(new Error(t))}))}))};r.NodeCanvasFactory=u=function(t){_inherits(NodeCanvasFactory,t);var r=_createSuper(NodeCanvasFactory);function NodeCanvasFactory(){_classCallCheck(this,NodeCanvasFactory);return r.apply(this,arguments)}_createClass(NodeCanvasFactory,[{key:"_createCanvas",value:function _createCanvas(t,r){return require("canvas").createCanvas(t,r)}}]);return NodeCanvasFactory}(o.BaseCanvasFactory);r.NodeCMapReaderFactory=c=function(t){_inherits(NodeCMapReaderFactory,t);var r=_createSuper(NodeCMapReaderFactory);function NodeCMapReaderFactory(){_classCallCheck(this,NodeCMapReaderFactory);return r.apply(this,arguments)}_createClass(NodeCMapReaderFactory,[{key:"_fetchData",value:function _fetchData(t,r){return h(t).then((function(t){return{cMapData:t,compressionType:r}}))}}]);return NodeCMapReaderFactory}(o.BaseCMapReaderFactory);r.NodeStandardFontDataFactory=d=function(t){_inherits(NodeStandardFontDataFactory,t);var r=_createSuper(NodeStandardFontDataFactory);function NodeStandardFontDataFactory(){_classCallCheck(this,NodeStandardFontDataFactory);return r.apply(this,arguments)}_createClass(NodeStandardFontDataFactory,[{key:"_fetchData",value:function _fetchData(t){return h(t)}}]);return NodeStandardFontDataFactory}(o.BaseStandardFontDataFactory)}},(t,r,a)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});r.AnnotationStorage=void 0;var o=a(4);function _slicedToArray(t,r){return function _arrayWithHoles(t){if(Array.isArray(t))return t}(t)||function _iterableToArrayLimit(t,r){var a=null==t?null:"undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(null==a)return;var o,i,l=[],u=!0,c=!1;try{for(a=a.call(t);!(u=(o=a.next()).done);u=!0){l.push(o.value);if(r&&l.length===r)break}}catch(t){c=!0;i=t}finally{try{u||null==a.return||a.return()}finally{if(c)throw i}}return l}(t,r)||function _unsupportedIterableToArray(t,r){if(!t)return;if("string"==typeof t)return _arrayLikeToArray(t,r);var a=Object.prototype.toString.call(t).slice(8,-1);"Object"===a&&t.constructor&&(a=t.constructor.name);if("Map"===a||"Set"===a)return Array.from(t);if("Arguments"===a||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(a))return _arrayLikeToArray(t,r)}(t,r)||function _nonIterableRest(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function _arrayLikeToArray(t,r){(null==r||r>t.length)&&(r=t.length);for(var a=0,o=new Array(r);a<r;a++)o[a]=t[a];return o}function _defineProperties(t,r){for(var a=0;a<r.length;a++){var o=r[a];o.enumerable=o.enumerable||!1;o.configurable=!0;"value"in o&&(o.writable=!0);Object.defineProperty(t,o.key,o)}}var i=function(){function AnnotationStorage(){!function _classCallCheck(t,r){if(!(t instanceof r))throw new TypeError("Cannot call a class as a function")}(this,AnnotationStorage);this._storage=new Map;this._timeStamp=Date.now();this._modified=!1;this.onSetModified=null;this.onResetModified=null}!function _createClass(t,r,a){r&&_defineProperties(t.prototype,r);a&&_defineProperties(t,a);return t}(AnnotationStorage,[{key:"getValue",value:function getValue(t,r){var a=this._storage.get(t);return void 0===a?r:Object.assign(r,a)}},{key:"setValue",value:function setValue(t,r){var a=this._storage.get(t),o=!1;if(void 0!==a)for(var i=0,l=Object.entries(r);i<l.length;i++){var u=_slicedToArray(l[i],2),c=u[0],d=u[1];if(a[c]!==d){o=!0;a[c]=d}}else{o=!0;this._storage.set(t,r)}if(o){this._timeStamp=Date.now();this._setModified()}}},{key:"getAll",value:function getAll(){return this._storage.size>0?(0,o.objectFromMap)(this._storage):null}},{key:"size",get:function get(){return this._storage.size}},{key:"_setModified",value:function _setModified(){if(!this._modified){this._modified=!0;"function"==typeof this.onSetModified&&this.onSetModified()}}},{key:"resetModified",value:function resetModified(){if(this._modified){this._modified=!1;"function"==typeof this.onResetModified&&this.onResetModified()}}},{key:"serializable",get:function get(){return this._storage.size>0?this._storage:null}},{key:"lastModified",get:function get(){return this._timeStamp.toString()}}]);return AnnotationStorage}();r.AnnotationStorage=i},(t,r,a)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});r.CanvasGraphics=void 0;var o=a(4),i=a(124),l=a(1);function _typeof(t){_typeof="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function _typeof(t){return typeof t}:function _typeof(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t};return _typeof(t)}function _createForOfIteratorHelper(t,r){var a="undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(!a){if(Array.isArray(t)||(a=_unsupportedIterableToArray(t))||r&&t&&"number"==typeof t.length){a&&(t=a);var o=0,i=function F(){};return{s:i,n:function n(){return o>=t.length?{done:!0}:{done:!1,value:t[o++]}},e:function e(t){throw t},f:i}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var l,u=!0,c=!1;return{s:function s(){a=a.call(t)},n:function n(){var t=a.next();u=t.done;return t},e:function e(t){c=!0;l=t},f:function f(){try{u||null==a.return||a.return()}finally{if(c)throw l}}}}function _classCallCheck(t,r){if(!(t instanceof r))throw new TypeError("Cannot call a class as a function")}function _defineProperties(t,r){for(var a=0;a<r.length;a++){var o=r[a];o.enumerable=o.enumerable||!1;o.configurable=!0;"value"in o&&(o.writable=!0);Object.defineProperty(t,o.key,o)}}function _createClass(t,r,a){r&&_defineProperties(t.prototype,r);a&&_defineProperties(t,a);return t}function _slicedToArray(t,r){return function _arrayWithHoles(t){if(Array.isArray(t))return t}(t)||function _iterableToArrayLimit(t,r){var a=null==t?null:"undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(null==a)return;var o,i,l=[],u=!0,c=!1;try{for(a=a.call(t);!(u=(o=a.next()).done);u=!0){l.push(o.value);if(r&&l.length===r)break}}catch(t){c=!0;i=t}finally{try{u||null==a.return||a.return()}finally{if(c)throw i}}return l}(t,r)||_unsupportedIterableToArray(t,r)||function _nonIterableRest(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function _unsupportedIterableToArray(t,r){if(t){if("string"==typeof t)return _arrayLikeToArray(t,r);var a=Object.prototype.toString.call(t).slice(8,-1);"Object"===a&&t.constructor&&(a=t.constructor.name);return"Map"===a||"Set"===a?Array.from(t):"Arguments"===a||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(a)?_arrayLikeToArray(t,r):void 0}}function _arrayLikeToArray(t,r){(null==r||r>t.length)&&(r=t.length);for(var a=0,o=new Array(r);a<r;a++)o[a]=t[a];return o}var u=4096,c=16;function addContextCurrentTransform(t){if(!t.mozCurrentTransform){t._originalSave=t.save;t._originalRestore=t.restore;t._originalRotate=t.rotate;t._originalScale=t.scale;t._originalTranslate=t.translate;t._originalTransform=t.transform;t._originalSetTransform=t.setTransform;t._originalResetTransform=t.resetTransform;t._transformMatrix=t._transformMatrix||[1,0,0,1,0,0];t._transformStack=[];try{var r=Object.getOwnPropertyDescriptor(Object.getPrototypeOf(t),"lineWidth");t._setLineWidth=r.set;t._getLineWidth=r.get;Object.defineProperty(t,"lineWidth",{set:function setLineWidth(t){this._setLineWidth(1.000001*t)},get:function getLineWidth(){return this._getLineWidth()}})}catch(t){}Object.defineProperty(t,"mozCurrentTransform",{get:function getCurrentTransform(){return this._transformMatrix}});Object.defineProperty(t,"mozCurrentTransformInverse",{get:function getCurrentTransformInverse(){var t=_slicedToArray(this._transformMatrix,6),r=t[0],a=t[1],o=t[2],i=t[3],l=t[4],u=t[5],c=r*i-a*o,d=a*o-r*i;return[i/c,a/d,o/d,r/c,(i*l-o*u)/d,(a*l-r*u)/c]}});t.save=function ctxSave(){var t=this._transformMatrix;this._transformStack.push(t);this._transformMatrix=t.slice(0,6);this._originalSave()};t.restore=function ctxRestore(){var t=this._transformStack.pop();if(t){this._transformMatrix=t;this._originalRestore()}};t.translate=function ctxTranslate(t,r){var a=this._transformMatrix;a[4]=a[0]*t+a[2]*r+a[4];a[5]=a[1]*t+a[3]*r+a[5];this._originalTranslate(t,r)};t.scale=function ctxScale(t,r){var a=this._transformMatrix;a[0]*=t;a[1]*=t;a[2]*=r;a[3]*=r;this._originalScale(t,r)};t.transform=function ctxTransform(r,a,o,i,l,u){var c=this._transformMatrix;this._transformMatrix=[c[0]*r+c[2]*a,c[1]*r+c[3]*a,c[0]*o+c[2]*i,c[1]*o+c[3]*i,c[0]*l+c[2]*u+c[4],c[1]*l+c[3]*u+c[5]];t._originalTransform(r,a,o,i,l,u)};t.setTransform=function ctxSetTransform(r,a,o,i,l,u){this._transformMatrix=[r,a,o,i,l,u];t._originalSetTransform(r,a,o,i,l,u)};t.resetTransform=function ctxResetTransform(){this._transformMatrix=[1,0,0,1,0,0];t._originalResetTransform()};t.rotate=function ctxRotate(t){var r=Math.cos(t),a=Math.sin(t),o=this._transformMatrix;this._transformMatrix=[o[0]*r+o[2]*a,o[1]*r+o[3]*a,o[0]*-a+o[2]*r,o[1]*-a+o[3]*r,o[4],o[5]];this._originalRotate(t)}}}var d=function(){function CachedCanvases(t){_classCallCheck(this,CachedCanvases);this.canvasFactory=t;this.cache=Object.create(null)}_createClass(CachedCanvases,[{key:"getCanvas",value:function getCanvas(t,r,a,o){var i;if(void 0!==this.cache[t]){i=this.cache[t];this.canvasFactory.reset(i,r,a);i.context.setTransform(1,0,0,1,0,0)}else{i=this.canvasFactory.create(r,a);this.cache[t]=i}o&&addContextCurrentTransform(i.context);return i}},{key:"clear",value:function clear(){for(var t in this.cache){var r=this.cache[t];this.canvasFactory.destroy(r);delete this.cache[t]}}}]);return CachedCanvases}(),h=function(){function LRUCache(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0;_classCallCheck(this,LRUCache);this._cache=new Map;this._maxSize=t}_createClass(LRUCache,[{key:"has",value:function has(t){return this._cache.has(t)}},{key:"get",value:function get(t){if(this._cache.has(t)){var r=this._cache.get(t);this._cache.delete(t);this._cache.set(t,r)}return this._cache.get(t)}},{key:"set",value:function set(t,r){if(!(this._maxSize<=0)){this._cache.size+1>this._maxSize&&this._cache.delete(this._cache.keys().next().value);this._cache.set(t,r)}}},{key:"clear",value:function clear(){this._cache.clear()}}]);return LRUCache}();var p=function(){function CanvasExtraState(){_classCallCheck(this,CanvasExtraState);this.alphaIsShape=!1;this.fontSize=0;this.fontSizeScale=1;this.textMatrix=o.IDENTITY_MATRIX;this.textMatrixScale=1;this.fontMatrix=o.FONT_IDENTITY_MATRIX;this.leading=0;this.x=0;this.y=0;this.lineX=0;this.lineY=0;this.charSpacing=0;this.wordSpacing=0;this.textHScale=1;this.textRenderingMode=o.TextRenderingMode.FILL;this.textRise=0;this.fillColor="#000000";this.strokeColor="#000000";this.patternFill=!1;this.fillAlpha=1;this.strokeAlpha=1;this.lineWidth=1;this.activeSMask=null;this.resumeSMaskCtx=null;this.transferMaps=null}_createClass(CanvasExtraState,[{key:"clone",value:function clone(){return Object.create(this)}},{key:"setCurrentPoint",value:function setCurrentPoint(t,r){this.x=t;this.y=r}}]);return CanvasExtraState}();function putBinaryImageData(t,r){var a=arguments.length>2&&void 0!==arguments[2]?arguments[2]:null;if("undefined"!=typeof ImageData&&r instanceof ImageData)t.putImageData(r,0,0);else{var i,l,u,d,h,p,m,y,v,g=r.height,b=r.width,_=g%c,S=(g-_)/c,A=0===_?S:S+1,C=t.createImageData(b,c),k=0,R=r.data,w=C.data;if(a)switch(a.length){case 1:p=a[0];m=a[0];y=a[0];v=a[0];break;case 4:p=a[0];m=a[1];y=a[2];v=a[3]}if(r.kind===o.ImageKind.GRAYSCALE_1BPP){var P=R.byteLength,x=new Uint32Array(w.buffer,0,w.byteLength>>2),T=x.length,E=b+7>>3,O=4294967295,I=o.IsLittleEndianCached.value?4278190080:255;if(v&&255===v[0]&&0===v[255]){var D=[I,O];O=D[0];I=D[1]}for(l=0;l<A;l++){d=l<S?c:_;i=0;for(u=0;u<d;u++){for(var M=P-k,j=0,L=M>E?b:8*M-7,W=-8&L,B=0,N=0;j<W;j+=8){N=R[k++];x[i++]=128&N?O:I;x[i++]=64&N?O:I;x[i++]=32&N?O:I;x[i++]=16&N?O:I;x[i++]=8&N?O:I;x[i++]=4&N?O:I;x[i++]=2&N?O:I;x[i++]=1&N?O:I}for(;j<L;j++){if(0===B){N=R[k++];B=128}x[i++]=N&B?O:I;B>>=1}}for(;i<T;)x[i++]=0;t.putImageData(C,0,l*c)}}else if(r.kind===o.ImageKind.RGBA_32BPP){var q=!!(p||m||y);u=0;h=b*c*4;for(l=0;l<S;l++){w.set(R.subarray(k,k+h));k+=h;if(q)for(var U=0;U<h;U+=4){p&&(w[U+0]=p[w[U+0]]);m&&(w[U+1]=m[w[U+1]]);y&&(w[U+2]=y[w[U+2]])}t.putImageData(C,0,u);u+=c}if(l<A){h=b*_*4;w.set(R.subarray(k,k+h));if(q)for(var G=0;G<h;G+=4){p&&(w[G+0]=p[w[G+0]]);m&&(w[G+1]=m[w[G+1]]);y&&(w[G+2]=y[w[G+2]])}t.putImageData(C,0,u)}}else{if(r.kind!==o.ImageKind.RGB_24BPP)throw new Error("bad image kind: ".concat(r.kind));var H=!!(p||m||y);h=b*(d=c);for(l=0;l<A;l++){l>=S&&(h=b*(d=_));i=0;for(u=h;u--;){w[i++]=R[k++];w[i++]=R[k++];w[i++]=R[k++];w[i++]=255}if(H)for(var z=0;z<i;z+=4){p&&(w[z+0]=p[w[z+0]]);m&&(w[z+1]=m[w[z+1]]);y&&(w[z+2]=y[w[z+2]])}t.putImageData(C,0,l*c)}}}}function putBinaryImageMask(t,r){for(var a=r.height,o=r.width,i=a%c,l=(a-i)/c,u=0===i?l:l+1,d=t.createImageData(o,c),h=0,p=r.data,m=d.data,y=0;y<u;y++){for(var v=y<l?c:i,g=3,b=0;b<v;b++)for(var _=void 0,S=0,A=0;A<o;A++){if(!S){_=p[h++];S=128}m[g]=_&S?0:255;g+=4;S>>=1}t.putImageData(d,0,y*c)}}function copyCtxState(t,r){for(var a=["strokeStyle","fillStyle","fillRule","globalAlpha","lineWidth","lineCap","lineJoin","miterLimit","globalCompositeOperation","font"],o=0,i=a.length;o<i;o++){var l=a[o];void 0!==t[l]&&(r[l]=t[l])}if(void 0!==t.setLineDash){r.setLineDash(t.getLineDash());r.lineDashOffset=t.lineDashOffset}}function resetCtxToDefault(t){t.strokeStyle="#000000";t.fillStyle="#000000";t.fillRule="nonzero";t.globalAlpha=1;t.lineWidth=1;t.lineCap="butt";t.lineJoin="miter";t.miterLimit=10;t.globalCompositeOperation="source-over";t.font="10px sans-serif";if(void 0!==t.setLineDash){t.setLineDash([]);t.lineDashOffset=0}}function composeSMaskBackdrop(t,r,a,o){for(var i=t.length,l=3;l<i;l+=4){var u=t[l];if(0===u){t[l-3]=r;t[l-2]=a;t[l-1]=o}else if(u<255){var c=255-u;t[l-3]=t[l-3]*u+r*c>>8;t[l-2]=t[l-2]*u+a*c>>8;t[l-1]=t[l-1]*u+o*c>>8}}}function composeSMaskAlpha(t,r,a){for(var o=t.length,i=3;i<o;i+=4){var l=a?a[t[i]]:t[i];r[i]=r[i]*l*.00392156862745098|0}}function composeSMaskLuminosity(t,r,a){for(var o=t.length,i=3;i<o;i+=4){var l=77*t[i-3]+152*t[i-2]+28*t[i-1];r[i]=a?r[i]*a[l>>8]>>8:r[i]*l>>16}}function composeSMask(t,r,a){var o=r.canvas,i=r.context;t.setTransform(r.scaleX,0,0,r.scaleY,r.offsetX,r.offsetY);!function genericComposeSMask(t,r,a,o,i,l,u){var c,d=!!l,h=d?l[0]:0,p=d?l[1]:0,m=d?l[2]:0;c="Luminosity"===i?composeSMaskLuminosity:composeSMaskAlpha;for(var y=Math.min(o,Math.ceil(1048576/a)),v=0;v<o;v+=y){var g=Math.min(y,o-v),b=t.getImageData(0,v,a,g),_=r.getImageData(0,v,a,g);d&&composeSMaskBackdrop(b.data,h,p,m);c(b.data,_.data,u);t.putImageData(_,0,v)}}(i,a,o.width,o.height,r.subtype,r.backdrop,r.transferMap);t.drawImage(o,0,0)}function getImageSmoothingEnabled(t,r){var a=o.Util.singularValueDecompose2dScale(t);a[0]=Math.fround(a[0]);a[1]=Math.fround(a[1]);var i=Math.fround((globalThis.devicePixelRatio||1)*l.PixelsPerInch.PDF_TO_CSS_UNITS);return void 0!==r?r:a[0]<=i||a[1]<=i}var m=["butt","round","square"],y=["miter","round","bevel"],v={},g={},b=function(){function CanvasGraphics(t,r,a,o,i,l){_classCallCheck(this,CanvasGraphics);this.ctx=t;this.current=new p;this.stateStack=[];this.pendingClip=null;this.pendingEOFill=!1;this.res=null;this.xobjs=null;this.commonObjs=r;this.objs=a;this.canvasFactory=o;this.imageLayer=i;this.groupStack=[];this.processingType3=null;this.baseTransform=null;this.baseTransformStack=[];this.groupLevel=0;this.smaskStack=[];this.smaskCounter=0;this.tempSMask=null;this.contentVisible=!0;this.markedContentStack=[];this.optionalContentConfig=l;this.cachedCanvases=new d(this.canvasFactory);this.cachedCanvasPatterns=new h(2);this.cachedPatterns=new Map;t&&addContextCurrentTransform(t);this._cachedGetSinglePixelWidth=null}_createClass(CanvasGraphics,[{key:"beginDrawing",value:function beginDrawing(t){var r=t.transform,a=t.viewport,o=t.transparency,i=void 0!==o&&o,l=t.background,u=void 0===l?null:l,c=this.ctx.canvas.width,d=this.ctx.canvas.height;this.ctx.save();this.ctx.fillStyle=u||"rgb(255, 255, 255)";this.ctx.fillRect(0,0,c,d);this.ctx.restore();if(i){var h=this.cachedCanvases.getCanvas("transparent",c,d,!0);this.compositeCtx=this.ctx;this.transparentCanvas=h.canvas;this.ctx=h.context;this.ctx.save();this.ctx.transform.apply(this.ctx,this.compositeCtx.mozCurrentTransform)}this.ctx.save();resetCtxToDefault(this.ctx);r&&this.ctx.transform.apply(this.ctx,r);this.ctx.transform.apply(this.ctx,a.transform);this.baseTransform=this.ctx.mozCurrentTransform.slice();this._combinedScaleFactor=Math.hypot(this.baseTransform[0],this.baseTransform[2]);this.imageLayer&&this.imageLayer.beginLayout()}},{key:"executeOperatorList",value:function executeOperatorList(t,r,a,i){var l=t.argsArray,u=t.fnArray,c=r||0,d=l.length;if(d===c)return c;for(var h,p=d-c>10&&"function"==typeof a,m=p?Date.now()+15:0,y=0,v=this.commonObjs,g=this.objs;;){if(void 0!==i&&c===i.nextBreakPoint){i.breakIt(c,a);return c}if((h=u[c])!==o.OPS.dependency)this[h].apply(this,l[c]);else{var b,_=_createForOfIteratorHelper(l[c]);try{for(_.s();!(b=_.n()).done;){var S=b.value,A=S.startsWith("g_")?v:g;if(!A.has(S)){A.get(S,a);return c}}}catch(t){_.e(t)}finally{_.f()}}if(++c===d)return c;if(p&&++y>10){if(Date.now()>m){a();return c}y=0}}}},{key:"endDrawing",value:function endDrawing(){for(;this.stateStack.length||null!==this.current.activeSMask;)this.restore();this.ctx.restore();if(this.transparentCanvas){this.ctx=this.compositeCtx;this.ctx.save();this.ctx.setTransform(1,0,0,1,0,0);this.ctx.drawImage(this.transparentCanvas,0,0);this.ctx.restore();this.transparentCanvas=null}this.cachedCanvases.clear();this.cachedCanvasPatterns.clear();this.cachedPatterns.clear();this.imageLayer&&this.imageLayer.endLayout()}},{key:"_scaleImage",value:function _scaleImage(t,r){for(var a,o,i=t.width,l=t.height,u=Math.max(Math.hypot(r[0],r[1]),1),c=Math.max(Math.hypot(r[2],r[3]),1),d=i,h=l,p="prescale1";u>2&&d>1||c>2&&h>1;){var m=d,y=h;u>2&&d>1&&(u/=d/(m=Math.ceil(d/2)));c>2&&h>1&&(c/=h/(y=Math.ceil(h/2)));(o=(a=this.cachedCanvases.getCanvas(p,m,y)).context).clearRect(0,0,m,y);o.drawImage(t,0,0,d,h,0,0,m,y);t=a.canvas;d=m;h=y;p="prescale1"===p?"prescale2":"prescale1"}return{img:t,paintWidth:d,paintHeight:h}}},{key:"_createMaskCanvas",value:function _createMaskCanvas(t){var r=this.ctx,a=t.width,i=t.height,l=this.current.fillColor,u=this.current.patternFill,c=this.cachedCanvases.getCanvas("maskCanvas",a,i);putBinaryImageMask(c.context,t);var d=r.mozCurrentTransform,h=o.Util.transform(d,[1/a,0,0,-1/i,0,0]);h=o.Util.transform(h,[1,0,0,1,0,-i]);var p=o.Util.applyTransform([0,0],h),m=o.Util.applyTransform([a,i],h),y=o.Util.normalizeRect([p[0],p[1],m[0],m[1]]),v=Math.ceil(y[2]-y[0]),g=Math.ceil(y[3]-y[1]),b=this.cachedCanvases.getCanvas("fillCanvas",v,g,!0),_=b.context,S=Math.min(p[0],m[0]),A=Math.min(p[1],m[1]);_.translate(-S,-A);_.transform.apply(_,h);var C=this._scaleImage(c.canvas,_.mozCurrentTransformInverse);_.imageSmoothingEnabled=getImageSmoothingEnabled(_.mozCurrentTransform,t.interpolate);_.drawImage(C.img,0,0,C.img.width,C.img.height,0,0,a,i);_.globalCompositeOperation="source-in";var k=o.Util.transform(_.mozCurrentTransformInverse,[1,0,0,1,-S,-A]);_.fillStyle=u?l.getPattern(r,this,k,!1):l;_.fillRect(0,0,a,i);return{canvas:b.canvas,offsetX:Math.round(S),offsetY:Math.round(A)}}},{key:"setLineWidth",value:function setLineWidth(t){this.current.lineWidth=t;this.ctx.lineWidth=t}},{key:"setLineCap",value:function setLineCap(t){this.ctx.lineCap=m[t]}},{key:"setLineJoin",value:function setLineJoin(t){this.ctx.lineJoin=y[t]}},{key:"setMiterLimit",value:function setMiterLimit(t){this.ctx.miterLimit=t}},{key:"setDash",value:function setDash(t,r){var a=this.ctx;if(void 0!==a.setLineDash){a.setLineDash(t);a.lineDashOffset=r}}},{key:"setRenderingIntent",value:function setRenderingIntent(t){}},{key:"setFlatness",value:function setFlatness(t){}},{key:"setGState",value:function setGState(t){for(var r=0,a=t.length;r<a;r++){var o=t[r],i=o[0],l=o[1];switch(i){case"LW":this.setLineWidth(l);break;case"LC":this.setLineCap(l);break;case"LJ":this.setLineJoin(l);break;case"ML":this.setMiterLimit(l);break;case"D":this.setDash(l[0],l[1]);break;case"RI":this.setRenderingIntent(l);break;case"FL":this.setFlatness(l);break;case"Font":this.setFont(l[0],l[1]);break;case"CA":this.current.strokeAlpha=o[1];break;case"ca":this.current.fillAlpha=o[1];this.ctx.globalAlpha=o[1];break;case"BM":this.ctx.globalCompositeOperation=l;break;case"SMask":this.current.activeSMask&&(this.stateStack.length>0&&this.stateStack[this.stateStack.length-1].activeSMask===this.current.activeSMask?this.suspendSMaskGroup():this.endSMaskGroup());this.current.activeSMask=l?this.tempSMask:null;this.current.activeSMask&&this.beginSMaskGroup();this.tempSMask=null;break;case"TR":this.current.transferMaps=l}}}},{key:"beginSMaskGroup",value:function beginSMaskGroup(){var t=this.current.activeSMask,r=t.canvas.width,a=t.canvas.height,o="smaskGroupAt"+this.groupLevel,i=this.cachedCanvases.getCanvas(o,r,a,!0),l=this.ctx,u=l.mozCurrentTransform;this.ctx.save();var c=i.context;c.scale(1/t.scaleX,1/t.scaleY);c.translate(-t.offsetX,-t.offsetY);c.transform.apply(c,u);t.startTransformInverse=c.mozCurrentTransformInverse;copyCtxState(l,c);this.ctx=c;this.setGState([["BM","source-over"],["ca",1],["CA",1]]);this.groupStack.push(l);this.groupLevel++}},{key:"suspendSMaskGroup",value:function suspendSMaskGroup(){var t=this.ctx;this.groupLevel--;this.ctx=this.groupStack.pop();composeSMask(this.ctx,this.current.activeSMask,t);this.ctx.restore();this.ctx.save();copyCtxState(t,this.ctx);this.current.resumeSMaskCtx=t;var r=o.Util.transform(this.current.activeSMask.startTransformInverse,t.mozCurrentTransform);this.ctx.transform.apply(this.ctx,r);t.save();t.setTransform(1,0,0,1,0,0);t.clearRect(0,0,t.canvas.width,t.canvas.height);t.restore()}},{key:"resumeSMaskGroup",value:function resumeSMaskGroup(){var t=this.current.resumeSMaskCtx,r=this.ctx;this.ctx=t;this.groupStack.push(r);this.groupLevel++}},{key:"endSMaskGroup",value:function endSMaskGroup(){var t=this.ctx;this.groupLevel--;this.ctx=this.groupStack.pop();composeSMask(this.ctx,this.current.activeSMask,t);this.ctx.restore();copyCtxState(t,this.ctx);var r=o.Util.transform(this.current.activeSMask.startTransformInverse,t.mozCurrentTransform);this.ctx.transform.apply(this.ctx,r)}},{key:"save",value:function save(){this.ctx.save();var t=this.current;this.stateStack.push(t);this.current=t.clone();this.current.resumeSMaskCtx=null}},{key:"restore",value:function restore(){this.current.resumeSMaskCtx&&this.resumeSMaskGroup();null===this.current.activeSMask||0!==this.stateStack.length&&this.stateStack[this.stateStack.length-1].activeSMask===this.current.activeSMask||this.endSMaskGroup();if(0!==this.stateStack.length){this.current=this.stateStack.pop();this.ctx.restore();this.pendingClip=null;this._cachedGetSinglePixelWidth=null}else this.current.activeSMask=null}},{key:"transform",value:function transform(t,r,a,o,i,l){this.ctx.transform(t,r,a,o,i,l);this._cachedGetSinglePixelWidth=null}},{key:"constructPath",value:function constructPath(t,r){for(var a=this.ctx,i=this.current,l=i.x,u=i.y,c=0,d=0,h=t.length;c<h;c++)switch(0|t[c]){case o.OPS.rectangle:l=r[d++];u=r[d++];var p=r[d++],m=r[d++],y=l+p,v=u+m;a.moveTo(l,u);if(0===p||0===m)a.lineTo(y,v);else{a.lineTo(y,u);a.lineTo(y,v);a.lineTo(l,v)}a.closePath();break;case o.OPS.moveTo:l=r[d++];u=r[d++];a.moveTo(l,u);break;case o.OPS.lineTo:l=r[d++];u=r[d++];a.lineTo(l,u);break;case o.OPS.curveTo:l=r[d+4];u=r[d+5];a.bezierCurveTo(r[d],r[d+1],r[d+2],r[d+3],l,u);d+=6;break;case o.OPS.curveTo2:a.bezierCurveTo(l,u,r[d],r[d+1],r[d+2],r[d+3]);l=r[d+2];u=r[d+3];d+=4;break;case o.OPS.curveTo3:l=r[d+2];u=r[d+3];a.bezierCurveTo(r[d],r[d+1],l,u,l,u);d+=4;break;case o.OPS.closePath:a.closePath()}i.setCurrentPoint(l,u)}},{key:"closePath",value:function closePath(){this.ctx.closePath()}},{key:"stroke",value:function stroke(t){t=void 0===t||t;var r=this.ctx,a=this.current.strokeColor;r.globalAlpha=this.current.strokeAlpha;if(this.contentVisible)if("object"===_typeof(a)&&null!=a&&a.getPattern){var o=this.getSinglePixelWidth();r.save();r.strokeStyle=a.getPattern(r,this,r.mozCurrentTransformInverse);r.lineWidth=Math.max(o,this.current.lineWidth);r.stroke();r.restore()}else{var i=this.getSinglePixelWidth();if(i<0&&-i>=this.current.lineWidth){r.save();r.resetTransform();r.lineWidth=Math.round(this._combinedScaleFactor);r.stroke();r.restore()}else{r.lineWidth=Math.max(i,this.current.lineWidth);r.stroke()}}t&&this.consumePath();r.globalAlpha=this.current.fillAlpha}},{key:"closeStroke",value:function closeStroke(){this.closePath();this.stroke()}},{key:"fill",value:function fill(t){t=void 0===t||t;var r=this.ctx,a=this.current.fillColor,o=!1;if(this.current.patternFill){r.save();r.fillStyle=a.getPattern(r,this,r.mozCurrentTransformInverse);o=!0}if(this.contentVisible)if(this.pendingEOFill){r.fill("evenodd");this.pendingEOFill=!1}else r.fill();o&&r.restore();t&&this.consumePath()}},{key:"eoFill",value:function eoFill(){this.pendingEOFill=!0;this.fill()}},{key:"fillStroke",value:function fillStroke(){this.fill(!1);this.stroke(!1);this.consumePath()}},{key:"eoFillStroke",value:function eoFillStroke(){this.pendingEOFill=!0;this.fillStroke()}},{key:"closeFillStroke",value:function closeFillStroke(){this.closePath();this.fillStroke()}},{key:"closeEOFillStroke",value:function closeEOFillStroke(){this.pendingEOFill=!0;this.closePath();this.fillStroke()}},{key:"endPath",value:function endPath(){this.consumePath()}},{key:"clip",value:function clip(){this.pendingClip=v}},{key:"eoClip",value:function eoClip(){this.pendingClip=g}},{key:"beginText",value:function beginText(){this.current.textMatrix=o.IDENTITY_MATRIX;this.current.textMatrixScale=1;this.current.x=this.current.lineX=0;this.current.y=this.current.lineY=0}},{key:"endText",value:function endText(){var t=this.pendingTextPaths,r=this.ctx;if(void 0!==t){r.save();r.beginPath();for(var a=0;a<t.length;a++){var o=t[a];r.setTransform.apply(r,o.transform);r.translate(o.x,o.y);o.addToPath(r,o.fontSize)}r.restore();r.clip();r.beginPath();delete this.pendingTextPaths}else r.beginPath()}},{key:"setCharSpacing",value:function setCharSpacing(t){this.current.charSpacing=t}},{key:"setWordSpacing",value:function setWordSpacing(t){this.current.wordSpacing=t}},{key:"setHScale",value:function setHScale(t){this.current.textHScale=t/100}},{key:"setLeading",value:function setLeading(t){this.current.leading=-t}},{key:"setFont",value:function setFont(t,r){var a=this.commonObjs.get(t),i=this.current;if(!a)throw new Error("Can't find font for ".concat(t));i.fontMatrix=a.fontMatrix||o.FONT_IDENTITY_MATRIX;0!==i.fontMatrix[0]&&0!==i.fontMatrix[3]||(0,o.warn)("Invalid font matrix for font "+t);if(r<0){r=-r;i.fontDirection=-1}else i.fontDirection=1;this.current.font=a;this.current.fontSize=r;if(!a.isType3Font){var l=a.loadedName||"sans-serif",u="normal";a.black?u="900":a.bold&&(u="bold");var c=a.italic?"italic":"normal",d='"'.concat(l,'", ').concat(a.fallbackName),h=r;r<16?h=16:r>100&&(h=100);this.current.fontSizeScale=r/h;this.ctx.font="".concat(c," ").concat(u," ").concat(h,"px ").concat(d)}}},{key:"setTextRenderingMode",value:function setTextRenderingMode(t){this.current.textRenderingMode=t}},{key:"setTextRise",value:function setTextRise(t){this.current.textRise=t}},{key:"moveText",value:function moveText(t,r){this.current.x=this.current.lineX+=t;this.current.y=this.current.lineY+=r}},{key:"setLeadingMoveText",value:function setLeadingMoveText(t,r){this.setLeading(-r);this.moveText(t,r)}},{key:"setTextMatrix",value:function setTextMatrix(t,r,a,o,i,l){this.current.textMatrix=[t,r,a,o,i,l];this.current.textMatrixScale=Math.hypot(t,r);this.current.x=this.current.lineX=0;this.current.y=this.current.lineY=0}},{key:"nextLine",value:function nextLine(){this.moveText(0,this.current.leading)}},{key:"paintChar",value:function paintChar(t,r,a,i,l){var u,c=this.ctx,d=this.current,h=d.font,p=d.textRenderingMode,m=d.fontSize/d.fontSizeScale,y=p&o.TextRenderingMode.FILL_STROKE_MASK,v=!!(p&o.TextRenderingMode.ADD_TO_PATH_FLAG),g=d.patternFill&&!h.missingFile;(h.disableFontFace||v||g)&&(u=h.getPathGenerator(this.commonObjs,t));if(h.disableFontFace||g){c.save();c.translate(r,a);c.beginPath();u(c,m);i&&c.setTransform.apply(c,i);y!==o.TextRenderingMode.FILL&&y!==o.TextRenderingMode.FILL_STROKE||c.fill();if(y===o.TextRenderingMode.STROKE||y===o.TextRenderingMode.FILL_STROKE){if(l){c.resetTransform();c.lineWidth=Math.round(this._combinedScaleFactor)}c.stroke()}c.restore()}else{y!==o.TextRenderingMode.FILL&&y!==o.TextRenderingMode.FILL_STROKE||c.fillText(t,r,a);if(y===o.TextRenderingMode.STROKE||y===o.TextRenderingMode.FILL_STROKE)if(l){c.save();c.moveTo(r,a);c.resetTransform();c.lineWidth=Math.round(this._combinedScaleFactor);c.strokeText(t,0,0);c.restore()}else c.strokeText(t,r,a)}if(v){(this.pendingTextPaths||(this.pendingTextPaths=[])).push({transform:c.mozCurrentTransform,x:r,y:a,fontSize:m,addToPath:u})}}},{key:"isFontSubpixelAAEnabled",get:function get(){var t=this.cachedCanvases.getCanvas("isFontSubpixelAAEnabled",10,10).context;t.scale(1.5,1);t.fillText("I",0,10);for(var r=t.getImageData(0,0,10,10).data,a=!1,i=3;i<r.length;i+=4)if(r[i]>0&&r[i]<255){a=!0;break}return(0,o.shadow)(this,"isFontSubpixelAAEnabled",a)}},{key:"showText",value:function showText(t){var r=this.current,a=r.font;if(a.isType3Font)return this.showType3Text(t);var i=r.fontSize;if(0!==i){var l,u=this.ctx,c=r.fontSizeScale,d=r.charSpacing,h=r.wordSpacing,p=r.fontDirection,m=r.textHScale*p,y=t.length,v=a.vertical,g=v?1:-1,b=a.defaultVMetrics,_=i*r.fontMatrix[0],S=r.textRenderingMode===o.TextRenderingMode.FILL&&!a.disableFontFace&&!r.patternFill;u.save();if(r.patternFill){u.save();var A=r.fillColor.getPattern(u,this,u.mozCurrentTransformInverse);l=u.mozCurrentTransform;u.restore();u.fillStyle=A}u.transform.apply(u,r.textMatrix);u.translate(r.x,r.y+r.textRise);p>0?u.scale(m,-1):u.scale(m,1);var C=r.lineWidth,k=!1,R=r.textMatrixScale;if(0===R||0===C){var w=r.textRenderingMode&o.TextRenderingMode.FILL_STROKE_MASK;if(w===o.TextRenderingMode.STROKE||w===o.TextRenderingMode.FILL_STROKE){this._cachedGetSinglePixelWidth=null;k=(C=this.getSinglePixelWidth())<0}}else C/=R;if(1!==c){u.scale(c,c);C/=c}u.lineWidth=C;var P,x=0;for(P=0;P<y;++P){var T=t[P];if((0,o.isNum)(T))x+=g*T*i/1e3;else{var E=!1,O=(T.isSpace?h:0)+d,I=T.fontChar,D=T.accent,M=void 0,j=void 0,L=T.width;if(v){var W=T.vmetric||b,B=-(T.vmetric?W[1]:.5*L)*_,N=W[2]*_;L=W?-W[0]:L;M=B/c;j=(x+N)/c}else{M=x/c;j=0}if(a.remeasure&&L>0){var q=1e3*u.measureText(I).width/i*c;if(L<q&&this.isFontSubpixelAAEnabled){var U=L/q;E=!0;u.save();u.scale(U,1);M/=U}else L!==q&&(M+=(L-q)/2e3*i/c)}if(this.contentVisible&&(T.isInFont||a.missingFile))if(S&&!D)u.fillText(I,M,j);else{this.paintChar(I,M,j,l,k);if(D){var G=M+i*D.offset.x/c,H=j-i*D.offset.y/c;this.paintChar(D.fontChar,G,H,l,k)}}x+=v?L*_-O*p:L*_+O*p;E&&u.restore()}}v?r.y-=x:r.x+=x*m;u.restore()}}},{key:"showType3Text",value:function showType3Text(t){var r,a,i,l,u=this.ctx,c=this.current,d=c.font,h=c.fontSize,p=c.fontDirection,m=d.vertical?1:-1,y=c.charSpacing,v=c.wordSpacing,g=c.textHScale*p,b=c.fontMatrix||o.FONT_IDENTITY_MATRIX,_=t.length;if(!(c.textRenderingMode===o.TextRenderingMode.INVISIBLE)&&0!==h){this._cachedGetSinglePixelWidth=null;u.save();u.transform.apply(u,c.textMatrix);u.translate(c.x,c.y);u.scale(g,p);for(r=0;r<_;++r){a=t[r];if((0,o.isNum)(a)){l=m*a*h/1e3;this.ctx.translate(l,0);c.x+=l*g}else{var S=(a.isSpace?v:0)+y,A=d.charProcOperatorList[a.operatorListId];if(A){if(this.contentVisible){this.processingType3=a;this.save();u.scale(h,h);u.transform.apply(u,b);this.executeOperatorList(A);this.restore()}i=o.Util.applyTransform([a.width,0],b)[0]*h+S;u.translate(i,0);c.x+=i*g}else(0,o.warn)('Type3 character "'.concat(a.operatorListId,'" is not available.'))}}u.restore();this.processingType3=null}}},{key:"setCharWidth",value:function setCharWidth(t,r){}},{key:"setCharWidthAndBounds",value:function setCharWidthAndBounds(t,r,a,o,i,l){this.ctx.rect(a,o,i-a,l-o);this.clip();this.endPath()}},{key:"getColorN_Pattern",value:function getColorN_Pattern(t){var r,a=this;if("TilingPattern"===t[0]){var o=t[1],l=this.baseTransform||this.ctx.mozCurrentTransform.slice(),u={createCanvasGraphics:function createCanvasGraphics(t){return new CanvasGraphics(t,a.commonObjs,a.objs,a.canvasFactory)}};r=new i.TilingPattern(t,o,this.ctx,u,l)}else r=this._getPattern(t[1],t[2]);return r}},{key:"setStrokeColorN",value:function setStrokeColorN(){this.current.strokeColor=this.getColorN_Pattern(arguments)}},{key:"setFillColorN",value:function setFillColorN(){this.current.fillColor=this.getColorN_Pattern(arguments);this.current.patternFill=!0}},{key:"setStrokeRGBColor",value:function setStrokeRGBColor(t,r,a){var i=o.Util.makeHexColor(t,r,a);this.ctx.strokeStyle=i;this.current.strokeColor=i}},{key:"setFillRGBColor",value:function setFillRGBColor(t,r,a){var i=o.Util.makeHexColor(t,r,a);this.ctx.fillStyle=i;this.current.fillColor=i;this.current.patternFill=!1}},{key:"_getPattern",value:function _getPattern(t){var r,a=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null;if(this.cachedPatterns.has(t))r=this.cachedPatterns.get(t);else{r=(0,i.getShadingPattern)(this.objs.get(t),this.cachedCanvasPatterns);this.cachedPatterns.set(t,r)}a&&(r.matrix=a);return r}},{key:"shadingFill",value:function shadingFill(t){if(this.contentVisible){var r=this.ctx;this.save();var a=this._getPattern(t);r.fillStyle=a.getPattern(r,this,r.mozCurrentTransformInverse,!0);var i=r.mozCurrentTransformInverse;if(i){var l=r.canvas,u=l.width,c=l.height,d=o.Util.applyTransform([0,0],i),h=o.Util.applyTransform([0,c],i),p=o.Util.applyTransform([u,0],i),m=o.Util.applyTransform([u,c],i),y=Math.min(d[0],h[0],p[0],m[0]),v=Math.min(d[1],h[1],p[1],m[1]),g=Math.max(d[0],h[0],p[0],m[0]),b=Math.max(d[1],h[1],p[1],m[1]);this.ctx.fillRect(y,v,g-y,b-v)}else this.ctx.fillRect(-1e10,-1e10,2e10,2e10);this.restore()}}},{key:"beginInlineImage",value:function beginInlineImage(){(0,o.unreachable)("Should not call beginInlineImage")}},{key:"beginImageData",value:function beginImageData(){(0,o.unreachable)("Should not call beginImageData")}},{key:"paintFormXObjectBegin",value:function paintFormXObjectBegin(t,r){if(this.contentVisible){this.save();this.baseTransformStack.push(this.baseTransform);Array.isArray(t)&&6===t.length&&this.transform.apply(this,t);this.baseTransform=this.ctx.mozCurrentTransform;if(r){var a=r[2]-r[0],o=r[3]-r[1];this.ctx.rect(r[0],r[1],a,o);this.clip();this.endPath()}}}},{key:"paintFormXObjectEnd",value:function paintFormXObjectEnd(){if(this.contentVisible){this.restore();this.baseTransform=this.baseTransformStack.pop()}}},{key:"beginGroup",value:function beginGroup(t){if(this.contentVisible){this.save();var r=this.ctx;t.isolated||(0,o.info)("TODO: Support non-isolated groups.");t.knockout&&(0,o.warn)("Knockout groups not supported.");var a=r.mozCurrentTransform;t.matrix&&r.transform.apply(r,t.matrix);if(!t.bbox)throw new Error("Bounding box is required.");var i=o.Util.getAxialAlignedBoundingBox(t.bbox,r.mozCurrentTransform),l=[0,0,r.canvas.width,r.canvas.height];i=o.Util.intersect(i,l)||[0,0,0,0];var c=Math.floor(i[0]),d=Math.floor(i[1]),h=Math.max(Math.ceil(i[2])-c,1),p=Math.max(Math.ceil(i[3])-d,1),m=1,y=1;if(h>u){m=h/u;h=u}if(p>u){y=p/u;p=u}var v="groupAt"+this.groupLevel;t.smask&&(v+="_smask_"+this.smaskCounter++%2);var g=this.cachedCanvases.getCanvas(v,h,p,!0),b=g.context;b.scale(1/m,1/y);b.translate(-c,-d);b.transform.apply(b,a);if(t.smask)this.smaskStack.push({canvas:g.canvas,context:b,offsetX:c,offsetY:d,scaleX:m,scaleY:y,subtype:t.smask.subtype,backdrop:t.smask.backdrop,transferMap:t.smask.transferMap||null,startTransformInverse:null});else{r.setTransform(1,0,0,1,0,0);r.translate(c,d);r.scale(m,y)}copyCtxState(r,b);this.ctx=b;this.setGState([["BM","source-over"],["ca",1],["CA",1]]);this.groupStack.push(r);this.groupLevel++;this.current.activeSMask=null}}},{key:"endGroup",value:function endGroup(t){if(this.contentVisible){this.groupLevel--;var r=this.ctx;this.ctx=this.groupStack.pop();this.ctx.imageSmoothingEnabled=!1;t.smask?this.tempSMask=this.smaskStack.pop():this.ctx.drawImage(r.canvas,0,0);this.restore()}}},{key:"beginAnnotations",value:function beginAnnotations(){this.save();this.baseTransform&&this.ctx.setTransform.apply(this.ctx,this.baseTransform)}},{key:"endAnnotations",value:function endAnnotations(){this.restore()}},{key:"beginAnnotation",value:function beginAnnotation(t,r,a,o){this.save();resetCtxToDefault(this.ctx);this.current=new p;if(Array.isArray(r)&&4===r.length){var i=r[2]-r[0],l=r[3]-r[1];this.ctx.rect(r[0],r[1],i,l);this.clip();this.endPath()}this.transform.apply(this,a);this.transform.apply(this,o)}},{key:"endAnnotation",value:function endAnnotation(){this.restore()}},{key:"paintImageMaskXObject",value:function paintImageMaskXObject(t){if(this.contentVisible){var r=this.ctx,a=t.width,o=t.height,i=this.processingType3;i&&void 0===i.compiled&&(i.compiled=a<=1e3&&o<=1e3?function compileType3Glyph(t){var r,a,o,i,l=new Uint8Array([0,2,4,0,1,0,5,4,8,10,0,8,0,2,1,0]),u=t.width,c=t.height,d=u+1,h=new Uint8Array(d*(c+1)),p=u+7&-8,m=t.data,y=new Uint8Array(p*c),v=0;for(r=0,a=m.length;r<a;r++)for(var g=m[r],b=128;b>0;){y[v++]=g&b?0:255;b>>=1}var _=0;if(0!==y[v=0]){h[0]=1;++_}for(o=1;o<u;o++){if(y[v]!==y[v+1]){h[o]=y[v]?2:1;++_}v++}if(0!==y[v]){h[o]=2;++_}for(r=1;r<c;r++){i=r*d;if(y[(v=r*p)-p]!==y[v]){h[i]=y[v]?1:8;++_}var S=(y[v]?4:0)+(y[v-p]?8:0);for(o=1;o<u;o++){if(l[S=(S>>2)+(y[v+1]?4:0)+(y[v-p+1]?8:0)]){h[i+o]=l[S];++_}v++}if(y[v-p]!==y[v]){h[i+o]=y[v]?2:4;++_}if(_>1e3)return null}i=r*d;if(0!==y[v=p*(c-1)]){h[i]=8;++_}for(o=1;o<u;o++){if(y[v]!==y[v+1]){h[i+o]=y[v]?4:8;++_}v++}if(0!==y[v]){h[i+o]=4;++_}if(_>1e3)return null;var A=new Int32Array([0,d,-1,0,-d,0,0,0,1]),C=[];for(r=0;_&&r<=c;r++){for(var k=r*d,R=k+u;k<R&&!h[k];)k++;if(k!==R){var w=[k%d,r],P=k,x=h[k];do{var T=A[x];do{k+=T}while(!h[k]);var E=h[k];if(5!==E&&10!==E){x=E;h[k]=0}else{x=E&51*x>>4;h[k]&=x>>2|x<<2}w.push(k%d,k/d|0);h[k]||--_}while(P!==k);C.push(w);--r}}return function drawOutline(t){t.save();t.scale(1/u,-1/c);t.translate(0,-c);t.beginPath();for(var r=0,a=C.length;r<a;r++){var o=C[r];t.moveTo(o[0],o[1]);for(var i=2,l=o.length;i<l;i+=2)t.lineTo(o[i],o[i+1])}t.fill();t.beginPath();t.restore()}}({data:t.data,width:a,height:o}):null);if(null!=i&&i.compiled)i.compiled(r);else{var l=this._createMaskCanvas(t),u=l.canvas;r.save();r.setTransform(1,0,0,1,0,0);r.drawImage(u,l.offsetX,l.offsetY);r.restore()}}}},{key:"paintImageMaskXObjectRepeat",value:function paintImageMaskXObjectRepeat(t,r){var a=arguments.length>2&&void 0!==arguments[2]?arguments[2]:0,i=arguments.length>3&&void 0!==arguments[3]?arguments[3]:0,l=arguments.length>4?arguments[4]:void 0,u=arguments.length>5?arguments[5]:void 0;if(this.contentVisible){var c=this.ctx;c.save();var d=c.mozCurrentTransform;c.transform(r,a,i,l,0,0);var h=this._createMaskCanvas(t);c.setTransform(1,0,0,1,0,0);for(var p=0,m=u.length;p<m;p+=2){var y=o.Util.transform(d,[r,a,i,l,u[p],u[p+1]]),v=o.Util.applyTransform([0,0],y),g=_slicedToArray(v,2),b=g[0],_=g[1];c.drawImage(h.canvas,b,_)}c.restore()}}},{key:"paintImageMaskXObjectGroup",value:function paintImageMaskXObjectGroup(t){if(this.contentVisible)for(var r=this.ctx,a=this.current.fillColor,o=this.current.patternFill,i=0,l=t.length;i<l;i++){var u=t[i],c=u.width,d=u.height,h=this.cachedCanvases.getCanvas("maskCanvas",c,d),p=h.context;p.save();putBinaryImageMask(p,u);p.globalCompositeOperation="source-in";p.fillStyle=o?a.getPattern(p,this,r.mozCurrentTransformInverse,!1):a;p.fillRect(0,0,c,d);p.restore();r.save();r.transform.apply(r,u.transform);r.scale(1,-1);r.drawImage(h.canvas,0,0,c,d,0,-1,1,1);r.restore()}}},{key:"paintImageXObject",value:function paintImageXObject(t){if(this.contentVisible){var r=t.startsWith("g_")?this.commonObjs.get(t):this.objs.get(t);r?this.paintInlineImageXObject(r):(0,o.warn)("Dependent image isn't ready yet")}}},{key:"paintImageXObjectRepeat",value:function paintImageXObjectRepeat(t,r,a,i){if(this.contentVisible){var l=t.startsWith("g_")?this.commonObjs.get(t):this.objs.get(t);if(l){for(var u=l.width,c=l.height,d=[],h=0,p=i.length;h<p;h+=2)d.push({transform:[r,0,0,a,i[h],i[h+1]],x:0,y:0,w:u,h:c});this.paintInlineImageXObjectGroup(l,d)}else(0,o.warn)("Dependent image isn't ready yet")}}},{key:"paintInlineImageXObject",value:function paintInlineImageXObject(t){if(this.contentVisible){var r,a=t.width,o=t.height,i=this.ctx;this.save();i.scale(1/a,-1/o);if("function"==typeof HTMLElement&&t instanceof HTMLElement||!t.data)r=t;else{var l=this.cachedCanvases.getCanvas("inlineImage",a,o);putBinaryImageData(l.context,t,this.current.transferMaps);r=l.canvas}var u=this._scaleImage(r,i.mozCurrentTransformInverse);i.imageSmoothingEnabled=getImageSmoothingEnabled(i.mozCurrentTransform,t.interpolate);i.drawImage(u.img,0,0,u.paintWidth,u.paintHeight,0,-o,a,o);if(this.imageLayer){var c=this.getCanvasPosition(0,-o);this.imageLayer.appendImage({imgData:t,left:c[0],top:c[1],width:a/i.mozCurrentTransformInverse[0],height:o/i.mozCurrentTransformInverse[3]})}this.restore()}}},{key:"paintInlineImageXObjectGroup",value:function paintInlineImageXObjectGroup(t,r){if(this.contentVisible){var a=this.ctx,o=t.width,i=t.height,l=this.cachedCanvases.getCanvas("inlineImage",o,i);putBinaryImageData(l.context,t,this.current.transferMaps);for(var u=0,c=r.length;u<c;u++){var d=r[u];a.save();a.transform.apply(a,d.transform);a.scale(1,-1);a.drawImage(l.canvas,d.x,d.y,d.w,d.h,0,-1,1,1);if(this.imageLayer){var h=this.getCanvasPosition(d.x,d.y);this.imageLayer.appendImage({imgData:t,left:h[0],top:h[1],width:o,height:i})}a.restore()}}}},{key:"paintSolidColorImageMask",value:function paintSolidColorImageMask(){this.contentVisible&&this.ctx.fillRect(0,0,1,1)}},{key:"markPoint",value:function markPoint(t){}},{key:"markPointProps",value:function markPointProps(t,r){}},{key:"beginMarkedContent",value:function beginMarkedContent(t){this.markedContentStack.push({visible:!0})}},{key:"beginMarkedContentProps",value:function beginMarkedContentProps(t,r){"OC"===t?this.markedContentStack.push({visible:this.optionalContentConfig.isVisible(r)}):this.markedContentStack.push({visible:!0});this.contentVisible=this.isContentVisible()}},{key:"endMarkedContent",value:function endMarkedContent(){this.markedContentStack.pop();this.contentVisible=this.isContentVisible()}},{key:"beginCompat",value:function beginCompat(){}},{key:"endCompat",value:function endCompat(){}},{key:"consumePath",value:function consumePath(){var t=this.ctx;if(this.pendingClip){this.pendingClip===g?t.clip("evenodd"):t.clip();this.pendingClip=null}t.beginPath()}},{key:"getSinglePixelWidth",value:function getSinglePixelWidth(){if(null===this._cachedGetSinglePixelWidth){var t=this.ctx.mozCurrentTransform,r=Math.abs(t[0]*t[3]-t[2]*t[1]),a=Math.pow(t[0],2)+Math.pow(t[2],2),o=Math.pow(t[1],2)+Math.pow(t[3],2),i=Math.sqrt(Math.max(a,o))/r;a!==o&&this._combinedScaleFactor*i>1?this._cachedGetSinglePixelWidth=-this._combinedScaleFactor*i:r>Number.EPSILON?this._cachedGetSinglePixelWidth=i:this._cachedGetSinglePixelWidth=1}return this._cachedGetSinglePixelWidth}},{key:"getCanvasPosition",value:function getCanvasPosition(t,r){var a=this.ctx.mozCurrentTransform;return[a[0]*t+a[2]*r+a[4],a[1]*t+a[3]*r+a[5]]}},{key:"isContentVisible",value:function isContentVisible(){for(var t=this.markedContentStack.length-1;t>=0;t--)if(!this.markedContentStack[t].visible)return!1;return!0}}]);return CanvasGraphics}();r.CanvasGraphics=b;for(var _ in o.OPS)void 0!==b.prototype[_]&&(b.prototype[o.OPS[_]]=b.prototype[_])},(t,r,a)=>{"use strict";function _typeof(t){_typeof="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function _typeof(t){return typeof t}:function _typeof(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t};return _typeof(t)}Object.defineProperty(r,"__esModule",{value:!0});r.getShadingPattern=function getShadingPattern(t,r){switch(t[0]){case"RadialAxial":return new l(t,r);case"Mesh":return new u(t);case"Dummy":return new c}throw new Error("Unknown IR type: ".concat(t[0]))};r.TilingPattern=void 0;var o=a(4);function _createForOfIteratorHelper(t,r){var a="undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(!a){if(Array.isArray(t)||(a=function _unsupportedIterableToArray(t,r){if(!t)return;if("string"==typeof t)return _arrayLikeToArray(t,r);var a=Object.prototype.toString.call(t).slice(8,-1);"Object"===a&&t.constructor&&(a=t.constructor.name);if("Map"===a||"Set"===a)return Array.from(t);if("Arguments"===a||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(a))return _arrayLikeToArray(t,r)}(t))||r&&t&&"number"==typeof t.length){a&&(t=a);var o=0,i=function F(){};return{s:i,n:function n(){return o>=t.length?{done:!0}:{done:!1,value:t[o++]}},e:function e(t){throw t},f:i}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var l,u=!0,c=!1;return{s:function s(){a=a.call(t)},n:function n(){var t=a.next();u=t.done;return t},e:function e(t){c=!0;l=t},f:function f(){try{u||null==a.return||a.return()}finally{if(c)throw l}}}}function _arrayLikeToArray(t,r){(null==r||r>t.length)&&(r=t.length);for(var a=0,o=new Array(r);a<r;a++)o[a]=t[a];return o}function _inherits(t,r){if("function"!=typeof r&&null!==r)throw new TypeError("Super expression must either be null or a function");t.prototype=Object.create(r&&r.prototype,{constructor:{value:t,writable:!0,configurable:!0}});r&&_setPrototypeOf(t,r)}function _setPrototypeOf(t,r){_setPrototypeOf=Object.setPrototypeOf||function _setPrototypeOf(t,r){t.__proto__=r;return t};return _setPrototypeOf(t,r)}function _createSuper(t){var r=function _isNativeReflectConstruct(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){})));return!0}catch(t){return!1}}();return function _createSuperInternal(){var a,o=_getPrototypeOf(t);if(r){var i=_getPrototypeOf(this).constructor;a=Reflect.construct(o,arguments,i)}else a=o.apply(this,arguments);return _possibleConstructorReturn(this,a)}}function _possibleConstructorReturn(t,r){if(r&&("object"===_typeof(r)||"function"==typeof r))return r;if(void 0!==r)throw new TypeError("Derived constructors may only return object or undefined");return function _assertThisInitialized(t){if(void 0===t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return t}(t)}function _getPrototypeOf(t){_getPrototypeOf=Object.setPrototypeOf?Object.getPrototypeOf:function _getPrototypeOf(t){return t.__proto__||Object.getPrototypeOf(t)};return _getPrototypeOf(t)}function _classCallCheck(t,r){if(!(t instanceof r))throw new TypeError("Cannot call a class as a function")}function _defineProperties(t,r){for(var a=0;a<r.length;a++){var o=r[a];o.enumerable=o.enumerable||!1;o.configurable=!0;"value"in o&&(o.writable=!0);Object.defineProperty(t,o.key,o)}}function _createClass(t,r,a){r&&_defineProperties(t.prototype,r);a&&_defineProperties(t,a);return t}function applyBoundingBox(t,r){if(r&&"undefined"!=typeof Path2D){var a=r[2]-r[0],o=r[3]-r[1],i=new Path2D;i.rect(r[0],r[1],a,o);t.clip(i)}}var i=function(){function BaseShadingPattern(){_classCallCheck(this,BaseShadingPattern);this.constructor===BaseShadingPattern&&(0,o.unreachable)("Cannot initialize BaseShadingPattern.")}_createClass(BaseShadingPattern,[{key:"getPattern",value:function getPattern(){(0,o.unreachable)("Abstract method `getPattern` called.")}}]);return BaseShadingPattern}(),l=function(t){_inherits(RadialAxialShadingPattern,t);var r=_createSuper(RadialAxialShadingPattern);function RadialAxialShadingPattern(t,a){var o;_classCallCheck(this,RadialAxialShadingPattern);(o=r.call(this))._type=t[1];o._bbox=t[2];o._colorStops=t[3];o._p0=t[4];o._p1=t[5];o._r0=t[6];o._r1=t[7];o.matrix=null;o.cachedCanvasPatterns=a;return o}_createClass(RadialAxialShadingPattern,[{key:"_createGradient",value:function _createGradient(t){var r;"axial"===this._type?r=t.createLinearGradient(this._p0[0],this._p0[1],this._p1[0],this._p1[1]):"radial"===this._type&&(r=t.createRadialGradient(this._p0[0],this._p0[1],this._r0,this._p1[0],this._p1[1],this._r1));var a,o=_createForOfIteratorHelper(this._colorStops);try{for(o.s();!(a=o.n()).done;){var i=a.value;r.addColorStop(i[0],i[1])}}catch(t){o.e(t)}finally{o.f()}return r}},{key:"getPattern",value:function getPattern(t,r,a){var i,l=arguments.length>3&&void 0!==arguments[3]&&arguments[3];if(l){applyBoundingBox(t,this._bbox);i=this._createGradient(t)}else if(this.cachedCanvasPatterns.has(this))i=this.cachedCanvasPatterns.get(this);else{var u=r.cachedCanvases.getCanvas("pattern",r.ctx.canvas.width,r.ctx.canvas.height,!0),c=u.context;c.clearRect(0,0,c.canvas.width,c.canvas.height);c.beginPath();c.rect(0,0,c.canvas.width,c.canvas.height);c.setTransform.apply(c,r.baseTransform);this.matrix&&c.transform.apply(c,this.matrix);applyBoundingBox(c,this._bbox);c.fillStyle=this._createGradient(c);c.fill();i=t.createPattern(u.canvas,"repeat");this.cachedCanvasPatterns.set(this,i)}if(!l){var d=new DOMMatrix(a);try{i.setTransform(d)}catch(t){(0,o.warn)('RadialAxialShadingPattern.getPattern: "'.concat(null==t?void 0:t.message,'".'))}}return i}}]);return RadialAxialShadingPattern}(i);function drawTriangle(t,r,a,o,i,l,u,c){var d,h=r.coords,p=r.colors,m=t.data,y=4*t.width;if(h[a+1]>h[o+1]){d=a;a=o;o=d;d=l;l=u;u=d}if(h[o+1]>h[i+1]){d=o;o=i;i=d;d=u;u=c;c=d}if(h[a+1]>h[o+1]){d=a;a=o;o=d;d=l;l=u;u=d}var v=(h[a]+r.offsetX)*r.scaleX,g=(h[a+1]+r.offsetY)*r.scaleY,b=(h[o]+r.offsetX)*r.scaleX,_=(h[o+1]+r.offsetY)*r.scaleY,S=(h[i]+r.offsetX)*r.scaleX,A=(h[i+1]+r.offsetY)*r.scaleY;if(!(g>=A))for(var C,k,R,w,P,x,T,E,O=p[l],I=p[l+1],D=p[l+2],M=p[u],j=p[u+1],L=p[u+2],W=p[c],B=p[c+1],N=p[c+2],q=Math.round(g),U=Math.round(A),G=q;G<=U;G++){if(G<_){var H=void 0;C=v-(v-b)*(H=G<g?0:(g-G)/(g-_));k=O-(O-M)*H;R=I-(I-j)*H;w=D-(D-L)*H}else{var z=void 0;C=b-(b-S)*(z=G>A?1:_===A?0:(_-G)/(_-A));k=M-(M-W)*z;R=j-(j-B)*z;w=L-(L-N)*z}var V=void 0;P=v-(v-S)*(V=G<g?0:G>A?1:(g-G)/(g-A));x=O-(O-W)*V;T=I-(I-B)*V;E=D-(D-N)*V;for(var Y=Math.round(Math.min(C,P)),X=Math.round(Math.max(C,P)),Q=y*G+4*Y,K=Y;K<=X;K++){(V=(C-K)/(C-P))<0?V=0:V>1&&(V=1);m[Q++]=k-(k-x)*V|0;m[Q++]=R-(R-T)*V|0;m[Q++]=w-(w-E)*V|0;m[Q++]=255}}}function drawFigure(t,r,a){var o,i,l=r.coords,u=r.colors;switch(r.type){case"lattice":var c=r.verticesPerRow,d=Math.floor(l.length/c)-1,h=c-1;for(o=0;o<d;o++)for(var p=o*c,m=0;m<h;m++,p++){drawTriangle(t,a,l[p],l[p+1],l[p+c],u[p],u[p+1],u[p+c]);drawTriangle(t,a,l[p+c+1],l[p+1],l[p+c],u[p+c+1],u[p+1],u[p+c])}break;case"triangles":for(o=0,i=l.length;o<i;o+=3)drawTriangle(t,a,l[o],l[o+1],l[o+2],u[o],u[o+1],u[o+2]);break;default:throw new Error("illegal figure")}}var u=function(t){_inherits(MeshShadingPattern,t);var r=_createSuper(MeshShadingPattern);function MeshShadingPattern(t){var a;_classCallCheck(this,MeshShadingPattern);(a=r.call(this))._coords=t[2];a._colors=t[3];a._figures=t[4];a._bounds=t[5];a._bbox=t[7];a._background=t[8];a.matrix=null;return a}_createClass(MeshShadingPattern,[{key:"_createMeshCanvas",value:function _createMeshCanvas(t,r,a){var o=Math.floor(this._bounds[0]),i=Math.floor(this._bounds[1]),l=Math.ceil(this._bounds[2])-o,u=Math.ceil(this._bounds[3])-i,c=Math.min(Math.ceil(Math.abs(l*t[0]*1.1)),3e3),d=Math.min(Math.ceil(Math.abs(u*t[1]*1.1)),3e3),h=l/c,p=u/d,m={coords:this._coords,colors:this._colors,offsetX:-o,offsetY:-i,scaleX:1/h,scaleY:1/p},y=c+4,v=d+4,g=a.getCanvas("mesh",y,v,!1),b=g.context,_=b.createImageData(c,d);if(r)for(var S=_.data,A=0,C=S.length;A<C;A+=4){S[A]=r[0];S[A+1]=r[1];S[A+2]=r[2];S[A+3]=255}var k,R=_createForOfIteratorHelper(this._figures);try{for(R.s();!(k=R.n()).done;){drawFigure(_,k.value,m)}}catch(t){R.e(t)}finally{R.f()}b.putImageData(_,2,2);return{canvas:g.canvas,offsetX:o-2*h,offsetY:i-2*p,scaleX:h,scaleY:p}}},{key:"getPattern",value:function getPattern(t,r,a){var i,l=arguments.length>3&&void 0!==arguments[3]&&arguments[3];applyBoundingBox(t,this._bbox);if(l)i=o.Util.singularValueDecompose2dScale(t.mozCurrentTransform);else{i=o.Util.singularValueDecompose2dScale(r.baseTransform);if(this.matrix){var u=o.Util.singularValueDecompose2dScale(this.matrix);i=[i[0]*u[0],i[1]*u[1]]}}var c=this._createMeshCanvas(i,l?null:this._background,r.cachedCanvases);if(!l){t.setTransform.apply(t,r.baseTransform);this.matrix&&t.transform.apply(t,this.matrix)}t.translate(c.offsetX,c.offsetY);t.scale(c.scaleX,c.scaleY);return t.createPattern(c.canvas,"no-repeat")}}]);return MeshShadingPattern}(i),c=function(t){_inherits(DummyShadingPattern,t);var r=_createSuper(DummyShadingPattern);function DummyShadingPattern(){_classCallCheck(this,DummyShadingPattern);return r.apply(this,arguments)}_createClass(DummyShadingPattern,[{key:"getPattern",value:function getPattern(){return"hotpink"}}]);return DummyShadingPattern}(i);var d=1,h=2,p=function(){function TilingPattern(t,r,a,o,i){_classCallCheck(this,TilingPattern);this.operatorList=t[2];this.matrix=t[3]||[1,0,0,1,0,0];this.bbox=t[4];this.xstep=t[5];this.ystep=t[6];this.paintType=t[7];this.tilingType=t[8];this.color=r;this.ctx=a;this.canvasGraphicsFactory=o;this.baseTransform=i}_createClass(TilingPattern,[{key:"createPatternCanvas",value:function createPatternCanvas(t){var r=this.operatorList,a=this.bbox,i=this.xstep,l=this.ystep,u=this.paintType,c=this.tilingType,d=this.color,h=this.canvasGraphicsFactory;(0,o.info)("TilingType: "+c);var p=a[0],m=a[1],y=a[2],v=a[3],g=o.Util.singularValueDecompose2dScale(this.matrix),b=o.Util.singularValueDecompose2dScale(this.baseTransform),_=[g[0]*b[0],g[1]*b[1]],S=this.getSizeAndScale(i,this.ctx.canvas.width,_[0]),A=this.getSizeAndScale(l,this.ctx.canvas.height,_[1]),C=t.cachedCanvases.getCanvas("pattern",S.size,A.size,!0),k=C.context,R=h.createCanvasGraphics(k);R.groupLevel=t.groupLevel;this.setFillAndStrokeStyleToContext(R,u,d);var w=p,P=m,x=y,T=v;if(p<0){w=0;x+=Math.abs(p)}if(m<0){P=0;T+=Math.abs(m)}k.translate(-S.scale*w,-A.scale*P);R.transform(S.scale,0,0,A.scale,0,0);this.clipBbox(R,w,P,x,T);R.baseTransform=R.ctx.mozCurrentTransform.slice();R.executeOperatorList(r);R.endDrawing();return{canvas:C.canvas,scaleX:S.scale,scaleY:A.scale,offsetX:w,offsetY:P}}},{key:"getSizeAndScale",value:function getSizeAndScale(t,r,a){t=Math.abs(t);var o=Math.max(TilingPattern.MAX_PATTERN_SIZE,r),i=Math.ceil(t*a);i>=o?i=o:a=i/t;return{scale:a,size:i}}},{key:"clipBbox",value:function clipBbox(t,r,a,o,i){var l=o-r,u=i-a;t.ctx.rect(r,a,l,u);t.clip();t.endPath()}},{key:"setFillAndStrokeStyleToContext",value:function setFillAndStrokeStyleToContext(t,r,a){var i=t.ctx,l=t.current;switch(r){case d:var u=this.ctx;i.fillStyle=u.fillStyle;i.strokeStyle=u.strokeStyle;l.fillColor=u.fillStyle;l.strokeColor=u.strokeStyle;break;case h:var c=o.Util.makeHexColor(a[0],a[1],a[2]);i.fillStyle=c;i.strokeStyle=c;l.fillColor=c;l.strokeColor=c;break;default:throw new o.FormatError("Unsupported paint type: ".concat(r))}}},{key:"getPattern",value:function getPattern(t,r,a){var i=arguments.length>3&&void 0!==arguments[3]&&arguments[3],l=a;if(!i){l=o.Util.transform(l,r.baseTransform);this.matrix&&(l=o.Util.transform(l,this.matrix))}var u=this.createPatternCanvas(r),c=new DOMMatrix(l);c=(c=c.translate(u.offsetX,u.offsetY)).scale(1/u.scaleX,1/u.scaleY);var d=t.createPattern(u.canvas,"repeat");try{d.setTransform(c)}catch(t){(0,o.warn)('TilingPattern.getPattern: "'.concat(null==t?void 0:t.message,'".'))}return d}}],[{key:"MAX_PATTERN_SIZE",get:function get(){return(0,o.shadow)(this,"MAX_PATTERN_SIZE",3e3)}}]);return TilingPattern}();r.TilingPattern=p},(t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});r.GlobalWorkerOptions=void 0;var a=Object.create(null);r.GlobalWorkerOptions=a;a.workerPort=void 0===a.workerPort?null:a.workerPort;a.workerSrc=void 0===a.workerSrc?"":a.workerSrc},(t,r,a)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});r.MessageHandler=void 0;var o=function _interopRequireDefault(t){return t&&t.__esModule?t:{default:t}}(a(2)),i=a(4);function asyncGeneratorStep(t,r,a,o,i,l,u){try{var c=t[l](u),d=c.value}catch(t){a(t);return}c.done?r(d):Promise.resolve(d).then(o,i)}function _defineProperties(t,r){for(var a=0;a<r.length;a++){var o=r[a];o.enumerable=o.enumerable||!1;o.configurable=!0;"value"in o&&(o.writable=!0);Object.defineProperty(t,o.key,o)}}function _typeof(t){_typeof="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function _typeof(t){return typeof t}:function _typeof(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t};return _typeof(t)}var l=1,u=2,c=1,d=2,h=3,p=4,m=5,y=6,v=7,g=8;function wrapReason(t){if(!(t instanceof Error||"object"===_typeof(t)&&null!==t)){(0,i.warn)('wrapReason: Expected "reason" to be a (possibly cloned) Error.');return t}switch(t.name){case"AbortException":return new i.AbortException(t.message);case"MissingPDFException":return new i.MissingPDFException(t.message);case"PasswordException":return new i.PasswordException(t.message,t.code);case"UnexpectedResponseException":return new i.UnexpectedResponseException(t.message,t.status);case"UnknownErrorException":return new i.UnknownErrorException(t.message,t.details);default:return new i.UnknownErrorException(t.message,t.toString())}}var b=function(){function MessageHandler(t,r,a){var o=this;!function _classCallCheck(t,r){if(!(t instanceof r))throw new TypeError("Cannot call a class as a function")}(this,MessageHandler);this.sourceName=t;this.targetName=r;this.comObj=a;this.callbackId=1;this.streamId=1;this.postMessageTransfers=!0;this.streamSinks=Object.create(null);this.streamControllers=Object.create(null);this.callbackCapabilities=Object.create(null);this.actionHandler=Object.create(null);this._onComObjOnMessage=function(t){var r=t.data;if(r.targetName===o.sourceName)if(r.stream)o._processStreamMessage(r);else if(r.callback){var i=r.callbackId,c=o.callbackCapabilities[i];if(!c)throw new Error("Cannot resolve callback ".concat(i));delete o.callbackCapabilities[i];if(r.callback===l)c.resolve(r.data);else{if(r.callback!==u)throw new Error("Unexpected callback case");c.reject(wrapReason(r.reason))}}else{var d=o.actionHandler[r.action];if(!d)throw new Error("Unknown action from worker: ".concat(r.action));if(r.callbackId){var h=o.sourceName,p=r.sourceName;new Promise((function(t){t(d(r.data))})).then((function(t){a.postMessage({sourceName:h,targetName:p,callback:l,callbackId:r.callbackId,data:t})}),(function(t){a.postMessage({sourceName:h,targetName:p,callback:u,callbackId:r.callbackId,reason:wrapReason(t)})}))}else r.streamId?o._createStreamSink(r):d(r.data)}};a.addEventListener("message",this._onComObjOnMessage)}!function _createClass(t,r,a){r&&_defineProperties(t.prototype,r);a&&_defineProperties(t,a);return t}(MessageHandler,[{key:"on",value:function on(t,r){var a=this.actionHandler;if(a[t])throw new Error('There is already an actionName called "'.concat(t,'"'));a[t]=r}},{key:"send",value:function send(t,r,a){this._postMessage({sourceName:this.sourceName,targetName:this.targetName,action:t,data:r},a)}},{key:"sendWithPromise",value:function sendWithPromise(t,r,a){var o=this.callbackId++,l=(0,i.createPromiseCapability)();this.callbackCapabilities[o]=l;try{this._postMessage({sourceName:this.sourceName,targetName:this.targetName,action:t,callbackId:o,data:r},a)}catch(t){l.reject(t)}return l.promise}},{key:"sendWithStream",value:function sendWithStream(t,r,a,o){var l=this,u=this.streamId++,d=this.sourceName,h=this.targetName,p=this.comObj;return new ReadableStream({start:function start(a){var c=(0,i.createPromiseCapability)();l.streamControllers[u]={controller:a,startCall:c,pullCall:null,cancelCall:null,isClosed:!1};l._postMessage({sourceName:d,targetName:h,action:t,streamId:u,data:r,desiredSize:a.desiredSize},o);return c.promise},pull:function pull(t){var r=(0,i.createPromiseCapability)();l.streamControllers[u].pullCall=r;p.postMessage({sourceName:d,targetName:h,stream:y,streamId:u,desiredSize:t.desiredSize});return r.promise},cancel:function cancel(t){(0,i.assert)(t instanceof Error,"cancel must have a valid reason");var r=(0,i.createPromiseCapability)();l.streamControllers[u].cancelCall=r;l.streamControllers[u].isClosed=!0;p.postMessage({sourceName:d,targetName:h,stream:c,streamId:u,reason:wrapReason(t)});return r.promise}},a)}},{key:"_createStreamSink",value:function _createStreamSink(t){var r=t.streamId,a=this.sourceName,o=t.sourceName,l=this.comObj,u=this,c=this.actionHandler[t.action],d={enqueue:function enqueue(t){var l=arguments.length>1&&void 0!==arguments[1]?arguments[1]:1,c=arguments.length>2?arguments[2]:void 0;if(!this.isCancelled){var d=this.desiredSize;this.desiredSize-=l;if(d>0&&this.desiredSize<=0){this.sinkCapability=(0,i.createPromiseCapability)();this.ready=this.sinkCapability.promise}u._postMessage({sourceName:a,targetName:o,stream:p,streamId:r,chunk:t},c)}},close:function close(){if(!this.isCancelled){this.isCancelled=!0;l.postMessage({sourceName:a,targetName:o,stream:h,streamId:r});delete u.streamSinks[r]}},error:function error(t){(0,i.assert)(t instanceof Error,"error must have a valid reason");if(!this.isCancelled){this.isCancelled=!0;l.postMessage({sourceName:a,targetName:o,stream:m,streamId:r,reason:wrapReason(t)})}},sinkCapability:(0,i.createPromiseCapability)(),onPull:null,onCancel:null,isCancelled:!1,desiredSize:t.desiredSize,ready:null};d.sinkCapability.resolve();d.ready=d.sinkCapability.promise;this.streamSinks[r]=d;new Promise((function(r){r(c(t.data,d))})).then((function(){l.postMessage({sourceName:a,targetName:o,stream:g,streamId:r,success:!0})}),(function(t){l.postMessage({sourceName:a,targetName:o,stream:g,streamId:r,reason:wrapReason(t)})}))}},{key:"_processStreamMessage",value:function _processStreamMessage(t){var r=t.streamId,a=this.sourceName,o=t.sourceName,l=this.comObj,u=this.streamControllers[r],b=this.streamSinks[r];switch(t.stream){case g:t.success?u.startCall.resolve():u.startCall.reject(wrapReason(t.reason));break;case v:t.success?u.pullCall.resolve():u.pullCall.reject(wrapReason(t.reason));break;case y:if(!b){l.postMessage({sourceName:a,targetName:o,stream:v,streamId:r,success:!0});break}b.desiredSize<=0&&t.desiredSize>0&&b.sinkCapability.resolve();b.desiredSize=t.desiredSize;new Promise((function(t){t(b.onPull&&b.onPull())})).then((function(){l.postMessage({sourceName:a,targetName:o,stream:v,streamId:r,success:!0})}),(function(t){l.postMessage({sourceName:a,targetName:o,stream:v,streamId:r,reason:wrapReason(t)})}));break;case p:(0,i.assert)(u,"enqueue should have stream controller");if(u.isClosed)break;u.controller.enqueue(t.chunk);break;case h:(0,i.assert)(u,"close should have stream controller");if(u.isClosed)break;u.isClosed=!0;u.controller.close();this._deleteStreamController(u,r);break;case m:(0,i.assert)(u,"error should have stream controller");u.controller.error(wrapReason(t.reason));this._deleteStreamController(u,r);break;case d:t.success?u.cancelCall.resolve():u.cancelCall.reject(wrapReason(t.reason));this._deleteStreamController(u,r);break;case c:if(!b)break;new Promise((function(r){r(b.onCancel&&b.onCancel(wrapReason(t.reason)))})).then((function(){l.postMessage({sourceName:a,targetName:o,stream:d,streamId:r,success:!0})}),(function(t){l.postMessage({sourceName:a,targetName:o,stream:d,streamId:r,reason:wrapReason(t)})}));b.sinkCapability.reject(wrapReason(t.reason));b.isCancelled=!0;delete this.streamSinks[r];break;default:throw new Error("Unexpected stream case")}}},{key:"_deleteStreamController",value:(t=function _asyncToGenerator(t){return function(){var r=this,a=arguments;return new Promise((function(o,i){var l=t.apply(r,a);function _next(t){asyncGeneratorStep(l,o,i,_next,_throw,"next",t)}function _throw(t){asyncGeneratorStep(l,o,i,_next,_throw,"throw",t)}_next(void 0)}))}}(o.default.mark((function _callee(t,r){return o.default.wrap((function _callee$(a){for(;;)switch(a.prev=a.next){case 0:a.next=2;return Promise.allSettled([t.startCall&&t.startCall.promise,t.pullCall&&t.pullCall.promise,t.cancelCall&&t.cancelCall.promise]);case 2:delete this.streamControllers[r];case 3:case"end":return a.stop()}}),_callee,this)}))),function _deleteStreamController(r,a){return t.apply(this,arguments)})},{key:"_postMessage",value:function _postMessage(t,r){r&&this.postMessageTransfers?this.comObj.postMessage(t,r):this.comObj.postMessage(t)}},{key:"destroy",value:function destroy(){this.comObj.removeEventListener("message",this._onComObjOnMessage)}}]);var t;return MessageHandler}();r.MessageHandler=b},(t,r,a)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});r.Metadata=void 0;var o=a(4);function _defineProperties(t,r){for(var a=0;a<r.length;a++){var o=r[a];o.enumerable=o.enumerable||!1;o.configurable=!0;"value"in o&&(o.writable=!0);Object.defineProperty(t,o.key,o)}}var i=function(){function Metadata(t){var r=t.parsedData,a=t.rawData;!function _classCallCheck(t,r){if(!(t instanceof r))throw new TypeError("Cannot call a class as a function")}(this,Metadata);this._metadataMap=r;this._data=a}!function _createClass(t,r,a){r&&_defineProperties(t.prototype,r);a&&_defineProperties(t,a);return t}(Metadata,[{key:"getRaw",value:function getRaw(){return this._data}},{key:"get",value:function get(t){var r;return null!==(r=this._metadataMap.get(t))&&void 0!==r?r:null}},{key:"getAll",value:function getAll(){return(0,o.objectFromMap)(this._metadataMap)}},{key:"has",value:function has(t){return this._metadataMap.has(t)}}]);return Metadata}();r.Metadata=i},(t,r,a)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});r.OptionalContentConfig=void 0;var o=a(4);function _createForOfIteratorHelper(t,r){var a="undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(!a){if(Array.isArray(t)||(a=function _unsupportedIterableToArray(t,r){if(!t)return;if("string"==typeof t)return _arrayLikeToArray(t,r);var a=Object.prototype.toString.call(t).slice(8,-1);"Object"===a&&t.constructor&&(a=t.constructor.name);if("Map"===a||"Set"===a)return Array.from(t);if("Arguments"===a||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(a))return _arrayLikeToArray(t,r)}(t))||r&&t&&"number"==typeof t.length){a&&(t=a);var o=0,i=function F(){};return{s:i,n:function n(){return o>=t.length?{done:!0}:{done:!1,value:t[o++]}},e:function e(t){throw t},f:i}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var l,u=!0,c=!1;return{s:function s(){a=a.call(t)},n:function n(){var t=a.next();u=t.done;return t},e:function e(t){c=!0;l=t},f:function f(){try{u||null==a.return||a.return()}finally{if(c)throw l}}}}function _arrayLikeToArray(t,r){(null==r||r>t.length)&&(r=t.length);for(var a=0,o=new Array(r);a<r;a++)o[a]=t[a];return o}function _defineProperties(t,r){for(var a=0;a<r.length;a++){var o=r[a];o.enumerable=o.enumerable||!1;o.configurable=!0;"value"in o&&(o.writable=!0);Object.defineProperty(t,o.key,o)}}function _classCallCheck(t,r){if(!(t instanceof r))throw new TypeError("Cannot call a class as a function")}var i=function OptionalContentGroup(t,r){_classCallCheck(this,OptionalContentGroup);this.visible=!0;this.name=t;this.intent=r},l=function(){function OptionalContentConfig(t){_classCallCheck(this,OptionalContentConfig);this.name=null;this.creator=null;this._order=null;this._groups=new Map;if(null!==t){this.name=t.name;this.creator=t.creator;this._order=t.order;var r,a=_createForOfIteratorHelper(t.groups);try{for(a.s();!(r=a.n()).done;){var o=r.value;this._groups.set(o.id,new i(o.name,o.intent))}}catch(t){a.e(t)}finally{a.f()}if("OFF"===t.baseState){var l,u=_createForOfIteratorHelper(this._groups);try{for(u.s();!(l=u.n()).done;){l.value.visible=!1}}catch(t){u.e(t)}finally{u.f()}}var c,d=_createForOfIteratorHelper(t.on);try{for(d.s();!(c=d.n()).done;){var h=c.value;this._groups.get(h).visible=!0}}catch(t){d.e(t)}finally{d.f()}var p,m=_createForOfIteratorHelper(t.off);try{for(m.s();!(p=m.n()).done;){var y=p.value;this._groups.get(y).visible=!1}}catch(t){m.e(t)}finally{m.f()}}}!function _createClass(t,r,a){r&&_defineProperties(t.prototype,r);a&&_defineProperties(t,a);return t}(OptionalContentConfig,[{key:"_evaluateVisibilityExpression",value:function _evaluateVisibilityExpression(t){var r=t.length;if(r<2)return!0;for(var a=t[0],i=1;i<r;i++){var l=t[i],u=void 0;if(Array.isArray(l))u=this._evaluateVisibilityExpression(l);else{if(!this._groups.has(l)){(0,o.warn)("Optional content group not found: ".concat(l));return!0}u=this._groups.get(l).visible}switch(a){case"And":if(!u)return!1;break;case"Or":if(u)return!0;break;case"Not":return!u;default:return!0}}return"And"===a}},{key:"isVisible",value:function isVisible(t){if(0===this._groups.size)return!0;if(!t){(0,o.warn)("Optional content group not defined.");return!0}if("OCG"===t.type){if(!this._groups.has(t.id)){(0,o.warn)("Optional content group not found: ".concat(t.id));return!0}return this._groups.get(t.id).visible}if("OCMD"===t.type){if(t.expression)return this._evaluateVisibilityExpression(t.expression);if(!t.policy||"AnyOn"===t.policy){var r,a=_createForOfIteratorHelper(t.ids);try{for(a.s();!(r=a.n()).done;){var i=r.value;if(!this._groups.has(i)){(0,o.warn)("Optional content group not found: ".concat(i));return!0}if(this._groups.get(i).visible)return!0}}catch(t){a.e(t)}finally{a.f()}return!1}if("AllOn"===t.policy){var l,u=_createForOfIteratorHelper(t.ids);try{for(u.s();!(l=u.n()).done;){var c=l.value;if(!this._groups.has(c)){(0,o.warn)("Optional content group not found: ".concat(c));return!0}if(!this._groups.get(c).visible)return!1}}catch(t){u.e(t)}finally{u.f()}return!0}if("AnyOff"===t.policy){var d,h=_createForOfIteratorHelper(t.ids);try{for(h.s();!(d=h.n()).done;){var p=d.value;if(!this._groups.has(p)){(0,o.warn)("Optional content group not found: ".concat(p));return!0}if(!this._groups.get(p).visible)return!0}}catch(t){h.e(t)}finally{h.f()}return!1}if("AllOff"===t.policy){var m,y=_createForOfIteratorHelper(t.ids);try{for(y.s();!(m=y.n()).done;){var v=m.value;if(!this._groups.has(v)){(0,o.warn)("Optional content group not found: ".concat(v));return!0}if(this._groups.get(v).visible)return!1}}catch(t){y.e(t)}finally{y.f()}return!0}(0,o.warn)("Unknown optional content policy ".concat(t.policy,"."));return!0}(0,o.warn)("Unknown group type ".concat(t.type,"."));return!0}},{key:"setVisibility",value:function setVisibility(t){var r=!(arguments.length>1&&void 0!==arguments[1])||arguments[1];this._groups.has(t)?this._groups.get(t).visible=!!r:(0,o.warn)("Optional content group not found: ".concat(t))}},{key:"getOrder",value:function getOrder(){return this._groups.size?this._order?this._order.slice():Array.from(this._groups.keys()):null}},{key:"getGroups",value:function getGroups(){return this._groups.size>0?(0,o.objectFromMap)(this._groups):null}},{key:"getGroup",value:function getGroup(t){return this._groups.get(t)||null}}]);return OptionalContentConfig}();r.OptionalContentConfig=l},(t,r,a)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});r.PDFDataTransportStream=void 0;var o=function _interopRequireDefault(t){return t&&t.__esModule?t:{default:t}}(a(2)),i=a(4),l=a(1);function asyncGeneratorStep(t,r,a,o,i,l,u){try{var c=t[l](u),d=c.value}catch(t){a(t);return}c.done?r(d):Promise.resolve(d).then(o,i)}function _asyncToGenerator(t){return function(){var r=this,a=arguments;return new Promise((function(o,i){var l=t.apply(r,a);function _next(t){asyncGeneratorStep(l,o,i,_next,_throw,"next",t)}function _throw(t){asyncGeneratorStep(l,o,i,_next,_throw,"throw",t)}_next(void 0)}))}}function _createForOfIteratorHelper(t,r){var a="undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(!a){if(Array.isArray(t)||(a=function _unsupportedIterableToArray(t,r){if(!t)return;if("string"==typeof t)return _arrayLikeToArray(t,r);var a=Object.prototype.toString.call(t).slice(8,-1);"Object"===a&&t.constructor&&(a=t.constructor.name);if("Map"===a||"Set"===a)return Array.from(t);if("Arguments"===a||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(a))return _arrayLikeToArray(t,r)}(t))||r&&t&&"number"==typeof t.length){a&&(t=a);var o=0,i=function F(){};return{s:i,n:function n(){return o>=t.length?{done:!0}:{done:!1,value:t[o++]}},e:function e(t){throw t},f:i}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var l,u=!0,c=!1;return{s:function s(){a=a.call(t)},n:function n(){var t=a.next();u=t.done;return t},e:function e(t){c=!0;l=t},f:function f(){try{u||null==a.return||a.return()}finally{if(c)throw l}}}}function _arrayLikeToArray(t,r){(null==r||r>t.length)&&(r=t.length);for(var a=0,o=new Array(r);a<r;a++)o[a]=t[a];return o}function _classCallCheck(t,r){if(!(t instanceof r))throw new TypeError("Cannot call a class as a function")}function _defineProperties(t,r){for(var a=0;a<r.length;a++){var o=r[a];o.enumerable=o.enumerable||!1;o.configurable=!0;"value"in o&&(o.writable=!0);Object.defineProperty(t,o.key,o)}}function _createClass(t,r,a){r&&_defineProperties(t.prototype,r);a&&_defineProperties(t,a);return t}var u=function(){function PDFDataTransportStream(t,r){var a=this;_classCallCheck(this,PDFDataTransportStream);(0,i.assert)(r,'PDFDataTransportStream - missing required "pdfDataRangeTransport" argument.');this._queuedChunks=[];this._progressiveDone=t.progressiveDone||!1;this._contentDispositionFilename=t.contentDispositionFilename||null;var o=t.initialData;if((null==o?void 0:o.length)>0){var l=new Uint8Array(o).buffer;this._queuedChunks.push(l)}this._pdfDataRangeTransport=r;this._isStreamingSupported=!t.disableStream;this._isRangeSupported=!t.disableRange;this._contentLength=t.length;this._fullRequestReader=null;this._rangeReaders=[];this._pdfDataRangeTransport.addRangeListener((function(t,r){a._onReceiveData({begin:t,chunk:r})}));this._pdfDataRangeTransport.addProgressListener((function(t,r){a._onProgress({loaded:t,total:r})}));this._pdfDataRangeTransport.addProgressiveReadListener((function(t){a._onReceiveData({chunk:t})}));this._pdfDataRangeTransport.addProgressiveDoneListener((function(){a._onProgressiveDone()}));this._pdfDataRangeTransport.transportReady()}_createClass(PDFDataTransportStream,[{key:"_onReceiveData",value:function _onReceiveData(t){var r=new Uint8Array(t.chunk).buffer;if(void 0===t.begin)this._fullRequestReader?this._fullRequestReader._enqueue(r):this._queuedChunks.push(r);else{var a=this._rangeReaders.some((function(a){if(a._begin!==t.begin)return!1;a._enqueue(r);return!0}));(0,i.assert)(a,"_onReceiveData - no `PDFDataTransportStreamRangeReader` instance found.")}}},{key:"_progressiveDataLength",get:function get(){var t,r;return null!==(t=null===(r=this._fullRequestReader)||void 0===r?void 0:r._loaded)&&void 0!==t?t:0}},{key:"_onProgress",value:function _onProgress(t){if(void 0===t.total){var r=this._rangeReaders[0];null!=r&&r.onProgress&&r.onProgress({loaded:t.loaded})}else{var a=this._fullRequestReader;null!=a&&a.onProgress&&a.onProgress({loaded:t.loaded,total:t.total})}}},{key:"_onProgressiveDone",value:function _onProgressiveDone(){this._fullRequestReader&&this._fullRequestReader.progressiveDone();this._progressiveDone=!0}},{key:"_removeRangeReader",value:function _removeRangeReader(t){var r=this._rangeReaders.indexOf(t);r>=0&&this._rangeReaders.splice(r,1)}},{key:"getFullReader",value:function getFullReader(){(0,i.assert)(!this._fullRequestReader,"PDFDataTransportStream.getFullReader can only be called once.");var t=this._queuedChunks;this._queuedChunks=null;return new c(this,t,this._progressiveDone,this._contentDispositionFilename)}},{key:"getRangeReader",value:function getRangeReader(t,r){if(r<=this._progressiveDataLength)return null;var a=new d(this,t,r);this._pdfDataRangeTransport.requestDataRange(t,r);this._rangeReaders.push(a);return a}},{key:"cancelAllRequests",value:function cancelAllRequests(t){this._fullRequestReader&&this._fullRequestReader.cancel(t);var r,a=_createForOfIteratorHelper(this._rangeReaders.slice(0));try{for(a.s();!(r=a.n()).done;){r.value.cancel(t)}}catch(t){a.e(t)}finally{a.f()}this._pdfDataRangeTransport.abort()}}]);return PDFDataTransportStream}();r.PDFDataTransportStream=u;var c=function(){function PDFDataTransportStreamReader(t,r){var a=arguments.length>2&&void 0!==arguments[2]&&arguments[2],o=arguments.length>3&&void 0!==arguments[3]?arguments[3]:null;_classCallCheck(this,PDFDataTransportStreamReader);this._stream=t;this._done=a||!1;this._filename=(0,l.isPdfFile)(o)?o:null;this._queuedChunks=r||[];this._loaded=0;var i,u=_createForOfIteratorHelper(this._queuedChunks);try{for(u.s();!(i=u.n()).done;){var c=i.value;this._loaded+=c.byteLength}}catch(t){u.e(t)}finally{u.f()}this._requests=[];this._headersReady=Promise.resolve();t._fullRequestReader=this;this.onProgress=null}_createClass(PDFDataTransportStreamReader,[{key:"_enqueue",value:function _enqueue(t){if(!this._done){if(this._requests.length>0){this._requests.shift().resolve({value:t,done:!1})}else this._queuedChunks.push(t);this._loaded+=t.byteLength}}},{key:"headersReady",get:function get(){return this._headersReady}},{key:"filename",get:function get(){return this._filename}},{key:"isRangeSupported",get:function get(){return this._stream._isRangeSupported}},{key:"isStreamingSupported",get:function get(){return this._stream._isStreamingSupported}},{key:"contentLength",get:function get(){return this._stream._contentLength}},{key:"read",value:(t=_asyncToGenerator(o.default.mark((function _callee(){var t,r;return o.default.wrap((function _callee$(a){for(;;)switch(a.prev=a.next){case 0:if(!(this._queuedChunks.length>0)){a.next=3;break}t=this._queuedChunks.shift();return a.abrupt("return",{value:t,done:!1});case 3:if(!this._done){a.next=5;break}return a.abrupt("return",{value:void 0,done:!0});case 5:r=(0,i.createPromiseCapability)();this._requests.push(r);return a.abrupt("return",r.promise);case 8:case"end":return a.stop()}}),_callee,this)}))),function read(){return t.apply(this,arguments)})},{key:"cancel",value:function cancel(t){this._done=!0;var r,a=_createForOfIteratorHelper(this._requests);try{for(a.s();!(r=a.n()).done;){r.value.resolve({value:void 0,done:!0})}}catch(t){a.e(t)}finally{a.f()}this._requests.length=0}},{key:"progressiveDone",value:function progressiveDone(){this._done||(this._done=!0)}}]);var t;return PDFDataTransportStreamReader}(),d=function(){function PDFDataTransportStreamRangeReader(t,r,a){_classCallCheck(this,PDFDataTransportStreamRangeReader);this._stream=t;this._begin=r;this._end=a;this._queuedChunk=null;this._requests=[];this._done=!1;this.onProgress=null}_createClass(PDFDataTransportStreamRangeReader,[{key:"_enqueue",value:function _enqueue(t){if(!this._done){if(0===this._requests.length)this._queuedChunk=t;else{this._requests.shift().resolve({value:t,done:!1});var r,a=_createForOfIteratorHelper(this._requests);try{for(a.s();!(r=a.n()).done;){r.value.resolve({value:void 0,done:!0})}}catch(t){a.e(t)}finally{a.f()}this._requests.length=0}this._done=!0;this._stream._removeRangeReader(this)}}},{key:"isStreamingSupported",get:function get(){return!1}},{key:"read",value:(t=_asyncToGenerator(o.default.mark((function _callee2(){var t,r;return o.default.wrap((function _callee2$(a){for(;;)switch(a.prev=a.next){case 0:if(!this._queuedChunk){a.next=4;break}t=this._queuedChunk;this._queuedChunk=null;return a.abrupt("return",{value:t,done:!1});case 4:if(!this._done){a.next=6;break}return a.abrupt("return",{value:void 0,done:!0});case 6:r=(0,i.createPromiseCapability)();this._requests.push(r);return a.abrupt("return",r.promise);case 9:case"end":return a.stop()}}),_callee2,this)}))),function read(){return t.apply(this,arguments)})},{key:"cancel",value:function cancel(t){this._done=!0;var r,a=_createForOfIteratorHelper(this._requests);try{for(a.s();!(r=a.n()).done;){r.value.resolve({value:void 0,done:!0})}}catch(t){a.e(t)}finally{a.f()}this._requests.length=0;this._stream._removeRangeReader(this)}}]);var t;return PDFDataTransportStreamRangeReader}()},(t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});r.XfaText=void 0;function _createForOfIteratorHelper(t,r){var a="undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(!a){if(Array.isArray(t)||(a=function _unsupportedIterableToArray(t,r){if(!t)return;if("string"==typeof t)return _arrayLikeToArray(t,r);var a=Object.prototype.toString.call(t).slice(8,-1);"Object"===a&&t.constructor&&(a=t.constructor.name);if("Map"===a||"Set"===a)return Array.from(t);if("Arguments"===a||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(a))return _arrayLikeToArray(t,r)}(t))||r&&t&&"number"==typeof t.length){a&&(t=a);var o=0,i=function F(){};return{s:i,n:function n(){return o>=t.length?{done:!0}:{done:!1,value:t[o++]}},e:function e(t){throw t},f:i}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var l,u=!0,c=!1;return{s:function s(){a=a.call(t)},n:function n(){var t=a.next();u=t.done;return t},e:function e(t){c=!0;l=t},f:function f(){try{u||null==a.return||a.return()}finally{if(c)throw l}}}}function _arrayLikeToArray(t,r){(null==r||r>t.length)&&(r=t.length);for(var a=0,o=new Array(r);a<r;a++)o[a]=t[a];return o}function _defineProperties(t,r){for(var a=0;a<r.length;a++){var o=r[a];o.enumerable=o.enumerable||!1;o.configurable=!0;"value"in o&&(o.writable=!0);Object.defineProperty(t,o.key,o)}}var a=function(){function XfaText(){!function _classCallCheck(t,r){if(!(t instanceof r))throw new TypeError("Cannot call a class as a function")}(this,XfaText)}!function _createClass(t,r,a){r&&_defineProperties(t.prototype,r);a&&_defineProperties(t,a);return t}(XfaText,null,[{key:"textContent",value:function textContent(t){var r=[],a={items:r,styles:Object.create(null)};!function walk(t){var a;if(t){var o=null,i=t.name;if("#text"===i)o=t.value;else{if(!XfaText.shouldBuildText(i))return;null!=t&&null!==(a=t.attributes)&&void 0!==a&&a.textContent?o=t.attributes.textContent:t.value&&(o=t.value)}null!==o&&r.push({str:o});if(t.children){var l,u=_createForOfIteratorHelper(t.children);try{for(u.s();!(l=u.n()).done;){walk(l.value)}}catch(t){u.e(t)}finally{u.f()}}}}(t);return a}},{key:"shouldBuildText",value:function shouldBuildText(t){return!("textarea"===t||"input"===t||"option"===t||"select"===t)}}]);return XfaText}();r.XfaText=a},(t,r,a)=>{"use strict";function _typeof(t){_typeof="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function _typeof(t){return typeof t}:function _typeof(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t};return _typeof(t)}Object.defineProperty(r,"__esModule",{value:!0});r.AnnotationLayer=void 0;var o=a(4),i=a(1),l=a(122),u=a(132);function _get(t,r,a){_get="undefined"!=typeof Reflect&&Reflect.get?Reflect.get:function _get(t,r,a){var o=function _superPropBase(t,r){for(;!Object.prototype.hasOwnProperty.call(t,r)&&null!==(t=_getPrototypeOf(t)););return t}(t,r);if(o){var i=Object.getOwnPropertyDescriptor(o,r);return i.get?i.get.call(a):i.value}};return _get(t,r,a||t)}function _defineProperty(t,r,a){r in t?Object.defineProperty(t,r,{value:a,enumerable:!0,configurable:!0,writable:!0}):t[r]=a;return t}function _slicedToArray(t,r){return function _arrayWithHoles(t){if(Array.isArray(t))return t}(t)||function _iterableToArrayLimit(t,r){var a=null==t?null:"undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(null==a)return;var o,i,l=[],u=!0,c=!1;try{for(a=a.call(t);!(u=(o=a.next()).done);u=!0){l.push(o.value);if(r&&l.length===r)break}}catch(t){c=!0;i=t}finally{try{u||null==a.return||a.return()}finally{if(c)throw i}}return l}(t,r)||_unsupportedIterableToArray(t,r)||function _nonIterableRest(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function _toConsumableArray(t){return function _arrayWithoutHoles(t){if(Array.isArray(t))return _arrayLikeToArray(t)}(t)||function _iterableToArray(t){if("undefined"!=typeof Symbol&&null!=t[Symbol.iterator]||null!=t["@@iterator"])return Array.from(t)}(t)||_unsupportedIterableToArray(t)||function _nonIterableSpread(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function _inherits(t,r){if("function"!=typeof r&&null!==r)throw new TypeError("Super expression must either be null or a function");t.prototype=Object.create(r&&r.prototype,{constructor:{value:t,writable:!0,configurable:!0}});r&&_setPrototypeOf(t,r)}function _setPrototypeOf(t,r){_setPrototypeOf=Object.setPrototypeOf||function _setPrototypeOf(t,r){t.__proto__=r;return t};return _setPrototypeOf(t,r)}function _createSuper(t){var r=function _isNativeReflectConstruct(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){})));return!0}catch(t){return!1}}();return function _createSuperInternal(){var a,o=_getPrototypeOf(t);if(r){var i=_getPrototypeOf(this).constructor;a=Reflect.construct(o,arguments,i)}else a=o.apply(this,arguments);return _possibleConstructorReturn(this,a)}}function _possibleConstructorReturn(t,r){if(r&&("object"===_typeof(r)||"function"==typeof r))return r;if(void 0!==r)throw new TypeError("Derived constructors may only return object or undefined");return _assertThisInitialized(t)}function _assertThisInitialized(t){if(void 0===t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return t}function _getPrototypeOf(t){_getPrototypeOf=Object.setPrototypeOf?Object.getPrototypeOf:function _getPrototypeOf(t){return t.__proto__||Object.getPrototypeOf(t)};return _getPrototypeOf(t)}function _createForOfIteratorHelper(t,r){var a="undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(!a){if(Array.isArray(t)||(a=_unsupportedIterableToArray(t))||r&&t&&"number"==typeof t.length){a&&(t=a);var o=0,i=function F(){};return{s:i,n:function n(){return o>=t.length?{done:!0}:{done:!1,value:t[o++]}},e:function e(t){throw t},f:i}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var l,u=!0,c=!1;return{s:function s(){a=a.call(t)},n:function n(){var t=a.next();u=t.done;return t},e:function e(t){c=!0;l=t},f:function f(){try{u||null==a.return||a.return()}finally{if(c)throw l}}}}function _unsupportedIterableToArray(t,r){if(t){if("string"==typeof t)return _arrayLikeToArray(t,r);var a=Object.prototype.toString.call(t).slice(8,-1);"Object"===a&&t.constructor&&(a=t.constructor.name);return"Map"===a||"Set"===a?Array.from(t):"Arguments"===a||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(a)?_arrayLikeToArray(t,r):void 0}}function _arrayLikeToArray(t,r){(null==r||r>t.length)&&(r=t.length);for(var a=0,o=new Array(r);a<r;a++)o[a]=t[a];return o}function _classCallCheck(t,r){if(!(t instanceof r))throw new TypeError("Cannot call a class as a function")}function _defineProperties(t,r){for(var a=0;a<r.length;a++){var o=r[a];o.enumerable=o.enumerable||!1;o.configurable=!0;"value"in o&&(o.writable=!0);Object.defineProperty(t,o.key,o)}}function _createClass(t,r,a){r&&_defineProperties(t.prototype,r);a&&_defineProperties(t,a);return t}var c=1e3,d=new WeakSet,h=function(){function AnnotationElementFactory(){_classCallCheck(this,AnnotationElementFactory)}_createClass(AnnotationElementFactory,null,[{key:"create",value:function create(t){switch(t.data.annotationType){case o.AnnotationType.LINK:return new m(t);case o.AnnotationType.TEXT:return new y(t);case o.AnnotationType.WIDGET:switch(t.data.fieldType){case"Tx":return new g(t);case"Btn":return t.data.radioButton?new _(t):t.data.checkBox?new b(t):new S(t);case"Ch":return new A(t)}return new v(t);case o.AnnotationType.POPUP:return new C(t);case o.AnnotationType.FREETEXT:return new R(t);case o.AnnotationType.LINE:return new w(t);case o.AnnotationType.SQUARE:return new P(t);case o.AnnotationType.CIRCLE:return new x(t);case o.AnnotationType.POLYLINE:return new T(t);case o.AnnotationType.CARET:return new O(t);case o.AnnotationType.INK:return new I(t);case o.AnnotationType.POLYGON:return new E(t);case o.AnnotationType.HIGHLIGHT:return new D(t);case o.AnnotationType.UNDERLINE:return new M(t);case o.AnnotationType.SQUIGGLY:return new j(t);case o.AnnotationType.STRIKEOUT:return new L(t);case o.AnnotationType.STAMP:return new W(t);case o.AnnotationType.FILEATTACHMENT:return new B(t);default:return new p(t)}}}]);return AnnotationElementFactory}(),p=function(){function AnnotationElement(t){var r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},a=r.isRenderable,o=void 0!==a&&a,i=r.ignoreBorder,l=void 0!==i&&i,u=r.createQuadrilaterals,c=void 0!==u&&u;_classCallCheck(this,AnnotationElement);this.isRenderable=o;this.data=t.data;this.layer=t.layer;this.page=t.page;this.viewport=t.viewport;this.linkService=t.linkService;this.downloadManager=t.downloadManager;this.imageResourcesPath=t.imageResourcesPath;this.renderForms=t.renderForms;this.svgFactory=t.svgFactory;this.annotationStorage=t.annotationStorage;this.enableScripting=t.enableScripting;this.hasJSActions=t.hasJSActions;this._fieldObjects=t.fieldObjects;this._mouseState=t.mouseState;o&&(this.container=this._createContainer(l));c&&(this.quadrilaterals=this._createQuadrilaterals(l))}_createClass(AnnotationElement,[{key:"_createContainer",value:function _createContainer(){var t=arguments.length>0&&void 0!==arguments[0]&&arguments[0],r=this.data,a=this.page,i=this.viewport,l=document.createElement("section"),u=r.rect[2]-r.rect[0],c=r.rect[3]-r.rect[1];l.setAttribute("data-annotation-id",r.id);var d=o.Util.normalizeRect([r.rect[0],a.view[3]-r.rect[1]+a.view[1],r.rect[2],a.view[3]-r.rect[3]+a.view[1]]);l.style.transform="matrix(".concat(i.transform.join(","),")");l.style.transformOrigin="".concat(-d[0],"px ").concat(-d[1],"px");if(!t&&r.borderStyle.width>0){l.style.borderWidth="".concat(r.borderStyle.width,"px");if(r.borderStyle.style!==o.AnnotationBorderStyleType.UNDERLINE){u-=2*r.borderStyle.width;c-=2*r.borderStyle.width}var h=r.borderStyle.horizontalCornerRadius,p=r.borderStyle.verticalCornerRadius;if(h>0||p>0){var m="".concat(h,"px / ").concat(p,"px");l.style.borderRadius=m}switch(r.borderStyle.style){case o.AnnotationBorderStyleType.SOLID:l.style.borderStyle="solid";break;case o.AnnotationBorderStyleType.DASHED:l.style.borderStyle="dashed";break;case o.AnnotationBorderStyleType.BEVELED:(0,o.warn)("Unimplemented border style: beveled");break;case o.AnnotationBorderStyleType.INSET:(0,o.warn)("Unimplemented border style: inset");break;case o.AnnotationBorderStyleType.UNDERLINE:l.style.borderBottomStyle="solid"}var y=r.borderColor||r.color||null;y?l.style.borderColor=o.Util.makeHexColor(0|r.color[0],0|r.color[1],0|r.color[2]):l.style.borderWidth=0}l.style.left="".concat(d[0],"px");l.style.top="".concat(d[1],"px");l.style.width="".concat(u,"px");l.style.height="".concat(c,"px");return l}},{key:"_createQuadrilaterals",value:function _createQuadrilaterals(){var t=arguments.length>0&&void 0!==arguments[0]&&arguments[0];if(!this.data.quadPoints)return null;var r,a=[],o=this.data.rect,i=_createForOfIteratorHelper(this.data.quadPoints);try{for(i.s();!(r=i.n()).done;){var l=r.value;this.data.rect=[l[2].x,l[2].y,l[1].x,l[1].y];a.push(this._createContainer(t))}}catch(t){i.e(t)}finally{i.f()}this.data.rect=o;return a}},{key:"_createPopup",value:function _createPopup(t,r){var a=this.container;if(this.quadrilaterals){t=t||this.quadrilaterals;a=this.quadrilaterals[0]}if(!t){(t=document.createElement("div")).style.height=a.style.height;t.style.width=a.style.width;a.appendChild(t)}var o=new k({container:a,trigger:t,color:r.color,titleObj:r.titleObj,modificationDate:r.modificationDate,contentsObj:r.contentsObj,hideWrapper:!0}).render();o.style.left=a.style.width;a.appendChild(o)}},{key:"_renderQuadrilaterals",value:function _renderQuadrilaterals(t){var r,a=_createForOfIteratorHelper(this.quadrilaterals);try{for(a.s();!(r=a.n()).done;){r.value.className=t}}catch(t){a.e(t)}finally{a.f()}return this.quadrilaterals}},{key:"render",value:function render(){(0,o.unreachable)("Abstract method `AnnotationElement.render` called")}},{key:"_getElementsByName",value:function _getElementsByName(t){var r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null,a=[];if(this._fieldObjects){var i=this._fieldObjects[t];if(i){var l,u=_createForOfIteratorHelper(i);try{for(u.s();!(l=u.n()).done;){var c=l.value,h=c.page,p=c.id,m=c.exportValues;if(-1!==h&&p!==r){var y="string"==typeof m?m:null,v=document.getElementById(p);!v||d.has(v)?a.push({id:p,exportValue:y,domElement:v}):(0,o.warn)("_getElementsByName - element not allowed: ".concat(p))}}}catch(t){u.e(t)}finally{u.f()}}return a}var g,b=_createForOfIteratorHelper(document.getElementsByName(t));try{for(b.s();!(g=b.n()).done;){var _=g.value,S=_.id,A=_.exportValue;S!==r&&(d.has(_)&&a.push({id:S,exportValue:A,domElement:_}))}}catch(t){b.e(t)}finally{b.f()}return a}}],[{key:"platform",get:function get(){var t="undefined"!=typeof navigator?navigator.platform:"";return(0,o.shadow)(this,"platform",{isWin:t.includes("Win"),isMac:t.includes("Mac")})}}]);return AnnotationElement}(),m=function(t){_inherits(LinkAnnotationElement,t);var r=_createSuper(LinkAnnotationElement);function LinkAnnotationElement(t){_classCallCheck(this,LinkAnnotationElement);var a=!!(t.data.url||t.data.dest||t.data.action||t.data.isTooltipOnly||t.data.resetForm||t.data.actions&&(t.data.actions.Action||t.data.actions["Mouse Up"]||t.data.actions["Mouse Down"]));return r.call(this,t,{isRenderable:a,createQuadrilaterals:!0})}_createClass(LinkAnnotationElement,[{key:"render",value:function render(){var t=this.data,r=this.linkService,a=document.createElement("a");if(t.url){var i;r.addLinkAttributes||(0,o.warn)("LinkAnnotationElement.render - missing `addLinkAttributes`-method on the `linkService`-instance.");null===(i=r.addLinkAttributes)||void 0===i||i.call(r,a,t.url,t.newWindow)}else if(t.action)this._bindNamedAction(a,t.action);else if(t.dest)this._bindLink(a,t.dest);else{var l=!1;if(t.actions&&(t.actions.Action||t.actions["Mouse Up"]||t.actions["Mouse Down"])&&this.enableScripting&&this.hasJSActions){l=!0;this._bindJSAction(a,t)}t.resetForm?this._bindResetFormAction(a,t.resetForm):l||this._bindLink(a,"")}if(this.quadrilaterals)return this._renderQuadrilaterals("linkAnnotation").map((function(t,r){var o=0===r?a:a.cloneNode();t.appendChild(o);return t}));this.container.className="linkAnnotation";this.container.appendChild(a);return this.container}},{key:"_bindLink",value:function _bindLink(t,r){var a=this;t.href=this.linkService.getDestinationHash(r);t.onclick=function(){r&&a.linkService.goToDestination(r);return!1};(r||""===r)&&(t.className="internalLink")}},{key:"_bindNamedAction",value:function _bindNamedAction(t,r){var a=this;t.href=this.linkService.getAnchorUrl("");t.onclick=function(){a.linkService.executeNamedAction(r);return!1};t.className="internalLink"}},{key:"_bindJSAction",value:function _bindJSAction(t,r){var a=this;t.href=this.linkService.getAnchorUrl("");for(var o=new Map([["Action","onclick"],["Mouse Up","onmouseup"],["Mouse Down","onmousedown"]]),i=function _loop(){var i=u[l],c=o.get(i);if(!c)return"continue";t[c]=function(){var t;null===(t=a.linkService.eventBus)||void 0===t||t.dispatch("dispatcheventinsandbox",{source:a,detail:{id:r.id,name:i}});return!1}},l=0,u=Object.keys(r.actions);l<u.length;l++)i();t.onclick||(t.onclick=function(){return!1});t.className="internalLink"}},{key:"_bindResetFormAction",value:function _bindResetFormAction(t,r){var a=this,i=t.onclick;i||(t.href=this.linkService.getAnchorUrl(""));t.className="internalLink";if(this._fieldObjects)t.onclick=function(){i&&i();var t=r.fields,o=r.refs,l=r.include,u=[];if(0!==t.length||0!==o.length){var c,h=new Set(o),p=_createForOfIteratorHelper(t);try{for(p.s();!(c=p.n()).done;){var m,y=c.value,v=_createForOfIteratorHelper(a._fieldObjects[y]||[]);try{for(v.s();!(m=v.n()).done;){var g=m.value.id;h.add(g)}}catch(t){v.e(t)}finally{v.f()}}}catch(t){p.e(t)}finally{p.f()}for(var b=0,_=Object.values(a._fieldObjects);b<_.length;b++){var S,A=_createForOfIteratorHelper(_[b]);try{for(A.s();!(S=A.n()).done;){var C=S.value;h.has(C.id)===l&&u.push(C)}}catch(t){A.e(t)}finally{A.f()}}}else for(var k=0,R=Object.values(a._fieldObjects);k<R.length;k++){var w=R[k];u.push.apply(u,_toConsumableArray(w))}for(var P=a.annotationStorage,x=[],T=0,E=u;T<E.length;T++){var O=E[T],I=O.id;x.push(I);switch(O.type){case"text":var D=O.defaultValue||"";P.setValue(I,{value:D,valueAsString:D});break;case"checkbox":case"radiobutton":var M=O.defaultValue===O.exportValues;P.setValue(I,{value:M});break;case"combobox":case"listbox":var j=O.defaultValue||"";P.setValue(I,{value:j});break;default:continue}var L=document.getElementById(I);L&&d.has(L)&&L.dispatchEvent(new Event("resetform"))}if(a.enableScripting){var W;null===(W=a.linkService.eventBus)||void 0===W||W.dispatch("dispatcheventinsandbox",{source:a,detail:{id:"app",ids:x,name:"ResetForm"}})}return!1};else{(0,o.warn)('_bindResetFormAction - "resetForm" action not supported, ensure that the `fieldObjects` parameter is provided.');i||(t.onclick=function(){return!1})}}}]);return LinkAnnotationElement}(p),y=function(t){_inherits(TextAnnotationElement,t);var r=_createSuper(TextAnnotationElement);function TextAnnotationElement(t){var a,o;_classCallCheck(this,TextAnnotationElement);var i=!!(t.data.hasPopup||null!==(a=t.data.titleObj)&&void 0!==a&&a.str||null!==(o=t.data.contentsObj)&&void 0!==o&&o.str);return r.call(this,t,{isRenderable:i})}_createClass(TextAnnotationElement,[{key:"render",value:function render(){this.container.className="textAnnotation";var t=document.createElement("img");t.style.height=this.container.style.height;t.style.width=this.container.style.width;t.src=this.imageResourcesPath+"annotation-"+this.data.name.toLowerCase()+".svg";t.alt="[{{type}} Annotation]";t.dataset.l10nId="text_annotation_type";t.dataset.l10nArgs=JSON.stringify({type:this.data.name});this.data.hasPopup||this._createPopup(t,this.data);this.container.appendChild(t);return this.container}}]);return TextAnnotationElement}(p),v=function(t){_inherits(WidgetAnnotationElement,t);var r=_createSuper(WidgetAnnotationElement);function WidgetAnnotationElement(){_classCallCheck(this,WidgetAnnotationElement);return r.apply(this,arguments)}_createClass(WidgetAnnotationElement,[{key:"render",value:function render(){this.data.alternativeText&&(this.container.title=this.data.alternativeText);return this.container}},{key:"_getKeyModifier",value:function _getKeyModifier(t){var r=p.platform,a=r.isWin,o=r.isMac;return a&&t.ctrlKey||o&&t.metaKey}},{key:"_setEventListener",value:function _setEventListener(t,r,a,o){var i=this;r.includes("mouse")?t.addEventListener(r,(function(t){var r;null===(r=i.linkService.eventBus)||void 0===r||r.dispatch("dispatcheventinsandbox",{source:i,detail:{id:i.data.id,name:a,value:o(t),shift:t.shiftKey,modifier:i._getKeyModifier(t)}})})):t.addEventListener(r,(function(t){var r;null===(r=i.linkService.eventBus)||void 0===r||r.dispatch("dispatcheventinsandbox",{source:i,detail:{id:i.data.id,name:a,value:t.target.checked}})}))}},{key:"_setEventListeners",value:function _setEventListeners(t,r,a){var o,i=_createForOfIteratorHelper(r);try{for(i.s();!(o=i.n()).done;){var l,u=_slicedToArray(o.value,2),c=u[0],d=u[1];("Action"===d||null!==(l=this.data.actions)&&void 0!==l&&l[d])&&this._setEventListener(t,c,d,a)}}catch(t){i.e(t)}finally{i.f()}}},{key:"_setBackgroundColor",value:function _setBackgroundColor(t){var r=this.data.backgroundColor||null;t.style.backgroundColor=null===r?"transparent":o.Util.makeHexColor(r[0],r[1],r[2])}},{key:"_dispatchEventFromSandbox",value:function _dispatchEventFromSandbox(t,r){for(var a=this,o=function setColor(t,r,a){var o=a.detail[t];a.target.style[r]=u.ColorConverters["".concat(o[0],"_HTML")](o.slice(1))},i={display:function display(t){var r=t.detail.display%2==1;t.target.style.visibility=r?"hidden":"visible";a.annotationStorage.setValue(a.data.id,{hidden:r,print:0===t.detail.display||3===t.detail.display})},print:function print(t){a.annotationStorage.setValue(a.data.id,{print:t.detail.print})},hidden:function hidden(t){t.target.style.visibility=t.detail.hidden?"hidden":"visible";a.annotationStorage.setValue(a.data.id,{hidden:t.detail.hidden})},focus:function focus(t){setTimeout((function(){return t.target.focus({preventScroll:!1})}),0)},userName:function userName(t){t.target.title=t.detail.userName},readonly:function readonly(t){t.detail.readonly?t.target.setAttribute("readonly",""):t.target.removeAttribute("readonly")},required:function required(t){t.detail.required?t.target.setAttribute("required",""):t.target.removeAttribute("required")},bgColor:function bgColor(t){o("bgColor","backgroundColor",t)},fillColor:function fillColor(t){o("fillColor","backgroundColor",t)},fgColor:function fgColor(t){o("fgColor","color",t)},textColor:function textColor(t){o("textColor","color",t)},borderColor:function borderColor(t){o("borderColor","borderColor",t)},strokeColor:function strokeColor(t){o("strokeColor","borderColor",t)}},l=0,c=Object.keys(r.detail);l<c.length;l++){var d=c[l],h=t[d]||i[d];h&&h(r)}}}]);return WidgetAnnotationElement}(p),g=function(t){_inherits(TextWidgetAnnotationElement,t);var r=_createSuper(TextWidgetAnnotationElement);function TextWidgetAnnotationElement(t){_classCallCheck(this,TextWidgetAnnotationElement);var a=t.renderForms||!t.data.hasAppearance&&!!t.data.fieldValue;return r.call(this,t,{isRenderable:a})}_createClass(TextWidgetAnnotationElement,[{key:"setPropertyOnSiblings",value:function setPropertyOnSiblings(t,r,a,o){var i,l=this.annotationStorage,u=_createForOfIteratorHelper(this._getElementsByName(t.name,t.id));try{for(u.s();!(i=u.n()).done;){var c=i.value;c.domElement&&(c.domElement[r]=a);l.setValue(c.id,_defineProperty({},o,a))}}catch(t){u.e(t)}finally{u.f()}}},{key:"render",value:function render(){var t=this,r=this.annotationStorage,a=this.data.id;this.container.className="textWidgetAnnotation";var o=null;if(this.renderForms){var i=r.getValue(a,{value:this.data.fieldValue,valueAsString:this.data.fieldValue}),l=i.valueAsString||i.value||"",u={userValue:null,formattedValue:null,beforeInputSelectionRange:null,beforeInputValue:null};if(this.data.multiLine)(o=document.createElement("textarea")).textContent=l;else{(o=document.createElement("input")).type="text";o.setAttribute("value",l)}d.add(o);o.disabled=this.data.readOnly;o.name=this.data.fieldName;o.tabIndex=c;u.userValue=l;o.setAttribute("id",a);o.addEventListener("input",(function(i){r.setValue(a,{value:i.target.value});t.setPropertyOnSiblings(o,"value",i.target.value,"value")}));o.addEventListener("resetform",(function(r){var a=t.data.defaultFieldValue||"";o.value=u.userValue=a;delete u.formattedValue}));var h=function blurListener(t){u.formattedValue&&(t.target.value=u.formattedValue);t.target.scrollLeft=0;u.beforeInputSelectionRange=null};if(this.enableScripting&&this.hasJSActions){var p;o.addEventListener("focus",(function(t){u.userValue&&(t.target.value=u.userValue)}));o.addEventListener("updatefromsandbox",(function(o){var i={value:function value(t){u.userValue=t.detail.value||"";r.setValue(a,{value:u.userValue.toString()});u.formattedValue||(t.target.value=u.userValue)},valueAsString:function valueAsString(t){u.formattedValue=t.detail.valueAsString||"";t.target!==document.activeElement&&(t.target.value=u.formattedValue);r.setValue(a,{formattedValue:u.formattedValue})},selRange:function selRange(t){var r=_slicedToArray(t.detail.selRange,2),a=r[0],o=r[1];a>=0&&o<t.target.value.length&&t.target.setSelectionRange(a,o)}};t._dispatchEventFromSandbox(i,o)}));o.addEventListener("keydown",(function(r){var o;u.beforeInputValue=r.target.value;var i=-1;"Escape"===r.key?i=0:"Enter"===r.key?i=2:"Tab"===r.key&&(i=3);if(-1!==i){u.userValue=r.target.value;null===(o=t.linkService.eventBus)||void 0===o||o.dispatch("dispatcheventinsandbox",{source:t,detail:{id:a,name:"Keystroke",value:r.target.value,willCommit:!0,commitKey:i,selStart:r.target.selectionStart,selEnd:r.target.selectionEnd}})}}));var m=h;h=null;o.addEventListener("blur",(function(r){if(t._mouseState.isDown){var o;u.userValue=r.target.value;null===(o=t.linkService.eventBus)||void 0===o||o.dispatch("dispatcheventinsandbox",{source:t,detail:{id:a,name:"Keystroke",value:r.target.value,willCommit:!0,commitKey:1,selStart:r.target.selectionStart,selEnd:r.target.selectionEnd}})}m(r)}));o.addEventListener("mousedown",(function(t){u.beforeInputValue=t.target.value;u.beforeInputSelectionRange=null}));o.addEventListener("keyup",(function(t){t.target.selectionStart===t.target.selectionEnd&&(u.beforeInputSelectionRange=null)}));o.addEventListener("select",(function(t){u.beforeInputSelectionRange=[t.target.selectionStart,t.target.selectionEnd]}));null!==(p=this.data.actions)&&void 0!==p&&p.Keystroke&&o.addEventListener("input",(function(r){var o,i=-1,l=-1;if(u.beforeInputSelectionRange){var c=_slicedToArray(u.beforeInputSelectionRange,2);i=c[0];l=c[1]}null===(o=t.linkService.eventBus)||void 0===o||o.dispatch("dispatcheventinsandbox",{source:t,detail:{id:a,name:"Keystroke",value:u.beforeInputValue,change:r.data,willCommit:!1,selStart:i,selEnd:l}})}));this._setEventListeners(o,[["focus","Focus"],["blur","Blur"],["mousedown","Mouse Down"],["mouseenter","Mouse Enter"],["mouseleave","Mouse Exit"],["mouseup","Mouse Up"]],(function(t){return t.target.value}))}h&&o.addEventListener("blur",h);null!==this.data.maxLen&&(o.maxLength=this.data.maxLen);if(this.data.comb){var y=(this.data.rect[2]-this.data.rect[0])/this.data.maxLen;o.classList.add("comb");o.style.letterSpacing="calc(".concat(y,"px - 1ch)")}}else{(o=document.createElement("div")).textContent=this.data.fieldValue;o.style.verticalAlign="middle";o.style.display="table-cell"}this._setTextStyle(o);this._setBackgroundColor(o);this.container.appendChild(o);return this.container}},{key:"_setTextStyle",value:function _setTextStyle(t){var r=this.data.defaultAppearanceData,a=r.fontSize,i=r.fontColor,l=t.style;a&&(l.fontSize="".concat(a,"px"));l.color=o.Util.makeHexColor(i[0],i[1],i[2]);null!==this.data.textAlignment&&(l.textAlign=["left","center","right"][this.data.textAlignment])}}]);return TextWidgetAnnotationElement}(v),b=function(t){_inherits(CheckboxWidgetAnnotationElement,t);var r=_createSuper(CheckboxWidgetAnnotationElement);function CheckboxWidgetAnnotationElement(t){_classCallCheck(this,CheckboxWidgetAnnotationElement);return r.call(this,t,{isRenderable:t.renderForms})}_createClass(CheckboxWidgetAnnotationElement,[{key:"render",value:function render(){var t=this,r=this.annotationStorage,a=this.data,o=a.id,i=r.getValue(o,{value:a.exportValue===a.fieldValue}).value;if("string"==typeof i){i="Off"!==i;r.setValue(o,{value:i})}this.container.className="buttonWidgetAnnotation checkBox";var l=document.createElement("input");d.add(l);l.disabled=a.readOnly;l.type="checkbox";l.name=a.fieldName;i&&l.setAttribute("checked",!0);l.setAttribute("id",o);l.setAttribute("exportValue",a.exportValue);l.tabIndex=c;l.addEventListener("change",(function(i){var l,u=i.target,c=u.name,d=u.checked,h=_createForOfIteratorHelper(t._getElementsByName(c,o));try{for(h.s();!(l=h.n()).done;){var p=l.value,m=d&&p.exportValue===a.exportValue;p.domElement&&(p.domElement.checked=m);r.setValue(p.id,{value:m})}}catch(t){h.e(t)}finally{h.f()}r.setValue(o,{value:d})}));l.addEventListener("resetform",(function(t){var r=a.defaultFieldValue||"Off";t.target.checked=r===a.exportValue}));if(this.enableScripting&&this.hasJSActions){l.addEventListener("updatefromsandbox",(function(a){var i={value:function value(t){t.target.checked="Off"!==t.detail.value;r.setValue(o,{value:t.target.checked})}};t._dispatchEventFromSandbox(i,a)}));this._setEventListeners(l,[["change","Validate"],["change","Action"],["focus","Focus"],["blur","Blur"],["mousedown","Mouse Down"],["mouseenter","Mouse Enter"],["mouseleave","Mouse Exit"],["mouseup","Mouse Up"]],(function(t){return t.target.checked}))}this._setBackgroundColor(l);this.container.appendChild(l);return this.container}}]);return CheckboxWidgetAnnotationElement}(v),_=function(t){_inherits(RadioButtonWidgetAnnotationElement,t);var r=_createSuper(RadioButtonWidgetAnnotationElement);function RadioButtonWidgetAnnotationElement(t){_classCallCheck(this,RadioButtonWidgetAnnotationElement);return r.call(this,t,{isRenderable:t.renderForms})}_createClass(RadioButtonWidgetAnnotationElement,[{key:"render",value:function render(){var t=this;this.container.className="buttonWidgetAnnotation radioButton";var r=this.annotationStorage,a=this.data,o=a.id,i=r.getValue(o,{value:a.fieldValue===a.buttonValue}).value;if("string"==typeof i){i=i!==a.buttonValue;r.setValue(o,{value:i})}var l=document.createElement("input");d.add(l);l.disabled=a.readOnly;l.type="radio";l.name=a.fieldName;i&&l.setAttribute("checked",!0);l.setAttribute("id",o);l.tabIndex=c;l.addEventListener("change",(function(a){var i,l=a.target,u=l.name,c=l.checked,d=_createForOfIteratorHelper(t._getElementsByName(u,o));try{for(d.s();!(i=d.n()).done;){var h=i.value;r.setValue(h.id,{value:!1})}}catch(t){d.e(t)}finally{d.f()}r.setValue(o,{value:c})}));l.addEventListener("resetform",(function(t){var r=a.defaultFieldValue;t.target.checked=null!=r&&r===a.buttonValue}));if(this.enableScripting&&this.hasJSActions){var u=a.buttonValue;l.addEventListener("updatefromsandbox",(function(a){var i={value:function value(a){var i,l=u===a.detail.value,c=_createForOfIteratorHelper(t._getElementsByName(a.target.name));try{for(c.s();!(i=c.n()).done;){var d=i.value,h=l&&d.id===o;d.domElement&&(d.domElement.checked=h);r.setValue(d.id,{value:h})}}catch(t){c.e(t)}finally{c.f()}}};t._dispatchEventFromSandbox(i,a)}));this._setEventListeners(l,[["change","Validate"],["change","Action"],["focus","Focus"],["blur","Blur"],["mousedown","Mouse Down"],["mouseenter","Mouse Enter"],["mouseleave","Mouse Exit"],["mouseup","Mouse Up"]],(function(t){return t.target.checked}))}this._setBackgroundColor(l);this.container.appendChild(l);return this.container}}]);return RadioButtonWidgetAnnotationElement}(v),S=function(t){_inherits(PushButtonWidgetAnnotationElement,t);var r=_createSuper(PushButtonWidgetAnnotationElement);function PushButtonWidgetAnnotationElement(){_classCallCheck(this,PushButtonWidgetAnnotationElement);return r.apply(this,arguments)}_createClass(PushButtonWidgetAnnotationElement,[{key:"render",value:function render(){var t=_get(_getPrototypeOf(PushButtonWidgetAnnotationElement.prototype),"render",this).call(this);t.className="buttonWidgetAnnotation pushButton";this.data.alternativeText&&(t.title=this.data.alternativeText);return t}}]);return PushButtonWidgetAnnotationElement}(m),A=function(t){_inherits(ChoiceWidgetAnnotationElement,t);var r=_createSuper(ChoiceWidgetAnnotationElement);function ChoiceWidgetAnnotationElement(t){_classCallCheck(this,ChoiceWidgetAnnotationElement);return r.call(this,t,{isRenderable:t.renderForms})}_createClass(ChoiceWidgetAnnotationElement,[{key:"render",value:function render(){var t=this;this.container.className="choiceWidgetAnnotation";var r=this.annotationStorage,a=this.data.id;r.getValue(a,{value:this.data.fieldValue.length>0?this.data.fieldValue[0]:void 0});var o=this.data.defaultAppearanceData.fontSize;o||(o=9);var i="calc(".concat(o,"px * var(--zoom-factor))"),l=document.createElement("select");d.add(l);l.disabled=this.data.readOnly;l.name=this.data.fieldName;l.setAttribute("id",a);l.tabIndex=c;l.style.fontSize="".concat(o,"px");if(!this.data.combo){l.size=this.data.options.length;this.data.multiSelect&&(l.multiple=!0)}l.addEventListener("resetform",(function(r){var a,o=t.data.defaultFieldValue,i=_createForOfIteratorHelper(l.options);try{for(i.s();!(a=i.n()).done;){var u=a.value;u.selected=u.value===o}}catch(t){i.e(t)}finally{i.f()}}));var u,h=_createForOfIteratorHelper(this.data.options);try{for(h.s();!(u=h.n()).done;){var p=u.value,m=document.createElement("option");m.textContent=p.displayValue;m.value=p.exportValue;this.data.combo&&(m.style.fontSize=i);this.data.fieldValue.includes(p.exportValue)&&m.setAttribute("selected",!0);l.appendChild(m)}}catch(t){h.e(t)}finally{h.f()}var y=function getValue(t,r){var a=r?"value":"textContent",o=t.target.options;return t.target.multiple?Array.prototype.filter.call(o,(function(t){return t.selected})).map((function(t){return t[a]})):-1===o.selectedIndex?null:o[o.selectedIndex][a]},v=function getItems(t){var r=t.target.options;return Array.prototype.map.call(r,(function(t){return{displayValue:t.textContent,exportValue:t.value}}))};if(this.enableScripting&&this.hasJSActions){l.addEventListener("updatefromsandbox",(function(o){var i={value:function value(t){var o,value=t.detail.value,i=new Set(Array.isArray(value)?value:[value]),u=_createForOfIteratorHelper(l.options);try{for(u.s();!(o=u.n()).done;){var c=o.value;c.selected=i.has(c.value)}}catch(t){u.e(t)}finally{u.f()}r.setValue(a,{value:y(t,!0)})},multipleSelection:function multipleSelection(t){l.multiple=!0},remove:function remove(t){var o=l.options,i=t.detail.remove;o[i].selected=!1;l.remove(i);if(o.length>0){var u=Array.prototype.findIndex.call(o,(function(t){return t.selected}));-1===u&&(o[0].selected=!0)}r.setValue(a,{value:y(t,!0),items:v(t)})},clear:function clear(t){for(;0!==l.length;)l.remove(0);r.setValue(a,{value:null,items:[]})},insert:function insert(t){var o=t.detail.insert,i=o.index,u=o.displayValue,c=o.exportValue,d=document.createElement("option");d.textContent=u;d.value=c;l.insertBefore(d,l.children[i]);r.setValue(a,{value:y(t,!0),items:v(t)})},items:function items(t){for(var items=t.detail.items;0!==l.length;)l.remove(0);var o,i=_createForOfIteratorHelper(items);try{for(i.s();!(o=i.n()).done;){var u=o.value,c=u.displayValue,d=u.exportValue,h=document.createElement("option");h.textContent=c;h.value=d;l.appendChild(h)}}catch(t){i.e(t)}finally{i.f()}l.options.length>0&&(l.options[0].selected=!0);r.setValue(a,{value:y(t,!0),items:v(t)})},indices:function indices(t){var o,indices=new Set(t.detail.indices),i=_createForOfIteratorHelper(t.target.options);try{for(i.s();!(o=i.n()).done;){var l=o.value;l.selected=indices.has(l.index)}}catch(t){i.e(t)}finally{i.f()}r.setValue(a,{value:y(t,!0)})},editable:function editable(t){t.target.disabled=!t.detail.editable}};t._dispatchEventFromSandbox(i,o)}));l.addEventListener("input",(function(o){var i,l=y(o,!0),u=y(o,!1);r.setValue(a,{value:l});null===(i=t.linkService.eventBus)||void 0===i||i.dispatch("dispatcheventinsandbox",{source:t,detail:{id:a,name:"Keystroke",value:u,changeEx:l,willCommit:!0,commitKey:1,keyDown:!1}})}));this._setEventListeners(l,[["focus","Focus"],["blur","Blur"],["mousedown","Mouse Down"],["mouseenter","Mouse Enter"],["mouseleave","Mouse Exit"],["mouseup","Mouse Up"],["input","Action"]],(function(t){return t.target.checked}))}else l.addEventListener("input",(function(t){r.setValue(a,{value:y(t)})}));this._setBackgroundColor(l);this.container.appendChild(l);return this.container}}]);return ChoiceWidgetAnnotationElement}(v),C=function(t){_inherits(PopupAnnotationElement,t);var r=_createSuper(PopupAnnotationElement);function PopupAnnotationElement(t){var a,o;_classCallCheck(this,PopupAnnotationElement);var i=!!(null!==(a=t.data.titleObj)&&void 0!==a&&a.str||null!==(o=t.data.contentsObj)&&void 0!==o&&o.str);return r.call(this,t,{isRenderable:i})}_createClass(PopupAnnotationElement,[{key:"render",value:function render(){this.container.className="popupAnnotation";if(["Line","Square","Circle","PolyLine","Polygon","Ink"].includes(this.data.parentType))return this.container;var t='[data-annotation-id="'.concat(this.data.parentId,'"]'),r=this.layer.querySelectorAll(t);if(0===r.length)return this.container;var a=new k({container:this.container,trigger:Array.from(r),color:this.data.color,titleObj:this.data.titleObj,modificationDate:this.data.modificationDate,contentsObj:this.data.contentsObj}),i=this.page,l=o.Util.normalizeRect([this.data.parentRect[0],i.view[3]-this.data.parentRect[1]+i.view[1],this.data.parentRect[2],i.view[3]-this.data.parentRect[3]+i.view[1]]),u=l[0]+this.data.parentRect[2]-this.data.parentRect[0],c=l[1];this.container.style.transformOrigin="".concat(-u,"px ").concat(-c,"px");this.container.style.left="".concat(u,"px");this.container.style.top="".concat(c,"px");this.container.appendChild(a.render());return this.container}}]);return PopupAnnotationElement}(p),k=function(){function PopupElement(t){_classCallCheck(this,PopupElement);this.container=t.container;this.trigger=t.trigger;this.color=t.color;this.titleObj=t.titleObj;this.modificationDate=t.modificationDate;this.contentsObj=t.contentsObj;this.hideWrapper=t.hideWrapper||!1;this.pinned=!1}_createClass(PopupElement,[{key:"render",value:function render(){var t=document.createElement("div");t.className="popupWrapper";this.hideElement=this.hideWrapper?t:this.container;this.hideElement.hidden=!0;var r=document.createElement("div");r.className="popup";var a=this.color;if(a){var l=.7*(255-a[0])+a[0],u=.7*(255-a[1])+a[1],c=.7*(255-a[2])+a[2];r.style.backgroundColor=o.Util.makeHexColor(0|l,0|u,0|c)}var d=document.createElement("h1");d.dir=this.titleObj.dir;d.textContent=this.titleObj.str;r.appendChild(d);var h=i.PDFDateString.toDateObject(this.modificationDate);if(h){var p=document.createElement("span");p.textContent="{{date}}, {{time}}";p.dataset.l10nId="annotation_date_string";p.dataset.l10nArgs=JSON.stringify({date:h.toLocaleDateString(),time:h.toLocaleTimeString()});r.appendChild(p)}var m=this._formatContents(this.contentsObj);r.appendChild(m);Array.isArray(this.trigger)||(this.trigger=[this.trigger]);var y,v=_createForOfIteratorHelper(this.trigger);try{for(v.s();!(y=v.n()).done;){var g=y.value;g.addEventListener("click",this._toggle.bind(this));g.addEventListener("mouseover",this._show.bind(this,!1));g.addEventListener("mouseout",this._hide.bind(this,!1))}}catch(t){v.e(t)}finally{v.f()}r.addEventListener("click",this._hide.bind(this,!0));t.appendChild(r);return t}},{key:"_formatContents",value:function _formatContents(t){var r=t.str,a=t.dir,o=document.createElement("p");o.dir=a;for(var i=r.split(/(?:\r\n?|\n)/),l=0,u=i.length;l<u;++l){var c=i[l];o.appendChild(document.createTextNode(c));l<u-1&&o.appendChild(document.createElement("br"))}return o}},{key:"_toggle",value:function _toggle(){this.pinned?this._hide(!0):this._show(!0)}},{key:"_show",value:function _show(){var t=arguments.length>0&&void 0!==arguments[0]&&arguments[0];t&&(this.pinned=!0);if(this.hideElement.hidden){this.hideElement.hidden=!1;this.container.style.zIndex+=1}}},{key:"_hide",value:function _hide(){var t=!(arguments.length>0&&void 0!==arguments[0])||arguments[0];t&&(this.pinned=!1);if(!this.hideElement.hidden&&!this.pinned){this.hideElement.hidden=!0;this.container.style.zIndex-=1}}}]);return PopupElement}(),R=function(t){_inherits(FreeTextAnnotationElement,t);var r=_createSuper(FreeTextAnnotationElement);function FreeTextAnnotationElement(t){var a,o;_classCallCheck(this,FreeTextAnnotationElement);var i=!!(t.data.hasPopup||null!==(a=t.data.titleObj)&&void 0!==a&&a.str||null!==(o=t.data.contentsObj)&&void 0!==o&&o.str);return r.call(this,t,{isRenderable:i,ignoreBorder:!0})}_createClass(FreeTextAnnotationElement,[{key:"render",value:function render(){this.container.className="freeTextAnnotation";this.data.hasPopup||this._createPopup(null,this.data);return this.container}}]);return FreeTextAnnotationElement}(p),w=function(t){_inherits(LineAnnotationElement,t);var r=_createSuper(LineAnnotationElement);function LineAnnotationElement(t){var a,o;_classCallCheck(this,LineAnnotationElement);var i=!!(t.data.hasPopup||null!==(a=t.data.titleObj)&&void 0!==a&&a.str||null!==(o=t.data.contentsObj)&&void 0!==o&&o.str);return r.call(this,t,{isRenderable:i,ignoreBorder:!0})}_createClass(LineAnnotationElement,[{key:"render",value:function render(){this.container.className="lineAnnotation";var t=this.data,r=t.rect[2]-t.rect[0],a=t.rect[3]-t.rect[1],o=this.svgFactory.create(r,a),i=this.svgFactory.createElement("svg:line");i.setAttribute("x1",t.rect[2]-t.lineCoordinates[0]);i.setAttribute("y1",t.rect[3]-t.lineCoordinates[1]);i.setAttribute("x2",t.rect[2]-t.lineCoordinates[2]);i.setAttribute("y2",t.rect[3]-t.lineCoordinates[3]);i.setAttribute("stroke-width",t.borderStyle.width||1);i.setAttribute("stroke","transparent");o.appendChild(i);this.container.append(o);this._createPopup(i,t);return this.container}}]);return LineAnnotationElement}(p),P=function(t){_inherits(SquareAnnotationElement,t);var r=_createSuper(SquareAnnotationElement);function SquareAnnotationElement(t){var a,o;_classCallCheck(this,SquareAnnotationElement);var i=!!(t.data.hasPopup||null!==(a=t.data.titleObj)&&void 0!==a&&a.str||null!==(o=t.data.contentsObj)&&void 0!==o&&o.str);return r.call(this,t,{isRenderable:i,ignoreBorder:!0})}_createClass(SquareAnnotationElement,[{key:"render",value:function render(){this.container.className="squareAnnotation";var t=this.data,r=t.rect[2]-t.rect[0],a=t.rect[3]-t.rect[1],o=this.svgFactory.create(r,a),i=t.borderStyle.width,l=this.svgFactory.createElement("svg:rect");l.setAttribute("x",i/2);l.setAttribute("y",i/2);l.setAttribute("width",r-i);l.setAttribute("height",a-i);l.setAttribute("stroke-width",i||1);l.setAttribute("stroke","transparent");l.setAttribute("fill","none");o.appendChild(l);this.container.append(o);this._createPopup(l,t);return this.container}}]);return SquareAnnotationElement}(p),x=function(t){_inherits(CircleAnnotationElement,t);var r=_createSuper(CircleAnnotationElement);function CircleAnnotationElement(t){var a,o;_classCallCheck(this,CircleAnnotationElement);var i=!!(t.data.hasPopup||null!==(a=t.data.titleObj)&&void 0!==a&&a.str||null!==(o=t.data.contentsObj)&&void 0!==o&&o.str);return r.call(this,t,{isRenderable:i,ignoreBorder:!0})}_createClass(CircleAnnotationElement,[{key:"render",value:function render(){this.container.className="circleAnnotation";var t=this.data,r=t.rect[2]-t.rect[0],a=t.rect[3]-t.rect[1],o=this.svgFactory.create(r,a),i=t.borderStyle.width,l=this.svgFactory.createElement("svg:ellipse");l.setAttribute("cx",r/2);l.setAttribute("cy",a/2);l.setAttribute("rx",r/2-i/2);l.setAttribute("ry",a/2-i/2);l.setAttribute("stroke-width",i||1);l.setAttribute("stroke","transparent");l.setAttribute("fill","none");o.appendChild(l);this.container.append(o);this._createPopup(l,t);return this.container}}]);return CircleAnnotationElement}(p),T=function(t){_inherits(PolylineAnnotationElement,t);var r=_createSuper(PolylineAnnotationElement);function PolylineAnnotationElement(t){var a,o,i;_classCallCheck(this,PolylineAnnotationElement);var l=!!(t.data.hasPopup||null!==(a=t.data.titleObj)&&void 0!==a&&a.str||null!==(o=t.data.contentsObj)&&void 0!==o&&o.str);(i=r.call(this,t,{isRenderable:l,ignoreBorder:!0})).containerClassName="polylineAnnotation";i.svgElementName="svg:polyline";return i}_createClass(PolylineAnnotationElement,[{key:"render",value:function render(){this.container.className=this.containerClassName;var t,r=this.data,a=r.rect[2]-r.rect[0],o=r.rect[3]-r.rect[1],i=this.svgFactory.create(a,o),l=[],u=_createForOfIteratorHelper(r.vertices);try{for(u.s();!(t=u.n()).done;){var c=t.value,d=c.x-r.rect[0],h=r.rect[3]-c.y;l.push(d+","+h)}}catch(t){u.e(t)}finally{u.f()}l=l.join(" ");var p=this.svgFactory.createElement(this.svgElementName);p.setAttribute("points",l);p.setAttribute("stroke-width",r.borderStyle.width||1);p.setAttribute("stroke","transparent");p.setAttribute("fill","none");i.appendChild(p);this.container.append(i);this._createPopup(p,r);return this.container}}]);return PolylineAnnotationElement}(p),E=function(t){_inherits(PolygonAnnotationElement,t);var r=_createSuper(PolygonAnnotationElement);function PolygonAnnotationElement(t){var a;_classCallCheck(this,PolygonAnnotationElement);(a=r.call(this,t)).containerClassName="polygonAnnotation";a.svgElementName="svg:polygon";return a}return PolygonAnnotationElement}(T),O=function(t){_inherits(CaretAnnotationElement,t);var r=_createSuper(CaretAnnotationElement);function CaretAnnotationElement(t){var a,o;_classCallCheck(this,CaretAnnotationElement);var i=!!(t.data.hasPopup||null!==(a=t.data.titleObj)&&void 0!==a&&a.str||null!==(o=t.data.contentsObj)&&void 0!==o&&o.str);return r.call(this,t,{isRenderable:i,ignoreBorder:!0})}_createClass(CaretAnnotationElement,[{key:"render",value:function render(){this.container.className="caretAnnotation";this.data.hasPopup||this._createPopup(null,this.data);return this.container}}]);return CaretAnnotationElement}(p),I=function(t){_inherits(InkAnnotationElement,t);var r=_createSuper(InkAnnotationElement);function InkAnnotationElement(t){var a,o,i;_classCallCheck(this,InkAnnotationElement);var l=!!(t.data.hasPopup||null!==(a=t.data.titleObj)&&void 0!==a&&a.str||null!==(o=t.data.contentsObj)&&void 0!==o&&o.str);(i=r.call(this,t,{isRenderable:l,ignoreBorder:!0})).containerClassName="inkAnnotation";i.svgElementName="svg:polyline";return i}_createClass(InkAnnotationElement,[{key:"render",value:function render(){this.container.className=this.containerClassName;var t,r=this.data,a=r.rect[2]-r.rect[0],o=r.rect[3]-r.rect[1],i=this.svgFactory.create(a,o),l=_createForOfIteratorHelper(r.inkLists);try{for(l.s();!(t=l.n()).done;){var u,c=t.value,d=[],h=_createForOfIteratorHelper(c);try{for(h.s();!(u=h.n()).done;){var p=u.value,m=p.x-r.rect[0],y=r.rect[3]-p.y;d.push("".concat(m,",").concat(y))}}catch(t){h.e(t)}finally{h.f()}d=d.join(" ");var v=this.svgFactory.createElement(this.svgElementName);v.setAttribute("points",d);v.setAttribute("stroke-width",r.borderStyle.width||1);v.setAttribute("stroke","transparent");v.setAttribute("fill","none");this._createPopup(v,r);i.appendChild(v)}}catch(t){l.e(t)}finally{l.f()}this.container.append(i);return this.container}}]);return InkAnnotationElement}(p),D=function(t){_inherits(HighlightAnnotationElement,t);var r=_createSuper(HighlightAnnotationElement);function HighlightAnnotationElement(t){var a,o;_classCallCheck(this,HighlightAnnotationElement);var i=!!(t.data.hasPopup||null!==(a=t.data.titleObj)&&void 0!==a&&a.str||null!==(o=t.data.contentsObj)&&void 0!==o&&o.str);return r.call(this,t,{isRenderable:i,ignoreBorder:!0,createQuadrilaterals:!0})}_createClass(HighlightAnnotationElement,[{key:"render",value:function render(){this.data.hasPopup||this._createPopup(null,this.data);if(this.quadrilaterals)return this._renderQuadrilaterals("highlightAnnotation");this.container.className="highlightAnnotation";return this.container}}]);return HighlightAnnotationElement}(p),M=function(t){_inherits(UnderlineAnnotationElement,t);var r=_createSuper(UnderlineAnnotationElement);function UnderlineAnnotationElement(t){var a,o;_classCallCheck(this,UnderlineAnnotationElement);var i=!!(t.data.hasPopup||null!==(a=t.data.titleObj)&&void 0!==a&&a.str||null!==(o=t.data.contentsObj)&&void 0!==o&&o.str);return r.call(this,t,{isRenderable:i,ignoreBorder:!0,createQuadrilaterals:!0})}_createClass(UnderlineAnnotationElement,[{key:"render",value:function render(){this.data.hasPopup||this._createPopup(null,this.data);if(this.quadrilaterals)return this._renderQuadrilaterals("underlineAnnotation");this.container.className="underlineAnnotation";return this.container}}]);return UnderlineAnnotationElement}(p),j=function(t){_inherits(SquigglyAnnotationElement,t);var r=_createSuper(SquigglyAnnotationElement);function SquigglyAnnotationElement(t){var a,o;_classCallCheck(this,SquigglyAnnotationElement);var i=!!(t.data.hasPopup||null!==(a=t.data.titleObj)&&void 0!==a&&a.str||null!==(o=t.data.contentsObj)&&void 0!==o&&o.str);return r.call(this,t,{isRenderable:i,ignoreBorder:!0,createQuadrilaterals:!0})}_createClass(SquigglyAnnotationElement,[{key:"render",value:function render(){this.data.hasPopup||this._createPopup(null,this.data);if(this.quadrilaterals)return this._renderQuadrilaterals("squigglyAnnotation");this.container.className="squigglyAnnotation";return this.container}}]);return SquigglyAnnotationElement}(p),L=function(t){_inherits(StrikeOutAnnotationElement,t);var r=_createSuper(StrikeOutAnnotationElement);function StrikeOutAnnotationElement(t){var a,o;_classCallCheck(this,StrikeOutAnnotationElement);var i=!!(t.data.hasPopup||null!==(a=t.data.titleObj)&&void 0!==a&&a.str||null!==(o=t.data.contentsObj)&&void 0!==o&&o.str);return r.call(this,t,{isRenderable:i,ignoreBorder:!0,createQuadrilaterals:!0})}_createClass(StrikeOutAnnotationElement,[{key:"render",value:function render(){this.data.hasPopup||this._createPopup(null,this.data);if(this.quadrilaterals)return this._renderQuadrilaterals("strikeoutAnnotation");this.container.className="strikeoutAnnotation";return this.container}}]);return StrikeOutAnnotationElement}(p),W=function(t){_inherits(StampAnnotationElement,t);var r=_createSuper(StampAnnotationElement);function StampAnnotationElement(t){var a,o;_classCallCheck(this,StampAnnotationElement);var i=!!(t.data.hasPopup||null!==(a=t.data.titleObj)&&void 0!==a&&a.str||null!==(o=t.data.contentsObj)&&void 0!==o&&o.str);return r.call(this,t,{isRenderable:i,ignoreBorder:!0})}_createClass(StampAnnotationElement,[{key:"render",value:function render(){this.container.className="stampAnnotation";this.data.hasPopup||this._createPopup(null,this.data);return this.container}}]);return StampAnnotationElement}(p),B=function(t){_inherits(FileAttachmentAnnotationElement,t);var r=_createSuper(FileAttachmentAnnotationElement);function FileAttachmentAnnotationElement(t){var a,l;_classCallCheck(this,FileAttachmentAnnotationElement);var u=(l=r.call(this,t,{isRenderable:!0})).data.file,c=u.filename,d=u.content;l.filename=(0,i.getFilenameFromUrl)(c);l.content=d;null===(a=l.linkService.eventBus)||void 0===a||a.dispatch("fileattachmentannotation",{source:_assertThisInitialized(l),id:(0,o.stringToPDFString)(c),filename:c,content:d});return l}_createClass(FileAttachmentAnnotationElement,[{key:"render",value:function render(){var t,r;this.container.className="fileAttachmentAnnotation";var a=document.createElement("div");a.style.height=this.container.style.height;a.style.width=this.container.style.width;a.addEventListener("dblclick",this._download.bind(this));!this.data.hasPopup&&(null!==(t=this.data.titleObj)&&void 0!==t&&t.str||null!==(r=this.data.contentsObj)&&void 0!==r&&r.str)&&this._createPopup(a,this.data);this.container.appendChild(a);return this.container}},{key:"_download",value:function _download(){var t;null===(t=this.downloadManager)||void 0===t||t.openOrDownloadData(this.container,this.content,this.filename)}}]);return FileAttachmentAnnotationElement}(p),N=function(){function AnnotationLayer(){_classCallCheck(this,AnnotationLayer)}_createClass(AnnotationLayer,null,[{key:"render",value:function render(t){var r,a=[],u=[],c=_createForOfIteratorHelper(t.annotations);try{for(c.s();!(r=c.n()).done;){var d=r.value;d&&(d.annotationType!==o.AnnotationType.POPUP?a.push(d):u.push(d))}}catch(t){c.e(t)}finally{c.f()}u.length&&a.push.apply(a,u);for(var p=0,m=a;p<m.length;p++){var y=m[p],v=h.create({data:y,layer:t.div,page:t.page,viewport:t.viewport,linkService:t.linkService,downloadManager:t.downloadManager,imageResourcesPath:t.imageResourcesPath||"",renderForms:!1!==t.renderForms,svgFactory:new i.DOMSVGFactory,annotationStorage:t.annotationStorage||new l.AnnotationStorage,enableScripting:t.enableScripting,hasJSActions:t.hasJSActions,fieldObjects:t.fieldObjects,mouseState:t.mouseState||{isDown:!1}});if(v.isRenderable){var g=v.render();y.hidden&&(g.style.visibility="hidden");if(Array.isArray(g)){var b,_=_createForOfIteratorHelper(g);try{for(_.s();!(b=_.n()).done;){var S=b.value;t.div.appendChild(S)}}catch(t){_.e(t)}finally{_.f()}}else v instanceof C?t.div.prepend(g):t.div.appendChild(g)}}}},{key:"update",value:function update(t){var r,a="matrix(".concat(t.viewport.transform.join(","),")"),o=_createForOfIteratorHelper(t.annotations);try{for(o.s();!(r=o.n()).done;){var i=r.value,l=t.div.querySelectorAll('[data-annotation-id="'.concat(i.id,'"]'));if(l){var u,c=_createForOfIteratorHelper(l);try{for(c.s();!(u=c.n()).done;){u.value.style.transform=a}}catch(t){c.e(t)}finally{c.f()}}}}catch(t){o.e(t)}finally{o.f()}t.div.hidden=!1}}]);return AnnotationLayer}();r.AnnotationLayer=N},(t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});r.ColorConverters=void 0;function _slicedToArray(t,r){return function _arrayWithHoles(t){if(Array.isArray(t))return t}(t)||function _iterableToArrayLimit(t,r){var a=null==t?null:"undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(null==a)return;var o,i,l=[],u=!0,c=!1;try{for(a=a.call(t);!(u=(o=a.next()).done);u=!0){l.push(o.value);if(r&&l.length===r)break}}catch(t){c=!0;i=t}finally{try{u||null==a.return||a.return()}finally{if(c)throw i}}return l}(t,r)||function _unsupportedIterableToArray(t,r){if(!t)return;if("string"==typeof t)return _arrayLikeToArray(t,r);var a=Object.prototype.toString.call(t).slice(8,-1);"Object"===a&&t.constructor&&(a=t.constructor.name);if("Map"===a||"Set"===a)return Array.from(t);if("Arguments"===a||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(a))return _arrayLikeToArray(t,r)}(t,r)||function _nonIterableRest(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function _arrayLikeToArray(t,r){(null==r||r>t.length)&&(r=t.length);for(var a=0,o=new Array(r);a<r;a++)o[a]=t[a];return o}function _defineProperties(t,r){for(var a=0;a<r.length;a++){var o=r[a];o.enumerable=o.enumerable||!1;o.configurable=!0;"value"in o&&(o.writable=!0);Object.defineProperty(t,o.key,o)}}function makeColorComp(t){return Math.floor(255*Math.max(0,Math.min(1,t))).toString(16).padStart(2,"0")}var a=function(){function ColorConverters(){!function _classCallCheck(t,r){if(!(t instanceof r))throw new TypeError("Cannot call a class as a function")}(this,ColorConverters)}!function _createClass(t,r,a){r&&_defineProperties(t.prototype,r);a&&_defineProperties(t,a);return t}(ColorConverters,null,[{key:"CMYK_G",value:function CMYK_G(t){var r=_slicedToArray(t,4),a=r[0],o=r[1],i=r[2],l=r[3];return["G",1-Math.min(1,.3*a+.59*i+.11*o+l)]}},{key:"G_CMYK",value:function G_CMYK(t){return["CMYK",0,0,0,1-_slicedToArray(t,1)[0]]}},{key:"G_RGB",value:function G_RGB(t){var r=_slicedToArray(t,1)[0];return["RGB",r,r,r]}},{key:"G_HTML",value:function G_HTML(t){var r=makeColorComp(_slicedToArray(t,1)[0]);return"#".concat(r).concat(r).concat(r)}},{key:"RGB_G",value:function RGB_G(t){var r=_slicedToArray(t,3);return["G",.3*r[0]+.59*r[1]+.11*r[2]]}},{key:"RGB_HTML",value:function RGB_HTML(t){var r=_slicedToArray(t,3),a=r[0],o=r[1],i=r[2],l=makeColorComp(a),u=makeColorComp(o),c=makeColorComp(i);return"#".concat(l).concat(u).concat(c)}},{key:"T_HTML",value:function T_HTML(){return"#00000000"}},{key:"CMYK_RGB",value:function CMYK_RGB(t){var r=_slicedToArray(t,4),a=r[0],o=r[1],i=r[2],l=r[3];return["RGB",1-Math.min(1,a+l),1-Math.min(1,i+l),1-Math.min(1,o+l)]}},{key:"CMYK_HTML",value:function CMYK_HTML(t){return this.RGB_HTML(this.CMYK_RGB(t))}},{key:"RGB_CMYK",value:function RGB_CMYK(t){var r=_slicedToArray(t,3),a=1-r[0],o=1-r[1],i=1-r[2];return["CMYK",a,o,i,Math.min(a,o,i)]}}]);return ColorConverters}();r.ColorConverters=a},(t,r,a)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});r.renderTextLayer=function renderTextLayer(t){var r=new c({textContent:t.textContent,textContentStream:t.textContentStream,container:t.container,viewport:t.viewport,textDivs:t.textDivs,textContentItemsStr:t.textContentItemsStr,enhanceTextSelection:t.enhanceTextSelection});r._render(t.timeout);return r};var o=a(4);function _defineProperties(t,r){for(var a=0;a<r.length;a++){var o=r[a];o.enumerable=o.enumerable||!1;o.configurable=!0;"value"in o&&(o.writable=!0);Object.defineProperty(t,o.key,o)}}function _createForOfIteratorHelper(t,r){var a="undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(!a){if(Array.isArray(t)||(a=function _unsupportedIterableToArray(t,r){if(!t)return;if("string"==typeof t)return _arrayLikeToArray(t,r);var a=Object.prototype.toString.call(t).slice(8,-1);"Object"===a&&t.constructor&&(a=t.constructor.name);if("Map"===a||"Set"===a)return Array.from(t);if("Arguments"===a||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(a))return _arrayLikeToArray(t,r)}(t))||r&&t&&"number"==typeof t.length){a&&(t=a);var o=0,i=function F(){};return{s:i,n:function n(){return o>=t.length?{done:!0}:{done:!1,value:t[o++]}},e:function e(t){throw t},f:i}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var l,u=!0,c=!1;return{s:function s(){a=a.call(t)},n:function n(){var t=a.next();u=t.done;return t},e:function e(t){c=!0;l=t},f:function f(){try{u||null==a.return||a.return()}finally{if(c)throw l}}}}function _arrayLikeToArray(t,r){(null==r||r>t.length)&&(r=t.length);for(var a=0,o=new Array(r);a<r;a++)o[a]=t[a];return o}var i=30,l=new Map,u=/^\s+$/g;function appendText(t,r,a,c){var d=document.createElement("span"),h=t._enhanceTextSelection?{angle:0,canvasWidth:0,hasText:""!==r.str,hasEOL:r.hasEOL,originalTransform:null,paddingBottom:0,paddingLeft:0,paddingRight:0,paddingTop:0,scale:1}:{angle:0,canvasWidth:0,hasText:""!==r.str,hasEOL:r.hasEOL};t._textDivs.push(d);var p=o.Util.transform(t._viewport.transform,r.transform),m=Math.atan2(p[1],p[0]),y=a[r.fontName];y.vertical&&(m+=Math.PI/2);var v,g,b=Math.hypot(p[2],p[3]),_=b*function getAscent(t,r){var a=l.get(t);if(a)return a;r.save();r.font="".concat(i,"px ").concat(t);var o=r.measureText(""),u=o.fontBoundingBoxAscent,c=Math.abs(o.fontBoundingBoxDescent);if(u){r.restore();var d=u/(u+c);l.set(t,d);return d}r.strokeStyle="red";r.clearRect(0,0,i,i);r.strokeText("g",0,0);var h=r.getImageData(0,0,i,i).data;c=0;for(var p=h.length-1-3;p>=0;p-=4)if(h[p]>0){c=Math.ceil(p/4/i);break}r.clearRect(0,0,i,i);r.strokeText("A",0,i);u=0;for(var m=0,y=(h=r.getImageData(0,0,i,i).data).length;m<y;m+=4)if(h[m]>0){u=i-Math.floor(m/4/i);break}r.restore();if(u){var v=u/(u+c);l.set(t,v);return v}l.set(t,.8);return.8}(y.fontFamily,c);if(0===m){v=p[4];g=p[5]-_}else{v=p[4]+_*Math.sin(m);g=p[5]-_*Math.cos(m)}d.style.left="".concat(v,"px");d.style.top="".concat(g,"px");d.style.fontSize="".concat(b,"px");d.style.fontFamily=y.fontFamily;d.setAttribute("role","presentation");d.textContent=r.str;d.dir=r.dir;t._fontInspectorEnabled&&(d.dataset.fontName=r.fontName);0!==m&&(h.angle=m*(180/Math.PI));var S=!1;if(r.str.length>1||t._enhanceTextSelection&&u.test(r.str))S=!0;else if(r.transform[0]!==r.transform[3]){var A=Math.abs(r.transform[0]),C=Math.abs(r.transform[3]);A!==C&&Math.max(A,C)/Math.min(A,C)>1.5&&(S=!0)}S&&(y.vertical?h.canvasWidth=r.height*t._viewport.scale:h.canvasWidth=r.width*t._viewport.scale);t._textDivProperties.set(d,h);t._textContentStream&&t._layoutText(d);if(t._enhanceTextSelection&&h.hasText){var k=1,R=0;if(0!==m){k=Math.cos(m);R=Math.sin(m)}var w,P,x=(y.vertical?r.height:r.width)*t._viewport.scale,T=b;if(0!==m){w=[k,R,-R,k,v,g];P=o.Util.getAxialAlignedBoundingBox([0,0,x,T],w)}else P=[v,g,v+x,g+T];t._bounds.push({left:P[0],top:P[1],right:P[2],bottom:P[3],div:d,size:[x,T],m:w})}}function render(t){if(!t._canceled){var r=t._textDivs,a=t._capability,o=r.length;if(o>1e5){t._renderingDone=!0;a.resolve()}else{if(!t._textContentStream)for(var i=0;i<o;i++)t._layoutText(r[i]);t._renderingDone=!0;a.resolve()}}}function findPositiveMin(t,r,a){for(var o=0,i=0;i<a;i++){var l=t[r++];l>0&&(o=o?Math.min(l,o):l)}return o}function expand(t){for(var r=t._bounds,a=t._viewport,i=function expandBounds(t,r,a){var o=a.map((function(t,r){return{x1:t.left,y1:t.top,x2:t.right,y2:t.bottom,index:r,x1New:void 0,x2New:void 0}}));expandBoundsLTR(t,o);var i,l=new Array(a.length),u=_createForOfIteratorHelper(o);try{for(u.s();!(i=u.n()).done;){var c=i.value,d=c.index;l[d]={left:c.x1New,top:0,right:c.x2New,bottom:0}}}catch(t){u.e(t)}finally{u.f()}a.map((function(r,a){var i=l[a],u=o[a];u.x1=r.top;u.y1=t-i.right;u.x2=r.bottom;u.y2=t-i.left;u.index=a;u.x1New=void 0;u.x2New=void 0}));expandBoundsLTR(r,o);var h,p=_createForOfIteratorHelper(o);try{for(p.s();!(h=p.n()).done;){var m=h.value,y=m.index;l[y].top=m.x1New;l[y].bottom=m.x2New}}catch(t){p.e(t)}finally{p.f()}return l}(a.width,a.height,r),l=0;l<i.length;l++){var u=r[l].div,c=t._textDivProperties.get(u);if(0!==c.angle){for(var d=i[l],h=r[l],p=h.m,m=p[0],y=p[1],v=[[0,0],[0,h.size[1]],[h.size[0],0],h.size],g=new Float64Array(64),b=0,_=v.length;b<_;b++){var S=o.Util.applyTransform(v[b],p);g[b+0]=m&&(d.left-S[0])/m;g[b+4]=y&&(d.top-S[1])/y;g[b+8]=m&&(d.right-S[0])/m;g[b+12]=y&&(d.bottom-S[1])/y;g[b+16]=y&&(d.left-S[0])/-y;g[b+20]=m&&(d.top-S[1])/m;g[b+24]=y&&(d.right-S[0])/-y;g[b+28]=m&&(d.bottom-S[1])/m;g[b+32]=m&&(d.left-S[0])/-m;g[b+36]=y&&(d.top-S[1])/-y;g[b+40]=m&&(d.right-S[0])/-m;g[b+44]=y&&(d.bottom-S[1])/-y;g[b+48]=y&&(d.left-S[0])/y;g[b+52]=m&&(d.top-S[1])/-m;g[b+56]=y&&(d.right-S[0])/y;g[b+60]=m&&(d.bottom-S[1])/-m}var A=1+Math.min(Math.abs(m),Math.abs(y));c.paddingLeft=findPositiveMin(g,32,16)/A;c.paddingTop=findPositiveMin(g,48,16)/A;c.paddingRight=findPositiveMin(g,0,16)/A;c.paddingBottom=findPositiveMin(g,16,16)/A;t._textDivProperties.set(u,c)}else{c.paddingLeft=r[l].left-i[l].left;c.paddingTop=r[l].top-i[l].top;c.paddingRight=i[l].right-r[l].right;c.paddingBottom=i[l].bottom-r[l].bottom;t._textDivProperties.set(u,c)}}}function expandBoundsLTR(t,r){r.sort((function(t,r){return t.x1-r.x1||t.index-r.index}));var a,o=[{start:-1/0,end:1/0,boundary:{x1:-1/0,y1:-1/0,x2:0,y2:1/0,index:-1,x1New:0,x2New:0}}],i=_createForOfIteratorHelper(r);try{for(i.s();!(a=i.n()).done;){for(var l=a.value,u=0;u<o.length&&o[u].end<=l.y1;)u++;for(var c=o.length-1;c>=0&&o[c].start>=l.y2;)c--;var d=void 0,h=void 0,p=void 0,m=void 0,y=-1/0;for(p=u;p<=c;p++){h=(d=o[p]).boundary;var v=void 0;(v=h.x2>l.x1?h.index>l.index?h.x1New:l.x1:void 0===h.x2New?(h.x2+l.x1)/2:h.x2New)>y&&(y=v)}l.x1New=y;for(p=u;p<=c;p++)void 0===(h=(d=o[p]).boundary).x2New?h.x2>l.x1?h.index>l.index&&(h.x2New=h.x2):h.x2New=y:h.x2New>y&&(h.x2New=Math.max(y,h.x2));var g=[],b=null;for(p=u;p<=c;p++){var _=(h=(d=o[p]).boundary).x2>l.x2?h:l;if(b===_)g[g.length-1].end=d.end;else{g.push({start:d.start,end:d.end,boundary:_});b=_}}if(o[u].start<l.y1){g[0].start=l.y1;g.unshift({start:o[u].start,end:l.y1,boundary:o[u].boundary})}if(l.y2<o[c].end){g[g.length-1].end=l.y2;g.push({start:l.y2,end:o[c].end,boundary:o[c].boundary})}for(p=u;p<=c;p++)if(void 0===(h=(d=o[p]).boundary).x2New){var S=!1;for(m=u-1;!S&&m>=0&&o[m].start>=h.y1;m--)S=o[m].boundary===h;for(m=c+1;!S&&m<o.length&&o[m].end<=h.y2;m++)S=o[m].boundary===h;for(m=0;!S&&m<g.length;m++)S=g[m].boundary===h;S||(h.x2New=y)}Array.prototype.splice.apply(o,[u,c-u+1].concat(g))}}catch(t){i.e(t)}finally{i.f()}for(var A=0,C=o;A<C.length;A++){var k=C[A].boundary;void 0===k.x2New&&(k.x2New=Math.max(t,k.x2))}}var c=function(){function TextLayerRenderTask(t){var r,a=this,i=t.textContent,l=t.textContentStream,u=t.container,c=t.viewport,d=t.textDivs,h=t.textContentItemsStr,p=t.enhanceTextSelection;!function _classCallCheck(t,r){if(!(t instanceof r))throw new TypeError("Cannot call a class as a function")}(this,TextLayerRenderTask);this._textContent=i;this._textContentStream=l;this._container=u;this._document=u.ownerDocument;this._viewport=c;this._textDivs=d||[];this._textContentItemsStr=h||[];this._enhanceTextSelection=!!p;this._fontInspectorEnabled=!(null===(r=globalThis.FontInspector)||void 0===r||!r.enabled);this._reader=null;this._layoutTextLastFontSize=null;this._layoutTextLastFontFamily=null;this._layoutTextCtx=null;this._textDivProperties=new WeakMap;this._renderingDone=!1;this._canceled=!1;this._capability=(0,o.createPromiseCapability)();this._renderTimer=null;this._bounds=[];this._capability.promise.finally((function(){a._enhanceTextSelection||(a._textDivProperties=null);if(a._layoutTextCtx){a._layoutTextCtx.canvas.width=0;a._layoutTextCtx.canvas.height=0;a._layoutTextCtx=null}})).catch((function(){}))}!function _createClass(t,r,a){r&&_defineProperties(t.prototype,r);a&&_defineProperties(t,a);return t}(TextLayerRenderTask,[{key:"promise",get:function get(){return this._capability.promise}},{key:"cancel",value:function cancel(){this._canceled=!0;if(this._reader){this._reader.cancel(new o.AbortException("TextLayer task cancelled.")).catch((function(){}));this._reader=null}if(null!==this._renderTimer){clearTimeout(this._renderTimer);this._renderTimer=null}this._capability.reject(new Error("TextLayer task cancelled."))}},{key:"_processItems",value:function _processItems(t,r){for(var a=0,o=t.length;a<o;a++)if(void 0!==t[a].str){this._textContentItemsStr.push(t[a].str);appendText(this,t[a],r,this._layoutTextCtx)}else if("beginMarkedContentProps"===t[a].type||"beginMarkedContent"===t[a].type){var i=this._container;this._container=document.createElement("span");this._container.classList.add("markedContent");null!==t[a].id&&this._container.setAttribute("id","".concat(t[a].id));i.appendChild(this._container)}else"endMarkedContent"===t[a].type&&(this._container=this._container.parentNode)}},{key:"_layoutText",value:function _layoutText(t){var r=this._textDivProperties.get(t),a="";if(0!==r.canvasWidth&&r.hasText){var o=t.style,i=o.fontSize,l=o.fontFamily;if(i!==this._layoutTextLastFontSize||l!==this._layoutTextLastFontFamily){this._layoutTextCtx.font="".concat(i," ").concat(l);this._layoutTextLastFontSize=i;this._layoutTextLastFontFamily=l}var u=this._layoutTextCtx.measureText(t.textContent).width;if(u>0){var c=r.canvasWidth/u;this._enhanceTextSelection&&(r.scale=c);a="scaleX(".concat(c,")")}}0!==r.angle&&(a="rotate(".concat(r.angle,"deg) ").concat(a));if(a.length>0){this._enhanceTextSelection&&(r.originalTransform=a);t.style.transform=a}r.hasText&&this._container.appendChild(t);if(r.hasEOL){var d=document.createElement("br");d.setAttribute("role","presentation");this._container.appendChild(d)}}},{key:"_render",value:function _render(){var t=this,r=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0,a=(0,o.createPromiseCapability)(),l=Object.create(null),u=this._document.createElement("canvas");u.height=u.width=i;u.mozOpaque=!0;this._layoutTextCtx=u.getContext("2d",{alpha:!1});if(this._textContent){var c=this._textContent.items,d=this._textContent.styles;this._processItems(c,d);a.resolve()}else{if(!this._textContentStream)throw new Error('Neither "textContent" nor "textContentStream" parameters specified.');var h=function pump(){t._reader.read().then((function(r){var o=r.value;if(r.done)a.resolve();else{Object.assign(l,o.styles);t._processItems(o.items,l);pump()}}),a.reject)};this._reader=this._textContentStream.getReader();h()}a.promise.then((function(){l=null;r?t._renderTimer=setTimeout((function(){render(t);t._renderTimer=null}),r):render(t)}),this._capability.reject)}},{key:"expandTextDivs",value:function expandTextDivs(){var t=arguments.length>0&&void 0!==arguments[0]&&arguments[0];if(this._enhanceTextSelection&&this._renderingDone){if(null!==this._bounds){expand(this);this._bounds=null}for(var r=[],a=[],o=0,i=this._textDivs.length;o<i;o++){var l=this._textDivs[o],u=this._textDivProperties.get(l);if(u.hasText)if(t){r.length=0;a.length=0;u.originalTransform&&r.push(u.originalTransform);if(u.paddingTop>0){a.push("".concat(u.paddingTop,"px"));r.push("translateY(".concat(-u.paddingTop,"px)"))}else a.push(0);u.paddingRight>0?a.push("".concat(u.paddingRight/u.scale,"px")):a.push(0);u.paddingBottom>0?a.push("".concat(u.paddingBottom,"px")):a.push(0);if(u.paddingLeft>0){a.push("".concat(u.paddingLeft/u.scale,"px"));r.push("translateX(".concat(-u.paddingLeft/u.scale,"px)"))}else a.push(0);l.style.padding=a.join(" ");r.length&&(l.style.transform=r.join(" "))}else{l.style.padding=null;l.style.transform=u.originalTransform}}}}}]);return TextLayerRenderTask}()},(t,r,a)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});r.SVGGraphics=void 0;var o=a(4),i=a(1),l=a(6);function _toConsumableArray(t){return function _arrayWithoutHoles(t){if(Array.isArray(t))return _arrayLikeToArray(t)}(t)||function _iterableToArray(t){if("undefined"!=typeof Symbol&&null!=t[Symbol.iterator]||null!=t["@@iterator"])return Array.from(t)}(t)||_unsupportedIterableToArray(t)||function _nonIterableSpread(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function _slicedToArray(t,r){return function _arrayWithHoles(t){if(Array.isArray(t))return t}(t)||function _iterableToArrayLimit(t,r){var a=null==t?null:"undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(null==a)return;var o,i,l=[],u=!0,c=!1;try{for(a=a.call(t);!(u=(o=a.next()).done);u=!0){l.push(o.value);if(r&&l.length===r)break}}catch(t){c=!0;i=t}finally{try{u||null==a.return||a.return()}finally{if(c)throw i}}return l}(t,r)||_unsupportedIterableToArray(t,r)||function _nonIterableRest(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function _createForOfIteratorHelper(t,r){var a="undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(!a){if(Array.isArray(t)||(a=_unsupportedIterableToArray(t))||r&&t&&"number"==typeof t.length){a&&(t=a);var o=0,i=function F(){};return{s:i,n:function n(){return o>=t.length?{done:!0}:{done:!1,value:t[o++]}},e:function e(t){throw t},f:i}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var l,u=!0,c=!1;return{s:function s(){a=a.call(t)},n:function n(){var t=a.next();u=t.done;return t},e:function e(t){c=!0;l=t},f:function f(){try{u||null==a.return||a.return()}finally{if(c)throw l}}}}function _unsupportedIterableToArray(t,r){if(t){if("string"==typeof t)return _arrayLikeToArray(t,r);var a=Object.prototype.toString.call(t).slice(8,-1);"Object"===a&&t.constructor&&(a=t.constructor.name);return"Map"===a||"Set"===a?Array.from(t):"Arguments"===a||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(a)?_arrayLikeToArray(t,r):void 0}}function _arrayLikeToArray(t,r){(null==r||r>t.length)&&(r=t.length);for(var a=0,o=new Array(r);a<r;a++)o[a]=t[a];return o}function _defineProperties(t,r){for(var a=0;a<r.length;a++){var o=r[a];o.enumerable=o.enumerable||!1;o.configurable=!0;"value"in o&&(o.writable=!0);Object.defineProperty(t,o.key,o)}}function _createClass(t,r,a){r&&_defineProperties(t.prototype,r);a&&_defineProperties(t,a);return t}function _classCallCheck(t,r){if(!(t instanceof r))throw new TypeError("Cannot call a class as a function")}var u=function SVGGraphics(){_classCallCheck(this,SVGGraphics);(0,o.unreachable)("Not implemented: SVGGraphics")};r.SVGGraphics=u;var c=function pf(t){if(Number.isInteger(t))return t.toString();var r=t.toFixed(10),a=r.length-1;if("0"!==r[a])return r;do{a--}while("0"===r[a]);return r.substring(0,"."===r[a]?a:a+1)},d=function pm(t){if(0===t[4]&&0===t[5]){if(0===t[1]&&0===t[2])return 1===t[0]&&1===t[3]?"":"scale(".concat(c(t[0])," ").concat(c(t[3]),")");if(t[0]===t[3]&&t[1]===-t[2]){var r=180*Math.acos(t[0])/Math.PI;return"rotate(".concat(c(r),")")}}else if(1===t[0]&&0===t[1]&&0===t[2]&&1===t[3])return"translate(".concat(c(t[4])," ").concat(c(t[5]),")");return"matrix(".concat(c(t[0])," ").concat(c(t[1])," ").concat(c(t[2])," ").concat(c(t[3])," ").concat(c(t[4])," ")+"".concat(c(t[5]),")")},h={fontStyle:"normal",fontWeight:"normal",fillColor:"#000000"},p=["butt","round","square"],m=["miter","round","bevel"],y=function(){for(var t=new Uint8Array([137,80,78,71,13,10,26,10]),r=new Int32Array(256),a=0;a<256;a++){for(var i=a,u=0;u<8;u++)i=1&i?3988292384^i>>1&2147483647:i>>1&2147483647;r[a]=i}function writePngChunk(t,a,o,i){var l=i,u=a.length;o[l]=u>>24&255;o[l+1]=u>>16&255;o[l+2]=u>>8&255;o[l+3]=255&u;o[l+=4]=255&t.charCodeAt(0);o[l+1]=255&t.charCodeAt(1);o[l+2]=255&t.charCodeAt(2);o[l+3]=255&t.charCodeAt(3);l+=4;o.set(a,l);var c=function crc32(t,a,o){for(var i=-1,l=a;l<o;l++){var u=255&(i^t[l]);i=i>>>8^r[u]}return-1^i}(o,i+4,l+=a.length);o[l]=c>>24&255;o[l+1]=c>>16&255;o[l+2]=c>>8&255;o[l+3]=255&c}function deflateSyncUncompressed(t){var r=t.length,a=65535,o=Math.ceil(r/a),i=new Uint8Array(2+r+5*o+4),l=0;i[l++]=120;i[l++]=156;for(var u=0;r>a;){i[l++]=0;i[l++]=255;i[l++]=255;i[l++]=0;i[l++]=0;i.set(t.subarray(u,u+a),l);l+=a;u+=a;r-=a}i[l++]=1;i[l++]=255&r;i[l++]=r>>8&255;i[l++]=255&~r;i[l++]=(65535&~r)>>8&255;i.set(t.subarray(u),l);l+=t.length-u;var c=function adler32(t,r,a){for(var o=1,i=0,l=r;l<a;++l)i=(i+(o=(o+(255&t[l]))%65521))%65521;return i<<16|o}(t,0,t.length);i[l++]=c>>24&255;i[l++]=c>>16&255;i[l++]=c>>8&255;i[l++]=255&c;return i}function encode(r,a,i,u){var c,d,h,p=r.width,m=r.height,y=r.data;switch(a){case o.ImageKind.GRAYSCALE_1BPP:d=0;c=1;h=p+7>>3;break;case o.ImageKind.RGB_24BPP:d=2;c=8;h=3*p;break;case o.ImageKind.RGBA_32BPP:d=6;c=8;h=4*p;break;default:throw new Error("invalid format")}for(var v=new Uint8Array((1+h)*m),g=0,b=0,_=0;_<m;++_){v[g++]=0;v.set(y.subarray(b,b+h),g);b+=h;g+=h}if(a===o.ImageKind.GRAYSCALE_1BPP&&u){g=0;for(var S=0;S<m;S++){g++;for(var A=0;A<h;A++)v[g++]^=255}}var C=new Uint8Array([p>>24&255,p>>16&255,p>>8&255,255&p,m>>24&255,m>>16&255,m>>8&255,255&m,c,d,0,0,0]),k=function deflateSync(t){if(!l.isNodeJS)return deflateSyncUncompressed(t);try{var r;r=parseInt(process.versions.node)>=8?t:Buffer.from(t);var a=require("zlib").deflateSync(r,{level:9});return a instanceof Uint8Array?a:new Uint8Array(a)}catch(t){(0,o.warn)("Not compressing PNG because zlib.deflateSync is unavailable: "+t)}return deflateSyncUncompressed(t)}(v),R=t.length+36+C.length+k.length,w=new Uint8Array(R),P=0;w.set(t,P);writePngChunk("IHDR",C,w,P+=t.length);writePngChunk("IDATA",k,w,P+=12+C.length);P+=12+k.length;writePngChunk("IEND",new Uint8Array(0),w,P);return(0,o.createObjectURL)(w,"image/png",i)}return function convertImgDataToPng(t,r,a){return encode(t,void 0===t.kind?o.ImageKind.GRAYSCALE_1BPP:t.kind,r,a)}}(),v=function(){function SVGExtraState(){_classCallCheck(this,SVGExtraState);this.fontSizeScale=1;this.fontWeight=h.fontWeight;this.fontSize=0;this.textMatrix=o.IDENTITY_MATRIX;this.fontMatrix=o.FONT_IDENTITY_MATRIX;this.leading=0;this.textRenderingMode=o.TextRenderingMode.FILL;this.textMatrixScale=1;this.x=0;this.y=0;this.lineX=0;this.lineY=0;this.charSpacing=0;this.wordSpacing=0;this.textHScale=1;this.textRise=0;this.fillColor=h.fillColor;this.strokeColor="#000000";this.fillAlpha=1;this.strokeAlpha=1;this.lineWidth=1;this.lineJoin="";this.lineCap="";this.miterLimit=0;this.dashArray=[];this.dashPhase=0;this.dependencies=[];this.activeClipUrl=null;this.clipGroup=null;this.maskId=""}_createClass(SVGExtraState,[{key:"clone",value:function clone(){return Object.create(this)}},{key:"setCurrentPoint",value:function setCurrentPoint(t,r){this.x=t;this.y=r}}]);return SVGExtraState}(),g=0,b=0,_=0;r.SVGGraphics=u=function(){function SVGGraphics(t,r){var a=arguments.length>2&&void 0!==arguments[2]&&arguments[2];_classCallCheck(this,SVGGraphics);this.svgFactory=new i.DOMSVGFactory;this.current=new v;this.transformMatrix=o.IDENTITY_MATRIX;this.transformStack=[];this.extraStack=[];this.commonObjs=t;this.objs=r;this.pendingClip=null;this.pendingEOFill=!1;this.embedFonts=!1;this.embeddedFonts=Object.create(null);this.cssStyle=null;this.forceDataSchema=!!a;this._operatorIdMapping=[];for(var l in o.OPS)this._operatorIdMapping[o.OPS[l]]=l}_createClass(SVGGraphics,[{key:"save",value:function save(){this.transformStack.push(this.transformMatrix);var t=this.current;this.extraStack.push(t);this.current=t.clone()}},{key:"restore",value:function restore(){this.transformMatrix=this.transformStack.pop();this.current=this.extraStack.pop();this.pendingClip=null;this.tgrp=null}},{key:"group",value:function group(t){this.save();this.executeOpTree(t);this.restore()}},{key:"loadDependencies",value:function loadDependencies(t){for(var r=this,a=t.fnArray,i=t.argsArray,l=0,u=a.length;l<u;l++)if(a[l]===o.OPS.dependency){var c,d=_createForOfIteratorHelper(i[l]);try{var h=function _loop(){var t=c.value,a=t.startsWith("g_")?r.commonObjs:r.objs,o=new Promise((function(r){a.get(t,r)}));r.current.dependencies.push(o)};for(d.s();!(c=d.n()).done;)h()}catch(t){d.e(t)}finally{d.f()}}return Promise.all(this.current.dependencies)}},{key:"transform",value:function transform(t,r,a,i,l,u){var c=[t,r,a,i,l,u];this.transformMatrix=o.Util.transform(this.transformMatrix,c);this.tgrp=null}},{key:"getSVG",value:function getSVG(t,r){var a=this;this.viewport=r;var i=this._initialize(r);return this.loadDependencies(t).then((function(){a.transformMatrix=o.IDENTITY_MATRIX;a.executeOpTree(a.convertOpList(t));return i}))}},{key:"convertOpList",value:function convertOpList(t){for(var r=this._operatorIdMapping,a=t.argsArray,o=t.fnArray,i=[],l=0,u=o.length;l<u;l++){var c=o[l];i.push({fnId:c,fn:r[c],args:a[l]})}return function opListToTree(t){var r,a=[],o=[],i=_createForOfIteratorHelper(t);try{for(i.s();!(r=i.n()).done;){var l=r.value;if("save"!==l.fn)"restore"===l.fn?a=o.pop():a.push(l);else{a.push({fnId:92,fn:"group",items:[]});o.push(a);a=a[a.length-1].items}}}catch(t){i.e(t)}finally{i.f()}return a}(i)}},{key:"executeOpTree",value:function executeOpTree(t){var r,a=_createForOfIteratorHelper(t);try{for(a.s();!(r=a.n()).done;){var i=r.value,l=i.fn,u=i.fnId,c=i.args;switch(0|u){case o.OPS.beginText:this.beginText();break;case o.OPS.dependency:break;case o.OPS.setLeading:this.setLeading(c);break;case o.OPS.setLeadingMoveText:this.setLeadingMoveText(c[0],c[1]);break;case o.OPS.setFont:this.setFont(c);break;case o.OPS.showText:case o.OPS.showSpacedText:this.showText(c[0]);break;case o.OPS.endText:this.endText();break;case o.OPS.moveText:this.moveText(c[0],c[1]);break;case o.OPS.setCharSpacing:this.setCharSpacing(c[0]);break;case o.OPS.setWordSpacing:this.setWordSpacing(c[0]);break;case o.OPS.setHScale:this.setHScale(c[0]);break;case o.OPS.setTextMatrix:this.setTextMatrix(c[0],c[1],c[2],c[3],c[4],c[5]);break;case o.OPS.setTextRise:this.setTextRise(c[0]);break;case o.OPS.setTextRenderingMode:this.setTextRenderingMode(c[0]);break;case o.OPS.setLineWidth:this.setLineWidth(c[0]);break;case o.OPS.setLineJoin:this.setLineJoin(c[0]);break;case o.OPS.setLineCap:this.setLineCap(c[0]);break;case o.OPS.setMiterLimit:this.setMiterLimit(c[0]);break;case o.OPS.setFillRGBColor:this.setFillRGBColor(c[0],c[1],c[2]);break;case o.OPS.setStrokeRGBColor:this.setStrokeRGBColor(c[0],c[1],c[2]);break;case o.OPS.setStrokeColorN:this.setStrokeColorN(c);break;case o.OPS.setFillColorN:this.setFillColorN(c);break;case o.OPS.shadingFill:this.shadingFill(c[0]);break;case o.OPS.setDash:this.setDash(c[0],c[1]);break;case o.OPS.setRenderingIntent:this.setRenderingIntent(c[0]);break;case o.OPS.setFlatness:this.setFlatness(c[0]);break;case o.OPS.setGState:this.setGState(c[0]);break;case o.OPS.fill:this.fill();break;case o.OPS.eoFill:this.eoFill();break;case o.OPS.stroke:this.stroke();break;case o.OPS.fillStroke:this.fillStroke();break;case o.OPS.eoFillStroke:this.eoFillStroke();break;case o.OPS.clip:this.clip("nonzero");break;case o.OPS.eoClip:this.clip("evenodd");break;case o.OPS.paintSolidColorImageMask:this.paintSolidColorImageMask();break;case o.OPS.paintImageXObject:this.paintImageXObject(c[0]);break;case o.OPS.paintInlineImageXObject:this.paintInlineImageXObject(c[0]);break;case o.OPS.paintImageMaskXObject:this.paintImageMaskXObject(c[0]);break;case o.OPS.paintFormXObjectBegin:this.paintFormXObjectBegin(c[0],c[1]);break;case o.OPS.paintFormXObjectEnd:this.paintFormXObjectEnd();break;case o.OPS.closePath:this.closePath();break;case o.OPS.closeStroke:this.closeStroke();break;case o.OPS.closeFillStroke:this.closeFillStroke();break;case o.OPS.closeEOFillStroke:this.closeEOFillStroke();break;case o.OPS.nextLine:this.nextLine();break;case o.OPS.transform:this.transform(c[0],c[1],c[2],c[3],c[4],c[5]);break;case o.OPS.constructPath:this.constructPath(c[0],c[1]);break;case o.OPS.endPath:this.endPath();break;case 92:this.group(i.items);break;default:(0,o.warn)("Unimplemented operator ".concat(l))}}}catch(t){a.e(t)}finally{a.f()}}},{key:"setWordSpacing",value:function setWordSpacing(t){this.current.wordSpacing=t}},{key:"setCharSpacing",value:function setCharSpacing(t){this.current.charSpacing=t}},{key:"nextLine",value:function nextLine(){this.moveText(0,this.current.leading)}},{key:"setTextMatrix",value:function setTextMatrix(t,r,a,o,i,l){var u=this.current;u.textMatrix=u.lineMatrix=[t,r,a,o,i,l];u.textMatrixScale=Math.hypot(t,r);u.x=u.lineX=0;u.y=u.lineY=0;u.xcoords=[];u.ycoords=[];u.tspan=this.svgFactory.createElement("svg:tspan");u.tspan.setAttributeNS(null,"font-family",u.fontFamily);u.tspan.setAttributeNS(null,"font-size","".concat(c(u.fontSize),"px"));u.tspan.setAttributeNS(null,"y",c(-u.y));u.txtElement=this.svgFactory.createElement("svg:text");u.txtElement.appendChild(u.tspan)}},{key:"beginText",value:function beginText(){var t=this.current;t.x=t.lineX=0;t.y=t.lineY=0;t.textMatrix=o.IDENTITY_MATRIX;t.lineMatrix=o.IDENTITY_MATRIX;t.textMatrixScale=1;t.tspan=this.svgFactory.createElement("svg:tspan");t.txtElement=this.svgFactory.createElement("svg:text");t.txtgrp=this.svgFactory.createElement("svg:g");t.xcoords=[];t.ycoords=[]}},{key:"moveText",value:function moveText(t,r){var a=this.current;a.x=a.lineX+=t;a.y=a.lineY+=r;a.xcoords=[];a.ycoords=[];a.tspan=this.svgFactory.createElement("svg:tspan");a.tspan.setAttributeNS(null,"font-family",a.fontFamily);a.tspan.setAttributeNS(null,"font-size","".concat(c(a.fontSize),"px"));a.tspan.setAttributeNS(null,"y",c(-a.y))}},{key:"showText",value:function showText(t){var r=this.current,a=r.font,i=r.fontSize;if(0!==i){var l,u=r.fontSizeScale,p=r.charSpacing,m=r.wordSpacing,y=r.fontDirection,v=r.textHScale*y,g=a.vertical,b=g?1:-1,_=a.defaultVMetrics,S=i*r.fontMatrix[0],A=0,C=_createForOfIteratorHelper(t);try{for(C.s();!(l=C.n()).done;){var k=l.value;if(null!==k)if((0,o.isNum)(k))A+=b*k*i/1e3;else{var R=(k.isSpace?m:0)+p,w=k.fontChar,P=void 0,x=void 0,T=k.width;if(g){var E=void 0,O=k.vmetric||_;E=-(E=k.vmetric?O[1]:.5*T)*S;var I=O[2]*S;T=O?-O[0]:T;P=E/u;x=(A+I)/u}else{P=A/u;x=0}if(k.isInFont||a.missingFile){r.xcoords.push(r.x+P);g&&r.ycoords.push(-r.y+x);r.tspan.textContent+=w}A+=g?T*S-R*y:T*S+R*y}else A+=y*m}}catch(t){C.e(t)}finally{C.f()}r.tspan.setAttributeNS(null,"x",r.xcoords.map(c).join(" "));g?r.tspan.setAttributeNS(null,"y",r.ycoords.map(c).join(" ")):r.tspan.setAttributeNS(null,"y",c(-r.y));g?r.y-=A:r.x+=A*v;r.tspan.setAttributeNS(null,"font-family",r.fontFamily);r.tspan.setAttributeNS(null,"font-size","".concat(c(r.fontSize),"px"));r.fontStyle!==h.fontStyle&&r.tspan.setAttributeNS(null,"font-style",r.fontStyle);r.fontWeight!==h.fontWeight&&r.tspan.setAttributeNS(null,"font-weight",r.fontWeight);var D=r.textRenderingMode&o.TextRenderingMode.FILL_STROKE_MASK;if(D===o.TextRenderingMode.FILL||D===o.TextRenderingMode.FILL_STROKE){r.fillColor!==h.fillColor&&r.tspan.setAttributeNS(null,"fill",r.fillColor);r.fillAlpha<1&&r.tspan.setAttributeNS(null,"fill-opacity",r.fillAlpha)}else r.textRenderingMode===o.TextRenderingMode.ADD_TO_PATH?r.tspan.setAttributeNS(null,"fill","transparent"):r.tspan.setAttributeNS(null,"fill","none");if(D===o.TextRenderingMode.STROKE||D===o.TextRenderingMode.FILL_STROKE){var M=1/(r.textMatrixScale||1);this._setStrokeAttributes(r.tspan,M)}var j=r.textMatrix;0!==r.textRise&&((j=j.slice())[5]+=r.textRise);r.txtElement.setAttributeNS(null,"transform","".concat(d(j)," scale(").concat(c(v),", -1)"));r.txtElement.setAttributeNS("http://www.w3.org/XML/1998/namespace","xml:space","preserve");r.txtElement.appendChild(r.tspan);r.txtgrp.appendChild(r.txtElement);this._ensureTransformGroup().appendChild(r.txtElement)}}},{key:"setLeadingMoveText",value:function setLeadingMoveText(t,r){this.setLeading(-r);this.moveText(t,r)}},{key:"addFontStyle",value:function addFontStyle(t){if(!t.data)throw new Error('addFontStyle: No font data available, ensure that the "fontExtraProperties" API parameter is set.');if(!this.cssStyle){this.cssStyle=this.svgFactory.createElement("svg:style");this.cssStyle.setAttributeNS(null,"type","text/css");this.defs.appendChild(this.cssStyle)}var r=(0,o.createObjectURL)(t.data,t.mimetype,this.forceDataSchema);this.cssStyle.textContent+='@font-face { font-family: "'.concat(t.loadedName,'";')+" src: url(".concat(r,"); }\n")}},{key:"setFont",value:function setFont(t){var r=this.current,a=this.commonObjs.get(t[0]),i=t[1];r.font=a;if(this.embedFonts&&!a.missingFile&&!this.embeddedFonts[a.loadedName]){this.addFontStyle(a);this.embeddedFonts[a.loadedName]=a}r.fontMatrix=a.fontMatrix||o.FONT_IDENTITY_MATRIX;var l="normal";a.black?l="900":a.bold&&(l="bold");var u=a.italic?"italic":"normal";if(i<0){i=-i;r.fontDirection=-1}else r.fontDirection=1;r.fontSize=i;r.fontFamily=a.loadedName;r.fontWeight=l;r.fontStyle=u;r.tspan=this.svgFactory.createElement("svg:tspan");r.tspan.setAttributeNS(null,"y",c(-r.y));r.xcoords=[];r.ycoords=[]}},{key:"endText",value:function endText(){var t,r=this.current;if(r.textRenderingMode&o.TextRenderingMode.ADD_TO_PATH_FLAG&&null!==(t=r.txtElement)&&void 0!==t&&t.hasChildNodes()){r.element=r.txtElement;this.clip("nonzero");this.endPath()}}},{key:"setLineWidth",value:function setLineWidth(t){t>0&&(this.current.lineWidth=t)}},{key:"setLineCap",value:function setLineCap(t){this.current.lineCap=p[t]}},{key:"setLineJoin",value:function setLineJoin(t){this.current.lineJoin=m[t]}},{key:"setMiterLimit",value:function setMiterLimit(t){this.current.miterLimit=t}},{key:"setStrokeAlpha",value:function setStrokeAlpha(t){this.current.strokeAlpha=t}},{key:"setStrokeRGBColor",value:function setStrokeRGBColor(t,r,a){this.current.strokeColor=o.Util.makeHexColor(t,r,a)}},{key:"setFillAlpha",value:function setFillAlpha(t){this.current.fillAlpha=t}},{key:"setFillRGBColor",value:function setFillRGBColor(t,r,a){this.current.fillColor=o.Util.makeHexColor(t,r,a);this.current.tspan=this.svgFactory.createElement("svg:tspan");this.current.xcoords=[];this.current.ycoords=[]}},{key:"setStrokeColorN",value:function setStrokeColorN(t){this.current.strokeColor=this._makeColorN_Pattern(t)}},{key:"setFillColorN",value:function setFillColorN(t){this.current.fillColor=this._makeColorN_Pattern(t)}},{key:"shadingFill",value:function shadingFill(t){var r=this.viewport.width,a=this.viewport.height,i=o.Util.inverseTransform(this.transformMatrix),l=o.Util.applyTransform([0,0],i),u=o.Util.applyTransform([0,a],i),c=o.Util.applyTransform([r,0],i),d=o.Util.applyTransform([r,a],i),h=Math.min(l[0],u[0],c[0],d[0]),p=Math.min(l[1],u[1],c[1],d[1]),m=Math.max(l[0],u[0],c[0],d[0]),y=Math.max(l[1],u[1],c[1],d[1]),v=this.svgFactory.createElement("svg:rect");v.setAttributeNS(null,"x",h);v.setAttributeNS(null,"y",p);v.setAttributeNS(null,"width",m-h);v.setAttributeNS(null,"height",y-p);v.setAttributeNS(null,"fill",this._makeShadingPattern(t));this.current.fillAlpha<1&&v.setAttributeNS(null,"fill-opacity",this.current.fillAlpha);this._ensureTransformGroup().appendChild(v)}},{key:"_makeColorN_Pattern",value:function _makeColorN_Pattern(t){return"TilingPattern"===t[0]?this._makeTilingPattern(t):this._makeShadingPattern(t)}},{key:"_makeTilingPattern",value:function _makeTilingPattern(t){var r=t[1],a=t[2],i=t[3]||o.IDENTITY_MATRIX,l=_slicedToArray(t[4],4),u=l[0],c=l[1],d=l[2],h=l[3],p=t[5],m=t[6],y=t[7],v="shading".concat(_++),g=_slicedToArray(o.Util.normalizeRect([].concat(_toConsumableArray(o.Util.applyTransform([u,c],i)),_toConsumableArray(o.Util.applyTransform([d,h],i)))),4),b=g[0],S=g[1],A=g[2],C=g[3],k=_slicedToArray(o.Util.singularValueDecompose2dScale(i),2),R=p*k[0],w=m*k[1],P=this.svgFactory.createElement("svg:pattern");P.setAttributeNS(null,"id",v);P.setAttributeNS(null,"patternUnits","userSpaceOnUse");P.setAttributeNS(null,"width",R);P.setAttributeNS(null,"height",w);P.setAttributeNS(null,"x","".concat(b));P.setAttributeNS(null,"y","".concat(S));var x=this.svg,T=this.transformMatrix,E=this.current.fillColor,O=this.current.strokeColor,I=this.svgFactory.create(A-b,C-S);this.svg=I;this.transformMatrix=i;if(2===y){var D=o.Util.makeHexColor.apply(o.Util,_toConsumableArray(r));this.current.fillColor=D;this.current.strokeColor=D}this.executeOpTree(this.convertOpList(a));this.svg=x;this.transformMatrix=T;this.current.fillColor=E;this.current.strokeColor=O;P.appendChild(I.childNodes[0]);this.defs.appendChild(P);return"url(#".concat(v,")")}},{key:"_makeShadingPattern",value:function _makeShadingPattern(t){switch(t[0]){case"RadialAxial":var r,a="shading".concat(_++),i=t[3];switch(t[1]){case"axial":var l=t[4],u=t[5];(r=this.svgFactory.createElement("svg:linearGradient")).setAttributeNS(null,"id",a);r.setAttributeNS(null,"gradientUnits","userSpaceOnUse");r.setAttributeNS(null,"x1",l[0]);r.setAttributeNS(null,"y1",l[1]);r.setAttributeNS(null,"x2",u[0]);r.setAttributeNS(null,"y2",u[1]);break;case"radial":var c=t[4],d=t[5],h=t[6],p=t[7];(r=this.svgFactory.createElement("svg:radialGradient")).setAttributeNS(null,"id",a);r.setAttributeNS(null,"gradientUnits","userSpaceOnUse");r.setAttributeNS(null,"cx",d[0]);r.setAttributeNS(null,"cy",d[1]);r.setAttributeNS(null,"r",p);r.setAttributeNS(null,"fx",c[0]);r.setAttributeNS(null,"fy",c[1]);r.setAttributeNS(null,"fr",h);break;default:throw new Error("Unknown RadialAxial type: ".concat(t[1]))}var m,y=_createForOfIteratorHelper(i);try{for(y.s();!(m=y.n()).done;){var v=m.value,g=this.svgFactory.createElement("svg:stop");g.setAttributeNS(null,"offset",v[0]);g.setAttributeNS(null,"stop-color",v[1]);r.appendChild(g)}}catch(t){y.e(t)}finally{y.f()}this.defs.appendChild(r);return"url(#".concat(a,")");case"Mesh":(0,o.warn)("Unimplemented pattern Mesh");return null;case"Dummy":return"hotpink";default:throw new Error("Unknown IR type: ".concat(t[0]))}}},{key:"setDash",value:function setDash(t,r){this.current.dashArray=t;this.current.dashPhase=r}},{key:"constructPath",value:function constructPath(t,r){var a,i=this.current,l=i.x,u=i.y,d=[],h=0,p=_createForOfIteratorHelper(t);try{for(p.s();!(a=p.n()).done;){switch(0|a.value){case o.OPS.rectangle:l=r[h++];u=r[h++];var m=r[h++],y=r[h++],v=l+m,g=u+y;d.push("M",c(l),c(u),"L",c(v),c(u),"L",c(v),c(g),"L",c(l),c(g),"Z");break;case o.OPS.moveTo:l=r[h++];u=r[h++];d.push("M",c(l),c(u));break;case o.OPS.lineTo:l=r[h++];u=r[h++];d.push("L",c(l),c(u));break;case o.OPS.curveTo:l=r[h+4];u=r[h+5];d.push("C",c(r[h]),c(r[h+1]),c(r[h+2]),c(r[h+3]),c(l),c(u));h+=6;break;case o.OPS.curveTo2:d.push("C",c(l),c(u),c(r[h]),c(r[h+1]),c(r[h+2]),c(r[h+3]));l=r[h+2];u=r[h+3];h+=4;break;case o.OPS.curveTo3:l=r[h+2];u=r[h+3];d.push("C",c(r[h]),c(r[h+1]),c(l),c(u),c(l),c(u));h+=4;break;case o.OPS.closePath:d.push("Z")}}}catch(t){p.e(t)}finally{p.f()}d=d.join(" ");if(i.path&&t.length>0&&t[0]!==o.OPS.rectangle&&t[0]!==o.OPS.moveTo)d=i.path.getAttributeNS(null,"d")+d;else{i.path=this.svgFactory.createElement("svg:path");this._ensureTransformGroup().appendChild(i.path)}i.path.setAttributeNS(null,"d",d);i.path.setAttributeNS(null,"fill","none");i.element=i.path;i.setCurrentPoint(l,u)}},{key:"endPath",value:function endPath(){var t=this.current;t.path=null;if(this.pendingClip)if(t.element){var r="clippath".concat(g++),a=this.svgFactory.createElement("svg:clipPath");a.setAttributeNS(null,"id",r);a.setAttributeNS(null,"transform",d(this.transformMatrix));var o=t.element.cloneNode(!0);"evenodd"===this.pendingClip?o.setAttributeNS(null,"clip-rule","evenodd"):o.setAttributeNS(null,"clip-rule","nonzero");this.pendingClip=null;a.appendChild(o);this.defs.appendChild(a);if(t.activeClipUrl){t.clipGroup=null;var i,l=_createForOfIteratorHelper(this.extraStack);try{for(l.s();!(i=l.n()).done;){i.value.clipGroup=null}}catch(t){l.e(t)}finally{l.f()}a.setAttributeNS(null,"clip-path",t.activeClipUrl)}t.activeClipUrl="url(#".concat(r,")");this.tgrp=null}else this.pendingClip=null}},{key:"clip",value:function clip(t){this.pendingClip=t}},{key:"closePath",value:function closePath(){var t=this.current;if(t.path){var r="".concat(t.path.getAttributeNS(null,"d"),"Z");t.path.setAttributeNS(null,"d",r)}}},{key:"setLeading",value:function setLeading(t){this.current.leading=-t}},{key:"setTextRise",value:function setTextRise(t){this.current.textRise=t}},{key:"setTextRenderingMode",value:function setTextRenderingMode(t){this.current.textRenderingMode=t}},{key:"setHScale",value:function setHScale(t){this.current.textHScale=t/100}},{key:"setRenderingIntent",value:function setRenderingIntent(t){}},{key:"setFlatness",value:function setFlatness(t){}},{key:"setGState",value:function setGState(t){var r,a=_createForOfIteratorHelper(t);try{for(a.s();!(r=a.n()).done;){var i=_slicedToArray(r.value,2),l=i[0],u=i[1];switch(l){case"LW":this.setLineWidth(u);break;case"LC":this.setLineCap(u);break;case"LJ":this.setLineJoin(u);break;case"ML":this.setMiterLimit(u);break;case"D":this.setDash(u[0],u[1]);break;case"RI":this.setRenderingIntent(u);break;case"FL":this.setFlatness(u);break;case"Font":this.setFont(u);break;case"CA":this.setStrokeAlpha(u);break;case"ca":this.setFillAlpha(u);break;default:(0,o.warn)("Unimplemented graphic state operator ".concat(l))}}}catch(t){a.e(t)}finally{a.f()}}},{key:"fill",value:function fill(){var t=this.current;if(t.element){t.element.setAttributeNS(null,"fill",t.fillColor);t.element.setAttributeNS(null,"fill-opacity",t.fillAlpha);this.endPath()}}},{key:"stroke",value:function stroke(){var t=this.current;if(t.element){this._setStrokeAttributes(t.element);t.element.setAttributeNS(null,"fill","none");this.endPath()}}},{key:"_setStrokeAttributes",value:function _setStrokeAttributes(t){var r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:1,a=this.current,o=a.dashArray;1!==r&&o.length>0&&(o=o.map((function(t){return r*t})));t.setAttributeNS(null,"stroke",a.strokeColor);t.setAttributeNS(null,"stroke-opacity",a.strokeAlpha);t.setAttributeNS(null,"stroke-miterlimit",c(a.miterLimit));t.setAttributeNS(null,"stroke-linecap",a.lineCap);t.setAttributeNS(null,"stroke-linejoin",a.lineJoin);t.setAttributeNS(null,"stroke-width",c(r*a.lineWidth)+"px");t.setAttributeNS(null,"stroke-dasharray",o.map(c).join(" "));t.setAttributeNS(null,"stroke-dashoffset",c(r*a.dashPhase)+"px")}},{key:"eoFill",value:function eoFill(){this.current.element&&this.current.element.setAttributeNS(null,"fill-rule","evenodd");this.fill()}},{key:"fillStroke",value:function fillStroke(){this.stroke();this.fill()}},{key:"eoFillStroke",value:function eoFillStroke(){this.current.element&&this.current.element.setAttributeNS(null,"fill-rule","evenodd");this.fillStroke()}},{key:"closeStroke",value:function closeStroke(){this.closePath();this.stroke()}},{key:"closeFillStroke",value:function closeFillStroke(){this.closePath();this.fillStroke()}},{key:"closeEOFillStroke",value:function closeEOFillStroke(){this.closePath();this.eoFillStroke()}},{key:"paintSolidColorImageMask",value:function paintSolidColorImageMask(){var t=this.svgFactory.createElement("svg:rect");t.setAttributeNS(null,"x","0");t.setAttributeNS(null,"y","0");t.setAttributeNS(null,"width","1px");t.setAttributeNS(null,"height","1px");t.setAttributeNS(null,"fill",this.current.fillColor);this._ensureTransformGroup().appendChild(t)}},{key:"paintImageXObject",value:function paintImageXObject(t){var r=t.startsWith("g_")?this.commonObjs.get(t):this.objs.get(t);r?this.paintInlineImageXObject(r):(0,o.warn)("Dependent image with object ID ".concat(t," is not ready yet"))}},{key:"paintInlineImageXObject",value:function paintInlineImageXObject(t,r){var a=t.width,o=t.height,i=y(t,this.forceDataSchema,!!r),l=this.svgFactory.createElement("svg:rect");l.setAttributeNS(null,"x","0");l.setAttributeNS(null,"y","0");l.setAttributeNS(null,"width",c(a));l.setAttributeNS(null,"height",c(o));this.current.element=l;this.clip("nonzero");var u=this.svgFactory.createElement("svg:image");u.setAttributeNS("http://www.w3.org/1999/xlink","xlink:href",i);u.setAttributeNS(null,"x","0");u.setAttributeNS(null,"y",c(-o));u.setAttributeNS(null,"width",c(a)+"px");u.setAttributeNS(null,"height",c(o)+"px");u.setAttributeNS(null,"transform","scale(".concat(c(1/a)," ").concat(c(-1/o),")"));r?r.appendChild(u):this._ensureTransformGroup().appendChild(u)}},{key:"paintImageMaskXObject",value:function paintImageMaskXObject(t){var r=this.current,a=t.width,o=t.height,i=r.fillColor;r.maskId="mask".concat(b++);var l=this.svgFactory.createElement("svg:mask");l.setAttributeNS(null,"id",r.maskId);var u=this.svgFactory.createElement("svg:rect");u.setAttributeNS(null,"x","0");u.setAttributeNS(null,"y","0");u.setAttributeNS(null,"width",c(a));u.setAttributeNS(null,"height",c(o));u.setAttributeNS(null,"fill",i);u.setAttributeNS(null,"mask","url(#".concat(r.maskId,")"));this.defs.appendChild(l);this._ensureTransformGroup().appendChild(u);this.paintInlineImageXObject(t,l)}},{key:"paintFormXObjectBegin",value:function paintFormXObjectBegin(t,r){Array.isArray(t)&&6===t.length&&this.transform(t[0],t[1],t[2],t[3],t[4],t[5]);if(r){var a=r[2]-r[0],o=r[3]-r[1],i=this.svgFactory.createElement("svg:rect");i.setAttributeNS(null,"x",r[0]);i.setAttributeNS(null,"y",r[1]);i.setAttributeNS(null,"width",c(a));i.setAttributeNS(null,"height",c(o));this.current.element=i;this.clip("nonzero");this.endPath()}}},{key:"paintFormXObjectEnd",value:function paintFormXObjectEnd(){}},{key:"_initialize",value:function _initialize(t){var r=this.svgFactory.create(t.width,t.height),a=this.svgFactory.createElement("svg:defs");r.appendChild(a);this.defs=a;var o=this.svgFactory.createElement("svg:g");o.setAttributeNS(null,"transform",d(t.transform));r.appendChild(o);this.svg=o;return r}},{key:"_ensureClipGroup",value:function _ensureClipGroup(){if(!this.current.clipGroup){var t=this.svgFactory.createElement("svg:g");t.setAttributeNS(null,"clip-path",this.current.activeClipUrl);this.svg.appendChild(t);this.current.clipGroup=t}return this.current.clipGroup}},{key:"_ensureTransformGroup",value:function _ensureTransformGroup(){if(!this.tgrp){this.tgrp=this.svgFactory.createElement("svg:g");this.tgrp.setAttributeNS(null,"transform",d(this.transformMatrix));this.current.activeClipUrl?this._ensureClipGroup().appendChild(this.tgrp):this.svg.appendChild(this.tgrp)}return this.tgrp}}]);return SVGGraphics}()},(t,r,a)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});r.XfaLayer=void 0;var o=a(4),i=a(130);function _slicedToArray(t,r){return function _arrayWithHoles(t){if(Array.isArray(t))return t}(t)||function _iterableToArrayLimit(t,r){var a=null==t?null:"undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(null==a)return;var o,i,l=[],u=!0,c=!1;try{for(a=a.call(t);!(u=(o=a.next()).done);u=!0){l.push(o.value);if(r&&l.length===r)break}}catch(t){c=!0;i=t}finally{try{u||null==a.return||a.return()}finally{if(c)throw i}}return l}(t,r)||_unsupportedIterableToArray(t,r)||function _nonIterableRest(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function _createForOfIteratorHelper(t,r){var a="undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(!a){if(Array.isArray(t)||(a=_unsupportedIterableToArray(t))||r&&t&&"number"==typeof t.length){a&&(t=a);var o=0,i=function F(){};return{s:i,n:function n(){return o>=t.length?{done:!0}:{done:!1,value:t[o++]}},e:function e(t){throw t},f:i}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var l,u=!0,c=!1;return{s:function s(){a=a.call(t)},n:function n(){var t=a.next();u=t.done;return t},e:function e(t){c=!0;l=t},f:function f(){try{u||null==a.return||a.return()}finally{if(c)throw l}}}}function _unsupportedIterableToArray(t,r){if(t){if("string"==typeof t)return _arrayLikeToArray(t,r);var a=Object.prototype.toString.call(t).slice(8,-1);"Object"===a&&t.constructor&&(a=t.constructor.name);return"Map"===a||"Set"===a?Array.from(t):"Arguments"===a||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(a)?_arrayLikeToArray(t,r):void 0}}function _arrayLikeToArray(t,r){(null==r||r>t.length)&&(r=t.length);for(var a=0,o=new Array(r);a<r;a++)o[a]=t[a];return o}function _defineProperties(t,r){for(var a=0;a<r.length;a++){var o=r[a];o.enumerable=o.enumerable||!1;o.configurable=!0;"value"in o&&(o.writable=!0);Object.defineProperty(t,o.key,o)}}var l=function(){function XfaLayer(){!function _classCallCheck(t,r){if(!(t instanceof r))throw new TypeError("Cannot call a class as a function")}(this,XfaLayer)}!function _createClass(t,r,a){r&&_defineProperties(t.prototype,r);a&&_defineProperties(t,a);return t}(XfaLayer,null,[{key:"setupStorage",value:function setupStorage(t,r,a,o,i){var l=o.getValue(r,{value:null});switch(a.name){case"textarea":null!==l.value&&(t.textContent=l.value);if("print"===i)break;t.addEventListener("input",(function(t){o.setValue(r,{value:t.target.value})}));break;case"input":if("radio"===a.attributes.type||"checkbox"===a.attributes.type){l.value===a.attributes.xfaOn?t.setAttribute("checked",!0):l.value===a.attributes.xfaOff&&t.removeAttribute("checked");if("print"===i)break;t.addEventListener("change",(function(t){o.setValue(r,{value:t.target.checked?t.target.getAttribute("xfaOn"):t.target.getAttribute("xfaOff")})}))}else{null!==l.value&&t.setAttribute("value",l.value);if("print"===i)break;t.addEventListener("input",(function(t){o.setValue(r,{value:t.target.value})}))}break;case"select":if(null!==l.value){var u,c=_createForOfIteratorHelper(a.children);try{for(c.s();!(u=c.n()).done;){var d=u.value;d.attributes.value===l.value&&(d.attributes.selected=!0)}}catch(t){c.e(t)}finally{c.f()}}t.addEventListener("input",(function(t){var a=t.target.options,i=-1===a.selectedIndex?"":a[a.selectedIndex].value;o.setValue(r,{value:i})}))}}},{key:"setAttributes",value:function setAttributes(t){var r=t.html,a=t.element,i=t.storage,l=void 0===i?null:i,u=t.intent,c=t.linkService,d=a.attributes,h=r instanceof HTMLAnchorElement;"radio"===d.type&&(d.name="".concat(d.name,"-").concat(u));for(var p=0,m=Object.entries(d);p<m.length;p++){var y=_slicedToArray(m[p],2),v=y[0],g=y[1];if(null!=g&&"dataId"!==v)if("style"!==v)if("textContent"===v)r.textContent=g;else if("class"===v)r.setAttribute(v,g.join(" "));else{if(h&&("href"===v||"newWindow"===v))continue;r.setAttribute(v,g)}else Object.assign(r.style,g)}if(h){var b;c.addLinkAttributes||(0,o.warn)("XfaLayer.setAttribute - missing `addLinkAttributes`-method on the `linkService`-instance.");null===(b=c.addLinkAttributes)||void 0===b||b.call(c,r,d.href,d.newWindow)}l&&d.dataId&&this.setupStorage(r,d.dataId,a,l)}},{key:"render",value:function render(t){var r=t.annotationStorage,a=t.linkService,o=t.xfa,l=t.intent||"display",u=document.createElement(o.name);o.attributes&&this.setAttributes({html:u,element:o,intent:l,linkService:a});var c=[[o,-1,u]],d=t.div;d.appendChild(u);var h="matrix(".concat(t.viewport.transform.join(","),")");d.style.transform=h;d.setAttribute("class","xfaLayer xfaFont");for(var p=[];c.length>0;){var m,y=_slicedToArray(c[c.length-1],3),v=y[0],g=y[1],b=y[2];if(g+1!==v.children.length){var _=v.children[++c[c.length-1][1]];if(null!==_){var S=_.name;if("#text"!==S){var A=void 0;A=null!=_&&null!==(m=_.attributes)&&void 0!==m&&m.xmlns?document.createElementNS(_.attributes.xmlns,S):document.createElement(S);b.appendChild(A);_.attributes&&this.setAttributes({html:A,element:_,storage:r,intent:l,linkService:a});if(_.children&&_.children.length>0)c.push([_,-1,A]);else if(_.value){var C=document.createTextNode(_.value);i.XfaText.shouldBuildText(S)&&p.push(C);A.appendChild(C)}}else{var k=document.createTextNode(_.value);p.push(k);b.appendChild(k)}}}else c.pop()}var R,w=_createForOfIteratorHelper(d.querySelectorAll(".xfaNonInteractive input, .xfaNonInteractive textarea"));try{for(w.s();!(R=w.n()).done;){R.value.setAttribute("readOnly",!0)}}catch(t){w.e(t)}finally{w.f()}return{textDivs:p}}},{key:"update",value:function update(t){var r="matrix(".concat(t.viewport.transform.join(","),")");t.div.style.transform=r;t.div.hidden=!1}}]);return XfaLayer}();r.XfaLayer=l},(t,r,a)=>{"use strict";function _typeof(t){_typeof="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function _typeof(t){return typeof t}:function _typeof(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t};return _typeof(t)}Object.defineProperty(r,"__esModule",{value:!0});r.PDFNodeStream=void 0;var o=function _interopRequireDefault(t){return t&&t.__esModule?t:{default:t}}(a(2)),i=a(4),l=a(137);function _inherits(t,r){if("function"!=typeof r&&null!==r)throw new TypeError("Super expression must either be null or a function");t.prototype=Object.create(r&&r.prototype,{constructor:{value:t,writable:!0,configurable:!0}});r&&_setPrototypeOf(t,r)}function _setPrototypeOf(t,r){_setPrototypeOf=Object.setPrototypeOf||function _setPrototypeOf(t,r){t.__proto__=r;return t};return _setPrototypeOf(t,r)}function _createSuper(t){var r=function _isNativeReflectConstruct(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){})));return!0}catch(t){return!1}}();return function _createSuperInternal(){var a,o=_getPrototypeOf(t);if(r){var i=_getPrototypeOf(this).constructor;a=Reflect.construct(o,arguments,i)}else a=o.apply(this,arguments);return _possibleConstructorReturn(this,a)}}function _possibleConstructorReturn(t,r){if(r&&("object"===_typeof(r)||"function"==typeof r))return r;if(void 0!==r)throw new TypeError("Derived constructors may only return object or undefined");return function _assertThisInitialized(t){if(void 0===t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return t}(t)}function _getPrototypeOf(t){_getPrototypeOf=Object.setPrototypeOf?Object.getPrototypeOf:function _getPrototypeOf(t){return t.__proto__||Object.getPrototypeOf(t)};return _getPrototypeOf(t)}function asyncGeneratorStep(t,r,a,o,i,l,u){try{var c=t[l](u),d=c.value}catch(t){a(t);return}c.done?r(d):Promise.resolve(d).then(o,i)}function _asyncToGenerator(t){return function(){var r=this,a=arguments;return new Promise((function(o,i){var l=t.apply(r,a);function _next(t){asyncGeneratorStep(l,o,i,_next,_throw,"next",t)}function _throw(t){asyncGeneratorStep(l,o,i,_next,_throw,"throw",t)}_next(void 0)}))}}function _createForOfIteratorHelper(t,r){var a="undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(!a){if(Array.isArray(t)||(a=function _unsupportedIterableToArray(t,r){if(!t)return;if("string"==typeof t)return _arrayLikeToArray(t,r);var a=Object.prototype.toString.call(t).slice(8,-1);"Object"===a&&t.constructor&&(a=t.constructor.name);if("Map"===a||"Set"===a)return Array.from(t);if("Arguments"===a||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(a))return _arrayLikeToArray(t,r)}(t))||r&&t&&"number"==typeof t.length){a&&(t=a);var o=0,i=function F(){};return{s:i,n:function n(){return o>=t.length?{done:!0}:{done:!1,value:t[o++]}},e:function e(t){throw t},f:i}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var l,u=!0,c=!1;return{s:function s(){a=a.call(t)},n:function n(){var t=a.next();u=t.done;return t},e:function e(t){c=!0;l=t},f:function f(){try{u||null==a.return||a.return()}finally{if(c)throw l}}}}function _arrayLikeToArray(t,r){(null==r||r>t.length)&&(r=t.length);for(var a=0,o=new Array(r);a<r;a++)o[a]=t[a];return o}function _classCallCheck(t,r){if(!(t instanceof r))throw new TypeError("Cannot call a class as a function")}function _defineProperties(t,r){for(var a=0;a<r.length;a++){var o=r[a];o.enumerable=o.enumerable||!1;o.configurable=!0;"value"in o&&(o.writable=!0);Object.defineProperty(t,o.key,o)}}function _createClass(t,r,a){r&&_defineProperties(t.prototype,r);a&&_defineProperties(t,a);return t}var u=require("fs"),c=require("http"),d=require("https"),h=require("url"),p=/^file:\/\/\/[a-zA-Z]:\//;var m=function(){function PDFNodeStream(t){_classCallCheck(this,PDFNodeStream);this.source=t;this.url=function parseUrl(t){var r=h.parse(t);if("file:"===r.protocol||r.host)return r;if(/^[a-z]:[/\\]/i.test(t))return h.parse("file:///".concat(t));r.host||(r.protocol="file:");return r}(t.url);this.isHttp="http:"===this.url.protocol||"https:"===this.url.protocol;this.isFsUrl="file:"===this.url.protocol;this.httpHeaders=this.isHttp&&t.httpHeaders||{};this._fullRequestReader=null;this._rangeRequestReaders=[]}_createClass(PDFNodeStream,[{key:"_progressiveDataLength",get:function get(){var t,r;return null!==(t=null===(r=this._fullRequestReader)||void 0===r?void 0:r._loaded)&&void 0!==t?t:0}},{key:"getFullReader",value:function getFullReader(){(0,i.assert)(!this._fullRequestReader,"PDFNodeStream.getFullReader can only be called once.");this._fullRequestReader=this.isFsUrl?new _(this):new g(this);return this._fullRequestReader}},{key:"getRangeReader",value:function getRangeReader(t,r){if(r<=this._progressiveDataLength)return null;var a=this.isFsUrl?new S(this,t,r):new b(this,t,r);this._rangeRequestReaders.push(a);return a}},{key:"cancelAllRequests",value:function cancelAllRequests(t){this._fullRequestReader&&this._fullRequestReader.cancel(t);var r,a=_createForOfIteratorHelper(this._rangeRequestReaders.slice(0));try{for(a.s();!(r=a.n()).done;){r.value.cancel(t)}}catch(t){a.e(t)}finally{a.f()}}}]);return PDFNodeStream}();r.PDFNodeStream=m;var y=function(){function BaseFullReader(t){_classCallCheck(this,BaseFullReader);this._url=t.url;this._done=!1;this._storedError=null;this.onProgress=null;var r=t.source;this._contentLength=r.length;this._loaded=0;this._filename=null;this._disableRange=r.disableRange||!1;this._rangeChunkSize=r.rangeChunkSize;this._rangeChunkSize||this._disableRange||(this._disableRange=!0);this._isStreamingSupported=!r.disableStream;this._isRangeSupported=!r.disableRange;this._readableStream=null;this._readCapability=(0,i.createPromiseCapability)();this._headersCapability=(0,i.createPromiseCapability)()}_createClass(BaseFullReader,[{key:"headersReady",get:function get(){return this._headersCapability.promise}},{key:"filename",get:function get(){return this._filename}},{key:"contentLength",get:function get(){return this._contentLength}},{key:"isRangeSupported",get:function get(){return this._isRangeSupported}},{key:"isStreamingSupported",get:function get(){return this._isStreamingSupported}},{key:"read",value:(t=_asyncToGenerator(o.default.mark((function _callee(){var t,r;return o.default.wrap((function _callee$(a){for(;;)switch(a.prev=a.next){case 0:a.next=2;return this._readCapability.promise;case 2:if(!this._done){a.next=4;break}return a.abrupt("return",{value:void 0,done:!0});case 4:if(!this._storedError){a.next=6;break}throw this._storedError;case 6:if(null!==(t=this._readableStream.read())){a.next=10;break}this._readCapability=(0,i.createPromiseCapability)();return a.abrupt("return",this.read());case 10:this._loaded+=t.length;this.onProgress&&this.onProgress({loaded:this._loaded,total:this._contentLength});r=new Uint8Array(t).buffer;return a.abrupt("return",{value:r,done:!1});case 14:case"end":return a.stop()}}),_callee,this)}))),function read(){return t.apply(this,arguments)})},{key:"cancel",value:function cancel(t){this._readableStream?this._readableStream.destroy(t):this._error(t)}},{key:"_error",value:function _error(t){this._storedError=t;this._readCapability.resolve()}},{key:"_setReadableStream",value:function _setReadableStream(t){var r=this;this._readableStream=t;t.on("readable",(function(){r._readCapability.resolve()}));t.on("end",(function(){t.destroy();r._done=!0;r._readCapability.resolve()}));t.on("error",(function(t){r._error(t)}));!this._isStreamingSupported&&this._isRangeSupported&&this._error(new i.AbortException("streaming is disabled"));this._storedError&&this._readableStream.destroy(this._storedError)}}]);var t;return BaseFullReader}(),v=function(){function BaseRangeReader(t){_classCallCheck(this,BaseRangeReader);this._url=t.url;this._done=!1;this._storedError=null;this.onProgress=null;this._loaded=0;this._readableStream=null;this._readCapability=(0,i.createPromiseCapability)();var r=t.source;this._isStreamingSupported=!r.disableStream}_createClass(BaseRangeReader,[{key:"isStreamingSupported",get:function get(){return this._isStreamingSupported}},{key:"read",value:(t=_asyncToGenerator(o.default.mark((function _callee2(){var t,r;return o.default.wrap((function _callee2$(a){for(;;)switch(a.prev=a.next){case 0:a.next=2;return this._readCapability.promise;case 2:if(!this._done){a.next=4;break}return a.abrupt("return",{value:void 0,done:!0});case 4:if(!this._storedError){a.next=6;break}throw this._storedError;case 6:if(null!==(t=this._readableStream.read())){a.next=10;break}this._readCapability=(0,i.createPromiseCapability)();return a.abrupt("return",this.read());case 10:this._loaded+=t.length;this.onProgress&&this.onProgress({loaded:this._loaded});r=new Uint8Array(t).buffer;return a.abrupt("return",{value:r,done:!1});case 14:case"end":return a.stop()}}),_callee2,this)}))),function read(){return t.apply(this,arguments)})},{key:"cancel",value:function cancel(t){this._readableStream?this._readableStream.destroy(t):this._error(t)}},{key:"_error",value:function _error(t){this._storedError=t;this._readCapability.resolve()}},{key:"_setReadableStream",value:function _setReadableStream(t){var r=this;this._readableStream=t;t.on("readable",(function(){r._readCapability.resolve()}));t.on("end",(function(){t.destroy();r._done=!0;r._readCapability.resolve()}));t.on("error",(function(t){r._error(t)}));this._storedError&&this._readableStream.destroy(this._storedError)}}]);var t;return BaseRangeReader}();function createRequestOptions(t,r){return{protocol:t.protocol,auth:t.auth,host:t.hostname,port:t.port,path:t.path,method:"GET",headers:r}}var g=function(t){_inherits(PDFNodeStreamFullReader,t);var r=_createSuper(PDFNodeStreamFullReader);function PDFNodeStreamFullReader(t){var a;_classCallCheck(this,PDFNodeStreamFullReader);var o=function handleResponse(r){if(404!==r.statusCode){a._headersCapability.resolve();a._setReadableStream(r);var o=function getResponseHeader(t){return a._readableStream.headers[t.toLowerCase()]},u=(0,l.validateRangeRequestCapabilities)({getResponseHeader:o,isHttp:t.isHttp,rangeChunkSize:a._rangeChunkSize,disableRange:a._disableRange}),c=u.allowRangeRequests,d=u.suggestedLength;a._isRangeSupported=c;a._contentLength=d||a._contentLength;a._filename=(0,l.extractFilenameFromHeader)(o)}else{var h=new i.MissingPDFException('Missing PDF "'.concat(a._url,'".'));a._storedError=h;a._headersCapability.reject(h)}};(a=r.call(this,t))._request=null;"http:"===a._url.protocol?a._request=c.request(createRequestOptions(a._url,t.httpHeaders),o):a._request=d.request(createRequestOptions(a._url,t.httpHeaders),o);a._request.on("error",(function(t){a._storedError=t;a._headersCapability.reject(t)}));a._request.end();return a}return PDFNodeStreamFullReader}(y),b=function(t){_inherits(PDFNodeStreamRangeReader,t);var r=_createSuper(PDFNodeStreamRangeReader);function PDFNodeStreamRangeReader(t,a,o){var l;_classCallCheck(this,PDFNodeStreamRangeReader);(l=r.call(this,t))._httpHeaders={};for(var u in t.httpHeaders){var h=t.httpHeaders[u];void 0!==h&&(l._httpHeaders[u]=h)}l._httpHeaders.Range="bytes=".concat(a,"-").concat(o-1);var p=function handleResponse(t){if(404!==t.statusCode)l._setReadableStream(t);else{var r=new i.MissingPDFException('Missing PDF "'.concat(l._url,'".'));l._storedError=r}};l._request=null;"http:"===l._url.protocol?l._request=c.request(createRequestOptions(l._url,l._httpHeaders),p):l._request=d.request(createRequestOptions(l._url,l._httpHeaders),p);l._request.on("error",(function(t){l._storedError=t}));l._request.end();return l}return PDFNodeStreamRangeReader}(v),_=function(t){_inherits(PDFNodeStreamFsFullReader,t);var r=_createSuper(PDFNodeStreamFsFullReader);function PDFNodeStreamFsFullReader(t){var a;_classCallCheck(this,PDFNodeStreamFsFullReader);a=r.call(this,t);var o=decodeURIComponent(a._url.path);p.test(a._url.href)&&(o=o.replace(/^\//,""));u.lstat(o,(function(t,r){if(t){"ENOENT"===t.code&&(t=new i.MissingPDFException('Missing PDF "'.concat(o,'".')));a._storedError=t;a._headersCapability.reject(t)}else{a._contentLength=r.size;a._setReadableStream(u.createReadStream(o));a._headersCapability.resolve()}}));return a}return PDFNodeStreamFsFullReader}(y),S=function(t){_inherits(PDFNodeStreamFsRangeReader,t);var r=_createSuper(PDFNodeStreamFsRangeReader);function PDFNodeStreamFsRangeReader(t,a,o){var i;_classCallCheck(this,PDFNodeStreamFsRangeReader);i=r.call(this,t);var l=decodeURIComponent(i._url.path);p.test(i._url.href)&&(l=l.replace(/^\//,""));i._setReadableStream(u.createReadStream(l,{start:a,end:o-1}));return i}return PDFNodeStreamFsRangeReader}(v)},(t,r,a)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});r.createResponseStatusError=function createResponseStatusError(t,r){if(404===t||0===t&&r.startsWith("file:"))return new o.MissingPDFException('Missing PDF "'+r+'".');return new o.UnexpectedResponseException("Unexpected server response (".concat(t,') while retrieving PDF "').concat(r,'".'),t)};r.extractFilenameFromHeader=function extractFilenameFromHeader(t){var r=t("Content-Disposition");if(r){var a=(0,i.getFilenameFromContentDispositionHeader)(r);if(a.includes("%"))try{a=decodeURIComponent(a)}catch(t){}if((0,l.isPdfFile)(a))return a}return null};r.validateRangeRequestCapabilities=function validateRangeRequestCapabilities(t){var r=t.getResponseHeader,a=t.isHttp,i=t.rangeChunkSize,l=t.disableRange;(0,o.assert)(i>0,"Range chunk size must be larger than zero");var u={allowRangeRequests:!1,suggestedLength:void 0},c=parseInt(r("Content-Length"),10);if(!Number.isInteger(c))return u;u.suggestedLength=c;if(c<=2*i)return u;if(l||!a)return u;if("bytes"!==r("Accept-Ranges"))return u;if("identity"!==(r("Content-Encoding")||"identity"))return u;u.allowRangeRequests=!0;return u};r.validateResponseStatus=function validateResponseStatus(t){return 200===t||206===t};var o=a(4),i=a(138),l=a(1)},(t,r,a)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});r.getFilenameFromContentDispositionHeader=function getFilenameFromContentDispositionHeader(t){var r=!0,a=toParamRegExp("filename\\*","i").exec(t);if(a){var i=rfc2616unquote(a=a[1]);return fixupEncoding(i=rfc2047decode(i=rfc5987decode(i=unescape(i))))}if(a=function rfc2231getparam(t){var r,a=[],o=toParamRegExp("filename\\*((?!0\\d)\\d+)(\\*?)","ig");for(;null!==(r=o.exec(t));){var i=_slicedToArray(r,4),l=i[1],u=i[2],c=i[3];if((l=parseInt(l,10))in a){if(0===l)break}else a[l]=[u,c]}for(var d=[],h=0;h<a.length&&h in a;++h){var p=_slicedToArray(a[h],2),m=p[0],y=p[1];y=rfc2616unquote(y);if(m){y=unescape(y);0===h&&(y=rfc5987decode(y))}d.push(y)}return d.join("")}(t)){return fixupEncoding(rfc2047decode(a))}if(a=toParamRegExp("filename","i").exec(t)){var l=rfc2616unquote(a=a[1]);return fixupEncoding(l=rfc2047decode(l))}function toParamRegExp(t,r){return new RegExp("(?:^|;)\\s*"+t+'\\s*=\\s*([^";\\s][^;\\s]*|"(?:[^"\\\\]|\\\\"?)+"?)',r)}function textdecode(t,a){if(t){if(!/^[\x00-\xFF]+$/.test(a))return a;try{var i=new TextDecoder(t,{fatal:!0}),l=(0,o.stringToBytes)(a);a=i.decode(l);r=!1}catch(o){if(/^utf-?8$/i.test(t))try{a=decodeURIComponent(escape(a));r=!1}catch(t){}}}return a}function fixupEncoding(t){if(r&&/[\x80-\xff]/.test(t)){t=textdecode("utf-8",t);r&&(t=textdecode("iso-8859-1",t))}return t}function rfc2616unquote(t){if(t.startsWith('"')){for(var r=t.slice(1).split('\\"'),a=0;a<r.length;++a){var o=r[a].indexOf('"');if(-1!==o){r[a]=r[a].slice(0,o);r.length=a+1}r[a]=r[a].replace(/\\(.)/g,"$1")}t=r.join('"')}return t}function rfc5987decode(t){var r=t.indexOf("'");return-1===r?t:textdecode(t.slice(0,r),t.slice(r+1).replace(/^[^']*'/,""))}function rfc2047decode(t){return!t.startsWith("=?")||/[\x00-\x19\x80-\xff]/.test(t)?t:t.replace(/=\?([\w-]*)\?([QqBb])\?((?:[^?]|\?(?!=))*)\?=/g,(function(t,r,a,o){if("q"===a||"Q"===a)return textdecode(r,o=(o=o.replace(/_/g," ")).replace(/=([0-9a-fA-F]{2})/g,(function(t,r){return String.fromCharCode(parseInt(r,16))})));try{o=atob(o)}catch(t){}return textdecode(r,o)}))}return""};var o=a(4);function _slicedToArray(t,r){return function _arrayWithHoles(t){if(Array.isArray(t))return t}(t)||function _iterableToArrayLimit(t,r){var a=null==t?null:"undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(null==a)return;var o,i,l=[],u=!0,c=!1;try{for(a=a.call(t);!(u=(o=a.next()).done);u=!0){l.push(o.value);if(r&&l.length===r)break}}catch(t){c=!0;i=t}finally{try{u||null==a.return||a.return()}finally{if(c)throw i}}return l}(t,r)||function _unsupportedIterableToArray(t,r){if(!t)return;if("string"==typeof t)return _arrayLikeToArray(t,r);var a=Object.prototype.toString.call(t).slice(8,-1);"Object"===a&&t.constructor&&(a=t.constructor.name);if("Map"===a||"Set"===a)return Array.from(t);if("Arguments"===a||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(a))return _arrayLikeToArray(t,r)}(t,r)||function _nonIterableRest(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function _arrayLikeToArray(t,r){(null==r||r>t.length)&&(r=t.length);for(var a=0,o=new Array(r);a<r;a++)o[a]=t[a];return o}},(t,r,a)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});r.PDFNetworkStream=void 0;var o=function _interopRequireDefault(t){return t&&t.__esModule?t:{default:t}}(a(2)),i=a(4),l=a(137);function asyncGeneratorStep(t,r,a,o,i,l,u){try{var c=t[l](u),d=c.value}catch(t){a(t);return}c.done?r(d):Promise.resolve(d).then(o,i)}function _asyncToGenerator(t){return function(){var r=this,a=arguments;return new Promise((function(o,i){var l=t.apply(r,a);function _next(t){asyncGeneratorStep(l,o,i,_next,_throw,"next",t)}function _throw(t){asyncGeneratorStep(l,o,i,_next,_throw,"throw",t)}_next(void 0)}))}}function _createForOfIteratorHelper(t,r){var a="undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(!a){if(Array.isArray(t)||(a=function _unsupportedIterableToArray(t,r){if(!t)return;if("string"==typeof t)return _arrayLikeToArray(t,r);var a=Object.prototype.toString.call(t).slice(8,-1);"Object"===a&&t.constructor&&(a=t.constructor.name);if("Map"===a||"Set"===a)return Array.from(t);if("Arguments"===a||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(a))return _arrayLikeToArray(t,r)}(t))||r&&t&&"number"==typeof t.length){a&&(t=a);var o=0,i=function F(){};return{s:i,n:function n(){return o>=t.length?{done:!0}:{done:!1,value:t[o++]}},e:function e(t){throw t},f:i}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var l,u=!0,c=!1;return{s:function s(){a=a.call(t)},n:function n(){var t=a.next();u=t.done;return t},e:function e(t){c=!0;l=t},f:function f(){try{u||null==a.return||a.return()}finally{if(c)throw l}}}}function _arrayLikeToArray(t,r){(null==r||r>t.length)&&(r=t.length);for(var a=0,o=new Array(r);a<r;a++)o[a]=t[a];return o}function _classCallCheck(t,r){if(!(t instanceof r))throw new TypeError("Cannot call a class as a function")}function _defineProperties(t,r){for(var a=0;a<r.length;a++){var o=r[a];o.enumerable=o.enumerable||!1;o.configurable=!0;"value"in o&&(o.writable=!0);Object.defineProperty(t,o.key,o)}}function _createClass(t,r,a){r&&_defineProperties(t.prototype,r);a&&_defineProperties(t,a);return t}var u=function(){function NetworkManager(t){var r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};_classCallCheck(this,NetworkManager);this.url=t;this.isHttp=/^https?:/i.test(t);this.httpHeaders=this.isHttp&&r.httpHeaders||Object.create(null);this.withCredentials=r.withCredentials||!1;this.getXhr=r.getXhr||function NetworkManager_getXhr(){return new XMLHttpRequest};this.currXhrId=0;this.pendingRequests=Object.create(null)}_createClass(NetworkManager,[{key:"requestRange",value:function requestRange(t,r,a){var o={begin:t,end:r};for(var i in a)o[i]=a[i];return this.request(o)}},{key:"requestFull",value:function requestFull(t){return this.request(t)}},{key:"request",value:function request(t){var r=this.getXhr(),a=this.currXhrId++,o=this.pendingRequests[a]={xhr:r};r.open("GET",this.url);r.withCredentials=this.withCredentials;for(var i in this.httpHeaders){var l=this.httpHeaders[i];void 0!==l&&r.setRequestHeader(i,l)}if(this.isHttp&&"begin"in t&&"end"in t){r.setRequestHeader("Range","bytes=".concat(t.begin,"-").concat(t.end-1));o.expectedStatus=206}else o.expectedStatus=200;r.responseType="arraybuffer";t.onError&&(r.onerror=function(a){t.onError(r.status)});r.onreadystatechange=this.onStateChange.bind(this,a);r.onprogress=this.onProgress.bind(this,a);o.onHeadersReceived=t.onHeadersReceived;o.onDone=t.onDone;o.onError=t.onError;o.onProgress=t.onProgress;r.send(null);return a}},{key:"onProgress",value:function onProgress(t,r){var a,o=this.pendingRequests[t];o&&(null===(a=o.onProgress)||void 0===a||a.call(o,r))}},{key:"onStateChange",value:function onStateChange(t,r){var a=this.pendingRequests[t];if(a){var o=a.xhr;if(o.readyState>=2&&a.onHeadersReceived){a.onHeadersReceived();delete a.onHeadersReceived}if(4===o.readyState&&t in this.pendingRequests){delete this.pendingRequests[t];if(0===o.status&&this.isHttp){var l;null===(l=a.onError)||void 0===l||l.call(a,o.status)}else{var u=o.status||200;if(200===u&&206===a.expectedStatus||u===a.expectedStatus){var c=function getArrayBuffer(t){var r=t.response;return"string"!=typeof r?r:(0,i.stringToBytes)(r).buffer}(o);if(206===u){var d=o.getResponseHeader("Content-Range"),h=/bytes (\d+)-(\d+)\/(\d+)/.exec(d);a.onDone({begin:parseInt(h[1],10),chunk:c})}else if(c)a.onDone({begin:0,chunk:c});else{var p;null===(p=a.onError)||void 0===p||p.call(a,o.status)}}else{var m;null===(m=a.onError)||void 0===m||m.call(a,o.status)}}}}}},{key:"getRequestXhr",value:function getRequestXhr(t){return this.pendingRequests[t].xhr}},{key:"isPendingRequest",value:function isPendingRequest(t){return t in this.pendingRequests}},{key:"abortRequest",value:function abortRequest(t){var r=this.pendingRequests[t].xhr;delete this.pendingRequests[t];r.abort()}}]);return NetworkManager}(),c=function(){function PDFNetworkStream(t){_classCallCheck(this,PDFNetworkStream);this._source=t;this._manager=new u(t.url,{httpHeaders:t.httpHeaders,withCredentials:t.withCredentials});this._rangeChunkSize=t.rangeChunkSize;this._fullRequestReader=null;this._rangeRequestReaders=[]}_createClass(PDFNetworkStream,[{key:"_onRangeRequestReaderClosed",value:function _onRangeRequestReaderClosed(t){var r=this._rangeRequestReaders.indexOf(t);r>=0&&this._rangeRequestReaders.splice(r,1)}},{key:"getFullReader",value:function getFullReader(){(0,i.assert)(!this._fullRequestReader,"PDFNetworkStream.getFullReader can only be called once.");this._fullRequestReader=new d(this._manager,this._source);return this._fullRequestReader}},{key:"getRangeReader",value:function getRangeReader(t,r){var a=new h(this._manager,t,r);a.onClosed=this._onRangeRequestReaderClosed.bind(this);this._rangeRequestReaders.push(a);return a}},{key:"cancelAllRequests",value:function cancelAllRequests(t){var r;null===(r=this._fullRequestReader)||void 0===r||r.cancel(t);var a,o=_createForOfIteratorHelper(this._rangeRequestReaders.slice(0));try{for(o.s();!(a=o.n()).done;){a.value.cancel(t)}}catch(t){o.e(t)}finally{o.f()}}}]);return PDFNetworkStream}();r.PDFNetworkStream=c;var d=function(){function PDFNetworkStreamFullRequestReader(t,r){_classCallCheck(this,PDFNetworkStreamFullRequestReader);this._manager=t;var a={onHeadersReceived:this._onHeadersReceived.bind(this),onDone:this._onDone.bind(this),onError:this._onError.bind(this),onProgress:this._onProgress.bind(this)};this._url=r.url;this._fullRequestId=t.requestFull(a);this._headersReceivedCapability=(0,i.createPromiseCapability)();this._disableRange=r.disableRange||!1;this._contentLength=r.length;this._rangeChunkSize=r.rangeChunkSize;this._rangeChunkSize||this._disableRange||(this._disableRange=!0);this._isStreamingSupported=!1;this._isRangeSupported=!1;this._cachedChunks=[];this._requests=[];this._done=!1;this._storedError=void 0;this._filename=null;this.onProgress=null}_createClass(PDFNetworkStreamFullRequestReader,[{key:"_onHeadersReceived",value:function _onHeadersReceived(){var t=this._fullRequestId,r=this._manager.getRequestXhr(t),a=function getResponseHeader(t){return r.getResponseHeader(t)},o=(0,l.validateRangeRequestCapabilities)({getResponseHeader:a,isHttp:this._manager.isHttp,rangeChunkSize:this._rangeChunkSize,disableRange:this._disableRange}),i=o.allowRangeRequests,u=o.suggestedLength;i&&(this._isRangeSupported=!0);this._contentLength=u||this._contentLength;this._filename=(0,l.extractFilenameFromHeader)(a);this._isRangeSupported&&this._manager.abortRequest(t);this._headersReceivedCapability.resolve()}},{key:"_onDone",value:function _onDone(t){if(t)if(this._requests.length>0){this._requests.shift().resolve({value:t.chunk,done:!1})}else this._cachedChunks.push(t.chunk);this._done=!0;if(!(this._cachedChunks.length>0)){var r,a=_createForOfIteratorHelper(this._requests);try{for(a.s();!(r=a.n()).done;){r.value.resolve({value:void 0,done:!0})}}catch(t){a.e(t)}finally{a.f()}this._requests.length=0}}},{key:"_onError",value:function _onError(t){this._storedError=(0,l.createResponseStatusError)(t,this._url);this._headersReceivedCapability.reject(this._storedError);var r,a=_createForOfIteratorHelper(this._requests);try{for(a.s();!(r=a.n()).done;){r.value.reject(this._storedError)}}catch(t){a.e(t)}finally{a.f()}this._requests.length=0;this._cachedChunks.length=0}},{key:"_onProgress",value:function _onProgress(t){var r;null===(r=this.onProgress)||void 0===r||r.call(this,{loaded:t.loaded,total:t.lengthComputable?t.total:this._contentLength})}},{key:"filename",get:function get(){return this._filename}},{key:"isRangeSupported",get:function get(){return this._isRangeSupported}},{key:"isStreamingSupported",get:function get(){return this._isStreamingSupported}},{key:"contentLength",get:function get(){return this._contentLength}},{key:"headersReady",get:function get(){return this._headersReceivedCapability.promise}},{key:"read",value:(t=_asyncToGenerator(o.default.mark((function _callee(){var t,r;return o.default.wrap((function _callee$(a){for(;;)switch(a.prev=a.next){case 0:if(!this._storedError){a.next=2;break}throw this._storedError;case 2:if(!(this._cachedChunks.length>0)){a.next=5;break}t=this._cachedChunks.shift();return a.abrupt("return",{value:t,done:!1});case 5:if(!this._done){a.next=7;break}return a.abrupt("return",{value:void 0,done:!0});case 7:r=(0,i.createPromiseCapability)();this._requests.push(r);return a.abrupt("return",r.promise);case 10:case"end":return a.stop()}}),_callee,this)}))),function read(){return t.apply(this,arguments)})},{key:"cancel",value:function cancel(t){this._done=!0;this._headersReceivedCapability.reject(t);var r,a=_createForOfIteratorHelper(this._requests);try{for(a.s();!(r=a.n()).done;){r.value.resolve({value:void 0,done:!0})}}catch(t){a.e(t)}finally{a.f()}this._requests.length=0;this._manager.isPendingRequest(this._fullRequestId)&&this._manager.abortRequest(this._fullRequestId);this._fullRequestReader=null}}]);var t;return PDFNetworkStreamFullRequestReader}(),h=function(){function PDFNetworkStreamRangeRequestReader(t,r,a){_classCallCheck(this,PDFNetworkStreamRangeRequestReader);this._manager=t;var o={onDone:this._onDone.bind(this),onError:this._onError.bind(this),onProgress:this._onProgress.bind(this)};this._url=t.url;this._requestId=t.requestRange(r,a,o);this._requests=[];this._queuedChunk=null;this._done=!1;this._storedError=void 0;this.onProgress=null;this.onClosed=null}_createClass(PDFNetworkStreamRangeRequestReader,[{key:"_close",value:function _close(){var t;null===(t=this.onClosed)||void 0===t||t.call(this,this)}},{key:"_onDone",value:function _onDone(t){var r=t.chunk;if(this._requests.length>0){this._requests.shift().resolve({value:r,done:!1})}else this._queuedChunk=r;this._done=!0;var a,o=_createForOfIteratorHelper(this._requests);try{for(o.s();!(a=o.n()).done;){a.value.resolve({value:void 0,done:!0})}}catch(t){o.e(t)}finally{o.f()}this._requests.length=0;this._close()}},{key:"_onError",value:function _onError(t){this._storedError=(0,l.createResponseStatusError)(t,this._url);var r,a=_createForOfIteratorHelper(this._requests);try{for(a.s();!(r=a.n()).done;){r.value.reject(this._storedError)}}catch(t){a.e(t)}finally{a.f()}this._requests.length=0;this._queuedChunk=null}},{key:"_onProgress",value:function _onProgress(t){if(!this.isStreamingSupported){var r;null===(r=this.onProgress)||void 0===r||r.call(this,{loaded:t.loaded})}}},{key:"isStreamingSupported",get:function get(){return!1}},{key:"read",value:(t=_asyncToGenerator(o.default.mark((function _callee2(){var t,r;return o.default.wrap((function _callee2$(a){for(;;)switch(a.prev=a.next){case 0:if(!this._storedError){a.next=2;break}throw this._storedError;case 2:if(null===this._queuedChunk){a.next=6;break}t=this._queuedChunk;this._queuedChunk=null;return a.abrupt("return",{value:t,done:!1});case 6:if(!this._done){a.next=8;break}return a.abrupt("return",{value:void 0,done:!0});case 8:r=(0,i.createPromiseCapability)();this._requests.push(r);return a.abrupt("return",r.promise);case 11:case"end":return a.stop()}}),_callee2,this)}))),function read(){return t.apply(this,arguments)})},{key:"cancel",value:function cancel(t){this._done=!0;var r,a=_createForOfIteratorHelper(this._requests);try{for(a.s();!(r=a.n()).done;){r.value.resolve({value:void 0,done:!0})}}catch(t){a.e(t)}finally{a.f()}this._requests.length=0;this._manager.isPendingRequest(this._requestId)&&this._manager.abortRequest(this._requestId);this._close()}}]);var t;return PDFNetworkStreamRangeRequestReader}()},(t,r,a)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});r.PDFFetchStream=void 0;var o=function _interopRequireDefault(t){return t&&t.__esModule?t:{default:t}}(a(2)),i=a(4),l=a(137);function asyncGeneratorStep(t,r,a,o,i,l,u){try{var c=t[l](u),d=c.value}catch(t){a(t);return}c.done?r(d):Promise.resolve(d).then(o,i)}function _asyncToGenerator(t){return function(){var r=this,a=arguments;return new Promise((function(o,i){var l=t.apply(r,a);function _next(t){asyncGeneratorStep(l,o,i,_next,_throw,"next",t)}function _throw(t){asyncGeneratorStep(l,o,i,_next,_throw,"throw",t)}_next(void 0)}))}}function _createForOfIteratorHelper(t,r){var a="undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(!a){if(Array.isArray(t)||(a=function _unsupportedIterableToArray(t,r){if(!t)return;if("string"==typeof t)return _arrayLikeToArray(t,r);var a=Object.prototype.toString.call(t).slice(8,-1);"Object"===a&&t.constructor&&(a=t.constructor.name);if("Map"===a||"Set"===a)return Array.from(t);if("Arguments"===a||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(a))return _arrayLikeToArray(t,r)}(t))||r&&t&&"number"==typeof t.length){a&&(t=a);var o=0,i=function F(){};return{s:i,n:function n(){return o>=t.length?{done:!0}:{done:!1,value:t[o++]}},e:function e(t){throw t},f:i}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var l,u=!0,c=!1;return{s:function s(){a=a.call(t)},n:function n(){var t=a.next();u=t.done;return t},e:function e(t){c=!0;l=t},f:function f(){try{u||null==a.return||a.return()}finally{if(c)throw l}}}}function _arrayLikeToArray(t,r){(null==r||r>t.length)&&(r=t.length);for(var a=0,o=new Array(r);a<r;a++)o[a]=t[a];return o}function _classCallCheck(t,r){if(!(t instanceof r))throw new TypeError("Cannot call a class as a function")}function _defineProperties(t,r){for(var a=0;a<r.length;a++){var o=r[a];o.enumerable=o.enumerable||!1;o.configurable=!0;"value"in o&&(o.writable=!0);Object.defineProperty(t,o.key,o)}}function _createClass(t,r,a){r&&_defineProperties(t.prototype,r);a&&_defineProperties(t,a);return t}function createFetchOptions(t,r,a){return{method:"GET",headers:t,signal:null==a?void 0:a.signal,mode:"cors",credentials:r?"include":"same-origin",redirect:"follow"}}function createHeaders(t){var r=new Headers;for(var a in t){var o=t[a];void 0!==o&&r.append(a,o)}return r}var u=function(){function PDFFetchStream(t){_classCallCheck(this,PDFFetchStream);this.source=t;this.isHttp=/^https?:/i.test(t.url);this.httpHeaders=this.isHttp&&t.httpHeaders||{};this._fullRequestReader=null;this._rangeRequestReaders=[]}_createClass(PDFFetchStream,[{key:"_progressiveDataLength",get:function get(){var t,r;return null!==(t=null===(r=this._fullRequestReader)||void 0===r?void 0:r._loaded)&&void 0!==t?t:0}},{key:"getFullReader",value:function getFullReader(){(0,i.assert)(!this._fullRequestReader,"PDFFetchStream.getFullReader can only be called once.");this._fullRequestReader=new c(this);return this._fullRequestReader}},{key:"getRangeReader",value:function getRangeReader(t,r){if(r<=this._progressiveDataLength)return null;var a=new d(this,t,r);this._rangeRequestReaders.push(a);return a}},{key:"cancelAllRequests",value:function cancelAllRequests(t){this._fullRequestReader&&this._fullRequestReader.cancel(t);var r,a=_createForOfIteratorHelper(this._rangeRequestReaders.slice(0));try{for(a.s();!(r=a.n()).done;){r.value.cancel(t)}}catch(t){a.e(t)}finally{a.f()}}}]);return PDFFetchStream}();r.PDFFetchStream=u;var c=function(){function PDFFetchStreamReader(t){var r=this;_classCallCheck(this,PDFFetchStreamReader);this._stream=t;this._reader=null;this._loaded=0;this._filename=null;var a=t.source;this._withCredentials=a.withCredentials||!1;this._contentLength=a.length;this._headersCapability=(0,i.createPromiseCapability)();this._disableRange=a.disableRange||!1;this._rangeChunkSize=a.rangeChunkSize;this._rangeChunkSize||this._disableRange||(this._disableRange=!0);"undefined"!=typeof AbortController&&(this._abortController=new AbortController);this._isStreamingSupported=!a.disableStream;this._isRangeSupported=!a.disableRange;this._headers=createHeaders(this._stream.httpHeaders);var o=a.url;fetch(o,createFetchOptions(this._headers,this._withCredentials,this._abortController)).then((function(t){if(!(0,l.validateResponseStatus)(t.status))throw(0,l.createResponseStatusError)(t.status,o);r._reader=t.body.getReader();r._headersCapability.resolve();var a=function getResponseHeader(r){return t.headers.get(r)},u=(0,l.validateRangeRequestCapabilities)({getResponseHeader:a,isHttp:r._stream.isHttp,rangeChunkSize:r._rangeChunkSize,disableRange:r._disableRange}),c=u.allowRangeRequests,d=u.suggestedLength;r._isRangeSupported=c;r._contentLength=d||r._contentLength;r._filename=(0,l.extractFilenameFromHeader)(a);!r._isStreamingSupported&&r._isRangeSupported&&r.cancel(new i.AbortException("Streaming is disabled."))})).catch(this._headersCapability.reject);this.onProgress=null}_createClass(PDFFetchStreamReader,[{key:"headersReady",get:function get(){return this._headersCapability.promise}},{key:"filename",get:function get(){return this._filename}},{key:"contentLength",get:function get(){return this._contentLength}},{key:"isRangeSupported",get:function get(){return this._isRangeSupported}},{key:"isStreamingSupported",get:function get(){return this._isStreamingSupported}},{key:"read",value:(t=_asyncToGenerator(o.default.mark((function _callee(){var t,r,a,i;return o.default.wrap((function _callee$(o){for(;;)switch(o.prev=o.next){case 0:o.next=2;return this._headersCapability.promise;case 2:o.next=4;return this._reader.read();case 4:t=o.sent;r=t.value;if(!(a=t.done)){o.next=9;break}return o.abrupt("return",{value:r,done:a});case 9:this._loaded+=r.byteLength;this.onProgress&&this.onProgress({loaded:this._loaded,total:this._contentLength});i=new Uint8Array(r).buffer;return o.abrupt("return",{value:i,done:!1});case 13:case"end":return o.stop()}}),_callee,this)}))),function read(){return t.apply(this,arguments)})},{key:"cancel",value:function cancel(t){this._reader&&this._reader.cancel(t);this._abortController&&this._abortController.abort()}}]);var t;return PDFFetchStreamReader}(),d=function(){function PDFFetchStreamRangeReader(t,r,a){var o=this;_classCallCheck(this,PDFFetchStreamRangeReader);this._stream=t;this._reader=null;this._loaded=0;var u=t.source;this._withCredentials=u.withCredentials||!1;this._readCapability=(0,i.createPromiseCapability)();this._isStreamingSupported=!u.disableStream;"undefined"!=typeof AbortController&&(this._abortController=new AbortController);this._headers=createHeaders(this._stream.httpHeaders);this._headers.append("Range","bytes=".concat(r,"-").concat(a-1));var c=u.url;fetch(c,createFetchOptions(this._headers,this._withCredentials,this._abortController)).then((function(t){if(!(0,l.validateResponseStatus)(t.status))throw(0,l.createResponseStatusError)(t.status,c);o._readCapability.resolve();o._reader=t.body.getReader()})).catch(this._readCapability.reject);this.onProgress=null}_createClass(PDFFetchStreamRangeReader,[{key:"isStreamingSupported",get:function get(){return this._isStreamingSupported}},{key:"read",value:(t=_asyncToGenerator(o.default.mark((function _callee2(){var t,r,a,i;return o.default.wrap((function _callee2$(o){for(;;)switch(o.prev=o.next){case 0:o.next=2;return this._readCapability.promise;case 2:o.next=4;return this._reader.read();case 4:t=o.sent;r=t.value;if(!(a=t.done)){o.next=9;break}return o.abrupt("return",{value:r,done:a});case 9:this._loaded+=r.byteLength;this.onProgress&&this.onProgress({loaded:this._loaded});i=new Uint8Array(r).buffer;return o.abrupt("return",{value:i,done:!1});case 13:case"end":return o.stop()}}),_callee2,this)}))),function read(){return t.apply(this,arguments)})},{key:"cancel",value:function cancel(t){this._reader&&this._reader.cancel(t);this._abortController&&this._abortController.abort()}}]);var t;return PDFFetchStreamRangeReader}()}],__webpack_module_cache__={};function __w_pdfjs_require__(t){var r=__webpack_module_cache__[t];if(void 0!==r)return r.exports;var a=__webpack_module_cache__[t]={id:t,loaded:!1,exports:{}};__webpack_modules__[t].call(a.exports,a,a.exports,__w_pdfjs_require__);a.loaded=!0;return a.exports}__w_pdfjs_require__.nmd=t=>{t.paths=[];t.children||(t.children=[]);return t};var __webpack_exports__={};(()=>{"use strict";var t=__webpack_exports__;Object.defineProperty(t,"__esModule",{value:!0});Object.defineProperty(t,"addLinkAttributes",{enumerable:!0,get:function get(){return r.addLinkAttributes}});Object.defineProperty(t,"getFilenameFromUrl",{enumerable:!0,get:function get(){return r.getFilenameFromUrl}});Object.defineProperty(t,"getPdfFilenameFromUrl",{enumerable:!0,get:function get(){return r.getPdfFilenameFromUrl}});Object.defineProperty(t,"getXfaPageViewport",{enumerable:!0,get:function get(){return r.getXfaPageViewport}});Object.defineProperty(t,"isPdfFile",{enumerable:!0,get:function get(){return r.isPdfFile}});Object.defineProperty(t,"LinkTarget",{enumerable:!0,get:function get(){return r.LinkTarget}});Object.defineProperty(t,"loadScript",{enumerable:!0,get:function get(){return r.loadScript}});Object.defineProperty(t,"PDFDateString",{enumerable:!0,get:function get(){return r.PDFDateString}});Object.defineProperty(t,"PixelsPerInch",{enumerable:!0,get:function get(){return r.PixelsPerInch}});Object.defineProperty(t,"RenderingCancelledException",{enumerable:!0,get:function get(){return r.RenderingCancelledException}});Object.defineProperty(t,"AnnotationMode",{enumerable:!0,get:function get(){return a.AnnotationMode}});Object.defineProperty(t,"CMapCompressionType",{enumerable:!0,get:function get(){return a.CMapCompressionType}});Object.defineProperty(t,"createObjectURL",{enumerable:!0,get:function get(){return a.createObjectURL}});Object.defineProperty(t,"createPromiseCapability",{enumerable:!0,get:function get(){return a.createPromiseCapability}});Object.defineProperty(t,"createValidAbsoluteUrl",{enumerable:!0,get:function get(){return a.createValidAbsoluteUrl}});Object.defineProperty(t,"InvalidPDFException",{enumerable:!0,get:function get(){return a.InvalidPDFException}});Object.defineProperty(t,"MissingPDFException",{enumerable:!0,get:function get(){return a.MissingPDFException}});Object.defineProperty(t,"OPS",{enumerable:!0,get:function get(){return a.OPS}});Object.defineProperty(t,"PasswordResponses",{enumerable:!0,get:function get(){return a.PasswordResponses}});Object.defineProperty(t,"PermissionFlag",{enumerable:!0,get:function get(){return a.PermissionFlag}});Object.defineProperty(t,"removeNullCharacters",{enumerable:!0,get:function get(){return a.removeNullCharacters}});Object.defineProperty(t,"shadow",{enumerable:!0,get:function get(){return a.shadow}});Object.defineProperty(t,"UnexpectedResponseException",{enumerable:!0,get:function get(){return a.UnexpectedResponseException}});Object.defineProperty(t,"UNSUPPORTED_FEATURES",{enumerable:!0,get:function get(){return a.UNSUPPORTED_FEATURES}});Object.defineProperty(t,"Util",{enumerable:!0,get:function get(){return a.Util}});Object.defineProperty(t,"VerbosityLevel",{enumerable:!0,get:function get(){return a.VerbosityLevel}});Object.defineProperty(t,"build",{enumerable:!0,get:function get(){return o.build}});Object.defineProperty(t,"getDocument",{enumerable:!0,get:function get(){return o.getDocument}});Object.defineProperty(t,"LoopbackPort",{enumerable:!0,get:function get(){return o.LoopbackPort}});Object.defineProperty(t,"PDFDataRangeTransport",{enumerable:!0,get:function get(){return o.PDFDataRangeTransport}});Object.defineProperty(t,"PDFWorker",{enumerable:!0,get:function get(){return o.PDFWorker}});Object.defineProperty(t,"version",{enumerable:!0,get:function get(){return o.version}});Object.defineProperty(t,"AnnotationLayer",{enumerable:!0,get:function get(){return i.AnnotationLayer}});Object.defineProperty(t,"GlobalWorkerOptions",{enumerable:!0,get:function get(){return l.GlobalWorkerOptions}});Object.defineProperty(t,"renderTextLayer",{enumerable:!0,get:function get(){return c.renderTextLayer}});Object.defineProperty(t,"SVGGraphics",{enumerable:!0,get:function get(){return d.SVGGraphics}});Object.defineProperty(t,"XfaLayer",{enumerable:!0,get:function get(){return h.XfaLayer}});var r=__w_pdfjs_require__(1),a=__w_pdfjs_require__(4),o=__w_pdfjs_require__(119),i=__w_pdfjs_require__(131),l=__w_pdfjs_require__(125),u=__w_pdfjs_require__(6),c=__w_pdfjs_require__(133),d=__w_pdfjs_require__(134),h=__w_pdfjs_require__(135);if(u.isNodeJS){var p=__w_pdfjs_require__(136).PDFNodeStream;(0,o.setPDFNetworkStreamFactory)((function(t){return new p(t)}))}else{var m=__w_pdfjs_require__(139).PDFNetworkStream,y=__w_pdfjs_require__(140).PDFFetchStream;(0,o.setPDFNetworkStreamFactory)((function(t){return(0,r.isValidFetchUrl)(t.url)?new y(t):new m(t)}))}})();return __webpack_exports__})()}));
\ No newline at end of file
diff --git a/node_modules/pdfh5/js/pdf.worker.js b/node_modules/pdfh5/js/pdf.worker.js
new file mode 100644
index 0000000..13323db
--- /dev/null
+++ b/node_modules/pdfh5/js/pdf.worker.js
@@ -0,0 +1,22 @@
+/**
+ * @licstart The following is the entire license notice for the
+ * Javascript code in this page
+ *
+ * Copyright 2021 Mozilla Foundation
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ * @licend The above is the entire license notice for the
+ * Javascript code in this page
+ */
+!function webpackUniversalModuleDefinition(t,r){"object"==typeof exports&&"object"==typeof module?module.exports=r():"function"==typeof define&&define.amd?define("pdfjs-dist/build/pdf.worker",[],r):"object"==typeof exports?exports["pdfjs-dist/build/pdf.worker"]=r():t["pdfjs-dist/build/pdf.worker"]=t.pdfjsWorker=r()}(this,(function(){return(()=>{var t=[,(t,r,o)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});r.WorkerTask=r.WorkerMessageHandler=void 0;var l=function _interopRequireDefault(t){return t&&t.__esModule?t:{default:t}}(o(2)),c=o(4),u=o(118),h=o(120),d=o(184),m=o(6),g=o(212),y=o(213),v=o(122);function _createForOfIteratorHelper(t,r){var o="undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(!o){if(Array.isArray(t)||(o=_unsupportedIterableToArray(t))||r&&t&&"number"==typeof t.length){o&&(t=o);var l=0,c=function F(){};return{s:c,n:function n(){return l>=t.length?{done:!0}:{done:!1,value:t[l++]}},e:function e(t){throw t},f:c}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var u,h=!0,d=!1;return{s:function s(){o=o.call(t)},n:function n(){var t=o.next();h=t.done;return t},e:function e(t){d=!0;u=t},f:function f(){try{h||null==o.return||o.return()}finally{if(d)throw u}}}}function _toArray(t){return _arrayWithHoles(t)||function _iterableToArray(t){if("undefined"!=typeof Symbol&&null!=t[Symbol.iterator]||null!=t["@@iterator"])return Array.from(t)}(t)||_unsupportedIterableToArray(t)||_nonIterableRest()}function _slicedToArray(t,r){return _arrayWithHoles(t)||function _iterableToArrayLimit(t,r){var o=null==t?null:"undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(null==o)return;var l,c,u=[],h=!0,d=!1;try{for(o=o.call(t);!(h=(l=o.next()).done);h=!0){u.push(l.value);if(r&&u.length===r)break}}catch(t){d=!0;c=t}finally{try{h||null==o.return||o.return()}finally{if(d)throw c}}return u}(t,r)||_unsupportedIterableToArray(t,r)||_nonIterableRest()}function _nonIterableRest(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}function _unsupportedIterableToArray(t,r){if(t){if("string"==typeof t)return _arrayLikeToArray(t,r);var o=Object.prototype.toString.call(t).slice(8,-1);"Object"===o&&t.constructor&&(o=t.constructor.name);return"Map"===o||"Set"===o?Array.from(t):"Arguments"===o||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(o)?_arrayLikeToArray(t,r):void 0}}function _arrayLikeToArray(t,r){(null==r||r>t.length)&&(r=t.length);for(var o=0,l=new Array(r);o<r;o++)l[o]=t[o];return l}function _arrayWithHoles(t){if(Array.isArray(t))return t}function asyncGeneratorStep(t,r,o,l,c,u,h){try{var d=t[u](h),m=d.value}catch(t){o(t);return}d.done?r(m):Promise.resolve(m).then(l,c)}function _asyncToGenerator(t){return function(){var r=this,o=arguments;return new Promise((function(l,c){var u=t.apply(r,o);function _next(t){asyncGeneratorStep(u,l,c,_next,_throw,"next",t)}function _throw(t){asyncGeneratorStep(u,l,c,_next,_throw,"throw",t)}_next(void 0)}))}}function _classCallCheck(t,r){if(!(t instanceof r))throw new TypeError("Cannot call a class as a function")}function _defineProperties(t,r){for(var o=0;o<r.length;o++){var l=r[o];l.enumerable=l.enumerable||!1;l.configurable=!0;"value"in l&&(l.writable=!0);Object.defineProperty(t,l.key,l)}}function _createClass(t,r,o){r&&_defineProperties(t.prototype,r);o&&_defineProperties(t,o);return t}var S=function(){function WorkerTask(t){_classCallCheck(this,WorkerTask);this.name=t;this.terminated=!1;this._capability=(0,c.createPromiseCapability)()}_createClass(WorkerTask,[{key:"finished",get:function get(){return this._capability.promise}},{key:"finish",value:function finish(){this._capability.resolve()}},{key:"terminate",value:function terminate(){this.terminated=!0}},{key:"ensureNotTerminated",value:function ensureNotTerminated(){if(this.terminated)throw new Error("Worker task was terminated")}}]);return WorkerTask}();r.WorkerTask=S;var _=function(){function WorkerMessageHandler(){_classCallCheck(this,WorkerMessageHandler)}_createClass(WorkerMessageHandler,null,[{key:"setup",value:function setup(t,r){var o=!1;t.on("test",(function wphSetupTest(r){if(!o){o=!0;if(r instanceof Uint8Array){var l=255===r[0];t.postMessageTransfers=l;t.send("test",{supportTransfers:l})}else t.send("test",null)}}));t.on("configure",(function wphConfigure(t){(0,c.setVerbosityLevel)(t.verbosity)}));t.on("GetDocRequest",(function wphSetupDoc(t){return WorkerMessageHandler.createDocumentHandler(t,r)}))}},{key:"createDocumentHandler",value:function createDocumentHandler(t,r){var o,m=!1,_=null,k=[],C=(0,c.getVerbosityLevel)(),w=t.apiVersion,x="2.11.338";if(w!==x)throw new Error('The API version "'.concat(w,'" does not match ')+'the Worker version "'.concat(x,'".'));var O=[];for(var T in[])O.push(T);if(O.length)throw new Error("The `Array.prototype` contains unexpected enumerable properties: "+O.join(", ")+"; thus breaking e.g. `for...in` iteration of `Array`s.");var R=t.docId,E=t.docBaseUrl,M=t.docId+"_worker",D=new g.MessageHandler(M,R,r);D.postMessageTransfers=t.postMessageTransfers;function ensureNotTerminated(){if(m)throw new Error("Worker was terminated")}function startWorkerTask(t){k.push(t)}function finishWorkerTask(t){t.finish();var r=k.indexOf(t);k.splice(r,1)}function loadDocument(t){return _loadDocument.apply(this,arguments)}function _loadDocument(){return(_loadDocument=_asyncToGenerator(l.default.mark((function _callee(t){var r,c,u,h,d,m,g;return l.default.wrap((function _callee$(l){for(;;)switch(l.prev=l.next){case 0:l.next=2;return o.ensureDoc("checkHeader");case 2:l.next=4;return o.ensureDoc("parseStartXRef");case 4:l.next=6;return o.ensureDoc("parse",[t]);case 6:if(t){l.next=9;break}l.next=9;return o.ensureDoc("checkFirstPage");case 9:l.next=11;return o.ensureDoc("isPureXfa");case 11:if(!(r=l.sent)){l.next=17;break}startWorkerTask(c=new S("loadXfaFonts"));l.next=17;return Promise.all([o.loadXfaFonts(D,c).catch((function(t){})).then((function(){return finishWorkerTask(c)})),o.loadXfaImages()]);case 17:l.next=19;return Promise.all([o.ensureDoc("numPages"),o.ensureDoc("fingerprints")]);case 19:u=l.sent;h=_slicedToArray(u,2);d=h[0];m=h[1];if(!r){l.next=29;break}l.next=26;return o.ensureDoc("htmlForXfa");case 26:l.t0=l.sent;l.next=30;break;case 29:l.t0=null;case 30:g=l.t0;return l.abrupt("return",{numPages:d,fingerprints:m,htmlForXfa:g});case 32:case"end":return l.stop()}}),_callee)})))).apply(this,arguments)}function getPdfManager(t,r,o){var l,u=(0,c.createPromiseCapability)(),d=t.source;if(d.data){try{l=new h.LocalPdfManager(R,d.data,d.password,r,o,E);u.resolve(l)}catch(t){u.reject(t)}return u.promise}var m,g=[];try{m=new y.PDFWorkerStream(D)}catch(t){u.reject(t);return u.promise}var v=m.getFullReader();v.headersReady.then((function(){if(v.isRangeSupported){var t=d.disableAutoFetch||v.isStreamingSupported;l=new h.NetworkPdfManager(R,m,{msgHandler:D,password:d.password,length:v.contentLength,disableAutoFetch:t,rangeChunkSize:d.rangeChunkSize},r,o,E);for(var c=0;c<g.length;c++)l.sendProgressiveData(g[c]);g=[];u.resolve(l);_=null}})).catch((function(t){u.reject(t);_=null}));var S=0;new Promise((function(t,m){v.read().then((function readChunk(t){var y=t.value,k=t.done;try{ensureNotTerminated();if(k){l||function flushChunks(){var t=(0,c.arraysToBytes)(g);d.length&&t.length!==d.length&&(0,c.warn)("reported HTTP length is different from actual");try{l=new h.LocalPdfManager(R,t,d.password,r,o,E);u.resolve(l)}catch(t){u.reject(t)}g=[]}();_=null;return}S+=(0,c.arrayByteLength)(y);v.isStreamingSupported||D.send("DocProgress",{loaded:S,total:Math.max(S,v.contentLength||0)});l?l.sendProgressiveData(y):g.push(y);v.read().then(readChunk,m)}catch(t){m(t)}}),m)})).catch((function(t){u.reject(t);_=null}));_=function cancelXHRs(t){m.cancelAllRequests(t)};return u.promise}D.on("GetPage",(function wphSetupGetPage(t){return o.getPage(t.pageIndex).then((function(t){return Promise.all([o.ensure(t,"rotate"),o.ensure(t,"ref"),o.ensure(t,"userUnit"),o.ensure(t,"view")]).then((function(t){var r=_slicedToArray(t,4);return{rotate:r[0],ref:r[1],userUnit:r[2],view:r[3]}}))}))}));D.on("GetPageIndex",(function wphSetupGetPageIndex(t){var r=t.ref,l=u.Ref.get(r.num,r.gen);return o.ensureCatalog("getPageIndex",[l])}));D.on("GetDestinations",(function wphSetupGetDestinations(t){return o.ensureCatalog("destinations")}));D.on("GetDestination",(function wphSetupGetDestination(t){return o.ensureCatalog("getDestination",[t.id])}));D.on("GetPageLabels",(function wphSetupGetPageLabels(t){return o.ensureCatalog("pageLabels")}));D.on("GetPageLayout",(function wphSetupGetPageLayout(t){return o.ensureCatalog("pageLayout")}));D.on("GetPageMode",(function wphSetupGetPageMode(t){return o.ensureCatalog("pageMode")}));D.on("GetViewerPreferences",(function(t){return o.ensureCatalog("viewerPreferences")}));D.on("GetOpenAction",(function(t){return o.ensureCatalog("openAction")}));D.on("GetAttachments",(function wphSetupGetAttachments(t){return o.ensureCatalog("attachments")}));D.on("GetJavaScript",(function wphSetupGetJavaScript(t){return o.ensureCatalog("javaScript")}));D.on("GetDocJSActions",(function wphSetupGetDocJSActions(t){return o.ensureCatalog("jsActions")}));D.on("GetPageJSActions",(function(t){var r=t.pageIndex;return o.getPage(r).then((function(t){return o.ensure(t,"jsActions")}))}));D.on("GetOutline",(function wphSetupGetOutline(t){return o.ensureCatalog("documentOutline")}));D.on("GetOptionalContentConfig",(function(t){return o.ensureCatalog("optionalContentConfig")}));D.on("GetPermissions",(function(t){return o.ensureCatalog("permissions")}));D.on("GetMetadata",(function wphSetupGetMetadata(t){return Promise.all([o.ensureDoc("documentInfo"),o.ensureCatalog("metadata")])}));D.on("GetMarkInfo",(function wphSetupGetMarkInfo(t){return o.ensureCatalog("markInfo")}));D.on("GetData",(function wphSetupGetData(t){o.requestLoadedStream();return o.onLoadedStream().then((function(t){return t.bytes}))}));D.on("GetStats",(function wphSetupGetStats(t){return o.ensureXRef("stats")}));D.on("GetAnnotations",(function(t){var r=t.pageIndex,l=t.intent;return o.getPage(r).then((function(t){return t.getAnnotationsData(l)}))}));D.on("GetFieldObjects",(function(t){return o.ensureDoc("fieldObjects")}));D.on("HasJSActions",(function(t){return o.ensureDoc("hasJSActions")}));D.on("GetCalculationOrderIds",(function(t){return o.ensureDoc("calculationOrderIds")}));D.on("SaveDocument",(function(t){var r=t.isPureXfa,l=t.numPages,h=t.annotationStorage,m=t.filename;o.requestLoadedStream();var g=[o.onLoadedStream(),o.ensureCatalog("acroForm"),o.ensureCatalog("acroFormRef"),o.ensureDoc("xref"),o.ensureDoc("startXRef")];if(r)g.push(o.serializeXfaData(h));else for(var y=function _loop(t){g.push(o.getPage(t).then((function(r){var o=new S("Save: page ".concat(t));return r.save(D,o,h).finally((function(){finishWorkerTask(o)}))})))},v=0;v<l;v++)y(v);return Promise.all(g).then((function(t){var o=_toArray(t),l=o[0],h=o[1],g=o[2],y=o[3],v=o[4],S=o.slice(5),_=[],k=null;if(r){if(!(k=S[0]))return l.bytes}else{var C,w=_createForOfIteratorHelper(S);try{for(w.s();!(C=w.n()).done;){_=C.value.filter((function(t){return null!==t})).reduce((function(t,r){return t.concat(r)}),_)}}catch(t){w.e(t)}finally{w.f()}if(0===_.length)return l.bytes}var x=h instanceof u.Dict&&h.get("XFA")||null,O=null,T=!1;if(Array.isArray(x)){for(var R=0,E=x.length;R<E;R+=2)if("datasets"===x[R]){O=x[R+1];g=null;T=!0}null===O&&(O=y.getNewRef())}else if(x){g=null;(0,c.warn)("Unsupported XFA type.")}var M=Object.create(null);if(y.trailer){var D=Object.create(null),j=y.trailer.get("Info")||null;j instanceof u.Dict&&j.forEach((function(t,r){(0,c.isString)(t)&&(0,c.isString)(r)&&(D[t]=(0,c.stringToPDFString)(r))}));M={rootRef:y.trailer.getRaw("Root")||null,encryptRef:y.trailer.getRaw("Encrypt")||null,newRef:y.getNewRef(),infoRef:y.trailer.getRaw("Info")||null,info:D,fileIds:y.trailer.get("ID")||null,startXRef:v,filename:m}}y.resetNewRef();return(0,d.incrementalUpdate)({originalData:l.bytes,xrefInfo:M,newRefs:_,xref:y,hasXfa:!!x,xfaDatasetsRef:O,hasXfaDatasetsEntry:T,acroFormRef:g,acroForm:h,xfaData:k})}))}));D.on("GetOperatorList",(function wphSetupRenderPage(t,r){var l=t.pageIndex;o.getPage(l).then((function(o){var u=new S("GetOperatorList: page ".concat(l));startWorkerTask(u);var h=C>=c.VerbosityLevel.INFOS?Date.now():0;o.getOperatorList({handler:D,sink:r,task:u,intent:t.intent,cacheKey:t.cacheKey,annotationStorage:t.annotationStorage}).then((function(t){finishWorkerTask(u);h&&(0,c.info)("page=".concat(l+1," - getOperatorList: time=")+"".concat(Date.now()-h,"ms, len=").concat(t.length));r.close()}),(function(t){finishWorkerTask(u);if(!u.terminated){D.send("UnsupportedFeature",{featureId:c.UNSUPPORTED_FEATURES.errorOperatorList});r.error(t)}}))}))}));D.on("GetTextContent",(function wphExtractText(t,r){var l=t.pageIndex;o.getPage(l).then((function(o){var u=new S("GetTextContent: page "+l);startWorkerTask(u);var h=C>=c.VerbosityLevel.INFOS?Date.now():0;o.extractTextContent({handler:D,task:u,sink:r,normalizeWhitespace:t.normalizeWhitespace,includeMarkedContent:t.includeMarkedContent,combineTextItems:t.combineTextItems}).then((function(){finishWorkerTask(u);h&&(0,c.info)("page=".concat(l+1," - getTextContent: time=")+"".concat(Date.now()-h,"ms"));r.close()}),(function(t){finishWorkerTask(u);u.terminated||r.error(t)}))}))}));D.on("GetStructTree",(function wphGetStructTree(t){return o.getPage(t.pageIndex).then((function(t){return o.ensure(t,"getStructTree")}))}));D.on("FontFallback",(function(t){return o.fontFallback(t.id,D)}));D.on("Cleanup",(function wphCleanup(t){return o.cleanup(!0)}));D.on("Terminate",(function wphTerminate(t){m=!0;var r=[];if(o){o.terminate(new c.AbortException("Worker was terminated."));var l=o.cleanup();r.push(l);o=null}else(0,u.clearPrimitiveCaches)();_&&_(new c.AbortException("Worker was terminated."));var h,d=_createForOfIteratorHelper(k);try{for(d.s();!(h=d.n()).done;){var g=h.value;r.push(g.finished);g.terminate()}}catch(t){d.e(t)}finally{d.f()}return Promise.all(r).then((function(){D.destroy();D=null}))}));D.on("Ready",(function wphReady(r){!function setupDoc(t){function onSuccess(t){ensureNotTerminated();D.send("GetDoc",{pdfInfo:t})}function onFailure(t){ensureNotTerminated();if(t instanceof c.PasswordException){var r=new S("PasswordException: response ".concat(t.code));startWorkerTask(r);D.sendWithPromise("PasswordRequest",t).then((function(t){var l=t.password;finishWorkerTask(r);o.updatePassword(l);pdfManagerReady()})).catch((function(){finishWorkerTask(r);D.send("DocException",t)}))}else t instanceof c.InvalidPDFException||t instanceof c.MissingPDFException||t instanceof c.UnexpectedResponseException||t instanceof c.UnknownErrorException?D.send("DocException",t):D.send("DocException",new c.UnknownErrorException(t.message,t.toString()))}function pdfManagerReady(){ensureNotTerminated();loadDocument(!1).then(onSuccess,(function(t){ensureNotTerminated();if(t instanceof v.XRefParseException){o.requestLoadedStream();o.onLoadedStream().then((function(){ensureNotTerminated();loadDocument(!0).then(onSuccess,onFailure)}))}else onFailure(t)}))}ensureNotTerminated();getPdfManager(t,{maxImageSize:t.maxImageSize,disableFontFace:t.disableFontFace,ignoreErrors:t.ignoreErrors,isEvalSupported:t.isEvalSupported,fontExtraProperties:t.fontExtraProperties,useSystemFonts:t.useSystemFonts,cMapUrl:t.cMapUrl,standardFontDataUrl:t.standardFontDataUrl},t.enableXfa).then((function(t){if(m){t.terminate(new c.AbortException("Worker was terminated."));throw new Error("Worker was terminated")}(o=t).onLoadedStream().then((function(t){D.send("DataLoaded",{length:t.bytes.byteLength})}))})).then(pdfManagerReady,onFailure)}(t);t=null}));return M}},{key:"initializeFromPort",value:function initializeFromPort(t){var r=new g.MessageHandler("worker","main",t);WorkerMessageHandler.setup(r,t);r.send("ready",null)}}]);return WorkerMessageHandler}();r.WorkerMessageHandler=_;"undefined"==typeof window&&!m.isNodeJS&&"undefined"!=typeof self&&function isMessagePort(t){return"function"==typeof t.postMessage&&"onmessage"in t}(self)&&_.initializeFromPort(self)},(t,r,o)=>{"use strict";t.exports=o(3)},(t,r,o)=>{"use strict";function _typeof(t){_typeof="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function _typeof(t){return typeof t}:function _typeof(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t};return _typeof(t)}var l=function(t){var r,o=Object.prototype,l=o.hasOwnProperty,c="function"==typeof Symbol?Symbol:{},u=c.iterator||"@@iterator",h=c.asyncIterator||"@@asyncIterator",d=c.toStringTag||"@@toStringTag";function define(t,r,o){Object.defineProperty(t,r,{value:o,enumerable:!0,configurable:!0,writable:!0});return t[r]}try{define({},"")}catch(t){define=function define(t,r,o){return t[r]=o}}function wrap(t,r,o,l){var c=r&&r.prototype instanceof Generator?r:Generator,u=Object.create(c.prototype),h=new Context(l||[]);u._invoke=function makeInvokeMethod(t,r,o){var l=m;return function invoke(c,u){if(l===y)throw new Error("Generator is already running");if(l===v){if("throw"===c)throw u;return doneResult()}o.method=c;o.arg=u;for(;;){var h=o.delegate;if(h){var d=maybeInvokeDelegate(h,o);if(d){if(d===S)continue;return d}}if("next"===o.method)o.sent=o._sent=o.arg;else if("throw"===o.method){if(l===m){l=v;throw o.arg}o.dispatchException(o.arg)}else"return"===o.method&&o.abrupt("return",o.arg);l=y;var _=tryCatch(t,r,o);if("normal"===_.type){l=o.done?v:g;if(_.arg===S)continue;return{value:_.arg,done:o.done}}if("throw"===_.type){l=v;o.method="throw";o.arg=_.arg}}}}(t,o,h);return u}t.wrap=wrap;function tryCatch(t,r,o){try{return{type:"normal",arg:t.call(r,o)}}catch(t){return{type:"throw",arg:t}}}var m="suspendedStart",g="suspendedYield",y="executing",v="completed",S={};function Generator(){}function GeneratorFunction(){}function GeneratorFunctionPrototype(){}var _={};define(_,u,(function(){return this}));var k=Object.getPrototypeOf,C=k&&k(k(values([])));C&&C!==o&&l.call(C,u)&&(_=C);var w=GeneratorFunctionPrototype.prototype=Generator.prototype=Object.create(_);GeneratorFunction.prototype=GeneratorFunctionPrototype;define(w,"constructor",GeneratorFunctionPrototype);define(GeneratorFunctionPrototype,"constructor",GeneratorFunction);GeneratorFunction.displayName=define(GeneratorFunctionPrototype,d,"GeneratorFunction");function defineIteratorMethods(t){["next","throw","return"].forEach((function(r){define(t,r,(function(t){return this._invoke(r,t)}))}))}t.isGeneratorFunction=function(t){var r="function"==typeof t&&t.constructor;return!!r&&(r===GeneratorFunction||"GeneratorFunction"===(r.displayName||r.name))};t.mark=function(t){if(Object.setPrototypeOf)Object.setPrototypeOf(t,GeneratorFunctionPrototype);else{t.__proto__=GeneratorFunctionPrototype;define(t,d,"GeneratorFunction")}t.prototype=Object.create(w);return t};t.awrap=function(t){return{__await:t}};function AsyncIterator(t,r){function invoke(o,c,u,h){var d=tryCatch(t[o],t,c);if("throw"!==d.type){var m=d.arg,g=m.value;return g&&"object"===_typeof(g)&&l.call(g,"__await")?r.resolve(g.__await).then((function(t){invoke("next",t,u,h)}),(function(t){invoke("throw",t,u,h)})):r.resolve(g).then((function(t){m.value=t;u(m)}),(function(t){return invoke("throw",t,u,h)}))}h(d.arg)}var o;this._invoke=function enqueue(t,l){function callInvokeWithMethodAndArg(){return new r((function(r,o){invoke(t,l,r,o)}))}return o=o?o.then(callInvokeWithMethodAndArg,callInvokeWithMethodAndArg):callInvokeWithMethodAndArg()}}defineIteratorMethods(AsyncIterator.prototype);define(AsyncIterator.prototype,h,(function(){return this}));t.AsyncIterator=AsyncIterator;t.async=function(r,o,l,c,u){void 0===u&&(u=Promise);var h=new AsyncIterator(wrap(r,o,l,c),u);return t.isGeneratorFunction(o)?h:h.next().then((function(t){return t.done?t.value:h.next()}))};function maybeInvokeDelegate(t,o){var l=t.iterator[o.method];if(l===r){o.delegate=null;if("throw"===o.method){if(t.iterator.return){o.method="return";o.arg=r;maybeInvokeDelegate(t,o);if("throw"===o.method)return S}o.method="throw";o.arg=new TypeError("The iterator does not provide a 'throw' method")}return S}var c=tryCatch(l,t.iterator,o.arg);if("throw"===c.type){o.method="throw";o.arg=c.arg;o.delegate=null;return S}var u=c.arg;if(!u){o.method="throw";o.arg=new TypeError("iterator result is not an object");o.delegate=null;return S}if(!u.done)return u;o[t.resultName]=u.value;o.next=t.nextLoc;if("return"!==o.method){o.method="next";o.arg=r}o.delegate=null;return S}defineIteratorMethods(w);define(w,d,"Generator");define(w,u,(function(){return this}));define(w,"toString",(function(){return"[object Generator]"}));function pushTryEntry(t){var r={tryLoc:t[0]};1 in t&&(r.catchLoc=t[1]);if(2 in t){r.finallyLoc=t[2];r.afterLoc=t[3]}this.tryEntries.push(r)}function resetTryEntry(t){var r=t.completion||{};r.type="normal";delete r.arg;t.completion=r}function Context(t){this.tryEntries=[{tryLoc:"root"}];t.forEach(pushTryEntry,this);this.reset(!0)}t.keys=function(t){var r=[];for(var o in t)r.push(o);r.reverse();return function next(){for(;r.length;){var o=r.pop();if(o in t){next.value=o;next.done=!1;return next}}next.done=!0;return next}};function values(t){if(t){var o=t[u];if(o)return o.call(t);if("function"==typeof t.next)return t;if(!isNaN(t.length)){var c=-1,h=function next(){for(;++c<t.length;)if(l.call(t,c)){next.value=t[c];next.done=!1;return next}next.value=r;next.done=!0;return next};return h.next=h}}return{next:doneResult}}t.values=values;function doneResult(){return{value:r,done:!0}}Context.prototype={constructor:Context,reset:function reset(t){this.prev=0;this.next=0;this.sent=this._sent=r;this.done=!1;this.delegate=null;this.method="next";this.arg=r;this.tryEntries.forEach(resetTryEntry);if(!t)for(var o in this)"t"===o.charAt(0)&&l.call(this,o)&&!isNaN(+o.slice(1))&&(this[o]=r)},stop:function stop(){this.done=!0;var t=this.tryEntries[0].completion;if("throw"===t.type)throw t.arg;return this.rval},dispatchException:function dispatchException(t){if(this.done)throw t;var o=this;function handle(l,c){h.type="throw";h.arg=t;o.next=l;if(c){o.method="next";o.arg=r}return!!c}for(var c=this.tryEntries.length-1;c>=0;--c){var u=this.tryEntries[c],h=u.completion;if("root"===u.tryLoc)return handle("end");if(u.tryLoc<=this.prev){var d=l.call(u,"catchLoc"),m=l.call(u,"finallyLoc");if(d&&m){if(this.prev<u.catchLoc)return handle(u.catchLoc,!0);if(this.prev<u.finallyLoc)return handle(u.finallyLoc)}else if(d){if(this.prev<u.catchLoc)return handle(u.catchLoc,!0)}else{if(!m)throw new Error("try statement without catch or finally");if(this.prev<u.finallyLoc)return handle(u.finallyLoc)}}}},abrupt:function abrupt(t,r){for(var o=this.tryEntries.length-1;o>=0;--o){var c=this.tryEntries[o];if(c.tryLoc<=this.prev&&l.call(c,"finallyLoc")&&this.prev<c.finallyLoc){var u=c;break}}u&&("break"===t||"continue"===t)&&u.tryLoc<=r&&r<=u.finallyLoc&&(u=null);var h=u?u.completion:{};h.type=t;h.arg=r;if(u){this.method="next";this.next=u.finallyLoc;return S}return this.complete(h)},complete:function complete(t,r){if("throw"===t.type)throw t.arg;if("break"===t.type||"continue"===t.type)this.next=t.arg;else if("return"===t.type){this.rval=this.arg=t.arg;this.method="return";this.next="end"}else"normal"===t.type&&r&&(this.next=r);return S},finish:function finish(t){for(var r=this.tryEntries.length-1;r>=0;--r){var o=this.tryEntries[r];if(o.finallyLoc===t){this.complete(o.completion,o.afterLoc);resetTryEntry(o);return S}}},catch:function _catch(t){for(var r=this.tryEntries.length-1;r>=0;--r){var o=this.tryEntries[r];if(o.tryLoc===t){var l=o.completion;if("throw"===l.type){var c=l.arg;resetTryEntry(o)}return c}}throw new Error("illegal catch attempt")},delegateYield:function delegateYield(t,o,l){this.delegate={iterator:values(t),resultName:o,nextLoc:l};"next"===this.method&&(this.arg=r);return S}};return t}("object"===_typeof(t=o.nmd(t))?t.exports:{});try{regeneratorRuntime=l}catch(t){"object"===("undefined"==typeof globalThis?"undefined":_typeof(globalThis))?globalThis.regeneratorRuntime=l:Function("r","regeneratorRuntime = r")(l)}},(t,r,o)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});r.arrayByteLength=arrayByteLength;r.arraysToBytes=function arraysToBytes(t){var r=t.length;if(1===r&&t[0]instanceof Uint8Array)return t[0];for(var o=0,l=0;l<r;l++)o+=arrayByteLength(t[l]);for(var c=0,u=new Uint8Array(o),h=0;h<r;h++){var d=t[h];d instanceof Uint8Array||(d="string"==typeof d?stringToBytes(d):new Uint8Array(d));var m=d.byteLength;u.set(d,c);c+=m}return u};r.assert=assert;r.bytesToString=function bytesToString(t){assert(null!==t&&"object"===_typeof(t)&&void 0!==t.length,"Invalid argument for bytesToString");var r=t.length,o=8192;if(r<o)return String.fromCharCode.apply(null,t);for(var l=[],c=0;c<r;c+=o){var u=Math.min(c+o,r),h=t.subarray(c,u);l.push(String.fromCharCode.apply(null,h))}return l.join("")};r.createObjectURL=function createObjectURL(t){var r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"",o=arguments.length>2&&void 0!==arguments[2]&&arguments[2];if(URL.createObjectURL&&!o)return URL.createObjectURL(new Blob([t],{type:r}));for(var l="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",c="data:".concat(r,";base64,"),u=0,h=t.length;u<h;u+=3){var d=255&t[u],m=255&t[u+1],g=255&t[u+2],y=d>>2,v=(3&d)<<4|m>>4,S=u+1<h?(15&m)<<2|g>>6:64,_=u+2<h?63&g:64;c+=l[y]+l[v]+l[S]+l[_]}return c};r.createPromiseCapability=function createPromiseCapability(){var t=Object.create(null),r=!1;Object.defineProperty(t,"settled",{get:function get(){return r}});t.promise=new Promise((function(o,l){t.resolve=function(t){r=!0;o(t)};t.reject=function(t){r=!0;l(t)}}));return t};r.createValidAbsoluteUrl=function createValidAbsoluteUrl(t){var r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null,o=arguments.length>2&&void 0!==arguments[2]?arguments[2]:null;if(!t)return null;try{if(o&&"string"==typeof t){if(o.addDefaultProtocol&&t.startsWith("www.")){var l=t.match(/\./g);l&&l.length>=2&&(t="http://".concat(t))}if(o.tryConvertEncoding)try{t=stringToUTF8String(t)}catch(t){}}var c=r?new URL(t,r):new URL(t);if(_isValidProtocol(c))return c}catch(t){}return null};r.escapeString=function escapeString(t){return t.replace(/([()\\\n\r])/g,(function(t){return"\n"===t?"\\n":"\r"===t?"\\r":"\\".concat(t)}))};r.getModificationDate=function getModificationDate(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:new Date,r=[t.getUTCFullYear().toString(),(t.getUTCMonth()+1).toString().padStart(2,"0"),t.getUTCDate().toString().padStart(2,"0"),t.getUTCHours().toString().padStart(2,"0"),t.getUTCMinutes().toString().padStart(2,"0"),t.getUTCSeconds().toString().padStart(2,"0")];return r.join("")};r.getVerbosityLevel=function getVerbosityLevel(){return c};r.info=function info(t){c>=l.INFOS&&console.log("Info: ".concat(t))};r.isArrayBuffer=function isArrayBuffer(t){return"object"===_typeof(t)&&null!==t&&void 0!==t.byteLength};r.isArrayEqual=function isArrayEqual(t,r){if(t.length!==r.length)return!1;for(var o=0,l=t.length;o<l;o++)if(t[o]!==r[o])return!1;return!0};r.isAscii=function isAscii(t){return/^[\x00-\x7F]*$/.test(t)};r.isBool=function isBool(t){return"boolean"==typeof t};r.isNum=function isNum(t){return"number"==typeof t};r.isSameOrigin=function isSameOrigin(t,r){var o;try{if(!(o=new URL(t)).origin||"null"===o.origin)return!1}catch(t){return!1}var l=new URL(r,o);return o.origin===l.origin};r.isString=function isString(t){return"string"==typeof t};r.objectFromMap=function objectFromMap(t){var r,o=Object.create(null),l=function _createForOfIteratorHelper(t,r){var o="undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(!o){if(Array.isArray(t)||(o=_unsupportedIterableToArray(t))||r&&t&&"number"==typeof t.length){o&&(t=o);var l=0,c=function F(){};return{s:c,n:function n(){return l>=t.length?{done:!0}:{done:!1,value:t[l++]}},e:function e(t){throw t},f:c}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var u,h=!0,d=!1;return{s:function s(){o=o.call(t)},n:function n(){var t=o.next();h=t.done;return t},e:function e(t){d=!0;u=t},f:function f(){try{h||null==o.return||o.return()}finally{if(d)throw u}}}}(t);try{for(l.s();!(r=l.n()).done;){var c=(d=r.value,m=2,function _arrayWithHoles(t){if(Array.isArray(t))return t}(d)||function _iterableToArrayLimit(t,r){var o=null==t?null:"undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(null==o)return;var l,c,u=[],h=!0,d=!1;try{for(o=o.call(t);!(h=(l=o.next()).done);h=!0){u.push(l.value);if(r&&u.length===r)break}}catch(t){d=!0;c=t}finally{try{h||null==o.return||o.return()}finally{if(d)throw c}}return u}(d,m)||_unsupportedIterableToArray(d,m)||function _nonIterableRest(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()),u=c[0],h=c[1];o[u]=h}}catch(t){l.e(t)}finally{l.f()}var d,m;return o};r.objectSize=function objectSize(t){return Object.keys(t).length};r.removeNullCharacters=function removeNullCharacters(t){if("string"!=typeof t){warn("The argument for removeNullCharacters must be a string.");return t}return t.replace(_,"")};r.setVerbosityLevel=function setVerbosityLevel(t){Number.isInteger(t)&&(c=t)};r.shadow=shadow;r.string32=function string32(t){return String.fromCharCode(t>>24&255,t>>16&255,t>>8&255,255&t)};r.stringToBytes=stringToBytes;r.stringToPDFString=function stringToPDFString(t){var r=t.length,o=[];if("þ"===t[0]&&"ÿ"===t[1])for(var l=2;l<r;l+=2)o.push(String.fromCharCode(t.charCodeAt(l)<<8|t.charCodeAt(l+1)));else if("ÿ"===t[0]&&"þ"===t[1])for(var c=2;c<r;c+=2)o.push(String.fromCharCode(t.charCodeAt(c+1)<<8|t.charCodeAt(c)));else for(var u=0;u<r;++u){var h=O[t.charCodeAt(u)];o.push(h?String.fromCharCode(h):t.charAt(u))}return o.join("")};r.stringToUTF16BEString=function stringToUTF16BEString(t){for(var r=["þÿ"],o=0,l=t.length;o<l;o++){var c=t.charCodeAt(o);r.push(String.fromCharCode(c>>8&255),String.fromCharCode(255&c))}return r.join("")};r.stringToUTF8String=stringToUTF8String;r.unreachable=unreachable;r.utf8StringToString=function utf8StringToString(t){return unescape(encodeURIComponent(t))};r.warn=warn;r.VerbosityLevel=r.Util=r.UNSUPPORTED_FEATURES=r.UnknownErrorException=r.UnexpectedResponseException=r.TextRenderingMode=r.StreamType=r.RenderingIntentFlag=r.PermissionFlag=r.PasswordResponses=r.PasswordException=r.PageActionEventType=r.OPS=r.MissingPDFException=r.IsLittleEndianCached=r.IsEvalSupportedCached=r.InvalidPDFException=r.ImageKind=r.IDENTITY_MATRIX=r.FormatError=r.FontType=r.FONT_IDENTITY_MATRIX=r.DocumentActionEventType=r.CMapCompressionType=r.BaseException=r.AnnotationType=r.AnnotationStateModelType=r.AnnotationReviewState=r.AnnotationReplyType=r.AnnotationMode=r.AnnotationMarkedState=r.AnnotationFlag=r.AnnotationFieldFlag=r.AnnotationBorderStyleType=r.AnnotationActionEventType=r.AbortException=void 0;o(5);function _defineProperties(t,r){for(var o=0;o<r.length;o++){var l=r[o];l.enumerable=l.enumerable||!1;l.configurable=!0;"value"in l&&(l.writable=!0);Object.defineProperty(t,l.key,l)}}function _unsupportedIterableToArray(t,r){if(t){if("string"==typeof t)return _arrayLikeToArray(t,r);var o=Object.prototype.toString.call(t).slice(8,-1);"Object"===o&&t.constructor&&(o=t.constructor.name);return"Map"===o||"Set"===o?Array.from(t):"Arguments"===o||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(o)?_arrayLikeToArray(t,r):void 0}}function _arrayLikeToArray(t,r){(null==r||r>t.length)&&(r=t.length);for(var o=0,l=new Array(r);o<r;o++)l[o]=t[o];return l}function _typeof(t){_typeof="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function _typeof(t){return typeof t}:function _typeof(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t};return _typeof(t)}function _classCallCheck(t,r){if(!(t instanceof r))throw new TypeError("Cannot call a class as a function")}function _inherits(t,r){if("function"!=typeof r&&null!==r)throw new TypeError("Super expression must either be null or a function");t.prototype=Object.create(r&&r.prototype,{constructor:{value:t,writable:!0,configurable:!0}});r&&_setPrototypeOf(t,r)}function _setPrototypeOf(t,r){_setPrototypeOf=Object.setPrototypeOf||function _setPrototypeOf(t,r){t.__proto__=r;return t};return _setPrototypeOf(t,r)}function _createSuper(t){var r=function _isNativeReflectConstruct(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){})));return!0}catch(t){return!1}}();return function _createSuperInternal(){var o,l=_getPrototypeOf(t);if(r){var c=_getPrototypeOf(this).constructor;o=Reflect.construct(l,arguments,c)}else o=l.apply(this,arguments);return _possibleConstructorReturn(this,o)}}function _possibleConstructorReturn(t,r){if(r&&("object"===_typeof(r)||"function"==typeof r))return r;if(void 0!==r)throw new TypeError("Derived constructors may only return object or undefined");return function _assertThisInitialized(t){if(void 0===t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return t}(t)}function _getPrototypeOf(t){_getPrototypeOf=Object.setPrototypeOf?Object.getPrototypeOf:function _getPrototypeOf(t){return t.__proto__||Object.getPrototypeOf(t)};return _getPrototypeOf(t)}r.IDENTITY_MATRIX=[1,0,0,1,0,0];r.FONT_IDENTITY_MATRIX=[.001,0,0,.001,0,0];r.RenderingIntentFlag={ANY:1,DISPLAY:2,PRINT:4,ANNOTATIONS_FORMS:16,ANNOTATIONS_STORAGE:32,ANNOTATIONS_DISABLE:64,OPLIST:256};r.AnnotationMode={DISABLE:0,ENABLE:1,ENABLE_FORMS:2,ENABLE_STORAGE:3};r.PermissionFlag={PRINT:4,MODIFY_CONTENTS:8,COPY:16,MODIFY_ANNOTATIONS:32,FILL_INTERACTIVE_FORMS:256,COPY_FOR_ACCESSIBILITY:512,ASSEMBLE:1024,PRINT_HIGH_QUALITY:2048};r.TextRenderingMode={FILL:0,STROKE:1,FILL_STROKE:2,INVISIBLE:3,FILL_ADD_TO_PATH:4,STROKE_ADD_TO_PATH:5,FILL_STROKE_ADD_TO_PATH:6,ADD_TO_PATH:7,FILL_STROKE_MASK:3,ADD_TO_PATH_FLAG:4};r.ImageKind={GRAYSCALE_1BPP:1,RGB_24BPP:2,RGBA_32BPP:3};r.AnnotationType={TEXT:1,LINK:2,FREETEXT:3,LINE:4,SQUARE:5,CIRCLE:6,POLYGON:7,POLYLINE:8,HIGHLIGHT:9,UNDERLINE:10,SQUIGGLY:11,STRIKEOUT:12,STAMP:13,CARET:14,INK:15,POPUP:16,FILEATTACHMENT:17,SOUND:18,MOVIE:19,WIDGET:20,SCREEN:21,PRINTERMARK:22,TRAPNET:23,WATERMARK:24,THREED:25,REDACT:26};r.AnnotationStateModelType={MARKED:"Marked",REVIEW:"Review"};r.AnnotationMarkedState={MARKED:"Marked",UNMARKED:"Unmarked"};r.AnnotationReviewState={ACCEPTED:"Accepted",REJECTED:"Rejected",CANCELLED:"Cancelled",COMPLETED:"Completed",NONE:"None"};r.AnnotationReplyType={GROUP:"Group",REPLY:"R"};r.AnnotationFlag={INVISIBLE:1,HIDDEN:2,PRINT:4,NOZOOM:8,NOROTATE:16,NOVIEW:32,READONLY:64,LOCKED:128,TOGGLENOVIEW:256,LOCKEDCONTENTS:512};r.AnnotationFieldFlag={READONLY:1,REQUIRED:2,NOEXPORT:4,MULTILINE:4096,PASSWORD:8192,NOTOGGLETOOFF:16384,RADIO:32768,PUSHBUTTON:65536,COMBO:131072,EDIT:262144,SORT:524288,FILESELECT:1048576,MULTISELECT:2097152,DONOTSPELLCHECK:4194304,DONOTSCROLL:8388608,COMB:16777216,RICHTEXT:33554432,RADIOSINUNISON:33554432,COMMITONSELCHANGE:67108864};r.AnnotationBorderStyleType={SOLID:1,DASHED:2,BEVELED:3,INSET:4,UNDERLINE:5};r.AnnotationActionEventType={E:"Mouse Enter",X:"Mouse Exit",D:"Mouse Down",U:"Mouse Up",Fo:"Focus",Bl:"Blur",PO:"PageOpen",PC:"PageClose",PV:"PageVisible",PI:"PageInvisible",K:"Keystroke",F:"Format",V:"Validate",C:"Calculate"};r.DocumentActionEventType={WC:"WillClose",WS:"WillSave",DS:"DidSave",WP:"WillPrint",DP:"DidPrint"};r.PageActionEventType={O:"PageOpen",C:"PageClose"};r.StreamType={UNKNOWN:"UNKNOWN",FLATE:"FLATE",LZW:"LZW",DCT:"DCT",JPX:"JPX",JBIG:"JBIG",A85:"A85",AHX:"AHX",CCF:"CCF",RLX:"RLX"};r.FontType={UNKNOWN:"UNKNOWN",TYPE1:"TYPE1",TYPE1STANDARD:"TYPE1STANDARD",TYPE1C:"TYPE1C",CIDFONTTYPE0:"CIDFONTTYPE0",CIDFONTTYPE0C:"CIDFONTTYPE0C",TRUETYPE:"TRUETYPE",CIDFONTTYPE2:"CIDFONTTYPE2",TYPE3:"TYPE3",OPENTYPE:"OPENTYPE",TYPE0:"TYPE0",MMTYPE1:"MMTYPE1"};var l={ERRORS:0,WARNINGS:1,INFOS:5};r.VerbosityLevel=l;r.CMapCompressionType={NONE:0,BINARY:1,STREAM:2};r.OPS={dependency:1,setLineWidth:2,setLineCap:3,setLineJoin:4,setMiterLimit:5,setDash:6,setRenderingIntent:7,setFlatness:8,setGState:9,save:10,restore:11,transform:12,moveTo:13,lineTo:14,curveTo:15,curveTo2:16,curveTo3:17,closePath:18,rectangle:19,stroke:20,closeStroke:21,fill:22,eoFill:23,fillStroke:24,eoFillStroke:25,closeFillStroke:26,closeEOFillStroke:27,endPath:28,clip:29,eoClip:30,beginText:31,endText:32,setCharSpacing:33,setWordSpacing:34,setHScale:35,setLeading:36,setFont:37,setTextRenderingMode:38,setTextRise:39,moveText:40,setLeadingMoveText:41,setTextMatrix:42,nextLine:43,showText:44,showSpacedText:45,nextLineShowText:46,nextLineSetSpacingShowText:47,setCharWidth:48,setCharWidthAndBounds:49,setStrokeColorSpace:50,setFillColorSpace:51,setStrokeColor:52,setStrokeColorN:53,setFillColor:54,setFillColorN:55,setStrokeGray:56,setFillGray:57,setStrokeRGBColor:58,setFillRGBColor:59,setStrokeCMYKColor:60,setFillCMYKColor:61,shadingFill:62,beginInlineImage:63,beginImageData:64,endInlineImage:65,paintXObject:66,markPoint:67,markPointProps:68,beginMarkedContent:69,beginMarkedContentProps:70,endMarkedContent:71,beginCompat:72,endCompat:73,paintFormXObjectBegin:74,paintFormXObjectEnd:75,beginGroup:76,endGroup:77,beginAnnotations:78,endAnnotations:79,beginAnnotation:80,endAnnotation:81,paintJpegXObject:82,paintImageMaskXObject:83,paintImageMaskXObjectGroup:84,paintImageXObject:85,paintInlineImageXObject:86,paintInlineImageXObjectGroup:87,paintImageXObjectRepeat:88,paintImageMaskXObjectRepeat:89,paintSolidColorImageMask:90,constructPath:91};r.UNSUPPORTED_FEATURES={unknown:"unknown",forms:"forms",javaScript:"javaScript",signatures:"signatures",smask:"smask",shadingPattern:"shadingPattern",font:"font",errorTilingPattern:"errorTilingPattern",errorExtGState:"errorExtGState",errorXObject:"errorXObject",errorFontLoadType3:"errorFontLoadType3",errorFontState:"errorFontState",errorFontMissing:"errorFontMissing",errorFontTranslate:"errorFontTranslate",errorColorSpace:"errorColorSpace",errorOperatorList:"errorOperatorList",errorFontToUnicode:"errorFontToUnicode",errorFontLoadNative:"errorFontLoadNative",errorFontBuildPath:"errorFontBuildPath",errorFontGetPath:"errorFontGetPath",errorMarkedContent:"errorMarkedContent",errorContentSubStream:"errorContentSubStream"};r.PasswordResponses={NEED_PASSWORD:1,INCORRECT_PASSWORD:2};var c=l.WARNINGS;function warn(t){c>=l.WARNINGS&&console.log("Warning: ".concat(t))}function unreachable(t){throw new Error(t)}function assert(t,r){t||unreachable(r)}function _isValidProtocol(t){if(!t)return!1;switch(t.protocol){case"http:":case"https:":case"ftp:":case"mailto:":case"tel:":return!0;default:return!1}}function shadow(t,r,o){Object.defineProperty(t,r,{value:o,enumerable:!0,configurable:!0,writable:!1});return o}var u=function BaseExceptionClosure(){function BaseException(t,r){this.constructor===BaseException&&unreachable("Cannot initialize BaseException.");this.message=t;this.name=r}BaseException.prototype=new Error;BaseException.constructor=BaseException;return BaseException}();r.BaseException=u;var h=function(t){_inherits(PasswordException,t);var r=_createSuper(PasswordException);function PasswordException(t,o){var l;_classCallCheck(this,PasswordException);(l=r.call(this,t,"PasswordException")).code=o;return l}return PasswordException}(u);r.PasswordException=h;var d=function(t){_inherits(UnknownErrorException,t);var r=_createSuper(UnknownErrorException);function UnknownErrorException(t,o){var l;_classCallCheck(this,UnknownErrorException);(l=r.call(this,t,"UnknownErrorException")).details=o;return l}return UnknownErrorException}(u);r.UnknownErrorException=d;var m=function(t){_inherits(InvalidPDFException,t);var r=_createSuper(InvalidPDFException);function InvalidPDFException(t){_classCallCheck(this,InvalidPDFException);return r.call(this,t,"InvalidPDFException")}return InvalidPDFException}(u);r.InvalidPDFException=m;var g=function(t){_inherits(MissingPDFException,t);var r=_createSuper(MissingPDFException);function MissingPDFException(t){_classCallCheck(this,MissingPDFException);return r.call(this,t,"MissingPDFException")}return MissingPDFException}(u);r.MissingPDFException=g;var y=function(t){_inherits(UnexpectedResponseException,t);var r=_createSuper(UnexpectedResponseException);function UnexpectedResponseException(t,o){var l;_classCallCheck(this,UnexpectedResponseException);(l=r.call(this,t,"UnexpectedResponseException")).status=o;return l}return UnexpectedResponseException}(u);r.UnexpectedResponseException=y;var v=function(t){_inherits(FormatError,t);var r=_createSuper(FormatError);function FormatError(t){_classCallCheck(this,FormatError);return r.call(this,t,"FormatError")}return FormatError}(u);r.FormatError=v;var S=function(t){_inherits(AbortException,t);var r=_createSuper(AbortException);function AbortException(t){_classCallCheck(this,AbortException);return r.call(this,t,"AbortException")}return AbortException}(u);r.AbortException=S;var _=/\x00/g;function stringToBytes(t){assert("string"==typeof t,"Invalid argument for stringToBytes");for(var r=t.length,o=new Uint8Array(r),l=0;l<r;++l)o[l]=255&t.charCodeAt(l);return o}function arrayByteLength(t){if(void 0!==t.length)return t.length;assert(void 0!==t.byteLength,"arrayByteLength - invalid argument.");return t.byteLength}var k={get value(){return shadow(this,"value",function isLittleEndian(){var t=new Uint8Array(4);t[0]=1;return 1===new Uint32Array(t.buffer,0,1)[0]}())}};r.IsLittleEndianCached=k;var C={get value(){return shadow(this,"value",function isEvalSupported(){try{new Function("");return!0}catch(t){return!1}}())}};r.IsEvalSupportedCached=C;var w=function _toConsumableArray(t){return function _arrayWithoutHoles(t){if(Array.isArray(t))return _arrayLikeToArray(t)}(t)||function _iterableToArray(t){if("undefined"!=typeof Symbol&&null!=t[Symbol.iterator]||null!=t["@@iterator"])return Array.from(t)}(t)||_unsupportedIterableToArray(t)||function _nonIterableSpread(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}(Array(256).keys()).map((function(t){return t.toString(16).padStart(2,"0")})),x=function(){function Util(){_classCallCheck(this,Util)}!function _createClass(t,r,o){r&&_defineProperties(t.prototype,r);o&&_defineProperties(t,o);return t}(Util,null,[{key:"makeHexColor",value:function makeHexColor(t,r,o){return"#".concat(w[t]).concat(w[r]).concat(w[o])}},{key:"transform",value:function transform(t,r){return[t[0]*r[0]+t[2]*r[1],t[1]*r[0]+t[3]*r[1],t[0]*r[2]+t[2]*r[3],t[1]*r[2]+t[3]*r[3],t[0]*r[4]+t[2]*r[5]+t[4],t[1]*r[4]+t[3]*r[5]+t[5]]}},{key:"applyTransform",value:function applyTransform(t,r){return[t[0]*r[0]+t[1]*r[2]+r[4],t[0]*r[1]+t[1]*r[3]+r[5]]}},{key:"applyInverseTransform",value:function applyInverseTransform(t,r){var o=r[0]*r[3]-r[1]*r[2];return[(t[0]*r[3]-t[1]*r[2]+r[2]*r[5]-r[4]*r[3])/o,(-t[0]*r[1]+t[1]*r[0]+r[4]*r[1]-r[5]*r[0])/o]}},{key:"getAxialAlignedBoundingBox",value:function getAxialAlignedBoundingBox(t,r){var o=Util.applyTransform(t,r),l=Util.applyTransform(t.slice(2,4),r),c=Util.applyTransform([t[0],t[3]],r),u=Util.applyTransform([t[2],t[1]],r);return[Math.min(o[0],l[0],c[0],u[0]),Math.min(o[1],l[1],c[1],u[1]),Math.max(o[0],l[0],c[0],u[0]),Math.max(o[1],l[1],c[1],u[1])]}},{key:"inverseTransform",value:function inverseTransform(t){var r=t[0]*t[3]-t[1]*t[2];return[t[3]/r,-t[1]/r,-t[2]/r,t[0]/r,(t[2]*t[5]-t[4]*t[3])/r,(t[4]*t[1]-t[5]*t[0])/r]}},{key:"apply3dTransform",value:function apply3dTransform(t,r){return[t[0]*r[0]+t[1]*r[1]+t[2]*r[2],t[3]*r[0]+t[4]*r[1]+t[5]*r[2],t[6]*r[0]+t[7]*r[1]+t[8]*r[2]]}},{key:"singularValueDecompose2dScale",value:function singularValueDecompose2dScale(t){var r=[t[0],t[2],t[1],t[3]],o=t[0]*r[0]+t[1]*r[2],l=t[0]*r[1]+t[1]*r[3],c=t[2]*r[0]+t[3]*r[2],u=t[2]*r[1]+t[3]*r[3],h=(o+u)/2,d=Math.sqrt(Math.pow(o+u,2)-4*(o*u-c*l))/2,m=h+d||1,g=h-d||1;return[Math.sqrt(m),Math.sqrt(g)]}},{key:"normalizeRect",value:function normalizeRect(t){var r=t.slice(0);if(t[0]>t[2]){r[0]=t[2];r[2]=t[0]}if(t[1]>t[3]){r[1]=t[3];r[3]=t[1]}return r}},{key:"intersect",value:function intersect(t,r){function compare(t,r){return t-r}var o=[t[0],t[2],r[0],r[2]].sort(compare),l=[t[1],t[3],r[1],r[3]].sort(compare),c=[];t=Util.normalizeRect(t);r=Util.normalizeRect(r);if(!(o[0]===t[0]&&o[1]===r[0]||o[0]===r[0]&&o[1]===t[0]))return null;c[0]=o[1];c[2]=o[2];if(!(l[0]===t[1]&&l[1]===r[1]||l[0]===r[1]&&l[1]===t[1]))return null;c[1]=l[1];c[3]=l[2];return c}}]);return Util}();r.Util=x;var O=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,728,711,710,729,733,731,730,732,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,8226,8224,8225,8230,8212,8211,402,8260,8249,8250,8722,8240,8222,8220,8221,8216,8217,8218,8482,64257,64258,321,338,352,376,381,305,322,339,353,382,0,8364];function stringToUTF8String(t){return decodeURIComponent(escape(t))}},(t,r,o)=>{"use strict";var l=o(6);if("undefined"==typeof globalThis||!globalThis._pdfjsCompatibilityChecked){"undefined"!=typeof globalThis&&globalThis.Math===Math||(globalThis=o(7));globalThis._pdfjsCompatibilityChecked=!0;!function checkNodeBtoa(){!globalThis.btoa&&l.isNodeJS&&(globalThis.btoa=function(t){return Buffer.from(t,"binary").toString("base64")})}();!function checkNodeAtob(){!globalThis.atob&&l.isNodeJS&&(globalThis.atob=function(t){return Buffer.from(t,"base64").toString("binary")})}();!function checkDOMMatrix(){!globalThis.DOMMatrix&&l.isNodeJS&&(globalThis.DOMMatrix=o(60))}();!function checkObjectFromEntries(){Object.fromEntries||o(61)}();!function checkPromise(){globalThis.Promise.allSettled||(globalThis.Promise=o(89))}();!function checkReadableStream(){!globalThis.ReadableStream&&l.isNodeJS&&(globalThis.ReadableStream=o(117).ReadableStream)}()}},(t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});r.isNodeJS=void 0;function _typeof(t){_typeof="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function _typeof(t){return typeof t}:function _typeof(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t};return _typeof(t)}var o=!("object"!==("undefined"==typeof process?"undefined":_typeof(process))||process+""!="[object process]"||process.versions.nw||process.versions.electron&&process.type&&"browser"!==process.type);r.isNodeJS=o},(t,r,o)=>{o(8);t.exports=o(10)},(t,r,o)=>{o(9)({global:!0},{globalThis:o(10)})},(t,r,o)=>{var l=o(10),c=o(11).f,u=o(40),h=o(43),d=o(34),m=o(49),g=o(59);t.exports=function(t,r){var o,y,v,S,_,k=t.target,C=t.global,w=t.stat;if(o=C?l:w?l[k]||d(k,{}):(l[k]||{}).prototype)for(y in r){S=r[y];v=t.noTargetGet?(_=c(o,y))&&_.value:o[y];if(!g(C?y:k+(w?".":"#")+y,t.forced)&&void 0!==v){if(typeof S==typeof v)continue;m(S,v)}(t.sham||v&&v.sham)&&u(S,"sham",!0);h(o,y,S,t)}}},t=>{var check=function(t){return t&&t.Math==Math&&t};t.exports=check("object"==typeof globalThis&&globalThis)||check("object"==typeof window&&window)||check("object"==typeof self&&self)||check("object"==typeof global&&global)||function(){return this}()||Function("return this")()},(t,r,o)=>{var l=o(12),c=o(14),u=o(15),h=o(16),d=o(20),m=o(35),g=o(38),y=Object.getOwnPropertyDescriptor;r.f=l?y:function getOwnPropertyDescriptor(t,r){t=h(t);r=d(r);if(g)try{return y(t,r)}catch(t){}if(m(t,r))return u(!c.f.call(t,r),t[r])}},(t,r,o)=>{var l=o(13);t.exports=!l((function(){return 7!=Object.defineProperty({},1,{get:function(){return 7}})[1]}))},t=>{t.exports=function(t){try{return!!t()}catch(t){return!0}}},(t,r)=>{"use strict";var o={}.propertyIsEnumerable,l=Object.getOwnPropertyDescriptor,c=l&&!o.call({1:2},1);r.f=c?function propertyIsEnumerable(t){var r=l(this,t);return!!r&&r.enumerable}:o},t=>{t.exports=function(t,r){return{enumerable:!(1&t),configurable:!(2&t),writable:!(4&t),value:r}}},(t,r,o)=>{var l=o(17),c=o(19);t.exports=function(t){return l(c(t))}},(t,r,o)=>{var l=o(13),c=o(18),u="".split;t.exports=l((function(){return!Object("z").propertyIsEnumerable(0)}))?function(t){return"String"==c(t)?u.call(t,""):Object(t)}:Object},t=>{var r={}.toString;t.exports=function(t){return r.call(t).slice(8,-1)}},t=>{t.exports=function(t){if(null==t)throw TypeError("Can't call method on "+t);return t}},(t,r,o)=>{var l=o(21),c=o(23);t.exports=function(t){var r=l(t,"string");return c(r)?r:String(r)}},(t,r,o)=>{var l=o(22),c=o(23),u=o(29),h=o(30)("toPrimitive");t.exports=function(t,r){if(!l(t)||c(t))return t;var o,d=t[h];if(void 0!==d){void 0===r&&(r="default");o=d.call(t,r);if(!l(o)||c(o))return o;throw TypeError("Can't convert object to primitive value")}void 0===r&&(r="number");return u(t,r)}},t=>{t.exports=function(t){return"object"==typeof t?null!==t:"function"==typeof t}},(t,r,o)=>{var l=o(24),c=o(25);t.exports=c?function(t){return"symbol"==typeof t}:function(t){var r=l("Symbol");return"function"==typeof r&&Object(t)instanceof r}},(t,r,o)=>{var l=o(10),aFunction=function(t){return"function"==typeof t?t:void 0};t.exports=function(t,r){return arguments.length<2?aFunction(l[t]):l[t]&&l[t][r]}},(t,r,o)=>{var l=o(26);t.exports=l&&!Symbol.sham&&"symbol"==typeof Symbol.iterator},(t,r,o)=>{var l=o(27),c=o(13);t.exports=!!Object.getOwnPropertySymbols&&!c((function(){var t=Symbol();return!String(t)||!(Object(t)instanceof Symbol)||!Symbol.sham&&l&&l<41}))},(t,r,o)=>{var l,c,u=o(10),h=o(28),d=u.process,m=u.Deno,g=d&&d.versions||m&&m.version,y=g&&g.v8;y?c=(l=y.split("."))[0]<4?1:l[0]+l[1]:h&&(!(l=h.match(/Edge\/(\d+)/))||l[1]>=74)&&(l=h.match(/Chrome\/(\d+)/))&&(c=l[1]);t.exports=c&&+c},(t,r,o)=>{var l=o(24);t.exports=l("navigator","userAgent")||""},(t,r,o)=>{var l=o(22);t.exports=function(t,r){var o,c;if("string"===r&&"function"==typeof(o=t.toString)&&!l(c=o.call(t)))return c;if("function"==typeof(o=t.valueOf)&&!l(c=o.call(t)))return c;if("string"!==r&&"function"==typeof(o=t.toString)&&!l(c=o.call(t)))return c;throw TypeError("Can't convert object to primitive value")}},(t,r,o)=>{var l=o(10),c=o(31),u=o(35),h=o(37),d=o(26),m=o(25),g=c("wks"),y=l.Symbol,v=m?y:y&&y.withoutSetter||h;t.exports=function(t){u(g,t)&&(d||"string"==typeof g[t])||(d&&u(y,t)?g[t]=y[t]:g[t]=v("Symbol."+t));return g[t]}},(t,r,o)=>{var l=o(32),c=o(33);(t.exports=function(t,r){return c[t]||(c[t]=void 0!==r?r:{})})("versions",[]).push({version:"3.17.3",mode:l?"pure":"global",copyright:"© 2021 Denis Pushkarev (zloirock.ru)"})},t=>{t.exports=!1},(t,r,o)=>{var l=o(10),c=o(34),u="__core-js_shared__",h=l[u]||c(u,{});t.exports=h},(t,r,o)=>{var l=o(10);t.exports=function(t,r){try{Object.defineProperty(l,t,{value:r,configurable:!0,writable:!0})}catch(o){l[t]=r}return r}},(t,r,o)=>{var l=o(36),c={}.hasOwnProperty;t.exports=Object.hasOwn||function hasOwn(t,r){return c.call(l(t),r)}},(t,r,o)=>{var l=o(19);t.exports=function(t){return Object(l(t))}},t=>{var r=0,o=Math.random();t.exports=function(t){return"Symbol("+String(void 0===t?"":t)+")_"+(++r+o).toString(36)}},(t,r,o)=>{var l=o(12),c=o(13),u=o(39);t.exports=!l&&!c((function(){return 7!=Object.defineProperty(u("div"),"a",{get:function(){return 7}}).a}))},(t,r,o)=>{var l=o(10),c=o(22),u=l.document,h=c(u)&&c(u.createElement);t.exports=function(t){return h?u.createElement(t):{}}},(t,r,o)=>{var l=o(12),c=o(41),u=o(15);t.exports=l?function(t,r,o){return c.f(t,r,u(1,o))}:function(t,r,o){t[r]=o;return t}},(t,r,o)=>{var l=o(12),c=o(38),u=o(42),h=o(20),d=Object.defineProperty;r.f=l?d:function defineProperty(t,r,o){u(t);r=h(r);u(o);if(c)try{return d(t,r,o)}catch(t){}if("get"in o||"set"in o)throw TypeError("Accessors not supported");"value"in o&&(t[r]=o.value);return t}},(t,r,o)=>{var l=o(22);t.exports=function(t){if(!l(t))throw TypeError(String(t)+" is not an object");return t}},(t,r,o)=>{var l=o(10),c=o(40),u=o(35),h=o(34),d=o(44),m=o(45),g=m.get,y=m.enforce,v=String(String).split("String");(t.exports=function(t,r,o,d){var m,g=!!d&&!!d.unsafe,S=!!d&&!!d.enumerable,_=!!d&&!!d.noTargetGet;if("function"==typeof o){"string"!=typeof r||u(o,"name")||c(o,"name",r);(m=y(o)).source||(m.source=v.join("string"==typeof r?r:""))}if(t!==l){g?!_&&t[r]&&(S=!0):delete t[r];S?t[r]=o:c(t,r,o)}else S?t[r]=o:h(r,o)})(Function.prototype,"toString",(function toString(){return"function"==typeof this&&g(this).source||d(this)}))},(t,r,o)=>{var l=o(33),c=Function.toString;"function"!=typeof l.inspectSource&&(l.inspectSource=function(t){return c.call(t)});t.exports=l.inspectSource},(t,r,o)=>{var l,c,u,h=o(46),d=o(10),m=o(22),g=o(40),y=o(35),v=o(33),S=o(47),_=o(48),k="Object already initialized",C=d.WeakMap;if(h||v.state){var w=v.state||(v.state=new C),x=w.get,O=w.has,T=w.set;l=function(t,r){if(O.call(w,t))throw new TypeError(k);r.facade=t;T.call(w,t,r);return r};c=function(t){return x.call(w,t)||{}};u=function(t){return O.call(w,t)}}else{var R=S("state");_[R]=!0;l=function(t,r){if(y(t,R))throw new TypeError(k);r.facade=t;g(t,R,r);return r};c=function(t){return y(t,R)?t[R]:{}};u=function(t){return y(t,R)}}t.exports={set:l,get:c,has:u,enforce:function(t){return u(t)?c(t):l(t,{})},getterFor:function(t){return function(r){var o;if(!m(r)||(o=c(r)).type!==t)throw TypeError("Incompatible receiver, "+t+" required");return o}}}},(t,r,o)=>{var l=o(10),c=o(44),u=l.WeakMap;t.exports="function"==typeof u&&/native code/.test(c(u))},(t,r,o)=>{var l=o(31),c=o(37),u=l("keys");t.exports=function(t){return u[t]||(u[t]=c(t))}},t=>{t.exports={}},(t,r,o)=>{var l=o(35),c=o(50),u=o(11),h=o(41);t.exports=function(t,r){for(var o=c(r),d=h.f,m=u.f,g=0;g<o.length;g++){var y=o[g];l(t,y)||d(t,y,m(r,y))}}},(t,r,o)=>{var l=o(24),c=o(51),u=o(58),h=o(42);t.exports=l("Reflect","ownKeys")||function ownKeys(t){var r=c.f(h(t)),o=u.f;return o?r.concat(o(t)):r}},(t,r,o)=>{var l=o(52),c=o(57).concat("length","prototype");r.f=Object.getOwnPropertyNames||function getOwnPropertyNames(t){return l(t,c)}},(t,r,o)=>{var l=o(35),c=o(16),u=o(53).indexOf,h=o(48);t.exports=function(t,r){var o,d=c(t),m=0,g=[];for(o in d)!l(h,o)&&l(d,o)&&g.push(o);for(;r.length>m;)l(d,o=r[m++])&&(~u(g,o)||g.push(o));return g}},(t,r,o)=>{var l=o(16),c=o(54),u=o(56),createMethod=function(t){return function(r,o,h){var d,m=l(r),g=c(m.length),y=u(h,g);if(t&&o!=o){for(;g>y;)if((d=m[y++])!=d)return!0}else for(;g>y;y++)if((t||y in m)&&m[y]===o)return t||y||0;return!t&&-1}};t.exports={includes:createMethod(!0),indexOf:createMethod(!1)}},(t,r,o)=>{var l=o(55),c=Math.min;t.exports=function(t){return t>0?c(l(t),9007199254740991):0}},t=>{var r=Math.ceil,o=Math.floor;t.exports=function(t){return isNaN(t=+t)?0:(t>0?o:r)(t)}},(t,r,o)=>{var l=o(55),c=Math.max,u=Math.min;t.exports=function(t,r){var o=l(t);return o<0?c(o+r,0):u(o,r)}},t=>{t.exports=["constructor","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","toLocaleString","toString","valueOf"]},(t,r)=>{r.f=Object.getOwnPropertySymbols},(t,r,o)=>{var l=o(13),c=/#|\.prototype\./,isForced=function(t,r){var o=h[u(t)];return o==m||o!=d&&("function"==typeof r?l(r):!!r)},u=isForced.normalize=function(t){return String(t).replace(c,".").toLowerCase()},h=isForced.data={},d=isForced.NATIVE="N",m=isForced.POLYFILL="P";t.exports=isForced},(t,r,o)=>{"use strict";var l,c,u;function _typeof(t){_typeof="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function _typeof(t){return typeof t}:function _typeof(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t};return _typeof(t)}u=function(){var t=function CSSMatrix(){for(var t=[],r=arguments.length;r--;)t[r]=arguments[r];this.setIdentity();return t&&t.length&&this.setMatrixValue(t)},r={isIdentity:{configurable:!0},is2D:{configurable:!0}};r.isIdentity.get=function(){var t=this;return 1===t.m11&&0===t.m12&&0===t.m13&&0===t.m14&&0===t.m21&&1===t.m22&&0===t.m23&&0===t.m24&&0===t.m31&&0===t.m32&&1===t.m33&&0===t.m34&&0===t.m41&&0===t.m42&&0===t.m43&&1===t.m44};r.isIdentity.set=function(t){this.isIdentity=t};r.is2D.get=function(){var t=this;return 0===t.m31&&0===t.m32&&1===t.m33&&0===t.m34&&0===t.m43&&1===t.m44};r.is2D.set=function(t){this.is2D=t};Object.defineProperties(t.prototype,r);var o=t.prototype;function Translate(r,o,l){var c=new t;c.m41=r;c.e=r;c.m42=o;c.f=o;c.m43=l;return c}function Rotate(r,o,l){var c=new t,u=r*Math.PI/180,h=o*Math.PI/180,d=l*Math.PI/180,m=Math.cos(u),g=-Math.sin(u),y=Math.cos(h),v=-Math.sin(h),S=Math.cos(d),_=-Math.sin(d),k=y*S,C=-y*_;c.m11=k;c.a=k;c.m12=C;c.b=C;c.m13=v;var w=g*v*S+m*_;c.m21=w;c.c=w;var x=m*S-g*v*_;c.m22=x;c.d=x;c.m23=-g*y;c.m31=g*_-m*v*S;c.m32=g*S+m*v*_;c.m33=m*y;return c}function RotateAxisAngle(r,o,l,c){var u=new t,h=c*Math.PI/360,d=Math.sin(h),m=Math.cos(h),g=d*d,y=Math.sqrt(r*r+o*o+l*l),v=0,S=0,_=1;if(0!==y){v=r/y;S=o/y;_=l/y}var k=v*v,C=S*S,w=_*_,x=1-2*(C+w)*g;u.m11=x;u.a=x;var O=2*(r*o*g+l*d*m);u.m12=O;u.b=O;u.m13=2*(r*l*g-o*d*m);var T=2*(o*r*g-l*d*m);u.m21=T;u.c=T;var R=1-2*(w+k)*g;u.m22=R;u.d=R;u.m23=2*(o*l*g+r*d*m);u.m31=2*(l*r*g+o*d*m);u.m32=2*(l*o*g-r*d*m);u.m33=1-2*(k+C)*g;u.m14=0;u.m24=0;u.m34=0;u.m41=0;u.e=0;u.m42=0;u.f=0;u.m43=0;u.m44=1;return u}function Scale(r,o,l){var c=new t;c.m11=r;c.a=r;c.m22=o;c.d=o;c.m33=l;return c}function SkewX(r){var o=r*Math.PI/180,l=new t,c=Math.tan(o);l.m21=c;l.c=c;return l}function SkewY(r){var o=r*Math.PI/180,l=new t,c=Math.tan(o);l.m12=c;l.b=c;return l}function Multiply(r,o){var l=o.m11*r.m11+o.m12*r.m21+o.m13*r.m31+o.m14*r.m41,c=o.m11*r.m12+o.m12*r.m22+o.m13*r.m32+o.m14*r.m42,u=o.m11*r.m13+o.m12*r.m23+o.m13*r.m33+o.m14*r.m43,h=o.m11*r.m14+o.m12*r.m24+o.m13*r.m34+o.m14*r.m44,d=o.m21*r.m11+o.m22*r.m21+o.m23*r.m31+o.m24*r.m41,m=o.m21*r.m12+o.m22*r.m22+o.m23*r.m32+o.m24*r.m42,g=o.m21*r.m13+o.m22*r.m23+o.m23*r.m33+o.m24*r.m43,y=o.m21*r.m14+o.m22*r.m24+o.m23*r.m34+o.m24*r.m44,v=o.m31*r.m11+o.m32*r.m21+o.m33*r.m31+o.m34*r.m41,S=o.m31*r.m12+o.m32*r.m22+o.m33*r.m32+o.m34*r.m42,_=o.m31*r.m13+o.m32*r.m23+o.m33*r.m33+o.m34*r.m43,k=o.m31*r.m14+o.m32*r.m24+o.m33*r.m34+o.m34*r.m44,C=o.m41*r.m11+o.m42*r.m21+o.m43*r.m31+o.m44*r.m41,w=o.m41*r.m12+o.m42*r.m22+o.m43*r.m32+o.m44*r.m42,x=o.m41*r.m13+o.m42*r.m23+o.m43*r.m33+o.m44*r.m43,O=o.m41*r.m14+o.m42*r.m24+o.m43*r.m34+o.m44*r.m44;return new t([l,d,v,C,c,m,S,w,u,g,_,x,h,y,k,O])}function feedFromArray(t,r){var o=Array.from(r);if(16===o.length){var l=o[0],c=o[1],u=o[2],h=o[3],d=o[4],m=o[5],g=o[6],y=o[7],v=o[8],S=o[9],_=o[10],k=o[11],C=o[12],w=o[13],x=o[14],O=o[15];t.m11=l;t.a=l;t.m21=c;t.c=c;t.m31=u;t.m41=h;t.e=h;t.m12=d;t.b=d;t.m22=m;t.d=m;t.m32=g;t.m42=y;t.f=y;t.m13=v;t.m23=S;t.m33=_;t.m43=k;t.m14=C;t.m24=w;t.m34=x;t.m44=O}else{if(6!==o.length)throw new TypeError("CSSMatrix: expecting a 6/16 values Array");var T=o[0],R=o[1],E=o[2],M=o[3],D=o[4],j=o[5];t.m11=T;t.a=T;t.m12=R;t.b=R;t.m21=E;t.c=E;t.m22=M;t.d=M;t.m14=D;t.e=D;t.m24=j;t.f=j}return t}o.setMatrixValue=function setMatrixValue(r){var o=this;if(!r||!r.length)return o;if(r.length&&"string"==typeof r[0]&&r[0].length){var l,c,u=String(r[0]).trim();if("none"===u)return o;l=u.slice(0,u.indexOf("("));c=u.slice("matrix"===l?7:9,-1).split(",").map((function(t){return Math.abs(t)<1e-6?0:+t}));if(!([6,16].indexOf(c.length)>-1))throw new TypeError("CSSMatrix: expecting valid CSS matrix() / matrix3d() syntax");feedFromArray(o,c)}else r[0]instanceof t?feedFromArray(o,r[0].toArray()):Array.isArray(r[0])?feedFromArray(o,r[0]):Array.isArray(r)&&feedFromArray(o,r);return o};o.toString=function toString(){return(this.is2D?"matrix":"matrix3d")+"("+this.toArray(1).join(",")+")"};o.toArray=function toArray(t){var r=this;return r.is2D?[r.a,r.b,r.c,r.d,r.e,r.f]:t?[r.m11,r.m12,r.m13,r.m14,r.m21,r.m22,r.m23,r.m24,r.m31,r.m32,r.m33,r.m34,r.m41,r.m42,r.m43,r.m44]:[r.m11,r.m21,r.m31,r.m41,r.m12,r.m22,r.m32,r.m42,r.m13,r.m23,r.m33,r.m43,r.m14,r.m24,r.m34,r.m44]};o.multiply=function multiply(t){return Multiply(this,t)};o.translate=function translate(t,r,o){var l=r,c=o;null==c&&(c=0);null==l&&(l=0);return Multiply(this,Translate(t,l,c))};o.scale=function scale(t,r,o){var l=r,c=o;null==l&&(l=t);null==c&&(c=t);return Multiply(this,Scale(t,l,c))};o.rotate=function rotate(t,r,o){var l=t,c=r,u=o;null==c&&(c=0);if(null==u){u=l;l=0}return Multiply(this,Rotate(l,c,u))};o.rotateAxisAngle=function rotateAxisAngle(t,r,o,l){if(4!==arguments.length)throw new TypeError("CSSMatrix: expecting 4 values");return Multiply(this,RotateAxisAngle(t,r,o,l))};o.skewX=function skewX(t){return Multiply(this,SkewX(t))};o.skewY=function skewY(t){return Multiply(this,SkewY(t))};o.setIdentity=function setIdentity(){return feedFromArray(this,[1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1])};o.transformPoint=function transformPoint(t){var r=Translate(t.x,t.y,t.z);r.m44=t.w||1;return{x:(r=this.multiply(r)).m41,y:r.m42,z:r.m43,w:r.m44}};o.transform=function transform(t){var r=this,o=r.m11*t.x+r.m12*t.y+r.m13*t.z+r.m14*t.w,l=r.m21*t.x+r.m22*t.y+r.m23*t.z+r.m24*t.w,c=r.m31*t.x+r.m32*t.y+r.m33*t.z+r.m34*t.w,u=r.m41*t.x+r.m42*t.y+r.m43*t.z+r.m44*t.w;return{x:o/u,y:l/u,z:c/u,w:u}};t.Translate=Translate;t.Rotate=Rotate;t.RotateAxisAngle=RotateAxisAngle;t.Scale=Scale;t.SkewX=SkewX;t.SkewY=SkewY;t.Multiply=Multiply;t.fromMatrix=function fromMatrix(r){return new t([r.m11,r.m21,r.m31,r.m41,r.m12,r.m22,r.m32,r.m42,r.m13,r.m23,r.m33,r.m43,r.m14,r.m24,r.m34,r.m44])};t.fromArray=function fromArray(r){return feedFromArray(new t,r)};t.feedFromArray=feedFromArray;return t},"object"===_typeof(r)?t.exports=u():void 0!==(c="function"==typeof(l=u)?l.call(r,o,r,t):l)&&(t.exports=c)},(t,r,o)=>{o(62);o(77);var l=o(88);t.exports=l.Object.fromEntries},(t,r,o)=>{"use strict";var l=o(16),c=o(63),u=o(68),h=o(45),d=o(69),m="Array Iterator",g=h.set,y=h.getterFor(m);t.exports=d(Array,"Array",(function(t,r){g(this,{type:m,target:l(t),index:0,kind:r})}),(function(){var t=y(this),r=t.target,o=t.kind,l=t.index++;if(!r||l>=r.length){t.target=void 0;return{value:void 0,done:!0}}return"keys"==o?{value:l,done:!1}:"values"==o?{value:r[l],done:!1}:{value:[l,r[l]],done:!1}}),"values");u.Arguments=u.Array;c("keys");c("values");c("entries")},(t,r,o)=>{var l=o(30),c=o(64),u=o(41),h=l("unscopables"),d=Array.prototype;null==d[h]&&u.f(d,h,{configurable:!0,value:c(null)});t.exports=function(t){d[h][t]=!0}},(t,r,o)=>{var l,c=o(42),u=o(65),h=o(57),d=o(48),m=o(67),g=o(39),y=o(47),v=y("IE_PROTO"),EmptyConstructor=function(){},scriptTag=function(t){return"<script>"+t+"</"+"script>"},NullProtoObjectViaActiveX=function(t){t.write(scriptTag(""));t.close();var r=t.parentWindow.Object;t=null;return r},NullProtoObject=function(){try{l=new ActiveXObject("htmlfile")}catch(t){}NullProtoObject="undefined"!=typeof document?document.domain&&l?NullProtoObjectViaActiveX(l):function(){var t,r=g("iframe");r.style.display="none";m.appendChild(r);r.src=String("javascript:");(t=r.contentWindow.document).open();t.write(scriptTag("document.F=Object"));t.close();return t.F}():NullProtoObjectViaActiveX(l);for(var t=h.length;t--;)delete NullProtoObject.prototype[h[t]];return NullProtoObject()};d[v]=!0;t.exports=Object.create||function create(t,r){var o;if(null!==t){EmptyConstructor.prototype=c(t);o=new EmptyConstructor;EmptyConstructor.prototype=null;o[v]=t}else o=NullProtoObject();return void 0===r?o:u(o,r)}},(t,r,o)=>{var l=o(12),c=o(41),u=o(42),h=o(66);t.exports=l?Object.defineProperties:function defineProperties(t,r){u(t);for(var o,l=h(r),d=l.length,m=0;d>m;)c.f(t,o=l[m++],r[o]);return t}},(t,r,o)=>{var l=o(52),c=o(57);t.exports=Object.keys||function keys(t){return l(t,c)}},(t,r,o)=>{var l=o(24);t.exports=l("document","documentElement")},t=>{t.exports={}},(t,r,o)=>{"use strict";var l=o(9),c=o(70),u=o(72),h=o(75),d=o(74),m=o(40),g=o(43),y=o(30),v=o(32),S=o(68),_=o(71),k=_.IteratorPrototype,C=_.BUGGY_SAFARI_ITERATORS,w=y("iterator"),x="keys",O="values",T="entries",returnThis=function(){return this};t.exports=function(t,r,o,y,_,R,E){c(o,r,y);var M,D,j,getIterationMethod=function(t){if(t===_&&W)return W;if(!C&&t in U)return U[t];switch(t){case x:return function keys(){return new o(this,t)};case O:return function values(){return new o(this,t)};case T:return function entries(){return new o(this,t)}}return function(){return new o(this)}},L=r+" Iterator",N=!1,U=t.prototype,H=U[w]||U["@@iterator"]||_&&U[_],W=!C&&H||getIterationMethod(_),$="Array"==r&&U.entries||H;if($&&(M=u($.call(new t)))!==Object.prototype&&M.next){v||u(M)===k||(h?h(M,k):"function"!=typeof M[w]&&m(M,w,returnThis));d(M,L,!0,!0);v&&(S[L]=returnThis)}if(_==O&&H&&H.name!==O){N=!0;W=function values(){return H.call(this)}}v&&!E||U[w]===W||m(U,w,W);S[r]=W;if(_){D={values:getIterationMethod(O),keys:R?W:getIterationMethod(x),entries:getIterationMethod(T)};if(E)for(j in D)(C||N||!(j in U))&&g(U,j,D[j]);else l({target:r,proto:!0,forced:C||N},D)}return D}},(t,r,o)=>{"use strict";var l=o(71).IteratorPrototype,c=o(64),u=o(15),h=o(74),d=o(68),returnThis=function(){return this};t.exports=function(t,r,o){var m=r+" Iterator";t.prototype=c(l,{next:u(1,o)});h(t,m,!1,!0);d[m]=returnThis;return t}},(t,r,o)=>{"use strict";var l,c,u,h=o(13),d=o(64),m=o(72),g=o(40),y=o(30),v=o(32),S=y("iterator"),_=!1;[].keys&&("next"in(u=[].keys())?(c=m(m(u)))!==Object.prototype&&(l=c):_=!0);null==l||h((function(){var t={};return l[S].call(t)!==t}))?l={}:v&&(l=d(l));"function"!=typeof l[S]&&g(l,S,(function(){return this}));t.exports={IteratorPrototype:l,BUGGY_SAFARI_ITERATORS:_}},(t,r,o)=>{var l=o(35),c=o(36),u=o(47),h=o(73),d=u("IE_PROTO"),m=Object.prototype;t.exports=h?Object.getPrototypeOf:function(t){t=c(t);return l(t,d)?t[d]:"function"==typeof t.constructor&&t instanceof t.constructor?t.constructor.prototype:t instanceof Object?m:null}},(t,r,o)=>{var l=o(13);t.exports=!l((function(){function F(){}F.prototype.constructor=null;return Object.getPrototypeOf(new F)!==F.prototype}))},(t,r,o)=>{var l=o(41).f,c=o(35),u=o(30)("toStringTag");t.exports=function(t,r,o){t&&!c(t=o?t:t.prototype,u)&&l(t,u,{configurable:!0,value:r})}},(t,r,o)=>{var l=o(42),c=o(76);t.exports=Object.setPrototypeOf||("__proto__"in{}?function(){var t,r=!1,o={};try{(t=Object.getOwnPropertyDescriptor(Object.prototype,"__proto__").set).call(o,[]);r=o instanceof Array}catch(t){}return function setPrototypeOf(o,u){l(o);c(u);r?t.call(o,u):o.__proto__=u;return o}}():void 0)},(t,r,o)=>{var l=o(22);t.exports=function(t){if(!l(t)&&null!==t)throw TypeError("Can't set "+String(t)+" as a prototype");return t}},(t,r,o)=>{var l=o(9),c=o(78),u=o(87);l({target:"Object",stat:!0},{fromEntries:function fromEntries(t){var r={};c(t,(function(t,o){u(r,t,o)}),{AS_ENTRIES:!0});return r}})},(t,r,o)=>{var l=o(42),c=o(79),u=o(54),h=o(80),d=o(82),m=o(83),g=o(86),Result=function(t,r){this.stopped=t;this.result=r};t.exports=function(t,r,o){var y,v,S,_,k,C,w,x=o&&o.that,O=!(!o||!o.AS_ENTRIES),T=!(!o||!o.IS_ITERATOR),R=!(!o||!o.INTERRUPTED),E=h(r,x,1+O+R),stop=function(t){y&&g(y,"normal",t);return new Result(!0,t)},callFn=function(t){if(O){l(t);return R?E(t[0],t[1],stop):E(t[0],t[1])}return R?E(t,stop):E(t)};if(T)y=t;else{if("function"!=typeof(v=m(t)))throw TypeError("Target is not iterable");if(c(v)){for(S=0,_=u(t.length);_>S;S++)if((k=callFn(t[S]))&&k instanceof Result)return k;return new Result(!1)}y=d(t,v)}C=y.next;for(;!(w=C.call(y)).done;){try{k=callFn(w.value)}catch(t){g(y,"throw",t)}if("object"==typeof k&&k&&k instanceof Result)return k}return new Result(!1)}},(t,r,o)=>{var l=o(30),c=o(68),u=l("iterator"),h=Array.prototype;t.exports=function(t){return void 0!==t&&(c.Array===t||h[u]===t)}},(t,r,o)=>{var l=o(81);t.exports=function(t,r,o){l(t);if(void 0===r)return t;switch(o){case 0:return function(){return t.call(r)};case 1:return function(o){return t.call(r,o)};case 2:return function(o,l){return t.call(r,o,l)};case 3:return function(o,l,c){return t.call(r,o,l,c)}}return function(){return t.apply(r,arguments)}}},t=>{t.exports=function(t){if("function"!=typeof t)throw TypeError(String(t)+" is not a function");return t}},(t,r,o)=>{var l=o(42),c=o(83);t.exports=function(t,r){var o=arguments.length<2?c(t):r;if("function"!=typeof o)throw TypeError(String(t)+" is not iterable");return l(o.call(t))}},(t,r,o)=>{var l=o(84),c=o(68),u=o(30)("iterator");t.exports=function(t){if(null!=t)return t[u]||t["@@iterator"]||c[l(t)]}},(t,r,o)=>{var l=o(85),c=o(18),u=o(30)("toStringTag"),h="Arguments"==c(function(){return arguments}());t.exports=l?c:function(t){var r,o,l;return void 0===t?"Undefined":null===t?"Null":"string"==typeof(o=function(t,r){try{return t[r]}catch(t){}}(r=Object(t),u))?o:h?c(r):"Object"==(l=c(r))&&"function"==typeof r.callee?"Arguments":l}},(t,r,o)=>{var l={};l[o(30)("toStringTag")]="z";t.exports="[object z]"===String(l)},(t,r,o)=>{var l=o(42);t.exports=function(t,r,o){var c,u;l(t);try{if(void 0===(c=t.return)){if("throw"===r)throw o;return o}c=c.call(t)}catch(t){u=!0;c=t}if("throw"===r)throw o;if(u)throw c;l(c);return o}},(t,r,o)=>{"use strict";var l=o(20),c=o(41),u=o(15);t.exports=function(t,r,o){var h=l(r);h in t?c.f(t,h,u(0,o)):t[h]=o}},(t,r,o)=>{var l=o(10);t.exports=l},(t,r,o)=>{o(90);o(62);o(92);o(94);o(112);o(113);o(114);o(115);var l=o(88);t.exports=l.Promise},(t,r,o)=>{"use strict";var l=o(9),c=o(72),u=o(75),h=o(64),d=o(40),m=o(15),g=o(78),y=o(91),v=function AggregateError(t,r){var o=this;if(!(o instanceof v))return new v(t,r);u&&(o=u(new Error(void 0),c(o)));void 0!==r&&d(o,"message",y(r));var l=[];g(t,l.push,{that:l});d(o,"errors",l);return o};v.prototype=h(Error.prototype,{constructor:m(5,v),message:m(5,""),name:m(5,"AggregateError")});l({global:!0},{AggregateError:v})},(t,r,o)=>{var l=o(23);t.exports=function(t){if(l(t))throw TypeError("Cannot convert a Symbol value to a string");return String(t)}},(t,r,o)=>{var l=o(85),c=o(43),u=o(93);l||c(Object.prototype,"toString",u,{unsafe:!0})},(t,r,o)=>{"use strict";var l=o(85),c=o(84);t.exports=l?{}.toString:function toString(){return"[object "+c(this)+"]"}},(t,r,o)=>{"use strict";var l,c,u,h,d=o(9),m=o(32),g=o(10),y=o(24),v=o(95),S=o(43),_=o(96),k=o(75),C=o(74),w=o(97),x=o(22),O=o(81),T=o(98),R=o(44),E=o(78),M=o(99),D=o(100),j=o(101).set,L=o(104),N=o(107),U=o(109),H=o(108),W=o(110),$=o(45),q=o(59),X=o(30),z=o(111),G=o(103),V=o(27),Y=X("species"),K="Promise",J=$.get,Q=$.set,Z=$.getterFor(K),ee=v&&v.prototype,te=v,re=ee,ae=g.TypeError,ne=g.document,ie=g.process,oe=H.f,se=oe,le=!!(ne&&ne.createEvent&&g.dispatchEvent),ce="function"==typeof PromiseRejectionEvent,ue="unhandledrejection",fe=!1,he=q(K,(function(){var t=R(te),r=t!==String(te);if(!r&&66===V)return!0;if(m&&!re.finally)return!0;if(V>=51&&/native code/.test(t))return!1;var o=new te((function(t){t(1)})),FakePromise=function(t){t((function(){}),(function(){}))};(o.constructor={})[Y]=FakePromise;return!(fe=o.then((function(){}))instanceof FakePromise)||!r&&z&&!ce})),de=he||!M((function(t){te.all(t).catch((function(){}))})),isThenable=function(t){var r;return!(!x(t)||"function"!=typeof(r=t.then))&&r},notify=function(t,r){if(!t.notified){t.notified=!0;var o=t.reactions;L((function(){for(var l=t.value,c=1==t.state,u=0;o.length>u;){var h,d,m,g=o[u++],y=c?g.ok:g.fail,v=g.resolve,S=g.reject,_=g.domain;try{if(y){if(!c){2===t.rejection&&onHandleUnhandled(t);t.rejection=1}if(!0===y)h=l;else{_&&_.enter();h=y(l);if(_){_.exit();m=!0}}h===g.promise?S(ae("Promise-chain cycle")):(d=isThenable(h))?d.call(h,v,S):v(h)}else S(l)}catch(t){_&&!m&&_.exit();S(t)}}t.reactions=[];t.notified=!1;r&&!t.rejection&&onUnhandled(t)}))}},dispatchEvent=function(t,r,o){var l,c;if(le){(l=ne.createEvent("Event")).promise=r;l.reason=o;l.initEvent(t,!1,!0);g.dispatchEvent(l)}else l={promise:r,reason:o};!ce&&(c=g["on"+t])?c(l):t===ue&&U("Unhandled promise rejection",o)},onUnhandled=function(t){j.call(g,(function(){var r,o=t.facade,l=t.value;if(isUnhandled(t)){r=W((function(){G?ie.emit("unhandledRejection",l,o):dispatchEvent(ue,o,l)}));t.rejection=G||isUnhandled(t)?2:1;if(r.error)throw r.value}}))},isUnhandled=function(t){return 1!==t.rejection&&!t.parent},onHandleUnhandled=function(t){j.call(g,(function(){var r=t.facade;G?ie.emit("rejectionHandled",r):dispatchEvent("rejectionhandled",r,t.value)}))},bind=function(t,r,o){return function(l){t(r,l,o)}},internalReject=function(t,r,o){if(!t.done){t.done=!0;o&&(t=o);t.value=r;t.state=2;notify(t,!0)}},internalResolve=function(t,r,o){if(!t.done){t.done=!0;o&&(t=o);try{if(t.facade===r)throw ae("Promise can't be resolved itself");var l=isThenable(r);if(l)L((function(){var o={done:!1};try{l.call(r,bind(internalResolve,o,t),bind(internalReject,o,t))}catch(r){internalReject(o,r,t)}}));else{t.value=r;t.state=1;notify(t,!1)}}catch(r){internalReject({done:!1},r,t)}}};if(he){re=(te=function Promise(t){T(this,te,K);O(t);l.call(this);var r=J(this);try{t(bind(internalResolve,r),bind(internalReject,r))}catch(t){internalReject(r,t)}}).prototype;(l=function Promise(t){Q(this,{type:K,done:!1,notified:!1,parent:!1,reactions:[],rejection:!1,state:0,value:void 0})}).prototype=_(re,{then:function then(t,r){var o=Z(this),l=oe(D(this,te));l.ok="function"!=typeof t||t;l.fail="function"==typeof r&&r;l.domain=G?ie.domain:void 0;o.parent=!0;o.reactions.push(l);0!=o.state&¬ify(o,!1);return l.promise},catch:function(t){return this.then(void 0,t)}});c=function(){var t=new l,r=J(t);this.promise=t;this.resolve=bind(internalResolve,r);this.reject=bind(internalReject,r)};H.f=oe=function(t){return t===te||t===u?new c(t):se(t)};if(!m&&"function"==typeof v&&ee!==Object.prototype){h=ee.then;if(!fe){S(ee,"then",(function then(t,r){var o=this;return new te((function(t,r){h.call(o,t,r)})).then(t,r)}),{unsafe:!0});S(ee,"catch",re.catch,{unsafe:!0})}try{delete ee.constructor}catch(t){}k&&k(ee,re)}}d({global:!0,wrap:!0,forced:he},{Promise:te});C(te,K,!1,!0);w(K);u=y(K);d({target:K,stat:!0,forced:he},{reject:function reject(t){var r=oe(this);r.reject.call(void 0,t);return r.promise}});d({target:K,stat:!0,forced:m||he},{resolve:function resolve(t){return N(m&&this===u?te:this,t)}});d({target:K,stat:!0,forced:de},{all:function all(t){var r=this,o=oe(r),l=o.resolve,c=o.reject,u=W((function(){var o=O(r.resolve),u=[],h=0,d=1;E(t,(function(t){var m=h++,g=!1;u.push(void 0);d++;o.call(r,t).then((function(t){if(!g){g=!0;u[m]=t;--d||l(u)}}),c)}));--d||l(u)}));u.error&&c(u.value);return o.promise},race:function race(t){var r=this,o=oe(r),l=o.reject,c=W((function(){var c=O(r.resolve);E(t,(function(t){c.call(r,t).then(o.resolve,l)}))}));c.error&&l(c.value);return o.promise}})},(t,r,o)=>{var l=o(10);t.exports=l.Promise},(t,r,o)=>{var l=o(43);t.exports=function(t,r,o){for(var c in r)l(t,c,r[c],o);return t}},(t,r,o)=>{"use strict";var l=o(24),c=o(41),u=o(30),h=o(12),d=u("species");t.exports=function(t){var r=l(t),o=c.f;h&&r&&!r[d]&&o(r,d,{configurable:!0,get:function(){return this}})}},t=>{t.exports=function(t,r,o){if(!(t instanceof r))throw TypeError("Incorrect "+(o?o+" ":"")+"invocation");return t}},(t,r,o)=>{var l=o(30)("iterator"),c=!1;try{var u=0,h={next:function(){return{done:!!u++}},return:function(){c=!0}};h[l]=function(){return this};Array.from(h,(function(){throw 2}))}catch(t){}t.exports=function(t,r){if(!r&&!c)return!1;var o=!1;try{var u={};u[l]=function(){return{next:function(){return{done:o=!0}}}};t(u)}catch(t){}return o}},(t,r,o)=>{var l=o(42),c=o(81),u=o(30)("species");t.exports=function(t,r){var o,h=l(t).constructor;return void 0===h||null==(o=l(h)[u])?r:c(o)}},(t,r,o)=>{var l,c,u,h,d=o(10),m=o(13),g=o(80),y=o(67),v=o(39),S=o(102),_=o(103),k=d.setImmediate,C=d.clearImmediate,w=d.process,x=d.MessageChannel,O=d.Dispatch,T=0,R={},E="onreadystatechange";try{l=d.location}catch(t){}var run=function(t){if(R.hasOwnProperty(t)){var r=R[t];delete R[t];r()}},runner=function(t){return function(){run(t)}},listener=function(t){run(t.data)},post=function(t){d.postMessage(String(t),l.protocol+"//"+l.host)};if(!k||!C){k=function setImmediate(t){for(var r=[],o=arguments.length,l=1;o>l;)r.push(arguments[l++]);R[++T]=function(){("function"==typeof t?t:Function(t)).apply(void 0,r)};c(T);return T};C=function clearImmediate(t){delete R[t]};if(_)c=function(t){w.nextTick(runner(t))};else if(O&&O.now)c=function(t){O.now(runner(t))};else if(x&&!S){h=(u=new x).port2;u.port1.onmessage=listener;c=g(h.postMessage,h,1)}else if(d.addEventListener&&"function"==typeof postMessage&&!d.importScripts&&l&&"file:"!==l.protocol&&!m(post)){c=post;d.addEventListener("message",listener,!1)}else c=E in v("script")?function(t){y.appendChild(v("script")).onreadystatechange=function(){y.removeChild(this);run(t)}}:function(t){setTimeout(runner(t),0)}}t.exports={set:k,clear:C}},(t,r,o)=>{var l=o(28);t.exports=/(?:ipad|iphone|ipod).*applewebkit/i.test(l)},(t,r,o)=>{var l=o(18),c=o(10);t.exports="process"==l(c.process)},(t,r,o)=>{var l,c,u,h,d,m,g,y,v=o(10),S=o(11).f,_=o(101).set,k=o(102),C=o(105),w=o(106),x=o(103),O=v.MutationObserver||v.WebKitMutationObserver,T=v.document,R=v.process,E=v.Promise,M=S(v,"queueMicrotask"),D=M&&M.value;if(!D){l=function(){var t,r;x&&(t=R.domain)&&t.exit();for(;c;){r=c.fn;c=c.next;try{r()}catch(t){c?h():u=void 0;throw t}}u=void 0;t&&t.enter()};if(k||x||w||!O||!T)if(!C&&E&&E.resolve){(g=E.resolve(void 0)).constructor=E;y=g.then;h=function(){y.call(g,l)}}else h=x?function(){R.nextTick(l)}:function(){_.call(v,l)};else{d=!0;m=T.createTextNode("");new O(l).observe(m,{characterData:!0});h=function(){m.data=d=!d}}}t.exports=D||function(t){var r={fn:t,next:void 0};u&&(u.next=r);if(!c){c=r;h()}u=r}},(t,r,o)=>{var l=o(28),c=o(10);t.exports=/ipad|iphone|ipod/i.test(l)&&void 0!==c.Pebble},(t,r,o)=>{var l=o(28);t.exports=/web0s(?!.*chrome)/i.test(l)},(t,r,o)=>{var l=o(42),c=o(22),u=o(108);t.exports=function(t,r){l(t);if(c(r)&&r.constructor===t)return r;var o=u.f(t);(0,o.resolve)(r);return o.promise}},(t,r,o)=>{"use strict";var l=o(81),PromiseCapability=function(t){var r,o;this.promise=new t((function(t,l){if(void 0!==r||void 0!==o)throw TypeError("Bad Promise constructor");r=t;o=l}));this.resolve=l(r);this.reject=l(o)};t.exports.f=function(t){return new PromiseCapability(t)}},(t,r,o)=>{var l=o(10);t.exports=function(t,r){var o=l.console;o&&o.error&&(1===arguments.length?o.error(t):o.error(t,r))}},t=>{t.exports=function(t){try{return{error:!1,value:t()}}catch(t){return{error:!0,value:t}}}},t=>{t.exports="object"==typeof window},(t,r,o)=>{"use strict";var l=o(9),c=o(81),u=o(108),h=o(110),d=o(78);l({target:"Promise",stat:!0},{allSettled:function allSettled(t){var r=this,o=u.f(r),l=o.resolve,m=o.reject,g=h((function(){var o=c(r.resolve),u=[],h=0,m=1;d(t,(function(t){var c=h++,d=!1;u.push(void 0);m++;o.call(r,t).then((function(t){if(!d){d=!0;u[c]={status:"fulfilled",value:t};--m||l(u)}}),(function(t){if(!d){d=!0;u[c]={status:"rejected",reason:t};--m||l(u)}}))}));--m||l(u)}));g.error&&m(g.value);return o.promise}})},(t,r,o)=>{"use strict";var l=o(9),c=o(81),u=o(24),h=o(108),d=o(110),m=o(78),g="No one promise resolved";l({target:"Promise",stat:!0},{any:function any(t){var r=this,o=h.f(r),l=o.resolve,y=o.reject,v=d((function(){var o=c(r.resolve),h=[],d=0,v=1,S=!1;m(t,(function(t){var c=d++,m=!1;h.push(void 0);v++;o.call(r,t).then((function(t){if(!m&&!S){S=!0;l(t)}}),(function(t){if(!m&&!S){m=!0;h[c]=t;--v||y(new(u("AggregateError"))(h,g))}}))}));--v||y(new(u("AggregateError"))(h,g))}));v.error&&y(v.value);return o.promise}})},(t,r,o)=>{"use strict";var l=o(9),c=o(32),u=o(95),h=o(13),d=o(24),m=o(100),g=o(107),y=o(43);l({target:"Promise",proto:!0,real:!0,forced:!!u&&h((function(){u.prototype.finally.call({then:function(){}},(function(){}))}))},{finally:function(t){var r=m(this,d("Promise")),o="function"==typeof t;return this.then(o?function(o){return g(r,t()).then((function(){return o}))}:t,o?function(o){return g(r,t()).then((function(){throw o}))}:t)}});if(!c&&"function"==typeof u){var v=d("Promise").prototype.finally;u.prototype.finally!==v&&y(u.prototype,"finally",v,{unsafe:!0})}},(t,r,o)=>{"use strict";var l=o(116).charAt,c=o(91),u=o(45),h=o(69),d="String Iterator",m=u.set,g=u.getterFor(d);h(String,"String",(function(t){m(this,{type:d,string:c(t),index:0})}),(function next(){var t,r=g(this),o=r.string,c=r.index;if(c>=o.length)return{value:void 0,done:!0};t=l(o,c);r.index+=t.length;return{value:t,done:!1}}))},(t,r,o)=>{var l=o(55),c=o(91),u=o(19),createMethod=function(t){return function(r,o){var h,d,m=c(u(r)),g=l(o),y=m.length;return g<0||g>=y?t?"":void 0:(h=m.charCodeAt(g))<55296||h>56319||g+1===y||(d=m.charCodeAt(g+1))<56320||d>57343?t?m.charAt(g):h:t?m.slice(g,g+2):d-56320+(h-55296<<10)+65536}};t.exports={codeAt:createMethod(!1),charAt:createMethod(!0)}},function(t,r){o=function(t){"use strict";var r="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?Symbol:function(t){return"Symbol("+t+")"};function noop(){}var o=function getGlobals(){return"undefined"!=typeof self?self:"undefined"!=typeof window?window:"undefined"!=typeof global?global:void 0}();function typeIsObject(t){return"object"==typeof t&&null!==t||"function"==typeof t}var l=noop,c=Promise,u=Promise.prototype.then,h=Promise.resolve.bind(c),d=Promise.reject.bind(c);function newPromise(t){return new c(t)}function promiseResolvedWith(t){return h(t)}function promiseRejectedWith(t){return d(t)}function PerformPromiseThen(t,r,o){return u.call(t,r,o)}function uponPromise(t,r,o){PerformPromiseThen(PerformPromiseThen(t,r,o),void 0,l)}function uponFulfillment(t,r){uponPromise(t,r)}function uponRejection(t,r){uponPromise(t,void 0,r)}function transformPromiseWith(t,r,o){return PerformPromiseThen(t,r,o)}function setPromiseIsHandledToTrue(t){PerformPromiseThen(t,void 0,l)}var m=function(){var t=o&&o.queueMicrotask;if("function"==typeof t)return t;var r=promiseResolvedWith(void 0);return function(t){return PerformPromiseThen(r,t)}}();function reflectCall(t,r,o){if("function"!=typeof t)throw new TypeError("Argument is not a function");return Function.prototype.apply.call(t,r,o)}function promiseCall(t,r,o){try{return promiseResolvedWith(reflectCall(t,r,o))}catch(t){return promiseRejectedWith(t)}}var g=function(){function SimpleQueue(){this._cursor=0;this._size=0;this._front={_elements:[],_next:void 0};this._back=this._front;this._cursor=0;this._size=0}Object.defineProperty(SimpleQueue.prototype,"length",{get:function(){return this._size},enumerable:!1,configurable:!0});SimpleQueue.prototype.push=function(t){var r=this._back,o=r;16383===r._elements.length&&(o={_elements:[],_next:void 0});r._elements.push(t);if(o!==r){this._back=o;r._next=o}++this._size};SimpleQueue.prototype.shift=function(){var t=this._front,r=t,o=this._cursor,l=o+1,c=t._elements,u=c[o];if(16384===l){r=t._next;l=0}--this._size;this._cursor=l;t!==r&&(this._front=r);c[o]=void 0;return u};SimpleQueue.prototype.forEach=function(t){for(var r=this._cursor,o=this._front,l=o._elements;r!==l.length||void 0!==o._next;){if(r===l.length){r=0;if(0===(l=(o=o._next)._elements).length)break}t(l[r]);++r}};SimpleQueue.prototype.peek=function(){var t=this._front,r=this._cursor;return t._elements[r]};return SimpleQueue}();function ReadableStreamReaderGenericInitialize(t,r){t._ownerReadableStream=r;r._reader=t;"readable"===r._state?defaultReaderClosedPromiseInitialize(t):"closed"===r._state?function defaultReaderClosedPromiseInitializeAsResolved(t){defaultReaderClosedPromiseInitialize(t);defaultReaderClosedPromiseResolve(t)}(t):defaultReaderClosedPromiseInitializeAsRejected(t,r._storedError)}function ReadableStreamReaderGenericCancel(t,r){return ReadableStreamCancel(t._ownerReadableStream,r)}function ReadableStreamReaderGenericRelease(t){"readable"===t._ownerReadableStream._state?defaultReaderClosedPromiseReject(t,new TypeError("Reader was released and can no longer be used to monitor the stream's closedness")):function defaultReaderClosedPromiseResetToRejected(t,r){defaultReaderClosedPromiseInitializeAsRejected(t,r)}(t,new TypeError("Reader was released and can no longer be used to monitor the stream's closedness"));t._ownerReadableStream._reader=void 0;t._ownerReadableStream=void 0}function readerLockException(t){return new TypeError("Cannot "+t+" a stream using a released reader")}function defaultReaderClosedPromiseInitialize(t){t._closedPromise=newPromise((function(r,o){t._closedPromise_resolve=r;t._closedPromise_reject=o}))}function defaultReaderClosedPromiseInitializeAsRejected(t,r){defaultReaderClosedPromiseInitialize(t);defaultReaderClosedPromiseReject(t,r)}function defaultReaderClosedPromiseReject(t,r){if(void 0!==t._closedPromise_reject){setPromiseIsHandledToTrue(t._closedPromise);t._closedPromise_reject(r);t._closedPromise_resolve=void 0;t._closedPromise_reject=void 0}}function defaultReaderClosedPromiseResolve(t){if(void 0!==t._closedPromise_resolve){t._closedPromise_resolve(void 0);t._closedPromise_resolve=void 0;t._closedPromise_reject=void 0}}var y=r("[[AbortSteps]]"),v=r("[[ErrorSteps]]"),S=r("[[CancelSteps]]"),_=r("[[PullSteps]]"),k=Number.isFinite||function(t){return"number"==typeof t&&isFinite(t)},C=Math.trunc||function(t){return t<0?Math.ceil(t):Math.floor(t)};function assertDictionary(t,r){if(void 0!==t&&!function isDictionary(t){return"object"==typeof t||"function"==typeof t}(t))throw new TypeError(r+" is not an object.")}function assertFunction(t,r){if("function"!=typeof t)throw new TypeError(r+" is not a function.")}function assertObject(t,r){if(!function isObject(t){return"object"==typeof t&&null!==t||"function"==typeof t}(t))throw new TypeError(r+" is not an object.")}function assertRequiredArgument(t,r,o){if(void 0===t)throw new TypeError("Parameter "+r+" is required in '"+o+"'.")}function assertRequiredField(t,r,o){if(void 0===t)throw new TypeError(r+" is required in '"+o+"'.")}function convertUnrestrictedDouble(t){return Number(t)}function censorNegativeZero(t){return 0===t?0:t}function convertUnsignedLongLongWithEnforceRange(t,r){var o=Number.MAX_SAFE_INTEGER,l=Number(t);l=censorNegativeZero(l);if(!k(l))throw new TypeError(r+" is not a finite number");if((l=function integerPart(t){return censorNegativeZero(C(t))}(l))<0||l>o)throw new TypeError(r+" is outside the accepted range of 0 to "+o+", inclusive");return k(l)&&0!==l?l:0}function assertReadableStream(t,r){if(!IsReadableStream(t))throw new TypeError(r+" is not a ReadableStream.")}function AcquireReadableStreamDefaultReader(t){return new O(t)}function ReadableStreamAddReadRequest(t,r){t._reader._readRequests.push(r)}function ReadableStreamFulfillReadRequest(t,r,o){var l=t._reader._readRequests.shift();o?l._closeSteps():l._chunkSteps(r)}function ReadableStreamGetNumReadRequests(t){return t._reader._readRequests.length}function ReadableStreamHasDefaultReader(t){var r=t._reader;return void 0!==r&&!!IsReadableStreamDefaultReader(r)}var w,x,O=function(){function ReadableStreamDefaultReader(t){assertRequiredArgument(t,1,"ReadableStreamDefaultReader");assertReadableStream(t,"First parameter");if(IsReadableStreamLocked(t))throw new TypeError("This stream has already been locked for exclusive reading by another reader");ReadableStreamReaderGenericInitialize(this,t);this._readRequests=new g}Object.defineProperty(ReadableStreamDefaultReader.prototype,"closed",{get:function(){return IsReadableStreamDefaultReader(this)?this._closedPromise:promiseRejectedWith(defaultReaderBrandCheckException("closed"))},enumerable:!1,configurable:!0});ReadableStreamDefaultReader.prototype.cancel=function(t){void 0===t&&(t=void 0);return IsReadableStreamDefaultReader(this)?void 0===this._ownerReadableStream?promiseRejectedWith(readerLockException("cancel")):ReadableStreamReaderGenericCancel(this,t):promiseRejectedWith(defaultReaderBrandCheckException("cancel"))};ReadableStreamDefaultReader.prototype.read=function(){if(!IsReadableStreamDefaultReader(this))return promiseRejectedWith(defaultReaderBrandCheckException("read"));if(void 0===this._ownerReadableStream)return promiseRejectedWith(readerLockException("read from"));var t,r,o=newPromise((function(o,l){t=o;r=l}));ReadableStreamDefaultReaderRead(this,{_chunkSteps:function(r){return t({value:r,done:!1})},_closeSteps:function(){return t({value:void 0,done:!0})},_errorSteps:function(t){return r(t)}});return o};ReadableStreamDefaultReader.prototype.releaseLock=function(){if(!IsReadableStreamDefaultReader(this))throw defaultReaderBrandCheckException("releaseLock");if(void 0!==this._ownerReadableStream){if(this._readRequests.length>0)throw new TypeError("Tried to release a reader lock when that reader has pending read() calls un-settled");ReadableStreamReaderGenericRelease(this)}};return ReadableStreamDefaultReader}();Object.defineProperties(O.prototype,{cancel:{enumerable:!0},read:{enumerable:!0},releaseLock:{enumerable:!0},closed:{enumerable:!0}});"symbol"==typeof r.toStringTag&&Object.defineProperty(O.prototype,r.toStringTag,{value:"ReadableStreamDefaultReader",configurable:!0});function IsReadableStreamDefaultReader(t){return!!typeIsObject(t)&&!!Object.prototype.hasOwnProperty.call(t,"_readRequests")&&t instanceof O}function ReadableStreamDefaultReaderRead(t,r){var o=t._ownerReadableStream;o._disturbed=!0;"closed"===o._state?r._closeSteps():"errored"===o._state?r._errorSteps(o._storedError):o._readableStreamController[_](r)}function defaultReaderBrandCheckException(t){return new TypeError("ReadableStreamDefaultReader.prototype."+t+" can only be used on a ReadableStreamDefaultReader")}if("symbol"==typeof r.asyncIterator){x=((w={})[r.asyncIterator]=function(){return this},w);Object.defineProperty(x,r.asyncIterator,{enumerable:!1})}var T=function(){function ReadableStreamAsyncIteratorImpl(t,r){this._ongoingPromise=void 0;this._isFinished=!1;this._reader=t;this._preventCancel=r}ReadableStreamAsyncIteratorImpl.prototype.next=function(){var t=this,nextSteps=function(){return t._nextSteps()};this._ongoingPromise=this._ongoingPromise?transformPromiseWith(this._ongoingPromise,nextSteps,nextSteps):nextSteps();return this._ongoingPromise};ReadableStreamAsyncIteratorImpl.prototype.return=function(t){var r=this,returnSteps=function(){return r._returnSteps(t)};return this._ongoingPromise?transformPromiseWith(this._ongoingPromise,returnSteps,returnSteps):returnSteps()};ReadableStreamAsyncIteratorImpl.prototype._nextSteps=function(){var t=this;if(this._isFinished)return Promise.resolve({value:void 0,done:!0});var r,o,l=this._reader;if(void 0===l._ownerReadableStream)return promiseRejectedWith(readerLockException("iterate"));var c=newPromise((function(t,l){r=t;o=l}));ReadableStreamDefaultReaderRead(l,{_chunkSteps:function(o){t._ongoingPromise=void 0;m((function(){return r({value:o,done:!1})}))},_closeSteps:function(){t._ongoingPromise=void 0;t._isFinished=!0;ReadableStreamReaderGenericRelease(l);r({value:void 0,done:!0})},_errorSteps:function(r){t._ongoingPromise=void 0;t._isFinished=!0;ReadableStreamReaderGenericRelease(l);o(r)}});return c};ReadableStreamAsyncIteratorImpl.prototype._returnSteps=function(t){if(this._isFinished)return Promise.resolve({value:t,done:!0});this._isFinished=!0;var r=this._reader;if(void 0===r._ownerReadableStream)return promiseRejectedWith(readerLockException("finish iterating"));if(!this._preventCancel){var o=ReadableStreamReaderGenericCancel(r,t);ReadableStreamReaderGenericRelease(r);return transformPromiseWith(o,(function(){return{value:t,done:!0}}))}ReadableStreamReaderGenericRelease(r);return promiseResolvedWith({value:t,done:!0})};return ReadableStreamAsyncIteratorImpl}(),R={next:function(){return IsReadableStreamAsyncIterator(this)?this._asyncIteratorImpl.next():promiseRejectedWith(streamAsyncIteratorBrandCheckException("next"))},return:function(t){return IsReadableStreamAsyncIterator(this)?this._asyncIteratorImpl.return(t):promiseRejectedWith(streamAsyncIteratorBrandCheckException("return"))}};void 0!==x&&Object.setPrototypeOf(R,x);function IsReadableStreamAsyncIterator(t){if(!typeIsObject(t))return!1;if(!Object.prototype.hasOwnProperty.call(t,"_asyncIteratorImpl"))return!1;try{return t._asyncIteratorImpl instanceof T}catch(t){return!1}}function streamAsyncIteratorBrandCheckException(t){return new TypeError("ReadableStreamAsyncIterator."+t+" can only be used on a ReadableSteamAsyncIterator")}var E=Number.isNaN||function(t){return t!=t};function CreateArrayFromList(t){return t.slice()}function CopyDataBlockBytes(t,r,o,l,c){new Uint8Array(t).set(new Uint8Array(o,l,c),r)}function ArrayBufferSlice(t,r,o){if(t.slice)return t.slice(r,o);var l=o-r,c=new ArrayBuffer(l);CopyDataBlockBytes(c,0,t,r,l);return c}function CloneAsUint8Array(t){var r=ArrayBufferSlice(t.buffer,t.byteOffset,t.byteOffset+t.byteLength);return new Uint8Array(r)}function DequeueValue(t){var r=t._queue.shift();t._queueTotalSize-=r.size;t._queueTotalSize<0&&(t._queueTotalSize=0);return r.value}function EnqueueValueWithSize(t,r,o){if(!function IsNonNegativeNumber(t){return!("number"!=typeof t||E(t)||t<0)}(o)||o===1/0)throw new RangeError("Size must be a finite, non-NaN, non-negative number.");t._queue.push({value:r,size:o});t._queueTotalSize+=o}function ResetQueue(t){t._queue=new g;t._queueTotalSize=0}var M=function(){function ReadableStreamBYOBRequest(){throw new TypeError("Illegal constructor")}Object.defineProperty(ReadableStreamBYOBRequest.prototype,"view",{get:function(){if(!IsReadableStreamBYOBRequest(this))throw byobRequestBrandCheckException("view");return this._view},enumerable:!1,configurable:!0});ReadableStreamBYOBRequest.prototype.respond=function(t){if(!IsReadableStreamBYOBRequest(this))throw byobRequestBrandCheckException("respond");assertRequiredArgument(t,1,"respond");t=convertUnsignedLongLongWithEnforceRange(t,"First parameter");if(void 0===this._associatedReadableByteStreamController)throw new TypeError("This BYOB request has been invalidated");this._view.buffer;ReadableByteStreamControllerRespond(this._associatedReadableByteStreamController,t)};ReadableStreamBYOBRequest.prototype.respondWithNewView=function(t){if(!IsReadableStreamBYOBRequest(this))throw byobRequestBrandCheckException("respondWithNewView");assertRequiredArgument(t,1,"respondWithNewView");if(!ArrayBuffer.isView(t))throw new TypeError("You can only respond with array buffer views");if(void 0===this._associatedReadableByteStreamController)throw new TypeError("This BYOB request has been invalidated");t.buffer;ReadableByteStreamControllerRespondWithNewView(this._associatedReadableByteStreamController,t)};return ReadableStreamBYOBRequest}();Object.defineProperties(M.prototype,{respond:{enumerable:!0},respondWithNewView:{enumerable:!0},view:{enumerable:!0}});"symbol"==typeof r.toStringTag&&Object.defineProperty(M.prototype,r.toStringTag,{value:"ReadableStreamBYOBRequest",configurable:!0});var D=function(){function ReadableByteStreamController(){throw new TypeError("Illegal constructor")}Object.defineProperty(ReadableByteStreamController.prototype,"byobRequest",{get:function(){if(!IsReadableByteStreamController(this))throw byteStreamControllerBrandCheckException("byobRequest");return ReadableByteStreamControllerGetBYOBRequest(this)},enumerable:!1,configurable:!0});Object.defineProperty(ReadableByteStreamController.prototype,"desiredSize",{get:function(){if(!IsReadableByteStreamController(this))throw byteStreamControllerBrandCheckException("desiredSize");return ReadableByteStreamControllerGetDesiredSize(this)},enumerable:!1,configurable:!0});ReadableByteStreamController.prototype.close=function(){if(!IsReadableByteStreamController(this))throw byteStreamControllerBrandCheckException("close");if(this._closeRequested)throw new TypeError("The stream has already been closed; do not close it again!");var t=this._controlledReadableByteStream._state;if("readable"!==t)throw new TypeError("The stream (in "+t+" state) is not in the readable state and cannot be closed");ReadableByteStreamControllerClose(this)};ReadableByteStreamController.prototype.enqueue=function(t){if(!IsReadableByteStreamController(this))throw byteStreamControllerBrandCheckException("enqueue");assertRequiredArgument(t,1,"enqueue");if(!ArrayBuffer.isView(t))throw new TypeError("chunk must be an array buffer view");if(0===t.byteLength)throw new TypeError("chunk must have non-zero byteLength");if(0===t.buffer.byteLength)throw new TypeError("chunk's buffer must have non-zero byteLength");if(this._closeRequested)throw new TypeError("stream is closed or draining");var r=this._controlledReadableByteStream._state;if("readable"!==r)throw new TypeError("The stream (in "+r+" state) is not in the readable state and cannot be enqueued to");ReadableByteStreamControllerEnqueue(this,t)};ReadableByteStreamController.prototype.error=function(t){void 0===t&&(t=void 0);if(!IsReadableByteStreamController(this))throw byteStreamControllerBrandCheckException("error");ReadableByteStreamControllerError(this,t)};ReadableByteStreamController.prototype[S]=function(t){ReadableByteStreamControllerClearPendingPullIntos(this);ResetQueue(this);var r=this._cancelAlgorithm(t);ReadableByteStreamControllerClearAlgorithms(this);return r};ReadableByteStreamController.prototype[_]=function(t){var r=this._controlledReadableByteStream;if(this._queueTotalSize>0){var o=this._queue.shift();this._queueTotalSize-=o.byteLength;ReadableByteStreamControllerHandleQueueDrain(this);var l=new Uint8Array(o.buffer,o.byteOffset,o.byteLength);t._chunkSteps(l)}else{var c=this._autoAllocateChunkSize;if(void 0!==c){var u=void 0;try{u=new ArrayBuffer(c)}catch(r){t._errorSteps(r);return}var h={buffer:u,bufferByteLength:c,byteOffset:0,byteLength:c,bytesFilled:0,elementSize:1,viewConstructor:Uint8Array,readerType:"default"};this._pendingPullIntos.push(h)}ReadableStreamAddReadRequest(r,t);ReadableByteStreamControllerCallPullIfNeeded(this)}};return ReadableByteStreamController}();Object.defineProperties(D.prototype,{close:{enumerable:!0},enqueue:{enumerable:!0},error:{enumerable:!0},byobRequest:{enumerable:!0},desiredSize:{enumerable:!0}});"symbol"==typeof r.toStringTag&&Object.defineProperty(D.prototype,r.toStringTag,{value:"ReadableByteStreamController",configurable:!0});function IsReadableByteStreamController(t){return!!typeIsObject(t)&&!!Object.prototype.hasOwnProperty.call(t,"_controlledReadableByteStream")&&t instanceof D}function IsReadableStreamBYOBRequest(t){return!!typeIsObject(t)&&!!Object.prototype.hasOwnProperty.call(t,"_associatedReadableByteStreamController")&&t instanceof M}function ReadableByteStreamControllerCallPullIfNeeded(t){var r=function ReadableByteStreamControllerShouldCallPull(t){var r=t._controlledReadableByteStream;return"readable"===r._state&&(!t._closeRequested&&(!!t._started&&(!!(ReadableStreamHasDefaultReader(r)&&ReadableStreamGetNumReadRequests(r)>0)||(!!(ReadableStreamHasBYOBReader(r)&&ReadableStreamGetNumReadIntoRequests(r)>0)||ReadableByteStreamControllerGetDesiredSize(t)>0))))}(t);if(r)if(t._pulling)t._pullAgain=!0;else{t._pulling=!0;uponPromise(t._pullAlgorithm(),(function(){t._pulling=!1;if(t._pullAgain){t._pullAgain=!1;ReadableByteStreamControllerCallPullIfNeeded(t)}}),(function(r){ReadableByteStreamControllerError(t,r)}))}}function ReadableByteStreamControllerClearPendingPullIntos(t){ReadableByteStreamControllerInvalidateBYOBRequest(t);t._pendingPullIntos=new g}function ReadableByteStreamControllerCommitPullIntoDescriptor(t,r){var o=!1;"closed"===t._state&&(o=!0);var l=ReadableByteStreamControllerConvertPullIntoDescriptor(r);"default"===r.readerType?ReadableStreamFulfillReadRequest(t,l,o):function ReadableStreamFulfillReadIntoRequest(t,r,o){var l=t._reader._readIntoRequests.shift();o?l._closeSteps(r):l._chunkSteps(r)}(t,l,o)}function ReadableByteStreamControllerConvertPullIntoDescriptor(t){var r=t.bytesFilled,o=t.elementSize;return new t.viewConstructor(t.buffer,t.byteOffset,r/o)}function ReadableByteStreamControllerEnqueueChunkToQueue(t,r,o,l){t._queue.push({buffer:r,byteOffset:o,byteLength:l});t._queueTotalSize+=l}function ReadableByteStreamControllerFillPullIntoDescriptorFromQueue(t,r){var o=r.elementSize,l=r.bytesFilled-r.bytesFilled%o,c=Math.min(t._queueTotalSize,r.byteLength-r.bytesFilled),u=r.bytesFilled+c,h=u-u%o,d=c,m=!1;if(h>l){d=h-r.bytesFilled;m=!0}for(var g=t._queue;d>0;){var y=g.peek(),v=Math.min(d,y.byteLength),S=r.byteOffset+r.bytesFilled;CopyDataBlockBytes(r.buffer,S,y.buffer,y.byteOffset,v);if(y.byteLength===v)g.shift();else{y.byteOffset+=v;y.byteLength-=v}t._queueTotalSize-=v;ReadableByteStreamControllerFillHeadPullIntoDescriptor(0,v,r);d-=v}return m}function ReadableByteStreamControllerFillHeadPullIntoDescriptor(t,r,o){o.bytesFilled+=r}function ReadableByteStreamControllerHandleQueueDrain(t){if(0===t._queueTotalSize&&t._closeRequested){ReadableByteStreamControllerClearAlgorithms(t);ReadableStreamClose(t._controlledReadableByteStream)}else ReadableByteStreamControllerCallPullIfNeeded(t)}function ReadableByteStreamControllerInvalidateBYOBRequest(t){if(null!==t._byobRequest){t._byobRequest._associatedReadableByteStreamController=void 0;t._byobRequest._view=null;t._byobRequest=null}}function ReadableByteStreamControllerProcessPullIntoDescriptorsUsingQueue(t){for(;t._pendingPullIntos.length>0;){if(0===t._queueTotalSize)return;var r=t._pendingPullIntos.peek();if(ReadableByteStreamControllerFillPullIntoDescriptorFromQueue(t,r)){ReadableByteStreamControllerShiftPendingPullInto(t);ReadableByteStreamControllerCommitPullIntoDescriptor(t._controlledReadableByteStream,r)}}}function ReadableByteStreamControllerRespondInternal(t,r){var o=t._pendingPullIntos.peek();ReadableByteStreamControllerInvalidateBYOBRequest(t);"closed"===t._controlledReadableByteStream._state?function ReadableByteStreamControllerRespondInClosedState(t,r){var o=t._controlledReadableByteStream;if(ReadableStreamHasBYOBReader(o))for(;ReadableStreamGetNumReadIntoRequests(o)>0;)ReadableByteStreamControllerCommitPullIntoDescriptor(o,ReadableByteStreamControllerShiftPendingPullInto(t))}(t):function ReadableByteStreamControllerRespondInReadableState(t,r,o){ReadableByteStreamControllerFillHeadPullIntoDescriptor(0,r,o);if(!(o.bytesFilled<o.elementSize)){ReadableByteStreamControllerShiftPendingPullInto(t);var l=o.bytesFilled%o.elementSize;if(l>0){var c=o.byteOffset+o.bytesFilled,u=ArrayBufferSlice(o.buffer,c-l,c);ReadableByteStreamControllerEnqueueChunkToQueue(t,u,0,u.byteLength)}o.bytesFilled-=l;ReadableByteStreamControllerCommitPullIntoDescriptor(t._controlledReadableByteStream,o);ReadableByteStreamControllerProcessPullIntoDescriptorsUsingQueue(t)}}(t,r,o);ReadableByteStreamControllerCallPullIfNeeded(t)}function ReadableByteStreamControllerShiftPendingPullInto(t){return t._pendingPullIntos.shift()}function ReadableByteStreamControllerClearAlgorithms(t){t._pullAlgorithm=void 0;t._cancelAlgorithm=void 0}function ReadableByteStreamControllerClose(t){var r=t._controlledReadableByteStream;if(!t._closeRequested&&"readable"===r._state)if(t._queueTotalSize>0)t._closeRequested=!0;else{if(t._pendingPullIntos.length>0&&t._pendingPullIntos.peek().bytesFilled>0){var o=new TypeError("Insufficient bytes to fill elements in the given buffer");ReadableByteStreamControllerError(t,o);throw o}ReadableByteStreamControllerClearAlgorithms(t);ReadableStreamClose(r)}}function ReadableByteStreamControllerEnqueue(t,r){var o=t._controlledReadableByteStream;if(!t._closeRequested&&"readable"===o._state){var l=r.buffer,c=r.byteOffset,u=r.byteLength,h=l;if(t._pendingPullIntos.length>0){var d=t._pendingPullIntos.peek();d.buffer;d.buffer=d.buffer}ReadableByteStreamControllerInvalidateBYOBRequest(t);if(ReadableStreamHasDefaultReader(o))0===ReadableStreamGetNumReadRequests(o)?ReadableByteStreamControllerEnqueueChunkToQueue(t,h,c,u):ReadableStreamFulfillReadRequest(o,new Uint8Array(h,c,u),!1);else if(ReadableStreamHasBYOBReader(o)){ReadableByteStreamControllerEnqueueChunkToQueue(t,h,c,u);ReadableByteStreamControllerProcessPullIntoDescriptorsUsingQueue(t)}else ReadableByteStreamControllerEnqueueChunkToQueue(t,h,c,u);ReadableByteStreamControllerCallPullIfNeeded(t)}}function ReadableByteStreamControllerError(t,r){var o=t._controlledReadableByteStream;if("readable"===o._state){ReadableByteStreamControllerClearPendingPullIntos(t);ResetQueue(t);ReadableByteStreamControllerClearAlgorithms(t);ReadableStreamError(o,r)}}function ReadableByteStreamControllerGetBYOBRequest(t){if(null===t._byobRequest&&t._pendingPullIntos.length>0){var r=t._pendingPullIntos.peek(),o=new Uint8Array(r.buffer,r.byteOffset+r.bytesFilled,r.byteLength-r.bytesFilled),l=Object.create(M.prototype);!function SetUpReadableStreamBYOBRequest(t,r,o){t._associatedReadableByteStreamController=r;t._view=o}(l,t,o);t._byobRequest=l}return t._byobRequest}function ReadableByteStreamControllerGetDesiredSize(t){var r=t._controlledReadableByteStream._state;return"errored"===r?null:"closed"===r?0:t._strategyHWM-t._queueTotalSize}function ReadableByteStreamControllerRespond(t,r){var o=t._pendingPullIntos.peek();if("closed"===t._controlledReadableByteStream._state){if(0!==r)throw new TypeError("bytesWritten must be 0 when calling respond() on a closed stream")}else{if(0===r)throw new TypeError("bytesWritten must be greater than 0 when calling respond() on a readable stream");if(o.bytesFilled+r>o.byteLength)throw new RangeError("bytesWritten out of range")}o.buffer=o.buffer;ReadableByteStreamControllerRespondInternal(t,r)}function ReadableByteStreamControllerRespondWithNewView(t,r){var o=t._pendingPullIntos.peek();if("closed"===t._controlledReadableByteStream._state){if(0!==r.byteLength)throw new TypeError("The view's length must be 0 when calling respondWithNewView() on a closed stream")}else if(0===r.byteLength)throw new TypeError("The view's length must be greater than 0 when calling respondWithNewView() on a readable stream");if(o.byteOffset+o.bytesFilled!==r.byteOffset)throw new RangeError("The region specified by view does not match byobRequest");if(o.bufferByteLength!==r.buffer.byteLength)throw new RangeError("The buffer of view has different capacity than byobRequest");if(o.bytesFilled+r.byteLength>o.byteLength)throw new RangeError("The region specified by view is larger than byobRequest");o.buffer=r.buffer;ReadableByteStreamControllerRespondInternal(t,r.byteLength)}function SetUpReadableByteStreamController(t,r,o,l,c,u,h){r._controlledReadableByteStream=t;r._pullAgain=!1;r._pulling=!1;r._byobRequest=null;r._queue=r._queueTotalSize=void 0;ResetQueue(r);r._closeRequested=!1;r._started=!1;r._strategyHWM=u;r._pullAlgorithm=l;r._cancelAlgorithm=c;r._autoAllocateChunkSize=h;r._pendingPullIntos=new g;t._readableStreamController=r;uponPromise(promiseResolvedWith(o()),(function(){r._started=!0;ReadableByteStreamControllerCallPullIfNeeded(r)}),(function(t){ReadableByteStreamControllerError(r,t)}))}function byobRequestBrandCheckException(t){return new TypeError("ReadableStreamBYOBRequest.prototype."+t+" can only be used on a ReadableStreamBYOBRequest")}function byteStreamControllerBrandCheckException(t){return new TypeError("ReadableByteStreamController.prototype."+t+" can only be used on a ReadableByteStreamController")}function AcquireReadableStreamBYOBReader(t){return new j(t)}function ReadableStreamAddReadIntoRequest(t,r){t._reader._readIntoRequests.push(r)}function ReadableStreamGetNumReadIntoRequests(t){return t._reader._readIntoRequests.length}function ReadableStreamHasBYOBReader(t){var r=t._reader;return void 0!==r&&!!IsReadableStreamBYOBReader(r)}var j=function(){function ReadableStreamBYOBReader(t){assertRequiredArgument(t,1,"ReadableStreamBYOBReader");assertReadableStream(t,"First parameter");if(IsReadableStreamLocked(t))throw new TypeError("This stream has already been locked for exclusive reading by another reader");if(!IsReadableByteStreamController(t._readableStreamController))throw new TypeError("Cannot construct a ReadableStreamBYOBReader for a stream not constructed with a byte source");ReadableStreamReaderGenericInitialize(this,t);this._readIntoRequests=new g}Object.defineProperty(ReadableStreamBYOBReader.prototype,"closed",{get:function(){return IsReadableStreamBYOBReader(this)?this._closedPromise:promiseRejectedWith(byobReaderBrandCheckException("closed"))},enumerable:!1,configurable:!0});ReadableStreamBYOBReader.prototype.cancel=function(t){void 0===t&&(t=void 0);return IsReadableStreamBYOBReader(this)?void 0===this._ownerReadableStream?promiseRejectedWith(readerLockException("cancel")):ReadableStreamReaderGenericCancel(this,t):promiseRejectedWith(byobReaderBrandCheckException("cancel"))};ReadableStreamBYOBReader.prototype.read=function(t){if(!IsReadableStreamBYOBReader(this))return promiseRejectedWith(byobReaderBrandCheckException("read"));if(!ArrayBuffer.isView(t))return promiseRejectedWith(new TypeError("view must be an array buffer view"));if(0===t.byteLength)return promiseRejectedWith(new TypeError("view must have non-zero byteLength"));if(0===t.buffer.byteLength)return promiseRejectedWith(new TypeError("view's buffer must have non-zero byteLength"));t.buffer;if(void 0===this._ownerReadableStream)return promiseRejectedWith(readerLockException("read from"));var r,o,l=newPromise((function(t,l){r=t;o=l}));ReadableStreamBYOBReaderRead(this,t,{_chunkSteps:function(t){return r({value:t,done:!1})},_closeSteps:function(t){return r({value:t,done:!0})},_errorSteps:function(t){return o(t)}});return l};ReadableStreamBYOBReader.prototype.releaseLock=function(){if(!IsReadableStreamBYOBReader(this))throw byobReaderBrandCheckException("releaseLock");if(void 0!==this._ownerReadableStream){if(this._readIntoRequests.length>0)throw new TypeError("Tried to release a reader lock when that reader has pending read() calls un-settled");ReadableStreamReaderGenericRelease(this)}};return ReadableStreamBYOBReader}();Object.defineProperties(j.prototype,{cancel:{enumerable:!0},read:{enumerable:!0},releaseLock:{enumerable:!0},closed:{enumerable:!0}});"symbol"==typeof r.toStringTag&&Object.defineProperty(j.prototype,r.toStringTag,{value:"ReadableStreamBYOBReader",configurable:!0});function IsReadableStreamBYOBReader(t){return!!typeIsObject(t)&&!!Object.prototype.hasOwnProperty.call(t,"_readIntoRequests")&&t instanceof j}function ReadableStreamBYOBReaderRead(t,r,o){var l=t._ownerReadableStream;l._disturbed=!0;"errored"===l._state?o._errorSteps(l._storedError):function ReadableByteStreamControllerPullInto(t,r,o){var l=t._controlledReadableByteStream,c=1;r.constructor!==DataView&&(c=r.constructor.BYTES_PER_ELEMENT);var u=r.constructor,h=r.buffer,d={buffer:h,bufferByteLength:h.byteLength,byteOffset:r.byteOffset,byteLength:r.byteLength,bytesFilled:0,elementSize:c,viewConstructor:u,readerType:"byob"};if(t._pendingPullIntos.length>0){t._pendingPullIntos.push(d);ReadableStreamAddReadIntoRequest(l,o)}else if("closed"!==l._state){if(t._queueTotalSize>0){if(ReadableByteStreamControllerFillPullIntoDescriptorFromQueue(t,d)){var m=ReadableByteStreamControllerConvertPullIntoDescriptor(d);ReadableByteStreamControllerHandleQueueDrain(t);o._chunkSteps(m);return}if(t._closeRequested){var g=new TypeError("Insufficient bytes to fill elements in the given buffer");ReadableByteStreamControllerError(t,g);o._errorSteps(g);return}}t._pendingPullIntos.push(d);ReadableStreamAddReadIntoRequest(l,o);ReadableByteStreamControllerCallPullIfNeeded(t)}else{var y=new u(d.buffer,d.byteOffset,0);o._closeSteps(y)}}(l._readableStreamController,r,o)}function byobReaderBrandCheckException(t){return new TypeError("ReadableStreamBYOBReader.prototype."+t+" can only be used on a ReadableStreamBYOBReader")}function ExtractHighWaterMark(t,r){var o=t.highWaterMark;if(void 0===o)return r;if(E(o)||o<0)throw new RangeError("Invalid highWaterMark");return o}function ExtractSizeAlgorithm(t){var r=t.size;return r||function(){return 1}}function convertQueuingStrategy(t,r){assertDictionary(t,r);var o=null==t?void 0:t.highWaterMark,l=null==t?void 0:t.size;return{highWaterMark:void 0===o?void 0:convertUnrestrictedDouble(o),size:void 0===l?void 0:convertQueuingStrategySize(l,r+" has member 'size' that")}}function convertQueuingStrategySize(t,r){assertFunction(t,r);return function(r){return convertUnrestrictedDouble(t(r))}}function convertUnderlyingSinkAbortCallback(t,r,o){assertFunction(t,o);return function(o){return promiseCall(t,r,[o])}}function convertUnderlyingSinkCloseCallback(t,r,o){assertFunction(t,o);return function(){return promiseCall(t,r,[])}}function convertUnderlyingSinkStartCallback(t,r,o){assertFunction(t,o);return function(o){return reflectCall(t,r,[o])}}function convertUnderlyingSinkWriteCallback(t,r,o){assertFunction(t,o);return function(o,l){return promiseCall(t,r,[o,l])}}function assertWritableStream(t,r){if(!IsWritableStream(t))throw new TypeError(r+" is not a WritableStream.")}var L="function"==typeof AbortController,N=function(){function WritableStream(t,r){void 0===t&&(t={});void 0===r&&(r={});void 0===t?t=null:assertObject(t,"First parameter");var o=convertQueuingStrategy(r,"Second parameter"),l=function convertUnderlyingSink(t,r){assertDictionary(t,r);var o=null==t?void 0:t.abort,l=null==t?void 0:t.close,c=null==t?void 0:t.start,u=null==t?void 0:t.type,h=null==t?void 0:t.write;return{abort:void 0===o?void 0:convertUnderlyingSinkAbortCallback(o,t,r+" has member 'abort' that"),close:void 0===l?void 0:convertUnderlyingSinkCloseCallback(l,t,r+" has member 'close' that"),start:void 0===c?void 0:convertUnderlyingSinkStartCallback(c,t,r+" has member 'start' that"),write:void 0===h?void 0:convertUnderlyingSinkWriteCallback(h,t,r+" has member 'write' that"),type:u}}(t,"First parameter");InitializeWritableStream(this);if(void 0!==l.type)throw new RangeError("Invalid type is specified");var c=ExtractSizeAlgorithm(o);!function SetUpWritableStreamDefaultControllerFromUnderlyingSink(t,r,o,l){var c=Object.create(W.prototype),startAlgorithm=function(){},writeAlgorithm=function(){return promiseResolvedWith(void 0)},closeAlgorithm=function(){return promiseResolvedWith(void 0)},abortAlgorithm=function(){return promiseResolvedWith(void 0)};void 0!==r.start&&(startAlgorithm=function(){return r.start(c)});void 0!==r.write&&(writeAlgorithm=function(t){return r.write(t,c)});void 0!==r.close&&(closeAlgorithm=function(){return r.close()});void 0!==r.abort&&(abortAlgorithm=function(t){return r.abort(t)});SetUpWritableStreamDefaultController(t,c,startAlgorithm,writeAlgorithm,closeAlgorithm,abortAlgorithm,o,l)}(this,l,ExtractHighWaterMark(o,1),c)}Object.defineProperty(WritableStream.prototype,"locked",{get:function(){if(!IsWritableStream(this))throw streamBrandCheckException$2("locked");return IsWritableStreamLocked(this)},enumerable:!1,configurable:!0});WritableStream.prototype.abort=function(t){void 0===t&&(t=void 0);return IsWritableStream(this)?IsWritableStreamLocked(this)?promiseRejectedWith(new TypeError("Cannot abort a stream that already has a writer")):WritableStreamAbort(this,t):promiseRejectedWith(streamBrandCheckException$2("abort"))};WritableStream.prototype.close=function(){return IsWritableStream(this)?IsWritableStreamLocked(this)?promiseRejectedWith(new TypeError("Cannot close a stream that already has a writer")):WritableStreamCloseQueuedOrInFlight(this)?promiseRejectedWith(new TypeError("Cannot close an already-closing stream")):WritableStreamClose(this):promiseRejectedWith(streamBrandCheckException$2("close"))};WritableStream.prototype.getWriter=function(){if(!IsWritableStream(this))throw streamBrandCheckException$2("getWriter");return AcquireWritableStreamDefaultWriter(this)};return WritableStream}();Object.defineProperties(N.prototype,{abort:{enumerable:!0},close:{enumerable:!0},getWriter:{enumerable:!0},locked:{enumerable:!0}});"symbol"==typeof r.toStringTag&&Object.defineProperty(N.prototype,r.toStringTag,{value:"WritableStream",configurable:!0});function AcquireWritableStreamDefaultWriter(t){return new U(t)}function InitializeWritableStream(t){t._state="writable";t._storedError=void 0;t._writer=void 0;t._writableStreamController=void 0;t._writeRequests=new g;t._inFlightWriteRequest=void 0;t._closeRequest=void 0;t._inFlightCloseRequest=void 0;t._pendingAbortRequest=void 0;t._backpressure=!1}function IsWritableStream(t){return!!typeIsObject(t)&&!!Object.prototype.hasOwnProperty.call(t,"_writableStreamController")&&t instanceof N}function IsWritableStreamLocked(t){return void 0!==t._writer}function WritableStreamAbort(t,r){var o;if("closed"===t._state||"errored"===t._state)return promiseResolvedWith(void 0);t._writableStreamController._abortReason=r;null===(o=t._writableStreamController._abortController)||void 0===o||o.abort();var l=t._state;if("closed"===l||"errored"===l)return promiseResolvedWith(void 0);if(void 0!==t._pendingAbortRequest)return t._pendingAbortRequest._promise;var c=!1;if("erroring"===l){c=!0;r=void 0}var u=newPromise((function(o,l){t._pendingAbortRequest={_promise:void 0,_resolve:o,_reject:l,_reason:r,_wasAlreadyErroring:c}}));t._pendingAbortRequest._promise=u;c||WritableStreamStartErroring(t,r);return u}function WritableStreamClose(t){var r=t._state;if("closed"===r||"errored"===r)return promiseRejectedWith(new TypeError("The stream (in "+r+" state) is not in the writable state and cannot be closed"));var o=newPromise((function(r,o){var l={_resolve:r,_reject:o};t._closeRequest=l})),l=t._writer;void 0!==l&&t._backpressure&&"writable"===r&&defaultWriterReadyPromiseResolve(l);!function WritableStreamDefaultControllerClose(t){EnqueueValueWithSize(t,H,0);WritableStreamDefaultControllerAdvanceQueueIfNeeded(t)}(t._writableStreamController);return o}function WritableStreamDealWithRejection(t,r){"writable"!==t._state?WritableStreamFinishErroring(t):WritableStreamStartErroring(t,r)}function WritableStreamStartErroring(t,r){var o=t._writableStreamController;t._state="erroring";t._storedError=r;var l=t._writer;void 0!==l&&WritableStreamDefaultWriterEnsureReadyPromiseRejected(l,r);!function WritableStreamHasOperationMarkedInFlight(t){return void 0!==t._inFlightWriteRequest||void 0!==t._inFlightCloseRequest}(t)&&o._started&&WritableStreamFinishErroring(t)}function WritableStreamFinishErroring(t){t._state="errored";t._writableStreamController[v]();var r=t._storedError;t._writeRequests.forEach((function(t){t._reject(r)}));t._writeRequests=new g;if(void 0!==t._pendingAbortRequest){var o=t._pendingAbortRequest;t._pendingAbortRequest=void 0;if(o._wasAlreadyErroring){o._reject(r);WritableStreamRejectCloseAndClosedPromiseIfNeeded(t)}else uponPromise(t._writableStreamController[y](o._reason),(function(){o._resolve();WritableStreamRejectCloseAndClosedPromiseIfNeeded(t)}),(function(r){o._reject(r);WritableStreamRejectCloseAndClosedPromiseIfNeeded(t)}))}else WritableStreamRejectCloseAndClosedPromiseIfNeeded(t)}function WritableStreamCloseQueuedOrInFlight(t){return void 0!==t._closeRequest||void 0!==t._inFlightCloseRequest}function WritableStreamRejectCloseAndClosedPromiseIfNeeded(t){if(void 0!==t._closeRequest){t._closeRequest._reject(t._storedError);t._closeRequest=void 0}var r=t._writer;void 0!==r&&defaultWriterClosedPromiseReject(r,t._storedError)}function WritableStreamUpdateBackpressure(t,r){var o=t._writer;void 0!==o&&r!==t._backpressure&&(r?function defaultWriterReadyPromiseReset(t){defaultWriterReadyPromiseInitialize(t)}(o):defaultWriterReadyPromiseResolve(o));t._backpressure=r}var U=function(){function WritableStreamDefaultWriter(t){assertRequiredArgument(t,1,"WritableStreamDefaultWriter");assertWritableStream(t,"First parameter");if(IsWritableStreamLocked(t))throw new TypeError("This stream has already been locked for exclusive writing by another writer");this._ownerWritableStream=t;t._writer=this;var r=t._state;if("writable"===r){!WritableStreamCloseQueuedOrInFlight(t)&&t._backpressure?defaultWriterReadyPromiseInitialize(this):defaultWriterReadyPromiseInitializeAsResolved(this);defaultWriterClosedPromiseInitialize(this)}else if("erroring"===r){defaultWriterReadyPromiseInitializeAsRejected(this,t._storedError);defaultWriterClosedPromiseInitialize(this)}else if("closed"===r){defaultWriterReadyPromiseInitializeAsResolved(this);!function defaultWriterClosedPromiseInitializeAsResolved(t){defaultWriterClosedPromiseInitialize(t);defaultWriterClosedPromiseResolve(t)}(this)}else{var o=t._storedError;defaultWriterReadyPromiseInitializeAsRejected(this,o);defaultWriterClosedPromiseInitializeAsRejected(this,o)}}Object.defineProperty(WritableStreamDefaultWriter.prototype,"closed",{get:function(){return IsWritableStreamDefaultWriter(this)?this._closedPromise:promiseRejectedWith(defaultWriterBrandCheckException("closed"))},enumerable:!1,configurable:!0});Object.defineProperty(WritableStreamDefaultWriter.prototype,"desiredSize",{get:function(){if(!IsWritableStreamDefaultWriter(this))throw defaultWriterBrandCheckException("desiredSize");if(void 0===this._ownerWritableStream)throw defaultWriterLockException("desiredSize");return function WritableStreamDefaultWriterGetDesiredSize(t){var r=t._ownerWritableStream,o=r._state;return"errored"===o||"erroring"===o?null:"closed"===o?0:WritableStreamDefaultControllerGetDesiredSize(r._writableStreamController)}(this)},enumerable:!1,configurable:!0});Object.defineProperty(WritableStreamDefaultWriter.prototype,"ready",{get:function(){return IsWritableStreamDefaultWriter(this)?this._readyPromise:promiseRejectedWith(defaultWriterBrandCheckException("ready"))},enumerable:!1,configurable:!0});WritableStreamDefaultWriter.prototype.abort=function(t){void 0===t&&(t=void 0);return IsWritableStreamDefaultWriter(this)?void 0===this._ownerWritableStream?promiseRejectedWith(defaultWriterLockException("abort")):function WritableStreamDefaultWriterAbort(t,r){return WritableStreamAbort(t._ownerWritableStream,r)}(this,t):promiseRejectedWith(defaultWriterBrandCheckException("abort"))};WritableStreamDefaultWriter.prototype.close=function(){if(!IsWritableStreamDefaultWriter(this))return promiseRejectedWith(defaultWriterBrandCheckException("close"));var t=this._ownerWritableStream;return void 0===t?promiseRejectedWith(defaultWriterLockException("close")):WritableStreamCloseQueuedOrInFlight(t)?promiseRejectedWith(new TypeError("Cannot close an already-closing stream")):WritableStreamDefaultWriterClose(this)};WritableStreamDefaultWriter.prototype.releaseLock=function(){if(!IsWritableStreamDefaultWriter(this))throw defaultWriterBrandCheckException("releaseLock");void 0!==this._ownerWritableStream&&WritableStreamDefaultWriterRelease(this)};WritableStreamDefaultWriter.prototype.write=function(t){void 0===t&&(t=void 0);return IsWritableStreamDefaultWriter(this)?void 0===this._ownerWritableStream?promiseRejectedWith(defaultWriterLockException("write to")):WritableStreamDefaultWriterWrite(this,t):promiseRejectedWith(defaultWriterBrandCheckException("write"))};return WritableStreamDefaultWriter}();Object.defineProperties(U.prototype,{abort:{enumerable:!0},close:{enumerable:!0},releaseLock:{enumerable:!0},write:{enumerable:!0},closed:{enumerable:!0},desiredSize:{enumerable:!0},ready:{enumerable:!0}});"symbol"==typeof r.toStringTag&&Object.defineProperty(U.prototype,r.toStringTag,{value:"WritableStreamDefaultWriter",configurable:!0});function IsWritableStreamDefaultWriter(t){return!!typeIsObject(t)&&!!Object.prototype.hasOwnProperty.call(t,"_ownerWritableStream")&&t instanceof U}function WritableStreamDefaultWriterClose(t){return WritableStreamClose(t._ownerWritableStream)}function WritableStreamDefaultWriterEnsureClosedPromiseRejected(t,r){"pending"===t._closedPromiseState?defaultWriterClosedPromiseReject(t,r):function defaultWriterClosedPromiseResetToRejected(t,r){defaultWriterClosedPromiseInitializeAsRejected(t,r)}(t,r)}function WritableStreamDefaultWriterEnsureReadyPromiseRejected(t,r){"pending"===t._readyPromiseState?defaultWriterReadyPromiseReject(t,r):function defaultWriterReadyPromiseResetToRejected(t,r){defaultWriterReadyPromiseInitializeAsRejected(t,r)}(t,r)}function WritableStreamDefaultWriterRelease(t){var r=t._ownerWritableStream,o=new TypeError("Writer was released and can no longer be used to monitor the stream's closedness");WritableStreamDefaultWriterEnsureReadyPromiseRejected(t,o);WritableStreamDefaultWriterEnsureClosedPromiseRejected(t,o);r._writer=void 0;t._ownerWritableStream=void 0}function WritableStreamDefaultWriterWrite(t,r){var o=t._ownerWritableStream,l=o._writableStreamController,c=function WritableStreamDefaultControllerGetChunkSize(t,r){try{return t._strategySizeAlgorithm(r)}catch(r){WritableStreamDefaultControllerErrorIfNeeded(t,r);return 1}}(l,r);if(o!==t._ownerWritableStream)return promiseRejectedWith(defaultWriterLockException("write to"));var u=o._state;if("errored"===u)return promiseRejectedWith(o._storedError);if(WritableStreamCloseQueuedOrInFlight(o)||"closed"===u)return promiseRejectedWith(new TypeError("The stream is closing or closed and cannot be written to"));if("erroring"===u)return promiseRejectedWith(o._storedError);var h=function WritableStreamAddWriteRequest(t){return newPromise((function(r,o){var l={_resolve:r,_reject:o};t._writeRequests.push(l)}))}(o);!function WritableStreamDefaultControllerWrite(t,r,o){try{EnqueueValueWithSize(t,r,o)}catch(r){WritableStreamDefaultControllerErrorIfNeeded(t,r);return}var l=t._controlledWritableStream;WritableStreamCloseQueuedOrInFlight(l)||"writable"!==l._state||WritableStreamUpdateBackpressure(l,WritableStreamDefaultControllerGetBackpressure(t));WritableStreamDefaultControllerAdvanceQueueIfNeeded(t)}(l,r,c);return h}var H={},W=function(){function WritableStreamDefaultController(){throw new TypeError("Illegal constructor")}Object.defineProperty(WritableStreamDefaultController.prototype,"abortReason",{get:function(){if(!IsWritableStreamDefaultController(this))throw defaultControllerBrandCheckException$2("abortReason");return this._abortReason},enumerable:!1,configurable:!0});Object.defineProperty(WritableStreamDefaultController.prototype,"signal",{get:function(){if(!IsWritableStreamDefaultController(this))throw defaultControllerBrandCheckException$2("signal");if(void 0===this._abortController)throw new TypeError("WritableStreamDefaultController.prototype.signal is not supported");return this._abortController.signal},enumerable:!1,configurable:!0});WritableStreamDefaultController.prototype.error=function(t){void 0===t&&(t=void 0);if(!IsWritableStreamDefaultController(this))throw defaultControllerBrandCheckException$2("error");"writable"===this._controlledWritableStream._state&&WritableStreamDefaultControllerError(this,t)};WritableStreamDefaultController.prototype[y]=function(t){var r=this._abortAlgorithm(t);WritableStreamDefaultControllerClearAlgorithms(this);return r};WritableStreamDefaultController.prototype[v]=function(){ResetQueue(this)};return WritableStreamDefaultController}();Object.defineProperties(W.prototype,{error:{enumerable:!0}});"symbol"==typeof r.toStringTag&&Object.defineProperty(W.prototype,r.toStringTag,{value:"WritableStreamDefaultController",configurable:!0});function IsWritableStreamDefaultController(t){return!!typeIsObject(t)&&!!Object.prototype.hasOwnProperty.call(t,"_controlledWritableStream")&&t instanceof W}function SetUpWritableStreamDefaultController(t,r,o,l,c,u,h,d){r._controlledWritableStream=t;t._writableStreamController=r;r._queue=void 0;r._queueTotalSize=void 0;ResetQueue(r);r._abortReason=void 0;r._abortController=function createAbortController(){if(L)return new AbortController}();r._started=!1;r._strategySizeAlgorithm=d;r._strategyHWM=h;r._writeAlgorithm=l;r._closeAlgorithm=c;r._abortAlgorithm=u;var m=WritableStreamDefaultControllerGetBackpressure(r);WritableStreamUpdateBackpressure(t,m);uponPromise(promiseResolvedWith(o()),(function(){r._started=!0;WritableStreamDefaultControllerAdvanceQueueIfNeeded(r)}),(function(o){r._started=!0;WritableStreamDealWithRejection(t,o)}))}function WritableStreamDefaultControllerClearAlgorithms(t){t._writeAlgorithm=void 0;t._closeAlgorithm=void 0;t._abortAlgorithm=void 0;t._strategySizeAlgorithm=void 0}function WritableStreamDefaultControllerGetDesiredSize(t){return t._strategyHWM-t._queueTotalSize}function WritableStreamDefaultControllerAdvanceQueueIfNeeded(t){var r=t._controlledWritableStream;if(t._started&&void 0===r._inFlightWriteRequest)if("erroring"!==r._state){if(0!==t._queue.length){var o=function PeekQueueValue(t){return t._queue.peek().value}(t);o===H?function WritableStreamDefaultControllerProcessClose(t){var r=t._controlledWritableStream;!function WritableStreamMarkCloseRequestInFlight(t){t._inFlightCloseRequest=t._closeRequest;t._closeRequest=void 0}(r);DequeueValue(t);var o=t._closeAlgorithm();WritableStreamDefaultControllerClearAlgorithms(t);uponPromise(o,(function(){!function WritableStreamFinishInFlightClose(t){t._inFlightCloseRequest._resolve(void 0);t._inFlightCloseRequest=void 0;if("erroring"===t._state){t._storedError=void 0;if(void 0!==t._pendingAbortRequest){t._pendingAbortRequest._resolve();t._pendingAbortRequest=void 0}}t._state="closed";var r=t._writer;void 0!==r&&defaultWriterClosedPromiseResolve(r)}(r)}),(function(t){!function WritableStreamFinishInFlightCloseWithError(t,r){t._inFlightCloseRequest._reject(r);t._inFlightCloseRequest=void 0;if(void 0!==t._pendingAbortRequest){t._pendingAbortRequest._reject(r);t._pendingAbortRequest=void 0}WritableStreamDealWithRejection(t,r)}(r,t)}))}(t):function WritableStreamDefaultControllerProcessWrite(t,r){var o=t._controlledWritableStream;!function WritableStreamMarkFirstWriteRequestInFlight(t){t._inFlightWriteRequest=t._writeRequests.shift()}(o);uponPromise(t._writeAlgorithm(r),(function(){!function WritableStreamFinishInFlightWrite(t){t._inFlightWriteRequest._resolve(void 0);t._inFlightWriteRequest=void 0}(o);var r=o._state;DequeueValue(t);if(!WritableStreamCloseQueuedOrInFlight(o)&&"writable"===r){var l=WritableStreamDefaultControllerGetBackpressure(t);WritableStreamUpdateBackpressure(o,l)}WritableStreamDefaultControllerAdvanceQueueIfNeeded(t)}),(function(r){"writable"===o._state&&WritableStreamDefaultControllerClearAlgorithms(t);!function WritableStreamFinishInFlightWriteWithError(t,r){t._inFlightWriteRequest._reject(r);t._inFlightWriteRequest=void 0;WritableStreamDealWithRejection(t,r)}(o,r)}))}(t,o)}}else WritableStreamFinishErroring(r)}function WritableStreamDefaultControllerErrorIfNeeded(t,r){"writable"===t._controlledWritableStream._state&&WritableStreamDefaultControllerError(t,r)}function WritableStreamDefaultControllerGetBackpressure(t){return WritableStreamDefaultControllerGetDesiredSize(t)<=0}function WritableStreamDefaultControllerError(t,r){var o=t._controlledWritableStream;WritableStreamDefaultControllerClearAlgorithms(t);WritableStreamStartErroring(o,r)}function streamBrandCheckException$2(t){return new TypeError("WritableStream.prototype."+t+" can only be used on a WritableStream")}function defaultControllerBrandCheckException$2(t){return new TypeError("WritableStreamDefaultController.prototype."+t+" can only be used on a WritableStreamDefaultController")}function defaultWriterBrandCheckException(t){return new TypeError("WritableStreamDefaultWriter.prototype."+t+" can only be used on a WritableStreamDefaultWriter")}function defaultWriterLockException(t){return new TypeError("Cannot "+t+" a stream using a released writer")}function defaultWriterClosedPromiseInitialize(t){t._closedPromise=newPromise((function(r,o){t._closedPromise_resolve=r;t._closedPromise_reject=o;t._closedPromiseState="pending"}))}function defaultWriterClosedPromiseInitializeAsRejected(t,r){defaultWriterClosedPromiseInitialize(t);defaultWriterClosedPromiseReject(t,r)}function defaultWriterClosedPromiseReject(t,r){if(void 0!==t._closedPromise_reject){setPromiseIsHandledToTrue(t._closedPromise);t._closedPromise_reject(r);t._closedPromise_resolve=void 0;t._closedPromise_reject=void 0;t._closedPromiseState="rejected"}}function defaultWriterClosedPromiseResolve(t){if(void 0!==t._closedPromise_resolve){t._closedPromise_resolve(void 0);t._closedPromise_resolve=void 0;t._closedPromise_reject=void 0;t._closedPromiseState="resolved"}}function defaultWriterReadyPromiseInitialize(t){t._readyPromise=newPromise((function(r,o){t._readyPromise_resolve=r;t._readyPromise_reject=o}));t._readyPromiseState="pending"}function defaultWriterReadyPromiseInitializeAsRejected(t,r){defaultWriterReadyPromiseInitialize(t);defaultWriterReadyPromiseReject(t,r)}function defaultWriterReadyPromiseInitializeAsResolved(t){defaultWriterReadyPromiseInitialize(t);defaultWriterReadyPromiseResolve(t)}function defaultWriterReadyPromiseReject(t,r){if(void 0!==t._readyPromise_reject){setPromiseIsHandledToTrue(t._readyPromise);t._readyPromise_reject(r);t._readyPromise_resolve=void 0;t._readyPromise_reject=void 0;t._readyPromiseState="rejected"}}function defaultWriterReadyPromiseResolve(t){if(void 0!==t._readyPromise_resolve){t._readyPromise_resolve(void 0);t._readyPromise_resolve=void 0;t._readyPromise_reject=void 0;t._readyPromiseState="fulfilled"}}var $="undefined"!=typeof DOMException?DOMException:void 0,q=function isDOMExceptionConstructor(t){if("function"!=typeof t&&"object"!=typeof t)return!1;try{new t;return!0}catch(t){return!1}}($)?$:function createDOMExceptionPolyfill(){var t=function DOMException(t,r){this.message=t||"";this.name=r||"Error";Error.captureStackTrace&&Error.captureStackTrace(this,this.constructor)};t.prototype=Object.create(Error.prototype);Object.defineProperty(t.prototype,"constructor",{value:t,writable:!0,configurable:!0});return t}();function ReadableStreamPipeTo(t,r,o,l,c,u){var h=AcquireReadableStreamDefaultReader(t),d=AcquireWritableStreamDefaultWriter(r);t._disturbed=!0;var m=!1,g=promiseResolvedWith(void 0);return newPromise((function(y,v){var S;if(void 0!==u){S=function(){var o=new q("Aborted","AbortError"),u=[];l||u.push((function(){return"writable"===r._state?WritableStreamAbort(r,o):promiseResolvedWith(void 0)}));c||u.push((function(){return"readable"===t._state?ReadableStreamCancel(t,o):promiseResolvedWith(void 0)}));shutdownWithAction((function(){return Promise.all(u.map((function(t){return t()})))}),!0,o)};if(u.aborted){S();return}u.addEventListener("abort",S)}isOrBecomesErrored(t,h._closedPromise,(function(t){l?shutdown(!0,t):shutdownWithAction((function(){return WritableStreamAbort(r,t)}),!0,t)}));isOrBecomesErrored(r,d._closedPromise,(function(r){c?shutdown(!0,r):shutdownWithAction((function(){return ReadableStreamCancel(t,r)}),!0,r)}));!function isOrBecomesClosed(t,r,o){"closed"===t._state?o():uponFulfillment(r,o)}(t,h._closedPromise,(function(){o?shutdown():shutdownWithAction((function(){return function WritableStreamDefaultWriterCloseWithErrorPropagation(t){var r=t._ownerWritableStream,o=r._state;return WritableStreamCloseQueuedOrInFlight(r)||"closed"===o?promiseResolvedWith(void 0):"errored"===o?promiseRejectedWith(r._storedError):WritableStreamDefaultWriterClose(t)}(d)}))}));if(WritableStreamCloseQueuedOrInFlight(r)||"closed"===r._state){var _=new TypeError("the destination writable stream closed before all data could be piped to it");c?shutdown(!0,_):shutdownWithAction((function(){return ReadableStreamCancel(t,_)}),!0,_)}setPromiseIsHandledToTrue(function pipeLoop(){return newPromise((function(t,r){!function next(o){o?t():PerformPromiseThen(function pipeStep(){return m?promiseResolvedWith(!0):PerformPromiseThen(d._readyPromise,(function(){return newPromise((function(t,r){ReadableStreamDefaultReaderRead(h,{_chunkSteps:function(r){g=PerformPromiseThen(WritableStreamDefaultWriterWrite(d,r),void 0,noop);t(!1)},_closeSteps:function(){return t(!0)},_errorSteps:r})}))}))}(),next,r)}(!1)}))}());function waitForWritesToFinish(){var t=g;return PerformPromiseThen(g,(function(){return t!==g?waitForWritesToFinish():void 0}))}function isOrBecomesErrored(t,r,o){"errored"===t._state?o(t._storedError):uponRejection(r,o)}function shutdownWithAction(t,o,l){if(!m){m=!0;"writable"!==r._state||WritableStreamCloseQueuedOrInFlight(r)?doTheRest():uponFulfillment(waitForWritesToFinish(),doTheRest)}function doTheRest(){uponPromise(t(),(function(){return finalize(o,l)}),(function(t){return finalize(!0,t)}))}}function shutdown(t,o){if(!m){m=!0;"writable"!==r._state||WritableStreamCloseQueuedOrInFlight(r)?finalize(t,o):uponFulfillment(waitForWritesToFinish(),(function(){return finalize(t,o)}))}}function finalize(t,r){WritableStreamDefaultWriterRelease(d);ReadableStreamReaderGenericRelease(h);void 0!==u&&u.removeEventListener("abort",S);t?v(r):y(void 0)}}))}var X=function(){function ReadableStreamDefaultController(){throw new TypeError("Illegal constructor")}Object.defineProperty(ReadableStreamDefaultController.prototype,"desiredSize",{get:function(){if(!IsReadableStreamDefaultController(this))throw defaultControllerBrandCheckException$1("desiredSize");return ReadableStreamDefaultControllerGetDesiredSize(this)},enumerable:!1,configurable:!0});ReadableStreamDefaultController.prototype.close=function(){if(!IsReadableStreamDefaultController(this))throw defaultControllerBrandCheckException$1("close");if(!ReadableStreamDefaultControllerCanCloseOrEnqueue(this))throw new TypeError("The stream is not in a state that permits close");ReadableStreamDefaultControllerClose(this)};ReadableStreamDefaultController.prototype.enqueue=function(t){void 0===t&&(t=void 0);if(!IsReadableStreamDefaultController(this))throw defaultControllerBrandCheckException$1("enqueue");if(!ReadableStreamDefaultControllerCanCloseOrEnqueue(this))throw new TypeError("The stream is not in a state that permits enqueue");return ReadableStreamDefaultControllerEnqueue(this,t)};ReadableStreamDefaultController.prototype.error=function(t){void 0===t&&(t=void 0);if(!IsReadableStreamDefaultController(this))throw defaultControllerBrandCheckException$1("error");ReadableStreamDefaultControllerError(this,t)};ReadableStreamDefaultController.prototype[S]=function(t){ResetQueue(this);var r=this._cancelAlgorithm(t);ReadableStreamDefaultControllerClearAlgorithms(this);return r};ReadableStreamDefaultController.prototype[_]=function(t){var r=this._controlledReadableStream;if(this._queue.length>0){var o=DequeueValue(this);if(this._closeRequested&&0===this._queue.length){ReadableStreamDefaultControllerClearAlgorithms(this);ReadableStreamClose(r)}else ReadableStreamDefaultControllerCallPullIfNeeded(this);t._chunkSteps(o)}else{ReadableStreamAddReadRequest(r,t);ReadableStreamDefaultControllerCallPullIfNeeded(this)}};return ReadableStreamDefaultController}();Object.defineProperties(X.prototype,{close:{enumerable:!0},enqueue:{enumerable:!0},error:{enumerable:!0},desiredSize:{enumerable:!0}});"symbol"==typeof r.toStringTag&&Object.defineProperty(X.prototype,r.toStringTag,{value:"ReadableStreamDefaultController",configurable:!0});function IsReadableStreamDefaultController(t){return!!typeIsObject(t)&&!!Object.prototype.hasOwnProperty.call(t,"_controlledReadableStream")&&t instanceof X}function ReadableStreamDefaultControllerCallPullIfNeeded(t){if(ReadableStreamDefaultControllerShouldCallPull(t))if(t._pulling)t._pullAgain=!0;else{t._pulling=!0;uponPromise(t._pullAlgorithm(),(function(){t._pulling=!1;if(t._pullAgain){t._pullAgain=!1;ReadableStreamDefaultControllerCallPullIfNeeded(t)}}),(function(r){ReadableStreamDefaultControllerError(t,r)}))}}function ReadableStreamDefaultControllerShouldCallPull(t){var r=t._controlledReadableStream;return!!ReadableStreamDefaultControllerCanCloseOrEnqueue(t)&&!!t._started&&(!!(IsReadableStreamLocked(r)&&ReadableStreamGetNumReadRequests(r)>0)||ReadableStreamDefaultControllerGetDesiredSize(t)>0)}function ReadableStreamDefaultControllerClearAlgorithms(t){t._pullAlgorithm=void 0;t._cancelAlgorithm=void 0;t._strategySizeAlgorithm=void 0}function ReadableStreamDefaultControllerClose(t){if(ReadableStreamDefaultControllerCanCloseOrEnqueue(t)){var r=t._controlledReadableStream;t._closeRequested=!0;if(0===t._queue.length){ReadableStreamDefaultControllerClearAlgorithms(t);ReadableStreamClose(r)}}}function ReadableStreamDefaultControllerEnqueue(t,r){if(ReadableStreamDefaultControllerCanCloseOrEnqueue(t)){var o=t._controlledReadableStream;if(IsReadableStreamLocked(o)&&ReadableStreamGetNumReadRequests(o)>0)ReadableStreamFulfillReadRequest(o,r,!1);else{var l=void 0;try{l=t._strategySizeAlgorithm(r)}catch(r){ReadableStreamDefaultControllerError(t,r);throw r}try{EnqueueValueWithSize(t,r,l)}catch(r){ReadableStreamDefaultControllerError(t,r);throw r}}ReadableStreamDefaultControllerCallPullIfNeeded(t)}}function ReadableStreamDefaultControllerError(t,r){var o=t._controlledReadableStream;if("readable"===o._state){ResetQueue(t);ReadableStreamDefaultControllerClearAlgorithms(t);ReadableStreamError(o,r)}}function ReadableStreamDefaultControllerGetDesiredSize(t){var r=t._controlledReadableStream._state;return"errored"===r?null:"closed"===r?0:t._strategyHWM-t._queueTotalSize}function ReadableStreamDefaultControllerCanCloseOrEnqueue(t){var r=t._controlledReadableStream._state;return!t._closeRequested&&"readable"===r}function SetUpReadableStreamDefaultController(t,r,o,l,c,u,h){r._controlledReadableStream=t;r._queue=void 0;r._queueTotalSize=void 0;ResetQueue(r);r._started=!1;r._closeRequested=!1;r._pullAgain=!1;r._pulling=!1;r._strategySizeAlgorithm=h;r._strategyHWM=u;r._pullAlgorithm=l;r._cancelAlgorithm=c;t._readableStreamController=r;uponPromise(promiseResolvedWith(o()),(function(){r._started=!0;ReadableStreamDefaultControllerCallPullIfNeeded(r)}),(function(t){ReadableStreamDefaultControllerError(r,t)}))}function defaultControllerBrandCheckException$1(t){return new TypeError("ReadableStreamDefaultController.prototype."+t+" can only be used on a ReadableStreamDefaultController")}function ReadableStreamTee(t,r){return IsReadableByteStreamController(t._readableStreamController)?function ReadableByteStreamTee(t){var r,o,l,c,u,h=AcquireReadableStreamDefaultReader(t),d=!1,g=!1,y=!1,v=newPromise((function(t){u=t}));function forwardReaderError(t){uponRejection(t._closedPromise,(function(r){if(t===h){ReadableByteStreamControllerError(l._readableStreamController,r);ReadableByteStreamControllerError(c._readableStreamController,r);g&&y||u(void 0)}}))}function pullWithDefaultReader(){if(IsReadableStreamBYOBReader(h)){ReadableStreamReaderGenericRelease(h);forwardReaderError(h=AcquireReadableStreamDefaultReader(t))}ReadableStreamDefaultReaderRead(h,{_chunkSteps:function(r){m((function(){d=!1;var o=r,h=r;if(!g&&!y)try{h=CloneAsUint8Array(r)}catch(r){ReadableByteStreamControllerError(l._readableStreamController,r);ReadableByteStreamControllerError(c._readableStreamController,r);u(ReadableStreamCancel(t,r));return}g||ReadableByteStreamControllerEnqueue(l._readableStreamController,o);y||ReadableByteStreamControllerEnqueue(c._readableStreamController,h)}))},_closeSteps:function(){d=!1;g||ReadableByteStreamControllerClose(l._readableStreamController);y||ReadableByteStreamControllerClose(c._readableStreamController);l._readableStreamController._pendingPullIntos.length>0&&ReadableByteStreamControllerRespond(l._readableStreamController,0);c._readableStreamController._pendingPullIntos.length>0&&ReadableByteStreamControllerRespond(c._readableStreamController,0);g&&y||u(void 0)},_errorSteps:function(){d=!1}})}function pullWithBYOBReader(r,o){if(IsReadableStreamDefaultReader(h)){ReadableStreamReaderGenericRelease(h);forwardReaderError(h=AcquireReadableStreamBYOBReader(t))}var v=o?c:l,S=o?l:c;ReadableStreamBYOBReaderRead(h,r,{_chunkSteps:function(r){m((function(){d=!1;var l=o?y:g;if(o?g:y)l||ReadableByteStreamControllerRespondWithNewView(v._readableStreamController,r);else{var c=void 0;try{c=CloneAsUint8Array(r)}catch(r){ReadableByteStreamControllerError(v._readableStreamController,r);ReadableByteStreamControllerError(S._readableStreamController,r);u(ReadableStreamCancel(t,r));return}l||ReadableByteStreamControllerRespondWithNewView(v._readableStreamController,r);ReadableByteStreamControllerEnqueue(S._readableStreamController,c)}}))},_closeSteps:function(t){d=!1;var r=o?y:g,l=o?g:y;r||ReadableByteStreamControllerClose(v._readableStreamController);l||ReadableByteStreamControllerClose(S._readableStreamController);if(void 0!==t){r||ReadableByteStreamControllerRespondWithNewView(v._readableStreamController,t);!l&&S._readableStreamController._pendingPullIntos.length>0&&ReadableByteStreamControllerRespond(S._readableStreamController,0)}r&&l||u(void 0)},_errorSteps:function(){d=!1}})}function pull1Algorithm(){if(d)return promiseResolvedWith(void 0);d=!0;var t=ReadableByteStreamControllerGetBYOBRequest(l._readableStreamController);null===t?pullWithDefaultReader():pullWithBYOBReader(t._view,!1);return promiseResolvedWith(void 0)}function pull2Algorithm(){if(d)return promiseResolvedWith(void 0);d=!0;var t=ReadableByteStreamControllerGetBYOBRequest(c._readableStreamController);null===t?pullWithDefaultReader():pullWithBYOBReader(t._view,!0);return promiseResolvedWith(void 0)}function cancel1Algorithm(l){g=!0;r=l;if(y){var c=CreateArrayFromList([r,o]),h=ReadableStreamCancel(t,c);u(h)}return v}function cancel2Algorithm(l){y=!0;o=l;if(g){var c=CreateArrayFromList([r,o]),h=ReadableStreamCancel(t,c);u(h)}return v}function startAlgorithm(){}l=CreateReadableByteStream(startAlgorithm,pull1Algorithm,cancel1Algorithm);c=CreateReadableByteStream(startAlgorithm,pull2Algorithm,cancel2Algorithm);forwardReaderError(h);return[l,c]}(t):function ReadableStreamDefaultTee(t,r){var o,l,c,u,h,d=AcquireReadableStreamDefaultReader(t),g=!1,y=!1,v=!1,S=newPromise((function(t){h=t}));function pullAlgorithm(){if(g)return promiseResolvedWith(void 0);g=!0;ReadableStreamDefaultReaderRead(d,{_chunkSteps:function(t){m((function(){g=!1;var r=t,o=t;y||ReadableStreamDefaultControllerEnqueue(c._readableStreamController,r);v||ReadableStreamDefaultControllerEnqueue(u._readableStreamController,o)}))},_closeSteps:function(){g=!1;y||ReadableStreamDefaultControllerClose(c._readableStreamController);v||ReadableStreamDefaultControllerClose(u._readableStreamController);y&&v||h(void 0)},_errorSteps:function(){g=!1}});return promiseResolvedWith(void 0)}function cancel1Algorithm(r){y=!0;o=r;if(v){var c=CreateArrayFromList([o,l]),u=ReadableStreamCancel(t,c);h(u)}return S}function cancel2Algorithm(r){v=!0;l=r;if(y){var c=CreateArrayFromList([o,l]),u=ReadableStreamCancel(t,c);h(u)}return S}function startAlgorithm(){}c=CreateReadableStream(startAlgorithm,pullAlgorithm,cancel1Algorithm);u=CreateReadableStream(startAlgorithm,pullAlgorithm,cancel2Algorithm);uponRejection(d._closedPromise,(function(t){ReadableStreamDefaultControllerError(c._readableStreamController,t);ReadableStreamDefaultControllerError(u._readableStreamController,t);y&&v||h(void 0)}));return[c,u]}(t)}function convertUnderlyingSourceCancelCallback(t,r,o){assertFunction(t,o);return function(o){return promiseCall(t,r,[o])}}function convertUnderlyingSourcePullCallback(t,r,o){assertFunction(t,o);return function(o){return promiseCall(t,r,[o])}}function convertUnderlyingSourceStartCallback(t,r,o){assertFunction(t,o);return function(o){return reflectCall(t,r,[o])}}function convertReadableStreamType(t,r){if("bytes"!=(t=""+t))throw new TypeError(r+" '"+t+"' is not a valid enumeration value for ReadableStreamType");return t}function convertReadableStreamReaderMode(t,r){if("byob"!=(t=""+t))throw new TypeError(r+" '"+t+"' is not a valid enumeration value for ReadableStreamReaderMode");return t}function convertPipeOptions(t,r){assertDictionary(t,r);var o=null==t?void 0:t.preventAbort,l=null==t?void 0:t.preventCancel,c=null==t?void 0:t.preventClose,u=null==t?void 0:t.signal;void 0!==u&&function assertAbortSignal(t,r){if(!function isAbortSignal(t){if("object"!=typeof t||null===t)return!1;try{return"boolean"==typeof t.aborted}catch(t){return!1}}(t))throw new TypeError(r+" is not an AbortSignal.")}(u,r+" has member 'signal' that");return{preventAbort:Boolean(o),preventCancel:Boolean(l),preventClose:Boolean(c),signal:u}}var z=function(){function ReadableStream(t,r){void 0===t&&(t={});void 0===r&&(r={});void 0===t?t=null:assertObject(t,"First parameter");var o=convertQueuingStrategy(r,"Second parameter"),l=function convertUnderlyingDefaultOrByteSource(t,r){assertDictionary(t,r);var o=t,l=null==o?void 0:o.autoAllocateChunkSize,c=null==o?void 0:o.cancel,u=null==o?void 0:o.pull,h=null==o?void 0:o.start,d=null==o?void 0:o.type;return{autoAllocateChunkSize:void 0===l?void 0:convertUnsignedLongLongWithEnforceRange(l,r+" has member 'autoAllocateChunkSize' that"),cancel:void 0===c?void 0:convertUnderlyingSourceCancelCallback(c,o,r+" has member 'cancel' that"),pull:void 0===u?void 0:convertUnderlyingSourcePullCallback(u,o,r+" has member 'pull' that"),start:void 0===h?void 0:convertUnderlyingSourceStartCallback(h,o,r+" has member 'start' that"),type:void 0===d?void 0:convertReadableStreamType(d,r+" has member 'type' that")}}(t,"First parameter");InitializeReadableStream(this);if("bytes"===l.type){if(void 0!==o.size)throw new RangeError("The strategy for a byte stream cannot have a size function");!function SetUpReadableByteStreamControllerFromUnderlyingSource(t,r,o){var l=Object.create(D.prototype),startAlgorithm=function(){},pullAlgorithm=function(){return promiseResolvedWith(void 0)},cancelAlgorithm=function(){return promiseResolvedWith(void 0)};void 0!==r.start&&(startAlgorithm=function(){return r.start(l)});void 0!==r.pull&&(pullAlgorithm=function(){return r.pull(l)});void 0!==r.cancel&&(cancelAlgorithm=function(t){return r.cancel(t)});var c=r.autoAllocateChunkSize;if(0===c)throw new TypeError("autoAllocateChunkSize must be greater than 0");SetUpReadableByteStreamController(t,l,startAlgorithm,pullAlgorithm,cancelAlgorithm,o,c)}(this,l,ExtractHighWaterMark(o,0))}else{var c=ExtractSizeAlgorithm(o);!function SetUpReadableStreamDefaultControllerFromUnderlyingSource(t,r,o,l){var c=Object.create(X.prototype),startAlgorithm=function(){},pullAlgorithm=function(){return promiseResolvedWith(void 0)},cancelAlgorithm=function(){return promiseResolvedWith(void 0)};void 0!==r.start&&(startAlgorithm=function(){return r.start(c)});void 0!==r.pull&&(pullAlgorithm=function(){return r.pull(c)});void 0!==r.cancel&&(cancelAlgorithm=function(t){return r.cancel(t)});SetUpReadableStreamDefaultController(t,c,startAlgorithm,pullAlgorithm,cancelAlgorithm,o,l)}(this,l,ExtractHighWaterMark(o,1),c)}}Object.defineProperty(ReadableStream.prototype,"locked",{get:function(){if(!IsReadableStream(this))throw streamBrandCheckException$1("locked");return IsReadableStreamLocked(this)},enumerable:!1,configurable:!0});ReadableStream.prototype.cancel=function(t){void 0===t&&(t=void 0);return IsReadableStream(this)?IsReadableStreamLocked(this)?promiseRejectedWith(new TypeError("Cannot cancel a stream that already has a reader")):ReadableStreamCancel(this,t):promiseRejectedWith(streamBrandCheckException$1("cancel"))};ReadableStream.prototype.getReader=function(t){void 0===t&&(t=void 0);if(!IsReadableStream(this))throw streamBrandCheckException$1("getReader");return void 0===function convertReaderOptions(t,r){assertDictionary(t,r);var o=null==t?void 0:t.mode;return{mode:void 0===o?void 0:convertReadableStreamReaderMode(o,r+" has member 'mode' that")}}(t,"First parameter").mode?AcquireReadableStreamDefaultReader(this):AcquireReadableStreamBYOBReader(this)};ReadableStream.prototype.pipeThrough=function(t,r){void 0===r&&(r={});if(!IsReadableStream(this))throw streamBrandCheckException$1("pipeThrough");assertRequiredArgument(t,1,"pipeThrough");var o=function convertReadableWritablePair(t,r){assertDictionary(t,r);var o=null==t?void 0:t.readable;assertRequiredField(o,"readable","ReadableWritablePair");assertReadableStream(o,r+" has member 'readable' that");var l=null==t?void 0:t.writable;assertRequiredField(l,"writable","ReadableWritablePair");assertWritableStream(l,r+" has member 'writable' that");return{readable:o,writable:l}}(t,"First parameter"),l=convertPipeOptions(r,"Second parameter");if(IsReadableStreamLocked(this))throw new TypeError("ReadableStream.prototype.pipeThrough cannot be used on a locked ReadableStream");if(IsWritableStreamLocked(o.writable))throw new TypeError("ReadableStream.prototype.pipeThrough cannot be used on a locked WritableStream");setPromiseIsHandledToTrue(ReadableStreamPipeTo(this,o.writable,l.preventClose,l.preventAbort,l.preventCancel,l.signal));return o.readable};ReadableStream.prototype.pipeTo=function(t,r){void 0===r&&(r={});if(!IsReadableStream(this))return promiseRejectedWith(streamBrandCheckException$1("pipeTo"));if(void 0===t)return promiseRejectedWith("Parameter 1 is required in 'pipeTo'.");if(!IsWritableStream(t))return promiseRejectedWith(new TypeError("ReadableStream.prototype.pipeTo's first argument must be a WritableStream"));var o;try{o=convertPipeOptions(r,"Second parameter")}catch(t){return promiseRejectedWith(t)}return IsReadableStreamLocked(this)?promiseRejectedWith(new TypeError("ReadableStream.prototype.pipeTo cannot be used on a locked ReadableStream")):IsWritableStreamLocked(t)?promiseRejectedWith(new TypeError("ReadableStream.prototype.pipeTo cannot be used on a locked WritableStream")):ReadableStreamPipeTo(this,t,o.preventClose,o.preventAbort,o.preventCancel,o.signal)};ReadableStream.prototype.tee=function(){if(!IsReadableStream(this))throw streamBrandCheckException$1("tee");return CreateArrayFromList(ReadableStreamTee(this))};ReadableStream.prototype.values=function(t){void 0===t&&(t=void 0);if(!IsReadableStream(this))throw streamBrandCheckException$1("values");return function AcquireReadableStreamAsyncIterator(t,r){var o=AcquireReadableStreamDefaultReader(t),l=new T(o,r),c=Object.create(R);c._asyncIteratorImpl=l;return c}(this,function convertIteratorOptions(t,r){assertDictionary(t,r);var o=null==t?void 0:t.preventCancel;return{preventCancel:Boolean(o)}}(t,"First parameter").preventCancel)};return ReadableStream}();Object.defineProperties(z.prototype,{cancel:{enumerable:!0},getReader:{enumerable:!0},pipeThrough:{enumerable:!0},pipeTo:{enumerable:!0},tee:{enumerable:!0},values:{enumerable:!0},locked:{enumerable:!0}});"symbol"==typeof r.toStringTag&&Object.defineProperty(z.prototype,r.toStringTag,{value:"ReadableStream",configurable:!0});"symbol"==typeof r.asyncIterator&&Object.defineProperty(z.prototype,r.asyncIterator,{value:z.prototype.values,writable:!0,configurable:!0});function CreateReadableStream(t,r,o,l,c){void 0===l&&(l=1);void 0===c&&(c=function(){return 1});var u=Object.create(z.prototype);InitializeReadableStream(u);SetUpReadableStreamDefaultController(u,Object.create(X.prototype),t,r,o,l,c);return u}function CreateReadableByteStream(t,r,o){var l=Object.create(z.prototype);InitializeReadableStream(l);SetUpReadableByteStreamController(l,Object.create(D.prototype),t,r,o,0,void 0);return l}function InitializeReadableStream(t){t._state="readable";t._reader=void 0;t._storedError=void 0;t._disturbed=!1}function IsReadableStream(t){return!!typeIsObject(t)&&!!Object.prototype.hasOwnProperty.call(t,"_readableStreamController")&&t instanceof z}function IsReadableStreamLocked(t){return void 0!==t._reader}function ReadableStreamCancel(t,r){t._disturbed=!0;if("closed"===t._state)return promiseResolvedWith(void 0);if("errored"===t._state)return promiseRejectedWith(t._storedError);ReadableStreamClose(t);var o=t._reader;if(void 0!==o&&IsReadableStreamBYOBReader(o)){o._readIntoRequests.forEach((function(t){t._closeSteps(void 0)}));o._readIntoRequests=new g}return transformPromiseWith(t._readableStreamController[S](r),noop)}function ReadableStreamClose(t){t._state="closed";var r=t._reader;if(void 0!==r){defaultReaderClosedPromiseResolve(r);if(IsReadableStreamDefaultReader(r)){r._readRequests.forEach((function(t){t._closeSteps()}));r._readRequests=new g}}}function ReadableStreamError(t,r){t._state="errored";t._storedError=r;var o=t._reader;if(void 0!==o){defaultReaderClosedPromiseReject(o,r);if(IsReadableStreamDefaultReader(o)){o._readRequests.forEach((function(t){t._errorSteps(r)}));o._readRequests=new g}else{o._readIntoRequests.forEach((function(t){t._errorSteps(r)}));o._readIntoRequests=new g}}}function streamBrandCheckException$1(t){return new TypeError("ReadableStream.prototype."+t+" can only be used on a ReadableStream")}function convertQueuingStrategyInit(t,r){assertDictionary(t,r);var o=null==t?void 0:t.highWaterMark;assertRequiredField(o,"highWaterMark","QueuingStrategyInit");return{highWaterMark:convertUnrestrictedDouble(o)}}var byteLengthSizeFunction=function(t){return t.byteLength};Object.defineProperty(byteLengthSizeFunction,"name",{value:"size",configurable:!0});var G=function(){function ByteLengthQueuingStrategy(t){assertRequiredArgument(t,1,"ByteLengthQueuingStrategy");t=convertQueuingStrategyInit(t,"First parameter");this._byteLengthQueuingStrategyHighWaterMark=t.highWaterMark}Object.defineProperty(ByteLengthQueuingStrategy.prototype,"highWaterMark",{get:function(){if(!IsByteLengthQueuingStrategy(this))throw byteLengthBrandCheckException("highWaterMark");return this._byteLengthQueuingStrategyHighWaterMark},enumerable:!1,configurable:!0});Object.defineProperty(ByteLengthQueuingStrategy.prototype,"size",{get:function(){if(!IsByteLengthQueuingStrategy(this))throw byteLengthBrandCheckException("size");return byteLengthSizeFunction},enumerable:!1,configurable:!0});return ByteLengthQueuingStrategy}();Object.defineProperties(G.prototype,{highWaterMark:{enumerable:!0},size:{enumerable:!0}});"symbol"==typeof r.toStringTag&&Object.defineProperty(G.prototype,r.toStringTag,{value:"ByteLengthQueuingStrategy",configurable:!0});function byteLengthBrandCheckException(t){return new TypeError("ByteLengthQueuingStrategy.prototype."+t+" can only be used on a ByteLengthQueuingStrategy")}function IsByteLengthQueuingStrategy(t){return!!typeIsObject(t)&&!!Object.prototype.hasOwnProperty.call(t,"_byteLengthQueuingStrategyHighWaterMark")&&t instanceof G}var countSizeFunction=function(){return 1};Object.defineProperty(countSizeFunction,"name",{value:"size",configurable:!0});var V=function(){function CountQueuingStrategy(t){assertRequiredArgument(t,1,"CountQueuingStrategy");t=convertQueuingStrategyInit(t,"First parameter");this._countQueuingStrategyHighWaterMark=t.highWaterMark}Object.defineProperty(CountQueuingStrategy.prototype,"highWaterMark",{get:function(){if(!IsCountQueuingStrategy(this))throw countBrandCheckException("highWaterMark");return this._countQueuingStrategyHighWaterMark},enumerable:!1,configurable:!0});Object.defineProperty(CountQueuingStrategy.prototype,"size",{get:function(){if(!IsCountQueuingStrategy(this))throw countBrandCheckException("size");return countSizeFunction},enumerable:!1,configurable:!0});return CountQueuingStrategy}();Object.defineProperties(V.prototype,{highWaterMark:{enumerable:!0},size:{enumerable:!0}});"symbol"==typeof r.toStringTag&&Object.defineProperty(V.prototype,r.toStringTag,{value:"CountQueuingStrategy",configurable:!0});function countBrandCheckException(t){return new TypeError("CountQueuingStrategy.prototype."+t+" can only be used on a CountQueuingStrategy")}function IsCountQueuingStrategy(t){return!!typeIsObject(t)&&!!Object.prototype.hasOwnProperty.call(t,"_countQueuingStrategyHighWaterMark")&&t instanceof V}function convertTransformerFlushCallback(t,r,o){assertFunction(t,o);return function(o){return promiseCall(t,r,[o])}}function convertTransformerStartCallback(t,r,o){assertFunction(t,o);return function(o){return reflectCall(t,r,[o])}}function convertTransformerTransformCallback(t,r,o){assertFunction(t,o);return function(o,l){return promiseCall(t,r,[o,l])}}var Y=function(){function TransformStream(t,r,o){void 0===t&&(t={});void 0===r&&(r={});void 0===o&&(o={});void 0===t&&(t=null);var l=convertQueuingStrategy(r,"Second parameter"),c=convertQueuingStrategy(o,"Third parameter"),u=function convertTransformer(t,r){assertDictionary(t,r);var o=null==t?void 0:t.flush,l=null==t?void 0:t.readableType,c=null==t?void 0:t.start,u=null==t?void 0:t.transform,h=null==t?void 0:t.writableType;return{flush:void 0===o?void 0:convertTransformerFlushCallback(o,t,r+" has member 'flush' that"),readableType:l,start:void 0===c?void 0:convertTransformerStartCallback(c,t,r+" has member 'start' that"),transform:void 0===u?void 0:convertTransformerTransformCallback(u,t,r+" has member 'transform' that"),writableType:h}}(t,"First parameter");if(void 0!==u.readableType)throw new RangeError("Invalid readableType specified");if(void 0!==u.writableType)throw new RangeError("Invalid writableType specified");var h,d=ExtractHighWaterMark(c,0),m=ExtractSizeAlgorithm(c),g=ExtractHighWaterMark(l,1),y=ExtractSizeAlgorithm(l);!function InitializeTransformStream(t,r,o,l,c,u){function startAlgorithm(){return r}function writeAlgorithm(r){return function TransformStreamDefaultSinkWriteAlgorithm(t,r){var o=t._transformStreamController;return t._backpressure?transformPromiseWith(t._backpressureChangePromise,(function(){var l=t._writable;if("erroring"===l._state)throw l._storedError;return TransformStreamDefaultControllerPerformTransform(o,r)})):TransformStreamDefaultControllerPerformTransform(o,r)}(t,r)}function abortAlgorithm(r){return function TransformStreamDefaultSinkAbortAlgorithm(t,r){TransformStreamError(t,r);return promiseResolvedWith(void 0)}(t,r)}function closeAlgorithm(){return function TransformStreamDefaultSinkCloseAlgorithm(t){var r=t._readable,o=t._transformStreamController,l=o._flushAlgorithm();TransformStreamDefaultControllerClearAlgorithms(o);return transformPromiseWith(l,(function(){if("errored"===r._state)throw r._storedError;ReadableStreamDefaultControllerClose(r._readableStreamController)}),(function(o){TransformStreamError(t,o);throw r._storedError}))}(t)}t._writable=function CreateWritableStream(t,r,o,l,c,u){void 0===c&&(c=1);void 0===u&&(u=function(){return 1});var h=Object.create(N.prototype);InitializeWritableStream(h);SetUpWritableStreamDefaultController(h,Object.create(W.prototype),t,r,o,l,c,u);return h}(startAlgorithm,writeAlgorithm,closeAlgorithm,abortAlgorithm,o,l);function pullAlgorithm(){return function TransformStreamDefaultSourcePullAlgorithm(t){TransformStreamSetBackpressure(t,!1);return t._backpressureChangePromise}(t)}function cancelAlgorithm(r){TransformStreamErrorWritableAndUnblockWrite(t,r);return promiseResolvedWith(void 0)}t._readable=CreateReadableStream(startAlgorithm,pullAlgorithm,cancelAlgorithm,c,u);t._backpressure=void 0;t._backpressureChangePromise=void 0;t._backpressureChangePromise_resolve=void 0;TransformStreamSetBackpressure(t,!0);t._transformStreamController=void 0}(this,newPromise((function(t){h=t})),g,y,d,m);!function SetUpTransformStreamDefaultControllerFromTransformer(t,r){var o=Object.create(K.prototype),transformAlgorithm=function(t){try{TransformStreamDefaultControllerEnqueue(o,t);return promiseResolvedWith(void 0)}catch(t){return promiseRejectedWith(t)}},flushAlgorithm=function(){return promiseResolvedWith(void 0)};void 0!==r.transform&&(transformAlgorithm=function(t){return r.transform(t,o)});void 0!==r.flush&&(flushAlgorithm=function(){return r.flush(o)});!function SetUpTransformStreamDefaultController(t,r,o,l){r._controlledTransformStream=t;t._transformStreamController=r;r._transformAlgorithm=o;r._flushAlgorithm=l}(t,o,transformAlgorithm,flushAlgorithm)}(this,u);void 0!==u.start?h(u.start(this._transformStreamController)):h(void 0)}Object.defineProperty(TransformStream.prototype,"readable",{get:function(){if(!IsTransformStream(this))throw streamBrandCheckException("readable");return this._readable},enumerable:!1,configurable:!0});Object.defineProperty(TransformStream.prototype,"writable",{get:function(){if(!IsTransformStream(this))throw streamBrandCheckException("writable");return this._writable},enumerable:!1,configurable:!0});return TransformStream}();Object.defineProperties(Y.prototype,{readable:{enumerable:!0},writable:{enumerable:!0}});"symbol"==typeof r.toStringTag&&Object.defineProperty(Y.prototype,r.toStringTag,{value:"TransformStream",configurable:!0});function IsTransformStream(t){return!!typeIsObject(t)&&!!Object.prototype.hasOwnProperty.call(t,"_transformStreamController")&&t instanceof Y}function TransformStreamError(t,r){ReadableStreamDefaultControllerError(t._readable._readableStreamController,r);TransformStreamErrorWritableAndUnblockWrite(t,r)}function TransformStreamErrorWritableAndUnblockWrite(t,r){TransformStreamDefaultControllerClearAlgorithms(t._transformStreamController);WritableStreamDefaultControllerErrorIfNeeded(t._writable._writableStreamController,r);t._backpressure&&TransformStreamSetBackpressure(t,!1)}function TransformStreamSetBackpressure(t,r){void 0!==t._backpressureChangePromise&&t._backpressureChangePromise_resolve();t._backpressureChangePromise=newPromise((function(r){t._backpressureChangePromise_resolve=r}));t._backpressure=r}var K=function(){function TransformStreamDefaultController(){throw new TypeError("Illegal constructor")}Object.defineProperty(TransformStreamDefaultController.prototype,"desiredSize",{get:function(){if(!IsTransformStreamDefaultController(this))throw defaultControllerBrandCheckException("desiredSize");return ReadableStreamDefaultControllerGetDesiredSize(this._controlledTransformStream._readable._readableStreamController)},enumerable:!1,configurable:!0});TransformStreamDefaultController.prototype.enqueue=function(t){void 0===t&&(t=void 0);if(!IsTransformStreamDefaultController(this))throw defaultControllerBrandCheckException("enqueue");TransformStreamDefaultControllerEnqueue(this,t)};TransformStreamDefaultController.prototype.error=function(t){void 0===t&&(t=void 0);if(!IsTransformStreamDefaultController(this))throw defaultControllerBrandCheckException("error");!function TransformStreamDefaultControllerError(t,r){TransformStreamError(t._controlledTransformStream,r)}(this,t)};TransformStreamDefaultController.prototype.terminate=function(){if(!IsTransformStreamDefaultController(this))throw defaultControllerBrandCheckException("terminate");!function TransformStreamDefaultControllerTerminate(t){var r=t._controlledTransformStream;ReadableStreamDefaultControllerClose(r._readable._readableStreamController);var o=new TypeError("TransformStream terminated");TransformStreamErrorWritableAndUnblockWrite(r,o)}(this)};return TransformStreamDefaultController}();Object.defineProperties(K.prototype,{enqueue:{enumerable:!0},error:{enumerable:!0},terminate:{enumerable:!0},desiredSize:{enumerable:!0}});"symbol"==typeof r.toStringTag&&Object.defineProperty(K.prototype,r.toStringTag,{value:"TransformStreamDefaultController",configurable:!0});function IsTransformStreamDefaultController(t){return!!typeIsObject(t)&&!!Object.prototype.hasOwnProperty.call(t,"_controlledTransformStream")&&t instanceof K}function TransformStreamDefaultControllerClearAlgorithms(t){t._transformAlgorithm=void 0;t._flushAlgorithm=void 0}function TransformStreamDefaultControllerEnqueue(t,r){var o=t._controlledTransformStream,l=o._readable._readableStreamController;if(!ReadableStreamDefaultControllerCanCloseOrEnqueue(l))throw new TypeError("Readable side is not in a state that permits enqueue");try{ReadableStreamDefaultControllerEnqueue(l,r)}catch(t){TransformStreamErrorWritableAndUnblockWrite(o,t);throw o._readable._storedError}var c=function ReadableStreamDefaultControllerHasBackpressure(t){return!ReadableStreamDefaultControllerShouldCallPull(t)}(l);c!==o._backpressure&&TransformStreamSetBackpressure(o,!0)}function TransformStreamDefaultControllerPerformTransform(t,r){return transformPromiseWith(t._transformAlgorithm(r),void 0,(function(r){TransformStreamError(t._controlledTransformStream,r);throw r}))}function defaultControllerBrandCheckException(t){return new TypeError("TransformStreamDefaultController.prototype."+t+" can only be used on a TransformStreamDefaultController")}function streamBrandCheckException(t){return new TypeError("TransformStream.prototype."+t+" can only be used on a TransformStream")}t.ByteLengthQueuingStrategy=G;t.CountQueuingStrategy=V;t.ReadableByteStreamController=D;t.ReadableStream=z;t.ReadableStreamBYOBReader=j;t.ReadableStreamBYOBRequest=M;t.ReadableStreamDefaultController=X;t.ReadableStreamDefaultReader=O;t.TransformStream=Y;t.TransformStreamDefaultController=K;t.WritableStream=N;t.WritableStreamDefaultController=W;t.WritableStreamDefaultWriter=U;Object.defineProperty(t,"__esModule",{value:!0})},o(r);var o},(t,r,o)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});r.clearPrimitiveCaches=function clearPrimitiveCaches(){m._clearCache();d._clearCache();v._clearCache()};r.isCmd=function isCmd(t,r){return t instanceof m&&(void 0===r||t.cmd===r)};r.isDict=function isDict(t,r){return t instanceof y&&(void 0===r||isName(t.get("Type"),r))};r.isName=isName;r.isRef=function isRef(t){return t instanceof v};r.isRefsEqual=function isRefsEqual(t,r){return t.num===r.num&&t.gen===r.gen};r.isStream=function isStream(t){return t instanceof u.BaseStream};r.RefSetCache=r.RefSet=r.Ref=r.Name=r.EOF=r.Dict=r.Cmd=void 0;var l=function _interopRequireDefault(t){return t&&t.__esModule?t:{default:t}}(o(2)),c=o(4),u=o(119);function _slicedToArray(t,r){return function _arrayWithHoles(t){if(Array.isArray(t))return t}(t)||function _iterableToArrayLimit(t,r){var o=null==t?null:"undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(null==o)return;var l,c,u=[],h=!0,d=!1;try{for(o=o.call(t);!(h=(l=o.next()).done);h=!0){u.push(l.value);if(r&&u.length===r)break}}catch(t){d=!0;c=t}finally{try{h||null==o.return||o.return()}finally{if(d)throw c}}return u}(t,r)||_unsupportedIterableToArray(t,r)||function _nonIterableRest(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function _createForOfIteratorHelper(t,r){var o="undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(!o){if(Array.isArray(t)||(o=_unsupportedIterableToArray(t))||r&&t&&"number"==typeof t.length){o&&(t=o);var l=0,c=function F(){};return{s:c,n:function n(){return l>=t.length?{done:!0}:{done:!1,value:t[l++]}},e:function e(t){throw t},f:c}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var u,h=!0,d=!1;return{s:function s(){o=o.call(t)},n:function n(){var t=o.next();h=t.done;return t},e:function e(t){d=!0;u=t},f:function f(){try{h||null==o.return||o.return()}finally{if(d)throw u}}}}function _unsupportedIterableToArray(t,r){if(t){if("string"==typeof t)return _arrayLikeToArray(t,r);var o=Object.prototype.toString.call(t).slice(8,-1);"Object"===o&&t.constructor&&(o=t.constructor.name);return"Map"===o||"Set"===o?Array.from(t):"Arguments"===o||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(o)?_arrayLikeToArray(t,r):void 0}}function _arrayLikeToArray(t,r){(null==r||r>t.length)&&(r=t.length);for(var o=0,l=new Array(r);o<r;o++)l[o]=t[o];return l}function asyncGeneratorStep(t,r,o,l,c,u,h){try{var d=t[u](h),m=d.value}catch(t){o(t);return}d.done?r(m):Promise.resolve(m).then(l,c)}function _classCallCheck(t,r){if(!(t instanceof r))throw new TypeError("Cannot call a class as a function")}function _defineProperties(t,r){for(var o=0;o<r.length;o++){var l=r[o];l.enumerable=l.enumerable||!1;l.configurable=!0;"value"in l&&(l.writable=!0);Object.defineProperty(t,l.key,l)}}function _createClass(t,r,o){r&&_defineProperties(t.prototype,r);o&&_defineProperties(t,o);return t}var h=Symbol("EOF");r.EOF=h;var d=function NameClosure(){var t=Object.create(null);return function(){function Name(t){_classCallCheck(this,Name);this.name=t}_createClass(Name,null,[{key:"get",value:function get(r){var o=t[r];return o||(t[r]=new Name(r))}},{key:"_clearCache",value:function _clearCache(){t=Object.create(null)}}]);return Name}()}();r.Name=d;var m=function CmdClosure(){var t=Object.create(null);return function(){function Cmd(t){_classCallCheck(this,Cmd);this.cmd=t}_createClass(Cmd,null,[{key:"get",value:function get(r){var o=t[r];return o||(t[r]=new Cmd(r))}},{key:"_clearCache",value:function _clearCache(){t=Object.create(null)}}]);return Cmd}()}();r.Cmd=m;var g=function nonSerializableClosure(){return g},y=function(){function Dict(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:null;_classCallCheck(this,Dict);this._map=Object.create(null);this.xref=t;this.objId=null;this.suppressEncryption=!1;this.__nonSerializable__=g}_createClass(Dict,[{key:"assignXref",value:function assignXref(t){this.xref=t}},{key:"size",get:function get(){return Object.keys(this._map).length}},{key:"get",value:function get(t,r,o){var l=this._map[t];void 0===l&&void 0!==r&&void 0===(l=this._map[r])&&void 0!==o&&(l=this._map[o]);return l instanceof v&&this.xref?this.xref.fetch(l,this.suppressEncryption):l}},{key:"getAsync",value:(t=function _asyncToGenerator(t){return function(){var r=this,o=arguments;return new Promise((function(l,c){var u=t.apply(r,o);function _next(t){asyncGeneratorStep(u,l,c,_next,_throw,"next",t)}function _throw(t){asyncGeneratorStep(u,l,c,_next,_throw,"throw",t)}_next(void 0)}))}}(l.default.mark((function _callee(t,r,o){var c;return l.default.wrap((function _callee$(l){for(;;)switch(l.prev=l.next){case 0:void 0===(c=this._map[t])&&void 0!==r&&void 0===(c=this._map[r])&&void 0!==o&&(c=this._map[o]);if(!(c instanceof v&&this.xref)){l.next=4;break}return l.abrupt("return",this.xref.fetchAsync(c,this.suppressEncryption));case 4:return l.abrupt("return",c);case 5:case"end":return l.stop()}}),_callee,this)}))),function getAsync(r,o,l){return t.apply(this,arguments)})},{key:"getArray",value:function getArray(t,r,o){var l=this._map[t];void 0===l&&void 0!==r&&void 0===(l=this._map[r])&&void 0!==o&&(l=this._map[o]);l instanceof v&&this.xref&&(l=this.xref.fetch(l,this.suppressEncryption));if(Array.isArray(l))for(var c=0,u=(l=l.slice()).length;c<u;c++)l[c]instanceof v&&this.xref&&(l[c]=this.xref.fetch(l[c],this.suppressEncryption));return l}},{key:"getRaw",value:function getRaw(t){return this._map[t]}},{key:"getKeys",value:function getKeys(){return Object.keys(this._map)}},{key:"getRawValues",value:function getRawValues(){return Object.values(this._map)}},{key:"set",value:function set(t,r){this._map[t]=r}},{key:"has",value:function has(t){return void 0!==this._map[t]}},{key:"forEach",value:function forEach(t){for(var r in this._map)t(r,this.get(r))}}],[{key:"empty",get:function get(){var t=new Dict(null);t.set=function(t,r){(0,c.unreachable)("Should not call `set` on the empty dictionary.")};return(0,c.shadow)(this,"empty",t)}},{key:"merge",value:function merge(t){var r,o=t.xref,l=t.dictArray,c=t.mergeSubDicts,u=void 0!==c&&c,h=new Dict(o),d=new Map,m=_createForOfIteratorHelper(l);try{for(m.s();!(r=m.n()).done;){var g=r.value;if(g instanceof Dict)for(var y=0,v=Object.entries(g._map);y<v.length;y++){var S=_slicedToArray(v[y],2),_=S[0],k=S[1],C=d.get(_);if(void 0===C){C=[];d.set(_,C)}else if(!(u&&k instanceof Dict))continue;C.push(k)}}}catch(t){m.e(t)}finally{m.f()}var w,x=_createForOfIteratorHelper(d);try{for(x.s();!(w=x.n()).done;){var O=_slicedToArray(w.value,2),T=O[0],R=O[1];if(1!==R.length&&R[0]instanceof Dict){var E,M=new Dict(o),D=_createForOfIteratorHelper(R);try{for(D.s();!(E=D.n()).done;)for(var j=E.value,L=0,N=Object.entries(j._map);L<N.length;L++){var U=_slicedToArray(N[L],2),H=U[0],W=U[1];void 0===M._map[H]&&(M._map[H]=W)}}catch(t){D.e(t)}finally{D.f()}M.size>0&&(h._map[T]=M)}else h._map[T]=R[0]}}catch(t){x.e(t)}finally{x.f()}d.clear();return h.size>0?h:Dict.empty}}]);var t;return Dict}();r.Dict=y;var v=function RefClosure(){var t=Object.create(null);return function(){function Ref(t,r){_classCallCheck(this,Ref);this.num=t;this.gen=r}_createClass(Ref,[{key:"toString",value:function toString(){return 0===this.gen?"".concat(this.num,"R"):"".concat(this.num,"R").concat(this.gen)}}],[{key:"get",value:function get(r,o){var l=0===o?"".concat(r,"R"):"".concat(r,"R").concat(o),c=t[l];return c||(t[l]=new Ref(r,o))}},{key:"_clearCache",value:function _clearCache(){t=Object.create(null)}}]);return Ref}()}();r.Ref=v;var S=function(){function RefSet(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:null;_classCallCheck(this,RefSet);this._set=new Set(t&&t._set)}_createClass(RefSet,[{key:"has",value:function has(t){return this._set.has(t.toString())}},{key:"put",value:function put(t){this._set.add(t.toString())}},{key:"remove",value:function remove(t){this._set.delete(t.toString())}},{key:"forEach",value:function forEach(t){var r,o=_createForOfIteratorHelper(this._set.values());try{for(o.s();!(r=o.n()).done;){t(r.value)}}catch(t){o.e(t)}finally{o.f()}}},{key:"clear",value:function clear(){this._set.clear()}}]);return RefSet}();r.RefSet=S;var _=function(){function RefSetCache(){_classCallCheck(this,RefSetCache);this._map=new Map}_createClass(RefSetCache,[{key:"size",get:function get(){return this._map.size}},{key:"get",value:function get(t){return this._map.get(t.toString())}},{key:"has",value:function has(t){return this._map.has(t.toString())}},{key:"put",value:function put(t,r){this._map.set(t.toString(),r)}},{key:"putAlias",value:function putAlias(t,r){this._map.set(t.toString(),this.get(r))}},{key:"forEach",value:function forEach(t){var r,o=_createForOfIteratorHelper(this._map.values());try{for(o.s();!(r=o.n()).done;){t(r.value)}}catch(t){o.e(t)}finally{o.f()}}},{key:"clear",value:function clear(){this._map.clear()}}]);return RefSetCache}();r.RefSetCache=_;function isName(t,r){return t instanceof d&&(void 0===r||t.name===r)}},(t,r,o)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});r.BaseStream=void 0;var l=o(4);function _defineProperties(t,r){for(var o=0;o<r.length;o++){var l=r[o];l.enumerable=l.enumerable||!1;l.configurable=!0;"value"in l&&(l.writable=!0);Object.defineProperty(t,l.key,l)}}var c=function(){function BaseStream(){!function _classCallCheck(t,r){if(!(t instanceof r))throw new TypeError("Cannot call a class as a function")}(this,BaseStream);this.constructor===BaseStream&&(0,l.unreachable)("Cannot initialize BaseStream.")}!function _createClass(t,r,o){r&&_defineProperties(t.prototype,r);o&&_defineProperties(t,o);return t}(BaseStream,[{key:"length",get:function get(){(0,l.unreachable)("Abstract getter `length` accessed")}},{key:"isEmpty",get:function get(){(0,l.unreachable)("Abstract getter `isEmpty` accessed")}},{key:"isDataLoaded",get:function get(){return(0,l.shadow)(this,"isDataLoaded",!0)}},{key:"getByte",value:function getByte(){(0,l.unreachable)("Abstract method `getByte` called")}},{key:"getBytes",value:function getBytes(t){(0,l.unreachable)("Abstract method `getBytes` called")}},{key:"peekByte",value:function peekByte(){var t=this.getByte();-1!==t&&this.pos--;return t}},{key:"peekBytes",value:function peekBytes(t){var r=arguments.length>1&&void 0!==arguments[1]&&arguments[1],o=this.getBytes(t,r);this.pos-=o.length;return o}},{key:"getUint16",value:function getUint16(){var t=this.getByte(),r=this.getByte();return-1===t||-1===r?-1:(t<<8)+r}},{key:"getInt32",value:function getInt32(){return(this.getByte()<<24)+(this.getByte()<<16)+(this.getByte()<<8)+this.getByte()}},{key:"getByteRange",value:function getByteRange(t,r){(0,l.unreachable)("Abstract method `getByteRange` called")}},{key:"getString",value:function getString(t){return(0,l.bytesToString)(this.getBytes(t,!1))}},{key:"skip",value:function skip(t){this.pos+=t||1}},{key:"reset",value:function reset(){(0,l.unreachable)("Abstract method `reset` called")}},{key:"moveStart",value:function moveStart(){(0,l.unreachable)("Abstract method `moveStart` called")}},{key:"makeSubStream",value:function makeSubStream(t,r){(0,l.unreachable)("Abstract method `makeSubStream` called")}},{key:"getBaseStreams",value:function getBaseStreams(){return null}}]);return BaseStream}();r.BaseStream=c},(t,r,o)=>{"use strict";function _typeof(t){_typeof="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function _typeof(t){return typeof t}:function _typeof(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t};return _typeof(t)}Object.defineProperty(r,"__esModule",{value:!0});r.NetworkPdfManager=r.LocalPdfManager=void 0;var l=function _interopRequireDefault(t){return t&&t.__esModule?t:{default:t}}(o(2)),c=o(4),u=o(121),h=o(122),d=o(124),m=o(123);function _inherits(t,r){if("function"!=typeof r&&null!==r)throw new TypeError("Super expression must either be null or a function");t.prototype=Object.create(r&&r.prototype,{constructor:{value:t,writable:!0,configurable:!0}});r&&_setPrototypeOf(t,r)}function _setPrototypeOf(t,r){_setPrototypeOf=Object.setPrototypeOf||function _setPrototypeOf(t,r){t.__proto__=r;return t};return _setPrototypeOf(t,r)}function _createSuper(t){var r=function _isNativeReflectConstruct(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){})));return!0}catch(t){return!1}}();return function _createSuperInternal(){var o,l=_getPrototypeOf(t);if(r){var c=_getPrototypeOf(this).constructor;o=Reflect.construct(l,arguments,c)}else o=l.apply(this,arguments);return _possibleConstructorReturn(this,o)}}function _possibleConstructorReturn(t,r){if(r&&("object"===_typeof(r)||"function"==typeof r))return r;if(void 0!==r)throw new TypeError("Derived constructors may only return object or undefined");return _assertThisInitialized(t)}function _assertThisInitialized(t){if(void 0===t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return t}function _getPrototypeOf(t){_getPrototypeOf=Object.setPrototypeOf?Object.getPrototypeOf:function _getPrototypeOf(t){return t.__proto__||Object.getPrototypeOf(t)};return _getPrototypeOf(t)}function asyncGeneratorStep(t,r,o,l,c,u,h){try{var d=t[u](h),m=d.value}catch(t){o(t);return}d.done?r(m):Promise.resolve(m).then(l,c)}function _asyncToGenerator(t){return function(){var r=this,o=arguments;return new Promise((function(l,c){var u=t.apply(r,o);function _next(t){asyncGeneratorStep(u,l,c,_next,_throw,"next",t)}function _throw(t){asyncGeneratorStep(u,l,c,_next,_throw,"throw",t)}_next(void 0)}))}}function _classCallCheck(t,r){if(!(t instanceof r))throw new TypeError("Cannot call a class as a function")}function _defineProperties(t,r){for(var o=0;o<r.length;o++){var l=r[o];l.enumerable=l.enumerable||!1;l.configurable=!0;"value"in l&&(l.writable=!0);Object.defineProperty(t,l.key,l)}}function _createClass(t,r,o){r&&_defineProperties(t.prototype,r);o&&_defineProperties(t,o);return t}function parseDocBaseUrl(t){if(t){var r=(0,c.createValidAbsoluteUrl)(t);if(r)return r.href;(0,c.warn)('Invalid absolute docBaseUrl: "'.concat(t,'".'))}return null}var g=function(){function BasePdfManager(){_classCallCheck(this,BasePdfManager);this.constructor===BasePdfManager&&(0,c.unreachable)("Cannot initialize BasePdfManager.")}_createClass(BasePdfManager,[{key:"docId",get:function get(){return this._docId}},{key:"password",get:function get(){return this._password}},{key:"docBaseUrl",get:function get(){return this._docBaseUrl}},{key:"onLoadedStream",value:function onLoadedStream(){(0,c.unreachable)("Abstract method `onLoadedStream` called")}},{key:"ensureDoc",value:function ensureDoc(t,r){return this.ensure(this.pdfDocument,t,r)}},{key:"ensureXRef",value:function ensureXRef(t,r){return this.ensure(this.pdfDocument.xref,t,r)}},{key:"ensureCatalog",value:function ensureCatalog(t,r){return this.ensure(this.pdfDocument.catalog,t,r)}},{key:"getPage",value:function getPage(t){return this.pdfDocument.getPage(t)}},{key:"fontFallback",value:function fontFallback(t,r){return this.pdfDocument.fontFallback(t,r)}},{key:"loadXfaFonts",value:function loadXfaFonts(t,r){return this.pdfDocument.loadXfaFonts(t,r)}},{key:"loadXfaImages",value:function loadXfaImages(){return this.pdfDocument.loadXfaImages()}},{key:"serializeXfaData",value:function serializeXfaData(t){return this.pdfDocument.serializeXfaData(t)}},{key:"cleanup",value:function cleanup(){var t=arguments.length>0&&void 0!==arguments[0]&&arguments[0];return this.pdfDocument.cleanup(t)}},{key:"ensure",value:(t=_asyncToGenerator(l.default.mark((function _callee(t,r,o){return l.default.wrap((function _callee$(t){for(;;)switch(t.prev=t.next){case 0:(0,c.unreachable)("Abstract method `ensure` called");case 1:case"end":return t.stop()}}),_callee)}))),function ensure(r,o,l){return t.apply(this,arguments)})},{key:"requestRange",value:function requestRange(t,r){(0,c.unreachable)("Abstract method `requestRange` called")}},{key:"requestLoadedStream",value:function requestLoadedStream(){(0,c.unreachable)("Abstract method `requestLoadedStream` called")}},{key:"sendProgressiveData",value:function sendProgressiveData(t){(0,c.unreachable)("Abstract method `sendProgressiveData` called")}},{key:"updatePassword",value:function updatePassword(t){this._password=t}},{key:"terminate",value:function terminate(t){(0,c.unreachable)("Abstract method `terminate` called")}}]);var t;return BasePdfManager}(),y=function(t){_inherits(LocalPdfManager,t);var r,o=_createSuper(LocalPdfManager);function LocalPdfManager(t,r,l,c,u,h){var g;_classCallCheck(this,LocalPdfManager);(g=o.call(this))._docId=t;g._password=l;g._docBaseUrl=parseDocBaseUrl(h);g.evaluatorOptions=c;g.enableXfa=u;var y=new m.Stream(r);g.pdfDocument=new d.PDFDocument(_assertThisInitialized(g),y);g._loadedStreamPromise=Promise.resolve(y);return g}_createClass(LocalPdfManager,[{key:"ensure",value:(r=_asyncToGenerator(l.default.mark((function _callee2(t,r,o){var c;return l.default.wrap((function _callee2$(l){for(;;)switch(l.prev=l.next){case 0:if("function"!=typeof(c=t[r])){l.next=3;break}return l.abrupt("return",c.apply(t,o));case 3:return l.abrupt("return",c);case 4:case"end":return l.stop()}}),_callee2)}))),function ensure(t,o,l){return r.apply(this,arguments)})},{key:"requestRange",value:function requestRange(t,r){return Promise.resolve()}},{key:"requestLoadedStream",value:function requestLoadedStream(){}},{key:"onLoadedStream",value:function onLoadedStream(){return this._loadedStreamPromise}},{key:"terminate",value:function terminate(t){}}]);return LocalPdfManager}(g);r.LocalPdfManager=y;var v=function(t){_inherits(NetworkPdfManager,t);var r,o=_createSuper(NetworkPdfManager);function NetworkPdfManager(t,r,l,c,h,m){var g;_classCallCheck(this,NetworkPdfManager);(g=o.call(this))._docId=t;g._password=l.password;g._docBaseUrl=parseDocBaseUrl(m);g.msgHandler=l.msgHandler;g.evaluatorOptions=c;g.enableXfa=h;g.streamManager=new u.ChunkedStreamManager(r,{msgHandler:l.msgHandler,length:l.length,disableAutoFetch:l.disableAutoFetch,rangeChunkSize:l.rangeChunkSize});g.pdfDocument=new d.PDFDocument(_assertThisInitialized(g),g.streamManager.getStream());return g}_createClass(NetworkPdfManager,[{key:"ensure",value:(r=_asyncToGenerator(l.default.mark((function _callee3(t,r,o){var c;return l.default.wrap((function _callee3$(l){for(;;)switch(l.prev=l.next){case 0:l.prev=0;if("function"!=typeof(c=t[r])){l.next=4;break}return l.abrupt("return",c.apply(t,o));case 4:return l.abrupt("return",c);case 7:l.prev=7;l.t0=l.catch(0);if(l.t0 instanceof h.MissingDataException){l.next=11;break}throw l.t0;case 11:l.next=13;return this.requestRange(l.t0.begin,l.t0.end);case 13:return l.abrupt("return",this.ensure(t,r,o));case 14:case"end":return l.stop()}}),_callee3,this,[[0,7]])}))),function ensure(t,o,l){return r.apply(this,arguments)})},{key:"requestRange",value:function requestRange(t,r){return this.streamManager.requestRange(t,r)}},{key:"requestLoadedStream",value:function requestLoadedStream(){this.streamManager.requestAllChunks()}},{key:"sendProgressiveData",value:function sendProgressiveData(t){this.streamManager.onReceiveData({chunk:t})}},{key:"onLoadedStream",value:function onLoadedStream(){return this.streamManager.onLoadedStream()}},{key:"terminate",value:function terminate(t){this.streamManager.abort(t)}}]);return NetworkPdfManager}(g);r.NetworkPdfManager=v},(t,r,o)=>{"use strict";function _typeof(t){_typeof="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function _typeof(t){return typeof t}:function _typeof(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t};return _typeof(t)}Object.defineProperty(r,"__esModule",{value:!0});r.ChunkedStreamManager=r.ChunkedStream=void 0;var l=o(4),c=o(122);function _createForOfIteratorHelper(t,r){var o="undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(!o){if(Array.isArray(t)||(o=function _unsupportedIterableToArray(t,r){if(!t)return;if("string"==typeof t)return _arrayLikeToArray(t,r);var o=Object.prototype.toString.call(t).slice(8,-1);"Object"===o&&t.constructor&&(o=t.constructor.name);if("Map"===o||"Set"===o)return Array.from(t);if("Arguments"===o||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(o))return _arrayLikeToArray(t,r)}(t))||r&&t&&"number"==typeof t.length){o&&(t=o);var l=0,c=function F(){};return{s:c,n:function n(){return l>=t.length?{done:!0}:{done:!1,value:t[l++]}},e:function e(t){throw t},f:c}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var u,h=!0,d=!1;return{s:function s(){o=o.call(t)},n:function n(){var t=o.next();h=t.done;return t},e:function e(t){d=!0;u=t},f:function f(){try{h||null==o.return||o.return()}finally{if(d)throw u}}}}function _arrayLikeToArray(t,r){(null==r||r>t.length)&&(r=t.length);for(var o=0,l=new Array(r);o<r;o++)l[o]=t[o];return l}function _classCallCheck(t,r){if(!(t instanceof r))throw new TypeError("Cannot call a class as a function")}function _defineProperties(t,r){for(var o=0;o<r.length;o++){var l=r[o];l.enumerable=l.enumerable||!1;l.configurable=!0;"value"in l&&(l.writable=!0);Object.defineProperty(t,l.key,l)}}function _createClass(t,r,o){r&&_defineProperties(t.prototype,r);o&&_defineProperties(t,o);return t}function _setPrototypeOf(t,r){_setPrototypeOf=Object.setPrototypeOf||function _setPrototypeOf(t,r){t.__proto__=r;return t};return _setPrototypeOf(t,r)}function _createSuper(t){var r=function _isNativeReflectConstruct(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){})));return!0}catch(t){return!1}}();return function _createSuperInternal(){var o,l=_getPrototypeOf(t);if(r){var c=_getPrototypeOf(this).constructor;o=Reflect.construct(l,arguments,c)}else o=l.apply(this,arguments);return _possibleConstructorReturn(this,o)}}function _possibleConstructorReturn(t,r){if(r&&("object"===_typeof(r)||"function"==typeof r))return r;if(void 0!==r)throw new TypeError("Derived constructors may only return object or undefined");return function _assertThisInitialized(t){if(void 0===t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return t}(t)}function _getPrototypeOf(t){_getPrototypeOf=Object.setPrototypeOf?Object.getPrototypeOf:function _getPrototypeOf(t){return t.__proto__||Object.getPrototypeOf(t)};return _getPrototypeOf(t)}var u=function(t){!function _inherits(t,r){if("function"!=typeof r&&null!==r)throw new TypeError("Super expression must either be null or a function");t.prototype=Object.create(r&&r.prototype,{constructor:{value:t,writable:!0,configurable:!0}});r&&_setPrototypeOf(t,r)}(ChunkedStream,t);var r=_createSuper(ChunkedStream);function ChunkedStream(t,o,l){var c;_classCallCheck(this,ChunkedStream);(c=r.call(this,new Uint8Array(t),0,t,null)).chunkSize=o;c._loadedChunks=new Set;c.numChunks=Math.ceil(t/o);c.manager=l;c.progressiveDataLength=0;c.lastSuccessfulEnsureByteChunk=-1;return c}_createClass(ChunkedStream,[{key:"getMissingChunks",value:function getMissingChunks(){for(var t=[],r=0,o=this.numChunks;r<o;++r)this._loadedChunks.has(r)||t.push(r);return t}},{key:"numChunksLoaded",get:function get(){return this._loadedChunks.size}},{key:"isDataLoaded",get:function get(){return this.numChunksLoaded===this.numChunks}},{key:"onReceiveData",value:function onReceiveData(t,r){var o=this.chunkSize;if(t%o!=0)throw new Error("Bad begin offset: ".concat(t));var l=t+r.byteLength;if(l%o!=0&&l!==this.bytes.length)throw new Error("Bad end offset: ".concat(l));this.bytes.set(new Uint8Array(r),t);for(var c=Math.floor(t/o),u=Math.floor((l-1)/o)+1,h=c;h<u;++h)this._loadedChunks.add(h)}},{key:"onReceiveProgressiveData",value:function onReceiveProgressiveData(t){var r=this.progressiveDataLength,o=Math.floor(r/this.chunkSize);this.bytes.set(new Uint8Array(t),r);r+=t.byteLength;this.progressiveDataLength=r;for(var l=r>=this.end?this.numChunks:Math.floor(r/this.chunkSize),c=o;c<l;++c)this._loadedChunks.add(c)}},{key:"ensureByte",value:function ensureByte(t){if(!(t<this.progressiveDataLength)){var r=Math.floor(t/this.chunkSize);if(r!==this.lastSuccessfulEnsureByteChunk){if(!this._loadedChunks.has(r))throw new c.MissingDataException(t,t+1);this.lastSuccessfulEnsureByteChunk=r}}}},{key:"ensureRange",value:function ensureRange(t,r){if(!(t>=r||r<=this.progressiveDataLength))for(var o=this.chunkSize,l=Math.floor(t/o),u=Math.floor((r-1)/o)+1,h=l;h<u;++h)if(!this._loadedChunks.has(h))throw new c.MissingDataException(t,r)}},{key:"nextEmptyChunk",value:function nextEmptyChunk(t){for(var r=this.numChunks,o=0;o<r;++o){var l=(t+o)%r;if(!this._loadedChunks.has(l))return l}return null}},{key:"hasChunk",value:function hasChunk(t){return this._loadedChunks.has(t)}},{key:"getByte",value:function getByte(){var t=this.pos;if(t>=this.end)return-1;t>=this.progressiveDataLength&&this.ensureByte(t);return this.bytes[this.pos++]}},{key:"getBytes",value:function getBytes(t){var r=arguments.length>1&&void 0!==arguments[1]&&arguments[1],o=this.bytes,l=this.pos,c=this.end;if(!t){c>this.progressiveDataLength&&this.ensureRange(l,c);var u=o.subarray(l,c);return r?new Uint8ClampedArray(u):u}var h=l+t;h>c&&(h=c);h>this.progressiveDataLength&&this.ensureRange(l,h);this.pos=h;var d=o.subarray(l,h);return r?new Uint8ClampedArray(d):d}},{key:"getByteRange",value:function getByteRange(t,r){t<0&&(t=0);r>this.end&&(r=this.end);r>this.progressiveDataLength&&this.ensureRange(t,r);return this.bytes.subarray(t,r)}},{key:"makeSubStream",value:function makeSubStream(t,r){var o=arguments.length>2&&void 0!==arguments[2]?arguments[2]:null;r?t+r>this.progressiveDataLength&&this.ensureRange(t,t+r):t>=this.progressiveDataLength&&this.ensureByte(t);function ChunkedStreamSubstream(){}ChunkedStreamSubstream.prototype=Object.create(this);ChunkedStreamSubstream.prototype.getMissingChunks=function(){for(var t=this.chunkSize,r=Math.floor(this.start/t),o=Math.floor((this.end-1)/t)+1,l=[],c=r;c<o;++c)this._loadedChunks.has(c)||l.push(c);return l};Object.defineProperty(ChunkedStreamSubstream.prototype,"isDataLoaded",{get:function get(){return this.numChunksLoaded===this.numChunks||0===this.getMissingChunks().length},configurable:!0});var l=new ChunkedStreamSubstream;l.pos=l.start=t;l.end=t+r||this.end;l.dict=o;return l}},{key:"getBaseStreams",value:function getBaseStreams(){return[this]}}]);return ChunkedStream}(o(123).Stream);r.ChunkedStream=u;var h=function(){function ChunkedStreamManager(t,r){_classCallCheck(this,ChunkedStreamManager);this.length=r.length;this.chunkSize=r.rangeChunkSize;this.stream=new u(this.length,this.chunkSize,this);this.pdfNetworkStream=t;this.disableAutoFetch=r.disableAutoFetch;this.msgHandler=r.msgHandler;this.currRequestId=0;this._chunksNeededByRequest=new Map;this._requestsByChunk=new Map;this._promisesByRequest=new Map;this.progressiveDataLength=0;this.aborted=!1;this._loadedStreamCapability=(0,l.createPromiseCapability)()}_createClass(ChunkedStreamManager,[{key:"onLoadedStream",value:function onLoadedStream(){return this._loadedStreamCapability.promise}},{key:"sendRequest",value:function sendRequest(t,r){var o=this,c=this.pdfNetworkStream.getRangeReader(t,r);c.isStreamingSupported||(c.onProgress=this.onProgress.bind(this));var u=[],h=0;return new Promise((function(t,r){c.read().then((function readChunk(d){try{if(!d.done){var m=d.value;u.push(m);h+=(0,l.arrayByteLength)(m);c.isStreamingSupported&&o.onProgress({loaded:h});c.read().then(readChunk,r);return}var g=(0,l.arraysToBytes)(u);u=null;t(g)}catch(t){r(t)}}),r)})).then((function(r){o.aborted||o.onReceiveData({chunk:r,begin:t})}))}},{key:"requestAllChunks",value:function requestAllChunks(){var t=this.stream.getMissingChunks();this._requestChunks(t);return this._loadedStreamCapability.promise}},{key:"_requestChunks",value:function _requestChunks(t){var r=this,o=this.currRequestId++,c=new Set;this._chunksNeededByRequest.set(o,c);var u,h=_createForOfIteratorHelper(t);try{for(h.s();!(u=h.n()).done;){var d=u.value;this.stream.hasChunk(d)||c.add(d)}}catch(t){h.e(t)}finally{h.f()}if(0===c.size)return Promise.resolve();var m=(0,l.createPromiseCapability)();this._promisesByRequest.set(o,m);var g,y=[],v=_createForOfIteratorHelper(c);try{for(v.s();!(g=v.n()).done;){var S=g.value,_=this._requestsByChunk.get(S);if(!_){_=[];this._requestsByChunk.set(S,_);y.push(S)}_.push(o)}}catch(t){v.e(t)}finally{v.f()}if(y.length>0){var k,C=_createForOfIteratorHelper(this.groupChunks(y));try{for(C.s();!(k=C.n()).done;){var w=k.value,x=w.beginChunk*this.chunkSize,O=Math.min(w.endChunk*this.chunkSize,this.length);this.sendRequest(x,O).catch(m.reject)}}catch(t){C.e(t)}finally{C.f()}}return m.promise.catch((function(t){if(!r.aborted)throw t}))}},{key:"getStream",value:function getStream(){return this.stream}},{key:"requestRange",value:function requestRange(t,r){r=Math.min(r,this.length);for(var o=this.getBeginChunk(t),l=this.getEndChunk(r),c=[],u=o;u<l;++u)c.push(u);return this._requestChunks(c)}},{key:"requestRanges",value:function requestRanges(){var t,r=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],o=[],l=_createForOfIteratorHelper(r);try{for(l.s();!(t=l.n()).done;)for(var c=t.value,u=this.getBeginChunk(c.begin),h=this.getEndChunk(c.end),d=u;d<h;++d)o.includes(d)||o.push(d)}catch(t){l.e(t)}finally{l.f()}o.sort((function(t,r){return t-r}));return this._requestChunks(o)}},{key:"groupChunks",value:function groupChunks(t){for(var r=[],o=-1,l=-1,c=0,u=t.length;c<u;++c){var h=t[c];o<0&&(o=h);if(l>=0&&l+1!==h){r.push({beginChunk:o,endChunk:l+1});o=h}c+1===t.length&&r.push({beginChunk:o,endChunk:h+1});l=h}return r}},{key:"onProgress",value:function onProgress(t){this.msgHandler.send("DocProgress",{loaded:this.stream.numChunksLoaded*this.chunkSize+t.loaded,total:this.length})}},{key:"onReceiveData",value:function onReceiveData(t){var r=t.chunk,o=void 0===t.begin,l=o?this.progressiveDataLength:t.begin,c=l+r.byteLength,u=Math.floor(l/this.chunkSize),h=c<this.length?Math.floor(c/this.chunkSize):Math.ceil(c/this.chunkSize);if(o){this.stream.onReceiveProgressiveData(r);this.progressiveDataLength=c}else this.stream.onReceiveData(l,r);this.stream.isDataLoaded&&this._loadedStreamCapability.resolve(this.stream);for(var d=[],m=u;m<h;++m){var g=this._requestsByChunk.get(m);if(g){this._requestsByChunk.delete(m);var y,v=_createForOfIteratorHelper(g);try{for(v.s();!(y=v.n()).done;){var S=y.value,_=this._chunksNeededByRequest.get(S);_.has(m)&&_.delete(m);_.size>0||d.push(S)}}catch(t){v.e(t)}finally{v.f()}}}if(!this.disableAutoFetch&&0===this._requestsByChunk.size){var k;if(1===this.stream.numChunksLoaded){var C=this.stream.numChunks-1;this.stream.hasChunk(C)||(k=C)}else k=this.stream.nextEmptyChunk(h);Number.isInteger(k)&&this._requestChunks([k])}for(var w=0,x=d;w<x.length;w++){var O=x[w],T=this._promisesByRequest.get(O);this._promisesByRequest.delete(O);T.resolve()}this.msgHandler.send("DocProgress",{loaded:this.stream.numChunksLoaded*this.chunkSize,total:this.length})}},{key:"onError",value:function onError(t){this._loadedStreamCapability.reject(t)}},{key:"getBeginChunk",value:function getBeginChunk(t){return Math.floor(t/this.chunkSize)}},{key:"getEndChunk",value:function getEndChunk(t){return Math.floor((t-1)/this.chunkSize)+1}},{key:"abort",value:function abort(t){this.aborted=!0;this.pdfNetworkStream&&this.pdfNetworkStream.cancelAllRequests(t);var r,o=_createForOfIteratorHelper(this._promisesByRequest.values());try{for(o.s();!(r=o.n()).done;){r.value.reject(t)}}catch(t){o.e(t)}finally{o.f()}}}]);return ChunkedStreamManager}();r.ChunkedStreamManager=h},(t,r,o)=>{"use strict";function _typeof(t){_typeof="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function _typeof(t){return typeof t}:function _typeof(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t};return _typeof(t)}Object.defineProperty(r,"__esModule",{value:!0});r.collectActions=function collectActions(t,r,o){var u=Object.create(null),h=getInheritableProperty({dict:r,key:"AA",stopWhenFound:!1});if(h)for(var d=h.length-1;d>=0;d--){var m=h[d];if(m instanceof c.Dict){var g,y=_createForOfIteratorHelper(m.getKeys());try{for(y.s();!(g=y.n()).done;){var v=g.value,S=o[v];if(S){var _=m.getRaw(v),k=new c.RefSet,C=[];_collectJS(_,t,C,k);C.length>0&&(u[S]=C)}}}catch(t){y.e(t)}finally{y.f()}}}if(r.has("A")){var w=r.get("A"),x=new c.RefSet,O=[];_collectJS(w,t,O,x);O.length>0&&(u.Action=O)}return(0,l.objectSize)(u)>0?u:null};r.encodeToXmlString=function encodeToXmlString(t){for(var r=[],o=0,l=0,c=t.length;l<c;l++){var u=t.codePointAt(l);if(32<=u&&u<=126){var h=y[u];if(h){o<l&&r.push(t.substring(o,l));r.push(h);o=l+1}}else{o<l&&r.push(t.substring(o,l));r.push("&#x".concat(u.toString(16).toUpperCase(),";"));u>55295&&(u<57344||u>65533)&&l++;o=l+1}}if(0===r.length)return t;o<t.length&&r.push(t.substring(o,t.length));return r.join("")};r.escapePDFName=function escapePDFName(t){for(var r=[],o=0,l=0,c=t.length;l<c;l++){var u=t.charCodeAt(l);if(u<33||u>126||35===u||40===u||41===u||60===u||62===u||91===u||93===u||123===u||125===u||47===u||37===u){o<l&&r.push(t.substring(o,l));r.push("#".concat(u.toString(16)));o=l+1}}if(0===r.length)return t;o<t.length&&r.push(t.substring(o,t.length));return r.join("")};r.getArrayLookupTableFactory=function getArrayLookupTableFactory(t){var r;return function(){if(t){var o=t();t=null;r=Object.create(null);for(var l=0,c=o.length;l<c;l+=2)r[o[l]]=o[l+1];o=null}return r}};r.getInheritableProperty=getInheritableProperty;r.getLookupTableFactory=function getLookupTableFactory(t){var r;return function(){if(t){r=Object.create(null);t(r);t=null}return r}};r.isWhiteSpace=function isWhiteSpace(t){return 32===t||9===t||13===t||10===t};r.log2=function log2(t){if(t<=0)return 0;return Math.ceil(Math.log2(t))};r.parseXFAPath=function parseXFAPath(t){var r=/(.+)\[(\d+)\]$/;return t.split(".").map((function(t){var o=t.match(r);return o?{name:o[1],pos:parseInt(o[2],10)}:{name:t,pos:0}}))};r.readInt8=function readInt8(t,r){return t[r]<<24>>24};r.readUint16=function readUint16(t,r){return t[r]<<8|t[r+1]};r.readUint32=function readUint32(t,r){return(t[r]<<24|t[r+1]<<16|t[r+2]<<8|t[r+3])>>>0};r.recoverJsURL=function recoverJsURL(t){var r=new RegExp("^\\s*("+["app.launchURL","window.open","xfa.host.gotoURL"].join("|").split(".").join("\\.")+")\\((?:'|\")([^'\"]*)(?:'|\")(?:,\\s*(\\w+)\\)|\\))","i").exec(t);if(r&&r[2]){var o=r[2],l=!1;"true"===r[3]&&"app.launchURL"===r[1]&&(l=!0);return{url:o,newWindow:l}}return null};r.toRomanNumerals=function toRomanNumerals(t){var r=arguments.length>1&&void 0!==arguments[1]&&arguments[1];(0,l.assert)(Number.isInteger(t)&&t>0,"The number should be a positive integer.");var o,c=[];for(;t>=1e3;){t-=1e3;c.push("M")}o=t/100|0;t%=100;c.push(g[o]);o=t/10|0;t%=10;c.push(g[10+o]);c.push(g[20+t]);var u=c.join("");return r?u.toLowerCase():u};r.validateCSSFont=function validateCSSFont(t){var r=new Set(["100","200","300","400","500","600","700","800","900","1000","normal","bold","bolder","lighter"]),o=t.fontFamily,c=t.fontWeight,u=t.italicAngle;if(/^".*"$/.test(o)){if(/[^\\]"/.test(o.slice(1,o.length-1))){(0,l.warn)('XFA - FontFamily contains some unescaped ": '.concat(o,"."));return!1}}else if(/^'.*'$/.test(o)){if(/[^\\]'/.test(o.slice(1,o.length-1))){(0,l.warn)("XFA - FontFamily contains some unescaped ': ".concat(o,"."));return!1}}else{var h,d=_createForOfIteratorHelper(o.split(/[ \t]+/));try{for(d.s();!(h=d.n()).done;){var m=h.value;if(/^(\d|(-(\d|-)))/.test(m)||!/^[\w-\\]+$/.test(m)){(0,l.warn)("XFA - FontFamily contains some invalid <custom-ident>: ".concat(o,"."));return!1}}}catch(t){d.e(t)}finally{d.f()}}var g=c?c.toString():"";t.fontWeight=r.has(g)?g:"400";var y=parseFloat(u);t.italicAngle=isNaN(y)||y<-90||y>90?"14":u.toString();return!0};r.XRefParseException=r.XRefEntryException=r.ParserEOFException=r.MissingDataException=void 0;var l=o(4),c=o(118);function _createForOfIteratorHelper(t,r){var o="undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(!o){if(Array.isArray(t)||(o=function _unsupportedIterableToArray(t,r){if(!t)return;if("string"==typeof t)return _arrayLikeToArray(t,r);var o=Object.prototype.toString.call(t).slice(8,-1);"Object"===o&&t.constructor&&(o=t.constructor.name);if("Map"===o||"Set"===o)return Array.from(t);if("Arguments"===o||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(o))return _arrayLikeToArray(t,r)}(t))||r&&t&&"number"==typeof t.length){o&&(t=o);var l=0,c=function F(){};return{s:c,n:function n(){return l>=t.length?{done:!0}:{done:!1,value:t[l++]}},e:function e(t){throw t},f:c}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var u,h=!0,d=!1;return{s:function s(){o=o.call(t)},n:function n(){var t=o.next();h=t.done;return t},e:function e(t){d=!0;u=t},f:function f(){try{h||null==o.return||o.return()}finally{if(d)throw u}}}}function _arrayLikeToArray(t,r){(null==r||r>t.length)&&(r=t.length);for(var o=0,l=new Array(r);o<r;o++)l[o]=t[o];return l}function _classCallCheck(t,r){if(!(t instanceof r))throw new TypeError("Cannot call a class as a function")}function _inherits(t,r){if("function"!=typeof r&&null!==r)throw new TypeError("Super expression must either be null or a function");t.prototype=Object.create(r&&r.prototype,{constructor:{value:t,writable:!0,configurable:!0}});r&&_setPrototypeOf(t,r)}function _setPrototypeOf(t,r){_setPrototypeOf=Object.setPrototypeOf||function _setPrototypeOf(t,r){t.__proto__=r;return t};return _setPrototypeOf(t,r)}function _createSuper(t){var r=function _isNativeReflectConstruct(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){})));return!0}catch(t){return!1}}();return function _createSuperInternal(){var o,l=_getPrototypeOf(t);if(r){var c=_getPrototypeOf(this).constructor;o=Reflect.construct(l,arguments,c)}else o=l.apply(this,arguments);return _possibleConstructorReturn(this,o)}}function _possibleConstructorReturn(t,r){if(r&&("object"===_typeof(r)||"function"==typeof r))return r;if(void 0!==r)throw new TypeError("Derived constructors may only return object or undefined");return function _assertThisInitialized(t){if(void 0===t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return t}(t)}function _getPrototypeOf(t){_getPrototypeOf=Object.setPrototypeOf?Object.getPrototypeOf:function _getPrototypeOf(t){return t.__proto__||Object.getPrototypeOf(t)};return _getPrototypeOf(t)}var u=function(t){_inherits(MissingDataException,t);var r=_createSuper(MissingDataException);function MissingDataException(t,o){var l;_classCallCheck(this,MissingDataException);(l=r.call(this,"Missing data [".concat(t,", ").concat(o,")"),"MissingDataException")).begin=t;l.end=o;return l}return MissingDataException}(l.BaseException);r.MissingDataException=u;var h=function(t){_inherits(ParserEOFException,t);var r=_createSuper(ParserEOFException);function ParserEOFException(t){_classCallCheck(this,ParserEOFException);return r.call(this,t,"ParserEOFException")}return ParserEOFException}(l.BaseException);r.ParserEOFException=h;var d=function(t){_inherits(XRefEntryException,t);var r=_createSuper(XRefEntryException);function XRefEntryException(t){_classCallCheck(this,XRefEntryException);return r.call(this,t,"XRefEntryException")}return XRefEntryException}(l.BaseException);r.XRefEntryException=d;var m=function(t){_inherits(XRefParseException,t);var r=_createSuper(XRefParseException);function XRefParseException(t){_classCallCheck(this,XRefParseException);return r.call(this,t,"XRefParseException")}return XRefParseException}(l.BaseException);r.XRefParseException=m;function getInheritableProperty(t){for(var r,o=t.dict,l=t.key,u=t.getArray,h=void 0!==u&&u,d=t.stopWhenFound,m=void 0===d||d,g=new c.RefSet;o instanceof c.Dict&&(!o.objId||!g.has(o.objId));){o.objId&&g.put(o.objId);var y=h?o.getArray(l):o.get(l);if(void 0!==y){if(m)return y;r||(r=[]);r.push(y)}o=o.get("Parent")}return r}var g=["","C","CC","CCC","CD","D","DC","DCC","DCCC","CM","","X","XX","XXX","XL","L","LX","LXX","LXXX","XC","","I","II","III","IV","V","VI","VII","VIII","IX"];function _collectJS(t,r,o,u){if(t){var h=null;if((0,c.isRef)(t)){if(u.has(t))return;h=t;u.put(h);t=r.fetch(t)}if(Array.isArray(t)){var d,m=_createForOfIteratorHelper(t);try{for(m.s();!(d=m.n()).done;){_collectJS(d.value,r,o,u)}}catch(t){m.e(t)}finally{m.f()}}else if(t instanceof c.Dict){if((0,c.isName)(t.get("S"),"JavaScript")&&t.has("JS")){var g,y=t.get("JS");g=(0,c.isStream)(y)?y.getString():y;(g=(0,l.stringToPDFString)(g))&&o.push(g)}_collectJS(t.getRaw("Next"),r,o,u)}h&&u.remove(h)}}var y={60:"<",62:">",38:"&",34:""",39:"'"}},(t,r,o)=>{"use strict";function _typeof(t){_typeof="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function _typeof(t){return typeof t}:function _typeof(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t};return _typeof(t)}Object.defineProperty(r,"__esModule",{value:!0});r.StringStream=r.Stream=r.NullStream=void 0;var l=o(119),c=o(4);function _classCallCheck(t,r){if(!(t instanceof r))throw new TypeError("Cannot call a class as a function")}function _defineProperties(t,r){for(var o=0;o<r.length;o++){var l=r[o];l.enumerable=l.enumerable||!1;l.configurable=!0;"value"in l&&(l.writable=!0);Object.defineProperty(t,l.key,l)}}function _inherits(t,r){if("function"!=typeof r&&null!==r)throw new TypeError("Super expression must either be null or a function");t.prototype=Object.create(r&&r.prototype,{constructor:{value:t,writable:!0,configurable:!0}});r&&_setPrototypeOf(t,r)}function _setPrototypeOf(t,r){_setPrototypeOf=Object.setPrototypeOf||function _setPrototypeOf(t,r){t.__proto__=r;return t};return _setPrototypeOf(t,r)}function _createSuper(t){var r=function _isNativeReflectConstruct(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){})));return!0}catch(t){return!1}}();return function _createSuperInternal(){var o,l=_getPrototypeOf(t);if(r){var c=_getPrototypeOf(this).constructor;o=Reflect.construct(l,arguments,c)}else o=l.apply(this,arguments);return _possibleConstructorReturn(this,o)}}function _possibleConstructorReturn(t,r){if(r&&("object"===_typeof(r)||"function"==typeof r))return r;if(void 0!==r)throw new TypeError("Derived constructors may only return object or undefined");return function _assertThisInitialized(t){if(void 0===t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return t}(t)}function _getPrototypeOf(t){_getPrototypeOf=Object.setPrototypeOf?Object.getPrototypeOf:function _getPrototypeOf(t){return t.__proto__||Object.getPrototypeOf(t)};return _getPrototypeOf(t)}var u=function(t){_inherits(Stream,t);var r=_createSuper(Stream);function Stream(t,o,l,c){var u;_classCallCheck(this,Stream);(u=r.call(this)).bytes=t instanceof Uint8Array?t:new Uint8Array(t);u.start=o||0;u.pos=u.start;u.end=o+l||u.bytes.length;u.dict=c;return u}!function _createClass(t,r,o){r&&_defineProperties(t.prototype,r);o&&_defineProperties(t,o);return t}(Stream,[{key:"length",get:function get(){return this.end-this.start}},{key:"isEmpty",get:function get(){return 0===this.length}},{key:"getByte",value:function getByte(){return this.pos>=this.end?-1:this.bytes[this.pos++]}},{key:"getBytes",value:function getBytes(t){var r=arguments.length>1&&void 0!==arguments[1]&&arguments[1],o=this.bytes,l=this.pos,c=this.end;if(!t){var u=o.subarray(l,c);return r?new Uint8ClampedArray(u):u}var h=l+t;h>c&&(h=c);this.pos=h;var d=o.subarray(l,h);return r?new Uint8ClampedArray(d):d}},{key:"getByteRange",value:function getByteRange(t,r){t<0&&(t=0);r>this.end&&(r=this.end);return this.bytes.subarray(t,r)}},{key:"reset",value:function reset(){this.pos=this.start}},{key:"moveStart",value:function moveStart(){this.start=this.pos}},{key:"makeSubStream",value:function makeSubStream(t,r){var o=arguments.length>2&&void 0!==arguments[2]?arguments[2]:null;return new Stream(this.bytes.buffer,t,r,o)}}]);return Stream}(l.BaseStream);r.Stream=u;var h=function(t){_inherits(StringStream,t);var r=_createSuper(StringStream);function StringStream(t){_classCallCheck(this,StringStream);return r.call(this,(0,c.stringToBytes)(t))}return StringStream}(u);r.StringStream=h;var d=function(t){_inherits(NullStream,t);var r=_createSuper(NullStream);function NullStream(){_classCallCheck(this,NullStream);return r.call(this,new Uint8Array(0))}return NullStream}(u);r.NullStream=d},(t,r,o)=>{"use strict";function _typeof(t){_typeof="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function _typeof(t){return typeof t}:function _typeof(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t};return _typeof(t)}Object.defineProperty(r,"__esModule",{value:!0});r.PDFDocument=r.Page=void 0;var l=function _interopRequireDefault(t){return t&&t.__esModule?t:{default:t}}(o(2)),c=o(4),u=o(118),h=o(122),d=o(125),m=o(123),g=o(135),y=o(119),v=o(185),S=o(177),_=o(140),k=o(183),C=o(175),w=o(138),x=o(142),O=o(182),T=o(187),R=o(211);function asyncGeneratorStep(t,r,o,l,c,u,h){try{var d=t[u](h),m=d.value}catch(t){o(t);return}d.done?r(m):Promise.resolve(m).then(l,c)}function _asyncToGenerator(t){return function(){var r=this,o=arguments;return new Promise((function(l,c){var u=t.apply(r,o);function _next(t){asyncGeneratorStep(u,l,c,_next,_throw,"next",t)}function _throw(t){asyncGeneratorStep(u,l,c,_next,_throw,"throw",t)}_next(void 0)}))}}function _slicedToArray(t,r){return function _arrayWithHoles(t){if(Array.isArray(t))return t}(t)||function _iterableToArrayLimit(t,r){var o=null==t?null:"undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(null==o)return;var l,c,u=[],h=!0,d=!1;try{for(o=o.call(t);!(h=(l=o.next()).done);h=!0){u.push(l.value);if(r&&u.length===r)break}}catch(t){d=!0;c=t}finally{try{h||null==o.return||o.return()}finally{if(d)throw c}}return u}(t,r)||_unsupportedIterableToArray(t,r)||function _nonIterableRest(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function _createForOfIteratorHelper(t,r){var o="undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(!o){if(Array.isArray(t)||(o=_unsupportedIterableToArray(t))||r&&t&&"number"==typeof t.length){o&&(t=o);var l=0,c=function F(){};return{s:c,n:function n(){return l>=t.length?{done:!0}:{done:!1,value:t[l++]}},e:function e(t){throw t},f:c}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var u,h=!0,d=!1;return{s:function s(){o=o.call(t)},n:function n(){var t=o.next();h=t.done;return t},e:function e(t){d=!0;u=t},f:function f(){try{h||null==o.return||o.return()}finally{if(d)throw u}}}}function _unsupportedIterableToArray(t,r){if(t){if("string"==typeof t)return _arrayLikeToArray(t,r);var o=Object.prototype.toString.call(t).slice(8,-1);"Object"===o&&t.constructor&&(o=t.constructor.name);return"Map"===o||"Set"===o?Array.from(t):"Arguments"===o||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(o)?_arrayLikeToArray(t,r):void 0}}function _arrayLikeToArray(t,r){(null==r||r>t.length)&&(r=t.length);for(var o=0,l=new Array(r);o<r;o++)l[o]=t[o];return l}function _setPrototypeOf(t,r){_setPrototypeOf=Object.setPrototypeOf||function _setPrototypeOf(t,r){t.__proto__=r;return t};return _setPrototypeOf(t,r)}function _createSuper(t){var r=function _isNativeReflectConstruct(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){})));return!0}catch(t){return!1}}();return function _createSuperInternal(){var o,l=_getPrototypeOf(t);if(r){var c=_getPrototypeOf(this).constructor;o=Reflect.construct(l,arguments,c)}else o=l.apply(this,arguments);return _possibleConstructorReturn(this,o)}}function _possibleConstructorReturn(t,r){if(r&&("object"===_typeof(r)||"function"==typeof r))return r;if(void 0!==r)throw new TypeError("Derived constructors may only return object or undefined");return function _assertThisInitialized(t){if(void 0===t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return t}(t)}function _getPrototypeOf(t){_getPrototypeOf=Object.setPrototypeOf?Object.getPrototypeOf:function _getPrototypeOf(t){return t.__proto__||Object.getPrototypeOf(t)};return _getPrototypeOf(t)}function _classCallCheck(t,r){if(!(t instanceof r))throw new TypeError("Cannot call a class as a function")}function _defineProperties(t,r){for(var o=0;o<r.length;o++){var l=r[o];l.enumerable=l.enumerable||!1;l.configurable=!0;"value"in l&&(l.writable=!0);Object.defineProperty(t,l.key,l)}}function _createClass(t,r,o){r&&_defineProperties(t.prototype,r);o&&_defineProperties(t,o);return t}var E=[0,0,612,792],M=function(){function Page(t){var r=t.pdfManager,o=t.xref,l=t.pageIndex,c=t.pageDict,u=t.ref,h=t.globalIdFactory,d=t.fontCache,m=t.builtInCMapCache,g=t.standardFontDataCache,y=t.globalImageCache,v=t.nonBlendModesSet,S=t.xfaFactory;_classCallCheck(this,Page);this.pdfManager=r;this.pageIndex=l;this.pageDict=c;this.xref=o;this.ref=u;this.fontCache=d;this.builtInCMapCache=m;this.standardFontDataCache=g;this.globalImageCache=y;this.nonBlendModesSet=v;this.evaluatorOptions=r.evaluatorOptions;this.resourcesPromise=null;this.xfaFactory=S;var _={obj:0};this._localIdFactory=function(t){!function _inherits(t,r){if("function"!=typeof r&&null!==r)throw new TypeError("Super expression must either be null or a function");t.prototype=Object.create(r&&r.prototype,{constructor:{value:t,writable:!0,configurable:!0}});r&&_setPrototypeOf(t,r)}(_class,t);var r=_createSuper(_class);function _class(){_classCallCheck(this,_class);return r.apply(this,arguments)}_createClass(_class,null,[{key:"createObjId",value:function createObjId(){return"p".concat(l,"_").concat(++_.obj)}},{key:"getPageObjId",value:function getPageObjId(){return"page".concat(u.toString())}}]);return _class}(h)}_createClass(Page,[{key:"_getInheritableProperty",value:function _getInheritableProperty(t){var r=arguments.length>1&&void 0!==arguments[1]&&arguments[1],o=(0,h.getInheritableProperty)({dict:this.pageDict,key:t,getArray:r,stopWhenFound:!1});return Array.isArray(o)?1!==o.length&&(0,u.isDict)(o[0])?u.Dict.merge({xref:this.xref,dictArray:o}):o[0]:o}},{key:"content",get:function get(){return this.pageDict.getArray("Contents")}},{key:"resources",get:function get(){return(0,c.shadow)(this,"resources",this._getInheritableProperty("Resources")||u.Dict.empty)}},{key:"_getBoundingBox",value:function _getBoundingBox(t){if(this.xfaData)return this.xfaData.bbox;var r=this._getInheritableProperty(t,!0);if(Array.isArray(r)&&4===r.length){if(r[2]-r[0]!=0&&r[3]-r[1]!=0)return r;(0,c.warn)("Empty /".concat(t," entry."))}return null}},{key:"mediaBox",get:function get(){return(0,c.shadow)(this,"mediaBox",this._getBoundingBox("MediaBox")||E)}},{key:"cropBox",get:function get(){return(0,c.shadow)(this,"cropBox",this._getBoundingBox("CropBox")||this.mediaBox)}},{key:"userUnit",get:function get(){var t=this.pageDict.get("UserUnit");(!(0,c.isNum)(t)||t<=0)&&(t=1);return(0,c.shadow)(this,"userUnit",t)}},{key:"view",get:function get(){var t,r=this.cropBox,o=this.mediaBox;if(r===o||(0,c.isArrayEqual)(r,o))t=o;else{var l=c.Util.intersect(r,o);l&&l[2]-l[0]!=0&&l[3]-l[1]!=0?t=l:(0,c.warn)("Empty /CropBox and /MediaBox intersection.")}return(0,c.shadow)(this,"view",t||o)}},{key:"rotate",get:function get(){var t=this._getInheritableProperty("Rotate")||0;t%90!=0?t=0:t>=360?t%=360:t<0&&(t=(t%360+360)%360);return(0,c.shadow)(this,"rotate",t)}},{key:"_onSubStreamError",value:function _onSubStreamError(t,r,o){if(!this.evaluatorOptions.ignoreErrors)throw r;t.send("UnsupportedFeature",{featureId:c.UNSUPPORTED_FEATURES.errorContentSubStream});(0,c.warn)("getContentStream - ignoring sub-stream (".concat(o,'): "').concat(r,'".'))}},{key:"getContentStream",value:function getContentStream(t){var r=this;return this.pdfManager.ensure(this,"content").then((function(o){return o instanceof y.BaseStream?o:Array.isArray(o)?new x.StreamsSequenceStream(o,r._onSubStreamError.bind(r,t)):new m.NullStream}))}},{key:"xfaData",get:function get(){return this.xfaFactory?(0,c.shadow)(this,"xfaData",{bbox:this.xfaFactory.getBoundingBox(this.pageIndex)}):(0,c.shadow)(this,"xfaData",null)}},{key:"save",value:function save(t,r,o){var l=new w.PartialEvaluator({xref:this.xref,handler:t,pageIndex:this.pageIndex,idFactory:this._localIdFactory,fontCache:this.fontCache,builtInCMapCache:this.builtInCMapCache,standardFontDataCache:this.standardFontDataCache,globalImageCache:this.globalImageCache,options:this.evaluatorOptions});return this._parsedAnnotations.then((function(t){var u,h=[],d=_createForOfIteratorHelper(t);try{for(d.s();!(u=d.n()).done;){var m=u.value;m.mustBePrinted(o)&&h.push(m.save(l,r,o).catch((function(t){(0,c.warn)("save - ignoring annotation data during "+'"'.concat(r.name,'" task: "').concat(t,'".'));return null})))}}catch(t){d.e(t)}finally{d.f()}return Promise.all(h)}))}},{key:"loadResources",value:function loadResources(t){var r=this;this.resourcesPromise||(this.resourcesPromise=this.pdfManager.ensure(this,"resources"));return this.resourcesPromise.then((function(){return new k.ObjectLoader(r.resources,t,r.xref).load()}))}},{key:"getOperatorList",value:function getOperatorList(t){var r=this,o=t.handler,l=t.sink,u=t.task,h=t.intent,d=t.cacheKey,m=t.annotationStorage,g=void 0===m?null:m,y=this.getContentStream(o),v=this.loadResources(["ColorSpace","ExtGState","Font","Pattern","Properties","Shading","XObject"]),S=new w.PartialEvaluator({xref:this.xref,handler:o,pageIndex:this.pageIndex,idFactory:this._localIdFactory,fontCache:this.fontCache,builtInCMapCache:this.builtInCMapCache,standardFontDataCache:this.standardFontDataCache,globalImageCache:this.globalImageCache,options:this.evaluatorOptions}),_=Promise.all([y,v]).then((function(t){var c=_slicedToArray(t,1)[0],m=new C.OperatorList(h,l);o.send("StartRenderPage",{transparency:S.hasBlendModes(r.resources,r.nonBlendModesSet),pageIndex:r.pageIndex,cacheKey:d});return S.getOperatorList({stream:c,task:u,resources:r.resources,operatorList:m}).then((function(){return m}))}));return Promise.all([_,this._parsedAnnotations]).then((function(t){var r=_slicedToArray(t,2),o=r[0],l=r[1];if(0===l.length||h&c.RenderingIntentFlag.ANNOTATIONS_DISABLE){o.flush(!0);return{length:o.totalLength}}var d,m=!!(h&c.RenderingIntentFlag.ANNOTATIONS_FORMS),y=!!(h&c.RenderingIntentFlag.ANY),v=!!(h&c.RenderingIntentFlag.DISPLAY),_=!!(h&c.RenderingIntentFlag.PRINT),k=[],C=_createForOfIteratorHelper(l);try{for(C.s();!(d=C.n()).done;){var w=d.value;(y||v&&w.mustBeViewed(g)||_&&w.mustBePrinted(g))&&k.push(w.getOperatorList(S,u,m,g).catch((function(t){(0,c.warn)("getOperatorList - ignoring annotation data during "+'"'.concat(u.name,'" task: "').concat(t,'".'));return null})))}}catch(t){C.e(t)}finally{C.f()}return Promise.all(k).then((function(t){o.addOp(c.OPS.beginAnnotations,[]);var r,l=_createForOfIteratorHelper(t);try{for(l.s();!(r=l.n()).done;){var u=r.value;o.addOpList(u)}}catch(t){l.e(t)}finally{l.f()}o.addOp(c.OPS.endAnnotations,[]);o.flush(!0);return{length:o.totalLength}}))}))}},{key:"extractTextContent",value:function extractTextContent(t){var r=this,o=t.handler,l=t.task,c=t.normalizeWhitespace,u=t.includeMarkedContent,h=t.sink,d=t.combineTextItems,m=this.getContentStream(o),g=this.loadResources(["ExtGState","Font","Properties","XObject"]);return Promise.all([m,g]).then((function(t){var m=_slicedToArray(t,1)[0];return new w.PartialEvaluator({xref:r.xref,handler:o,pageIndex:r.pageIndex,idFactory:r._localIdFactory,fontCache:r.fontCache,builtInCMapCache:r.builtInCMapCache,standardFontDataCache:r.standardFontDataCache,globalImageCache:r.globalImageCache,options:r.evaluatorOptions}).getTextContent({stream:m,task:l,resources:r.resources,normalizeWhitespace:c,includeMarkedContent:u,combineTextItems:d,sink:h})}))}},{key:"getStructTree",value:(t=_asyncToGenerator(l.default.mark((function _callee(){var t,r;return l.default.wrap((function _callee$(o){for(;;)switch(o.prev=o.next){case 0:o.next=2;return this.pdfManager.ensureCatalog("structTreeRoot");case 2:if(t=o.sent){o.next=5;break}return o.abrupt("return",null);case 5:o.next=7;return this.pdfManager.ensure(this,"_parseStructTree",[t]);case 7:r=o.sent;return o.abrupt("return",r.serializable);case 9:case"end":return o.stop()}}),_callee,this)}))),function getStructTree(){return t.apply(this,arguments)})},{key:"_parseStructTree",value:function _parseStructTree(t){var r=new O.StructTreePage(t,this.pageDict);r.parse();return r}},{key:"getAnnotationsData",value:function getAnnotationsData(t){return this._parsedAnnotations.then((function(r){var o=[];if(0===r.length)return o;var l,u=!!(t&c.RenderingIntentFlag.ANY),h=!!(t&c.RenderingIntentFlag.DISPLAY),d=!!(t&c.RenderingIntentFlag.PRINT),m=_createForOfIteratorHelper(r);try{for(m.s();!(l=m.n()).done;){var g=l.value;(u||h&&g.viewable||d&&g.printable)&&o.push(g.data)}}catch(t){m.e(t)}finally{m.f()}return o}))}},{key:"annotations",get:function get(){var t=this._getInheritableProperty("Annots");return(0,c.shadow)(this,"annotations",Array.isArray(t)?t:[])}},{key:"_parsedAnnotations",get:function get(){var t=this,r=this.pdfManager.ensure(this,"annotations").then((function(){var r,o=[],l=_createForOfIteratorHelper(t.annotations);try{for(l.s();!(r=l.n()).done;){var u=r.value;o.push(g.AnnotationFactory.create(t.xref,u,t.pdfManager,t._localIdFactory,!1).catch((function(t){(0,c.warn)('_parsedAnnotations: "'.concat(t,'".'));return null})))}}catch(t){l.e(t)}finally{l.f()}return Promise.all(o).then((function(t){return t.filter((function(t){return!!t}))}))}));return(0,c.shadow)(this,"_parsedAnnotations",r)}},{key:"jsActions",get:function get(){var t=(0,h.collectActions)(this.xref,this.pageDict,c.PageActionEventType);return(0,c.shadow)(this,"jsActions",t)}}]);var t;return Page}();r.Page=M;var D=new Uint8Array([37,80,68,70,45]),j=new Uint8Array([115,116,97,114,116,120,114,101,102]),L=new Uint8Array([101,110,100,111,98,106]),N=/^[1-9]\.\d$/;function find(t,r){var o=arguments.length>2&&void 0!==arguments[2]?arguments[2]:1024,l=arguments.length>3&&void 0!==arguments[3]&&arguments[3],c=r.length,u=t.peekBytes(o),h=u.length-c;if(h<=0)return!1;if(l)for(var d=c-1,m=u.length-1;m>=d;){for(var g=0;g<c&&u[m-g]===r[d-g];)g++;if(g>=c){t.pos+=m-d;return!0}m--}else for(var y=0;y<=h;){for(var v=0;v<c&&u[y+v]===r[v];)v++;if(v>=c){t.pos+=y;return!0}y++}return!1}var U=function(){function PDFDocument(t,r){_classCallCheck(this,PDFDocument);var o;if((0,u.isStream)(r))o=r;else{if(!(0,c.isArrayBuffer)(r))throw new Error("PDFDocument: Unknown argument type");o=new m.Stream(r)}if(o.length<=0)throw new c.InvalidPDFException("The PDF file is empty, i.e. its size is zero bytes.");this.pdfManager=t;this.stream=o;this.xref=new R.XRef(o,t);this._pagePromises=[];this._version=null;var l={font:0};this._globalIdFactory=function(){function _class2(){_classCallCheck(this,_class2)}_createClass(_class2,null,[{key:"getDocId",value:function getDocId(){return"g_".concat(t.docId)}},{key:"createFontId",value:function createFontId(){return"f".concat(++l.font)}},{key:"createObjId",value:function createObjId(){(0,c.unreachable)("Abstract method `createObjId` called.")}},{key:"getPageObjId",value:function getPageObjId(){(0,c.unreachable)("Abstract method `getPageObjId` called.")}}]);return _class2}()}_createClass(PDFDocument,[{key:"parse",value:function parse(t){this.xref.parse(t);this.catalog=new S.Catalog(this.pdfManager,this.xref);this.catalog.version&&(this._version=this.catalog.version)}},{key:"linearization",get:function get(){var t=null;try{t=_.Linearization.create(this.stream)}catch(t){if(t instanceof h.MissingDataException)throw t;(0,c.info)(t)}return(0,c.shadow)(this,"linearization",t)}},{key:"startXRef",get:function get(){var t=this.stream,r=0;if(this.linearization){t.reset();find(t,L)&&(r=t.pos+6-t.start)}else{for(var o=j.length,l=!1,u=t.end;!l&&u>0;){(u-=1024-o)<0&&(u=0);t.pos=u;l=find(t,j,1024,!0)}if(l){t.skip(9);var d;do{d=t.getByte()}while((0,h.isWhiteSpace)(d));for(var m="";d>=32&&d<=57;){m+=String.fromCharCode(d);d=t.getByte()}r=parseInt(m,10);isNaN(r)&&(r=0)}}return(0,c.shadow)(this,"startXRef",r)}},{key:"checkHeader",value:function checkHeader(){var t=this.stream;t.reset();if(find(t,D)){t.moveStart();for(var r,o="";(r=t.getByte())>32&&!(o.length>=12);)o+=String.fromCharCode(r);this._version||(this._version=o.substring(5))}}},{key:"parseStartXRef",value:function parseStartXRef(){this.xref.setStartXRef(this.startXRef)}},{key:"numPages",get:function get(){if(this.xfaFactory)return(0,c.shadow)(this,"numPages",this.xfaFactory.numberPages);var t=this.linearization,r=t?t.numPages:this.catalog.numPages;return(0,c.shadow)(this,"numPages",r)}},{key:"_hasOnlyDocumentSignatures",value:function _hasOnlyDocumentSignatures(t){var r=this,o=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,l=10;return!!Array.isArray(t)&&t.every((function(t){if(!((t=r.xref.fetchIfRef(t))instanceof u.Dict))return!1;if(t.has("Kids")){if(++o>l){(0,c.warn)("_hasOnlyDocumentSignatures: maximum recursion depth reached");return!1}return r._hasOnlyDocumentSignatures(t.get("Kids"),o)}var h=(0,u.isName)(t.get("FT"),"Sig"),d=t.get("Rect"),m=Array.isArray(d)&&d.every((function(t){return 0===t}));return h&&m}))}},{key:"xfaData",get:function get(){var t=this.catalog.acroForm;if(!t)return null;var r=t.get("XFA"),o={"xdp:xdp":"",template:"",datasets:"",config:"",connectionSet:"",localeSet:"",stylesheet:"","/xdp:xdp":""};if((0,u.isStream)(r)&&!r.isEmpty)try{o["xdp:xdp"]=(0,c.stringToUTF8String)(r.getString());return o}catch(t){(0,c.warn)("XFA - Invalid utf-8 string.");return null}if(!Array.isArray(r)||0===r.length)return null;for(var l=0,h=r.length;l<h;l+=2){var d=void 0;d=0===l?"xdp:xdp":l===h-2?"/xdp:xdp":r[l];if(o.hasOwnProperty(d)){var m=this.xref.fetchIfRef(r[l+1]);if((0,u.isStream)(m)&&!m.isEmpty)try{o[d]=(0,c.stringToUTF8String)(m.getString())}catch(t){(0,c.warn)("XFA - Invalid utf-8 string.");return null}}}return o}},{key:"xfaFactory",get:function get(){if(this.pdfManager.enableXfa&&this.catalog.needsRendering&&this.formInfo.hasXfa&&!this.formInfo.hasAcroForm){var t=this.xfaData;return(0,c.shadow)(this,"xfaFactory",t?new T.XFAFactory(t):null)}return(0,c.shadow)(this,"xfaFaxtory",null)}},{key:"isPureXfa",get:function get(){return this.xfaFactory&&this.xfaFactory.isValid()}},{key:"htmlForXfa",get:function get(){return this.xfaFactory?this.xfaFactory.getPages():null}},{key:"loadXfaImages",value:(x=_asyncToGenerator(l.default.mark((function _callee2(){var t,r,o,c,h,d,m,g;return l.default.wrap((function _callee2$(l){for(;;)switch(l.prev=l.next){case 0:l.next=2;return this.pdfManager.ensureCatalog("xfaImages");case 2:if(t=l.sent){l.next=5;break}return l.abrupt("return");case 5:r=t.getKeys();o=new k.ObjectLoader(t,r,this.xref);l.next=9;return o.load();case 9:c=new Map;h=_createForOfIteratorHelper(r);l.prev=11;h.s();case 13:if((d=h.n()).done){l.next=21;break}m=d.value;g=t.get(m);if((0,u.isStream)(g)){l.next=18;break}return l.abrupt("continue",19);case 18:c.set(m,g.getBytes());case 19:l.next=13;break;case 21:l.next=26;break;case 23:l.prev=23;l.t0=l.catch(11);h.e(l.t0);case 26:l.prev=26;h.f();return l.finish(26);case 29:this.xfaFactory.setImages(c);case 30:case"end":return l.stop()}}),_callee2,this,[[11,23,26,29]])}))),function loadXfaImages(){return x.apply(this,arguments)})},{key:"loadXfaFonts",value:(y=_asyncToGenerator(l.default.mark((function _callee3(t,r){var o,m,g,y,v,S,_,x,O,T,R,E,M,D,j,L,N,U,H,W,$,q,X,z,G,V,Y,K,J,Q,Z,ee,te,re;return l.default.wrap((function _callee3$(l){for(;;)switch(l.prev=l.next){case 0:l.next=2;return this.pdfManager.ensureCatalog("acroForm");case 2:if(o=l.sent){l.next=5;break}return l.abrupt("return");case 5:l.next=7;return o.getAsync("DR");case 7:if((m=l.sent)instanceof u.Dict){l.next=10;break}return l.abrupt("return");case 10:g=new k.ObjectLoader(m,["Font"],this.xref);l.next=13;return g.load();case 13:if((y=m.get("Font"))instanceof u.Dict){l.next=16;break}return l.abrupt("return");case 16:(v=Object.assign(Object.create(null),this.pdfManager.evaluatorOptions)).useSystemFonts=!1;S=new w.PartialEvaluator({xref:this.xref,handler:t,pageIndex:-1,idFactory:this._globalIdFactory,fontCache:this.catalog.fontCache,builtInCMapCache:this.catalog.builtInCMapCache,standardFontDataCache:this.catalog.standardFontDataCache,options:v});_=new C.OperatorList;x=[];l.t0=function clone(){return this};O={get font(){return x[x.length-1]},set font(t){x.push(t)},clone:l.t0};T=new Map;y.forEach((function(t,r){T.set(t,r)}));R=[];E=_createForOfIteratorHelper(T);l.prev=27;E.s();case 29:if((M=E.n()).done){l.next=44;break}D=_slicedToArray(M.value,2),j=D[0],L=D[1];if((N=L.get("FontDescriptor"))instanceof u.Dict){l.next=34;break}return l.abrupt("continue",42);case 34:U=(U=N.get("FontFamily")).replace(/[ ]+(\d)/g,"$1");H=N.get("FontWeight");W=-N.get("ItalicAngle");$={fontFamily:U,fontWeight:H,italicAngle:W};if((0,h.validateCSSFont)($)){l.next=41;break}return l.abrupt("continue",42);case 41:R.push(S.handleSetFont(m,[u.Name.get(j),1],null,_,r,O,null,$).catch((function(t){(0,c.warn)('loadXfaFonts: "'.concat(t,'".'));return null})));case 42:l.next=29;break;case 44:l.next=49;break;case 46:l.prev=46;l.t1=l.catch(27);E.e(l.t1);case 49:l.prev=49;E.f();return l.finish(49);case 52:l.next=54;return Promise.all(R);case 54:if(q=this.xfaFactory.setFonts(x)){l.next=57;break}return l.abrupt("return");case 57:v.ignoreErrors=!0;R.length=0;x.length=0;X=new Set;z=_createForOfIteratorHelper(q);try{for(z.s();!(G=z.n()).done;){V=G.value;(0,d.getXfaFontName)("".concat(V,"-Regular"))||X.add(V)}}catch(t){z.e(t)}finally{z.f()}X.size&&q.push("PdfJS-Fallback");Y=_createForOfIteratorHelper(q);l.prev=65;Y.s();case 67:if((K=Y.n()).done){l.next=74;break}J=K.value;if(!X.has(J)){l.next=71;break}return l.abrupt("continue",72);case 71:for(Q=0,Z=[{name:"Regular",fontWeight:400,italicAngle:0},{name:"Bold",fontWeight:700,italicAngle:0},{name:"Italic",fontWeight:400,italicAngle:12},{name:"BoldItalic",fontWeight:700,italicAngle:12}];Q<Z.length;Q++){ee=Z[Q];te="".concat(J,"-").concat(ee.name);re=(0,d.getXfaFontDict)(te);R.push(S.handleSetFont(m,[u.Name.get(te),1],null,_,r,O,re,{fontFamily:J,fontWeight:ee.fontWeight,italicAngle:ee.italicAngle}).catch((function(t){(0,c.warn)('loadXfaFonts: "'.concat(t,'".'));return null})))}case 72:l.next=67;break;case 74:l.next=79;break;case 76:l.prev=76;l.t2=l.catch(65);Y.e(l.t2);case 79:l.prev=79;Y.f();return l.finish(79);case 82:l.next=84;return Promise.all(R);case 84:this.xfaFactory.appendFonts(x,X);case 85:case"end":return l.stop()}}),_callee3,this,[[27,46,49,52],[65,76,79,82]])}))),function loadXfaFonts(t,r){return y.apply(this,arguments)})},{key:"serializeXfaData",value:(o=_asyncToGenerator(l.default.mark((function _callee4(t){return l.default.wrap((function _callee4$(r){for(;;)switch(r.prev=r.next){case 0:if(!this.xfaFactory){r.next=2;break}return r.abrupt("return",this.xfaFactory.serializeData(t));case 2:return r.abrupt("return",null);case 3:case"end":return r.stop()}}),_callee4,this)}))),function serializeXfaData(t){return o.apply(this,arguments)})},{key:"formInfo",get:function get(){var t={hasFields:!1,hasAcroForm:!1,hasXfa:!1,hasSignatures:!1},r=this.catalog.acroForm;if(!r)return(0,c.shadow)(this,"formInfo",t);try{var o=r.get("Fields"),l=Array.isArray(o)&&o.length>0;t.hasFields=l;var d=r.get("XFA");t.hasXfa=Array.isArray(d)&&d.length>0||(0,u.isStream)(d)&&!d.isEmpty;var m=!!(1&r.get("SigFlags")),g=m&&this._hasOnlyDocumentSignatures(o);t.hasAcroForm=l&&!g;t.hasSignatures=m}catch(t){if(t instanceof h.MissingDataException)throw t;(0,c.warn)('Cannot fetch form information: "'.concat(t,'".'))}return(0,c.shadow)(this,"formInfo",t)}},{key:"documentInfo",get:function get(){var t={Title:c.isString,Author:c.isString,Subject:c.isString,Keywords:c.isString,Creator:c.isString,Producer:c.isString,CreationDate:c.isString,ModDate:c.isString,Trapped:u.isName},r=this._version;if("string"!=typeof r||!N.test(r)){(0,c.warn)("Invalid PDF header version number: ".concat(r));r=null}var o,l={PDFFormatVersion:r,IsLinearized:!!this.linearization,IsAcroFormPresent:this.formInfo.hasAcroForm,IsXFAPresent:this.formInfo.hasXfa,IsCollectionPresent:!!this.catalog.collection,IsSignaturesPresent:this.formInfo.hasSignatures};try{o=this.xref.trailer.get("Info")}catch(t){if(t instanceof h.MissingDataException)throw t;(0,c.info)("The document information dictionary is invalid.")}if((0,u.isDict)(o)){var d,m=_createForOfIteratorHelper(o.getKeys());try{for(m.s();!(d=m.n()).done;){var g=d.value,y=o.get(g);if(t[g])t[g](y)?l[g]="string"!=typeof y?y:(0,c.stringToPDFString)(y):(0,c.info)('Bad value in document info for "'.concat(g,'".'));else if("string"==typeof g){var v=void 0;if((0,c.isString)(y))v=(0,c.stringToPDFString)(y);else{if(!((0,u.isName)(y)||(0,c.isNum)(y)||(0,c.isBool)(y))){(0,c.info)('Unsupported value in document info for (custom) "'.concat(g,'".'));continue}v=y}l.Custom||(l.Custom=Object.create(null));l.Custom[g]=v}}}catch(t){m.e(t)}finally{m.f()}}return(0,c.shadow)(this,"documentInfo",l)}},{key:"fingerprints",get:function get(){function validate(t){return"string"==typeof t&&t.length>0&&"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"!==t}function hexString(t){for(var r=[],o=0,l=t.length;o<l;o++){var c=t[o].toString(16);r.push(c.padStart(2,"0"))}return r.join("")}var t,r,o=this.xref.trailer.get("ID");if(Array.isArray(o)&&validate(o[0])){t=(0,c.stringToBytes)(o[0]);o[1]!==o[0]&&validate(o[1])&&(r=(0,c.stringToBytes)(o[1]))}else t=(0,v.calculateMD5)(this.stream.getByteRange(0,1024),0,1024);return(0,c.shadow)(this,"fingerprints",[hexString(t),r?hexString(r):null])}},{key:"_getLinearizationPage",value:function _getLinearizationPage(t){var r=this.catalog,o=this.linearization,l=u.Ref.get(o.objectNumberFirst,0);return this.xref.fetchAsync(l).then((function(t){if((0,u.isDict)(t,"Page")||(0,u.isDict)(t)&&!t.has("Type")&&t.has("Contents")){l&&!r.pageKidsCountCache.has(l)&&r.pageKidsCountCache.put(l,1);return[t,l]}throw new c.FormatError("The Linearization dictionary doesn't point to a valid Page dictionary.")})).catch((function(o){(0,c.info)(o);return r.getPageDict(t)}))}},{key:"getPage",value:function getPage(t){var r=this;if(void 0!==this._pagePromises[t])return this._pagePromises[t];var o=this.catalog,l=this.linearization;if(this.xfaFactory)return Promise.resolve(new M({pdfManager:this.pdfManager,xref:this.xref,pageIndex:t,pageDict:u.Dict.empty,ref:null,globalIdFactory:this._globalIdFactory,fontCache:o.fontCache,builtInCMapCache:o.builtInCMapCache,standardFontDataCache:o.standardFontDataCache,globalImageCache:o.globalImageCache,nonBlendModesSet:o.nonBlendModesSet,xfaFactory:this.xfaFactory}));var c=l&&l.pageFirst===t?this._getLinearizationPage(t):o.getPageDict(t);return this._pagePromises[t]=c.then((function(l){var c=_slicedToArray(l,2),u=c[0],h=c[1];return new M({pdfManager:r.pdfManager,xref:r.xref,pageIndex:t,pageDict:u,ref:h,globalIdFactory:r._globalIdFactory,fontCache:o.fontCache,builtInCMapCache:o.builtInCMapCache,standardFontDataCache:o.standardFontDataCache,globalImageCache:o.globalImageCache,nonBlendModesSet:o.nonBlendModesSet,xfaFactory:null})}))}},{key:"checkFirstPage",value:function checkFirstPage(){var t=this;return this.getPage(0).catch(function(){var r=_asyncToGenerator(l.default.mark((function _callee5(r){return l.default.wrap((function _callee5$(o){for(;;)switch(o.prev=o.next){case 0:if(!(r instanceof h.XRefEntryException)){o.next=5;break}t._pagePromises.length=0;o.next=4;return t.cleanup();case 4:throw new h.XRefParseException;case 5:case"end":return o.stop()}}),_callee5)})));return function(t){return r.apply(this,arguments)}}())}},{key:"fontFallback",value:function fontFallback(t,r){return this.catalog.fontFallback(t,r)}},{key:"cleanup",value:(r=_asyncToGenerator(l.default.mark((function _callee6(){var t,r=arguments;return l.default.wrap((function _callee6$(o){for(;;)switch(o.prev=o.next){case 0:t=r.length>0&&void 0!==r[0]&&r[0];return o.abrupt("return",this.catalog?this.catalog.cleanup(t):(0,u.clearPrimitiveCaches)());case 2:case"end":return o.stop()}}),_callee6,this)}))),function cleanup(){return r.apply(this,arguments)})},{key:"_collectFieldObjects",value:function _collectFieldObjects(t,r,o){var l=this.xref.fetchIfRef(r);if(l.has("T")){var u=(0,c.stringToPDFString)(l.get("T"));t=""===t?u:"".concat(t,".").concat(u)}o.has(t)||o.set(t,[]);o.get(t).push(g.AnnotationFactory.create(this.xref,r,this.pdfManager,this._localIdFactory,!0).then((function(t){return t&&t.getFieldObject()})).catch((function(t){(0,c.warn)('_collectFieldObjects: "'.concat(t,'".'));return null})));if(l.has("Kids")){var h,d=_createForOfIteratorHelper(l.get("Kids"));try{for(d.s();!(h=d.n()).done;){var m=h.value;this._collectFieldObjects(t,m,o)}}catch(t){d.e(t)}finally{d.f()}}}},{key:"fieldObjects",get:function get(){if(!this.formInfo.hasFields)return(0,c.shadow)(this,"fieldObjects",Promise.resolve(null));var t,r=Object.create(null),o=new Map,l=_createForOfIteratorHelper(this.catalog.acroForm.get("Fields"));try{for(l.s();!(t=l.n()).done;){var u=t.value;this._collectFieldObjects("",u,o)}}catch(t){l.e(t)}finally{l.f()}var h,d=[],m=_createForOfIteratorHelper(o);try{var g=function _loop(){var t=_slicedToArray(h.value,2),o=t[0],l=t[1];d.push(Promise.all(l).then((function(t){(t=t.filter((function(t){return!!t}))).length>0&&(r[o]=t)})))};for(m.s();!(h=m.n()).done;)g()}catch(t){m.e(t)}finally{m.f()}return(0,c.shadow)(this,"fieldObjects",Promise.all(d).then((function(){return r})))}},{key:"hasJSActions",get:function get(){var t=this.pdfManager.ensureDoc("_parseHasJSActions");return(0,c.shadow)(this,"hasJSActions",t)}},{key:"_parseHasJSActions",value:(t=_asyncToGenerator(l.default.mark((function _callee7(){var t,r,o,c;return l.default.wrap((function _callee7$(l){for(;;)switch(l.prev=l.next){case 0:l.next=2;return Promise.all([this.pdfManager.ensureCatalog("jsActions"),this.pdfManager.ensureDoc("fieldObjects")]);case 2:t=l.sent;r=_slicedToArray(t,2);o=r[0];c=r[1];if(!o){l.next=8;break}return l.abrupt("return",!0);case 8:if(!c){l.next=10;break}return l.abrupt("return",Object.values(c).some((function(t){return t.some((function(t){return null!==t.actions}))})));case 10:return l.abrupt("return",!1);case 11:case"end":return l.stop()}}),_callee7,this)}))),function _parseHasJSActions(){return t.apply(this,arguments)})},{key:"calculationOrderIds",get:function get(){var t=this.catalog.acroForm;if(!t||!t.has("CO"))return(0,c.shadow)(this,"calculationOrderIds",null);var r=t.get("CO");if(!Array.isArray(r)||0===r.length)return(0,c.shadow)(this,"calculationOrderIds",null);var o=r.filter(u.isRef).map((function(t){return t.toString()}));return 0===o.length?(0,c.shadow)(this,"calculationOrderIds",null):(0,c.shadow)(this,"calculationOrderIds",o)}}]);var t,r,o,y,x;return PDFDocument}();r.PDFDocument=U},(t,r,o)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});r.getXfaFontDict=function getXfaFontDict(t){var r=function getXfaFontWidths(t){var r=getXfaFontName(t);if(!r)return null;var o,l=r.baseWidths,c=r.baseMapping,u=r.factors;o=u?l.map((function(t,r){return t*u[r]})):l;var h,d,m=-2,g=[],y=function _createForOfIteratorHelper(t,r){var o="undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(!o){if(Array.isArray(t)||(o=_unsupportedIterableToArray(t))||r&&t&&"number"==typeof t.length){o&&(t=o);var l=0,c=function F(){};return{s:c,n:function n(){return l>=t.length?{done:!0}:{done:!1,value:t[l++]}},e:function e(t){throw t},f:c}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var u,h=!0,d=!1;return{s:function s(){o=o.call(t)},n:function n(){var t=o.next();h=t.done;return t},e:function e(t){d=!0;u=t},f:function f(){try{h||null==o.return||o.return()}finally{if(d)throw u}}}}(c.map((function(t,r){return[t,r]})).sort((function(t,r){return _slicedToArray(t,1)[0]-_slicedToArray(r,1)[0]})));try{for(y.s();!(d=y.n()).done;){var v=_slicedToArray(d.value,2),S=v[0],_=v[1];if(-1!==S)if(S===m+1){h.push(o[_]);m+=1}else{m=S;h=[o[_]];g.push(S,h)}}}catch(t){y.e(t)}finally{y.f()}return g}(t),o=new c.Dict(null);o.set("BaseFont",c.Name.get(t));o.set("Type",c.Name.get("Font"));o.set("Subtype",c.Name.get("CIDFontType2"));o.set("Encoding",c.Name.get("Identity-H"));o.set("CIDToGIDMap",c.Name.get("Identity"));o.set("W",r);o.set("FirstChar",r[0]);o.set("LastChar",r[r.length-2]+r[r.length-1].length-1);var l=new c.Dict(null);o.set("FontDescriptor",l);var u=new c.Dict(null);u.set("Ordering","Identity");u.set("Registry","Adobe");u.set("Supplement",0);o.set("CIDSystemInfo",u);return o};r.getXfaFontName=getXfaFontName;var l=o(126),c=o(118),u=o(127),h=o(128),d=o(129),m=o(130),g=o(122),y=o(131);function _slicedToArray(t,r){return function _arrayWithHoles(t){if(Array.isArray(t))return t}(t)||function _iterableToArrayLimit(t,r){var o=null==t?null:"undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(null==o)return;var l,c,u=[],h=!0,d=!1;try{for(o=o.call(t);!(h=(l=o.next()).done);h=!0){u.push(l.value);if(r&&u.length===r)break}}catch(t){d=!0;c=t}finally{try{h||null==o.return||o.return()}finally{if(d)throw c}}return u}(t,r)||_unsupportedIterableToArray(t,r)||function _nonIterableRest(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function _unsupportedIterableToArray(t,r){if(t){if("string"==typeof t)return _arrayLikeToArray(t,r);var o=Object.prototype.toString.call(t).slice(8,-1);"Object"===o&&t.constructor&&(o=t.constructor.name);return"Map"===o||"Set"===o?Array.from(t):"Arguments"===o||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(o)?_arrayLikeToArray(t,r):void 0}}function _arrayLikeToArray(t,r){(null==r||r>t.length)&&(r=t.length);for(var o=0,l=new Array(r);o<r;o++)l[o]=t[o];return l}var v=(0,g.getLookupTableFactory)((function(t){t["MyriadPro-Regular"]=t["PdfJS-Fallback-Regular"]={name:"LiberationSans-Regular",factors:d.MyriadProRegularFactors,baseWidths:h.LiberationSansRegularWidths,baseMapping:h.LiberationSansRegularMapping,metrics:d.MyriadProRegularMetrics};t["MyriadPro-Bold"]=t["PdfJS-Fallback-Bold"]={name:"LiberationSans-Bold",factors:d.MyriadProBoldFactors,baseWidths:h.LiberationSansBoldWidths,baseMapping:h.LiberationSansBoldMapping,metrics:d.MyriadProBoldMetrics};t["MyriadPro-It"]=t["MyriadPro-Italic"]=t["PdfJS-Fallback-Italic"]={name:"LiberationSans-Italic",factors:d.MyriadProItalicFactors,baseWidths:h.LiberationSansItalicWidths,baseMapping:h.LiberationSansItalicMapping,metrics:d.MyriadProItalicMetrics};t["MyriadPro-BoldIt"]=t["MyriadPro-BoldItalic"]=t["PdfJS-Fallback-BoldItalic"]={name:"LiberationSans-BoldItalic",factors:d.MyriadProBoldItalicFactors,baseWidths:h.LiberationSansBoldItalicWidths,baseMapping:h.LiberationSansBoldItalicMapping,metrics:d.MyriadProBoldItalicMetrics};t.ArialMT=t.Arial=t["Arial-Regular"]={name:"LiberationSans-Regular",baseWidths:h.LiberationSansRegularWidths,baseMapping:h.LiberationSansRegularMapping};t["Arial-BoldMT"]=t["Arial-Bold"]={name:"LiberationSans-Bold",baseWidths:h.LiberationSansBoldWidths,baseMapping:h.LiberationSansBoldMapping};t["Arial-ItalicMT"]=t["Arial-Italic"]={name:"LiberationSans-Italic",baseWidths:h.LiberationSansItalicWidths,baseMapping:h.LiberationSansItalicMapping};t["Arial-BoldItalicMT"]=t["Arial-BoldItalic"]={name:"LiberationSans-BoldItalic",baseWidths:h.LiberationSansBoldItalicWidths,baseMapping:h.LiberationSansBoldItalicMapping};t["Calibri-Regular"]={name:"LiberationSans-Regular",factors:l.CalibriRegularFactors,baseWidths:h.LiberationSansRegularWidths,baseMapping:h.LiberationSansRegularMapping,metrics:l.CalibriRegularMetrics};t["Calibri-Bold"]={name:"LiberationSans-Bold",factors:l.CalibriBoldFactors,baseWidths:h.LiberationSansBoldWidths,baseMapping:h.LiberationSansBoldMapping,metrics:l.CalibriBoldMetrics};t["Calibri-Italic"]={name:"LiberationSans-Italic",factors:l.CalibriItalicFactors,baseWidths:h.LiberationSansItalicWidths,baseMapping:h.LiberationSansItalicMapping,metrics:l.CalibriItalicMetrics};t["Calibri-BoldItalic"]={name:"LiberationSans-BoldItalic",factors:l.CalibriBoldItalicFactors,baseWidths:h.LiberationSansBoldItalicWidths,baseMapping:h.LiberationSansBoldItalicMapping,metrics:l.CalibriBoldItalicMetrics};t["Segoeui-Regular"]={name:"LiberationSans-Regular",factors:m.SegoeuiRegularFactors,baseWidths:h.LiberationSansRegularWidths,baseMapping:h.LiberationSansRegularMapping,metrics:m.SegoeuiRegularMetrics};t["Segoeui-Bold"]={name:"LiberationSans-Bold",factors:m.SegoeuiBoldFactors,baseWidths:h.LiberationSansBoldWidths,baseMapping:h.LiberationSansBoldMapping,metrics:m.SegoeuiBoldMetrics};t["Segoeui-Italic"]={name:"LiberationSans-Italic",factors:m.SegoeuiItalicFactors,baseWidths:h.LiberationSansItalicWidths,baseMapping:h.LiberationSansItalicMapping,metrics:m.SegoeuiItalicMetrics};t["Segoeui-BoldItalic"]={name:"LiberationSans-BoldItalic",factors:m.SegoeuiBoldItalicFactors,baseWidths:h.LiberationSansBoldItalicWidths,baseMapping:h.LiberationSansBoldItalicMapping,metrics:m.SegoeuiBoldItalicMetrics};t["Helvetica-Regular"]=t.Helvetica={name:"LiberationSans-Regular",factors:u.HelveticaRegularFactors,baseWidths:h.LiberationSansRegularWidths,baseMapping:h.LiberationSansRegularMapping,metrics:u.HelveticaRegularMetrics};t["Helvetica-Bold"]={name:"LiberationSans-Bold",factors:u.HelveticaBoldFactors,baseWidths:h.LiberationSansBoldWidths,baseMapping:h.LiberationSansBoldMapping,metrics:u.HelveticaBoldMetrics};t["Helvetica-Italic"]={name:"LiberationSans-Italic",factors:u.HelveticaItalicFactors,baseWidths:h.LiberationSansItalicWidths,baseMapping:h.LiberationSansItalicMapping,metrics:u.HelveticaItalicMetrics};t["Helvetica-BoldItalic"]={name:"LiberationSans-BoldItalic",factors:u.HelveticaBoldItalicFactors,baseWidths:h.LiberationSansBoldItalicWidths,baseMapping:h.LiberationSansBoldItalicMapping,metrics:u.HelveticaBoldItalicMetrics}}));function getXfaFontName(t){var r=(0,y.normalizeFontName)(t);return v()[r]}},(t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});r.CalibriRegularMetrics=r.CalibriRegularFactors=r.CalibriItalicMetrics=r.CalibriItalicFactors=r.CalibriBoldMetrics=r.CalibriBoldItalicMetrics=r.CalibriBoldItalicFactors=r.CalibriBoldFactors=void 0;r.CalibriBoldFactors=[1.3877,1,1,1,.97801,.92482,.89552,.91133,.81988,.97566,.98152,.93548,.93548,1.2798,.85284,.92794,1,.96134,1.54657,.91133,.91133,.91133,.91133,.91133,.91133,.91133,.91133,.91133,.91133,.82845,.82845,.85284,.85284,.85284,.75859,.92138,.83908,.7762,.73293,.87289,.73133,.7514,.81921,.87356,.95958,.59526,.75727,.69225,1.04924,.9121,.86943,.79795,.88198,.77958,.70864,.81055,.90399,.88653,.96017,.82577,.77892,.78257,.97507,1.54657,.97507,.85284,.89552,.90176,.88762,.8785,.75241,.8785,.90518,.95015,.77618,.8785,.88401,.91916,.86304,.88401,.91488,.8785,.8801,.8785,.8785,.91343,.7173,1.04106,.8785,.85075,.95794,.82616,.85162,.79492,.88331,1.69808,.88331,.85284,.97801,.89552,.91133,.89552,.91133,1.7801,.89552,1.24487,1.13254,1.12401,.96839,.85284,.68787,.70645,.85592,.90747,1.01466,1.0088,.90323,1,1.07463,1,.91056,.75806,1.19118,.96839,.78864,.82845,.84133,.75859,.83908,.83908,.83908,.83908,.83908,.83908,.77539,.73293,.73133,.73133,.73133,.73133,.95958,.95958,.95958,.95958,.88506,.9121,.86943,.86943,.86943,.86943,.86943,.85284,.87508,.90399,.90399,.90399,.90399,.77892,.79795,.90807,.88762,.88762,.88762,.88762,.88762,.88762,.8715,.75241,.90518,.90518,.90518,.90518,.88401,.88401,.88401,.88401,.8785,.8785,.8801,.8801,.8801,.8801,.8801,.90747,.89049,.8785,.8785,.8785,.8785,.85162,.8785,.85162,.83908,.88762,.83908,.88762,.83908,.88762,.73293,.75241,.73293,.75241,.73293,.75241,.73293,.75241,.87289,.83016,.88506,.93125,.73133,.90518,.73133,.90518,.73133,.90518,.73133,.90518,.73133,.90518,.81921,.77618,.81921,.77618,.81921,.77618,1,1,.87356,.8785,.91075,.89608,.95958,.88401,.95958,.88401,.95958,.88401,.95958,.88401,.95958,.88401,.76229,.90167,.59526,.91916,1,1,.86304,.69225,.88401,1,1,.70424,.79468,.91926,.88175,.70823,.94903,.9121,.8785,1,1,.9121,.8785,.87802,.88656,.8785,.86943,.8801,.86943,.8801,.86943,.8801,.87402,.89291,.77958,.91343,1,1,.77958,.91343,.70864,.7173,.70864,.7173,.70864,.7173,.70864,.7173,1,1,.81055,.75841,.81055,1.06452,.90399,.8785,.90399,.8785,.90399,.8785,.90399,.8785,.90399,.8785,.90399,.8785,.96017,.95794,.77892,.85162,.77892,.78257,.79492,.78257,.79492,.78257,.79492,.9297,.56892,.83908,.88762,.77539,.8715,.87508,.89049,1,1,.81055,1.04106,1.20528,1.20528,1,1.15543,.70674,.98387,.94721,1.33431,1.45894,.95161,1.06303,.83908,.80352,.57184,.6965,.56289,.82001,.56029,.81235,1.02988,.83908,.7762,.68156,.80367,.73133,.78257,.87356,.86943,.95958,.75727,.89019,1.04924,.9121,.7648,.86943,.87356,.79795,.78275,.81055,.77892,.9762,.82577,.99819,.84896,.95958,.77892,.96108,1.01407,.89049,1.02988,.94211,.96108,.8936,.84021,.87842,.96399,.79109,.89049,1.00813,1.02988,.86077,.87445,.92099,.84723,.86513,.8801,.75638,.85714,.78216,.79586,.87965,.94211,.97747,.78287,.97926,.84971,1.02988,.94211,.8801,.94211,.84971,.73133,1,1,1,1,1,1,1,1,1,1,1,1,.90264,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,.90518,1,1,1,1,1,1,1,1,1,1,1,1,.90548,1,1,1,1,1,1,.96017,.95794,.96017,.95794,.96017,.95794,.77892,.85162,1,1,.89552,.90527,1,.90363,.92794,.92794,.92794,.92794,.87012,.87012,.87012,.89552,.89552,1.42259,.71143,1.06152,1,1,1.03372,1.03372,.97171,1.4956,2.2807,.93835,.83406,.91133,.84107,.91133,1,1,1,.72021,1,1.23108,.83489,.88525,.88525,.81499,.90527,1.81055,.90527,1.81055,1.31006,1.53711,.94434,1.08696,1,.95018,.77192,.85284,.90747,1.17534,.69825,.9716,1.37077,.90747,.90747,.85356,.90747,.90747,1.44947,.85284,.8941,.8941,.70572,.8,.70572,.70572,.70572,.70572,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,.99862,.99862,1,1,1,1,1,1.08004,.91027,1,1,1,.99862,1,1,1,1,1,1,1,1,1,1,1,1,.90727,.90727,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1];r.CalibriBoldMetrics={lineHeight:1.2207,lineGap:.2207};r.CalibriBoldItalicFactors=[1.3877,1,1,1,.97801,.92482,.89552,.91133,.81988,.97566,.98152,.93548,.93548,1.2798,.85284,.92794,1,.96134,1.56239,.91133,.91133,.91133,.91133,.91133,.91133,.91133,.91133,.91133,.91133,.82845,.82845,.85284,.85284,.85284,.75859,.92138,.83908,.7762,.71805,.87289,.73133,.7514,.81921,.87356,.95958,.59526,.75727,.69225,1.04924,.90872,.85938,.79795,.87068,.77958,.69766,.81055,.90399,.88653,.96068,.82577,.77892,.78257,.97507,1.529,.97507,.85284,.89552,.90176,.94908,.86411,.74012,.86411,.88323,.95015,.86411,.86331,.88401,.91916,.86304,.88401,.9039,.86331,.86331,.86411,.86411,.90464,.70852,1.04106,.86331,.84372,.95794,.82616,.84548,.79492,.88331,1.69808,.88331,.85284,.97801,.89552,.91133,.89552,.91133,1.7801,.89552,1.24487,1.13254,1.19129,.96839,.85284,.68787,.70645,.85592,.90747,1.01466,1.0088,.90323,1,1.07463,1,.91056,.75806,1.19118,.96839,.78864,.82845,.84133,.75859,.83908,.83908,.83908,.83908,.83908,.83908,.77539,.71805,.73133,.73133,.73133,.73133,.95958,.95958,.95958,.95958,.88506,.90872,.85938,.85938,.85938,.85938,.85938,.85284,.87068,.90399,.90399,.90399,.90399,.77892,.79795,.90807,.94908,.94908,.94908,.94908,.94908,.94908,.85887,.74012,.88323,.88323,.88323,.88323,.88401,.88401,.88401,.88401,.8785,.86331,.86331,.86331,.86331,.86331,.86331,.90747,.89049,.86331,.86331,.86331,.86331,.84548,.86411,.84548,.83908,.94908,.83908,.94908,.83908,.94908,.71805,.74012,.71805,.74012,.71805,.74012,.71805,.74012,.87289,.79538,.88506,.92726,.73133,.88323,.73133,.88323,.73133,.88323,.73133,.88323,.73133,.88323,.81921,.86411,.81921,.86411,.81921,.86411,1,1,.87356,.86331,.91075,.8777,.95958,.88401,.95958,.88401,.95958,.88401,.95958,.88401,.95958,.88401,.76467,.90167,.59526,.91916,1,1,.86304,.69225,.88401,1,1,.70424,.77312,.91926,.88175,.70823,.94903,.90872,.86331,1,1,.90872,.86331,.86906,.88116,.86331,.85938,.86331,.85938,.86331,.85938,.86331,.87402,.86549,.77958,.90464,1,1,.77958,.90464,.69766,.70852,.69766,.70852,.69766,.70852,.69766,.70852,1,1,.81055,.75841,.81055,1.06452,.90399,.86331,.90399,.86331,.90399,.86331,.90399,.86331,.90399,.86331,.90399,.86331,.96068,.95794,.77892,.84548,.77892,.78257,.79492,.78257,.79492,.78257,.79492,.9297,.56892,.83908,.94908,.77539,.85887,.87068,.89049,1,1,.81055,1.04106,1.20528,1.20528,1,1.15543,.70088,.98387,.94721,1.33431,1.45894,.95161,1.48387,.83908,.80352,.57118,.6965,.56347,.79179,.55853,.80346,1.02988,.83908,.7762,.67174,.86036,.73133,.78257,.87356,.86441,.95958,.75727,.89019,1.04924,.90872,.74889,.85938,.87891,.79795,.7957,.81055,.77892,.97447,.82577,.97466,.87179,.95958,.77892,.94252,.95612,.8753,1.02988,.92733,.94252,.87411,.84021,.8728,.95612,.74081,.8753,1.02189,1.02988,.84814,.87445,.91822,.84723,.85668,.86331,.81344,.87581,.76422,.82046,.96057,.92733,.99375,.78022,.95452,.86015,1.02988,.92733,.86331,.92733,.86015,.73133,1,1,1,1,1,1,1,1,1,1,1,1,.90631,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,.88323,1,1,1,1,1,1,1,1,1,1,1,1,.85174,1,1,1,1,1,1,.96068,.95794,.96068,.95794,.96068,.95794,.77892,.84548,1,1,.89552,.90527,1,.90363,.92794,.92794,.92794,.89807,.87012,.87012,.87012,.89552,.89552,1.42259,.71094,1.06152,1,1,1.03372,1.03372,.97171,1.4956,2.2807,.92972,.83406,.91133,.83326,.91133,1,1,1,.72021,1,1.23108,.83489,.88525,.88525,.81499,.90616,1.81055,.90527,1.81055,1.3107,1.53711,.94434,1.08696,1,.95018,.77192,.85284,.90747,1.17534,.69825,.9716,1.37077,.90747,.90747,.85356,.90747,.90747,1.44947,.85284,.8941,.8941,.70572,.8,.70572,.70572,.70572,.70572,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,.99862,.99862,1,1,1,1,1,1.08004,.91027,1,1,1,.99862,1,1,1,1,1,1,1,1,1,1,1,1,.90727,.90727,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1];r.CalibriBoldItalicMetrics={lineHeight:1.2207,lineGap:.2207};r.CalibriItalicFactors=[1.3877,1,1,1,1.17223,1.1293,.89552,.91133,.80395,1.02269,1.15601,.91056,.91056,1.2798,.85284,.89807,1,.90861,1.39543,.91133,.91133,.91133,.91133,.91133,.91133,.91133,.91133,.91133,.91133,.96309,.96309,.85284,.85284,.85284,.83319,.88071,.8675,.81552,.72346,.85193,.73206,.7522,.81105,.86275,.90685,.6377,.77892,.75593,1.02638,.89249,.84118,.77452,.85374,.75186,.67789,.79776,.88844,.85066,.94309,.77818,.7306,.76659,1.10369,1.38313,1.10369,1.06139,.89552,.8739,.9245,.9245,.83203,.9245,.85865,1.09842,.9245,.9245,1.03297,1.07692,.90918,1.03297,.94959,.9245,.92274,.9245,.9245,1.02933,.77832,1.20562,.9245,.8916,.98986,.86621,.89453,.79004,.94152,1.77256,.94152,.85284,.97801,.89552,.91133,.89552,.91133,1.91729,.89552,1.17889,1.13254,1.16359,.92098,.85284,.68787,.71353,.84737,.90747,1.0088,1.0044,.87683,1,1.09091,1,.92229,.739,1.15642,.92098,.76288,.80504,.80972,.75859,.8675,.8675,.8675,.8675,.8675,.8675,.76318,.72346,.73206,.73206,.73206,.73206,.90685,.90685,.90685,.90685,.86477,.89249,.84118,.84118,.84118,.84118,.84118,.85284,.84557,.88844,.88844,.88844,.88844,.7306,.77452,.86331,.9245,.9245,.9245,.9245,.9245,.9245,.84843,.83203,.85865,.85865,.85865,.85865,.82601,.82601,.82601,.82601,.94469,.9245,.92274,.92274,.92274,.92274,.92274,.90747,.86651,.9245,.9245,.9245,.9245,.89453,.9245,.89453,.8675,.9245,.8675,.9245,.8675,.9245,.72346,.83203,.72346,.83203,.72346,.83203,.72346,.83203,.85193,.8875,.86477,.99034,.73206,.85865,.73206,.85865,.73206,.85865,.73206,.85865,.73206,.85865,.81105,.9245,.81105,.9245,.81105,.9245,1,1,.86275,.9245,.90872,.93591,.90685,.82601,.90685,.82601,.90685,.82601,.90685,1.03297,.90685,.82601,.77896,1.05611,.6377,1.07692,1,1,.90918,.75593,1.03297,1,1,.76032,.9375,.98156,.93407,.77261,1.11429,.89249,.9245,1,1,.89249,.9245,.92534,.86698,.9245,.84118,.92274,.84118,.92274,.84118,.92274,.8667,.86291,.75186,1.02933,1,1,.75186,1.02933,.67789,.77832,.67789,.77832,.67789,.77832,.67789,.77832,1,1,.79776,.97655,.79776,1.23023,.88844,.9245,.88844,.9245,.88844,.9245,.88844,.9245,.88844,.9245,.88844,.9245,.94309,.98986,.7306,.89453,.7306,.76659,.79004,.76659,.79004,.76659,.79004,1.09231,.54873,.8675,.9245,.76318,.84843,.84557,.86651,1,1,.79776,1.20562,1.18622,1.18622,1,1.1437,.67009,.96334,.93695,1.35191,1.40909,.95161,1.48387,.8675,.90861,.6192,.7363,.64824,.82411,.56321,.85696,1.23516,.8675,.81552,.7286,.84134,.73206,.76659,.86275,.84369,.90685,.77892,.85871,1.02638,.89249,.75828,.84118,.85984,.77452,.76466,.79776,.7306,.90782,.77818,.903,.87291,.90685,.7306,.99058,1.03667,.94635,1.23516,.9849,.99058,.92393,.8916,.942,1.03667,.75026,.94635,1.0297,1.23516,.90918,.94048,.98217,.89746,.84153,.92274,.82507,.88832,.84438,.88178,1.03525,.9849,1.00225,.78086,.97248,.89404,1.23516,.9849,.92274,.9849,.89404,.73206,1,1,1,1,1,1,1,1,1,1,1,1,.89693,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,.85865,1,1,1,1,1,1,1,1,1,1,1,1,.90933,1,1,1,1,1,1,.94309,.98986,.94309,.98986,.94309,.98986,.7306,.89453,1,1,.89552,.90527,1,.90186,1.12308,1.12308,1.12308,1.12308,1.2566,1.2566,1.2566,.89552,.89552,1.42259,.68994,1.03809,1,1,1.0176,1.0176,1.11523,1.4956,2.01462,.97858,.82616,.91133,.83437,.91133,1,1,1,.70508,1,1.23108,.79801,.84426,.84426,.774,.90572,1.81055,.90749,1.81055,1.28809,1.55469,.94434,1.07806,1,.97094,.7589,.85284,.90747,1.19658,.69825,.97622,1.33512,.90747,.90747,.85284,.90747,.90747,1.44947,.85284,.8941,.8941,.70572,.8,.70572,.70572,.70572,.70572,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,.99862,.99862,1,1,1,1,1,1.0336,.91027,1,1,1,.99862,1,1,1,1,1,1,1,1,1,1,1,1,1.05859,1.05859,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1];r.CalibriItalicMetrics={lineHeight:1.2207,lineGap:.2207};r.CalibriRegularFactors=[1.3877,1,1,1,1.17223,1.1293,.89552,.91133,.80395,1.02269,1.15601,.91056,.91056,1.2798,.85284,.89807,1,.90861,1.39016,.91133,.91133,.91133,.91133,.91133,.91133,.91133,.91133,.91133,.91133,.96309,.96309,.85284,.85284,.85284,.83319,.88071,.8675,.81552,.73834,.85193,.73206,.7522,.81105,.86275,.90685,.6377,.77892,.75593,1.02638,.89385,.85122,.77452,.86503,.75186,.68887,.79776,.88844,.85066,.94258,.77818,.7306,.76659,1.10369,1.39016,1.10369,1.06139,.89552,.8739,.86128,.94469,.8457,.94469,.89464,1.09842,.84636,.94469,1.03297,1.07692,.90918,1.03297,.95897,.94469,.9482,.94469,.94469,1.04692,.78223,1.20562,.94469,.90332,.98986,.86621,.90527,.79004,.94152,1.77256,.94152,.85284,.97801,.89552,.91133,.89552,.91133,1.91729,.89552,1.17889,1.13254,1.08707,.92098,.85284,.68787,.71353,.84737,.90747,1.0088,1.0044,.87683,1,1.09091,1,.92229,.739,1.15642,.92098,.76288,.80504,.80972,.75859,.8675,.8675,.8675,.8675,.8675,.8675,.76318,.73834,.73206,.73206,.73206,.73206,.90685,.90685,.90685,.90685,.86477,.89385,.85122,.85122,.85122,.85122,.85122,.85284,.85311,.88844,.88844,.88844,.88844,.7306,.77452,.86331,.86128,.86128,.86128,.86128,.86128,.86128,.8693,.8457,.89464,.89464,.89464,.89464,.82601,.82601,.82601,.82601,.94469,.94469,.9482,.9482,.9482,.9482,.9482,.90747,.86651,.94469,.94469,.94469,.94469,.90527,.94469,.90527,.8675,.86128,.8675,.86128,.8675,.86128,.73834,.8457,.73834,.8457,.73834,.8457,.73834,.8457,.85193,.92454,.86477,.9921,.73206,.89464,.73206,.89464,.73206,.89464,.73206,.89464,.73206,.89464,.81105,.84636,.81105,.84636,.81105,.84636,1,1,.86275,.94469,.90872,.95786,.90685,.82601,.90685,.82601,.90685,.82601,.90685,1.03297,.90685,.82601,.77741,1.05611,.6377,1.07692,1,1,.90918,.75593,1.03297,1,1,.76032,.90452,.98156,1.11842,.77261,1.11429,.89385,.94469,1,1,.89385,.94469,.95877,.86901,.94469,.85122,.9482,.85122,.9482,.85122,.9482,.8667,.90016,.75186,1.04692,1,1,.75186,1.04692,.68887,.78223,.68887,.78223,.68887,.78223,.68887,.78223,1,1,.79776,.92188,.79776,1.23023,.88844,.94469,.88844,.94469,.88844,.94469,.88844,.94469,.88844,.94469,.88844,.94469,.94258,.98986,.7306,.90527,.7306,.76659,.79004,.76659,.79004,.76659,.79004,1.09231,.54873,.8675,.86128,.76318,.8693,.85311,.86651,1,1,.79776,1.20562,1.18622,1.18622,1,1.1437,.67742,.96334,.93695,1.35191,1.40909,.95161,1.48387,.86686,.90861,.62267,.74359,.65649,.85498,.56963,.88254,1.23516,.8675,.81552,.75443,.84503,.73206,.76659,.86275,.85122,.90685,.77892,.85746,1.02638,.89385,.75657,.85122,.86275,.77452,.74171,.79776,.7306,.95165,.77818,.89772,.88831,.90685,.7306,.98142,1.02191,.96576,1.23516,.99018,.98142,.9236,.89258,.94035,1.02191,.78848,.96576,.9561,1.23516,.90918,.92578,.95424,.89746,.83969,.9482,.80113,.89442,.85208,.86155,.98022,.99018,1.00452,.81209,.99247,.89181,1.23516,.99018,.9482,.99018,.89181,.73206,1,1,1,1,1,1,1,1,1,1,1,1,.88844,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,.89464,1,1,1,1,1,1,1,1,1,1,1,1,.96766,1,1,1,1,1,1,.94258,.98986,.94258,.98986,.94258,.98986,.7306,.90527,1,1,.89552,.90527,1,.90186,1.12308,1.12308,1.12308,1.12308,1.2566,1.2566,1.2566,.89552,.89552,1.42259,.69043,1.03809,1,1,1.0176,1.0176,1.11523,1.4956,2.01462,.99331,.82616,.91133,.84286,.91133,1,1,1,.70508,1,1.23108,.79801,.84426,.84426,.774,.90527,1.81055,.90527,1.81055,1.28809,1.55469,.94434,1.07806,1,.97094,.7589,.85284,.90747,1.19658,.69825,.97622,1.33512,.90747,.90747,.85356,.90747,.90747,1.44947,.85284,.8941,.8941,.70572,.8,.70572,.70572,.70572,.70572,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,.99862,.99862,1,1,1,1,1,1.0336,.91027,1,1,1,.99862,1,1,1,1,1,1,1,1,1,1,1,1,1.05859,1.05859,1,1,1,1.07185,.99413,.96334,1.08065,1,1,1,1,1,1,1,1,1,1,1];r.CalibriRegularMetrics={lineHeight:1.2207,lineGap:.2207}},(t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});r.HelveticaRegularMetrics=r.HelveticaRegularFactors=r.HelveticaItalicMetrics=r.HelveticaItalicFactors=r.HelveticaBoldMetrics=r.HelveticaBoldItalicMetrics=r.HelveticaBoldItalicFactors=r.HelveticaBoldFactors=void 0;r.HelveticaBoldFactors=[.76116,1,1,1.0006,.99998,.99974,.99973,.99973,.99982,.99977,1.00087,.99998,.99998,.99959,1.00003,1.0006,.99998,1.0006,1.0006,.99973,.99973,.99973,.99973,.99973,.99973,.99973,.99973,.99973,.99973,.99998,1,1.00003,1.00003,1.00003,1.00026,.9999,.99977,.99977,.99977,.99977,1.00001,1.00026,1.00022,.99977,1.0006,.99973,.99977,1.00026,.99999,.99977,1.00022,1.00001,1.00022,.99977,1.00001,1.00026,.99977,1.00001,1.00016,1.00001,1.00001,1.00026,.99998,1.0006,.99998,1.00003,.99973,.99998,.99973,1.00026,.99973,1.00026,.99973,.99998,1.00026,1.00026,1.0006,1.0006,.99973,1.0006,.99982,1.00026,1.00026,1.00026,1.00026,.99959,.99973,.99998,1.00026,.99973,1.00022,.99973,.99973,1,.99959,1.00077,.99959,1.00003,.99998,.99973,.99973,.99973,.99973,1.00077,.99973,.99998,1.00025,.99968,.99973,1.00003,1.00025,.60299,1.00024,1.06409,1,1,.99998,1,.99973,1.0006,.99998,1,.99936,.99973,1.00002,1.00002,1.00002,1.00026,.99977,.99977,.99977,.99977,.99977,.99977,1,.99977,1.00001,1.00001,1.00001,1.00001,1.0006,1.0006,1.0006,1.0006,.99977,.99977,1.00022,1.00022,1.00022,1.00022,1.00022,1.00003,1.00022,.99977,.99977,.99977,.99977,1.00001,1.00001,1.00026,.99973,.99973,.99973,.99973,.99973,.99973,.99982,.99973,.99973,.99973,.99973,.99973,1.0006,1.0006,1.0006,1.0006,1.00026,1.00026,1.00026,1.00026,1.00026,1.00026,1.00026,1.06409,1.00026,1.00026,1.00026,1.00026,1.00026,.99973,1.00026,.99973,.99977,.99973,.99977,.99973,.99977,.99973,.99977,.99973,.99977,.99973,.99977,.99973,.99977,.99973,.99977,1.03374,.99977,1.00026,1.00001,.99973,1.00001,.99973,1.00001,.99973,1.00001,.99973,1.00001,.99973,1.00022,1.00026,1.00022,1.00026,1.00022,1.00026,1.00022,1.00026,.99977,1.00026,.99977,1.00026,1.0006,1.0006,1.0006,1.0006,1.0006,1.0006,1.0006,1.0006,1.0006,1.0006,1.00042,.99973,.99973,1.0006,.99977,.99973,.99973,1.00026,1.0006,1.00026,1.0006,1.00026,1.03828,1.00026,.99999,1.00026,1.0006,.99977,1.00026,.99977,1.00026,.99977,1.00026,.9993,.9998,1.00026,1.00022,1.00026,1.00022,1.00026,1.00022,1.00026,1,1.00016,.99977,.99959,.99977,.99959,.99977,.99959,1.00001,.99973,1.00001,.99973,1.00001,.99973,1.00001,.99973,1.00026,.99998,1.00026,.8121,1.00026,.99998,.99977,1.00026,.99977,1.00026,.99977,1.00026,.99977,1.00026,.99977,1.00026,.99977,1.00026,1.00016,1.00022,1.00001,.99973,1.00001,1.00026,1,1.00026,1,1.00026,1,1.0006,.99973,.99977,.99973,1,.99982,1.00022,1.00026,1.00001,.99973,1.00026,.99998,.99998,.99998,.99998,.99998,.99998,.99998,.99998,.99998,.99998,.99998,1.00034,.99977,1,.99997,1.00026,1.00078,1.00036,.99973,1.00013,1.0006,.99977,.99977,.99988,.85148,1.00001,1.00026,.99977,1.00022,1.0006,.99977,1.00001,.99999,.99977,1.00069,1.00022,.99977,1.00001,.99984,1.00026,1.00001,1.00024,1.00001,.9999,1,1.0006,1.00001,1.00041,.99962,1.00026,1.0006,.99995,1.00041,.99942,.99973,.99927,1.00082,.99902,1.00026,1.00087,1.0006,1.00069,.99973,.99867,.99973,.9993,1.00026,1.00049,1.00056,1,.99988,.99935,.99995,.99954,1.00055,.99945,1.00032,1.0006,.99995,1.00026,.99995,1.00032,1.00001,1.00008,.99971,1.00019,.9994,1.00001,1.0006,1.00044,.99973,1.00023,1.00047,1,.99942,.99561,.99989,1.00035,.99977,1.00035,.99977,1.00019,.99944,1.00001,1.00021,.99926,1.00035,1.00035,.99942,1.00048,.99999,.99977,1.00022,1.00035,1.00001,.99977,1.00026,.99989,1.00057,1.00001,.99936,1.00052,1.00012,.99996,1.00043,1,1.00035,.9994,.99976,1.00035,.99973,1.00052,1.00041,1.00119,1.00037,.99973,1.00002,.99986,1.00041,1.00041,.99902,.9996,1.00034,.99999,1.00026,.99999,1.00026,.99973,1.00052,.99973,1,.99973,1.00041,1.00075,.9994,1.0003,.99999,1,1.00041,.99955,1,.99915,.99973,.99973,1.00026,1.00119,.99955,.99973,1.0006,.99911,1.0006,1.00026,.99972,1.00026,.99902,1.00041,.99973,.99999,1,1,1.00038,1.0005,1.00016,1.00022,1.00016,1.00022,1.00016,1.00022,1.00001,.99973,1,1,.99973,1,1,.99955,1.0006,1.0006,1.0006,1.0006,1,1,1,.99973,.99973,.99972,1,1,1.00106,.99999,.99998,.99998,.99999,.99998,1.66475,1,.99973,.99973,1.00023,.99973,.99971,1.00047,1.00023,1,.99991,.99984,1.00002,1.00002,1.00002,1.00002,1,1,1,1,1,1,1,.99972,1,1.20985,1.39713,1.00003,1.00031,1.00015,1,.99561,1.00027,1.00031,1.00031,.99915,1.00031,1.00031,.99999,1.00003,.99999,.99999,1.41144,1.6,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.40579,1.40579,1.36625,.99999,1,.99861,.99861,1,1.00026,1.00026,1.00026,1.00026,.99972,.99999,.99999,.99999,.99999,1.40483,1,.99977,1.00054,1,1,.99953,.99962,1.00042,.9995,1,1,1,1,1,1,1,1,.99998,.99998,.99998,.99998,1,1,1,1,1,1,1,1,1,1,1];r.HelveticaBoldMetrics={lineHeight:1.2,lineGap:.2};r.HelveticaBoldItalicFactors=[.76116,1,1,1.0006,.99998,.99974,.99973,.99973,.99982,.99977,1.00087,.99998,.99998,.99959,1.00003,1.0006,.99998,1.0006,1.0006,.99973,.99973,.99973,.99973,.99973,.99973,.99973,.99973,.99973,.99973,.99998,1,1.00003,1.00003,1.00003,1.00026,.9999,.99977,.99977,.99977,.99977,1.00001,1.00026,1.00022,.99977,1.0006,.99973,.99977,1.00026,.99999,.99977,1.00022,1.00001,1.00022,.99977,1.00001,1.00026,.99977,1.00001,1.00016,1.00001,1.00001,1.00026,.99998,1.0006,.99998,1.00003,.99973,.99998,.99973,1.00026,.99973,1.00026,.99973,.99998,1.00026,1.00026,1.0006,1.0006,.99973,1.0006,.99982,1.00026,1.00026,1.00026,1.00026,.99959,.99973,.99998,1.00026,.99973,1.00022,.99973,.99973,1,.99959,1.00077,.99959,1.00003,.99998,.99973,.99973,.99973,.99973,1.00077,.99973,.99998,1.00025,.99968,.99973,1.00003,1.00025,.60299,1.00024,1.06409,1,1,.99998,1,.99973,1.0006,.99998,1,.99936,.99973,1.00002,1.00002,1.00002,1.00026,.99977,.99977,.99977,.99977,.99977,.99977,1,.99977,1.00001,1.00001,1.00001,1.00001,1.0006,1.0006,1.0006,1.0006,.99977,.99977,1.00022,1.00022,1.00022,1.00022,1.00022,1.00003,1.00022,.99977,.99977,.99977,.99977,1.00001,1.00001,1.00026,.99973,.99973,.99973,.99973,.99973,.99973,.99982,.99973,.99973,.99973,.99973,.99973,1.0006,1.0006,1.0006,1.0006,1.00026,1.00026,1.00026,1.00026,1.00026,1.00026,1.00026,1.06409,1.00026,1.00026,1.00026,1.00026,1.00026,.99973,1.00026,.99973,.99977,.99973,.99977,.99973,.99977,.99973,.99977,.99973,.99977,.99973,.99977,.99973,.99977,.99973,.99977,1.0044,.99977,1.00026,1.00001,.99973,1.00001,.99973,1.00001,.99973,1.00001,.99973,1.00001,.99973,1.00022,1.00026,1.00022,1.00026,1.00022,1.00026,1.00022,1.00026,.99977,1.00026,.99977,1.00026,1.0006,1.0006,1.0006,1.0006,1.0006,1.0006,1.0006,1.0006,1.0006,1.0006,.99971,.99973,.99973,1.0006,.99977,.99973,.99973,1.00026,1.0006,1.00026,1.0006,1.00026,1.01011,1.00026,.99999,1.00026,1.0006,.99977,1.00026,.99977,1.00026,.99977,1.00026,.9993,.9998,1.00026,1.00022,1.00026,1.00022,1.00026,1.00022,1.00026,1,1.00016,.99977,.99959,.99977,.99959,.99977,.99959,1.00001,.99973,1.00001,.99973,1.00001,.99973,1.00001,.99973,1.00026,.99998,1.00026,.8121,1.00026,.99998,.99977,1.00026,.99977,1.00026,.99977,1.00026,.99977,1.00026,.99977,1.00026,.99977,1.00026,1.00016,1.00022,1.00001,.99973,1.00001,1.00026,1,1.00026,1,1.00026,1,1.0006,.99973,.99977,.99973,1,.99982,1.00022,1.00026,1.00001,.99973,1.00026,.99998,.99998,.99998,.99998,.99998,.99998,.99998,.99998,.99998,.99998,.99998,.99998,.99977,1,1,1.00026,.99969,.99972,.99981,.9998,1.0006,.99977,.99977,1.00022,.91155,1.00001,1.00026,.99977,1.00022,1.0006,.99977,1.00001,.99999,.99977,.99966,1.00022,1.00032,1.00001,.99944,1.00026,1.00001,.99968,1.00001,1.00047,1,1.0006,1.00001,.99981,1.00101,1.00026,1.0006,.99948,.99981,1.00064,.99973,.99942,1.00101,1.00061,1.00026,1.00069,1.0006,1.00014,.99973,1.01322,.99973,1.00065,1.00026,1.00012,.99923,1,1.00064,1.00076,.99948,1.00055,1.00063,1.00007,.99943,1.0006,.99948,1.00026,.99948,.99943,1.00001,1.00001,1.00029,1.00038,1.00035,1.00001,1.0006,1.0006,.99973,.99978,1.00001,1.00057,.99989,.99967,.99964,.99967,.99977,.99999,.99977,1.00038,.99977,1.00001,.99973,1.00066,.99967,.99967,1.00041,.99998,.99999,.99977,1.00022,.99967,1.00001,.99977,1.00026,.99964,1.00031,1.00001,.99999,.99999,1,1.00023,1,1,.99999,1.00035,1.00001,.99999,.99973,.99977,.99999,1.00058,.99973,.99973,.99955,.9995,1.00026,1.00026,1.00032,.99989,1.00034,.99999,1.00026,1.00026,1.00026,.99973,.45998,.99973,1.00026,.99973,1.00001,.99999,.99982,.99994,.99996,1,1.00042,1.00044,1.00029,1.00023,.99973,.99973,1.00026,.99949,1.00002,.99973,1.0006,1.0006,1.0006,.99975,1.00026,1.00026,1.00032,.98685,.99973,1.00026,1,1,.99966,1.00044,1.00016,1.00022,1.00016,1.00022,1.00016,1.00022,1.00001,.99973,1,1,.99973,1,1,.99955,1.0006,1.0006,1.0006,1.0006,1,1,1,.99973,.99973,.99972,1,1,1.00106,.99999,.99998,.99998,.99999,.99998,1.66475,1,.99973,.99973,1,.99973,.99971,.99978,1,1,.99991,.99984,1.00002,1.00002,1.00002,1.00002,1.00098,1,1,1,1.00049,1,1,.99972,1,1.20985,1.39713,1.00003,1.00031,1.00015,1,.99561,1.00027,1.00031,1.00031,.99915,1.00031,1.00031,.99999,1.00003,.99999,.99999,1.41144,1.6,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.40579,1.40579,1.36625,.99999,1,.99861,.99861,1,1.00026,1.00026,1.00026,1.00026,.99972,.99999,.99999,.99999,.99999,1.40483,1,.99977,1.00054,1,1,.99953,.99962,1.00042,.9995,1,1,1,1,1,1,1,1,.99998,.99998,.99998,.99998,1,1,1,1,1,1,1,1,1,1,1];r.HelveticaBoldItalicMetrics={lineHeight:1.35,lineGap:.2};r.HelveticaItalicFactors=[.76116,1,1,1.0006,1.0006,1.00006,.99973,.99973,.99982,1.00001,1.00043,.99998,.99998,.99959,1.00003,1.0006,.99998,1.0006,1.0006,.99973,.99973,.99973,.99973,.99973,.99973,.99973,.99973,.99973,.99973,1.0006,1,1.00003,1.00003,1.00003,.99973,.99987,1.00001,1.00001,.99977,.99977,1.00001,1.00026,1.00022,.99977,1.0006,1,1.00001,.99973,.99999,.99977,1.00022,1.00001,1.00022,.99977,1.00001,1.00026,.99977,1.00001,1.00016,1.00001,1.00001,1.00026,1.0006,1.0006,1.0006,.99949,.99973,.99998,.99973,.99973,1,.99973,.99973,1.0006,.99973,.99973,.99924,.99924,1,.99924,.99999,.99973,.99973,.99973,.99973,.99998,1,1.0006,.99973,1,.99977,1,1,1,1.00005,1.0009,1.00005,1.00003,.99998,.99973,.99973,.99973,.99973,1.0009,.99973,.99998,1.00025,.99968,.99973,1.00003,1.00025,.60299,1.00024,1.06409,1,1,.99998,1,.9998,1.0006,.99998,1,.99936,.99973,1.00002,1.00002,1.00002,1.00026,1.00001,1.00001,1.00001,1.00001,1.00001,1.00001,1,.99977,1.00001,1.00001,1.00001,1.00001,1.0006,1.0006,1.0006,1.0006,.99977,.99977,1.00022,1.00022,1.00022,1.00022,1.00022,1.00003,1.00022,.99977,.99977,.99977,.99977,1.00001,1.00001,1.00026,.99973,.99973,.99973,.99973,.99973,.99973,.99982,1,.99973,.99973,.99973,.99973,1.0006,1.0006,1.0006,1.0006,.99973,.99973,.99973,.99973,.99973,.99973,.99973,1.06409,1.00026,.99973,.99973,.99973,.99973,1,.99973,1,1.00001,.99973,1.00001,.99973,1.00001,.99973,.99977,1,.99977,1,.99977,1,.99977,1,.99977,1.0288,.99977,.99973,1.00001,.99973,1.00001,.99973,1.00001,.99973,1.00001,.99973,1.00001,.99973,1.00022,.99973,1.00022,.99973,1.00022,.99973,1.00022,.99973,.99977,.99973,.99977,.99973,1.0006,1.0006,1.0006,1.0006,1.0006,1.0006,1.0006,.99924,1.0006,1.0006,.99946,1.00034,1,.99924,1.00001,1,1,.99973,.99924,.99973,.99924,.99973,1.06311,.99973,1.00024,.99973,.99924,.99977,.99973,.99977,.99973,.99977,.99973,1.00041,.9998,.99973,1.00022,.99973,1.00022,.99973,1.00022,.99973,1,1.00016,.99977,.99998,.99977,.99998,.99977,.99998,1.00001,1,1.00001,1,1.00001,1,1.00001,1,1.00026,1.0006,1.00026,.89547,1.00026,1.0006,.99977,.99973,.99977,.99973,.99977,.99973,.99977,.99973,.99977,.99973,.99977,.99973,1.00016,.99977,1.00001,1,1.00001,1.00026,1,1.00026,1,1.00026,1,.99924,.99973,1.00001,.99973,1,.99982,1.00022,1.00026,1.00001,1,1.00026,1.0006,.99998,.99998,.99998,.99998,.99998,.99998,.99998,.99998,.99998,.99998,.99998,1.00001,1,1.00054,.99977,1.00084,1.00007,.99973,1.00013,.99924,1.00001,1.00001,.99945,.91221,1.00001,1.00026,.99977,1.00022,1.0006,1.00001,1.00001,.99999,.99977,.99933,1.00022,1.00054,1.00001,1.00065,1.00026,1.00001,1.0001,1.00001,1.00052,1,1.0006,1.00001,.99945,.99897,.99968,.99924,1.00036,.99945,.99949,1,1.0006,.99897,.99918,.99968,.99911,.99924,1,.99962,1.01487,1,1.0005,.99973,1.00012,1.00043,1,.99995,.99994,1.00036,.99947,1.00019,1.00063,1.00025,.99924,1.00036,.99973,1.00036,1.00025,1.00001,1.00001,1.00027,1.0001,1.00068,1.00001,1.0006,1.0006,1,1.00008,.99957,.99972,.9994,.99954,.99975,1.00051,1.00001,1.00019,1.00001,1.0001,.99986,1.00001,1.00001,1.00038,.99954,.99954,.9994,1.00066,.99999,.99977,1.00022,1.00054,1.00001,.99977,1.00026,.99975,1.0001,1.00001,.99993,.9995,.99955,1.00016,.99978,.99974,1.00019,1.00022,.99955,1.00053,.99973,1.00089,1.00005,.99967,1.00048,.99973,1.00002,1.00034,.99973,.99973,.99964,1.00006,1.00066,.99947,.99973,.98894,.99973,1,.44898,1,.99946,1,1.00039,1.00082,.99991,.99991,.99985,1.00022,1.00023,1.00061,1.00006,.99966,.99973,.99973,.99973,1.00019,1.0008,1,.99924,.99924,.99924,.99983,1.00044,.99973,.99964,.98332,1,.99973,1,1,.99962,.99895,1.00016,.99977,1.00016,.99977,1.00016,.99977,1.00001,1,1,1,.99973,1,1,.99955,.99924,.99924,.99924,.99924,.99998,.99998,.99998,.99973,.99973,.99972,1,1,1.00267,.99999,.99998,.99998,1,.99998,1.66475,1,.99973,.99973,1.00023,.99973,1.00423,.99925,.99999,1,.99991,.99984,1.00002,1.00002,1.00002,1.00002,1.00049,1,1.00245,1,1,1,1,.96329,1,1.20985,1.39713,1.00003,.8254,1.00015,1,1.00035,1.00027,1.00031,1.00031,1.00003,1.00031,1.00031,.99999,1.00003,.99999,.99999,1.41144,1.6,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.40579,1.40579,1.36625,.99999,1,.99861,.99861,1,1.00026,1.00026,1.00026,1.00026,.95317,.99999,.99999,.99999,.99999,1.40483,1,.99977,1.00054,1,1,.99953,.99962,1.00042,.9995,1,1,1,1,1,1,1,1,.99998,.99998,.99998,.99998,1,1,1,1,1,1,1,1,1,1,1];r.HelveticaItalicMetrics={lineHeight:1.35,lineGap:.2};r.HelveticaRegularFactors=[.76116,1,1,1.0006,1.0006,1.00006,.99973,.99973,.99982,1.00001,1.00043,.99998,.99998,.99959,1.00003,1.0006,.99998,1.0006,1.0006,.99973,.99973,.99973,.99973,.99973,.99973,.99973,.99973,.99973,.99973,1.0006,1,1.00003,1.00003,1.00003,.99973,.99987,1.00001,1.00001,.99977,.99977,1.00001,1.00026,1.00022,.99977,1.0006,1,1.00001,.99973,.99999,.99977,1.00022,1.00001,1.00022,.99977,1.00001,1.00026,.99977,1.00001,1.00016,1.00001,1.00001,1.00026,1.0006,1.0006,1.0006,.99949,.99973,.99998,.99973,.99973,1,.99973,.99973,1.0006,.99973,.99973,.99924,.99924,1,.99924,.99999,.99973,.99973,.99973,.99973,.99998,1,1.0006,.99973,1,.99977,1,1,1,1.00005,1.0009,1.00005,1.00003,.99998,.99973,.99973,.99973,.99973,1.0009,.99973,.99998,1.00025,.99968,.99973,1.00003,1.00025,.60299,1.00024,1.06409,1,1,.99998,1,.9998,1.0006,.99998,1,.99936,.99973,1.00002,1.00002,1.00002,1.00026,1.00001,1.00001,1.00001,1.00001,1.00001,1.00001,1,.99977,1.00001,1.00001,1.00001,1.00001,1.0006,1.0006,1.0006,1.0006,.99977,.99977,1.00022,1.00022,1.00022,1.00022,1.00022,1.00003,1.00022,.99977,.99977,.99977,.99977,1.00001,1.00001,1.00026,.99973,.99973,.99973,.99973,.99973,.99973,.99982,1,.99973,.99973,.99973,.99973,1.0006,1.0006,1.0006,1.0006,.99973,.99973,.99973,.99973,.99973,.99973,.99973,1.06409,1.00026,.99973,.99973,.99973,.99973,1,.99973,1,1.00001,.99973,1.00001,.99973,1.00001,.99973,.99977,1,.99977,1,.99977,1,.99977,1,.99977,1.04596,.99977,.99973,1.00001,.99973,1.00001,.99973,1.00001,.99973,1.00001,.99973,1.00001,.99973,1.00022,.99973,1.00022,.99973,1.00022,.99973,1.00022,.99973,.99977,.99973,.99977,.99973,1.0006,1.0006,1.0006,1.0006,1.0006,1.0006,1.0006,.99924,1.0006,1.0006,1.00019,1.00034,1,.99924,1.00001,1,1,.99973,.99924,.99973,.99924,.99973,1.02572,.99973,1.00005,.99973,.99924,.99977,.99973,.99977,.99973,.99977,.99973,.99999,.9998,.99973,1.00022,.99973,1.00022,.99973,1.00022,.99973,1,1.00016,.99977,.99998,.99977,.99998,.99977,.99998,1.00001,1,1.00001,1,1.00001,1,1.00001,1,1.00026,1.0006,1.00026,.84533,1.00026,1.0006,.99977,.99973,.99977,.99973,.99977,.99973,.99977,.99973,.99977,.99973,.99977,.99973,1.00016,.99977,1.00001,1,1.00001,1.00026,1,1.00026,1,1.00026,1,.99924,.99973,1.00001,.99973,1,.99982,1.00022,1.00026,1.00001,1,1.00026,1.0006,.99998,.99998,.99998,.99998,.99998,.99998,.99998,.99998,.99998,.99998,.99998,.99928,1,.99977,1.00013,1.00055,.99947,.99945,.99941,.99924,1.00001,1.00001,1.0004,.91621,1.00001,1.00026,.99977,1.00022,1.0006,1.00001,1.00005,.99999,.99977,1.00015,1.00022,.99977,1.00001,.99973,1.00026,1.00001,1.00019,1.00001,.99946,1,1.0006,1.00001,.99978,1.00045,.99973,.99924,1.00023,.99978,.99966,1,1.00065,1.00045,1.00019,.99973,.99973,.99924,1,1,.96499,1,1.00055,.99973,1.00008,1.00027,1,.9997,.99995,1.00023,.99933,1.00019,1.00015,1.00031,.99924,1.00023,.99973,1.00023,1.00031,1.00001,.99928,1.00029,1.00092,1.00035,1.00001,1.0006,1.0006,1,.99988,.99975,1,1.00082,.99561,.9996,1.00035,1.00001,.99962,1.00001,1.00092,.99964,1.00001,.99963,.99999,1.00035,1.00035,1.00082,.99962,.99999,.99977,1.00022,1.00035,1.00001,.99977,1.00026,.9996,.99967,1.00001,1.00034,1.00074,1.00054,1.00053,1.00063,.99971,.99962,1.00035,.99975,.99977,.99973,1.00043,.99953,1.0007,.99915,.99973,1.00008,.99892,1.00073,1.00073,1.00114,.99915,1.00073,.99955,.99973,1.00092,.99973,1,.99998,1,1.0003,1,1.00043,1.00001,.99969,1.0003,1,1.00035,1.00001,.9995,1,1.00092,.99973,.99973,.99973,1.0007,.9995,1,.99924,1.0006,.99924,.99972,1.00062,.99973,1.00114,1.00073,1,.99955,1,1,1.00047,.99968,1.00016,.99977,1.00016,.99977,1.00016,.99977,1.00001,1,1,1,.99973,1,1,.99955,.99924,.99924,.99924,.99924,.99998,.99998,.99998,.99973,.99973,.99972,1,1,1.00267,.99999,.99998,.99998,1,.99998,1.66475,1,.99973,.99973,1.00023,.99973,.99971,.99925,1.00023,1,.99991,.99984,1.00002,1.00002,1.00002,1.00002,1,1,1,1,1,1,1,.96329,1,1.20985,1.39713,1.00003,.8254,1.00015,1,1.00035,1.00027,1.00031,1.00031,.99915,1.00031,1.00031,.99999,1.00003,.99999,.99999,1.41144,1.6,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.40579,1.40579,1.36625,.99999,1,.99861,.99861,1,1.00026,1.00026,1.00026,1.00026,.95317,.99999,.99999,.99999,.99999,1.40483,1,.99977,1.00054,1,1,.99953,.99962,1.00042,.9995,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1];r.HelveticaRegularMetrics={lineHeight:1.2,lineGap:.2}},(t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});r.LiberationSansRegularWidths=r.LiberationSansRegularMapping=r.LiberationSansItalicWidths=r.LiberationSansItalicMapping=r.LiberationSansBoldWidths=r.LiberationSansBoldMapping=r.LiberationSansBoldItalicWidths=r.LiberationSansBoldItalicMapping=void 0;r.LiberationSansBoldWidths=[365,0,333,278,333,474,556,556,889,722,238,333,333,389,584,278,333,278,278,556,556,556,556,556,556,556,556,556,556,333,333,584,584,584,611,975,722,722,722,722,667,611,778,722,278,556,722,611,833,722,778,667,778,722,667,611,722,667,944,667,667,611,333,278,333,584,556,333,556,611,556,611,556,333,611,611,278,278,556,278,889,611,611,611,611,389,556,333,611,556,778,556,556,500,389,280,389,584,333,556,556,556,556,280,556,333,737,370,556,584,737,552,400,549,333,333,333,576,556,278,333,333,365,556,834,834,834,611,722,722,722,722,722,722,1e3,722,667,667,667,667,278,278,278,278,722,722,778,778,778,778,778,584,778,722,722,722,722,667,667,611,556,556,556,556,556,556,889,556,556,556,556,556,278,278,278,278,611,611,611,611,611,611,611,549,611,611,611,611,611,556,611,556,722,556,722,556,722,556,722,556,722,556,722,556,722,556,722,719,722,611,667,556,667,556,667,556,667,556,667,556,778,611,778,611,778,611,778,611,722,611,722,611,278,278,278,278,278,278,278,278,278,278,785,556,556,278,722,556,556,611,278,611,278,611,385,611,479,611,278,722,611,722,611,722,611,708,723,611,778,611,778,611,778,611,1e3,944,722,389,722,389,722,389,667,556,667,556,667,556,667,556,611,333,611,479,611,333,722,611,722,611,722,611,722,611,722,611,722,611,944,778,667,556,667,611,500,611,500,611,500,278,556,722,556,1e3,889,778,611,667,556,611,333,333,333,333,333,333,333,333,333,333,333,465,722,333,853,906,474,825,927,838,278,722,722,601,719,667,611,722,778,278,722,667,833,722,644,778,722,667,600,611,667,821,667,809,802,278,667,615,451,611,278,582,615,610,556,606,475,460,611,541,278,558,556,612,556,445,611,766,619,520,684,446,582,715,576,753,845,278,582,611,582,845,667,669,885,567,711,667,278,276,556,1094,1062,875,610,722,622,719,722,719,722,567,712,667,904,626,719,719,610,702,833,722,778,719,667,722,611,622,854,667,730,703,1005,1019,870,979,719,711,1031,719,556,618,615,417,635,556,709,497,615,615,500,635,740,604,611,604,611,556,490,556,875,556,615,581,833,844,729,854,615,552,854,583,556,556,611,417,552,556,278,281,278,969,906,611,500,615,556,604,778,611,487,447,944,778,944,778,944,778,667,556,333,333,556,1e3,1e3,552,278,278,278,278,500,500,500,556,556,350,1e3,1e3,240,479,333,333,604,333,167,396,556,556,1094,556,885,489,1115,1e3,768,600,834,834,834,834,1e3,500,1e3,500,1e3,500,500,494,612,823,713,584,549,713,979,722,274,549,549,583,549,549,604,584,604,604,708,625,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,729,604,604,354,354,1e3,990,990,990,990,494,604,604,604,604,354,1021,1052,917,750,750,531,656,594,510,500,750,750,611,611,333,333,333,333,333,333,333,333,222,222,333,333,333,333,333,333,333,333];r.LiberationSansBoldMapping=[-1,-1,-1,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,161,162,163,164,165,166,167,168,169,170,171,172,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255,256,257,258,259,260,261,262,263,264,265,266,267,268,269,270,271,272,273,274,275,276,277,278,279,280,281,282,283,284,285,286,287,288,289,290,291,292,293,294,295,296,297,298,299,300,301,302,303,304,305,306,307,308,309,310,311,312,313,314,315,316,317,318,319,320,321,322,323,324,325,326,327,328,329,330,331,332,333,334,335,336,337,338,339,340,341,342,343,344,345,346,347,348,349,350,351,352,353,354,355,356,357,358,359,360,361,362,363,364,365,366,367,368,369,370,371,372,373,374,375,376,377,378,379,380,381,382,383,402,506,507,508,509,510,511,536,537,538,539,710,711,713,728,729,730,731,732,733,900,901,902,903,904,905,906,908,910,911,912,913,914,915,916,917,918,919,920,921,922,923,924,925,926,927,928,929,931,932,933,934,935,936,937,938,939,940,941,942,943,944,945,946,947,948,949,950,951,952,953,954,955,956,957,958,959,960,961,962,963,964,965,966,967,968,969,970,971,972,973,974,1024,1025,1026,1027,1028,1029,1030,1031,1032,1033,1034,1035,1036,1037,1038,1039,1040,1041,1042,1043,1044,1045,1046,1047,1048,1049,1050,1051,1052,1053,1054,1055,1056,1057,1058,1059,1060,1061,1062,1063,1064,1065,1066,1067,1068,1069,1070,1071,1072,1073,1074,1075,1076,1077,1078,1079,1080,1081,1082,1083,1084,1085,1086,1087,1088,1089,1090,1091,1092,1093,1094,1095,1096,1097,1098,1099,1100,1101,1102,1103,1104,1105,1106,1107,1108,1109,1110,1111,1112,1113,1114,1115,1116,1117,1118,1119,1138,1139,1168,1169,7808,7809,7810,7811,7812,7813,7922,7923,8208,8209,8211,8212,8213,8215,8216,8217,8218,8219,8220,8221,8222,8224,8225,8226,8230,8240,8242,8243,8249,8250,8252,8254,8260,8319,8355,8356,8359,8364,8453,8467,8470,8482,8486,8494,8539,8540,8541,8542,8592,8593,8594,8595,8596,8597,8616,8706,8710,8719,8721,8722,8730,8734,8735,8745,8747,8776,8800,8801,8804,8805,8962,8976,8992,8993,9472,9474,9484,9488,9492,9496,9500,9508,9516,9524,9532,9552,9553,9554,9555,9556,9557,9558,9559,9560,9561,9562,9563,9564,9565,9566,9567,9568,9569,9570,9571,9572,9573,9574,9575,9576,9577,9578,9579,9580,9600,9604,9608,9612,9616,9617,9618,9619,9632,9633,9642,9643,9644,9650,9658,9660,9668,9674,9675,9679,9688,9689,9702,9786,9787,9788,9792,9794,9824,9827,9829,9830,9834,9835,9836,61441,61442,61445,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1];r.LiberationSansBoldItalicWidths=[365,0,333,278,333,474,556,556,889,722,238,333,333,389,584,278,333,278,278,556,556,556,556,556,556,556,556,556,556,333,333,584,584,584,611,975,722,722,722,722,667,611,778,722,278,556,722,611,833,722,778,667,778,722,667,611,722,667,944,667,667,611,333,278,333,584,556,333,556,611,556,611,556,333,611,611,278,278,556,278,889,611,611,611,611,389,556,333,611,556,778,556,556,500,389,280,389,584,333,556,556,556,556,280,556,333,737,370,556,584,737,552,400,549,333,333,333,576,556,278,333,333,365,556,834,834,834,611,722,722,722,722,722,722,1e3,722,667,667,667,667,278,278,278,278,722,722,778,778,778,778,778,584,778,722,722,722,722,667,667,611,556,556,556,556,556,556,889,556,556,556,556,556,278,278,278,278,611,611,611,611,611,611,611,549,611,611,611,611,611,556,611,556,722,556,722,556,722,556,722,556,722,556,722,556,722,556,722,740,722,611,667,556,667,556,667,556,667,556,667,556,778,611,778,611,778,611,778,611,722,611,722,611,278,278,278,278,278,278,278,278,278,278,782,556,556,278,722,556,556,611,278,611,278,611,396,611,479,611,278,722,611,722,611,722,611,708,723,611,778,611,778,611,778,611,1e3,944,722,389,722,389,722,389,667,556,667,556,667,556,667,556,611,333,611,479,611,333,722,611,722,611,722,611,722,611,722,611,722,611,944,778,667,556,667,611,500,611,500,611,500,278,556,722,556,1e3,889,778,611,667,556,611,333,333,333,333,333,333,333,333,333,333,333,333,722,333,854,906,473,844,930,847,278,722,722,610,671,667,611,722,778,278,722,667,833,722,657,778,718,667,590,611,667,822,667,829,781,278,667,620,479,611,278,591,620,621,556,610,479,492,611,558,278,566,556,603,556,450,611,712,605,532,664,409,591,704,578,773,834,278,591,611,591,834,667,667,886,614,719,667,278,278,556,1094,1042,854,622,719,677,719,722,708,722,614,722,667,927,643,719,719,615,687,833,722,778,719,667,722,611,677,781,667,729,708,979,989,854,1e3,708,719,1042,729,556,619,604,534,618,556,736,510,611,611,507,622,740,604,611,611,611,556,889,556,885,556,646,583,889,935,707,854,594,552,865,589,556,556,611,469,563,556,278,278,278,969,906,611,507,619,556,611,778,611,575,467,944,778,944,778,944,778,667,556,333,333,556,1e3,1e3,552,278,278,278,278,500,500,500,556,556,350,1e3,1e3,240,479,333,333,604,333,167,396,556,556,1104,556,885,516,1146,1e3,768,600,834,834,834,834,999,500,1e3,500,1e3,500,500,494,612,823,713,584,549,713,979,722,274,549,549,583,549,549,604,584,604,604,708,625,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,729,604,604,354,354,1e3,990,990,990,990,494,604,604,604,604,354,1021,1052,917,750,750,531,656,594,510,500,750,750,611,611,333,333,333,333,333,333,333,333,222,222,333,333,333,333,333,333,333,333];r.LiberationSansBoldItalicMapping=[-1,-1,-1,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,161,162,163,164,165,166,167,168,169,170,171,172,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255,256,257,258,259,260,261,262,263,264,265,266,267,268,269,270,271,272,273,274,275,276,277,278,279,280,281,282,283,284,285,286,287,288,289,290,291,292,293,294,295,296,297,298,299,300,301,302,303,304,305,306,307,308,309,310,311,312,313,314,315,316,317,318,319,320,321,322,323,324,325,326,327,328,329,330,331,332,333,334,335,336,337,338,339,340,341,342,343,344,345,346,347,348,349,350,351,352,353,354,355,356,357,358,359,360,361,362,363,364,365,366,367,368,369,370,371,372,373,374,375,376,377,378,379,380,381,382,383,402,506,507,508,509,510,511,536,537,538,539,710,711,713,728,729,730,731,732,733,900,901,902,903,904,905,906,908,910,911,912,913,914,915,916,917,918,919,920,921,922,923,924,925,926,927,928,929,931,932,933,934,935,936,937,938,939,940,941,942,943,944,945,946,947,948,949,950,951,952,953,954,955,956,957,958,959,960,961,962,963,964,965,966,967,968,969,970,971,972,973,974,1024,1025,1026,1027,1028,1029,1030,1031,1032,1033,1034,1035,1036,1037,1038,1039,1040,1041,1042,1043,1044,1045,1046,1047,1048,1049,1050,1051,1052,1053,1054,1055,1056,1057,1058,1059,1060,1061,1062,1063,1064,1065,1066,1067,1068,1069,1070,1071,1072,1073,1074,1075,1076,1077,1078,1079,1080,1081,1082,1083,1084,1085,1086,1087,1088,1089,1090,1091,1092,1093,1094,1095,1096,1097,1098,1099,1100,1101,1102,1103,1104,1105,1106,1107,1108,1109,1110,1111,1112,1113,1114,1115,1116,1117,1118,1119,1138,1139,1168,1169,7808,7809,7810,7811,7812,7813,7922,7923,8208,8209,8211,8212,8213,8215,8216,8217,8218,8219,8220,8221,8222,8224,8225,8226,8230,8240,8242,8243,8249,8250,8252,8254,8260,8319,8355,8356,8359,8364,8453,8467,8470,8482,8486,8494,8539,8540,8541,8542,8592,8593,8594,8595,8596,8597,8616,8706,8710,8719,8721,8722,8730,8734,8735,8745,8747,8776,8800,8801,8804,8805,8962,8976,8992,8993,9472,9474,9484,9488,9492,9496,9500,9508,9516,9524,9532,9552,9553,9554,9555,9556,9557,9558,9559,9560,9561,9562,9563,9564,9565,9566,9567,9568,9569,9570,9571,9572,9573,9574,9575,9576,9577,9578,9579,9580,9600,9604,9608,9612,9616,9617,9618,9619,9632,9633,9642,9643,9644,9650,9658,9660,9668,9674,9675,9679,9688,9689,9702,9786,9787,9788,9792,9794,9824,9827,9829,9830,9834,9835,9836,61441,61442,61445,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1];r.LiberationSansItalicWidths=[365,0,333,278,278,355,556,556,889,667,191,333,333,389,584,278,333,278,278,556,556,556,556,556,556,556,556,556,556,278,278,584,584,584,556,1015,667,667,722,722,667,611,778,722,278,500,667,556,833,722,778,667,778,722,667,611,722,667,944,667,667,611,278,278,278,469,556,333,556,556,500,556,556,278,556,556,222,222,500,222,833,556,556,556,556,333,500,278,556,500,722,500,500,500,334,260,334,584,333,556,556,556,556,260,556,333,737,370,556,584,737,552,400,549,333,333,333,576,537,278,333,333,365,556,834,834,834,611,667,667,667,667,667,667,1e3,722,667,667,667,667,278,278,278,278,722,722,778,778,778,778,778,584,778,722,722,722,722,667,667,611,556,556,556,556,556,556,889,500,556,556,556,556,278,278,278,278,556,556,556,556,556,556,556,549,611,556,556,556,556,500,556,500,667,556,667,556,667,556,722,500,722,500,722,500,722,500,722,625,722,556,667,556,667,556,667,556,667,556,667,556,778,556,778,556,778,556,778,556,722,556,722,556,278,278,278,278,278,278,278,222,278,278,733,444,500,222,667,500,500,556,222,556,222,556,281,556,400,556,222,722,556,722,556,722,556,615,723,556,778,556,778,556,778,556,1e3,944,722,333,722,333,722,333,667,500,667,500,667,500,667,500,611,278,611,354,611,278,722,556,722,556,722,556,722,556,722,556,722,556,944,722,667,500,667,611,500,611,500,611,500,222,556,667,556,1e3,889,778,611,667,500,611,278,333,333,333,333,333,333,333,333,333,333,333,667,278,789,846,389,794,865,775,222,667,667,570,671,667,611,722,778,278,667,667,833,722,648,778,725,667,600,611,667,837,667,831,761,278,667,570,439,555,222,550,570,571,500,556,439,463,555,542,222,500,492,548,500,447,556,670,573,486,603,374,550,652,546,728,779,222,550,556,550,779,667,667,843,544,708,667,278,278,500,1066,982,844,589,715,639,724,667,651,667,544,704,667,917,614,715,715,589,686,833,722,778,725,667,722,611,639,795,667,727,673,920,923,805,886,651,694,1022,682,556,562,522,493,553,556,688,465,556,556,472,564,686,550,556,556,556,500,833,500,835,500,572,518,830,851,621,736,526,492,752,534,556,556,556,378,496,500,222,222,222,910,828,556,472,565,500,556,778,556,492,339,944,722,944,722,944,722,667,500,333,333,556,1e3,1e3,552,222,222,222,222,333,333,333,556,556,350,1e3,1e3,188,354,333,333,500,333,167,365,556,556,1094,556,885,323,1083,1e3,768,600,834,834,834,834,1e3,500,998,500,1e3,500,500,494,612,823,713,584,549,713,979,719,274,549,549,584,549,549,604,584,604,604,708,625,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,729,604,604,354,354,1e3,990,990,990,990,494,604,604,604,604,354,1021,1052,917,750,750,531,656,594,510,500,750,750,500,500,333,333,333,333,333,333,333,333,222,222,294,294,324,324,316,328,398,285];r.LiberationSansItalicMapping=[-1,-1,-1,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,161,162,163,164,165,166,167,168,169,170,171,172,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255,256,257,258,259,260,261,262,263,264,265,266,267,268,269,270,271,272,273,274,275,276,277,278,279,280,281,282,283,284,285,286,287,288,289,290,291,292,293,294,295,296,297,298,299,300,301,302,303,304,305,306,307,308,309,310,311,312,313,314,315,316,317,318,319,320,321,322,323,324,325,326,327,328,329,330,331,332,333,334,335,336,337,338,339,340,341,342,343,344,345,346,347,348,349,350,351,352,353,354,355,356,357,358,359,360,361,362,363,364,365,366,367,368,369,370,371,372,373,374,375,376,377,378,379,380,381,382,383,402,506,507,508,509,510,511,536,537,538,539,710,711,713,728,729,730,731,732,733,900,901,902,903,904,905,906,908,910,911,912,913,914,915,916,917,918,919,920,921,922,923,924,925,926,927,928,929,931,932,933,934,935,936,937,938,939,940,941,942,943,944,945,946,947,948,949,950,951,952,953,954,955,956,957,958,959,960,961,962,963,964,965,966,967,968,969,970,971,972,973,974,1024,1025,1026,1027,1028,1029,1030,1031,1032,1033,1034,1035,1036,1037,1038,1039,1040,1041,1042,1043,1044,1045,1046,1047,1048,1049,1050,1051,1052,1053,1054,1055,1056,1057,1058,1059,1060,1061,1062,1063,1064,1065,1066,1067,1068,1069,1070,1071,1072,1073,1074,1075,1076,1077,1078,1079,1080,1081,1082,1083,1084,1085,1086,1087,1088,1089,1090,1091,1092,1093,1094,1095,1096,1097,1098,1099,1100,1101,1102,1103,1104,1105,1106,1107,1108,1109,1110,1111,1112,1113,1114,1115,1116,1117,1118,1119,1138,1139,1168,1169,7808,7809,7810,7811,7812,7813,7922,7923,8208,8209,8211,8212,8213,8215,8216,8217,8218,8219,8220,8221,8222,8224,8225,8226,8230,8240,8242,8243,8249,8250,8252,8254,8260,8319,8355,8356,8359,8364,8453,8467,8470,8482,8486,8494,8539,8540,8541,8542,8592,8593,8594,8595,8596,8597,8616,8706,8710,8719,8721,8722,8730,8734,8735,8745,8747,8776,8800,8801,8804,8805,8962,8976,8992,8993,9472,9474,9484,9488,9492,9496,9500,9508,9516,9524,9532,9552,9553,9554,9555,9556,9557,9558,9559,9560,9561,9562,9563,9564,9565,9566,9567,9568,9569,9570,9571,9572,9573,9574,9575,9576,9577,9578,9579,9580,9600,9604,9608,9612,9616,9617,9618,9619,9632,9633,9642,9643,9644,9650,9658,9660,9668,9674,9675,9679,9688,9689,9702,9786,9787,9788,9792,9794,9824,9827,9829,9830,9834,9835,9836,61441,61442,61445,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1];r.LiberationSansRegularWidths=[365,0,333,278,278,355,556,556,889,667,191,333,333,389,584,278,333,278,278,556,556,556,556,556,556,556,556,556,556,278,278,584,584,584,556,1015,667,667,722,722,667,611,778,722,278,500,667,556,833,722,778,667,778,722,667,611,722,667,944,667,667,611,278,278,278,469,556,333,556,556,500,556,556,278,556,556,222,222,500,222,833,556,556,556,556,333,500,278,556,500,722,500,500,500,334,260,334,584,333,556,556,556,556,260,556,333,737,370,556,584,737,552,400,549,333,333,333,576,537,278,333,333,365,556,834,834,834,611,667,667,667,667,667,667,1e3,722,667,667,667,667,278,278,278,278,722,722,778,778,778,778,778,584,778,722,722,722,722,667,667,611,556,556,556,556,556,556,889,500,556,556,556,556,278,278,278,278,556,556,556,556,556,556,556,549,611,556,556,556,556,500,556,500,667,556,667,556,667,556,722,500,722,500,722,500,722,500,722,615,722,556,667,556,667,556,667,556,667,556,667,556,778,556,778,556,778,556,778,556,722,556,722,556,278,278,278,278,278,278,278,222,278,278,735,444,500,222,667,500,500,556,222,556,222,556,292,556,334,556,222,722,556,722,556,722,556,604,723,556,778,556,778,556,778,556,1e3,944,722,333,722,333,722,333,667,500,667,500,667,500,667,500,611,278,611,375,611,278,722,556,722,556,722,556,722,556,722,556,722,556,944,722,667,500,667,611,500,611,500,611,500,222,556,667,556,1e3,889,778,611,667,500,611,278,333,333,333,333,333,333,333,333,333,333,333,667,278,784,838,384,774,855,752,222,667,667,551,668,667,611,722,778,278,667,668,833,722,650,778,722,667,618,611,667,798,667,835,748,278,667,578,446,556,222,547,578,575,500,557,446,441,556,556,222,500,500,576,500,448,556,690,569,482,617,395,547,648,525,713,781,222,547,556,547,781,667,667,865,542,719,667,278,278,500,1057,1010,854,583,722,635,719,667,656,667,542,677,667,923,604,719,719,583,656,833,722,778,719,667,722,611,635,760,667,740,667,917,938,792,885,656,719,1010,722,556,573,531,365,583,556,669,458,559,559,438,583,688,552,556,542,556,500,458,500,823,500,573,521,802,823,625,719,521,510,750,542,556,556,556,365,510,500,222,278,222,906,812,556,438,559,500,552,778,556,489,411,944,722,944,722,944,722,667,500,333,333,556,1e3,1e3,552,222,222,222,222,333,333,333,556,556,350,1e3,1e3,188,354,333,333,500,333,167,365,556,556,1094,556,885,323,1073,1e3,768,600,834,834,834,834,1e3,500,1e3,500,1e3,500,500,494,612,823,713,584,549,713,979,719,274,549,549,583,549,549,604,584,604,604,708,625,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,729,604,604,354,354,1e3,990,990,990,990,494,604,604,604,604,354,1021,1052,917,750,750,531,656,594,510,500,750,750,500,500,333,333,333,333,333,333,333,333,222,222,294,294,324,324,316,328,398,285];r.LiberationSansRegularMapping=[-1,-1,-1,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,161,162,163,164,165,166,167,168,169,170,171,172,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255,256,257,258,259,260,261,262,263,264,265,266,267,268,269,270,271,272,273,274,275,276,277,278,279,280,281,282,283,284,285,286,287,288,289,290,291,292,293,294,295,296,297,298,299,300,301,302,303,304,305,306,307,308,309,310,311,312,313,314,315,316,317,318,319,320,321,322,323,324,325,326,327,328,329,330,331,332,333,334,335,336,337,338,339,340,341,342,343,344,345,346,347,348,349,350,351,352,353,354,355,356,357,358,359,360,361,362,363,364,365,366,367,368,369,370,371,372,373,374,375,376,377,378,379,380,381,382,383,402,506,507,508,509,510,511,536,537,538,539,710,711,713,728,729,730,731,732,733,900,901,902,903,904,905,906,908,910,911,912,913,914,915,916,917,918,919,920,921,922,923,924,925,926,927,928,929,931,932,933,934,935,936,937,938,939,940,941,942,943,944,945,946,947,948,949,950,951,952,953,954,955,956,957,958,959,960,961,962,963,964,965,966,967,968,969,970,971,972,973,974,1024,1025,1026,1027,1028,1029,1030,1031,1032,1033,1034,1035,1036,1037,1038,1039,1040,1041,1042,1043,1044,1045,1046,1047,1048,1049,1050,1051,1052,1053,1054,1055,1056,1057,1058,1059,1060,1061,1062,1063,1064,1065,1066,1067,1068,1069,1070,1071,1072,1073,1074,1075,1076,1077,1078,1079,1080,1081,1082,1083,1084,1085,1086,1087,1088,1089,1090,1091,1092,1093,1094,1095,1096,1097,1098,1099,1100,1101,1102,1103,1104,1105,1106,1107,1108,1109,1110,1111,1112,1113,1114,1115,1116,1117,1118,1119,1138,1139,1168,1169,7808,7809,7810,7811,7812,7813,7922,7923,8208,8209,8211,8212,8213,8215,8216,8217,8218,8219,8220,8221,8222,8224,8225,8226,8230,8240,8242,8243,8249,8250,8252,8254,8260,8319,8355,8356,8359,8364,8453,8467,8470,8482,8486,8494,8539,8540,8541,8542,8592,8593,8594,8595,8596,8597,8616,8706,8710,8719,8721,8722,8730,8734,8735,8745,8747,8776,8800,8801,8804,8805,8962,8976,8992,8993,9472,9474,9484,9488,9492,9496,9500,9508,9516,9524,9532,9552,9553,9554,9555,9556,9557,9558,9559,9560,9561,9562,9563,9564,9565,9566,9567,9568,9569,9570,9571,9572,9573,9574,9575,9576,9577,9578,9579,9580,9600,9604,9608,9612,9616,9617,9618,9619,9632,9633,9642,9643,9644,9650,9658,9660,9668,9674,9675,9679,9688,9689,9702,9786,9787,9788,9792,9794,9824,9827,9829,9830,9834,9835,9836,61441,61442,61445,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1]},(t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});r.MyriadProRegularMetrics=r.MyriadProRegularFactors=r.MyriadProItalicMetrics=r.MyriadProItalicFactors=r.MyriadProBoldMetrics=r.MyriadProBoldItalicMetrics=r.MyriadProBoldItalicFactors=r.MyriadProBoldFactors=void 0;r.MyriadProBoldFactors=[1.36898,1,1,.72706,.80479,.83734,.98894,.99793,.9897,.93884,.86209,.94292,.94292,1.16661,1.02058,.93582,.96694,.93582,1.19137,.99793,.99793,.99793,.99793,.99793,.99793,.99793,.99793,.99793,.99793,.78076,.78076,1.02058,1.02058,1.02058,.72851,.78966,.90838,.83637,.82391,.96376,.80061,.86275,.8768,.95407,1.0258,.73901,.85022,.83655,1.0156,.95546,.92179,.87107,.92179,.82114,.8096,.89713,.94438,.95353,.94083,.91905,.90406,.9446,.94292,1.18777,.94292,1.02058,.89903,.90088,.94938,.97898,.81093,.97571,.94938,1.024,.9577,.95933,.98621,1.0474,.97455,.98981,.9672,.95933,.9446,.97898,.97407,.97646,.78036,1.10208,.95442,.95298,.97579,.9332,.94039,.938,.80687,1.01149,.80687,1.02058,.80479,.99793,.99793,.99793,.99793,1.01149,1.00872,.90088,.91882,1.0213,.8361,1.02058,.62295,.54324,.89022,1.08595,1,1,.90088,1,.97455,.93582,.90088,1,1.05686,.8361,.99642,.99642,.99642,.72851,.90838,.90838,.90838,.90838,.90838,.90838,.868,.82391,.80061,.80061,.80061,.80061,1.0258,1.0258,1.0258,1.0258,.97484,.95546,.92179,.92179,.92179,.92179,.92179,1.02058,.92179,.94438,.94438,.94438,.94438,.90406,.86958,.98225,.94938,.94938,.94938,.94938,.94938,.94938,.9031,.81093,.94938,.94938,.94938,.94938,.98621,.98621,.98621,.98621,.93969,.95933,.9446,.9446,.9446,.9446,.9446,1.08595,.9446,.95442,.95442,.95442,.95442,.94039,.97898,.94039,.90838,.94938,.90838,.94938,.90838,.94938,.82391,.81093,.82391,.81093,.82391,.81093,.82391,.81093,.96376,.84313,.97484,.97571,.80061,.94938,.80061,.94938,.80061,.94938,.80061,.94938,.80061,.94938,.8768,.9577,.8768,.9577,.8768,.9577,1,1,.95407,.95933,.97069,.95933,1.0258,.98621,1.0258,.98621,1.0258,.98621,1.0258,.98621,1.0258,.98621,.887,1.01591,.73901,1.0474,1,1,.97455,.83655,.98981,1,1,.83655,.73977,.83655,.73903,.84638,1.033,.95546,.95933,1,1,.95546,.95933,.8271,.95417,.95933,.92179,.9446,.92179,.9446,.92179,.9446,.936,.91964,.82114,.97646,1,1,.82114,.97646,.8096,.78036,.8096,.78036,1,1,.8096,.78036,1,1,.89713,.77452,.89713,1.10208,.94438,.95442,.94438,.95442,.94438,.95442,.94438,.95442,.94438,.95442,.94438,.95442,.94083,.97579,.90406,.94039,.90406,.9446,.938,.9446,.938,.9446,.938,1,.99793,.90838,.94938,.868,.9031,.92179,.9446,1,1,.89713,1.10208,.90088,.90088,.90088,.90088,.90088,.90088,.90088,.90088,.90088,.90989,.9358,.91945,.83181,.75261,.87992,.82976,.96034,.83689,.97268,1.0078,.90838,.83637,.8019,.90157,.80061,.9446,.95407,.92436,1.0258,.85022,.97153,1.0156,.95546,.89192,.92179,.92361,.87107,.96318,.89713,.93704,.95638,.91905,.91709,.92796,1.0258,.93704,.94836,1.0373,.95933,1.0078,.95871,.94836,.96174,.92601,.9498,.98607,.95776,.95933,1.05453,1.0078,.98275,.9314,.95617,.91701,1.05993,.9446,.78367,.9553,1,.86832,1.0128,.95871,.99394,.87548,.96361,.86774,1.0078,.95871,.9446,.95871,.86774,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,.94083,.97579,.94083,.97579,.94083,.97579,.90406,.94039,.96694,1,.89903,1,1,1,.93582,.93582,.93582,1,.908,.908,.918,.94219,.94219,.96544,1,1.285,1,1,.81079,.81079,1,1,.74854,1,1,1,1,.99793,1,1,1,.65,1,1.36145,1,1,1,1,1,1,1,1,1,1,1,1.17173,1,.80535,.76169,1.02058,1.0732,1.05486,1,1,1.30692,1.08595,1.08595,1,1.08595,1.08595,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1.16161,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1];r.MyriadProBoldMetrics={lineHeight:1.2,lineGap:.2};r.MyriadProBoldItalicFactors=[1.36898,1,1,.66227,.80779,.81625,.97276,.97276,.97733,.92222,.83266,.94292,.94292,1.16148,1.02058,.93582,.96694,.93582,1.17337,.97276,.97276,.97276,.97276,.97276,.97276,.97276,.97276,.97276,.97276,.78076,.78076,1.02058,1.02058,1.02058,.71541,.76813,.85576,.80591,.80729,.94299,.77512,.83655,.86523,.92222,.98621,.71743,.81698,.79726,.98558,.92222,.90637,.83809,.90637,.80729,.76463,.86275,.90699,.91605,.9154,.85308,.85458,.90531,.94292,1.21296,.94292,1.02058,.89903,1.18616,.99613,.91677,.78216,.91677,.90083,.98796,.9135,.92168,.95381,.98981,.95298,.95381,.93459,.92168,.91513,.92004,.91677,.95077,.748,1.04502,.91677,.92061,.94236,.89544,.89364,.9,.80687,.8578,.80687,1.02058,.80779,.97276,.97276,.97276,.97276,.8578,.99973,1.18616,.91339,1.08074,.82891,1.02058,.55509,.71526,.89022,1.08595,1,1,1.18616,1,.96736,.93582,1.18616,1,1.04864,.82711,.99043,.99043,.99043,.71541,.85576,.85576,.85576,.85576,.85576,.85576,.845,.80729,.77512,.77512,.77512,.77512,.98621,.98621,.98621,.98621,.95961,.92222,.90637,.90637,.90637,.90637,.90637,1.02058,.90251,.90699,.90699,.90699,.90699,.85458,.83659,.94951,.99613,.99613,.99613,.99613,.99613,.99613,.85811,.78216,.90083,.90083,.90083,.90083,.95381,.95381,.95381,.95381,.9135,.92168,.91513,.91513,.91513,.91513,.91513,1.08595,.91677,.91677,.91677,.91677,.91677,.89364,.92332,.89364,.85576,.99613,.85576,.99613,.85576,.99613,.80729,.78216,.80729,.78216,.80729,.78216,.80729,.78216,.94299,.76783,.95961,.91677,.77512,.90083,.77512,.90083,.77512,.90083,.77512,.90083,.77512,.90083,.86523,.9135,.86523,.9135,.86523,.9135,1,1,.92222,.92168,.92222,.92168,.98621,.95381,.98621,.95381,.98621,.95381,.98621,.95381,.98621,.95381,.86036,.97096,.71743,.98981,1,1,.95298,.79726,.95381,1,1,.79726,.6894,.79726,.74321,.81691,1.0006,.92222,.92168,1,1,.92222,.92168,.79464,.92098,.92168,.90637,.91513,.90637,.91513,.90637,.91513,.909,.87514,.80729,.95077,1,1,.80729,.95077,.76463,.748,.76463,.748,1,1,.76463,.748,1,1,.86275,.72651,.86275,1.04502,.90699,.91677,.90699,.91677,.90699,.91677,.90699,.91677,.90699,.91677,.90699,.91677,.9154,.94236,.85458,.89364,.85458,.90531,.9,.90531,.9,.90531,.9,1,.97276,.85576,.99613,.845,.85811,.90251,.91677,1,1,.86275,1.04502,1.18616,1.18616,1.18616,1.18616,1.18616,1.18616,1.18616,1.18616,1.18616,1.00899,1.30628,.85576,.80178,.66862,.7927,.69323,.88127,.72459,.89711,.95381,.85576,.80591,.7805,.94729,.77512,.90531,.92222,.90637,.98621,.81698,.92655,.98558,.92222,.85359,.90637,.90976,.83809,.94523,.86275,.83509,.93157,.85308,.83392,.92346,.98621,.83509,.92886,.91324,.92168,.95381,.90646,.92886,.90557,.86847,.90276,.91324,.86842,.92168,.99531,.95381,.9224,.85408,.92699,.86847,1.0051,.91513,.80487,.93481,1,.88159,1.05214,.90646,.97355,.81539,.89398,.85923,.95381,.90646,.91513,.90646,.85923,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,.9154,.94236,.9154,.94236,.9154,.94236,.85458,.89364,.96694,1,.89903,1,1,1,.91782,.91782,.91782,1,.896,.896,.896,.9332,.9332,.95973,1,1.26,1,1,.80479,.80178,1,1,.85633,1,1,1,1,.97276,1,1,1,.698,1,1.36145,1,1,1,1,1,1,1,1,1,1,1,1.14542,1,.79199,.78694,1.02058,1.03493,1.05486,1,1,1.23026,1.08595,1.08595,1,1.08595,1.08595,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1.20006,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1];r.MyriadProBoldItalicMetrics={lineHeight:1.2,lineGap:.2};r.MyriadProItalicFactors=[1.36898,1,1,.65507,.84943,.85639,.88465,.88465,.86936,.88307,.86948,.85283,.85283,1.06383,1.02058,.75945,.9219,.75945,1.17337,.88465,.88465,.88465,.88465,.88465,.88465,.88465,.88465,.88465,.88465,.75945,.75945,1.02058,1.02058,1.02058,.69046,.70926,.85158,.77812,.76852,.89591,.70466,.76125,.80094,.86822,.83864,.728,.77212,.79475,.93637,.87514,.8588,.76013,.8588,.72421,.69866,.77598,.85991,.80811,.87832,.78112,.77512,.8562,1.0222,1.18417,1.0222,1.27014,.89903,1.15012,.93859,.94399,.846,.94399,.81453,1.0186,.94219,.96017,1.03075,1.02175,.912,1.03075,.96998,.96017,.93859,.94399,.94399,.95493,.746,1.12658,.94578,.91,.979,.882,.882,.83,.85034,.83537,.85034,1.02058,.70869,.88465,.88465,.88465,.88465,.83537,.90083,1.15012,.9161,.94565,.73541,1.02058,.53609,.69353,.79519,1.08595,1,1,1.15012,1,.91974,.75945,1.15012,1,.9446,.73361,.9005,.9005,.9005,.62864,.85158,.85158,.85158,.85158,.85158,.85158,.773,.76852,.70466,.70466,.70466,.70466,.83864,.83864,.83864,.83864,.90561,.87514,.8588,.8588,.8588,.8588,.8588,1.02058,.85751,.85991,.85991,.85991,.85991,.77512,.76013,.88075,.93859,.93859,.93859,.93859,.93859,.93859,.8075,.846,.81453,.81453,.81453,.81453,.82424,.82424,.82424,.82424,.9278,.96017,.93859,.93859,.93859,.93859,.93859,1.08595,.8562,.94578,.94578,.94578,.94578,.882,.94578,.882,.85158,.93859,.85158,.93859,.85158,.93859,.76852,.846,.76852,.846,.76852,.846,.76852,.846,.89591,.8544,.90561,.94399,.70466,.81453,.70466,.81453,.70466,.81453,.70466,.81453,.70466,.81453,.80094,.94219,.80094,.94219,.80094,.94219,1,1,.86822,.96017,.86822,.96017,.83864,.82424,.83864,.82424,.83864,.82424,.83864,1.03075,.83864,.82424,.81402,1.02738,.728,1.02175,1,1,.912,.79475,1.03075,1,1,.79475,.83911,.79475,.66266,.80553,1.06676,.87514,.96017,1,1,.87514,.96017,.86865,.87396,.96017,.8588,.93859,.8588,.93859,.8588,.93859,.867,.84759,.72421,.95493,1,1,.72421,.95493,.69866,.746,.69866,.746,1,1,.69866,.746,1,1,.77598,.88417,.77598,1.12658,.85991,.94578,.85991,.94578,.85991,.94578,.85991,.94578,.85991,.94578,.85991,.94578,.87832,.979,.77512,.882,.77512,.8562,.83,.8562,.83,.8562,.83,1,.88465,.85158,.93859,.773,.8075,.85751,.8562,1,1,.77598,1.12658,1.15012,1.15012,1.15012,1.15012,1.15012,1.15313,1.15012,1.15012,1.15012,1.08106,1.03901,.85158,.77025,.62264,.7646,.65351,.86026,.69461,.89947,1.03075,.85158,.77812,.76449,.88836,.70466,.8562,.86822,.8588,.83864,.77212,.85308,.93637,.87514,.82352,.8588,.85701,.76013,.89058,.77598,.8156,.82565,.78112,.77899,.89386,.83864,.8156,.9486,.92388,.96186,1.03075,.91123,.9486,.93298,.878,.93942,.92388,.84596,.96186,.95119,1.03075,.922,.88787,.95829,.88,.93559,.93859,.78815,.93758,1,.89217,1.03737,.91123,.93969,.77487,.85769,.86799,1.03075,.91123,.93859,.91123,.86799,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,.87832,.979,.87832,.979,.87832,.979,.77512,.882,.9219,1,.89903,1,1,1,.87321,.87321,.87321,1,1.027,1.027,1.027,.86847,.86847,.79121,1,1.124,1,1,.73572,.73572,1,1,.85034,1,1,1,1,.88465,1,1,1,.669,1,1.36145,1,1,1,1,1,1,1,1,1,1,1,1.04828,1,.74948,.75187,1.02058,.98391,1.02119,1,1,1.06233,1.08595,1.08595,1,1.08595,1.08595,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1.05233,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1];r.MyriadProItalicMetrics={lineHeight:1.2,lineGap:.2};r.MyriadProRegularFactors=[1.36898,1,1,.76305,.82784,.94935,.89364,.92241,.89073,.90706,.98472,.85283,.85283,1.0664,1.02058,.74505,.9219,.74505,1.23456,.92241,.92241,.92241,.92241,.92241,.92241,.92241,.92241,.92241,.92241,.74505,.74505,1.02058,1.02058,1.02058,.73002,.72601,.91755,.8126,.80314,.92222,.73764,.79726,.83051,.90284,.86023,.74,.8126,.84869,.96518,.91115,.8858,.79761,.8858,.74498,.73914,.81363,.89591,.83659,.89633,.85608,.8111,.90531,1.0222,1.22736,1.0222,1.27014,.89903,.90088,.86667,1.0231,.896,1.01411,.90083,1.05099,1.00512,.99793,1.05326,1.09377,.938,1.06226,1.00119,.99793,.98714,1.0231,1.01231,.98196,.792,1.19137,.99074,.962,1.01915,.926,.942,.856,.85034,.92006,.85034,1.02058,.69067,.92241,.92241,.92241,.92241,.92006,.9332,.90088,.91882,.93484,.75339,1.02058,.56866,.54324,.79519,1.08595,1,1,.90088,1,.95325,.74505,.90088,1,.97198,.75339,.91009,.91009,.91009,.66466,.91755,.91755,.91755,.91755,.91755,.91755,.788,.80314,.73764,.73764,.73764,.73764,.86023,.86023,.86023,.86023,.92915,.91115,.8858,.8858,.8858,.8858,.8858,1.02058,.8858,.89591,.89591,.89591,.89591,.8111,.79611,.89713,.86667,.86667,.86667,.86667,.86667,.86667,.86936,.896,.90083,.90083,.90083,.90083,.84224,.84224,.84224,.84224,.97276,.99793,.98714,.98714,.98714,.98714,.98714,1.08595,.89876,.99074,.99074,.99074,.99074,.942,1.0231,.942,.91755,.86667,.91755,.86667,.91755,.86667,.80314,.896,.80314,.896,.80314,.896,.80314,.896,.92222,.93372,.92915,1.01411,.73764,.90083,.73764,.90083,.73764,.90083,.73764,.90083,.73764,.90083,.83051,1.00512,.83051,1.00512,.83051,1.00512,1,1,.90284,.99793,.90976,.99793,.86023,.84224,.86023,.84224,.86023,.84224,.86023,1.05326,.86023,.84224,.82873,1.07469,.74,1.09377,1,1,.938,.84869,1.06226,1,1,.84869,.83704,.84869,.81441,.85588,1.08927,.91115,.99793,1,1,.91115,.99793,.91887,.90991,.99793,.8858,.98714,.8858,.98714,.8858,.98714,.894,.91434,.74498,.98196,1,1,.74498,.98196,.73914,.792,.73914,.792,1,1,.73914,.792,1,1,.81363,.904,.81363,1.19137,.89591,.99074,.89591,.99074,.89591,.99074,.89591,.99074,.89591,.99074,.89591,.99074,.89633,1.01915,.8111,.942,.8111,.90531,.856,.90531,.856,.90531,.856,1,.92241,.91755,.86667,.788,.86936,.8858,.89876,1,1,.81363,1.19137,.90088,.90088,.90088,.90088,.90088,.90088,.90088,.90088,.90088,.90388,1.03901,.92138,.78105,.7154,.86169,.80513,.94007,.82528,.98612,1.06226,.91755,.8126,.81884,.92819,.73764,.90531,.90284,.8858,.86023,.8126,.91172,.96518,.91115,.83089,.8858,.87791,.79761,.89297,.81363,.88157,.89992,.85608,.81992,.94307,.86023,.88157,.95308,.98699,.99793,1.06226,.95817,.95308,.97358,.928,.98088,.98699,.92761,.99793,.96017,1.06226,.986,.944,.95978,.938,.96705,.98714,.80442,.98972,1,.89762,1.04552,.95817,.99007,.87064,.91879,.88888,1.06226,.95817,.98714,.95817,.88888,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,.89633,1.01915,.89633,1.01915,.89633,1.01915,.8111,.942,.9219,1,.89903,1,1,1,.93173,.93173,.93173,1,1.06304,1.06304,1.06904,.89903,.89903,.80549,1,1.156,1,1,.76575,.76575,1,1,.72458,1,1,1,1,.92241,1,1,1,.619,1,1.36145,1,1,1,1,1,1,1,1,1,1,1,1.07257,1,.74705,.71119,1.02058,1.024,1.02119,1,1,1.1536,1.08595,1.08595,1,1.08595,1.08595,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1.05638,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1];r.MyriadProRegularMetrics={lineHeight:1.2,lineGap:.2}},(t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});r.SegoeuiRegularMetrics=r.SegoeuiRegularFactors=r.SegoeuiItalicMetrics=r.SegoeuiItalicFactors=r.SegoeuiBoldMetrics=r.SegoeuiBoldItalicMetrics=r.SegoeuiBoldItalicFactors=r.SegoeuiBoldFactors=void 0;r.SegoeuiBoldFactors=[1.76738,1,1,.99297,.9824,1.04016,1.06497,1.03424,.97529,1.17647,1.23203,1.1085,1.1085,1.16939,1.2107,.9754,1.21408,.9754,1.59578,1.03424,1.03424,1.03424,1.03424,1.03424,1.03424,1.03424,1.03424,1.03424,1.03424,.81378,.81378,1.2107,1.2107,1.2107,.71703,.97847,.97363,.88776,.8641,1.02096,.79795,.85132,.914,1.06085,1.1406,.8007,.89858,.83693,1.14889,1.09398,.97489,.92094,.97489,.90399,.84041,.95923,1.00135,1,1.06467,.98243,.90996,.99361,1.1085,1.56942,1.1085,1.2107,.74627,.94282,.96752,1.01519,.86304,1.01359,.97278,1.15103,1.01359,.98561,1.02285,1.02285,1.00527,1.02285,1.0302,.99041,1.0008,1.01519,1.01359,1.02258,.79104,1.16862,.99041,.97454,1.02511,.99298,.96752,.95801,.94856,1.16579,.94856,1.2107,.9824,1.03424,1.03424,1,1.03424,1.16579,.8727,1.3871,1.18622,1.10818,1.04478,1.2107,1.18622,.75155,.94994,1.28826,1.21408,1.21408,.91056,1,.91572,.9754,.64663,1.18328,1.24866,1.04478,1.14169,1.15749,1.17389,.71703,.97363,.97363,.97363,.97363,.97363,.97363,.93506,.8641,.79795,.79795,.79795,.79795,1.1406,1.1406,1.1406,1.1406,1.02096,1.09398,.97426,.97426,.97426,.97426,.97426,1.2107,.97489,1.00135,1.00135,1.00135,1.00135,.90996,.92094,1.02798,.96752,.96752,.96752,.96752,.96752,.96752,.93136,.86304,.97278,.97278,.97278,.97278,1.02285,1.02285,1.02285,1.02285,.97122,.99041,1,1,1,1,1,1.28826,1.0008,.99041,.99041,.99041,.99041,.96752,1.01519,.96752,.97363,.96752,.97363,.96752,.97363,.96752,.8641,.86304,.8641,.86304,.8641,.86304,.8641,.86304,1.02096,1.03057,1.02096,1.03517,.79795,.97278,.79795,.97278,.79795,.97278,.79795,.97278,.79795,.97278,.914,1.01359,.914,1.01359,.914,1.01359,1,1,1.06085,.98561,1.06085,1.00879,1.1406,1.02285,1.1406,1.02285,1.1406,1.02285,1.1406,1.02285,1.1406,1.02285,.97138,1.08692,.8007,1.02285,1,1,1.00527,.83693,1.02285,1,1,.83693,.9455,.83693,.90418,.83693,1.13005,1.09398,.99041,1,1,1.09398,.99041,.96692,1.09251,.99041,.97489,1.0008,.97489,1.0008,.97489,1.0008,.93994,.97931,.90399,1.02258,1,1,.90399,1.02258,.84041,.79104,.84041,.79104,.84041,.79104,.84041,.79104,1,1,.95923,1.07034,.95923,1.16862,1.00135,.99041,1.00135,.99041,1.00135,.99041,1.00135,.99041,1.00135,.99041,1.00135,.99041,1.06467,1.02511,.90996,.96752,.90996,.99361,.95801,.99361,.95801,.99361,.95801,1.07733,1.03424,.97363,.96752,.93506,.93136,.97489,1.0008,1,1,.95923,1.16862,1.15103,1.15103,1.01173,1.03959,.75953,.81378,.79912,1.15103,1.21994,.95161,.87815,1.01149,.81525,.7676,.98167,1.01134,1.02546,.84097,1.03089,1.18102,.97363,.88776,.85134,.97826,.79795,.99361,1.06085,.97489,1.1406,.89858,1.0388,1.14889,1.09398,.86039,.97489,1.0595,.92094,.94793,.95923,.90996,.99346,.98243,1.02112,.95493,1.1406,.90996,1.03574,1.02597,1.0008,1.18102,1.06628,1.03574,1.0192,1.01932,1.00886,.97531,1.0106,1.0008,1.13189,1.18102,1.02277,.98683,1.0016,.99561,1.07237,1.0008,.90434,.99921,.93803,.8965,1.23085,1.06628,1.04983,.96268,1.0499,.98439,1.18102,1.06628,1.0008,1.06628,.98439,.79795,1,1,1,1,1,1,1,1,1,1,1,1,1.09466,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,.97278,1,1,1,1,1,1,1,1,1,1,1,1,1.02065,1,1,1,1,1,1,1.06467,1.02511,1.06467,1.02511,1.06467,1.02511,.90996,.96752,1,1.21408,.89903,1,1,.75155,1.04394,1.04394,1.04394,1.04394,.98633,.98633,.98633,.73047,.73047,1.20642,.91211,1.25635,1.222,1.02956,1.03372,1.03372,.96039,1.24633,1,1.12454,.93503,1.03424,1.19687,1.03424,1,1,1,.771,1,1,1.15749,1.15749,1.15749,1.10948,.86279,.94434,.86279,.94434,.86182,1,1,1.16897,1,.96085,.90137,1.2107,1.18416,1.13973,.69825,.9716,2.10339,1.29004,1.29004,1.21172,1.29004,1.29004,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1.42603,1,.99862,.99862,1,.87025,.87025,.87025,.87025,1.18874,1.42603,1,1.42603,1.42603,.99862,1,1,1,1,1,1.2886,1.04315,1.15296,1.34163,1,1,1,1.09193,1.09193,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1];r.SegoeuiBoldMetrics={lineHeight:1.33008,lineGap:0};r.SegoeuiBoldItalicFactors=[1.76738,1,1,.98946,1.03959,1.04016,1.02809,1.036,.97639,1.10953,1.23203,1.11144,1.11144,1.16939,1.21237,.9754,1.21261,.9754,1.59754,1.036,1.036,1.036,1.036,1.036,1.036,1.036,1.036,1.036,1.036,.81378,.81378,1.21237,1.21237,1.21237,.73541,.97847,.97363,.89723,.87897,1.0426,.79429,.85292,.91149,1.05815,1.1406,.79631,.90128,.83853,1.04396,1.10615,.97552,.94436,.97552,.88641,.80527,.96083,1.00135,1,1.06777,.9817,.91142,.99361,1.11144,1.57293,1.11144,1.21237,.74627,1.31818,1.06585,.97042,.83055,.97042,.93503,1.1261,.97042,.97922,1.14236,.94552,1.01054,1.14236,1.02471,.97922,.94165,.97042,.97042,1.0276,.78929,1.1261,.97922,.95874,1.02197,.98507,.96752,.97168,.95107,1.16579,.95107,1.21237,1.03959,1.036,1.036,1,1.036,1.16579,.87357,1.31818,1.18754,1.26781,1.05356,1.21237,1.18622,.79487,.94994,1.29004,1.24047,1.24047,1.31818,1,.91484,.9754,1.31818,1.1349,1.24866,1.05356,1.13934,1.15574,1.17389,.73541,.97363,.97363,.97363,.97363,.97363,.97363,.94385,.87897,.79429,.79429,.79429,.79429,1.1406,1.1406,1.1406,1.1406,1.0426,1.10615,.97552,.97552,.97552,.97552,.97552,1.21237,.97552,1.00135,1.00135,1.00135,1.00135,.91142,.94436,.98721,1.06585,1.06585,1.06585,1.06585,1.06585,1.06585,.96705,.83055,.93503,.93503,.93503,.93503,1.14236,1.14236,1.14236,1.14236,.93125,.97922,.94165,.94165,.94165,.94165,.94165,1.29004,.94165,.97922,.97922,.97922,.97922,.96752,.97042,.96752,.97363,1.06585,.97363,1.06585,.97363,1.06585,.87897,.83055,.87897,.83055,.87897,.83055,.87897,.83055,1.0426,1.0033,1.0426,.97042,.79429,.93503,.79429,.93503,.79429,.93503,.79429,.93503,.79429,.93503,.91149,.97042,.91149,.97042,.91149,.97042,1,1,1.05815,.97922,1.05815,.97922,1.1406,1.14236,1.1406,1.14236,1.1406,1.14236,1.1406,1.14236,1.1406,1.14236,.97441,1.04302,.79631,1.01582,1,1,1.01054,.83853,1.14236,1,1,.83853,1.09125,.83853,.90418,.83853,1.19508,1.10615,.97922,1,1,1.10615,.97922,1.01034,1.10466,.97922,.97552,.94165,.97552,.94165,.97552,.94165,.91602,.91981,.88641,1.0276,1,1,.88641,1.0276,.80527,.78929,.80527,.78929,.80527,.78929,.80527,.78929,1,1,.96083,1.05403,.95923,1.16862,1.00135,.97922,1.00135,.97922,1.00135,.97922,1.00135,.97922,1.00135,.97922,1.00135,.97922,1.06777,1.02197,.91142,.96752,.91142,.99361,.97168,.99361,.97168,.99361,.97168,1.23199,1.036,.97363,1.06585,.94385,.96705,.97552,.94165,1,1,.96083,1.1261,1.31818,1.31818,1.31818,1.31818,1.31818,1.31818,1.31818,1.31818,1.31818,.95161,1.27126,1.00811,.83284,.77702,.99137,.95253,1.0347,.86142,1.07205,1.14236,.97363,.89723,.86869,1.09818,.79429,.99361,1.05815,.97552,1.1406,.90128,1.06662,1.04396,1.10615,.84918,.97552,1.04694,.94436,.98015,.96083,.91142,1.00356,.9817,1.01945,.98999,1.1406,.91142,1.04961,.9898,1.00639,1.14236,1.07514,1.04961,.99607,1.02897,1.008,.9898,.95134,1.00639,1.11121,1.14236,1.00518,.97981,1.02186,1,1.08578,.94165,.99314,.98387,.93028,.93377,1.35125,1.07514,1.10687,.93491,1.04232,1.00351,1.14236,1.07514,.94165,1.07514,1.00351,.79429,1,1,1,1,1,1,1,1,1,1,1,1,1.09097,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,.93503,1,1,1,1,1,1,1,1,1,1,1,1,.96609,1,1,1,1,1,1,1.06777,1.02197,1.06777,1.02197,1.06777,1.02197,.91142,.96752,1,1.21261,.89903,1,1,.75155,1.04745,1.04745,1.04745,1.04394,.98633,.98633,.98633,.72959,.72959,1.20502,.91406,1.26514,1.222,1.02956,1.03372,1.03372,.96039,1.24633,1,1.09125,.93327,1.03336,1.16541,1.036,1,1,1,.771,1,1,1.15574,1.15574,1.15574,1.15574,.86364,.94434,.86279,.94434,.86224,1,1,1.16798,1,.96085,.90068,1.21237,1.18416,1.13904,.69825,.9716,2.10339,1.29004,1.29004,1.21339,1.29004,1.29004,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1.42603,1,.99862,.99862,1,.87025,.87025,.87025,.87025,1.18775,1.42603,1,1.42603,1.42603,.99862,1,1,1,1,1,1.2886,1.04315,1.15296,1.34163,1,1,1,1.13269,1.13269,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1];r.SegoeuiBoldItalicMetrics={lineHeight:1.33008,lineGap:0};r.SegoeuiItalicFactors=[1.76738,1,1,.98946,1.14763,1.05365,1.06234,.96927,.92586,1.15373,1.18414,.91349,.91349,1.07403,1.17308,.78383,1.20088,.78383,1.42531,.96927,.96927,.96927,.96927,.96927,.96927,.96927,.96927,.96927,.96927,.78383,.78383,1.17308,1.17308,1.17308,.77349,.94565,.94729,.85944,.88506,.9858,.74817,.80016,.88449,.98039,.95782,.69238,.89898,.83231,.98183,1.03989,.96924,.86237,.96924,.80595,.74524,.86091,.95402,.94143,.98448,.8858,.83089,.93285,1.0949,1.39016,1.0949,1.45994,.74627,1.04839,.97454,.97454,.87207,.97454,.87533,1.06151,.97454,1.00176,1.16484,1.08132,.98047,1.16484,1.02989,1.01054,.96225,.97454,.97454,1.06598,.79004,1.16344,1.00351,.94629,.9973,.91016,.96777,.9043,.91082,.92481,.91082,1.17308,.95748,.96927,.96927,1,.96927,.92481,.80597,1.04839,1.23393,1.1781,.9245,1.17308,1.20808,.63218,.94261,1.24822,1.09971,1.09971,1.04839,1,.85273,.78032,1.04839,1.09971,1.22326,.9245,1.09836,1.13525,1.15222,.70424,.94729,.94729,.94729,.94729,.94729,.94729,.85498,.88506,.74817,.74817,.74817,.74817,.95782,.95782,.95782,.95782,.9858,1.03989,.96924,.96924,.96924,.96924,.96924,1.17308,.96924,.95402,.95402,.95402,.95402,.83089,.86237,.88409,.97454,.97454,.97454,.97454,.97454,.97454,.92916,.87207,.87533,.87533,.87533,.87533,.93146,.93146,.93146,.93146,.93854,1.01054,.96225,.96225,.96225,.96225,.96225,1.24822,.8761,1.00351,1.00351,1.00351,1.00351,.96777,.97454,.96777,.94729,.97454,.94729,.97454,.94729,.97454,.88506,.87207,.88506,.87207,.88506,.87207,.88506,.87207,.9858,.95391,.9858,.97454,.74817,.87533,.74817,.87533,.74817,.87533,.74817,.87533,.74817,.87533,.88449,.97454,.88449,.97454,.88449,.97454,1,1,.98039,1.00176,.98039,1.00176,.95782,.93146,.95782,.93146,.95782,.93146,.95782,1.16484,.95782,.93146,.84421,1.12761,.69238,1.08132,1,1,.98047,.83231,1.16484,1,1,.84723,1.04861,.84723,.78755,.83231,1.23736,1.03989,1.01054,1,1,1.03989,1.01054,.9857,1.03849,1.01054,.96924,.96225,.96924,.96225,.96924,.96225,.92383,.90171,.80595,1.06598,1,1,.80595,1.06598,.74524,.79004,.74524,.79004,.74524,.79004,.74524,.79004,1,1,.86091,1.02759,.85771,1.16344,.95402,1.00351,.95402,1.00351,.95402,1.00351,.95402,1.00351,.95402,1.00351,.95402,1.00351,.98448,.9973,.83089,.96777,.83089,.93285,.9043,.93285,.9043,.93285,.9043,1.31868,.96927,.94729,.97454,.85498,.92916,.96924,.8761,1,1,.86091,1.16344,1.04839,1.04839,1.04839,1.04839,1.04839,1.04839,1.04839,1.04839,1.04839,.81965,.81965,.94729,.78032,.71022,.90883,.84171,.99877,.77596,1.05734,1.2,.94729,.85944,.82791,.9607,.74817,.93285,.98039,.96924,.95782,.89898,.98316,.98183,1.03989,.78614,.96924,.97642,.86237,.86075,.86091,.83089,.90082,.8858,.97296,1.01284,.95782,.83089,1.0976,1.04,1.03342,1.2,1.0675,1.0976,.98205,1.03809,1.05097,1.04,.95364,1.03342,1.05401,1.2,1.02148,1.0119,1.04724,1.0127,1.02732,.96225,.8965,.97783,.93574,.94818,1.30679,1.0675,1.11826,.99821,1.0557,1.0326,1.2,1.0675,.96225,1.0675,1.0326,.74817,1,1,1,1,1,1,1,1,1,1,1,1,1.03754,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,.87533,1,1,1,1,1,1,1,1,1,1,1,1,.98705,1,1,1,1,1,1,.98448,.9973,.98448,.9973,.98448,.9973,.83089,.96777,1,1.20088,.89903,1,1,.75155,.94945,.94945,.94945,.94945,1.12317,1.12317,1.12317,.67603,.67603,1.15621,.73584,1.21191,1.22135,1.06483,.94868,.94868,.95996,1.24633,1,1.07497,.87709,.96927,1.01473,.96927,1,1,1,.77295,1,1,1.09836,1.09836,1.09836,1.01522,.86321,.94434,.8649,.94434,.86182,1,1,1.083,1,.91578,.86438,1.17308,1.18416,1.14589,.69825,.97622,1.96791,1.24822,1.24822,1.17308,1.24822,1.24822,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1.42603,1,.99862,.99862,1,.87025,.87025,.87025,.87025,1.17984,1.42603,1,1.42603,1.42603,.99862,1,1,1,1,1,1.2886,1.04315,1.15296,1.34163,1,1,1,1.10742,1.10742,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1];r.SegoeuiItalicMetrics={lineHeight:1.33008,lineGap:0};r.SegoeuiRegularFactors=[1.76738,1,1,.98594,1.02285,1.10454,1.06234,.96927,.92037,1.19985,1.2046,.90616,.90616,1.07152,1.1714,.78032,1.20088,.78032,1.40246,.96927,.96927,.96927,.96927,.96927,.96927,.96927,.96927,.96927,.96927,.78032,.78032,1.1714,1.1714,1.1714,.80597,.94084,.96706,.85944,.85734,.97093,.75842,.79936,.88198,.9831,.95782,.71387,.86969,.84636,1.07796,1.03584,.96924,.83968,.96924,.82826,.79649,.85771,.95132,.93119,.98965,.88433,.8287,.93365,1.08612,1.3638,1.08612,1.45786,.74627,.80499,.91484,1.05707,.92383,1.05882,.9403,1.12654,1.05882,1.01756,1.09011,1.09011,.99414,1.09011,1.034,1.01756,1.05356,1.05707,1.05882,1.04399,.84863,1.21968,1.01756,.95801,1.00068,.91797,.96777,.9043,.90351,.92105,.90351,1.1714,.85337,.96927,.96927,.99912,.96927,.92105,.80597,1.2434,1.20808,1.05937,.90957,1.1714,1.20808,.75155,.94261,1.24644,1.09971,1.09971,.84751,1,.85273,.78032,.61584,1.05425,1.17914,.90957,1.08665,1.11593,1.14169,.73381,.96706,.96706,.96706,.96706,.96706,.96706,.86035,.85734,.75842,.75842,.75842,.75842,.95782,.95782,.95782,.95782,.97093,1.03584,.96924,.96924,.96924,.96924,.96924,1.1714,.96924,.95132,.95132,.95132,.95132,.8287,.83968,.89049,.91484,.91484,.91484,.91484,.91484,.91484,.93575,.92383,.9403,.9403,.9403,.9403,.8717,.8717,.8717,.8717,1.00527,1.01756,1.05356,1.05356,1.05356,1.05356,1.05356,1.24644,.95923,1.01756,1.01756,1.01756,1.01756,.96777,1.05707,.96777,.96706,.91484,.96706,.91484,.96706,.91484,.85734,.92383,.85734,.92383,.85734,.92383,.85734,.92383,.97093,1.0969,.97093,1.05882,.75842,.9403,.75842,.9403,.75842,.9403,.75842,.9403,.75842,.9403,.88198,1.05882,.88198,1.05882,.88198,1.05882,1,1,.9831,1.01756,.9831,1.01756,.95782,.8717,.95782,.8717,.95782,.8717,.95782,1.09011,.95782,.8717,.84784,1.11551,.71387,1.09011,1,1,.99414,.84636,1.09011,1,1,.84636,1.0536,.84636,.94298,.84636,1.23297,1.03584,1.01756,1,1,1.03584,1.01756,1.00323,1.03444,1.01756,.96924,1.05356,.96924,1.05356,.96924,1.05356,.93066,.98293,.82826,1.04399,1,1,.82826,1.04399,.79649,.84863,.79649,.84863,.79649,.84863,.79649,.84863,1,1,.85771,1.17318,.85771,1.21968,.95132,1.01756,.95132,1.01756,.95132,1.01756,.95132,1.01756,.95132,1.01756,.95132,1.01756,.98965,1.00068,.8287,.96777,.8287,.93365,.9043,.93365,.9043,.93365,.9043,1.08571,.96927,.96706,.91484,.86035,.93575,.96924,.95923,1,1,.85771,1.21968,1.11437,1.11437,.93109,.91202,.60411,.84164,.55572,1.01173,.97361,.81818,.81818,.96635,.78032,.72727,.92366,.98601,1.03405,.77968,1.09799,1.2,.96706,.85944,.85638,.96491,.75842,.93365,.9831,.96924,.95782,.86969,.94152,1.07796,1.03584,.78437,.96924,.98715,.83968,.83491,.85771,.8287,.94492,.88433,.9287,1.0098,.95782,.8287,1.0625,.98248,1.03424,1.2,1.01071,1.0625,.95246,1.03809,1.04912,.98248,1.00221,1.03424,1.05443,1.2,1.04785,.99609,1.00169,1.05176,.99346,1.05356,.9087,1.03004,.95542,.93117,1.23362,1.01071,1.07831,1.02512,1.05205,1.03502,1.2,1.01071,1.05356,1.01071,1.03502,.75842,1,1,1,1,1,1,1,1,1,1,1,1,1.03719,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,.9403,1,1,1,1,1,1,1,1,1,1,1,1,1.04021,1,1,1,1,1,1,.98965,1.00068,.98965,1.00068,.98965,1.00068,.8287,.96777,1,1.20088,.89903,1,1,.75155,1.03077,1.03077,1.03077,1.03077,1.13196,1.13196,1.13196,.67428,.67428,1.16039,.73291,1.20996,1.22135,1.06483,.94868,.94868,.95996,1.24633,1,1.07497,.87796,.96927,1.01518,.96927,1,1,1,.77295,1,1,1.10539,1.10539,1.11358,1.06967,.86279,.94434,.86279,.94434,.86182,1,1,1.083,1,.91578,.86507,1.1714,1.18416,1.14589,.69825,.97622,1.9697,1.24822,1.24822,1.17238,1.24822,1.24822,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1.42603,1,.99862,.99862,1,.87025,.87025,.87025,.87025,1.18083,1.42603,1,1.42603,1.42603,.99862,1,1,1,1,1,1.2886,1.04315,1.15296,1.34163,1,1,1,1.10938,1.10938,1,1,1,1.05425,1.09971,1.09971,1.09971,1,1,1,1,1,1,1,1,1,1,1];r.SegoeuiRegularMetrics={lineHeight:1.33008,lineGap:0}},(t,r,o)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});r.getFontType=function getFontType(t,r){var o=arguments.length>2&&void 0!==arguments[2]&&arguments[2];switch(t){case"Type1":return o?l.FontType.TYPE1STANDARD:"Type1C"===r?l.FontType.TYPE1C:l.FontType.TYPE1;case"CIDFontType0":return"CIDFontType0C"===r?l.FontType.CIDFONTTYPE0C:l.FontType.CIDFONTTYPE0;case"OpenType":return l.FontType.OPENTYPE;case"TrueType":return l.FontType.TRUETYPE;case"CIDFontType2":return l.FontType.CIDFONTTYPE2;case"MMType1":return l.FontType.MMTYPE1;case"Type0":return l.FontType.TYPE0;default:return l.FontType.UNKNOWN}};r.normalizeFontName=function normalizeFontName(t){return t.replace(/[,_]/g,"-").replace(/\s/g,"")};r.recoverGlyphName=recoverGlyphName;r.type1FontGlyphMapping=function type1FontGlyphMapping(t,r,o){var l,h,m,g=Object.create(null),y=!!(t.flags&d.Symbolic);if(t.isInternalFont){m=r;for(h=0;h<m.length;h++){l=o.indexOf(m[h]);g[h]=l>=0?l:0}}else if(t.baseEncodingName){m=(0,c.getEncoding)(t.baseEncodingName);for(h=0;h<m.length;h++){l=o.indexOf(m[h]);g[h]=l>=0?l:0}}else if(y)for(h in r)g[h]=r[h];else{m=c.StandardEncoding;for(h=0;h<m.length;h++){l=o.indexOf(m[h]);g[h]=l>=0?l:0}}var v,S=t.differences;if(S)for(h in S){var _=S[h];if(-1===(l=o.indexOf(_))){v||(v=(0,u.getGlyphsUnicode)());var k=recoverGlyphName(_,v);k!==_&&(l=o.indexOf(k))}g[h]=l>=0?l:0}return g};r.SEAC_ANALYSIS_ENABLED=r.MacStandardGlyphOrdering=r.FontFlags=void 0;var l=o(4),c=o(132),u=o(133),h=o(134);r.SEAC_ANALYSIS_ENABLED=!0;var d={FixedPitch:1,Serif:2,Symbolic:4,Script:8,Nonsymbolic:32,Italic:64,AllCap:65536,SmallCap:131072,ForceBold:262144};r.FontFlags=d;r.MacStandardGlyphOrdering=[".notdef",".null","nonmarkingreturn","space","exclam","quotedbl","numbersign","dollar","percent","ampersand","quotesingle","parenleft","parenright","asterisk","plus","comma","hyphen","period","slash","zero","one","two","three","four","five","six","seven","eight","nine","colon","semicolon","less","equal","greater","question","at","A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z","bracketleft","backslash","bracketright","asciicircum","underscore","grave","a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s","t","u","v","w","x","y","z","braceleft","bar","braceright","asciitilde","Adieresis","Aring","Ccedilla","Eacute","Ntilde","Odieresis","Udieresis","aacute","agrave","acircumflex","adieresis","atilde","aring","ccedilla","eacute","egrave","ecircumflex","edieresis","iacute","igrave","icircumflex","idieresis","ntilde","oacute","ograve","ocircumflex","odieresis","otilde","uacute","ugrave","ucircumflex","udieresis","dagger","degree","cent","sterling","section","bullet","paragraph","germandbls","registered","copyright","trademark","acute","dieresis","notequal","AE","Oslash","infinity","plusminus","lessequal","greaterequal","yen","mu","partialdiff","summation","product","pi","integral","ordfeminine","ordmasculine","Omega","ae","oslash","questiondown","exclamdown","logicalnot","radical","florin","approxequal","Delta","guillemotleft","guillemotright","ellipsis","nonbreakingspace","Agrave","Atilde","Otilde","OE","oe","endash","emdash","quotedblleft","quotedblright","quoteleft","quoteright","divide","lozenge","ydieresis","Ydieresis","fraction","currency","guilsinglleft","guilsinglright","fi","fl","daggerdbl","periodcentered","quotesinglbase","quotedblbase","perthousand","Acircumflex","Ecircumflex","Aacute","Edieresis","Egrave","Iacute","Icircumflex","Idieresis","Igrave","Oacute","Ocircumflex","apple","Ograve","Uacute","Ucircumflex","Ugrave","dotlessi","circumflex","tilde","macron","breve","dotaccent","ring","cedilla","hungarumlaut","ogonek","caron","Lslash","lslash","Scaron","scaron","Zcaron","zcaron","brokenbar","Eth","eth","Yacute","yacute","Thorn","thorn","minus","multiply","onesuperior","twosuperior","threesuperior","onehalf","onequarter","threequarters","franc","Gbreve","gbreve","Idotaccent","Scedilla","scedilla","Cacute","cacute","Ccaron","ccaron","dcroat"];function recoverGlyphName(t,r){if(void 0!==r[t])return t;var o=(0,h.getUnicodeForGlyph)(t,r);if(-1!==o)for(var c in r)if(r[c]===o)return c;(0,l.info)("Unable to recover a standard glyph name for: "+t);return t}},(t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});r.getEncoding=function getEncoding(t){switch(t){case"WinAnsiEncoding":return h;case"StandardEncoding":return u;case"MacRomanEncoding":return c;case"SymbolSetEncoding":return d;case"ZapfDingbatsEncoding":return m;case"ExpertEncoding":return o;case"MacExpertEncoding":return l;default:return null}};r.ZapfDingbatsEncoding=r.WinAnsiEncoding=r.SymbolSetEncoding=r.StandardEncoding=r.MacRomanEncoding=r.ExpertEncoding=void 0;var o=["","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","space","exclamsmall","Hungarumlautsmall","","dollaroldstyle","dollarsuperior","ampersandsmall","Acutesmall","parenleftsuperior","parenrightsuperior","twodotenleader","onedotenleader","comma","hyphen","period","fraction","zerooldstyle","oneoldstyle","twooldstyle","threeoldstyle","fouroldstyle","fiveoldstyle","sixoldstyle","sevenoldstyle","eightoldstyle","nineoldstyle","colon","semicolon","commasuperior","threequartersemdash","periodsuperior","questionsmall","","asuperior","bsuperior","centsuperior","dsuperior","esuperior","","","","isuperior","","","lsuperior","msuperior","nsuperior","osuperior","","","rsuperior","ssuperior","tsuperior","","ff","fi","fl","ffi","ffl","parenleftinferior","","parenrightinferior","Circumflexsmall","hyphensuperior","Gravesmall","Asmall","Bsmall","Csmall","Dsmall","Esmall","Fsmall","Gsmall","Hsmall","Ismall","Jsmall","Ksmall","Lsmall","Msmall","Nsmall","Osmall","Psmall","Qsmall","Rsmall","Ssmall","Tsmall","Usmall","Vsmall","Wsmall","Xsmall","Ysmall","Zsmall","colonmonetary","onefitted","rupiah","Tildesmall","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","exclamdownsmall","centoldstyle","Lslashsmall","","","Scaronsmall","Zcaronsmall","Dieresissmall","Brevesmall","Caronsmall","","Dotaccentsmall","","","Macronsmall","","","figuredash","hypheninferior","","","Ogoneksmall","Ringsmall","Cedillasmall","","","","onequarter","onehalf","threequarters","questiondownsmall","oneeighth","threeeighths","fiveeighths","seveneighths","onethird","twothirds","","","zerosuperior","onesuperior","twosuperior","threesuperior","foursuperior","fivesuperior","sixsuperior","sevensuperior","eightsuperior","ninesuperior","zeroinferior","oneinferior","twoinferior","threeinferior","fourinferior","fiveinferior","sixinferior","seveninferior","eightinferior","nineinferior","centinferior","dollarinferior","periodinferior","commainferior","Agravesmall","Aacutesmall","Acircumflexsmall","Atildesmall","Adieresissmall","Aringsmall","AEsmall","Ccedillasmall","Egravesmall","Eacutesmall","Ecircumflexsmall","Edieresissmall","Igravesmall","Iacutesmall","Icircumflexsmall","Idieresissmall","Ethsmall","Ntildesmall","Ogravesmall","Oacutesmall","Ocircumflexsmall","Otildesmall","Odieresissmall","OEsmall","Oslashsmall","Ugravesmall","Uacutesmall","Ucircumflexsmall","Udieresissmall","Yacutesmall","Thornsmall","Ydieresissmall"];r.ExpertEncoding=o;var l=["","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","space","exclamsmall","Hungarumlautsmall","centoldstyle","dollaroldstyle","dollarsuperior","ampersandsmall","Acutesmall","parenleftsuperior","parenrightsuperior","twodotenleader","onedotenleader","comma","hyphen","period","fraction","zerooldstyle","oneoldstyle","twooldstyle","threeoldstyle","fouroldstyle","fiveoldstyle","sixoldstyle","sevenoldstyle","eightoldstyle","nineoldstyle","colon","semicolon","","threequartersemdash","","questionsmall","","","","","Ethsmall","","","onequarter","onehalf","threequarters","oneeighth","threeeighths","fiveeighths","seveneighths","onethird","twothirds","","","","","","","ff","fi","fl","ffi","ffl","parenleftinferior","","parenrightinferior","Circumflexsmall","hypheninferior","Gravesmall","Asmall","Bsmall","Csmall","Dsmall","Esmall","Fsmall","Gsmall","Hsmall","Ismall","Jsmall","Ksmall","Lsmall","Msmall","Nsmall","Osmall","Psmall","Qsmall","Rsmall","Ssmall","Tsmall","Usmall","Vsmall","Wsmall","Xsmall","Ysmall","Zsmall","colonmonetary","onefitted","rupiah","Tildesmall","","","asuperior","centsuperior","","","","","Aacutesmall","Agravesmall","Acircumflexsmall","Adieresissmall","Atildesmall","Aringsmall","Ccedillasmall","Eacutesmall","Egravesmall","Ecircumflexsmall","Edieresissmall","Iacutesmall","Igravesmall","Icircumflexsmall","Idieresissmall","Ntildesmall","Oacutesmall","Ogravesmall","Ocircumflexsmall","Odieresissmall","Otildesmall","Uacutesmall","Ugravesmall","Ucircumflexsmall","Udieresissmall","","eightsuperior","fourinferior","threeinferior","sixinferior","eightinferior","seveninferior","Scaronsmall","","centinferior","twoinferior","","Dieresissmall","","Caronsmall","osuperior","fiveinferior","","commainferior","periodinferior","Yacutesmall","","dollarinferior","","","Thornsmall","","nineinferior","zeroinferior","Zcaronsmall","AEsmall","Oslashsmall","questiondownsmall","oneinferior","Lslashsmall","","","","","","","Cedillasmall","","","","","","OEsmall","figuredash","hyphensuperior","","","","","exclamdownsmall","","Ydieresissmall","","onesuperior","twosuperior","threesuperior","foursuperior","fivesuperior","sixsuperior","sevensuperior","ninesuperior","zerosuperior","","esuperior","rsuperior","tsuperior","","","isuperior","ssuperior","dsuperior","","","","","","lsuperior","Ogoneksmall","Brevesmall","Macronsmall","bsuperior","nsuperior","msuperior","commasuperior","periodsuperior","Dotaccentsmall","Ringsmall","","","",""],c=["","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","space","exclam","quotedbl","numbersign","dollar","percent","ampersand","quotesingle","parenleft","parenright","asterisk","plus","comma","hyphen","period","slash","zero","one","two","three","four","five","six","seven","eight","nine","colon","semicolon","less","equal","greater","question","at","A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z","bracketleft","backslash","bracketright","asciicircum","underscore","grave","a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s","t","u","v","w","x","y","z","braceleft","bar","braceright","asciitilde","","Adieresis","Aring","Ccedilla","Eacute","Ntilde","Odieresis","Udieresis","aacute","agrave","acircumflex","adieresis","atilde","aring","ccedilla","eacute","egrave","ecircumflex","edieresis","iacute","igrave","icircumflex","idieresis","ntilde","oacute","ograve","ocircumflex","odieresis","otilde","uacute","ugrave","ucircumflex","udieresis","dagger","degree","cent","sterling","section","bullet","paragraph","germandbls","registered","copyright","trademark","acute","dieresis","notequal","AE","Oslash","infinity","plusminus","lessequal","greaterequal","yen","mu","partialdiff","summation","product","pi","integral","ordfeminine","ordmasculine","Omega","ae","oslash","questiondown","exclamdown","logicalnot","radical","florin","approxequal","Delta","guillemotleft","guillemotright","ellipsis","space","Agrave","Atilde","Otilde","OE","oe","endash","emdash","quotedblleft","quotedblright","quoteleft","quoteright","divide","lozenge","ydieresis","Ydieresis","fraction","currency","guilsinglleft","guilsinglright","fi","fl","daggerdbl","periodcentered","quotesinglbase","quotedblbase","perthousand","Acircumflex","Ecircumflex","Aacute","Edieresis","Egrave","Iacute","Icircumflex","Idieresis","Igrave","Oacute","Ocircumflex","apple","Ograve","Uacute","Ucircumflex","Ugrave","dotlessi","circumflex","tilde","macron","breve","dotaccent","ring","cedilla","hungarumlaut","ogonek","caron"];r.MacRomanEncoding=c;var u=["","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","space","exclam","quotedbl","numbersign","dollar","percent","ampersand","quoteright","parenleft","parenright","asterisk","plus","comma","hyphen","period","slash","zero","one","two","three","four","five","six","seven","eight","nine","colon","semicolon","less","equal","greater","question","at","A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z","bracketleft","backslash","bracketright","asciicircum","underscore","quoteleft","a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s","t","u","v","w","x","y","z","braceleft","bar","braceright","asciitilde","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","exclamdown","cent","sterling","fraction","yen","florin","section","currency","quotesingle","quotedblleft","guillemotleft","guilsinglleft","guilsinglright","fi","fl","","endash","dagger","daggerdbl","periodcentered","","paragraph","bullet","quotesinglbase","quotedblbase","quotedblright","guillemotright","ellipsis","perthousand","","questiondown","","grave","acute","circumflex","tilde","macron","breve","dotaccent","dieresis","","ring","cedilla","","hungarumlaut","ogonek","caron","emdash","","","","","","","","","","","","","","","","","AE","","ordfeminine","","","","","Lslash","Oslash","OE","ordmasculine","","","","","","ae","","","","dotlessi","","","lslash","oslash","oe","germandbls","","","",""];r.StandardEncoding=u;var h=["","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","space","exclam","quotedbl","numbersign","dollar","percent","ampersand","quotesingle","parenleft","parenright","asterisk","plus","comma","hyphen","period","slash","zero","one","two","three","four","five","six","seven","eight","nine","colon","semicolon","less","equal","greater","question","at","A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z","bracketleft","backslash","bracketright","asciicircum","underscore","grave","a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s","t","u","v","w","x","y","z","braceleft","bar","braceright","asciitilde","bullet","Euro","bullet","quotesinglbase","florin","quotedblbase","ellipsis","dagger","daggerdbl","circumflex","perthousand","Scaron","guilsinglleft","OE","bullet","Zcaron","bullet","bullet","quoteleft","quoteright","quotedblleft","quotedblright","bullet","endash","emdash","tilde","trademark","scaron","guilsinglright","oe","bullet","zcaron","Ydieresis","space","exclamdown","cent","sterling","currency","yen","brokenbar","section","dieresis","copyright","ordfeminine","guillemotleft","logicalnot","hyphen","registered","macron","degree","plusminus","twosuperior","threesuperior","acute","mu","paragraph","periodcentered","cedilla","onesuperior","ordmasculine","guillemotright","onequarter","onehalf","threequarters","questiondown","Agrave","Aacute","Acircumflex","Atilde","Adieresis","Aring","AE","Ccedilla","Egrave","Eacute","Ecircumflex","Edieresis","Igrave","Iacute","Icircumflex","Idieresis","Eth","Ntilde","Ograve","Oacute","Ocircumflex","Otilde","Odieresis","multiply","Oslash","Ugrave","Uacute","Ucircumflex","Udieresis","Yacute","Thorn","germandbls","agrave","aacute","acircumflex","atilde","adieresis","aring","ae","ccedilla","egrave","eacute","ecircumflex","edieresis","igrave","iacute","icircumflex","idieresis","eth","ntilde","ograve","oacute","ocircumflex","otilde","odieresis","divide","oslash","ugrave","uacute","ucircumflex","udieresis","yacute","thorn","ydieresis"];r.WinAnsiEncoding=h;var d=["","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","space","exclam","universal","numbersign","existential","percent","ampersand","suchthat","parenleft","parenright","asteriskmath","plus","comma","minus","period","slash","zero","one","two","three","four","five","six","seven","eight","nine","colon","semicolon","less","equal","greater","question","congruent","Alpha","Beta","Chi","Delta","Epsilon","Phi","Gamma","Eta","Iota","theta1","Kappa","Lambda","Mu","Nu","Omicron","Pi","Theta","Rho","Sigma","Tau","Upsilon","sigma1","Omega","Xi","Psi","Zeta","bracketleft","therefore","bracketright","perpendicular","underscore","radicalex","alpha","beta","chi","delta","epsilon","phi","gamma","eta","iota","phi1","kappa","lambda","mu","nu","omicron","pi","theta","rho","sigma","tau","upsilon","omega1","omega","xi","psi","zeta","braceleft","bar","braceright","similar","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Euro","Upsilon1","minute","lessequal","fraction","infinity","florin","club","diamond","heart","spade","arrowboth","arrowleft","arrowup","arrowright","arrowdown","degree","plusminus","second","greaterequal","multiply","proportional","partialdiff","bullet","divide","notequal","equivalence","approxequal","ellipsis","arrowvertex","arrowhorizex","carriagereturn","aleph","Ifraktur","Rfraktur","weierstrass","circlemultiply","circleplus","emptyset","intersection","union","propersuperset","reflexsuperset","notsubset","propersubset","reflexsubset","element","notelement","angle","gradient","registerserif","copyrightserif","trademarkserif","product","radical","dotmath","logicalnot","logicaland","logicalor","arrowdblboth","arrowdblleft","arrowdblup","arrowdblright","arrowdbldown","lozenge","angleleft","registersans","copyrightsans","trademarksans","summation","parenlefttp","parenleftex","parenleftbt","bracketlefttp","bracketleftex","bracketleftbt","bracelefttp","braceleftmid","braceleftbt","braceex","","angleright","integral","integraltp","integralex","integralbt","parenrighttp","parenrightex","parenrightbt","bracketrighttp","bracketrightex","bracketrightbt","bracerighttp","bracerightmid","bracerightbt",""];r.SymbolSetEncoding=d;var m=["","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","space","a1","a2","a202","a3","a4","a5","a119","a118","a117","a11","a12","a13","a14","a15","a16","a105","a17","a18","a19","a20","a21","a22","a23","a24","a25","a26","a27","a28","a6","a7","a8","a9","a10","a29","a30","a31","a32","a33","a34","a35","a36","a37","a38","a39","a40","a41","a42","a43","a44","a45","a46","a47","a48","a49","a50","a51","a52","a53","a54","a55","a56","a57","a58","a59","a60","a61","a62","a63","a64","a65","a66","a67","a68","a69","a70","a71","a72","a73","a74","a203","a75","a204","a76","a77","a78","a79","a81","a82","a83","a84","a97","a98","a99","a100","","a89","a90","a93","a94","a91","a92","a205","a85","a206","a86","a87","a88","a95","a96","","","","","","","","","","","","","","","","","","","","a101","a102","a103","a104","a106","a107","a108","a112","a111","a110","a109","a120","a121","a122","a123","a124","a125","a126","a127","a128","a129","a130","a131","a132","a133","a134","a135","a136","a137","a138","a139","a140","a141","a142","a143","a144","a145","a146","a147","a148","a149","a150","a151","a152","a153","a154","a155","a156","a157","a158","a159","a160","a161","a163","a164","a196","a165","a192","a166","a167","a168","a169","a170","a171","a172","a173","a162","a174","a175","a176","a177","a178","a179","a193","a180","a199","a181","a200","a182","","a201","a183","a184","a197","a185","a194","a198","a186","a195","a187","a188","a189","a190","a191",""];r.ZapfDingbatsEncoding=m},(t,r,o)=>{"use strict";o.r(r);o.d(r,{getDingbatsGlyphsUnicode:()=>u,getGlyphsUnicode:()=>c});var l=o(122);const c=(0,l.getArrayLookupTableFactory)((function(){return["A",65,"AE",198,"AEacute",508,"AEmacron",482,"AEsmall",63462,"Aacute",193,"Aacutesmall",63457,"Abreve",258,"Abreveacute",7854,"Abrevecyrillic",1232,"Abrevedotbelow",7862,"Abrevegrave",7856,"Abrevehookabove",7858,"Abrevetilde",7860,"Acaron",461,"Acircle",9398,"Acircumflex",194,"Acircumflexacute",7844,"Acircumflexdotbelow",7852,"Acircumflexgrave",7846,"Acircumflexhookabove",7848,"Acircumflexsmall",63458,"Acircumflextilde",7850,"Acute",63177,"Acutesmall",63412,"Acyrillic",1040,"Adblgrave",512,"Adieresis",196,"Adieresiscyrillic",1234,"Adieresismacron",478,"Adieresissmall",63460,"Adotbelow",7840,"Adotmacron",480,"Agrave",192,"Agravesmall",63456,"Ahookabove",7842,"Aiecyrillic",1236,"Ainvertedbreve",514,"Alpha",913,"Alphatonos",902,"Amacron",256,"Amonospace",65313,"Aogonek",260,"Aring",197,"Aringacute",506,"Aringbelow",7680,"Aringsmall",63461,"Asmall",63329,"Atilde",195,"Atildesmall",63459,"Aybarmenian",1329,"B",66,"Bcircle",9399,"Bdotaccent",7682,"Bdotbelow",7684,"Becyrillic",1041,"Benarmenian",1330,"Beta",914,"Bhook",385,"Blinebelow",7686,"Bmonospace",65314,"Brevesmall",63220,"Bsmall",63330,"Btopbar",386,"C",67,"Caarmenian",1342,"Cacute",262,"Caron",63178,"Caronsmall",63221,"Ccaron",268,"Ccedilla",199,"Ccedillaacute",7688,"Ccedillasmall",63463,"Ccircle",9400,"Ccircumflex",264,"Cdot",266,"Cdotaccent",266,"Cedillasmall",63416,"Chaarmenian",1353,"Cheabkhasiancyrillic",1212,"Checyrillic",1063,"Chedescenderabkhasiancyrillic",1214,"Chedescendercyrillic",1206,"Chedieresiscyrillic",1268,"Cheharmenian",1347,"Chekhakassiancyrillic",1227,"Cheverticalstrokecyrillic",1208,"Chi",935,"Chook",391,"Circumflexsmall",63222,"Cmonospace",65315,"Coarmenian",1361,"Csmall",63331,"D",68,"DZ",497,"DZcaron",452,"Daarmenian",1332,"Dafrican",393,"Dcaron",270,"Dcedilla",7696,"Dcircle",9401,"Dcircumflexbelow",7698,"Dcroat",272,"Ddotaccent",7690,"Ddotbelow",7692,"Decyrillic",1044,"Deicoptic",1006,"Delta",8710,"Deltagreek",916,"Dhook",394,"Dieresis",63179,"DieresisAcute",63180,"DieresisGrave",63181,"Dieresissmall",63400,"Digammagreek",988,"Djecyrillic",1026,"Dlinebelow",7694,"Dmonospace",65316,"Dotaccentsmall",63223,"Dslash",272,"Dsmall",63332,"Dtopbar",395,"Dz",498,"Dzcaron",453,"Dzeabkhasiancyrillic",1248,"Dzecyrillic",1029,"Dzhecyrillic",1039,"E",69,"Eacute",201,"Eacutesmall",63465,"Ebreve",276,"Ecaron",282,"Ecedillabreve",7708,"Echarmenian",1333,"Ecircle",9402,"Ecircumflex",202,"Ecircumflexacute",7870,"Ecircumflexbelow",7704,"Ecircumflexdotbelow",7878,"Ecircumflexgrave",7872,"Ecircumflexhookabove",7874,"Ecircumflexsmall",63466,"Ecircumflextilde",7876,"Ecyrillic",1028,"Edblgrave",516,"Edieresis",203,"Edieresissmall",63467,"Edot",278,"Edotaccent",278,"Edotbelow",7864,"Efcyrillic",1060,"Egrave",200,"Egravesmall",63464,"Eharmenian",1335,"Ehookabove",7866,"Eightroman",8551,"Einvertedbreve",518,"Eiotifiedcyrillic",1124,"Elcyrillic",1051,"Elevenroman",8554,"Emacron",274,"Emacronacute",7702,"Emacrongrave",7700,"Emcyrillic",1052,"Emonospace",65317,"Encyrillic",1053,"Endescendercyrillic",1186,"Eng",330,"Enghecyrillic",1188,"Enhookcyrillic",1223,"Eogonek",280,"Eopen",400,"Epsilon",917,"Epsilontonos",904,"Ercyrillic",1056,"Ereversed",398,"Ereversedcyrillic",1069,"Escyrillic",1057,"Esdescendercyrillic",1194,"Esh",425,"Esmall",63333,"Eta",919,"Etarmenian",1336,"Etatonos",905,"Eth",208,"Ethsmall",63472,"Etilde",7868,"Etildebelow",7706,"Euro",8364,"Ezh",439,"Ezhcaron",494,"Ezhreversed",440,"F",70,"Fcircle",9403,"Fdotaccent",7710,"Feharmenian",1366,"Feicoptic",996,"Fhook",401,"Fitacyrillic",1138,"Fiveroman",8548,"Fmonospace",65318,"Fourroman",8547,"Fsmall",63334,"G",71,"GBsquare",13191,"Gacute",500,"Gamma",915,"Gammaafrican",404,"Gangiacoptic",1002,"Gbreve",286,"Gcaron",486,"Gcedilla",290,"Gcircle",9404,"Gcircumflex",284,"Gcommaaccent",290,"Gdot",288,"Gdotaccent",288,"Gecyrillic",1043,"Ghadarmenian",1346,"Ghemiddlehookcyrillic",1172,"Ghestrokecyrillic",1170,"Gheupturncyrillic",1168,"Ghook",403,"Gimarmenian",1331,"Gjecyrillic",1027,"Gmacron",7712,"Gmonospace",65319,"Grave",63182,"Gravesmall",63328,"Gsmall",63335,"Gsmallhook",667,"Gstroke",484,"H",72,"H18533",9679,"H18543",9642,"H18551",9643,"H22073",9633,"HPsquare",13259,"Haabkhasiancyrillic",1192,"Hadescendercyrillic",1202,"Hardsigncyrillic",1066,"Hbar",294,"Hbrevebelow",7722,"Hcedilla",7720,"Hcircle",9405,"Hcircumflex",292,"Hdieresis",7718,"Hdotaccent",7714,"Hdotbelow",7716,"Hmonospace",65320,"Hoarmenian",1344,"Horicoptic",1e3,"Hsmall",63336,"Hungarumlaut",63183,"Hungarumlautsmall",63224,"Hzsquare",13200,"I",73,"IAcyrillic",1071,"IJ",306,"IUcyrillic",1070,"Iacute",205,"Iacutesmall",63469,"Ibreve",300,"Icaron",463,"Icircle",9406,"Icircumflex",206,"Icircumflexsmall",63470,"Icyrillic",1030,"Idblgrave",520,"Idieresis",207,"Idieresisacute",7726,"Idieresiscyrillic",1252,"Idieresissmall",63471,"Idot",304,"Idotaccent",304,"Idotbelow",7882,"Iebrevecyrillic",1238,"Iecyrillic",1045,"Ifraktur",8465,"Igrave",204,"Igravesmall",63468,"Ihookabove",7880,"Iicyrillic",1048,"Iinvertedbreve",522,"Iishortcyrillic",1049,"Imacron",298,"Imacroncyrillic",1250,"Imonospace",65321,"Iniarmenian",1339,"Iocyrillic",1025,"Iogonek",302,"Iota",921,"Iotaafrican",406,"Iotadieresis",938,"Iotatonos",906,"Ismall",63337,"Istroke",407,"Itilde",296,"Itildebelow",7724,"Izhitsacyrillic",1140,"Izhitsadblgravecyrillic",1142,"J",74,"Jaarmenian",1345,"Jcircle",9407,"Jcircumflex",308,"Jecyrillic",1032,"Jheharmenian",1355,"Jmonospace",65322,"Jsmall",63338,"K",75,"KBsquare",13189,"KKsquare",13261,"Kabashkircyrillic",1184,"Kacute",7728,"Kacyrillic",1050,"Kadescendercyrillic",1178,"Kahookcyrillic",1219,"Kappa",922,"Kastrokecyrillic",1182,"Kaverticalstrokecyrillic",1180,"Kcaron",488,"Kcedilla",310,"Kcircle",9408,"Kcommaaccent",310,"Kdotbelow",7730,"Keharmenian",1364,"Kenarmenian",1343,"Khacyrillic",1061,"Kheicoptic",998,"Khook",408,"Kjecyrillic",1036,"Klinebelow",7732,"Kmonospace",65323,"Koppacyrillic",1152,"Koppagreek",990,"Ksicyrillic",1134,"Ksmall",63339,"L",76,"LJ",455,"LL",63167,"Lacute",313,"Lambda",923,"Lcaron",317,"Lcedilla",315,"Lcircle",9409,"Lcircumflexbelow",7740,"Lcommaaccent",315,"Ldot",319,"Ldotaccent",319,"Ldotbelow",7734,"Ldotbelowmacron",7736,"Liwnarmenian",1340,"Lj",456,"Ljecyrillic",1033,"Llinebelow",7738,"Lmonospace",65324,"Lslash",321,"Lslashsmall",63225,"Lsmall",63340,"M",77,"MBsquare",13190,"Macron",63184,"Macronsmall",63407,"Macute",7742,"Mcircle",9410,"Mdotaccent",7744,"Mdotbelow",7746,"Menarmenian",1348,"Mmonospace",65325,"Msmall",63341,"Mturned",412,"Mu",924,"N",78,"NJ",458,"Nacute",323,"Ncaron",327,"Ncedilla",325,"Ncircle",9411,"Ncircumflexbelow",7754,"Ncommaaccent",325,"Ndotaccent",7748,"Ndotbelow",7750,"Nhookleft",413,"Nineroman",8552,"Nj",459,"Njecyrillic",1034,"Nlinebelow",7752,"Nmonospace",65326,"Nowarmenian",1350,"Nsmall",63342,"Ntilde",209,"Ntildesmall",63473,"Nu",925,"O",79,"OE",338,"OEsmall",63226,"Oacute",211,"Oacutesmall",63475,"Obarredcyrillic",1256,"Obarreddieresiscyrillic",1258,"Obreve",334,"Ocaron",465,"Ocenteredtilde",415,"Ocircle",9412,"Ocircumflex",212,"Ocircumflexacute",7888,"Ocircumflexdotbelow",7896,"Ocircumflexgrave",7890,"Ocircumflexhookabove",7892,"Ocircumflexsmall",63476,"Ocircumflextilde",7894,"Ocyrillic",1054,"Odblacute",336,"Odblgrave",524,"Odieresis",214,"Odieresiscyrillic",1254,"Odieresissmall",63478,"Odotbelow",7884,"Ogoneksmall",63227,"Ograve",210,"Ogravesmall",63474,"Oharmenian",1365,"Ohm",8486,"Ohookabove",7886,"Ohorn",416,"Ohornacute",7898,"Ohorndotbelow",7906,"Ohorngrave",7900,"Ohornhookabove",7902,"Ohorntilde",7904,"Ohungarumlaut",336,"Oi",418,"Oinvertedbreve",526,"Omacron",332,"Omacronacute",7762,"Omacrongrave",7760,"Omega",8486,"Omegacyrillic",1120,"Omegagreek",937,"Omegaroundcyrillic",1146,"Omegatitlocyrillic",1148,"Omegatonos",911,"Omicron",927,"Omicrontonos",908,"Omonospace",65327,"Oneroman",8544,"Oogonek",490,"Oogonekmacron",492,"Oopen",390,"Oslash",216,"Oslashacute",510,"Oslashsmall",63480,"Osmall",63343,"Ostrokeacute",510,"Otcyrillic",1150,"Otilde",213,"Otildeacute",7756,"Otildedieresis",7758,"Otildesmall",63477,"P",80,"Pacute",7764,"Pcircle",9413,"Pdotaccent",7766,"Pecyrillic",1055,"Peharmenian",1354,"Pemiddlehookcyrillic",1190,"Phi",934,"Phook",420,"Pi",928,"Piwrarmenian",1363,"Pmonospace",65328,"Psi",936,"Psicyrillic",1136,"Psmall",63344,"Q",81,"Qcircle",9414,"Qmonospace",65329,"Qsmall",63345,"R",82,"Raarmenian",1356,"Racute",340,"Rcaron",344,"Rcedilla",342,"Rcircle",9415,"Rcommaaccent",342,"Rdblgrave",528,"Rdotaccent",7768,"Rdotbelow",7770,"Rdotbelowmacron",7772,"Reharmenian",1360,"Rfraktur",8476,"Rho",929,"Ringsmall",63228,"Rinvertedbreve",530,"Rlinebelow",7774,"Rmonospace",65330,"Rsmall",63346,"Rsmallinverted",641,"Rsmallinvertedsuperior",694,"S",83,"SF010000",9484,"SF020000",9492,"SF030000",9488,"SF040000",9496,"SF050000",9532,"SF060000",9516,"SF070000",9524,"SF080000",9500,"SF090000",9508,"SF100000",9472,"SF110000",9474,"SF190000",9569,"SF200000",9570,"SF210000",9558,"SF220000",9557,"SF230000",9571,"SF240000",9553,"SF250000",9559,"SF260000",9565,"SF270000",9564,"SF280000",9563,"SF360000",9566,"SF370000",9567,"SF380000",9562,"SF390000",9556,"SF400000",9577,"SF410000",9574,"SF420000",9568,"SF430000",9552,"SF440000",9580,"SF450000",9575,"SF460000",9576,"SF470000",9572,"SF480000",9573,"SF490000",9561,"SF500000",9560,"SF510000",9554,"SF520000",9555,"SF530000",9579,"SF540000",9578,"Sacute",346,"Sacutedotaccent",7780,"Sampigreek",992,"Scaron",352,"Scarondotaccent",7782,"Scaronsmall",63229,"Scedilla",350,"Schwa",399,"Schwacyrillic",1240,"Schwadieresiscyrillic",1242,"Scircle",9416,"Scircumflex",348,"Scommaaccent",536,"Sdotaccent",7776,"Sdotbelow",7778,"Sdotbelowdotaccent",7784,"Seharmenian",1357,"Sevenroman",8550,"Shaarmenian",1351,"Shacyrillic",1064,"Shchacyrillic",1065,"Sheicoptic",994,"Shhacyrillic",1210,"Shimacoptic",1004,"Sigma",931,"Sixroman",8549,"Smonospace",65331,"Softsigncyrillic",1068,"Ssmall",63347,"Stigmagreek",986,"T",84,"Tau",932,"Tbar",358,"Tcaron",356,"Tcedilla",354,"Tcircle",9417,"Tcircumflexbelow",7792,"Tcommaaccent",354,"Tdotaccent",7786,"Tdotbelow",7788,"Tecyrillic",1058,"Tedescendercyrillic",1196,"Tenroman",8553,"Tetsecyrillic",1204,"Theta",920,"Thook",428,"Thorn",222,"Thornsmall",63486,"Threeroman",8546,"Tildesmall",63230,"Tiwnarmenian",1359,"Tlinebelow",7790,"Tmonospace",65332,"Toarmenian",1337,"Tonefive",444,"Tonesix",388,"Tonetwo",423,"Tretroflexhook",430,"Tsecyrillic",1062,"Tshecyrillic",1035,"Tsmall",63348,"Twelveroman",8555,"Tworoman",8545,"U",85,"Uacute",218,"Uacutesmall",63482,"Ubreve",364,"Ucaron",467,"Ucircle",9418,"Ucircumflex",219,"Ucircumflexbelow",7798,"Ucircumflexsmall",63483,"Ucyrillic",1059,"Udblacute",368,"Udblgrave",532,"Udieresis",220,"Udieresisacute",471,"Udieresisbelow",7794,"Udieresiscaron",473,"Udieresiscyrillic",1264,"Udieresisgrave",475,"Udieresismacron",469,"Udieresissmall",63484,"Udotbelow",7908,"Ugrave",217,"Ugravesmall",63481,"Uhookabove",7910,"Uhorn",431,"Uhornacute",7912,"Uhorndotbelow",7920,"Uhorngrave",7914,"Uhornhookabove",7916,"Uhorntilde",7918,"Uhungarumlaut",368,"Uhungarumlautcyrillic",1266,"Uinvertedbreve",534,"Ukcyrillic",1144,"Umacron",362,"Umacroncyrillic",1262,"Umacrondieresis",7802,"Umonospace",65333,"Uogonek",370,"Upsilon",933,"Upsilon1",978,"Upsilonacutehooksymbolgreek",979,"Upsilonafrican",433,"Upsilondieresis",939,"Upsilondieresishooksymbolgreek",980,"Upsilonhooksymbol",978,"Upsilontonos",910,"Uring",366,"Ushortcyrillic",1038,"Usmall",63349,"Ustraightcyrillic",1198,"Ustraightstrokecyrillic",1200,"Utilde",360,"Utildeacute",7800,"Utildebelow",7796,"V",86,"Vcircle",9419,"Vdotbelow",7806,"Vecyrillic",1042,"Vewarmenian",1358,"Vhook",434,"Vmonospace",65334,"Voarmenian",1352,"Vsmall",63350,"Vtilde",7804,"W",87,"Wacute",7810,"Wcircle",9420,"Wcircumflex",372,"Wdieresis",7812,"Wdotaccent",7814,"Wdotbelow",7816,"Wgrave",7808,"Wmonospace",65335,"Wsmall",63351,"X",88,"Xcircle",9421,"Xdieresis",7820,"Xdotaccent",7818,"Xeharmenian",1341,"Xi",926,"Xmonospace",65336,"Xsmall",63352,"Y",89,"Yacute",221,"Yacutesmall",63485,"Yatcyrillic",1122,"Ycircle",9422,"Ycircumflex",374,"Ydieresis",376,"Ydieresissmall",63487,"Ydotaccent",7822,"Ydotbelow",7924,"Yericyrillic",1067,"Yerudieresiscyrillic",1272,"Ygrave",7922,"Yhook",435,"Yhookabove",7926,"Yiarmenian",1349,"Yicyrillic",1031,"Yiwnarmenian",1362,"Ymonospace",65337,"Ysmall",63353,"Ytilde",7928,"Yusbigcyrillic",1130,"Yusbigiotifiedcyrillic",1132,"Yuslittlecyrillic",1126,"Yuslittleiotifiedcyrillic",1128,"Z",90,"Zaarmenian",1334,"Zacute",377,"Zcaron",381,"Zcaronsmall",63231,"Zcircle",9423,"Zcircumflex",7824,"Zdot",379,"Zdotaccent",379,"Zdotbelow",7826,"Zecyrillic",1047,"Zedescendercyrillic",1176,"Zedieresiscyrillic",1246,"Zeta",918,"Zhearmenian",1338,"Zhebrevecyrillic",1217,"Zhecyrillic",1046,"Zhedescendercyrillic",1174,"Zhedieresiscyrillic",1244,"Zlinebelow",7828,"Zmonospace",65338,"Zsmall",63354,"Zstroke",437,"a",97,"aabengali",2438,"aacute",225,"aadeva",2310,"aagujarati",2694,"aagurmukhi",2566,"aamatragurmukhi",2622,"aarusquare",13059,"aavowelsignbengali",2494,"aavowelsigndeva",2366,"aavowelsigngujarati",2750,"abbreviationmarkarmenian",1375,"abbreviationsigndeva",2416,"abengali",2437,"abopomofo",12570,"abreve",259,"abreveacute",7855,"abrevecyrillic",1233,"abrevedotbelow",7863,"abrevegrave",7857,"abrevehookabove",7859,"abrevetilde",7861,"acaron",462,"acircle",9424,"acircumflex",226,"acircumflexacute",7845,"acircumflexdotbelow",7853,"acircumflexgrave",7847,"acircumflexhookabove",7849,"acircumflextilde",7851,"acute",180,"acutebelowcmb",791,"acutecmb",769,"acutecomb",769,"acutedeva",2388,"acutelowmod",719,"acutetonecmb",833,"acyrillic",1072,"adblgrave",513,"addakgurmukhi",2673,"adeva",2309,"adieresis",228,"adieresiscyrillic",1235,"adieresismacron",479,"adotbelow",7841,"adotmacron",481,"ae",230,"aeacute",509,"aekorean",12624,"aemacron",483,"afii00208",8213,"afii08941",8356,"afii10017",1040,"afii10018",1041,"afii10019",1042,"afii10020",1043,"afii10021",1044,"afii10022",1045,"afii10023",1025,"afii10024",1046,"afii10025",1047,"afii10026",1048,"afii10027",1049,"afii10028",1050,"afii10029",1051,"afii10030",1052,"afii10031",1053,"afii10032",1054,"afii10033",1055,"afii10034",1056,"afii10035",1057,"afii10036",1058,"afii10037",1059,"afii10038",1060,"afii10039",1061,"afii10040",1062,"afii10041",1063,"afii10042",1064,"afii10043",1065,"afii10044",1066,"afii10045",1067,"afii10046",1068,"afii10047",1069,"afii10048",1070,"afii10049",1071,"afii10050",1168,"afii10051",1026,"afii10052",1027,"afii10053",1028,"afii10054",1029,"afii10055",1030,"afii10056",1031,"afii10057",1032,"afii10058",1033,"afii10059",1034,"afii10060",1035,"afii10061",1036,"afii10062",1038,"afii10063",63172,"afii10064",63173,"afii10065",1072,"afii10066",1073,"afii10067",1074,"afii10068",1075,"afii10069",1076,"afii10070",1077,"afii10071",1105,"afii10072",1078,"afii10073",1079,"afii10074",1080,"afii10075",1081,"afii10076",1082,"afii10077",1083,"afii10078",1084,"afii10079",1085,"afii10080",1086,"afii10081",1087,"afii10082",1088,"afii10083",1089,"afii10084",1090,"afii10085",1091,"afii10086",1092,"afii10087",1093,"afii10088",1094,"afii10089",1095,"afii10090",1096,"afii10091",1097,"afii10092",1098,"afii10093",1099,"afii10094",1100,"afii10095",1101,"afii10096",1102,"afii10097",1103,"afii10098",1169,"afii10099",1106,"afii10100",1107,"afii10101",1108,"afii10102",1109,"afii10103",1110,"afii10104",1111,"afii10105",1112,"afii10106",1113,"afii10107",1114,"afii10108",1115,"afii10109",1116,"afii10110",1118,"afii10145",1039,"afii10146",1122,"afii10147",1138,"afii10148",1140,"afii10192",63174,"afii10193",1119,"afii10194",1123,"afii10195",1139,"afii10196",1141,"afii10831",63175,"afii10832",63176,"afii10846",1241,"afii299",8206,"afii300",8207,"afii301",8205,"afii57381",1642,"afii57388",1548,"afii57392",1632,"afii57393",1633,"afii57394",1634,"afii57395",1635,"afii57396",1636,"afii57397",1637,"afii57398",1638,"afii57399",1639,"afii57400",1640,"afii57401",1641,"afii57403",1563,"afii57407",1567,"afii57409",1569,"afii57410",1570,"afii57411",1571,"afii57412",1572,"afii57413",1573,"afii57414",1574,"afii57415",1575,"afii57416",1576,"afii57417",1577,"afii57418",1578,"afii57419",1579,"afii57420",1580,"afii57421",1581,"afii57422",1582,"afii57423",1583,"afii57424",1584,"afii57425",1585,"afii57426",1586,"afii57427",1587,"afii57428",1588,"afii57429",1589,"afii57430",1590,"afii57431",1591,"afii57432",1592,"afii57433",1593,"afii57434",1594,"afii57440",1600,"afii57441",1601,"afii57442",1602,"afii57443",1603,"afii57444",1604,"afii57445",1605,"afii57446",1606,"afii57448",1608,"afii57449",1609,"afii57450",1610,"afii57451",1611,"afii57452",1612,"afii57453",1613,"afii57454",1614,"afii57455",1615,"afii57456",1616,"afii57457",1617,"afii57458",1618,"afii57470",1607,"afii57505",1700,"afii57506",1662,"afii57507",1670,"afii57508",1688,"afii57509",1711,"afii57511",1657,"afii57512",1672,"afii57513",1681,"afii57514",1722,"afii57519",1746,"afii57534",1749,"afii57636",8362,"afii57645",1470,"afii57658",1475,"afii57664",1488,"afii57665",1489,"afii57666",1490,"afii57667",1491,"afii57668",1492,"afii57669",1493,"afii57670",1494,"afii57671",1495,"afii57672",1496,"afii57673",1497,"afii57674",1498,"afii57675",1499,"afii57676",1500,"afii57677",1501,"afii57678",1502,"afii57679",1503,"afii57680",1504,"afii57681",1505,"afii57682",1506,"afii57683",1507,"afii57684",1508,"afii57685",1509,"afii57686",1510,"afii57687",1511,"afii57688",1512,"afii57689",1513,"afii57690",1514,"afii57694",64298,"afii57695",64299,"afii57700",64331,"afii57705",64287,"afii57716",1520,"afii57717",1521,"afii57718",1522,"afii57723",64309,"afii57793",1460,"afii57794",1461,"afii57795",1462,"afii57796",1467,"afii57797",1464,"afii57798",1463,"afii57799",1456,"afii57800",1458,"afii57801",1457,"afii57802",1459,"afii57803",1474,"afii57804",1473,"afii57806",1465,"afii57807",1468,"afii57839",1469,"afii57841",1471,"afii57842",1472,"afii57929",700,"afii61248",8453,"afii61289",8467,"afii61352",8470,"afii61573",8236,"afii61574",8237,"afii61575",8238,"afii61664",8204,"afii63167",1645,"afii64937",701,"agrave",224,"agujarati",2693,"agurmukhi",2565,"ahiragana",12354,"ahookabove",7843,"aibengali",2448,"aibopomofo",12574,"aideva",2320,"aiecyrillic",1237,"aigujarati",2704,"aigurmukhi",2576,"aimatragurmukhi",2632,"ainarabic",1593,"ainfinalarabic",65226,"aininitialarabic",65227,"ainmedialarabic",65228,"ainvertedbreve",515,"aivowelsignbengali",2504,"aivowelsigndeva",2376,"aivowelsigngujarati",2760,"akatakana",12450,"akatakanahalfwidth",65393,"akorean",12623,"alef",1488,"alefarabic",1575,"alefdageshhebrew",64304,"aleffinalarabic",65166,"alefhamzaabovearabic",1571,"alefhamzaabovefinalarabic",65156,"alefhamzabelowarabic",1573,"alefhamzabelowfinalarabic",65160,"alefhebrew",1488,"aleflamedhebrew",64335,"alefmaddaabovearabic",1570,"alefmaddaabovefinalarabic",65154,"alefmaksuraarabic",1609,"alefmaksurafinalarabic",65264,"alefmaksurainitialarabic",65267,"alefmaksuramedialarabic",65268,"alefpatahhebrew",64302,"alefqamatshebrew",64303,"aleph",8501,"allequal",8780,"alpha",945,"alphatonos",940,"amacron",257,"amonospace",65345,"ampersand",38,"ampersandmonospace",65286,"ampersandsmall",63270,"amsquare",13250,"anbopomofo",12578,"angbopomofo",12580,"angbracketleft",12296,"angbracketright",12297,"angkhankhuthai",3674,"angle",8736,"anglebracketleft",12296,"anglebracketleftvertical",65087,"anglebracketright",12297,"anglebracketrightvertical",65088,"angleleft",9001,"angleright",9002,"angstrom",8491,"anoteleia",903,"anudattadeva",2386,"anusvarabengali",2434,"anusvaradeva",2306,"anusvaragujarati",2690,"aogonek",261,"apaatosquare",13056,"aparen",9372,"apostrophearmenian",1370,"apostrophemod",700,"apple",63743,"approaches",8784,"approxequal",8776,"approxequalorimage",8786,"approximatelyequal",8773,"araeaekorean",12686,"araeakorean",12685,"arc",8978,"arighthalfring",7834,"aring",229,"aringacute",507,"aringbelow",7681,"arrowboth",8596,"arrowdashdown",8675,"arrowdashleft",8672,"arrowdashright",8674,"arrowdashup",8673,"arrowdblboth",8660,"arrowdbldown",8659,"arrowdblleft",8656,"arrowdblright",8658,"arrowdblup",8657,"arrowdown",8595,"arrowdownleft",8601,"arrowdownright",8600,"arrowdownwhite",8681,"arrowheaddownmod",709,"arrowheadleftmod",706,"arrowheadrightmod",707,"arrowheadupmod",708,"arrowhorizex",63719,"arrowleft",8592,"arrowleftdbl",8656,"arrowleftdblstroke",8653,"arrowleftoverright",8646,"arrowleftwhite",8678,"arrowright",8594,"arrowrightdblstroke",8655,"arrowrightheavy",10142,"arrowrightoverleft",8644,"arrowrightwhite",8680,"arrowtableft",8676,"arrowtabright",8677,"arrowup",8593,"arrowupdn",8597,"arrowupdnbse",8616,"arrowupdownbase",8616,"arrowupleft",8598,"arrowupleftofdown",8645,"arrowupright",8599,"arrowupwhite",8679,"arrowvertex",63718,"asciicircum",94,"asciicircummonospace",65342,"asciitilde",126,"asciitildemonospace",65374,"ascript",593,"ascriptturned",594,"asmallhiragana",12353,"asmallkatakana",12449,"asmallkatakanahalfwidth",65383,"asterisk",42,"asteriskaltonearabic",1645,"asteriskarabic",1645,"asteriskmath",8727,"asteriskmonospace",65290,"asterisksmall",65121,"asterism",8258,"asuperior",63209,"asymptoticallyequal",8771,"at",64,"atilde",227,"atmonospace",65312,"atsmall",65131,"aturned",592,"aubengali",2452,"aubopomofo",12576,"audeva",2324,"augujarati",2708,"augurmukhi",2580,"aulengthmarkbengali",2519,"aumatragurmukhi",2636,"auvowelsignbengali",2508,"auvowelsigndeva",2380,"auvowelsigngujarati",2764,"avagrahadeva",2365,"aybarmenian",1377,"ayin",1506,"ayinaltonehebrew",64288,"ayinhebrew",1506,"b",98,"babengali",2476,"backslash",92,"backslashmonospace",65340,"badeva",2348,"bagujarati",2732,"bagurmukhi",2604,"bahiragana",12400,"bahtthai",3647,"bakatakana",12496,"bar",124,"barmonospace",65372,"bbopomofo",12549,"bcircle",9425,"bdotaccent",7683,"bdotbelow",7685,"beamedsixteenthnotes",9836,"because",8757,"becyrillic",1073,"beharabic",1576,"behfinalarabic",65168,"behinitialarabic",65169,"behiragana",12409,"behmedialarabic",65170,"behmeeminitialarabic",64671,"behmeemisolatedarabic",64520,"behnoonfinalarabic",64621,"bekatakana",12505,"benarmenian",1378,"bet",1489,"beta",946,"betasymbolgreek",976,"betdagesh",64305,"betdageshhebrew",64305,"bethebrew",1489,"betrafehebrew",64332,"bhabengali",2477,"bhadeva",2349,"bhagujarati",2733,"bhagurmukhi",2605,"bhook",595,"bihiragana",12403,"bikatakana",12499,"bilabialclick",664,"bindigurmukhi",2562,"birusquare",13105,"blackcircle",9679,"blackdiamond",9670,"blackdownpointingtriangle",9660,"blackleftpointingpointer",9668,"blackleftpointingtriangle",9664,"blacklenticularbracketleft",12304,"blacklenticularbracketleftvertical",65083,"blacklenticularbracketright",12305,"blacklenticularbracketrightvertical",65084,"blacklowerlefttriangle",9699,"blacklowerrighttriangle",9698,"blackrectangle",9644,"blackrightpointingpointer",9658,"blackrightpointingtriangle",9654,"blacksmallsquare",9642,"blacksmilingface",9787,"blacksquare",9632,"blackstar",9733,"blackupperlefttriangle",9700,"blackupperrighttriangle",9701,"blackuppointingsmalltriangle",9652,"blackuppointingtriangle",9650,"blank",9251,"blinebelow",7687,"block",9608,"bmonospace",65346,"bobaimaithai",3610,"bohiragana",12412,"bokatakana",12508,"bparen",9373,"bqsquare",13251,"braceex",63732,"braceleft",123,"braceleftbt",63731,"braceleftmid",63730,"braceleftmonospace",65371,"braceleftsmall",65115,"bracelefttp",63729,"braceleftvertical",65079,"braceright",125,"bracerightbt",63742,"bracerightmid",63741,"bracerightmonospace",65373,"bracerightsmall",65116,"bracerighttp",63740,"bracerightvertical",65080,"bracketleft",91,"bracketleftbt",63728,"bracketleftex",63727,"bracketleftmonospace",65339,"bracketlefttp",63726,"bracketright",93,"bracketrightbt",63739,"bracketrightex",63738,"bracketrightmonospace",65341,"bracketrighttp",63737,"breve",728,"brevebelowcmb",814,"brevecmb",774,"breveinvertedbelowcmb",815,"breveinvertedcmb",785,"breveinverteddoublecmb",865,"bridgebelowcmb",810,"bridgeinvertedbelowcmb",826,"brokenbar",166,"bstroke",384,"bsuperior",63210,"btopbar",387,"buhiragana",12406,"bukatakana",12502,"bullet",8226,"bulletinverse",9688,"bulletoperator",8729,"bullseye",9678,"c",99,"caarmenian",1390,"cabengali",2458,"cacute",263,"cadeva",2330,"cagujarati",2714,"cagurmukhi",2586,"calsquare",13192,"candrabindubengali",2433,"candrabinducmb",784,"candrabindudeva",2305,"candrabindugujarati",2689,"capslock",8682,"careof",8453,"caron",711,"caronbelowcmb",812,"caroncmb",780,"carriagereturn",8629,"cbopomofo",12568,"ccaron",269,"ccedilla",231,"ccedillaacute",7689,"ccircle",9426,"ccircumflex",265,"ccurl",597,"cdot",267,"cdotaccent",267,"cdsquare",13253,"cedilla",184,"cedillacmb",807,"cent",162,"centigrade",8451,"centinferior",63199,"centmonospace",65504,"centoldstyle",63394,"centsuperior",63200,"chaarmenian",1401,"chabengali",2459,"chadeva",2331,"chagujarati",2715,"chagurmukhi",2587,"chbopomofo",12564,"cheabkhasiancyrillic",1213,"checkmark",10003,"checyrillic",1095,"chedescenderabkhasiancyrillic",1215,"chedescendercyrillic",1207,"chedieresiscyrillic",1269,"cheharmenian",1395,"chekhakassiancyrillic",1228,"cheverticalstrokecyrillic",1209,"chi",967,"chieuchacirclekorean",12919,"chieuchaparenkorean",12823,"chieuchcirclekorean",12905,"chieuchkorean",12618,"chieuchparenkorean",12809,"chochangthai",3594,"chochanthai",3592,"chochingthai",3593,"chochoethai",3596,"chook",392,"cieucacirclekorean",12918,"cieucaparenkorean",12822,"cieuccirclekorean",12904,"cieuckorean",12616,"cieucparenkorean",12808,"cieucuparenkorean",12828,"circle",9675,"circlecopyrt",169,"circlemultiply",8855,"circleot",8857,"circleplus",8853,"circlepostalmark",12342,"circlewithlefthalfblack",9680,"circlewithrighthalfblack",9681,"circumflex",710,"circumflexbelowcmb",813,"circumflexcmb",770,"clear",8999,"clickalveolar",450,"clickdental",448,"clicklateral",449,"clickretroflex",451,"club",9827,"clubsuitblack",9827,"clubsuitwhite",9831,"cmcubedsquare",13220,"cmonospace",65347,"cmsquaredsquare",13216,"coarmenian",1409,"colon",58,"colonmonetary",8353,"colonmonospace",65306,"colonsign",8353,"colonsmall",65109,"colontriangularhalfmod",721,"colontriangularmod",720,"comma",44,"commaabovecmb",787,"commaaboverightcmb",789,"commaaccent",63171,"commaarabic",1548,"commaarmenian",1373,"commainferior",63201,"commamonospace",65292,"commareversedabovecmb",788,"commareversedmod",701,"commasmall",65104,"commasuperior",63202,"commaturnedabovecmb",786,"commaturnedmod",699,"compass",9788,"congruent",8773,"contourintegral",8750,"control",8963,"controlACK",6,"controlBEL",7,"controlBS",8,"controlCAN",24,"controlCR",13,"controlDC1",17,"controlDC2",18,"controlDC3",19,"controlDC4",20,"controlDEL",127,"controlDLE",16,"controlEM",25,"controlENQ",5,"controlEOT",4,"controlESC",27,"controlETB",23,"controlETX",3,"controlFF",12,"controlFS",28,"controlGS",29,"controlHT",9,"controlLF",10,"controlNAK",21,"controlNULL",0,"controlRS",30,"controlSI",15,"controlSO",14,"controlSOT",2,"controlSTX",1,"controlSUB",26,"controlSYN",22,"controlUS",31,"controlVT",11,"copyright",169,"copyrightsans",63721,"copyrightserif",63193,"cornerbracketleft",12300,"cornerbracketlefthalfwidth",65378,"cornerbracketleftvertical",65089,"cornerbracketright",12301,"cornerbracketrighthalfwidth",65379,"cornerbracketrightvertical",65090,"corporationsquare",13183,"cosquare",13255,"coverkgsquare",13254,"cparen",9374,"cruzeiro",8354,"cstretched",663,"curlyand",8911,"curlyor",8910,"currency",164,"cyrBreve",63185,"cyrFlex",63186,"cyrbreve",63188,"cyrflex",63189,"d",100,"daarmenian",1380,"dabengali",2470,"dadarabic",1590,"dadeva",2342,"dadfinalarabic",65214,"dadinitialarabic",65215,"dadmedialarabic",65216,"dagesh",1468,"dageshhebrew",1468,"dagger",8224,"daggerdbl",8225,"dagujarati",2726,"dagurmukhi",2598,"dahiragana",12384,"dakatakana",12480,"dalarabic",1583,"dalet",1491,"daletdagesh",64307,"daletdageshhebrew",64307,"dalethebrew",1491,"dalfinalarabic",65194,"dammaarabic",1615,"dammalowarabic",1615,"dammatanaltonearabic",1612,"dammatanarabic",1612,"danda",2404,"dargahebrew",1447,"dargalefthebrew",1447,"dasiapneumatacyrilliccmb",1157,"dblGrave",63187,"dblanglebracketleft",12298,"dblanglebracketleftvertical",65085,"dblanglebracketright",12299,"dblanglebracketrightvertical",65086,"dblarchinvertedbelowcmb",811,"dblarrowleft",8660,"dblarrowright",8658,"dbldanda",2405,"dblgrave",63190,"dblgravecmb",783,"dblintegral",8748,"dbllowline",8215,"dbllowlinecmb",819,"dbloverlinecmb",831,"dblprimemod",698,"dblverticalbar",8214,"dblverticallineabovecmb",782,"dbopomofo",12553,"dbsquare",13256,"dcaron",271,"dcedilla",7697,"dcircle",9427,"dcircumflexbelow",7699,"dcroat",273,"ddabengali",2465,"ddadeva",2337,"ddagujarati",2721,"ddagurmukhi",2593,"ddalarabic",1672,"ddalfinalarabic",64393,"dddhadeva",2396,"ddhabengali",2466,"ddhadeva",2338,"ddhagujarati",2722,"ddhagurmukhi",2594,"ddotaccent",7691,"ddotbelow",7693,"decimalseparatorarabic",1643,"decimalseparatorpersian",1643,"decyrillic",1076,"degree",176,"dehihebrew",1453,"dehiragana",12391,"deicoptic",1007,"dekatakana",12487,"deleteleft",9003,"deleteright",8998,"delta",948,"deltaturned",397,"denominatorminusonenumeratorbengali",2552,"dezh",676,"dhabengali",2471,"dhadeva",2343,"dhagujarati",2727,"dhagurmukhi",2599,"dhook",599,"dialytikatonos",901,"dialytikatonoscmb",836,"diamond",9830,"diamondsuitwhite",9826,"dieresis",168,"dieresisacute",63191,"dieresisbelowcmb",804,"dieresiscmb",776,"dieresisgrave",63192,"dieresistonos",901,"dihiragana",12386,"dikatakana",12482,"dittomark",12291,"divide",247,"divides",8739,"divisionslash",8725,"djecyrillic",1106,"dkshade",9619,"dlinebelow",7695,"dlsquare",13207,"dmacron",273,"dmonospace",65348,"dnblock",9604,"dochadathai",3598,"dodekthai",3604,"dohiragana",12393,"dokatakana",12489,"dollar",36,"dollarinferior",63203,"dollarmonospace",65284,"dollaroldstyle",63268,"dollarsmall",65129,"dollarsuperior",63204,"dong",8363,"dorusquare",13094,"dotaccent",729,"dotaccentcmb",775,"dotbelowcmb",803,"dotbelowcomb",803,"dotkatakana",12539,"dotlessi",305,"dotlessj",63166,"dotlessjstrokehook",644,"dotmath",8901,"dottedcircle",9676,"doubleyodpatah",64287,"doubleyodpatahhebrew",64287,"downtackbelowcmb",798,"downtackmod",725,"dparen",9375,"dsuperior",63211,"dtail",598,"dtopbar",396,"duhiragana",12389,"dukatakana",12485,"dz",499,"dzaltone",675,"dzcaron",454,"dzcurl",677,"dzeabkhasiancyrillic",1249,"dzecyrillic",1109,"dzhecyrillic",1119,"e",101,"eacute",233,"earth",9793,"ebengali",2447,"ebopomofo",12572,"ebreve",277,"ecandradeva",2317,"ecandragujarati",2701,"ecandravowelsigndeva",2373,"ecandravowelsigngujarati",2757,"ecaron",283,"ecedillabreve",7709,"echarmenian",1381,"echyiwnarmenian",1415,"ecircle",9428,"ecircumflex",234,"ecircumflexacute",7871,"ecircumflexbelow",7705,"ecircumflexdotbelow",7879,"ecircumflexgrave",7873,"ecircumflexhookabove",7875,"ecircumflextilde",7877,"ecyrillic",1108,"edblgrave",517,"edeva",2319,"edieresis",235,"edot",279,"edotaccent",279,"edotbelow",7865,"eegurmukhi",2575,"eematragurmukhi",2631,"efcyrillic",1092,"egrave",232,"egujarati",2703,"eharmenian",1383,"ehbopomofo",12573,"ehiragana",12360,"ehookabove",7867,"eibopomofo",12575,"eight",56,"eightarabic",1640,"eightbengali",2542,"eightcircle",9319,"eightcircleinversesansserif",10129,"eightdeva",2414,"eighteencircle",9329,"eighteenparen",9349,"eighteenperiod",9369,"eightgujarati",2798,"eightgurmukhi",2670,"eighthackarabic",1640,"eighthangzhou",12328,"eighthnotebeamed",9835,"eightideographicparen",12839,"eightinferior",8328,"eightmonospace",65304,"eightoldstyle",63288,"eightparen",9339,"eightperiod",9359,"eightpersian",1784,"eightroman",8567,"eightsuperior",8312,"eightthai",3672,"einvertedbreve",519,"eiotifiedcyrillic",1125,"ekatakana",12456,"ekatakanahalfwidth",65396,"ekonkargurmukhi",2676,"ekorean",12628,"elcyrillic",1083,"element",8712,"elevencircle",9322,"elevenparen",9342,"elevenperiod",9362,"elevenroman",8570,"ellipsis",8230,"ellipsisvertical",8942,"emacron",275,"emacronacute",7703,"emacrongrave",7701,"emcyrillic",1084,"emdash",8212,"emdashvertical",65073,"emonospace",65349,"emphasismarkarmenian",1371,"emptyset",8709,"enbopomofo",12579,"encyrillic",1085,"endash",8211,"endashvertical",65074,"endescendercyrillic",1187,"eng",331,"engbopomofo",12581,"enghecyrillic",1189,"enhookcyrillic",1224,"enspace",8194,"eogonek",281,"eokorean",12627,"eopen",603,"eopenclosed",666,"eopenreversed",604,"eopenreversedclosed",606,"eopenreversedhook",605,"eparen",9376,"epsilon",949,"epsilontonos",941,"equal",61,"equalmonospace",65309,"equalsmall",65126,"equalsuperior",8316,"equivalence",8801,"erbopomofo",12582,"ercyrillic",1088,"ereversed",600,"ereversedcyrillic",1101,"escyrillic",1089,"esdescendercyrillic",1195,"esh",643,"eshcurl",646,"eshortdeva",2318,"eshortvowelsigndeva",2374,"eshreversedloop",426,"eshsquatreversed",645,"esmallhiragana",12359,"esmallkatakana",12455,"esmallkatakanahalfwidth",65386,"estimated",8494,"esuperior",63212,"eta",951,"etarmenian",1384,"etatonos",942,"eth",240,"etilde",7869,"etildebelow",7707,"etnahtafoukhhebrew",1425,"etnahtafoukhlefthebrew",1425,"etnahtahebrew",1425,"etnahtalefthebrew",1425,"eturned",477,"eukorean",12641,"euro",8364,"evowelsignbengali",2503,"evowelsigndeva",2375,"evowelsigngujarati",2759,"exclam",33,"exclamarmenian",1372,"exclamdbl",8252,"exclamdown",161,"exclamdownsmall",63393,"exclammonospace",65281,"exclamsmall",63265,"existential",8707,"ezh",658,"ezhcaron",495,"ezhcurl",659,"ezhreversed",441,"ezhtail",442,"f",102,"fadeva",2398,"fagurmukhi",2654,"fahrenheit",8457,"fathaarabic",1614,"fathalowarabic",1614,"fathatanarabic",1611,"fbopomofo",12552,"fcircle",9429,"fdotaccent",7711,"feharabic",1601,"feharmenian",1414,"fehfinalarabic",65234,"fehinitialarabic",65235,"fehmedialarabic",65236,"feicoptic",997,"female",9792,"ff",64256,"f_f",64256,"ffi",64259,"ffl",64260,"fi",64257,"fifteencircle",9326,"fifteenparen",9346,"fifteenperiod",9366,"figuredash",8210,"filledbox",9632,"filledrect",9644,"finalkaf",1498,"finalkafdagesh",64314,"finalkafdageshhebrew",64314,"finalkafhebrew",1498,"finalmem",1501,"finalmemhebrew",1501,"finalnun",1503,"finalnunhebrew",1503,"finalpe",1507,"finalpehebrew",1507,"finaltsadi",1509,"finaltsadihebrew",1509,"firsttonechinese",713,"fisheye",9673,"fitacyrillic",1139,"five",53,"fivearabic",1637,"fivebengali",2539,"fivecircle",9316,"fivecircleinversesansserif",10126,"fivedeva",2411,"fiveeighths",8541,"fivegujarati",2795,"fivegurmukhi",2667,"fivehackarabic",1637,"fivehangzhou",12325,"fiveideographicparen",12836,"fiveinferior",8325,"fivemonospace",65301,"fiveoldstyle",63285,"fiveparen",9336,"fiveperiod",9356,"fivepersian",1781,"fiveroman",8564,"fivesuperior",8309,"fivethai",3669,"fl",64258,"florin",402,"fmonospace",65350,"fmsquare",13209,"fofanthai",3615,"fofathai",3613,"fongmanthai",3663,"forall",8704,"four",52,"fourarabic",1636,"fourbengali",2538,"fourcircle",9315,"fourcircleinversesansserif",10125,"fourdeva",2410,"fourgujarati",2794,"fourgurmukhi",2666,"fourhackarabic",1636,"fourhangzhou",12324,"fourideographicparen",12835,"fourinferior",8324,"fourmonospace",65300,"fournumeratorbengali",2551,"fouroldstyle",63284,"fourparen",9335,"fourperiod",9355,"fourpersian",1780,"fourroman",8563,"foursuperior",8308,"fourteencircle",9325,"fourteenparen",9345,"fourteenperiod",9365,"fourthai",3668,"fourthtonechinese",715,"fparen",9377,"fraction",8260,"franc",8355,"g",103,"gabengali",2455,"gacute",501,"gadeva",2327,"gafarabic",1711,"gaffinalarabic",64403,"gafinitialarabic",64404,"gafmedialarabic",64405,"gagujarati",2711,"gagurmukhi",2583,"gahiragana",12364,"gakatakana",12460,"gamma",947,"gammalatinsmall",611,"gammasuperior",736,"gangiacoptic",1003,"gbopomofo",12557,"gbreve",287,"gcaron",487,"gcedilla",291,"gcircle",9430,"gcircumflex",285,"gcommaaccent",291,"gdot",289,"gdotaccent",289,"gecyrillic",1075,"gehiragana",12370,"gekatakana",12466,"geometricallyequal",8785,"gereshaccenthebrew",1436,"gereshhebrew",1523,"gereshmuqdamhebrew",1437,"germandbls",223,"gershayimaccenthebrew",1438,"gershayimhebrew",1524,"getamark",12307,"ghabengali",2456,"ghadarmenian",1394,"ghadeva",2328,"ghagujarati",2712,"ghagurmukhi",2584,"ghainarabic",1594,"ghainfinalarabic",65230,"ghaininitialarabic",65231,"ghainmedialarabic",65232,"ghemiddlehookcyrillic",1173,"ghestrokecyrillic",1171,"gheupturncyrillic",1169,"ghhadeva",2394,"ghhagurmukhi",2650,"ghook",608,"ghzsquare",13203,"gihiragana",12366,"gikatakana",12462,"gimarmenian",1379,"gimel",1490,"gimeldagesh",64306,"gimeldageshhebrew",64306,"gimelhebrew",1490,"gjecyrillic",1107,"glottalinvertedstroke",446,"glottalstop",660,"glottalstopinverted",662,"glottalstopmod",704,"glottalstopreversed",661,"glottalstopreversedmod",705,"glottalstopreversedsuperior",740,"glottalstopstroke",673,"glottalstopstrokereversed",674,"gmacron",7713,"gmonospace",65351,"gohiragana",12372,"gokatakana",12468,"gparen",9378,"gpasquare",13228,"gradient",8711,"grave",96,"gravebelowcmb",790,"gravecmb",768,"gravecomb",768,"gravedeva",2387,"gravelowmod",718,"gravemonospace",65344,"gravetonecmb",832,"greater",62,"greaterequal",8805,"greaterequalorless",8923,"greatermonospace",65310,"greaterorequivalent",8819,"greaterorless",8823,"greateroverequal",8807,"greatersmall",65125,"gscript",609,"gstroke",485,"guhiragana",12368,"guillemotleft",171,"guillemotright",187,"guilsinglleft",8249,"guilsinglright",8250,"gukatakana",12464,"guramusquare",13080,"gysquare",13257,"h",104,"haabkhasiancyrillic",1193,"haaltonearabic",1729,"habengali",2489,"hadescendercyrillic",1203,"hadeva",2361,"hagujarati",2745,"hagurmukhi",2617,"haharabic",1581,"hahfinalarabic",65186,"hahinitialarabic",65187,"hahiragana",12399,"hahmedialarabic",65188,"haitusquare",13098,"hakatakana",12495,"hakatakanahalfwidth",65418,"halantgurmukhi",2637,"hamzaarabic",1569,"hamzalowarabic",1569,"hangulfiller",12644,"hardsigncyrillic",1098,"harpoonleftbarbup",8636,"harpoonrightbarbup",8640,"hasquare",13258,"hatafpatah",1458,"hatafpatah16",1458,"hatafpatah23",1458,"hatafpatah2f",1458,"hatafpatahhebrew",1458,"hatafpatahnarrowhebrew",1458,"hatafpatahquarterhebrew",1458,"hatafpatahwidehebrew",1458,"hatafqamats",1459,"hatafqamats1b",1459,"hatafqamats28",1459,"hatafqamats34",1459,"hatafqamatshebrew",1459,"hatafqamatsnarrowhebrew",1459,"hatafqamatsquarterhebrew",1459,"hatafqamatswidehebrew",1459,"hatafsegol",1457,"hatafsegol17",1457,"hatafsegol24",1457,"hatafsegol30",1457,"hatafsegolhebrew",1457,"hatafsegolnarrowhebrew",1457,"hatafsegolquarterhebrew",1457,"hatafsegolwidehebrew",1457,"hbar",295,"hbopomofo",12559,"hbrevebelow",7723,"hcedilla",7721,"hcircle",9431,"hcircumflex",293,"hdieresis",7719,"hdotaccent",7715,"hdotbelow",7717,"he",1492,"heart",9829,"heartsuitblack",9829,"heartsuitwhite",9825,"hedagesh",64308,"hedageshhebrew",64308,"hehaltonearabic",1729,"heharabic",1607,"hehebrew",1492,"hehfinalaltonearabic",64423,"hehfinalalttwoarabic",65258,"hehfinalarabic",65258,"hehhamzaabovefinalarabic",64421,"hehhamzaaboveisolatedarabic",64420,"hehinitialaltonearabic",64424,"hehinitialarabic",65259,"hehiragana",12408,"hehmedialaltonearabic",64425,"hehmedialarabic",65260,"heiseierasquare",13179,"hekatakana",12504,"hekatakanahalfwidth",65421,"hekutaarusquare",13110,"henghook",615,"herutusquare",13113,"het",1495,"hethebrew",1495,"hhook",614,"hhooksuperior",689,"hieuhacirclekorean",12923,"hieuhaparenkorean",12827,"hieuhcirclekorean",12909,"hieuhkorean",12622,"hieuhparenkorean",12813,"hihiragana",12402,"hikatakana",12498,"hikatakanahalfwidth",65419,"hiriq",1460,"hiriq14",1460,"hiriq21",1460,"hiriq2d",1460,"hiriqhebrew",1460,"hiriqnarrowhebrew",1460,"hiriqquarterhebrew",1460,"hiriqwidehebrew",1460,"hlinebelow",7830,"hmonospace",65352,"hoarmenian",1392,"hohipthai",3627,"hohiragana",12411,"hokatakana",12507,"hokatakanahalfwidth",65422,"holam",1465,"holam19",1465,"holam26",1465,"holam32",1465,"holamhebrew",1465,"holamnarrowhebrew",1465,"holamquarterhebrew",1465,"holamwidehebrew",1465,"honokhukthai",3630,"hookabovecomb",777,"hookcmb",777,"hookpalatalizedbelowcmb",801,"hookretroflexbelowcmb",802,"hoonsquare",13122,"horicoptic",1001,"horizontalbar",8213,"horncmb",795,"hotsprings",9832,"house",8962,"hparen",9379,"hsuperior",688,"hturned",613,"huhiragana",12405,"huiitosquare",13107,"hukatakana",12501,"hukatakanahalfwidth",65420,"hungarumlaut",733,"hungarumlautcmb",779,"hv",405,"hyphen",45,"hypheninferior",63205,"hyphenmonospace",65293,"hyphensmall",65123,"hyphensuperior",63206,"hyphentwo",8208,"i",105,"iacute",237,"iacyrillic",1103,"ibengali",2439,"ibopomofo",12583,"ibreve",301,"icaron",464,"icircle",9432,"icircumflex",238,"icyrillic",1110,"idblgrave",521,"ideographearthcircle",12943,"ideographfirecircle",12939,"ideographicallianceparen",12863,"ideographiccallparen",12858,"ideographiccentrecircle",12965,"ideographicclose",12294,"ideographiccomma",12289,"ideographiccommaleft",65380,"ideographiccongratulationparen",12855,"ideographiccorrectcircle",12963,"ideographicearthparen",12847,"ideographicenterpriseparen",12861,"ideographicexcellentcircle",12957,"ideographicfestivalparen",12864,"ideographicfinancialcircle",12950,"ideographicfinancialparen",12854,"ideographicfireparen",12843,"ideographichaveparen",12850,"ideographichighcircle",12964,"ideographiciterationmark",12293,"ideographiclaborcircle",12952,"ideographiclaborparen",12856,"ideographicleftcircle",12967,"ideographiclowcircle",12966,"ideographicmedicinecircle",12969,"ideographicmetalparen",12846,"ideographicmoonparen",12842,"ideographicnameparen",12852,"ideographicperiod",12290,"ideographicprintcircle",12958,"ideographicreachparen",12867,"ideographicrepresentparen",12857,"ideographicresourceparen",12862,"ideographicrightcircle",12968,"ideographicsecretcircle",12953,"ideographicselfparen",12866,"ideographicsocietyparen",12851,"ideographicspace",12288,"ideographicspecialparen",12853,"ideographicstockparen",12849,"ideographicstudyparen",12859,"ideographicsunparen",12848,"ideographicsuperviseparen",12860,"ideographicwaterparen",12844,"ideographicwoodparen",12845,"ideographiczero",12295,"ideographmetalcircle",12942,"ideographmooncircle",12938,"ideographnamecircle",12948,"ideographsuncircle",12944,"ideographwatercircle",12940,"ideographwoodcircle",12941,"ideva",2311,"idieresis",239,"idieresisacute",7727,"idieresiscyrillic",1253,"idotbelow",7883,"iebrevecyrillic",1239,"iecyrillic",1077,"ieungacirclekorean",12917,"ieungaparenkorean",12821,"ieungcirclekorean",12903,"ieungkorean",12615,"ieungparenkorean",12807,"igrave",236,"igujarati",2695,"igurmukhi",2567,"ihiragana",12356,"ihookabove",7881,"iibengali",2440,"iicyrillic",1080,"iideva",2312,"iigujarati",2696,"iigurmukhi",2568,"iimatragurmukhi",2624,"iinvertedbreve",523,"iishortcyrillic",1081,"iivowelsignbengali",2496,"iivowelsigndeva",2368,"iivowelsigngujarati",2752,"ij",307,"ikatakana",12452,"ikatakanahalfwidth",65394,"ikorean",12643,"ilde",732,"iluyhebrew",1452,"imacron",299,"imacroncyrillic",1251,"imageorapproximatelyequal",8787,"imatragurmukhi",2623,"imonospace",65353,"increment",8710,"infinity",8734,"iniarmenian",1387,"integral",8747,"integralbottom",8993,"integralbt",8993,"integralex",63733,"integraltop",8992,"integraltp",8992,"intersection",8745,"intisquare",13061,"invbullet",9688,"invcircle",9689,"invsmileface",9787,"iocyrillic",1105,"iogonek",303,"iota",953,"iotadieresis",970,"iotadieresistonos",912,"iotalatin",617,"iotatonos",943,"iparen",9380,"irigurmukhi",2674,"ismallhiragana",12355,"ismallkatakana",12451,"ismallkatakanahalfwidth",65384,"issharbengali",2554,"istroke",616,"isuperior",63213,"iterationhiragana",12445,"iterationkatakana",12541,"itilde",297,"itildebelow",7725,"iubopomofo",12585,"iucyrillic",1102,"ivowelsignbengali",2495,"ivowelsigndeva",2367,"ivowelsigngujarati",2751,"izhitsacyrillic",1141,"izhitsadblgravecyrillic",1143,"j",106,"jaarmenian",1393,"jabengali",2460,"jadeva",2332,"jagujarati",2716,"jagurmukhi",2588,"jbopomofo",12560,"jcaron",496,"jcircle",9433,"jcircumflex",309,"jcrossedtail",669,"jdotlessstroke",607,"jecyrillic",1112,"jeemarabic",1580,"jeemfinalarabic",65182,"jeeminitialarabic",65183,"jeemmedialarabic",65184,"jeharabic",1688,"jehfinalarabic",64395,"jhabengali",2461,"jhadeva",2333,"jhagujarati",2717,"jhagurmukhi",2589,"jheharmenian",1403,"jis",12292,"jmonospace",65354,"jparen",9381,"jsuperior",690,"k",107,"kabashkircyrillic",1185,"kabengali",2453,"kacute",7729,"kacyrillic",1082,"kadescendercyrillic",1179,"kadeva",2325,"kaf",1499,"kafarabic",1603,"kafdagesh",64315,"kafdageshhebrew",64315,"kaffinalarabic",65242,"kafhebrew",1499,"kafinitialarabic",65243,"kafmedialarabic",65244,"kafrafehebrew",64333,"kagujarati",2709,"kagurmukhi",2581,"kahiragana",12363,"kahookcyrillic",1220,"kakatakana",12459,"kakatakanahalfwidth",65398,"kappa",954,"kappasymbolgreek",1008,"kapyeounmieumkorean",12657,"kapyeounphieuphkorean",12676,"kapyeounpieupkorean",12664,"kapyeounssangpieupkorean",12665,"karoriisquare",13069,"kashidaautoarabic",1600,"kashidaautonosidebearingarabic",1600,"kasmallkatakana",12533,"kasquare",13188,"kasraarabic",1616,"kasratanarabic",1613,"kastrokecyrillic",1183,"katahiraprolongmarkhalfwidth",65392,"kaverticalstrokecyrillic",1181,"kbopomofo",12558,"kcalsquare",13193,"kcaron",489,"kcedilla",311,"kcircle",9434,"kcommaaccent",311,"kdotbelow",7731,"keharmenian",1412,"kehiragana",12369,"kekatakana",12465,"kekatakanahalfwidth",65401,"kenarmenian",1391,"kesmallkatakana",12534,"kgreenlandic",312,"khabengali",2454,"khacyrillic",1093,"khadeva",2326,"khagujarati",2710,"khagurmukhi",2582,"khaharabic",1582,"khahfinalarabic",65190,"khahinitialarabic",65191,"khahmedialarabic",65192,"kheicoptic",999,"khhadeva",2393,"khhagurmukhi",2649,"khieukhacirclekorean",12920,"khieukhaparenkorean",12824,"khieukhcirclekorean",12906,"khieukhkorean",12619,"khieukhparenkorean",12810,"khokhaithai",3586,"khokhonthai",3589,"khokhuatthai",3587,"khokhwaithai",3588,"khomutthai",3675,"khook",409,"khorakhangthai",3590,"khzsquare",13201,"kihiragana",12365,"kikatakana",12461,"kikatakanahalfwidth",65399,"kiroguramusquare",13077,"kiromeetorusquare",13078,"kirosquare",13076,"kiyeokacirclekorean",12910,"kiyeokaparenkorean",12814,"kiyeokcirclekorean",12896,"kiyeokkorean",12593,"kiyeokparenkorean",12800,"kiyeoksioskorean",12595,"kjecyrillic",1116,"klinebelow",7733,"klsquare",13208,"kmcubedsquare",13222,"kmonospace",65355,"kmsquaredsquare",13218,"kohiragana",12371,"kohmsquare",13248,"kokaithai",3585,"kokatakana",12467,"kokatakanahalfwidth",65402,"kooposquare",13086,"koppacyrillic",1153,"koreanstandardsymbol",12927,"koroniscmb",835,"kparen",9382,"kpasquare",13226,"ksicyrillic",1135,"ktsquare",13263,"kturned",670,"kuhiragana",12367,"kukatakana",12463,"kukatakanahalfwidth",65400,"kvsquare",13240,"kwsquare",13246,"l",108,"labengali",2482,"lacute",314,"ladeva",2354,"lagujarati",2738,"lagurmukhi",2610,"lakkhangyaothai",3653,"lamaleffinalarabic",65276,"lamalefhamzaabovefinalarabic",65272,"lamalefhamzaaboveisolatedarabic",65271,"lamalefhamzabelowfinalarabic",65274,"lamalefhamzabelowisolatedarabic",65273,"lamalefisolatedarabic",65275,"lamalefmaddaabovefinalarabic",65270,"lamalefmaddaaboveisolatedarabic",65269,"lamarabic",1604,"lambda",955,"lambdastroke",411,"lamed",1500,"lameddagesh",64316,"lameddageshhebrew",64316,"lamedhebrew",1500,"lamfinalarabic",65246,"lamhahinitialarabic",64714,"laminitialarabic",65247,"lamjeeminitialarabic",64713,"lamkhahinitialarabic",64715,"lamlamhehisolatedarabic",65010,"lammedialarabic",65248,"lammeemhahinitialarabic",64904,"lammeeminitialarabic",64716,"largecircle",9711,"lbar",410,"lbelt",620,"lbopomofo",12556,"lcaron",318,"lcedilla",316,"lcircle",9435,"lcircumflexbelow",7741,"lcommaaccent",316,"ldot",320,"ldotaccent",320,"ldotbelow",7735,"ldotbelowmacron",7737,"leftangleabovecmb",794,"lefttackbelowcmb",792,"less",60,"lessequal",8804,"lessequalorgreater",8922,"lessmonospace",65308,"lessorequivalent",8818,"lessorgreater",8822,"lessoverequal",8806,"lesssmall",65124,"lezh",622,"lfblock",9612,"lhookretroflex",621,"lira",8356,"liwnarmenian",1388,"lj",457,"ljecyrillic",1113,"ll",63168,"lladeva",2355,"llagujarati",2739,"llinebelow",7739,"llladeva",2356,"llvocalicbengali",2529,"llvocalicdeva",2401,"llvocalicvowelsignbengali",2531,"llvocalicvowelsigndeva",2403,"lmiddletilde",619,"lmonospace",65356,"lmsquare",13264,"lochulathai",3628,"logicaland",8743,"logicalnot",172,"logicalnotreversed",8976,"logicalor",8744,"lolingthai",3621,"longs",383,"lowlinecenterline",65102,"lowlinecmb",818,"lowlinedashed",65101,"lozenge",9674,"lparen",9383,"lslash",322,"lsquare",8467,"lsuperior",63214,"ltshade",9617,"luthai",3622,"lvocalicbengali",2444,"lvocalicdeva",2316,"lvocalicvowelsignbengali",2530,"lvocalicvowelsigndeva",2402,"lxsquare",13267,"m",109,"mabengali",2478,"macron",175,"macronbelowcmb",817,"macroncmb",772,"macronlowmod",717,"macronmonospace",65507,"macute",7743,"madeva",2350,"magujarati",2734,"magurmukhi",2606,"mahapakhhebrew",1444,"mahapakhlefthebrew",1444,"mahiragana",12414,"maichattawalowleftthai",63637,"maichattawalowrightthai",63636,"maichattawathai",3659,"maichattawaupperleftthai",63635,"maieklowleftthai",63628,"maieklowrightthai",63627,"maiekthai",3656,"maiekupperleftthai",63626,"maihanakatleftthai",63620,"maihanakatthai",3633,"maitaikhuleftthai",63625,"maitaikhuthai",3655,"maitholowleftthai",63631,"maitholowrightthai",63630,"maithothai",3657,"maithoupperleftthai",63629,"maitrilowleftthai",63634,"maitrilowrightthai",63633,"maitrithai",3658,"maitriupperleftthai",63632,"maiyamokthai",3654,"makatakana",12510,"makatakanahalfwidth",65423,"male",9794,"mansyonsquare",13127,"maqafhebrew",1470,"mars",9794,"masoracirclehebrew",1455,"masquare",13187,"mbopomofo",12551,"mbsquare",13268,"mcircle",9436,"mcubedsquare",13221,"mdotaccent",7745,"mdotbelow",7747,"meemarabic",1605,"meemfinalarabic",65250,"meeminitialarabic",65251,"meemmedialarabic",65252,"meemmeeminitialarabic",64721,"meemmeemisolatedarabic",64584,"meetorusquare",13133,"mehiragana",12417,"meizierasquare",13182,"mekatakana",12513,"mekatakanahalfwidth",65426,"mem",1502,"memdagesh",64318,"memdageshhebrew",64318,"memhebrew",1502,"menarmenian",1396,"merkhahebrew",1445,"merkhakefulahebrew",1446,"merkhakefulalefthebrew",1446,"merkhalefthebrew",1445,"mhook",625,"mhzsquare",13202,"middledotkatakanahalfwidth",65381,"middot",183,"mieumacirclekorean",12914,"mieumaparenkorean",12818,"mieumcirclekorean",12900,"mieumkorean",12609,"mieumpansioskorean",12656,"mieumparenkorean",12804,"mieumpieupkorean",12654,"mieumsioskorean",12655,"mihiragana",12415,"mikatakana",12511,"mikatakanahalfwidth",65424,"minus",8722,"minusbelowcmb",800,"minuscircle",8854,"minusmod",727,"minusplus",8723,"minute",8242,"miribaarusquare",13130,"mirisquare",13129,"mlonglegturned",624,"mlsquare",13206,"mmcubedsquare",13219,"mmonospace",65357,"mmsquaredsquare",13215,"mohiragana",12418,"mohmsquare",13249,"mokatakana",12514,"mokatakanahalfwidth",65427,"molsquare",13270,"momathai",3617,"moverssquare",13223,"moverssquaredsquare",13224,"mparen",9384,"mpasquare",13227,"mssquare",13235,"msuperior",63215,"mturned",623,"mu",181,"mu1",181,"muasquare",13186,"muchgreater",8811,"muchless",8810,"mufsquare",13196,"mugreek",956,"mugsquare",13197,"muhiragana",12416,"mukatakana",12512,"mukatakanahalfwidth",65425,"mulsquare",13205,"multiply",215,"mumsquare",13211,"munahhebrew",1443,"munahlefthebrew",1443,"musicalnote",9834,"musicalnotedbl",9835,"musicflatsign",9837,"musicsharpsign",9839,"mussquare",13234,"muvsquare",13238,"muwsquare",13244,"mvmegasquare",13241,"mvsquare",13239,"mwmegasquare",13247,"mwsquare",13245,"n",110,"nabengali",2472,"nabla",8711,"nacute",324,"nadeva",2344,"nagujarati",2728,"nagurmukhi",2600,"nahiragana",12394,"nakatakana",12490,"nakatakanahalfwidth",65413,"napostrophe",329,"nasquare",13185,"nbopomofo",12555,"nbspace",160,"ncaron",328,"ncedilla",326,"ncircle",9437,"ncircumflexbelow",7755,"ncommaaccent",326,"ndotaccent",7749,"ndotbelow",7751,"nehiragana",12397,"nekatakana",12493,"nekatakanahalfwidth",65416,"newsheqelsign",8362,"nfsquare",13195,"ngabengali",2457,"ngadeva",2329,"ngagujarati",2713,"ngagurmukhi",2585,"ngonguthai",3591,"nhiragana",12435,"nhookleft",626,"nhookretroflex",627,"nieunacirclekorean",12911,"nieunaparenkorean",12815,"nieuncieuckorean",12597,"nieuncirclekorean",12897,"nieunhieuhkorean",12598,"nieunkorean",12596,"nieunpansioskorean",12648,"nieunparenkorean",12801,"nieunsioskorean",12647,"nieuntikeutkorean",12646,"nihiragana",12395,"nikatakana",12491,"nikatakanahalfwidth",65414,"nikhahitleftthai",63641,"nikhahitthai",3661,"nine",57,"ninearabic",1641,"ninebengali",2543,"ninecircle",9320,"ninecircleinversesansserif",10130,"ninedeva",2415,"ninegujarati",2799,"ninegurmukhi",2671,"ninehackarabic",1641,"ninehangzhou",12329,"nineideographicparen",12840,"nineinferior",8329,"ninemonospace",65305,"nineoldstyle",63289,"nineparen",9340,"nineperiod",9360,"ninepersian",1785,"nineroman",8568,"ninesuperior",8313,"nineteencircle",9330,"nineteenparen",9350,"nineteenperiod",9370,"ninethai",3673,"nj",460,"njecyrillic",1114,"nkatakana",12531,"nkatakanahalfwidth",65437,"nlegrightlong",414,"nlinebelow",7753,"nmonospace",65358,"nmsquare",13210,"nnabengali",2467,"nnadeva",2339,"nnagujarati",2723,"nnagurmukhi",2595,"nnnadeva",2345,"nohiragana",12398,"nokatakana",12494,"nokatakanahalfwidth",65417,"nonbreakingspace",160,"nonenthai",3603,"nonuthai",3609,"noonarabic",1606,"noonfinalarabic",65254,"noonghunnaarabic",1722,"noonghunnafinalarabic",64415,"nooninitialarabic",65255,"noonjeeminitialarabic",64722,"noonjeemisolatedarabic",64587,"noonmedialarabic",65256,"noonmeeminitialarabic",64725,"noonmeemisolatedarabic",64590,"noonnoonfinalarabic",64653,"notcontains",8716,"notelement",8713,"notelementof",8713,"notequal",8800,"notgreater",8815,"notgreaternorequal",8817,"notgreaternorless",8825,"notidentical",8802,"notless",8814,"notlessnorequal",8816,"notparallel",8742,"notprecedes",8832,"notsubset",8836,"notsucceeds",8833,"notsuperset",8837,"nowarmenian",1398,"nparen",9385,"nssquare",13233,"nsuperior",8319,"ntilde",241,"nu",957,"nuhiragana",12396,"nukatakana",12492,"nukatakanahalfwidth",65415,"nuktabengali",2492,"nuktadeva",2364,"nuktagujarati",2748,"nuktagurmukhi",2620,"numbersign",35,"numbersignmonospace",65283,"numbersignsmall",65119,"numeralsigngreek",884,"numeralsignlowergreek",885,"numero",8470,"nun",1504,"nundagesh",64320,"nundageshhebrew",64320,"nunhebrew",1504,"nvsquare",13237,"nwsquare",13243,"nyabengali",2462,"nyadeva",2334,"nyagujarati",2718,"nyagurmukhi",2590,"o",111,"oacute",243,"oangthai",3629,"obarred",629,"obarredcyrillic",1257,"obarreddieresiscyrillic",1259,"obengali",2451,"obopomofo",12571,"obreve",335,"ocandradeva",2321,"ocandragujarati",2705,"ocandravowelsigndeva",2377,"ocandravowelsigngujarati",2761,"ocaron",466,"ocircle",9438,"ocircumflex",244,"ocircumflexacute",7889,"ocircumflexdotbelow",7897,"ocircumflexgrave",7891,"ocircumflexhookabove",7893,"ocircumflextilde",7895,"ocyrillic",1086,"odblacute",337,"odblgrave",525,"odeva",2323,"odieresis",246,"odieresiscyrillic",1255,"odotbelow",7885,"oe",339,"oekorean",12634,"ogonek",731,"ogonekcmb",808,"ograve",242,"ogujarati",2707,"oharmenian",1413,"ohiragana",12362,"ohookabove",7887,"ohorn",417,"ohornacute",7899,"ohorndotbelow",7907,"ohorngrave",7901,"ohornhookabove",7903,"ohorntilde",7905,"ohungarumlaut",337,"oi",419,"oinvertedbreve",527,"okatakana",12458,"okatakanahalfwidth",65397,"okorean",12631,"olehebrew",1451,"omacron",333,"omacronacute",7763,"omacrongrave",7761,"omdeva",2384,"omega",969,"omega1",982,"omegacyrillic",1121,"omegalatinclosed",631,"omegaroundcyrillic",1147,"omegatitlocyrillic",1149,"omegatonos",974,"omgujarati",2768,"omicron",959,"omicrontonos",972,"omonospace",65359,"one",49,"onearabic",1633,"onebengali",2535,"onecircle",9312,"onecircleinversesansserif",10122,"onedeva",2407,"onedotenleader",8228,"oneeighth",8539,"onefitted",63196,"onegujarati",2791,"onegurmukhi",2663,"onehackarabic",1633,"onehalf",189,"onehangzhou",12321,"oneideographicparen",12832,"oneinferior",8321,"onemonospace",65297,"onenumeratorbengali",2548,"oneoldstyle",63281,"oneparen",9332,"oneperiod",9352,"onepersian",1777,"onequarter",188,"oneroman",8560,"onesuperior",185,"onethai",3665,"onethird",8531,"oogonek",491,"oogonekmacron",493,"oogurmukhi",2579,"oomatragurmukhi",2635,"oopen",596,"oparen",9386,"openbullet",9702,"option",8997,"ordfeminine",170,"ordmasculine",186,"orthogonal",8735,"oshortdeva",2322,"oshortvowelsigndeva",2378,"oslash",248,"oslashacute",511,"osmallhiragana",12361,"osmallkatakana",12457,"osmallkatakanahalfwidth",65387,"ostrokeacute",511,"osuperior",63216,"otcyrillic",1151,"otilde",245,"otildeacute",7757,"otildedieresis",7759,"oubopomofo",12577,"overline",8254,"overlinecenterline",65098,"overlinecmb",773,"overlinedashed",65097,"overlinedblwavy",65100,"overlinewavy",65099,"overscore",175,"ovowelsignbengali",2507,"ovowelsigndeva",2379,"ovowelsigngujarati",2763,"p",112,"paampssquare",13184,"paasentosquare",13099,"pabengali",2474,"pacute",7765,"padeva",2346,"pagedown",8671,"pageup",8670,"pagujarati",2730,"pagurmukhi",2602,"pahiragana",12401,"paiyannoithai",3631,"pakatakana",12497,"palatalizationcyrilliccmb",1156,"palochkacyrillic",1216,"pansioskorean",12671,"paragraph",182,"parallel",8741,"parenleft",40,"parenleftaltonearabic",64830,"parenleftbt",63725,"parenleftex",63724,"parenleftinferior",8333,"parenleftmonospace",65288,"parenleftsmall",65113,"parenleftsuperior",8317,"parenlefttp",63723,"parenleftvertical",65077,"parenright",41,"parenrightaltonearabic",64831,"parenrightbt",63736,"parenrightex",63735,"parenrightinferior",8334,"parenrightmonospace",65289,"parenrightsmall",65114,"parenrightsuperior",8318,"parenrighttp",63734,"parenrightvertical",65078,"partialdiff",8706,"paseqhebrew",1472,"pashtahebrew",1433,"pasquare",13225,"patah",1463,"patah11",1463,"patah1d",1463,"patah2a",1463,"patahhebrew",1463,"patahnarrowhebrew",1463,"patahquarterhebrew",1463,"patahwidehebrew",1463,"pazerhebrew",1441,"pbopomofo",12550,"pcircle",9439,"pdotaccent",7767,"pe",1508,"pecyrillic",1087,"pedagesh",64324,"pedageshhebrew",64324,"peezisquare",13115,"pefinaldageshhebrew",64323,"peharabic",1662,"peharmenian",1402,"pehebrew",1508,"pehfinalarabic",64343,"pehinitialarabic",64344,"pehiragana",12410,"pehmedialarabic",64345,"pekatakana",12506,"pemiddlehookcyrillic",1191,"perafehebrew",64334,"percent",37,"percentarabic",1642,"percentmonospace",65285,"percentsmall",65130,"period",46,"periodarmenian",1417,"periodcentered",183,"periodhalfwidth",65377,"periodinferior",63207,"periodmonospace",65294,"periodsmall",65106,"periodsuperior",63208,"perispomenigreekcmb",834,"perpendicular",8869,"perthousand",8240,"peseta",8359,"pfsquare",13194,"phabengali",2475,"phadeva",2347,"phagujarati",2731,"phagurmukhi",2603,"phi",966,"phi1",981,"phieuphacirclekorean",12922,"phieuphaparenkorean",12826,"phieuphcirclekorean",12908,"phieuphkorean",12621,"phieuphparenkorean",12812,"philatin",632,"phinthuthai",3642,"phisymbolgreek",981,"phook",421,"phophanthai",3614,"phophungthai",3612,"phosamphaothai",3616,"pi",960,"pieupacirclekorean",12915,"pieupaparenkorean",12819,"pieupcieuckorean",12662,"pieupcirclekorean",12901,"pieupkiyeokkorean",12658,"pieupkorean",12610,"pieupparenkorean",12805,"pieupsioskiyeokkorean",12660,"pieupsioskorean",12612,"pieupsiostikeutkorean",12661,"pieupthieuthkorean",12663,"pieuptikeutkorean",12659,"pihiragana",12404,"pikatakana",12500,"pisymbolgreek",982,"piwrarmenian",1411,"plus",43,"plusbelowcmb",799,"pluscircle",8853,"plusminus",177,"plusmod",726,"plusmonospace",65291,"plussmall",65122,"plussuperior",8314,"pmonospace",65360,"pmsquare",13272,"pohiragana",12413,"pointingindexdownwhite",9759,"pointingindexleftwhite",9756,"pointingindexrightwhite",9758,"pointingindexupwhite",9757,"pokatakana",12509,"poplathai",3611,"postalmark",12306,"postalmarkface",12320,"pparen",9387,"precedes",8826,"prescription",8478,"primemod",697,"primereversed",8245,"product",8719,"projective",8965,"prolongedkana",12540,"propellor",8984,"propersubset",8834,"propersuperset",8835,"proportion",8759,"proportional",8733,"psi",968,"psicyrillic",1137,"psilipneumatacyrilliccmb",1158,"pssquare",13232,"puhiragana",12407,"pukatakana",12503,"pvsquare",13236,"pwsquare",13242,"q",113,"qadeva",2392,"qadmahebrew",1448,"qafarabic",1602,"qaffinalarabic",65238,"qafinitialarabic",65239,"qafmedialarabic",65240,"qamats",1464,"qamats10",1464,"qamats1a",1464,"qamats1c",1464,"qamats27",1464,"qamats29",1464,"qamats33",1464,"qamatsde",1464,"qamatshebrew",1464,"qamatsnarrowhebrew",1464,"qamatsqatanhebrew",1464,"qamatsqatannarrowhebrew",1464,"qamatsqatanquarterhebrew",1464,"qamatsqatanwidehebrew",1464,"qamatsquarterhebrew",1464,"qamatswidehebrew",1464,"qarneyparahebrew",1439,"qbopomofo",12561,"qcircle",9440,"qhook",672,"qmonospace",65361,"qof",1511,"qofdagesh",64327,"qofdageshhebrew",64327,"qofhebrew",1511,"qparen",9388,"quarternote",9833,"qubuts",1467,"qubuts18",1467,"qubuts25",1467,"qubuts31",1467,"qubutshebrew",1467,"qubutsnarrowhebrew",1467,"qubutsquarterhebrew",1467,"qubutswidehebrew",1467,"question",63,"questionarabic",1567,"questionarmenian",1374,"questiondown",191,"questiondownsmall",63423,"questiongreek",894,"questionmonospace",65311,"questionsmall",63295,"quotedbl",34,"quotedblbase",8222,"quotedblleft",8220,"quotedblmonospace",65282,"quotedblprime",12318,"quotedblprimereversed",12317,"quotedblright",8221,"quoteleft",8216,"quoteleftreversed",8219,"quotereversed",8219,"quoteright",8217,"quoterightn",329,"quotesinglbase",8218,"quotesingle",39,"quotesinglemonospace",65287,"r",114,"raarmenian",1404,"rabengali",2480,"racute",341,"radeva",2352,"radical",8730,"radicalex",63717,"radoverssquare",13230,"radoverssquaredsquare",13231,"radsquare",13229,"rafe",1471,"rafehebrew",1471,"ragujarati",2736,"ragurmukhi",2608,"rahiragana",12425,"rakatakana",12521,"rakatakanahalfwidth",65431,"ralowerdiagonalbengali",2545,"ramiddlediagonalbengali",2544,"ramshorn",612,"ratio",8758,"rbopomofo",12566,"rcaron",345,"rcedilla",343,"rcircle",9441,"rcommaaccent",343,"rdblgrave",529,"rdotaccent",7769,"rdotbelow",7771,"rdotbelowmacron",7773,"referencemark",8251,"reflexsubset",8838,"reflexsuperset",8839,"registered",174,"registersans",63720,"registerserif",63194,"reharabic",1585,"reharmenian",1408,"rehfinalarabic",65198,"rehiragana",12428,"rekatakana",12524,"rekatakanahalfwidth",65434,"resh",1512,"reshdageshhebrew",64328,"reshhebrew",1512,"reversedtilde",8765,"reviahebrew",1431,"reviamugrashhebrew",1431,"revlogicalnot",8976,"rfishhook",638,"rfishhookreversed",639,"rhabengali",2525,"rhadeva",2397,"rho",961,"rhook",637,"rhookturned",635,"rhookturnedsuperior",693,"rhosymbolgreek",1009,"rhotichookmod",734,"rieulacirclekorean",12913,"rieulaparenkorean",12817,"rieulcirclekorean",12899,"rieulhieuhkorean",12608,"rieulkiyeokkorean",12602,"rieulkiyeoksioskorean",12649,"rieulkorean",12601,"rieulmieumkorean",12603,"rieulpansioskorean",12652,"rieulparenkorean",12803,"rieulphieuphkorean",12607,"rieulpieupkorean",12604,"rieulpieupsioskorean",12651,"rieulsioskorean",12605,"rieulthieuthkorean",12606,"rieultikeutkorean",12650,"rieulyeorinhieuhkorean",12653,"rightangle",8735,"righttackbelowcmb",793,"righttriangle",8895,"rihiragana",12426,"rikatakana",12522,"rikatakanahalfwidth",65432,"ring",730,"ringbelowcmb",805,"ringcmb",778,"ringhalfleft",703,"ringhalfleftarmenian",1369,"ringhalfleftbelowcmb",796,"ringhalfleftcentered",723,"ringhalfright",702,"ringhalfrightbelowcmb",825,"ringhalfrightcentered",722,"rinvertedbreve",531,"rittorusquare",13137,"rlinebelow",7775,"rlongleg",636,"rlonglegturned",634,"rmonospace",65362,"rohiragana",12429,"rokatakana",12525,"rokatakanahalfwidth",65435,"roruathai",3619,"rparen",9389,"rrabengali",2524,"rradeva",2353,"rragurmukhi",2652,"rreharabic",1681,"rrehfinalarabic",64397,"rrvocalicbengali",2528,"rrvocalicdeva",2400,"rrvocalicgujarati",2784,"rrvocalicvowelsignbengali",2500,"rrvocalicvowelsigndeva",2372,"rrvocalicvowelsigngujarati",2756,"rsuperior",63217,"rtblock",9616,"rturned",633,"rturnedsuperior",692,"ruhiragana",12427,"rukatakana",12523,"rukatakanahalfwidth",65433,"rupeemarkbengali",2546,"rupeesignbengali",2547,"rupiah",63197,"ruthai",3620,"rvocalicbengali",2443,"rvocalicdeva",2315,"rvocalicgujarati",2699,"rvocalicvowelsignbengali",2499,"rvocalicvowelsigndeva",2371,"rvocalicvowelsigngujarati",2755,"s",115,"sabengali",2488,"sacute",347,"sacutedotaccent",7781,"sadarabic",1589,"sadeva",2360,"sadfinalarabic",65210,"sadinitialarabic",65211,"sadmedialarabic",65212,"sagujarati",2744,"sagurmukhi",2616,"sahiragana",12373,"sakatakana",12469,"sakatakanahalfwidth",65403,"sallallahoualayhewasallamarabic",65018,"samekh",1505,"samekhdagesh",64321,"samekhdageshhebrew",64321,"samekhhebrew",1505,"saraaathai",3634,"saraaethai",3649,"saraaimaimalaithai",3652,"saraaimaimuanthai",3651,"saraamthai",3635,"saraathai",3632,"saraethai",3648,"saraiileftthai",63622,"saraiithai",3637,"saraileftthai",63621,"saraithai",3636,"saraothai",3650,"saraueeleftthai",63624,"saraueethai",3639,"saraueleftthai",63623,"sarauethai",3638,"sarauthai",3640,"sarauuthai",3641,"sbopomofo",12569,"scaron",353,"scarondotaccent",7783,"scedilla",351,"schwa",601,"schwacyrillic",1241,"schwadieresiscyrillic",1243,"schwahook",602,"scircle",9442,"scircumflex",349,"scommaaccent",537,"sdotaccent",7777,"sdotbelow",7779,"sdotbelowdotaccent",7785,"seagullbelowcmb",828,"second",8243,"secondtonechinese",714,"section",167,"seenarabic",1587,"seenfinalarabic",65202,"seeninitialarabic",65203,"seenmedialarabic",65204,"segol",1462,"segol13",1462,"segol1f",1462,"segol2c",1462,"segolhebrew",1462,"segolnarrowhebrew",1462,"segolquarterhebrew",1462,"segoltahebrew",1426,"segolwidehebrew",1462,"seharmenian",1405,"sehiragana",12379,"sekatakana",12475,"sekatakanahalfwidth",65406,"semicolon",59,"semicolonarabic",1563,"semicolonmonospace",65307,"semicolonsmall",65108,"semivoicedmarkkana",12444,"semivoicedmarkkanahalfwidth",65439,"sentisquare",13090,"sentosquare",13091,"seven",55,"sevenarabic",1639,"sevenbengali",2541,"sevencircle",9318,"sevencircleinversesansserif",10128,"sevendeva",2413,"seveneighths",8542,"sevengujarati",2797,"sevengurmukhi",2669,"sevenhackarabic",1639,"sevenhangzhou",12327,"sevenideographicparen",12838,"seveninferior",8327,"sevenmonospace",65303,"sevenoldstyle",63287,"sevenparen",9338,"sevenperiod",9358,"sevenpersian",1783,"sevenroman",8566,"sevensuperior",8311,"seventeencircle",9328,"seventeenparen",9348,"seventeenperiod",9368,"seventhai",3671,"sfthyphen",173,"shaarmenian",1399,"shabengali",2486,"shacyrillic",1096,"shaddaarabic",1617,"shaddadammaarabic",64609,"shaddadammatanarabic",64606,"shaddafathaarabic",64608,"shaddakasraarabic",64610,"shaddakasratanarabic",64607,"shade",9618,"shadedark",9619,"shadelight",9617,"shademedium",9618,"shadeva",2358,"shagujarati",2742,"shagurmukhi",2614,"shalshelethebrew",1427,"shbopomofo",12565,"shchacyrillic",1097,"sheenarabic",1588,"sheenfinalarabic",65206,"sheeninitialarabic",65207,"sheenmedialarabic",65208,"sheicoptic",995,"sheqel",8362,"sheqelhebrew",8362,"sheva",1456,"sheva115",1456,"sheva15",1456,"sheva22",1456,"sheva2e",1456,"shevahebrew",1456,"shevanarrowhebrew",1456,"shevaquarterhebrew",1456,"shevawidehebrew",1456,"shhacyrillic",1211,"shimacoptic",1005,"shin",1513,"shindagesh",64329,"shindageshhebrew",64329,"shindageshshindot",64300,"shindageshshindothebrew",64300,"shindageshsindot",64301,"shindageshsindothebrew",64301,"shindothebrew",1473,"shinhebrew",1513,"shinshindot",64298,"shinshindothebrew",64298,"shinsindot",64299,"shinsindothebrew",64299,"shook",642,"sigma",963,"sigma1",962,"sigmafinal",962,"sigmalunatesymbolgreek",1010,"sihiragana",12375,"sikatakana",12471,"sikatakanahalfwidth",65404,"siluqhebrew",1469,"siluqlefthebrew",1469,"similar",8764,"sindothebrew",1474,"siosacirclekorean",12916,"siosaparenkorean",12820,"sioscieuckorean",12670,"sioscirclekorean",12902,"sioskiyeokkorean",12666,"sioskorean",12613,"siosnieunkorean",12667,"siosparenkorean",12806,"siospieupkorean",12669,"siostikeutkorean",12668,"six",54,"sixarabic",1638,"sixbengali",2540,"sixcircle",9317,"sixcircleinversesansserif",10127,"sixdeva",2412,"sixgujarati",2796,"sixgurmukhi",2668,"sixhackarabic",1638,"sixhangzhou",12326,"sixideographicparen",12837,"sixinferior",8326,"sixmonospace",65302,"sixoldstyle",63286,"sixparen",9337,"sixperiod",9357,"sixpersian",1782,"sixroman",8565,"sixsuperior",8310,"sixteencircle",9327,"sixteencurrencydenominatorbengali",2553,"sixteenparen",9347,"sixteenperiod",9367,"sixthai",3670,"slash",47,"slashmonospace",65295,"slong",383,"slongdotaccent",7835,"smileface",9786,"smonospace",65363,"sofpasuqhebrew",1475,"softhyphen",173,"softsigncyrillic",1100,"sohiragana",12381,"sokatakana",12477,"sokatakanahalfwidth",65407,"soliduslongoverlaycmb",824,"solidusshortoverlaycmb",823,"sorusithai",3625,"sosalathai",3624,"sosothai",3595,"sosuathai",3626,"space",32,"spacehackarabic",32,"spade",9824,"spadesuitblack",9824,"spadesuitwhite",9828,"sparen",9390,"squarebelowcmb",827,"squarecc",13252,"squarecm",13213,"squarediagonalcrosshatchfill",9641,"squarehorizontalfill",9636,"squarekg",13199,"squarekm",13214,"squarekmcapital",13262,"squareln",13265,"squarelog",13266,"squaremg",13198,"squaremil",13269,"squaremm",13212,"squaremsquared",13217,"squareorthogonalcrosshatchfill",9638,"squareupperlefttolowerrightfill",9639,"squareupperrighttolowerleftfill",9640,"squareverticalfill",9637,"squarewhitewithsmallblack",9635,"srsquare",13275,"ssabengali",2487,"ssadeva",2359,"ssagujarati",2743,"ssangcieuckorean",12617,"ssanghieuhkorean",12677,"ssangieungkorean",12672,"ssangkiyeokkorean",12594,"ssangnieunkorean",12645,"ssangpieupkorean",12611,"ssangsioskorean",12614,"ssangtikeutkorean",12600,"ssuperior",63218,"sterling",163,"sterlingmonospace",65505,"strokelongoverlaycmb",822,"strokeshortoverlaycmb",821,"subset",8834,"subsetnotequal",8842,"subsetorequal",8838,"succeeds",8827,"suchthat",8715,"suhiragana",12377,"sukatakana",12473,"sukatakanahalfwidth",65405,"sukunarabic",1618,"summation",8721,"sun",9788,"superset",8835,"supersetnotequal",8843,"supersetorequal",8839,"svsquare",13276,"syouwaerasquare",13180,"t",116,"tabengali",2468,"tackdown",8868,"tackleft",8867,"tadeva",2340,"tagujarati",2724,"tagurmukhi",2596,"taharabic",1591,"tahfinalarabic",65218,"tahinitialarabic",65219,"tahiragana",12383,"tahmedialarabic",65220,"taisyouerasquare",13181,"takatakana",12479,"takatakanahalfwidth",65408,"tatweelarabic",1600,"tau",964,"tav",1514,"tavdages",64330,"tavdagesh",64330,"tavdageshhebrew",64330,"tavhebrew",1514,"tbar",359,"tbopomofo",12554,"tcaron",357,"tccurl",680,"tcedilla",355,"tcheharabic",1670,"tchehfinalarabic",64379,"tchehinitialarabic",64380,"tchehmedialarabic",64381,"tcircle",9443,"tcircumflexbelow",7793,"tcommaaccent",355,"tdieresis",7831,"tdotaccent",7787,"tdotbelow",7789,"tecyrillic",1090,"tedescendercyrillic",1197,"teharabic",1578,"tehfinalarabic",65174,"tehhahinitialarabic",64674,"tehhahisolatedarabic",64524,"tehinitialarabic",65175,"tehiragana",12390,"tehjeeminitialarabic",64673,"tehjeemisolatedarabic",64523,"tehmarbutaarabic",1577,"tehmarbutafinalarabic",65172,"tehmedialarabic",65176,"tehmeeminitialarabic",64676,"tehmeemisolatedarabic",64526,"tehnoonfinalarabic",64627,"tekatakana",12486,"tekatakanahalfwidth",65411,"telephone",8481,"telephoneblack",9742,"telishagedolahebrew",1440,"telishaqetanahebrew",1449,"tencircle",9321,"tenideographicparen",12841,"tenparen",9341,"tenperiod",9361,"tenroman",8569,"tesh",679,"tet",1496,"tetdagesh",64312,"tetdageshhebrew",64312,"tethebrew",1496,"tetsecyrillic",1205,"tevirhebrew",1435,"tevirlefthebrew",1435,"thabengali",2469,"thadeva",2341,"thagujarati",2725,"thagurmukhi",2597,"thalarabic",1584,"thalfinalarabic",65196,"thanthakhatlowleftthai",63640,"thanthakhatlowrightthai",63639,"thanthakhatthai",3660,"thanthakhatupperleftthai",63638,"theharabic",1579,"thehfinalarabic",65178,"thehinitialarabic",65179,"thehmedialarabic",65180,"thereexists",8707,"therefore",8756,"theta",952,"theta1",977,"thetasymbolgreek",977,"thieuthacirclekorean",12921,"thieuthaparenkorean",12825,"thieuthcirclekorean",12907,"thieuthkorean",12620,"thieuthparenkorean",12811,"thirteencircle",9324,"thirteenparen",9344,"thirteenperiod",9364,"thonangmonthothai",3601,"thook",429,"thophuthaothai",3602,"thorn",254,"thothahanthai",3607,"thothanthai",3600,"thothongthai",3608,"thothungthai",3606,"thousandcyrillic",1154,"thousandsseparatorarabic",1644,"thousandsseparatorpersian",1644,"three",51,"threearabic",1635,"threebengali",2537,"threecircle",9314,"threecircleinversesansserif",10124,"threedeva",2409,"threeeighths",8540,"threegujarati",2793,"threegurmukhi",2665,"threehackarabic",1635,"threehangzhou",12323,"threeideographicparen",12834,"threeinferior",8323,"threemonospace",65299,"threenumeratorbengali",2550,"threeoldstyle",63283,"threeparen",9334,"threeperiod",9354,"threepersian",1779,"threequarters",190,"threequartersemdash",63198,"threeroman",8562,"threesuperior",179,"threethai",3667,"thzsquare",13204,"tihiragana",12385,"tikatakana",12481,"tikatakanahalfwidth",65409,"tikeutacirclekorean",12912,"tikeutaparenkorean",12816,"tikeutcirclekorean",12898,"tikeutkorean",12599,"tikeutparenkorean",12802,"tilde",732,"tildebelowcmb",816,"tildecmb",771,"tildecomb",771,"tildedoublecmb",864,"tildeoperator",8764,"tildeoverlaycmb",820,"tildeverticalcmb",830,"timescircle",8855,"tipehahebrew",1430,"tipehalefthebrew",1430,"tippigurmukhi",2672,"titlocyrilliccmb",1155,"tiwnarmenian",1407,"tlinebelow",7791,"tmonospace",65364,"toarmenian",1385,"tohiragana",12392,"tokatakana",12488,"tokatakanahalfwidth",65412,"tonebarextrahighmod",741,"tonebarextralowmod",745,"tonebarhighmod",742,"tonebarlowmod",744,"tonebarmidmod",743,"tonefive",445,"tonesix",389,"tonetwo",424,"tonos",900,"tonsquare",13095,"topatakthai",3599,"tortoiseshellbracketleft",12308,"tortoiseshellbracketleftsmall",65117,"tortoiseshellbracketleftvertical",65081,"tortoiseshellbracketright",12309,"tortoiseshellbracketrightsmall",65118,"tortoiseshellbracketrightvertical",65082,"totaothai",3605,"tpalatalhook",427,"tparen",9391,"trademark",8482,"trademarksans",63722,"trademarkserif",63195,"tretroflexhook",648,"triagdn",9660,"triaglf",9668,"triagrt",9658,"triagup",9650,"ts",678,"tsadi",1510,"tsadidagesh",64326,"tsadidageshhebrew",64326,"tsadihebrew",1510,"tsecyrillic",1094,"tsere",1461,"tsere12",1461,"tsere1e",1461,"tsere2b",1461,"tserehebrew",1461,"tserenarrowhebrew",1461,"tserequarterhebrew",1461,"tserewidehebrew",1461,"tshecyrillic",1115,"tsuperior",63219,"ttabengali",2463,"ttadeva",2335,"ttagujarati",2719,"ttagurmukhi",2591,"tteharabic",1657,"ttehfinalarabic",64359,"ttehinitialarabic",64360,"ttehmedialarabic",64361,"tthabengali",2464,"tthadeva",2336,"tthagujarati",2720,"tthagurmukhi",2592,"tturned",647,"tuhiragana",12388,"tukatakana",12484,"tukatakanahalfwidth",65410,"tusmallhiragana",12387,"tusmallkatakana",12483,"tusmallkatakanahalfwidth",65391,"twelvecircle",9323,"twelveparen",9343,"twelveperiod",9363,"twelveroman",8571,"twentycircle",9331,"twentyhangzhou",21316,"twentyparen",9351,"twentyperiod",9371,"two",50,"twoarabic",1634,"twobengali",2536,"twocircle",9313,"twocircleinversesansserif",10123,"twodeva",2408,"twodotenleader",8229,"twodotleader",8229,"twodotleadervertical",65072,"twogujarati",2792,"twogurmukhi",2664,"twohackarabic",1634,"twohangzhou",12322,"twoideographicparen",12833,"twoinferior",8322,"twomonospace",65298,"twonumeratorbengali",2549,"twooldstyle",63282,"twoparen",9333,"twoperiod",9353,"twopersian",1778,"tworoman",8561,"twostroke",443,"twosuperior",178,"twothai",3666,"twothirds",8532,"u",117,"uacute",250,"ubar",649,"ubengali",2441,"ubopomofo",12584,"ubreve",365,"ucaron",468,"ucircle",9444,"ucircumflex",251,"ucircumflexbelow",7799,"ucyrillic",1091,"udattadeva",2385,"udblacute",369,"udblgrave",533,"udeva",2313,"udieresis",252,"udieresisacute",472,"udieresisbelow",7795,"udieresiscaron",474,"udieresiscyrillic",1265,"udieresisgrave",476,"udieresismacron",470,"udotbelow",7909,"ugrave",249,"ugujarati",2697,"ugurmukhi",2569,"uhiragana",12358,"uhookabove",7911,"uhorn",432,"uhornacute",7913,"uhorndotbelow",7921,"uhorngrave",7915,"uhornhookabove",7917,"uhorntilde",7919,"uhungarumlaut",369,"uhungarumlautcyrillic",1267,"uinvertedbreve",535,"ukatakana",12454,"ukatakanahalfwidth",65395,"ukcyrillic",1145,"ukorean",12636,"umacron",363,"umacroncyrillic",1263,"umacrondieresis",7803,"umatragurmukhi",2625,"umonospace",65365,"underscore",95,"underscoredbl",8215,"underscoremonospace",65343,"underscorevertical",65075,"underscorewavy",65103,"union",8746,"universal",8704,"uogonek",371,"uparen",9392,"upblock",9600,"upperdothebrew",1476,"upsilon",965,"upsilondieresis",971,"upsilondieresistonos",944,"upsilonlatin",650,"upsilontonos",973,"uptackbelowcmb",797,"uptackmod",724,"uragurmukhi",2675,"uring",367,"ushortcyrillic",1118,"usmallhiragana",12357,"usmallkatakana",12453,"usmallkatakanahalfwidth",65385,"ustraightcyrillic",1199,"ustraightstrokecyrillic",1201,"utilde",361,"utildeacute",7801,"utildebelow",7797,"uubengali",2442,"uudeva",2314,"uugujarati",2698,"uugurmukhi",2570,"uumatragurmukhi",2626,"uuvowelsignbengali",2498,"uuvowelsigndeva",2370,"uuvowelsigngujarati",2754,"uvowelsignbengali",2497,"uvowelsigndeva",2369,"uvowelsigngujarati",2753,"v",118,"vadeva",2357,"vagujarati",2741,"vagurmukhi",2613,"vakatakana",12535,"vav",1493,"vavdagesh",64309,"vavdagesh65",64309,"vavdageshhebrew",64309,"vavhebrew",1493,"vavholam",64331,"vavholamhebrew",64331,"vavvavhebrew",1520,"vavyodhebrew",1521,"vcircle",9445,"vdotbelow",7807,"vecyrillic",1074,"veharabic",1700,"vehfinalarabic",64363,"vehinitialarabic",64364,"vehmedialarabic",64365,"vekatakana",12537,"venus",9792,"verticalbar",124,"verticallineabovecmb",781,"verticallinebelowcmb",809,"verticallinelowmod",716,"verticallinemod",712,"vewarmenian",1406,"vhook",651,"vikatakana",12536,"viramabengali",2509,"viramadeva",2381,"viramagujarati",2765,"visargabengali",2435,"visargadeva",2307,"visargagujarati",2691,"vmonospace",65366,"voarmenian",1400,"voicediterationhiragana",12446,"voicediterationkatakana",12542,"voicedmarkkana",12443,"voicedmarkkanahalfwidth",65438,"vokatakana",12538,"vparen",9393,"vtilde",7805,"vturned",652,"vuhiragana",12436,"vukatakana",12532,"w",119,"wacute",7811,"waekorean",12633,"wahiragana",12431,"wakatakana",12527,"wakatakanahalfwidth",65436,"wakorean",12632,"wasmallhiragana",12430,"wasmallkatakana",12526,"wattosquare",13143,"wavedash",12316,"wavyunderscorevertical",65076,"wawarabic",1608,"wawfinalarabic",65262,"wawhamzaabovearabic",1572,"wawhamzaabovefinalarabic",65158,"wbsquare",13277,"wcircle",9446,"wcircumflex",373,"wdieresis",7813,"wdotaccent",7815,"wdotbelow",7817,"wehiragana",12433,"weierstrass",8472,"wekatakana",12529,"wekorean",12638,"weokorean",12637,"wgrave",7809,"whitebullet",9702,"whitecircle",9675,"whitecircleinverse",9689,"whitecornerbracketleft",12302,"whitecornerbracketleftvertical",65091,"whitecornerbracketright",12303,"whitecornerbracketrightvertical",65092,"whitediamond",9671,"whitediamondcontainingblacksmalldiamond",9672,"whitedownpointingsmalltriangle",9663,"whitedownpointingtriangle",9661,"whiteleftpointingsmalltriangle",9667,"whiteleftpointingtriangle",9665,"whitelenticularbracketleft",12310,"whitelenticularbracketright",12311,"whiterightpointingsmalltriangle",9657,"whiterightpointingtriangle",9655,"whitesmallsquare",9643,"whitesmilingface",9786,"whitesquare",9633,"whitestar",9734,"whitetelephone",9743,"whitetortoiseshellbracketleft",12312,"whitetortoiseshellbracketright",12313,"whiteuppointingsmalltriangle",9653,"whiteuppointingtriangle",9651,"wihiragana",12432,"wikatakana",12528,"wikorean",12639,"wmonospace",65367,"wohiragana",12434,"wokatakana",12530,"wokatakanahalfwidth",65382,"won",8361,"wonmonospace",65510,"wowaenthai",3623,"wparen",9394,"wring",7832,"wsuperior",695,"wturned",653,"wynn",447,"x",120,"xabovecmb",829,"xbopomofo",12562,"xcircle",9447,"xdieresis",7821,"xdotaccent",7819,"xeharmenian",1389,"xi",958,"xmonospace",65368,"xparen",9395,"xsuperior",739,"y",121,"yaadosquare",13134,"yabengali",2479,"yacute",253,"yadeva",2351,"yaekorean",12626,"yagujarati",2735,"yagurmukhi",2607,"yahiragana",12420,"yakatakana",12516,"yakatakanahalfwidth",65428,"yakorean",12625,"yamakkanthai",3662,"yasmallhiragana",12419,"yasmallkatakana",12515,"yasmallkatakanahalfwidth",65388,"yatcyrillic",1123,"ycircle",9448,"ycircumflex",375,"ydieresis",255,"ydotaccent",7823,"ydotbelow",7925,"yeharabic",1610,"yehbarreearabic",1746,"yehbarreefinalarabic",64431,"yehfinalarabic",65266,"yehhamzaabovearabic",1574,"yehhamzaabovefinalarabic",65162,"yehhamzaaboveinitialarabic",65163,"yehhamzaabovemedialarabic",65164,"yehinitialarabic",65267,"yehmedialarabic",65268,"yehmeeminitialarabic",64733,"yehmeemisolatedarabic",64600,"yehnoonfinalarabic",64660,"yehthreedotsbelowarabic",1745,"yekorean",12630,"yen",165,"yenmonospace",65509,"yeokorean",12629,"yeorinhieuhkorean",12678,"yerahbenyomohebrew",1450,"yerahbenyomolefthebrew",1450,"yericyrillic",1099,"yerudieresiscyrillic",1273,"yesieungkorean",12673,"yesieungpansioskorean",12675,"yesieungsioskorean",12674,"yetivhebrew",1434,"ygrave",7923,"yhook",436,"yhookabove",7927,"yiarmenian",1397,"yicyrillic",1111,"yikorean",12642,"yinyang",9775,"yiwnarmenian",1410,"ymonospace",65369,"yod",1497,"yoddagesh",64313,"yoddageshhebrew",64313,"yodhebrew",1497,"yodyodhebrew",1522,"yodyodpatahhebrew",64287,"yohiragana",12424,"yoikorean",12681,"yokatakana",12520,"yokatakanahalfwidth",65430,"yokorean",12635,"yosmallhiragana",12423,"yosmallkatakana",12519,"yosmallkatakanahalfwidth",65390,"yotgreek",1011,"yoyaekorean",12680,"yoyakorean",12679,"yoyakthai",3618,"yoyingthai",3597,"yparen",9396,"ypogegrammeni",890,"ypogegrammenigreekcmb",837,"yr",422,"yring",7833,"ysuperior",696,"ytilde",7929,"yturned",654,"yuhiragana",12422,"yuikorean",12684,"yukatakana",12518,"yukatakanahalfwidth",65429,"yukorean",12640,"yusbigcyrillic",1131,"yusbigiotifiedcyrillic",1133,"yuslittlecyrillic",1127,"yuslittleiotifiedcyrillic",1129,"yusmallhiragana",12421,"yusmallkatakana",12517,"yusmallkatakanahalfwidth",65389,"yuyekorean",12683,"yuyeokorean",12682,"yyabengali",2527,"yyadeva",2399,"z",122,"zaarmenian",1382,"zacute",378,"zadeva",2395,"zagurmukhi",2651,"zaharabic",1592,"zahfinalarabic",65222,"zahinitialarabic",65223,"zahiragana",12374,"zahmedialarabic",65224,"zainarabic",1586,"zainfinalarabic",65200,"zakatakana",12470,"zaqefgadolhebrew",1429,"zaqefqatanhebrew",1428,"zarqahebrew",1432,"zayin",1494,"zayindagesh",64310,"zayindageshhebrew",64310,"zayinhebrew",1494,"zbopomofo",12567,"zcaron",382,"zcircle",9449,"zcircumflex",7825,"zcurl",657,"zdot",380,"zdotaccent",380,"zdotbelow",7827,"zecyrillic",1079,"zedescendercyrillic",1177,"zedieresiscyrillic",1247,"zehiragana",12380,"zekatakana",12476,"zero",48,"zeroarabic",1632,"zerobengali",2534,"zerodeva",2406,"zerogujarati",2790,"zerogurmukhi",2662,"zerohackarabic",1632,"zeroinferior",8320,"zeromonospace",65296,"zerooldstyle",63280,"zeropersian",1776,"zerosuperior",8304,"zerothai",3664,"zerowidthjoiner",65279,"zerowidthnonjoiner",8204,"zerowidthspace",8203,"zeta",950,"zhbopomofo",12563,"zhearmenian",1386,"zhebrevecyrillic",1218,"zhecyrillic",1078,"zhedescendercyrillic",1175,"zhedieresiscyrillic",1245,"zihiragana",12376,"zikatakana",12472,"zinorhebrew",1454,"zlinebelow",7829,"zmonospace",65370,"zohiragana",12382,"zokatakana",12478,"zparen",9397,"zretroflexhook",656,"zstroke",438,"zuhiragana",12378,"zukatakana",12474,".notdef",0,"angbracketleftbig",9001,"angbracketleftBig",9001,"angbracketleftbigg",9001,"angbracketleftBigg",9001,"angbracketrightBig",9002,"angbracketrightbig",9002,"angbracketrightBigg",9002,"angbracketrightbigg",9002,"arrowhookleft",8618,"arrowhookright",8617,"arrowlefttophalf",8636,"arrowleftbothalf",8637,"arrownortheast",8599,"arrownorthwest",8598,"arrowrighttophalf",8640,"arrowrightbothalf",8641,"arrowsoutheast",8600,"arrowsouthwest",8601,"backslashbig",8726,"backslashBig",8726,"backslashBigg",8726,"backslashbigg",8726,"bardbl",8214,"bracehtipdownleft",65079,"bracehtipdownright",65079,"bracehtipupleft",65080,"bracehtipupright",65080,"braceleftBig",123,"braceleftbig",123,"braceleftbigg",123,"braceleftBigg",123,"bracerightBig",125,"bracerightbig",125,"bracerightbigg",125,"bracerightBigg",125,"bracketleftbig",91,"bracketleftBig",91,"bracketleftbigg",91,"bracketleftBigg",91,"bracketrightBig",93,"bracketrightbig",93,"bracketrightbigg",93,"bracketrightBigg",93,"ceilingleftbig",8968,"ceilingleftBig",8968,"ceilingleftBigg",8968,"ceilingleftbigg",8968,"ceilingrightbig",8969,"ceilingrightBig",8969,"ceilingrightbigg",8969,"ceilingrightBigg",8969,"circledotdisplay",8857,"circledottext",8857,"circlemultiplydisplay",8855,"circlemultiplytext",8855,"circleplusdisplay",8853,"circleplustext",8853,"contintegraldisplay",8750,"contintegraltext",8750,"coproductdisplay",8720,"coproducttext",8720,"floorleftBig",8970,"floorleftbig",8970,"floorleftbigg",8970,"floorleftBigg",8970,"floorrightbig",8971,"floorrightBig",8971,"floorrightBigg",8971,"floorrightbigg",8971,"hatwide",770,"hatwider",770,"hatwidest",770,"intercal",7488,"integraldisplay",8747,"integraltext",8747,"intersectiondisplay",8898,"intersectiontext",8898,"logicalanddisplay",8743,"logicalandtext",8743,"logicalordisplay",8744,"logicalortext",8744,"parenleftBig",40,"parenleftbig",40,"parenleftBigg",40,"parenleftbigg",40,"parenrightBig",41,"parenrightbig",41,"parenrightBigg",41,"parenrightbigg",41,"prime",8242,"productdisplay",8719,"producttext",8719,"radicalbig",8730,"radicalBig",8730,"radicalBigg",8730,"radicalbigg",8730,"radicalbt",8730,"radicaltp",8730,"radicalvertex",8730,"slashbig",47,"slashBig",47,"slashBigg",47,"slashbigg",47,"summationdisplay",8721,"summationtext",8721,"tildewide",732,"tildewider",732,"tildewidest",732,"uniondisplay",8899,"unionmultidisplay",8846,"unionmultitext",8846,"unionsqdisplay",8852,"unionsqtext",8852,"uniontext",8899,"vextenddouble",8741,"vextendsingle",8739]})),u=(0,l.getArrayLookupTableFactory)((function(){return["space",32,"a1",9985,"a2",9986,"a202",9987,"a3",9988,"a4",9742,"a5",9990,"a119",9991,"a118",9992,"a117",9993,"a11",9755,"a12",9758,"a13",9996,"a14",9997,"a15",9998,"a16",9999,"a105",1e4,"a17",10001,"a18",10002,"a19",10003,"a20",10004,"a21",10005,"a22",10006,"a23",10007,"a24",10008,"a25",10009,"a26",10010,"a27",10011,"a28",10012,"a6",10013,"a7",10014,"a8",10015,"a9",10016,"a10",10017,"a29",10018,"a30",10019,"a31",10020,"a32",10021,"a33",10022,"a34",10023,"a35",9733,"a36",10025,"a37",10026,"a38",10027,"a39",10028,"a40",10029,"a41",10030,"a42",10031,"a43",10032,"a44",10033,"a45",10034,"a46",10035,"a47",10036,"a48",10037,"a49",10038,"a50",10039,"a51",10040,"a52",10041,"a53",10042,"a54",10043,"a55",10044,"a56",10045,"a57",10046,"a58",10047,"a59",10048,"a60",10049,"a61",10050,"a62",10051,"a63",10052,"a64",10053,"a65",10054,"a66",10055,"a67",10056,"a68",10057,"a69",10058,"a70",10059,"a71",9679,"a72",10061,"a73",9632,"a74",10063,"a203",10064,"a75",10065,"a204",10066,"a76",9650,"a77",9660,"a78",9670,"a79",10070,"a81",9687,"a82",10072,"a83",10073,"a84",10074,"a97",10075,"a98",10076,"a99",10077,"a100",10078,"a101",10081,"a102",10082,"a103",10083,"a104",10084,"a106",10085,"a107",10086,"a108",10087,"a112",9827,"a111",9830,"a110",9829,"a109",9824,"a120",9312,"a121",9313,"a122",9314,"a123",9315,"a124",9316,"a125",9317,"a126",9318,"a127",9319,"a128",9320,"a129",9321,"a130",10102,"a131",10103,"a132",10104,"a133",10105,"a134",10106,"a135",10107,"a136",10108,"a137",10109,"a138",10110,"a139",10111,"a140",10112,"a141",10113,"a142",10114,"a143",10115,"a144",10116,"a145",10117,"a146",10118,"a147",10119,"a148",10120,"a149",10121,"a150",10122,"a151",10123,"a152",10124,"a153",10125,"a154",10126,"a155",10127,"a156",10128,"a157",10129,"a158",10130,"a159",10131,"a160",10132,"a161",8594,"a163",8596,"a164",8597,"a196",10136,"a165",10137,"a192",10138,"a166",10139,"a167",10140,"a168",10141,"a169",10142,"a170",10143,"a171",10144,"a172",10145,"a173",10146,"a162",10147,"a174",10148,"a175",10149,"a176",10150,"a177",10151,"a178",10152,"a179",10153,"a193",10154,"a180",10155,"a199",10156,"a181",10157,"a200",10158,"a182",10159,"a201",10161,"a183",10162,"a184",10163,"a197",10164,"a185",10165,"a194",10166,"a198",10167,"a186",10168,"a195",10169,"a187",10170,"a188",10171,"a189",10172,"a190",10173,"a191",10174,"a89",10088,"a90",10089,"a93",10090,"a94",10091,"a91",10092,"a92",10093,"a205",10094,"a85",10095,"a206",10096,"a86",10097,"a87",10098,"a88",10099,"a95",10100,"a96",10101,".notdef",0]}))},(t,r,o)=>{"use strict";o.r(r);o.d(r,{getNormalizedUnicodes:()=>h,getUnicodeForGlyph:()=>getUnicodeForGlyph,getUnicodeRangeFor:()=>getUnicodeRangeFor,mapSpecialUnicodeValues:()=>mapSpecialUnicodeValues,reverseIfRtl:()=>reverseIfRtl});var l=o(122);const c=(0,l.getLookupTableFactory)((function(t){t[63721]=169;t[63193]=169;t[63720]=174;t[63194]=174;t[63722]=8482;t[63195]=8482;t[63729]=9127;t[63730]=9128;t[63731]=9129;t[63740]=9131;t[63741]=9132;t[63742]=9133;t[63726]=9121;t[63727]=9122;t[63728]=9123;t[63737]=9124;t[63738]=9125;t[63739]=9126;t[63723]=9115;t[63724]=9116;t[63725]=9117;t[63734]=9118;t[63735]=9119;t[63736]=9120}));function mapSpecialUnicodeValues(t){return t>=65520&&t<=65535?0:t>=62976&&t<=63743?c()[t]||t:173===t?45:t}function getUnicodeForGlyph(t,r){let o=r[t];if(void 0!==o)return o;if(!t)return-1;if("u"===t[0]){const r=t.length;let l;if(7===r&&"n"===t[1]&&"i"===t[2])l=t.substring(3);else{if(!(r>=5&&r<=7))return-1;l=t.substring(1)}if(l===l.toUpperCase()){o=parseInt(l,16);if(o>=0)return o}}return-1}const u=[{begin:0,end:127},{begin:128,end:255},{begin:256,end:383},{begin:384,end:591},{begin:592,end:687},{begin:688,end:767},{begin:768,end:879},{begin:880,end:1023},{begin:11392,end:11519},{begin:1024,end:1279},{begin:1328,end:1423},{begin:1424,end:1535},{begin:42240,end:42559},{begin:1536,end:1791},{begin:1984,end:2047},{begin:2304,end:2431},{begin:2432,end:2559},{begin:2560,end:2687},{begin:2688,end:2815},{begin:2816,end:2943},{begin:2944,end:3071},{begin:3072,end:3199},{begin:3200,end:3327},{begin:3328,end:3455},{begin:3584,end:3711},{begin:3712,end:3839},{begin:4256,end:4351},{begin:6912,end:7039},{begin:4352,end:4607},{begin:7680,end:7935},{begin:7936,end:8191},{begin:8192,end:8303},{begin:8304,end:8351},{begin:8352,end:8399},{begin:8400,end:8447},{begin:8448,end:8527},{begin:8528,end:8591},{begin:8592,end:8703},{begin:8704,end:8959},{begin:8960,end:9215},{begin:9216,end:9279},{begin:9280,end:9311},{begin:9312,end:9471},{begin:9472,end:9599},{begin:9600,end:9631},{begin:9632,end:9727},{begin:9728,end:9983},{begin:9984,end:10175},{begin:12288,end:12351},{begin:12352,end:12447},{begin:12448,end:12543},{begin:12544,end:12591},{begin:12592,end:12687},{begin:43072,end:43135},{begin:12800,end:13055},{begin:13056,end:13311},{begin:44032,end:55215},{begin:55296,end:57343},{begin:67840,end:67871},{begin:19968,end:40959},{begin:57344,end:63743},{begin:12736,end:12783},{begin:64256,end:64335},{begin:64336,end:65023},{begin:65056,end:65071},{begin:65040,end:65055},{begin:65104,end:65135},{begin:65136,end:65279},{begin:65280,end:65519},{begin:65520,end:65535},{begin:3840,end:4095},{begin:1792,end:1871},{begin:1920,end:1983},{begin:3456,end:3583},{begin:4096,end:4255},{begin:4608,end:4991},{begin:5024,end:5119},{begin:5120,end:5759},{begin:5760,end:5791},{begin:5792,end:5887},{begin:6016,end:6143},{begin:6144,end:6319},{begin:10240,end:10495},{begin:40960,end:42127},{begin:5888,end:5919},{begin:66304,end:66351},{begin:66352,end:66383},{begin:66560,end:66639},{begin:118784,end:119039},{begin:119808,end:120831},{begin:1044480,end:1048573},{begin:65024,end:65039},{begin:917504,end:917631},{begin:6400,end:6479},{begin:6480,end:6527},{begin:6528,end:6623},{begin:6656,end:6687},{begin:11264,end:11359},{begin:11568,end:11647},{begin:19904,end:19967},{begin:43008,end:43055},{begin:65536,end:65663},{begin:65856,end:65935},{begin:66432,end:66463},{begin:66464,end:66527},{begin:66640,end:66687},{begin:66688,end:66735},{begin:67584,end:67647},{begin:68096,end:68191},{begin:119552,end:119647},{begin:73728,end:74751},{begin:119648,end:119679},{begin:7040,end:7103},{begin:7168,end:7247},{begin:7248,end:7295},{begin:43136,end:43231},{begin:43264,end:43311},{begin:43312,end:43359},{begin:43520,end:43615},{begin:65936,end:65999},{begin:66e3,end:66047},{begin:66208,end:66271},{begin:127024,end:127135}];function getUnicodeRangeFor(t){for(let r=0,o=u.length;r<o;r++){const o=u[r];if(t>=o.begin&&t<o.end)return r}return-1}const h=(0,l.getArrayLookupTableFactory)((function(){return["¨"," ̈","¯"," ̄","´"," ́","µ","μ","¸"," ̧","IJ","IJ","ij","ij","Ŀ","L·","ŀ","l·","ʼn","ʼn","ſ","s","DŽ","DŽ","Dž","Dž","dž","dž","LJ","LJ","Lj","Lj","lj","lj","NJ","NJ","Nj","Nj","nj","nj","DZ","DZ","Dz","Dz","dz","dz","˘"," ̆","˙"," ̇","˚"," ̊","˛"," ̨","˜"," ̃","˝"," ̋","ͺ"," ͅ","΄"," ́","ϐ","β","ϑ","θ","ϒ","Υ","ϕ","φ","ϖ","π","ϰ","κ","ϱ","ρ","ϲ","ς","ϴ","Θ","ϵ","ε","Ϲ","Σ","և","եւ","ٵ","اٴ","ٶ","وٴ","ٷ","ۇٴ","ٸ","يٴ","ำ","ํา","ຳ","ໍາ","ໜ","ຫນ","ໝ","ຫມ","ཷ","ྲཱྀ","ཹ","ླཱྀ","ẚ","aʾ","᾽"," ̓","᾿"," ̓","῀"," ͂","῾"," ̔"," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," ","‗"," ̳","․",".","‥","..","…","...","″","′′","‴","′′′","‶","‵‵","‷","‵‵‵","‼","!!","‾"," ̅","⁇","??","⁈","?!","⁉","!?","⁗","′′′′"," "," ","₨","Rs","℀","a/c","℁","a/s","℃","°C","℅","c/o","℆","c/u","ℇ","Ɛ","℉","°F","№","No","℡","TEL","ℵ","א","ℶ","ב","ℷ","ג","ℸ","ד","℻","FAX","Ⅰ","I","Ⅱ","II","Ⅲ","III","Ⅳ","IV","Ⅴ","V","Ⅵ","VI","Ⅶ","VII","Ⅷ","VIII","Ⅸ","IX","Ⅹ","X","Ⅺ","XI","Ⅻ","XII","Ⅼ","L","Ⅽ","C","Ⅾ","D","Ⅿ","M","ⅰ","i","ⅱ","ii","ⅲ","iii","ⅳ","iv","ⅴ","v","ⅵ","vi","ⅶ","vii","ⅷ","viii","ⅸ","ix","ⅹ","x","ⅺ","xi","ⅻ","xii","ⅼ","l","ⅽ","c","ⅾ","d","ⅿ","m","∬","∫∫","∭","∫∫∫","∯","∮∮","∰","∮∮∮","⑴","(1)","⑵","(2)","⑶","(3)","⑷","(4)","⑸","(5)","⑹","(6)","⑺","(7)","⑻","(8)","⑼","(9)","⑽","(10)","⑾","(11)","⑿","(12)","⒀","(13)","⒁","(14)","⒂","(15)","⒃","(16)","⒄","(17)","⒅","(18)","⒆","(19)","⒇","(20)","⒈","1.","⒉","2.","⒊","3.","⒋","4.","⒌","5.","⒍","6.","⒎","7.","⒏","8.","⒐","9.","⒑","10.","⒒","11.","⒓","12.","⒔","13.","⒕","14.","⒖","15.","⒗","16.","⒘","17.","⒙","18.","⒚","19.","⒛","20.","⒜","(a)","⒝","(b)","⒞","(c)","⒟","(d)","⒠","(e)","⒡","(f)","⒢","(g)","⒣","(h)","⒤","(i)","⒥","(j)","⒦","(k)","⒧","(l)","⒨","(m)","⒩","(n)","⒪","(o)","⒫","(p)","⒬","(q)","⒭","(r)","⒮","(s)","⒯","(t)","⒰","(u)","⒱","(v)","⒲","(w)","⒳","(x)","⒴","(y)","⒵","(z)","⨌","∫∫∫∫","⩴","::=","⩵","==","⩶","===","⺟","母","⻳","龟","⼀","一","⼁","丨","⼂","丶","⼃","丿","⼄","乙","⼅","亅","⼆","二","⼇","亠","⼈","人","⼉","儿","⼊","入","⼋","八","⼌","冂","⼍","冖","⼎","冫","⼏","几","⼐","凵","⼑","刀","⼒","力","⼓","勹","⼔","匕","⼕","匚","⼖","匸","⼗","十","⼘","卜","⼙","卩","⼚","厂","⼛","厶","⼜","又","⼝","口","⼞","囗","⼟","土","⼠","士","⼡","夂","⼢","夊","⼣","夕","⼤","大","⼥","女","⼦","子","⼧","宀","⼨","寸","⼩","小","⼪","尢","⼫","尸","⼬","屮","⼭","山","⼮","巛","⼯","工","⼰","己","⼱","巾","⼲","干","⼳","幺","⼴","广","⼵","廴","⼶","廾","⼷","弋","⼸","弓","⼹","彐","⼺","彡","⼻","彳","⼼","心","⼽","戈","⼾","戶","⼿","手","⽀","支","⽁","攴","⽂","文","⽃","斗","⽄","斤","⽅","方","⽆","无","⽇","日","⽈","曰","⽉","月","⽊","木","⽋","欠","⽌","止","⽍","歹","⽎","殳","⽏","毋","⽐","比","⽑","毛","⽒","氏","⽓","气","⽔","水","⽕","火","⽖","爪","⽗","父","⽘","爻","⽙","爿","⽚","片","⽛","牙","⽜","牛","⽝","犬","⽞","玄","⽟","玉","⽠","瓜","⽡","瓦","⽢","甘","⽣","生","⽤","用","⽥","田","⽦","疋","⽧","疒","⽨","癶","⽩","白","⽪","皮","⽫","皿","⽬","目","⽭","矛","⽮","矢","⽯","石","⽰","示","⽱","禸","⽲","禾","⽳","穴","⽴","立","⽵","竹","⽶","米","⽷","糸","⽸","缶","⽹","网","⽺","羊","⽻","羽","⽼","老","⽽","而","⽾","耒","⽿","耳","⾀","聿","⾁","肉","⾂","臣","⾃","自","⾄","至","⾅","臼","⾆","舌","⾇","舛","⾈","舟","⾉","艮","⾊","色","⾋","艸","⾌","虍","⾍","虫","⾎","血","⾏","行","⾐","衣","⾑","襾","⾒","見","⾓","角","⾔","言","⾕","谷","⾖","豆","⾗","豕","⾘","豸","⾙","貝","⾚","赤","⾛","走","⾜","足","⾝","身","⾞","車","⾟","辛","⾠","辰","⾡","辵","⾢","邑","⾣","酉","⾤","釆","⾥","里","⾦","金","⾧","長","⾨","門","⾩","阜","⾪","隶","⾫","隹","⾬","雨","⾭","靑","⾮","非","⾯","面","⾰","革","⾱","韋","⾲","韭","⾳","音","⾴","頁","⾵","風","⾶","飛","⾷","食","⾸","首","⾹","香","⾺","馬","⾻","骨","⾼","高","⾽","髟","⾾","鬥","⾿","鬯","⿀","鬲","⿁","鬼","⿂","魚","⿃","鳥","⿄","鹵","⿅","鹿","⿆","麥","⿇","麻","⿈","黃","⿉","黍","⿊","黑","⿋","黹","⿌","黽","⿍","鼎","⿎","鼓","⿏","鼠","⿐","鼻","⿑","齊","⿒","齒","⿓","龍","⿔","龜","⿕","龠","〶","〒","〸","十","〹","卄","〺","卅","゛"," ゙","゜"," ゚","ㄱ","ᄀ","ㄲ","ᄁ","ㄳ","ᆪ","ㄴ","ᄂ","ㄵ","ᆬ","ㄶ","ᆭ","ㄷ","ᄃ","ㄸ","ᄄ","ㄹ","ᄅ","ㄺ","ᆰ","ㄻ","ᆱ","ㄼ","ᆲ","ㄽ","ᆳ","ㄾ","ᆴ","ㄿ","ᆵ","ㅀ","ᄚ","ㅁ","ᄆ","ㅂ","ᄇ","ㅃ","ᄈ","ㅄ","ᄡ","ㅅ","ᄉ","ㅆ","ᄊ","ㅇ","ᄋ","ㅈ","ᄌ","ㅉ","ᄍ","ㅊ","ᄎ","ㅋ","ᄏ","ㅌ","ᄐ","ㅍ","ᄑ","ㅎ","ᄒ","ㅏ","ᅡ","ㅐ","ᅢ","ㅑ","ᅣ","ㅒ","ᅤ","ㅓ","ᅥ","ㅔ","ᅦ","ㅕ","ᅧ","ㅖ","ᅨ","ㅗ","ᅩ","ㅘ","ᅪ","ㅙ","ᅫ","ㅚ","ᅬ","ㅛ","ᅭ","ㅜ","ᅮ","ㅝ","ᅯ","ㅞ","ᅰ","ㅟ","ᅱ","ㅠ","ᅲ","ㅡ","ᅳ","ㅢ","ᅴ","ㅣ","ᅵ","ㅤ","ᅠ","ㅥ","ᄔ","ㅦ","ᄕ","ㅧ","ᇇ","ㅨ","ᇈ","ㅩ","ᇌ","ㅪ","ᇎ","ㅫ","ᇓ","ㅬ","ᇗ","ㅭ","ᇙ","ㅮ","ᄜ","ㅯ","ᇝ","ㅰ","ᇟ","ㅱ","ᄝ","ㅲ","ᄞ","ㅳ","ᄠ","ㅴ","ᄢ","ㅵ","ᄣ","ㅶ","ᄧ","ㅷ","ᄩ","ㅸ","ᄫ","ㅹ","ᄬ","ㅺ","ᄭ","ㅻ","ᄮ","ㅼ","ᄯ","ㅽ","ᄲ","ㅾ","ᄶ","ㅿ","ᅀ","ㆀ","ᅇ","ㆁ","ᅌ","ㆂ","ᇱ","ㆃ","ᇲ","ㆄ","ᅗ","ㆅ","ᅘ","ㆆ","ᅙ","ㆇ","ᆄ","ㆈ","ᆅ","ㆉ","ᆈ","ㆊ","ᆑ","ㆋ","ᆒ","ㆌ","ᆔ","ㆍ","ᆞ","ㆎ","ᆡ","㈀","(ᄀ)","㈁","(ᄂ)","㈂","(ᄃ)","㈃","(ᄅ)","㈄","(ᄆ)","㈅","(ᄇ)","㈆","(ᄉ)","㈇","(ᄋ)","㈈","(ᄌ)","㈉","(ᄎ)","㈊","(ᄏ)","㈋","(ᄐ)","㈌","(ᄑ)","㈍","(ᄒ)","㈎","(가)","㈏","(나)","㈐","(다)","㈑","(라)","㈒","(마)","㈓","(바)","㈔","(사)","㈕","(아)","㈖","(자)","㈗","(차)","㈘","(카)","㈙","(타)","㈚","(파)","㈛","(하)","㈜","(주)","㈝","(오전)","㈞","(오후)","㈠","(一)","㈡","(二)","㈢","(三)","㈣","(四)","㈤","(五)","㈥","(六)","㈦","(七)","㈧","(八)","㈨","(九)","㈩","(十)","㈪","(月)","㈫","(火)","㈬","(水)","㈭","(木)","㈮","(金)","㈯","(土)","㈰","(日)","㈱","(株)","㈲","(有)","㈳","(社)","㈴","(名)","㈵","(特)","㈶","(財)","㈷","(祝)","㈸","(労)","㈹","(代)","㈺","(呼)","㈻","(学)","㈼","(監)","㈽","(企)","㈾","(資)","㈿","(協)","㉀","(祭)","㉁","(休)","㉂","(自)","㉃","(至)","㋀","1月","㋁","2月","㋂","3月","㋃","4月","㋄","5月","㋅","6月","㋆","7月","㋇","8月","㋈","9月","㋉","10月","㋊","11月","㋋","12月","㍘","0点","㍙","1点","㍚","2点","㍛","3点","㍜","4点","㍝","5点","㍞","6点","㍟","7点","㍠","8点","㍡","9点","㍢","10点","㍣","11点","㍤","12点","㍥","13点","㍦","14点","㍧","15点","㍨","16点","㍩","17点","㍪","18点","㍫","19点","㍬","20点","㍭","21点","㍮","22点","㍯","23点","㍰","24点","㏠","1日","㏡","2日","㏢","3日","㏣","4日","㏤","5日","㏥","6日","㏦","7日","㏧","8日","㏨","9日","㏩","10日","㏪","11日","㏫","12日","㏬","13日","㏭","14日","㏮","15日","㏯","16日","㏰","17日","㏱","18日","㏲","19日","㏳","20日","㏴","21日","㏵","22日","㏶","23日","㏷","24日","㏸","25日","㏹","26日","㏺","27日","㏻","28日","㏼","29日","㏽","30日","㏾","31日","ff","ff","fi","fi","fl","fl","ffi","ffi","ffl","ffl","ſt","ſt","st","st","ﬓ","մն","ﬔ","մե","ﬕ","մի","ﬖ","վն","ﬗ","մխ","ﭏ","אל","ﭐ","ٱ","ﭑ","ٱ","ﭒ","ٻ","ﭓ","ٻ","ﭔ","ٻ","ﭕ","ٻ","ﭖ","پ","ﭗ","پ","ﭘ","پ","ﭙ","پ","ﭚ","ڀ","ﭛ","ڀ","ﭜ","ڀ","ﭝ","ڀ","ﭞ","ٺ","ﭟ","ٺ","ﭠ","ٺ","ﭡ","ٺ","ﭢ","ٿ","ﭣ","ٿ","ﭤ","ٿ","ﭥ","ٿ","ﭦ","ٹ","ﭧ","ٹ","ﭨ","ٹ","ﭩ","ٹ","ﭪ","ڤ","ﭫ","ڤ","ﭬ","ڤ","ﭭ","ڤ","ﭮ","ڦ","ﭯ","ڦ","ﭰ","ڦ","ﭱ","ڦ","ﭲ","ڄ","ﭳ","ڄ","ﭴ","ڄ","ﭵ","ڄ","ﭶ","ڃ","ﭷ","ڃ","ﭸ","ڃ","ﭹ","ڃ","ﭺ","چ","ﭻ","چ","ﭼ","چ","ﭽ","چ","ﭾ","ڇ","ﭿ","ڇ","ﮀ","ڇ","ﮁ","ڇ","ﮂ","ڍ","ﮃ","ڍ","ﮄ","ڌ","ﮅ","ڌ","ﮆ","ڎ","ﮇ","ڎ","ﮈ","ڈ","ﮉ","ڈ","ﮊ","ژ","ﮋ","ژ","ﮌ","ڑ","ﮍ","ڑ","ﮎ","ک","ﮏ","ک","ﮐ","ک","ﮑ","ک","ﮒ","گ","ﮓ","گ","ﮔ","گ","ﮕ","گ","ﮖ","ڳ","ﮗ","ڳ","ﮘ","ڳ","ﮙ","ڳ","ﮚ","ڱ","ﮛ","ڱ","ﮜ","ڱ","ﮝ","ڱ","ﮞ","ں","ﮟ","ں","ﮠ","ڻ","ﮡ","ڻ","ﮢ","ڻ","ﮣ","ڻ","ﮤ","ۀ","ﮥ","ۀ","ﮦ","ہ","ﮧ","ہ","ﮨ","ہ","ﮩ","ہ","ﮪ","ھ","ﮫ","ھ","ﮬ","ھ","ﮭ","ھ","ﮮ","ے","ﮯ","ے","ﮰ","ۓ","ﮱ","ۓ","ﯓ","ڭ","ﯔ","ڭ","ﯕ","ڭ","ﯖ","ڭ","ﯗ","ۇ","ﯘ","ۇ","ﯙ","ۆ","ﯚ","ۆ","ﯛ","ۈ","ﯜ","ۈ","ﯝ","ٷ","ﯞ","ۋ","ﯟ","ۋ","ﯠ","ۅ","ﯡ","ۅ","ﯢ","ۉ","ﯣ","ۉ","ﯤ","ې","ﯥ","ې","ﯦ","ې","ﯧ","ې","ﯨ","ى","ﯩ","ى","ﯪ","ئا","ﯫ","ئا","ﯬ","ئە","ﯭ","ئە","ﯮ","ئو","ﯯ","ئو","ﯰ","ئۇ","ﯱ","ئۇ","ﯲ","ئۆ","ﯳ","ئۆ","ﯴ","ئۈ","ﯵ","ئۈ","ﯶ","ئې","ﯷ","ئې","ﯸ","ئې","ﯹ","ئى","ﯺ","ئى","ﯻ","ئى","ﯼ","ی","ﯽ","ی","ﯾ","ی","ﯿ","ی","ﰀ","ئج","ﰁ","ئح","ﰂ","ئم","ﰃ","ئى","ﰄ","ئي","ﰅ","بج","ﰆ","بح","ﰇ","بخ","ﰈ","بم","ﰉ","بى","ﰊ","بي","ﰋ","تج","ﰌ","تح","ﰍ","تخ","ﰎ","تم","ﰏ","تى","ﰐ","تي","ﰑ","ثج","ﰒ","ثم","ﰓ","ثى","ﰔ","ثي","ﰕ","جح","ﰖ","جم","ﰗ","حج","ﰘ","حم","ﰙ","خج","ﰚ","خح","ﰛ","خم","ﰜ","سج","ﰝ","سح","ﰞ","سخ","ﰟ","سم","ﰠ","صح","ﰡ","صم","ﰢ","ضج","ﰣ","ضح","ﰤ","ضخ","ﰥ","ضم","ﰦ","طح","ﰧ","طم","ﰨ","ظم","ﰩ","عج","ﰪ","عم","ﰫ","غج","ﰬ","غم","ﰭ","فج","ﰮ","فح","ﰯ","فخ","ﰰ","فم","ﰱ","فى","ﰲ","في","ﰳ","قح","ﰴ","قم","ﰵ","قى","ﰶ","قي","ﰷ","كا","ﰸ","كج","ﰹ","كح","ﰺ","كخ","ﰻ","كل","ﰼ","كم","ﰽ","كى","ﰾ","كي","ﰿ","لج","ﱀ","لح","ﱁ","لخ","ﱂ","لم","ﱃ","لى","ﱄ","لي","ﱅ","مج","ﱆ","مح","ﱇ","مخ","ﱈ","مم","ﱉ","مى","ﱊ","مي","ﱋ","نج","ﱌ","نح","ﱍ","نخ","ﱎ","نم","ﱏ","نى","ﱐ","ني","ﱑ","هج","ﱒ","هم","ﱓ","هى","ﱔ","هي","ﱕ","يج","ﱖ","يح","ﱗ","يخ","ﱘ","يم","ﱙ","يى","ﱚ","يي","ﱛ","ذٰ","ﱜ","رٰ","ﱝ","ىٰ","ﱞ"," ٌّ","ﱟ"," ٍّ","ﱠ"," َّ","ﱡ"," ُّ","ﱢ"," ِّ","ﱣ"," ّٰ","ﱤ","ئر","ﱥ","ئز","ﱦ","ئم","ﱧ","ئن","ﱨ","ئى","ﱩ","ئي","ﱪ","بر","ﱫ","بز","ﱬ","بم","ﱭ","بن","ﱮ","بى","ﱯ","بي","ﱰ","تر","ﱱ","تز","ﱲ","تم","ﱳ","تن","ﱴ","تى","ﱵ","تي","ﱶ","ثر","ﱷ","ثز","ﱸ","ثم","ﱹ","ثن","ﱺ","ثى","ﱻ","ثي","ﱼ","فى","ﱽ","في","ﱾ","قى","ﱿ","قي","ﲀ","كا","ﲁ","كل","ﲂ","كم","ﲃ","كى","ﲄ","كي","ﲅ","لم","ﲆ","لى","ﲇ","لي","ﲈ","ما","ﲉ","مم","ﲊ","نر","ﲋ","نز","ﲌ","نم","ﲍ","نن","ﲎ","نى","ﲏ","ني","ﲐ","ىٰ","ﲑ","ير","ﲒ","يز","ﲓ","يم","ﲔ","ين","ﲕ","يى","ﲖ","يي","ﲗ","ئج","ﲘ","ئح","ﲙ","ئخ","ﲚ","ئم","ﲛ","ئه","ﲜ","بج","ﲝ","بح","ﲞ","بخ","ﲟ","بم","ﲠ","به","ﲡ","تج","ﲢ","تح","ﲣ","تخ","ﲤ","تم","ﲥ","ته","ﲦ","ثم","ﲧ","جح","ﲨ","جم","ﲩ","حج","ﲪ","حم","ﲫ","خج","ﲬ","خم","ﲭ","سج","ﲮ","سح","ﲯ","سخ","ﲰ","سم","ﲱ","صح","ﲲ","صخ","ﲳ","صم","ﲴ","ضج","ﲵ","ضح","ﲶ","ضخ","ﲷ","ضم","ﲸ","طح","ﲹ","ظم","ﲺ","عج","ﲻ","عم","ﲼ","غج","ﲽ","غم","ﲾ","فج","ﲿ","فح","ﳀ","فخ","ﳁ","فم","ﳂ","قح","ﳃ","قم","ﳄ","كج","ﳅ","كح","ﳆ","كخ","ﳇ","كل","ﳈ","كم","ﳉ","لج","ﳊ","لح","ﳋ","لخ","ﳌ","لم","ﳍ","له","ﳎ","مج","ﳏ","مح","ﳐ","مخ","ﳑ","مم","ﳒ","نج","ﳓ","نح","ﳔ","نخ","ﳕ","نم","ﳖ","نه","ﳗ","هج","ﳘ","هم","ﳙ","هٰ","ﳚ","يج","ﳛ","يح","ﳜ","يخ","ﳝ","يم","ﳞ","يه","ﳟ","ئم","ﳠ","ئه","ﳡ","بم","ﳢ","به","ﳣ","تم","ﳤ","ته","ﳥ","ثم","ﳦ","ثه","ﳧ","سم","ﳨ","سه","ﳩ","شم","ﳪ","شه","ﳫ","كل","ﳬ","كم","ﳭ","لم","ﳮ","نم","ﳯ","نه","ﳰ","يم","ﳱ","يه","ﳲ","ـَّ","ﳳ","ـُّ","ﳴ","ـِّ","ﳵ","طى","ﳶ","طي","ﳷ","عى","ﳸ","عي","ﳹ","غى","ﳺ","غي","ﳻ","سى","ﳼ","سي","ﳽ","شى","ﳾ","شي","ﳿ","حى","ﴀ","حي","ﴁ","جى","ﴂ","جي","ﴃ","خى","ﴄ","خي","ﴅ","صى","ﴆ","صي","ﴇ","ضى","ﴈ","ضي","ﴉ","شج","ﴊ","شح","ﴋ","شخ","ﴌ","شم","ﴍ","شر","ﴎ","سر","ﴏ","صر","ﴐ","ضر","ﴑ","طى","ﴒ","طي","ﴓ","عى","ﴔ","عي","ﴕ","غى","ﴖ","غي","ﴗ","سى","ﴘ","سي","ﴙ","شى","ﴚ","شي","ﴛ","حى","ﴜ","حي","ﴝ","جى","ﴞ","جي","ﴟ","خى","ﴠ","خي","ﴡ","صى","ﴢ","صي","ﴣ","ضى","ﴤ","ضي","ﴥ","شج","ﴦ","شح","ﴧ","شخ","ﴨ","شم","ﴩ","شر","ﴪ","سر","ﴫ","صر","ﴬ","ضر","ﴭ","شج","ﴮ","شح","ﴯ","شخ","ﴰ","شم","ﴱ","سه","ﴲ","شه","ﴳ","طم","ﴴ","سج","ﴵ","سح","ﴶ","سخ","ﴷ","شج","ﴸ","شح","ﴹ","شخ","ﴺ","طم","ﴻ","ظم","ﴼ","اً","ﴽ","اً","ﵐ","تجم","ﵑ","تحج","ﵒ","تحج","ﵓ","تحم","ﵔ","تخم","ﵕ","تمج","ﵖ","تمح","ﵗ","تمخ","ﵘ","جمح","ﵙ","جمح","ﵚ","حمي","ﵛ","حمى","ﵜ","سحج","ﵝ","سجح","ﵞ","سجى","ﵟ","سمح","ﵠ","سمح","ﵡ","سمج","ﵢ","سمم","ﵣ","سمم","ﵤ","صحح","ﵥ","صحح","ﵦ","صمم","ﵧ","شحم","ﵨ","شحم","ﵩ","شجي","ﵪ","شمخ","ﵫ","شمخ","ﵬ","شمم","ﵭ","شمم","ﵮ","ضحى","ﵯ","ضخم","ﵰ","ضخم","ﵱ","طمح","ﵲ","طمح","ﵳ","طمم","ﵴ","طمي","ﵵ","عجم","ﵶ","عمم","ﵷ","عمم","ﵸ","عمى","ﵹ","غمم","ﵺ","غمي","ﵻ","غمى","ﵼ","فخم","ﵽ","فخم","ﵾ","قمح","ﵿ","قمم","ﶀ","لحم","ﶁ","لحي","ﶂ","لحى","ﶃ","لجج","ﶄ","لجج","ﶅ","لخم","ﶆ","لخم","ﶇ","لمح","ﶈ","لمح","ﶉ","محج","ﶊ","محم","ﶋ","محي","ﶌ","مجح","ﶍ","مجم","ﶎ","مخج","ﶏ","مخم","ﶒ","مجخ","ﶓ","همج","ﶔ","همم","ﶕ","نحم","ﶖ","نحى","ﶗ","نجم","ﶘ","نجم","ﶙ","نجى","ﶚ","نمي","ﶛ","نمى","ﶜ","يمم","ﶝ","يمم","ﶞ","بخي","ﶟ","تجي","ﶠ","تجى","ﶡ","تخي","ﶢ","تخى","ﶣ","تمي","ﶤ","تمى","ﶥ","جمي","ﶦ","جحى","ﶧ","جمى","ﶨ","سخى","ﶩ","صحي","ﶪ","شحي","ﶫ","ضحي","ﶬ","لجي","ﶭ","لمي","ﶮ","يحي","ﶯ","يجي","ﶰ","يمي","ﶱ","ممي","ﶲ","قمي","ﶳ","نحي","ﶴ","قمح","ﶵ","لحم","ﶶ","عمي","ﶷ","كمي","ﶸ","نجح","ﶹ","مخي","ﶺ","لجم","ﶻ","كمم","ﶼ","لجم","ﶽ","نجح","ﶾ","جحي","ﶿ","حجي","ﷀ","مجي","ﷁ","فمي","ﷂ","بحي","ﷃ","كمم","ﷄ","عجم","ﷅ","صمم","ﷆ","سخي","ﷇ","نجي","﹉","‾","﹊","‾","﹋","‾","﹌","‾","﹍","_","﹎","_","﹏","_","ﺀ","ء","ﺁ","آ","ﺂ","آ","ﺃ","أ","ﺄ","أ","ﺅ","ؤ","ﺆ","ؤ","ﺇ","إ","ﺈ","إ","ﺉ","ئ","ﺊ","ئ","ﺋ","ئ","ﺌ","ئ","ﺍ","ا","ﺎ","ا","ﺏ","ب","ﺐ","ب","ﺑ","ب","ﺒ","ب","ﺓ","ة","ﺔ","ة","ﺕ","ت","ﺖ","ت","ﺗ","ت","ﺘ","ت","ﺙ","ث","ﺚ","ث","ﺛ","ث","ﺜ","ث","ﺝ","ج","ﺞ","ج","ﺟ","ج","ﺠ","ج","ﺡ","ح","ﺢ","ح","ﺣ","ح","ﺤ","ح","ﺥ","خ","ﺦ","خ","ﺧ","خ","ﺨ","خ","ﺩ","د","ﺪ","د","ﺫ","ذ","ﺬ","ذ","ﺭ","ر","ﺮ","ر","ﺯ","ز","ﺰ","ز","ﺱ","س","ﺲ","س","ﺳ","س","ﺴ","س","ﺵ","ش","ﺶ","ش","ﺷ","ش","ﺸ","ش","ﺹ","ص","ﺺ","ص","ﺻ","ص","ﺼ","ص","ﺽ","ض","ﺾ","ض","ﺿ","ض","ﻀ","ض","ﻁ","ط","ﻂ","ط","ﻃ","ط","ﻄ","ط","ﻅ","ظ","ﻆ","ظ","ﻇ","ظ","ﻈ","ظ","ﻉ","ع","ﻊ","ع","ﻋ","ع","ﻌ","ع","ﻍ","غ","ﻎ","غ","ﻏ","غ","ﻐ","غ","ﻑ","ف","ﻒ","ف","ﻓ","ف","ﻔ","ف","ﻕ","ق","ﻖ","ق","ﻗ","ق","ﻘ","ق","ﻙ","ك","ﻚ","ك","ﻛ","ك","ﻜ","ك","ﻝ","ل","ﻞ","ل","ﻟ","ل","ﻠ","ل","ﻡ","م","ﻢ","م","ﻣ","م","ﻤ","م","ﻥ","ن","ﻦ","ن","ﻧ","ن","ﻨ","ن","ﻩ","ه","ﻪ","ه","ﻫ","ه","ﻬ","ه","ﻭ","و","ﻮ","و","ﻯ","ى","ﻰ","ى","ﻱ","ي","ﻲ","ي","ﻳ","ي","ﻴ","ي","ﻵ","لآ","ﻶ","لآ","ﻷ","لأ","ﻸ","لأ","ﻹ","لإ","ﻺ","لإ","ﻻ","لا","ﻼ","لا"]}));function reverseIfRtl(t){const r=t.length;if(r<=1||!function isRTLRangeFor(t){let r=u[13];if(t>=r.begin&&t<r.end)return!0;r=u[11];return t>=r.begin&&t<r.end}(t.charCodeAt(0)))return t;const o=[];for(let l=r-1;l>=0;l--)o.push(t[l]);return o.join("")}},(t,r,o)=>{"use strict";function _typeof(t){_typeof="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function _typeof(t){return typeof t}:function _typeof(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t};return _typeof(t)}Object.defineProperty(r,"__esModule",{value:!0});r.getQuadPoints=getQuadPoints;r.MarkupAnnotation=r.AnnotationFactory=r.AnnotationBorderStyle=r.Annotation=void 0;var l=function _interopRequireDefault(t){return t&&t.__esModule?t:{default:t}}(o(2)),c=o(4),u=o(122),h=o(136),d=o(118),m=o(172),g=o(177),y=o(137),v=o(179),S=o(183),_=o(175),k=o(123),C=o(184);function _get(t,r,o){_get="undefined"!=typeof Reflect&&Reflect.get?Reflect.get:function _get(t,r,o){var l=function _superPropBase(t,r){for(;!Object.prototype.hasOwnProperty.call(t,r)&&null!==(t=_getPrototypeOf(t)););return t}(t,r);if(l){var c=Object.getOwnPropertyDescriptor(l,r);return c.get?c.get.call(o):c.value}};return _get(t,r,o||t)}function _inherits(t,r){if("function"!=typeof r&&null!==r)throw new TypeError("Super expression must either be null or a function");t.prototype=Object.create(r&&r.prototype,{constructor:{value:t,writable:!0,configurable:!0}});r&&_setPrototypeOf(t,r)}function _setPrototypeOf(t,r){_setPrototypeOf=Object.setPrototypeOf||function _setPrototypeOf(t,r){t.__proto__=r;return t};return _setPrototypeOf(t,r)}function _createSuper(t){var r=function _isNativeReflectConstruct(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){})));return!0}catch(t){return!1}}();return function _createSuperInternal(){var o,l=_getPrototypeOf(t);if(r){var c=_getPrototypeOf(this).constructor;o=Reflect.construct(l,arguments,c)}else o=l.apply(this,arguments);return _possibleConstructorReturn(this,o)}}function _possibleConstructorReturn(t,r){if(r&&("object"===_typeof(r)||"function"==typeof r))return r;if(void 0!==r)throw new TypeError("Derived constructors may only return object or undefined");return function _assertThisInitialized(t){if(void 0===t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return t}(t)}function _getPrototypeOf(t){_getPrototypeOf=Object.setPrototypeOf?Object.getPrototypeOf:function _getPrototypeOf(t){return t.__proto__||Object.getPrototypeOf(t)};return _getPrototypeOf(t)}function _createForOfIteratorHelper(t,r){var o="undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(!o){if(Array.isArray(t)||(o=_unsupportedIterableToArray(t))||r&&t&&"number"==typeof t.length){o&&(t=o);var l=0,c=function F(){};return{s:c,n:function n(){return l>=t.length?{done:!0}:{done:!1,value:t[l++]}},e:function e(t){throw t},f:c}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var u,h=!0,d=!1;return{s:function s(){o=o.call(t)},n:function n(){var t=o.next();h=t.done;return t},e:function e(t){d=!0;u=t},f:function f(){try{h||null==o.return||o.return()}finally{if(d)throw u}}}}function asyncGeneratorStep(t,r,o,l,c,u,h){try{var d=t[u](h),m=d.value}catch(t){o(t);return}d.done?r(m):Promise.resolve(m).then(l,c)}function _asyncToGenerator(t){return function(){var r=this,o=arguments;return new Promise((function(l,c){var u=t.apply(r,o);function _next(t){asyncGeneratorStep(u,l,c,_next,_throw,"next",t)}function _throw(t){asyncGeneratorStep(u,l,c,_next,_throw,"throw",t)}_next(void 0)}))}}function _slicedToArray(t,r){return function _arrayWithHoles(t){if(Array.isArray(t))return t}(t)||function _iterableToArrayLimit(t,r){var o=null==t?null:"undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(null==o)return;var l,c,u=[],h=!0,d=!1;try{for(o=o.call(t);!(h=(l=o.next()).done);h=!0){u.push(l.value);if(r&&u.length===r)break}}catch(t){d=!0;c=t}finally{try{h||null==o.return||o.return()}finally{if(d)throw c}}return u}(t,r)||_unsupportedIterableToArray(t,r)||function _nonIterableRest(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function _unsupportedIterableToArray(t,r){if(t){if("string"==typeof t)return _arrayLikeToArray(t,r);var o=Object.prototype.toString.call(t).slice(8,-1);"Object"===o&&t.constructor&&(o=t.constructor.name);return"Map"===o||"Set"===o?Array.from(t):"Arguments"===o||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(o)?_arrayLikeToArray(t,r):void 0}}function _arrayLikeToArray(t,r){(null==r||r>t.length)&&(r=t.length);for(var o=0,l=new Array(r);o<r;o++)l[o]=t[o];return l}function _classCallCheck(t,r){if(!(t instanceof r))throw new TypeError("Cannot call a class as a function")}function _defineProperties(t,r){for(var o=0;o<r.length;o++){var l=r[o];l.enumerable=l.enumerable||!1;l.configurable=!0;"value"in l&&(l.writable=!0);Object.defineProperty(t,l.key,l)}}function _createClass(t,r,o){r&&_defineProperties(t.prototype,r);o&&_defineProperties(t,o);return t}var w=function(){function AnnotationFactory(){_classCallCheck(this,AnnotationFactory)}_createClass(AnnotationFactory,null,[{key:"create",value:function create(t,r,o,l,c){var u=this;return Promise.all([o.ensureCatalog("acroForm"),c?this._getPageIndex(t,r,o):-1]).then((function(h){var d=_slicedToArray(h,2),m=d[0],g=d[1];return o.ensure(u,"_create",[t,r,o,l,m,c,g])}))}},{key:"_create",value:function _create(t,r,o,l,h,m){var g=arguments.length>6&&void 0!==arguments[6]?arguments[6]:-1,y=t.fetchIfRef(r);if((0,d.isDict)(y)){var v=(0,d.isRef)(r)?r.toString():"annot_".concat(l.createObjId()),S=y.get("Subtype"),_={xref:t,ref:r,dict:y,subtype:S=(0,d.isName)(S)?S.name:null,id:v,pdfManager:o,acroForm:h instanceof d.Dict?h:d.Dict.empty,collectFields:m,pageIndex:g};switch(S){case"Link":return new N(_);case"Text":return new L(_);case"Widget":var k=(0,u.getInheritableProperty)({dict:y,key:"FT"});switch(k=(0,d.isName)(k)?k.name:null){case"Tx":return new E(_);case"Btn":return new M(_);case"Ch":return new D(_);case"Sig":return new j(_)}(0,c.warn)('Unimplemented widget field type "'.concat(k,'", ')+"falling back to base field type.");return new R(_);case"Popup":return new U(_);case"FreeText":return new H(_);case"Line":return new W(_);case"Square":return new $(_);case"Circle":return new q(_);case"PolyLine":return new X(_);case"Polygon":return new z(_);case"Caret":return new G(_);case"Ink":return new V(_);case"Highlight":return new Y(_);case"Underline":return new K(_);case"Squiggly":return new J(_);case"StrikeOut":return new Q(_);case"Stamp":return new Z(_);case"FileAttachment":return new ee(_);default:m||(S?(0,c.warn)('Unimplemented annotation type "'.concat(S,'", ')+"falling back to base annotation."):(0,c.warn)("Annotation is missing the required /Subtype."));return new x(_)}}}},{key:"_getPageIndex",value:(t=_asyncToGenerator(l.default.mark((function _callee(t,r,o){var u,h,m;return l.default.wrap((function _callee$(l){for(;;)switch(l.prev=l.next){case 0:l.prev=0;l.next=3;return t.fetchIfRefAsync(r);case 3:u=l.sent;if((0,d.isDict)(u)){l.next=6;break}return l.abrupt("return",-1);case 6:h=u.getRaw("P");if((0,d.isRef)(h)){l.next=9;break}return l.abrupt("return",-1);case 9:l.next=11;return o.ensureCatalog("getPageIndex",[h]);case 11:m=l.sent;return l.abrupt("return",m);case 15:l.prev=15;l.t0=l.catch(0);(0,c.warn)('_getPageIndex: "'.concat(l.t0,'".'));return l.abrupt("return",-1);case 19:case"end":return l.stop()}}),_callee,null,[[0,15]])}))),function _getPageIndex(r,o,l){return t.apply(this,arguments)})}]);var t;return AnnotationFactory}();r.AnnotationFactory=w;function getRgbColor(t){var r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:new Uint8ClampedArray(3);if(!Array.isArray(t))return r;var o=r||new Uint8ClampedArray(3);switch(t.length){case 0:return null;case 1:y.ColorSpace.singletons.gray.getRgbItem(t,0,o,0);return o;case 3:y.ColorSpace.singletons.rgb.getRgbItem(t,0,o,0);return o;case 4:y.ColorSpace.singletons.cmyk.getRgbItem(t,0,o,0);return o;default:return r}}function getQuadPoints(t,r){if(!t.has("QuadPoints"))return null;var o=t.getArray("QuadPoints");if(!Array.isArray(o)||0===o.length||o.length%8>0)return null;for(var l=[],c=0,u=o.length/8;c<u;c++){l.push([]);for(var h=8*c,d=8*c+8;h<d;h+=2){var m=o[h],g=o[h+1];if(null!==r&&(m<r[0]||m>r[2]||g<r[1]||g>r[3]))return null;l[c].push({x:m,y:g})}}return l.map((function(t){var r=t.reduce((function(t,r){var o=_slicedToArray(t,4),l=o[0],c=o[1],u=o[2],h=o[3];return[Math.min(l,r.x),Math.max(c,r.x),Math.min(u,r.y),Math.max(h,r.y)]}),[Number.MAX_VALUE,Number.MIN_VALUE,Number.MAX_VALUE,Number.MIN_VALUE]),o=_slicedToArray(r,4),l=o[0],c=o[1],u=o[2],h=o[3];return[{x:l,y:h},{x:c,y:h},{x:l,y:u},{x:c,y:u}]}))}function getTransformMatrix(t,r,o){var l=_slicedToArray(c.Util.getAxialAlignedBoundingBox(r,o),4),u=l[0],h=l[1],d=l[2],m=l[3];if(u===d||h===m)return[1,0,0,1,t[0],t[1]];var g=(t[2]-t[0])/(d-u),y=(t[3]-t[1])/(m-h);return[g,0,0,y,t[0]-u*g,t[1]-h*y]}var x=function(){function Annotation(t){_classCallCheck(this,Annotation);var r=t.dict;this.setTitle(r.get("T"));this.setContents(r.get("Contents"));this.setModificationDate(r.get("M"));this.setFlags(r.get("F"));this.setRectangle(r.getArray("Rect"));this.setColor(r.getArray("C"));this.setBorderStyle(r);this.setAppearance(r);this.setBorderAndBackgroundColors(r.get("MK"));this._streams=[];this.appearance&&this._streams.push(this.appearance);this.data={annotationFlags:this.flags,borderStyle:this.borderStyle,color:this.color,backgroundColor:this.backgroundColor,borderColor:this.borderColor,contentsObj:this._contents,hasAppearance:!!this.appearance,id:t.id,modificationDate:this.modificationDate,rect:this.rectangle,subtype:t.subtype};if(t.collectFields){var o=r.get("Kids");if(Array.isArray(o)){var l,h=[],m=_createForOfIteratorHelper(o);try{for(m.s();!(l=m.n()).done;){var g=l.value;(0,d.isRef)(g)&&h.push(g.toString())}}catch(t){m.e(t)}finally{m.f()}0!==h.length&&(this.data.kidIds=h)}this.data.actions=(0,u.collectActions)(t.xref,r,c.AnnotationActionEventType);this.data.fieldName=this._constructFieldName(r);this.data.pageIndex=t.pageIndex}this._fallbackFontDict=null}_createClass(Annotation,[{key:"_hasFlag",value:function _hasFlag(t,r){return!!(t&r)}},{key:"_isViewable",value:function _isViewable(t){return!this._hasFlag(t,c.AnnotationFlag.INVISIBLE)&&!this._hasFlag(t,c.AnnotationFlag.NOVIEW)}},{key:"_isPrintable",value:function _isPrintable(t){return this._hasFlag(t,c.AnnotationFlag.PRINT)&&!this._hasFlag(t,c.AnnotationFlag.INVISIBLE)}},{key:"mustBeViewed",value:function mustBeViewed(t){var r=t&&t.get(this.data.id);return r&&void 0!==r.hidden?!r.hidden:this.viewable&&!this._hasFlag(this.flags,c.AnnotationFlag.HIDDEN)}},{key:"mustBePrinted",value:function mustBePrinted(t){var r=t&&t.get(this.data.id);return r&&void 0!==r.print?r.print:this.printable}},{key:"viewable",get:function get(){return null!==this.data.quadPoints&&(0===this.flags||this._isViewable(this.flags))}},{key:"printable",get:function get(){return null!==this.data.quadPoints&&(0!==this.flags&&this._isPrintable(this.flags))}},{key:"_parseStringHelper",value:function _parseStringHelper(t){var r="string"==typeof t?(0,c.stringToPDFString)(t):"";return{str:r,dir:r&&"rtl"===(0,m.bidi)(r).dir?"rtl":"ltr"}}},{key:"setTitle",value:function setTitle(t){this._title=this._parseStringHelper(t)}},{key:"setContents",value:function setContents(t){this._contents=this._parseStringHelper(t)}},{key:"setModificationDate",value:function setModificationDate(t){this.modificationDate=(0,c.isString)(t)?t:null}},{key:"setFlags",value:function setFlags(t){this.flags=Number.isInteger(t)&&t>0?t:0}},{key:"hasFlag",value:function hasFlag(t){return this._hasFlag(this.flags,t)}},{key:"setRectangle",value:function setRectangle(t){Array.isArray(t)&&4===t.length?this.rectangle=c.Util.normalizeRect(t):this.rectangle=[0,0,0,0]}},{key:"setColor",value:function setColor(t){this.color=getRgbColor(t)}},{key:"setBorderAndBackgroundColors",value:function setBorderAndBackgroundColors(t){if(t instanceof d.Dict){this.borderColor=getRgbColor(t.getArray("BC"),null);this.backgroundColor=getRgbColor(t.getArray("BG"),null)}else this.borderColor=this.backgroundColor=null}},{key:"setBorderStyle",value:function setBorderStyle(t){this.borderStyle=new O;if((0,d.isDict)(t))if(t.has("BS")){var r=t.get("BS"),o=r.get("Type");if(!o||(0,d.isName)(o,"Border")){this.borderStyle.setWidth(r.get("W"),this.rectangle);this.borderStyle.setStyle(r.get("S"));this.borderStyle.setDashArray(r.getArray("D"))}}else if(t.has("Border")){var l=t.getArray("Border");if(Array.isArray(l)&&l.length>=3){this.borderStyle.setHorizontalCornerRadius(l[0]);this.borderStyle.setVerticalCornerRadius(l[1]);this.borderStyle.setWidth(l[2],this.rectangle);4===l.length&&this.borderStyle.setDashArray(l[3])}}else this.borderStyle.setWidth(0)}},{key:"setAppearance",value:function setAppearance(t){this.appearance=null;var r=t.get("AP");if((0,d.isDict)(r)){var o=r.get("N");if((0,d.isStream)(o))this.appearance=o;else if((0,d.isDict)(o)){var l=t.get("AS");(0,d.isName)(l)&&o.has(l.name)&&(this.appearance=o.get(l.name))}}}},{key:"loadResources",value:function loadResources(t){return this.appearance.dict.getAsync("Resources").then((function(r){if(r){return new S.ObjectLoader(r,t,r.xref).load().then((function(){return r}))}}))}},{key:"getOperatorList",value:function getOperatorList(t,r,o,l){var u=this;if(!this.appearance)return Promise.resolve(new _.OperatorList);var h=this.appearance,d=this.data,m=h.dict,g=this.loadResources(["ExtGState","ColorSpace","Pattern","Shading","XObject","Font"]),y=m.getArray("BBox")||[0,0,1,1],v=m.getArray("Matrix")||[1,0,0,1,0,0],S=getTransformMatrix(d.rect,y,v);return g.then((function(o){var l=new _.OperatorList;l.addOp(c.OPS.beginAnnotation,[d.id,d.rect,S,v]);return t.getOperatorList({stream:h,task:r,resources:o,operatorList:l,fallbackFontDict:u._fallbackFontDict}).then((function(){l.addOp(c.OPS.endAnnotation,[]);u.reset();return l}))}))}},{key:"save",value:(t=_asyncToGenerator(l.default.mark((function _callee2(t,r,o){return l.default.wrap((function _callee2$(t){for(;;)switch(t.prev=t.next){case 0:return t.abrupt("return",null);case 1:case"end":return t.stop()}}),_callee2)}))),function save(r,o,l){return t.apply(this,arguments)})},{key:"getFieldObject",value:function getFieldObject(){return this.data.kidIds?{id:this.data.id,actions:this.data.actions,name:this.data.fieldName,strokeColor:this.data.borderColor,fillColor:this.data.backgroundColor,type:"",kidIds:this.data.kidIds,page:this.data.pageIndex}:null}},{key:"reset",value:function reset(){var t,r=_createForOfIteratorHelper(this._streams);try{for(r.s();!(t=r.n()).done;){t.value.reset()}}catch(t){r.e(t)}finally{r.f()}}},{key:"_constructFieldName",value:function _constructFieldName(t){if(!t.has("T")&&!t.has("Parent")){(0,c.warn)("Unknown field name, falling back to empty field name.");return""}if(!t.has("Parent"))return(0,c.stringToPDFString)(t.get("T"));var r=[];t.has("T")&&r.unshift((0,c.stringToPDFString)(t.get("T")));var o=t,l=new d.RefSet;t.objId&&l.put(t.objId);for(;o.has("Parent")&&(o=o.get("Parent"))instanceof d.Dict&&(!o.objId||!l.has(o.objId));){o.objId&&l.put(o.objId);o.has("T")&&r.unshift((0,c.stringToPDFString)(o.get("T")))}return r.join(".")}}]);var t;return Annotation}();r.Annotation=x;var O=function(){function AnnotationBorderStyle(){_classCallCheck(this,AnnotationBorderStyle);this.width=1;this.style=c.AnnotationBorderStyleType.SOLID;this.dashArray=[3];this.horizontalCornerRadius=0;this.verticalCornerRadius=0}_createClass(AnnotationBorderStyle,[{key:"setWidth",value:function setWidth(t){var r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[0,0,0,0];if((0,d.isName)(t))this.width=0;else if(Number.isInteger(t)){if(t>0){var o=(r[2]-r[0])/2,l=(r[3]-r[1])/2;if(o>0&&l>0&&(t>o||t>l)){(0,c.warn)("AnnotationBorderStyle.setWidth - ignoring width: ".concat(t));t=1}}this.width=t}}},{key:"setStyle",value:function setStyle(t){if((0,d.isName)(t))switch(t.name){case"S":this.style=c.AnnotationBorderStyleType.SOLID;break;case"D":this.style=c.AnnotationBorderStyleType.DASHED;break;case"B":this.style=c.AnnotationBorderStyleType.BEVELED;break;case"I":this.style=c.AnnotationBorderStyleType.INSET;break;case"U":this.style=c.AnnotationBorderStyleType.UNDERLINE}}},{key:"setDashArray",value:function setDashArray(t){if(Array.isArray(t)&&t.length>0){var r,o=!0,l=!0,c=_createForOfIteratorHelper(t);try{for(c.s();!(r=c.n()).done;){var u=r.value;if(!(+u>=0)){o=!1;break}u>0&&(l=!1)}}catch(t){c.e(t)}finally{c.f()}o&&!l?this.dashArray=t:this.width=0}else t&&(this.width=0)}},{key:"setHorizontalCornerRadius",value:function setHorizontalCornerRadius(t){Number.isInteger(t)&&(this.horizontalCornerRadius=t)}},{key:"setVerticalCornerRadius",value:function setVerticalCornerRadius(t){Number.isInteger(t)&&(this.verticalCornerRadius=t)}}]);return AnnotationBorderStyle}();r.AnnotationBorderStyle=O;var T=function(t){_inherits(MarkupAnnotation,t);var r=_createSuper(MarkupAnnotation);function MarkupAnnotation(t){var o;_classCallCheck(this,MarkupAnnotation);o=r.call(this,t);var l=t.dict;if(l.has("IRT")){var u=l.getRaw("IRT");o.data.inReplyTo=(0,d.isRef)(u)?u.toString():null;var h=l.get("RT");o.data.replyType=(0,d.isName)(h)?h.name:c.AnnotationReplyType.REPLY}if(o.data.replyType===c.AnnotationReplyType.GROUP){var m=l.get("IRT");o.setTitle(m.get("T"));o.data.titleObj=o._title;o.setContents(m.get("Contents"));o.data.contentsObj=o._contents;if(m.has("CreationDate")){o.setCreationDate(m.get("CreationDate"));o.data.creationDate=o.creationDate}else o.data.creationDate=null;if(m.has("M")){o.setModificationDate(m.get("M"));o.data.modificationDate=o.modificationDate}else o.data.modificationDate=null;o.data.hasPopup=m.has("Popup");if(m.has("C")){o.setColor(m.getArray("C"));o.data.color=o.color}else o.data.color=null}else{o.data.titleObj=o._title;o.setCreationDate(l.get("CreationDate"));o.data.creationDate=o.creationDate;o.data.hasPopup=l.has("Popup");l.has("C")||(o.data.color=null)}return o}_createClass(MarkupAnnotation,[{key:"setCreationDate",value:function setCreationDate(t){this.creationDate=(0,c.isString)(t)?t:null}},{key:"_setDefaultAppearance",value:function _setDefaultAppearance(t){var r=t.xref,o=t.extra,l=t.strokeColor,c=t.fillColor,u=t.blendMode,h=t.strokeAlpha,m=t.fillAlpha,g=t.pointsCallback,y=Number.MAX_VALUE,v=Number.MAX_VALUE,S=Number.MIN_VALUE,_=Number.MIN_VALUE,C=["q"];o&&C.push(o);l&&C.push("".concat(l[0]," ").concat(l[1]," ").concat(l[2]," RG"));c&&C.push("".concat(c[0]," ").concat(c[1]," ").concat(c[2]," rg"));var w=this.data.quadPoints;w||(w=[[{x:this.rectangle[0],y:this.rectangle[3]},{x:this.rectangle[2],y:this.rectangle[3]},{x:this.rectangle[0],y:this.rectangle[1]},{x:this.rectangle[2],y:this.rectangle[1]}]]);var x,O=_createForOfIteratorHelper(w);try{for(O.s();!(x=O.n()).done;){var T=_slicedToArray(g(C,x.value),4),R=T[0],E=T[1],M=T[2],D=T[3];y=Math.min(y,R);S=Math.max(S,E);v=Math.min(v,M);_=Math.max(_,D)}}catch(t){O.e(t)}finally{O.f()}C.push("Q");var j=new d.Dict(r),L=new d.Dict(r);L.set("Subtype",d.Name.get("Form"));var N=new k.StringStream(C.join(" "));N.dict=L;j.set("Fm0",N);var U=new d.Dict(r);u&&U.set("BM",d.Name.get(u));"number"==typeof h&&U.set("CA",h);"number"==typeof m&&U.set("ca",m);var H=new d.Dict(r);H.set("GS0",U);var W=new d.Dict(r);W.set("ExtGState",H);W.set("XObject",j);var $=new d.Dict(r);$.set("Resources",W);var q=this.data.rect=[y,v,S,_];$.set("BBox",q);this.appearance=new k.StringStream("/GS0 gs /Fm0 Do");this.appearance.dict=$;this._streams.push(this.appearance,N)}}]);return MarkupAnnotation}(x);r.MarkupAnnotation=T;var R=function(t){_inherits(WidgetAnnotation,t);var r,o,m,g=_createSuper(WidgetAnnotation);function WidgetAnnotation(t){var r;_classCallCheck(this,WidgetAnnotation);r=g.call(this,t);var o=t.dict,l=r.data;r.ref=t.ref;l.annotationType=c.AnnotationType.WIDGET;void 0===l.fieldName&&(l.fieldName=r._constructFieldName(o));void 0===l.actions&&(l.actions=(0,u.collectActions)(t.xref,o,c.AnnotationActionEventType));var m=(0,u.getInheritableProperty)({dict:o,key:"V",getArray:!0});l.fieldValue=r._decodeFormValue(m);var y=(0,u.getInheritableProperty)({dict:o,key:"DV",getArray:!0});l.defaultFieldValue=r._decodeFormValue(y);void 0===m&&null!==l.defaultFieldValue&&(l.fieldValue=l.defaultFieldValue);l.alternativeText=(0,c.stringToPDFString)(o.get("TU")||"");var v=(0,u.getInheritableProperty)({dict:o,key:"DA"})||t.acroForm.get("DA");r._defaultAppearance=(0,c.isString)(v)?v:"";l.defaultAppearanceData=(0,h.parseDefaultAppearance)(r._defaultAppearance);var S=(0,u.getInheritableProperty)({dict:o,key:"FT"});l.fieldType=(0,d.isName)(S)?S.name:null;var _=(0,u.getInheritableProperty)({dict:o,key:"DR"}),k=t.acroForm.get("DR"),C=r.appearance&&r.appearance.dict.get("Resources");r._fieldResources={localResources:_,acroFormResources:k,appearanceResources:C,mergedResources:d.Dict.merge({xref:t.xref,dictArray:[_,C,k],mergeSubDicts:!0})};l.fieldFlags=(0,u.getInheritableProperty)({dict:o,key:"Ff"});(!Number.isInteger(l.fieldFlags)||l.fieldFlags<0)&&(l.fieldFlags=0);l.readOnly=r.hasFieldFlag(c.AnnotationFieldFlag.READONLY);l.hidden=r._hasFlag(l.annotationFlags,c.AnnotationFlag.HIDDEN);return r}_createClass(WidgetAnnotation,[{key:"_decodeFormValue",value:function _decodeFormValue(t){return Array.isArray(t)?t.filter((function(t){return(0,c.isString)(t)})).map((function(t){return(0,c.stringToPDFString)(t)})):(0,d.isName)(t)?(0,c.stringToPDFString)(t.name):(0,c.isString)(t)?(0,c.stringToPDFString)(t):null}},{key:"hasFieldFlag",value:function hasFieldFlag(t){return!!(this.data.fieldFlags&t)}},{key:"getOperatorList",value:function getOperatorList(t,r,o,l){var u=this;return!o||this instanceof j?this._hasText?this._getAppearance(t,r,l).then((function(h){if(u.appearance&&null===h)return _get(_getPrototypeOf(WidgetAnnotation.prototype),"getOperatorList",u).call(u,t,r,o,l);var d=new _.OperatorList;if(!u._defaultAppearance||null===h)return d;var m=[1,0,0,1,0,0],g=[0,0,u.data.rect[2]-u.data.rect[0],u.data.rect[3]-u.data.rect[1]],y=getTransformMatrix(u.data.rect,g,m);d.addOp(c.OPS.beginAnnotation,[u.data.id,u.data.rect,y,m]);var v=new k.StringStream(h);return t.getOperatorList({stream:v,task:r,resources:u._fieldResources.mergedResources,operatorList:d}).then((function(){d.addOp(c.OPS.endAnnotation,[]);return d}))})):_get(_getPrototypeOf(WidgetAnnotation.prototype),"getOperatorList",this).call(this,t,r,o,l):Promise.resolve(new _.OperatorList)}},{key:"save",value:(m=_asyncToGenerator(l.default.mark((function _callee3(t,r,o){var u,h,m,g,y,v,S,_,k,w,x,O,T,R,E;return l.default.wrap((function _callee3$(l){for(;;)switch(l.prev=l.next){case 0:if(o){l.next=2;break}return l.abrupt("return",null);case 2:u=o.get(this.data.id);if((h=u&&u.value)!==this.data.fieldValue&&void 0!==h){l.next=6;break}return l.abrupt("return",null);case 6:l.next=8;return this._getAppearance(t,r,o);case 8:if(null!==(m=l.sent)){l.next=11;break}return l.abrupt("return",null);case 11:g=t.xref;y=g.fetchIfRef(this.ref);if((0,d.isDict)(y)){l.next=15;break}return l.abrupt("return",null);case 15:v=[0,0,this.data.rect[2]-this.data.rect[0],this.data.rect[3]-this.data.rect[1]];S={path:(0,c.stringToPDFString)(y.get("T")||""),value:h};_=g.getNewRef();(k=new d.Dict(g)).set("N",_);w=g.encrypt;x=null;O=null;if(w){x=w.createCipherTransform(this.ref.num,this.ref.gen);O=w.createCipherTransform(_.num,_.gen);m=O.encryptString(m)}y.set("V",(0,c.isAscii)(h)?h:(0,c.stringToUTF16BEString)(h));y.set("AP",k);y.set("M","D:".concat((0,c.getModificationDate)()));(T=new d.Dict(g)).set("Length",m.length);T.set("Subtype",d.Name.get("Form"));T.set("Resources",this._getSaveFieldResources(g));T.set("BBox",v);R=["".concat(this.ref.num," ").concat(this.ref.gen," obj\n")];(0,C.writeDict)(y,R,x);R.push("\nendobj\n");E=["".concat(_.num," ").concat(_.gen," obj\n")];(0,C.writeDict)(T,E,O);E.push(" stream\n",m,"\nendstream\nendobj\n");return l.abrupt("return",[{ref:this.ref,data:R.join(""),xfa:S},{ref:_,data:E.join(""),xfa:null}]);case 39:case"end":return l.stop()}}),_callee3,this)}))),function save(t,r,o){return m.apply(this,arguments)})},{key:"_getAppearance",value:(o=_asyncToGenerator(l.default.mark((function _callee4(t,r,o){var u,d,m,g,y,v,S,_,k,C,w,x,O,T,R,E,M,D;return l.default.wrap((function _callee4$(l){for(;;)switch(l.prev=l.next){case 0:u=this.hasFieldFlag(c.AnnotationFieldFlag.PASSWORD);if(o&&!u){l.next=3;break}return l.abrupt("return",null);case 3:d=o.get(this.data.id);if(void 0!==(m=d&&d.value)){l.next=7;break}return l.abrupt("return",null);case 7:if(""!==(m=m.trim())){l.next=10;break}return l.abrupt("return","");case 10:g=-1;this.data.multiLine&&(g=m.split(/\r\n|\r|\n/).length);v=y=2;S=this.data.rect[3]-this.data.rect[1];_=this.data.rect[2]-this.data.rect[0];this._defaultAppearance||(this.data.defaultAppearanceData=(0,h.parseDefaultAppearance)(this._defaultAppearance="/Helvetica 0 Tf 0 g"));k=this._computeFontSize(S,g),C=_slicedToArray(k,2),w=C[0],x=C[1];l.next=20;return this._getFontData(t,r);case 20:O=l.sent;T=O.descent;isNaN(T)&&(T=0);R=y+Math.abs(T)*x;E=this.data.textAlignment;if(!this.data.multiLine){l.next=27;break}return l.abrupt("return",this._getMultilineAppearance(w,m,O,x,_,S,E,v,R));case 27:M=O.encodeString(m).join("");if(!this.data.comb){l.next=30;break}return l.abrupt("return",this._getCombAppearance(w,O,M,_,v,R));case 30:if(!(0===E||E>2)){l.next=32;break}return l.abrupt("return","/Tx BMC q BT "+w+" 1 0 0 1 ".concat(v," ").concat(R," Tm (").concat((0,c.escapeString)(M),") Tj")+" ET Q EMC");case 32:D=this._renderText(M,O,x,_,E,v,R);return l.abrupt("return","/Tx BMC q BT "+w+" 1 0 0 1 0 0 Tm ".concat(D)+" ET Q EMC");case 34:case"end":return l.stop()}}),_callee4,this)}))),function _getAppearance(t,r,l){return o.apply(this,arguments)})},{key:"_getFontData",value:(r=_asyncToGenerator(l.default.mark((function _callee5(t,r){var o,c,u,h,m;return l.default.wrap((function _callee5$(l){for(;;)switch(l.prev=l.next){case 0:o=new _.OperatorList;c={font:null,clone:function clone(){return this}};u=this.data.defaultAppearanceData,h=u.fontName,m=u.fontSize;l.next=5;return t.handleSetFont(this._fieldResources.mergedResources,[h&&d.Name.get(h),m],null,o,r,c,null);case 5:return l.abrupt("return",c.font);case 6:case"end":return l.stop()}}),_callee5,this)}))),function _getFontData(t,o){return r.apply(this,arguments)})},{key:"_computeFontSize",value:function _computeFontSize(t,r){var o=this.data.defaultAppearanceData.fontSize;if(!o){var l=function roundWithOneDigit(t){return Math.round(10*t)/10};if(-1===r)o=l(.8*t);else{var c=(o=10)/.8,u=Math.round(t/c);o=l(.8*(c=t/(u=Math.max(u,r))))}var d=this.data.defaultAppearanceData,m=d.fontName,g=d.fontColor;this._defaultAppearance=(0,h.createDefaultAppearance)({fontSize:o,fontName:m,fontColor:g})}return[this._defaultAppearance,o]}},{key:"_renderText",value:function _renderText(t,r,o,l,u,h,d){var m,g,y=o/1e3,v=0,S=_createForOfIteratorHelper(r.charsToGlyphs(t));try{for(S.s();!(m=S.n()).done;){v+=m.value.width*y}}catch(t){S.e(t)}finally{S.f()}g=(g=1===u?(l-v)/2:2===u?l-v-h:h).toFixed(2);d=d.toFixed(2);return"".concat(g," ").concat(d," Td (").concat((0,c.escapeString)(t),") Tj")}},{key:"_getSaveFieldResources",value:function _getSaveFieldResources(t){var r=this._fieldResources,o=r.localResources,l=r.appearanceResources,c=r.acroFormResources,u=this.data.defaultAppearanceData&&this.data.defaultAppearanceData.fontName;if(!u)return o||d.Dict.empty;for(var h=0,m=[o,l];h<m.length;h++){var g=m[h];if(g instanceof d.Dict){var y=g.get("Font");if(y instanceof d.Dict&&y.has(u))return g}}if(c instanceof d.Dict){var v=c.get("Font");if(v instanceof d.Dict&&v.has(u)){var S=new d.Dict(t);S.set(u,v.getRaw(u));var _=new d.Dict(t);_.set("Font",S);return d.Dict.merge({xref:t,dictArray:[_,o],mergeSubDicts:!0})}}return o||d.Dict.empty}},{key:"getFieldObject",value:function getFieldObject(){return null}}]);return WidgetAnnotation}(x),E=function(t){_inherits(TextWidgetAnnotation,t);var r=_createSuper(TextWidgetAnnotation);function TextWidgetAnnotation(t){var o;_classCallCheck(this,TextWidgetAnnotation);(o=r.call(this,t))._hasText=!0;var l=t.dict;(0,c.isString)(o.data.fieldValue)||(o.data.fieldValue="");var h=(0,u.getInheritableProperty)({dict:l,key:"Q"});(!Number.isInteger(h)||h<0||h>2)&&(h=null);o.data.textAlignment=h;var d=(0,u.getInheritableProperty)({dict:l,key:"MaxLen"});(!Number.isInteger(d)||d<0)&&(d=null);o.data.maxLen=d;o.data.multiLine=o.hasFieldFlag(c.AnnotationFieldFlag.MULTILINE);o.data.comb=o.hasFieldFlag(c.AnnotationFieldFlag.COMB)&&!o.hasFieldFlag(c.AnnotationFieldFlag.MULTILINE)&&!o.hasFieldFlag(c.AnnotationFieldFlag.PASSWORD)&&!o.hasFieldFlag(c.AnnotationFieldFlag.FILESELECT)&&null!==o.data.maxLen;return o}_createClass(TextWidgetAnnotation,[{key:"_getCombAppearance",value:function _getCombAppearance(t,r,o,l,u,h){var d,m=(l/this.data.maxLen).toFixed(2),g=[],y=_createForOfIteratorHelper(r.getCharPositions(o));try{for(y.s();!(d=y.n()).done;){var v=_slicedToArray(d.value,2),S=v[0],_=v[1];g.push("(".concat((0,c.escapeString)(o.substring(S,_)),") Tj"))}}catch(t){y.e(t)}finally{y.f()}var k=g.join(" ".concat(m," 0 Td "));return"/Tx BMC q BT "+t+" 1 0 0 1 ".concat(u," ").concat(h," Tm ").concat(k)+" ET Q EMC"}},{key:"_getMultilineAppearance",value:function _getMultilineAppearance(t,r,o,l,c,u,h,d,m){var g,y=[],v=c-2*d,S=_createForOfIteratorHelper(r.split(/\r\n|\r|\n/));try{for(S.s();!(g=S.n()).done;){var _,k=g.value,C=_createForOfIteratorHelper(this._splitLine(k,o,l,v));try{for(C.s();!(_=C.n()).done;){var w=_.value,x=0===y.length?d:0;y.push(this._renderText(w,o,l,c,h,x,-l))}}catch(t){C.e(t)}finally{C.f()}}}catch(t){S.e(t)}finally{S.f()}var O=y.join("\n");return"/Tx BMC q BT "+t+" 1 0 0 1 0 ".concat(u," Tm ").concat(O)+" ET Q EMC"}},{key:"_splitLine",value:function _splitLine(t,r,o,l){t=r.encodeString(t).join("");var c=r.charsToGlyphs(t);if(c.length<=1)return[t];for(var u=r.getCharPositions(t),h=o/1e3,d=[],m=-1,g=-1,y=-1,v=0,S=0,_=0,k=c.length;_<k;_++){var C=_slicedToArray(u[_],2),w=C[0],x=C[1],O=c[_],T=O.width*h;if(" "===O.unicode)if(S+T>l){d.push(t.substring(v,w));v=w;S=T;m=-1;y=-1}else{S+=T;m=w;g=x;y=_}else if(S+T>l)if(-1!==m){d.push(t.substring(v,g));v=g;_=y+1;m=-1;S=0}else{d.push(t.substring(v,w));v=w;S=T}else S+=T}v<t.length&&d.push(t.substring(v,t.length));return d}},{key:"getFieldObject",value:function getFieldObject(){return{id:this.data.id,value:this.data.fieldValue,defaultValue:this.data.defaultFieldValue,multiline:this.data.multiLine,password:this.hasFieldFlag(c.AnnotationFieldFlag.PASSWORD),charLimit:this.data.maxLen,comb:this.data.comb,editable:!this.data.readOnly,hidden:this.data.hidden,name:this.data.fieldName,rect:this.data.rect,actions:this.data.actions,page:this.data.pageIndex,strokeColor:this.data.borderColor,fillColor:this.data.backgroundColor,type:"text"}}}]);return TextWidgetAnnotation}(R),M=function(t){_inherits(ButtonWidgetAnnotation,t);var r,o,u,h,m=_createSuper(ButtonWidgetAnnotation);function ButtonWidgetAnnotation(t){var r;_classCallCheck(this,ButtonWidgetAnnotation);(r=m.call(this,t)).checkedAppearance=null;r.uncheckedAppearance=null;r.data.checkBox=!r.hasFieldFlag(c.AnnotationFieldFlag.RADIO)&&!r.hasFieldFlag(c.AnnotationFieldFlag.PUSHBUTTON);r.data.radioButton=r.hasFieldFlag(c.AnnotationFieldFlag.RADIO)&&!r.hasFieldFlag(c.AnnotationFieldFlag.PUSHBUTTON);r.data.pushButton=r.hasFieldFlag(c.AnnotationFieldFlag.PUSHBUTTON);r.data.isTooltipOnly=!1;r.data.checkBox?r._processCheckBox(t):r.data.radioButton?r._processRadioButton(t):r.data.pushButton?r._processPushButton(t):(0,c.warn)("Invalid field flags for button widget annotation");return r}_createClass(ButtonWidgetAnnotation,[{key:"getOperatorList",value:(h=_asyncToGenerator(l.default.mark((function _callee6(t,r,o,c){var u,h,d,m,g;return l.default.wrap((function _callee6$(l){for(;;)switch(l.prev=l.next){case 0:if(!this.data.pushButton){l.next=2;break}return l.abrupt("return",_get(_getPrototypeOf(ButtonWidgetAnnotation.prototype),"getOperatorList",this).call(this,t,r,!1,c));case 2:u=null;if(c){h=c.get(this.data.id);u=h?h.value:null}if(null!==u){l.next=8;break}if(!this.appearance){l.next=7;break}return l.abrupt("return",_get(_getPrototypeOf(ButtonWidgetAnnotation.prototype),"getOperatorList",this).call(this,t,r,o,c));case 7:u=this.data.checkBox?this.data.fieldValue===this.data.exportValue:this.data.fieldValue===this.data.buttonValue;case 8:if(!(d=u?this.checkedAppearance:this.uncheckedAppearance)){l.next=15;break}m=this.appearance;this.appearance=d;g=_get(_getPrototypeOf(ButtonWidgetAnnotation.prototype),"getOperatorList",this).call(this,t,r,o,c);this.appearance=m;return l.abrupt("return",g);case 15:return l.abrupt("return",new _.OperatorList);case 16:case"end":return l.stop()}}),_callee6,this)}))),function getOperatorList(t,r,o,l){return h.apply(this,arguments)})},{key:"save",value:(u=_asyncToGenerator(l.default.mark((function _callee7(t,r,o){return l.default.wrap((function _callee7$(l){for(;;)switch(l.prev=l.next){case 0:if(!this.data.checkBox){l.next=2;break}return l.abrupt("return",this._saveCheckbox(t,r,o));case 2:if(!this.data.radioButton){l.next=4;break}return l.abrupt("return",this._saveRadioButton(t,r,o));case 4:return l.abrupt("return",null);case 5:case"end":return l.stop()}}),_callee7,this)}))),function save(t,r,o){return u.apply(this,arguments)})},{key:"_saveCheckbox",value:(o=_asyncToGenerator(l.default.mark((function _callee8(t,r,o){var u,h,m,g,y,v,S,_;return l.default.wrap((function _callee8$(r){for(;;)switch(r.prev=r.next){case 0:if(o){r.next=2;break}return r.abrupt("return",null);case 2:u=o.get(this.data.id);if(void 0!==(h=u&&u.value)){r.next=6;break}return r.abrupt("return",null);case 6:if(this.data.fieldValue===this.data.exportValue!==h){r.next=9;break}return r.abrupt("return",null);case 9:m=t.xref.fetchIfRef(this.ref);if((0,d.isDict)(m)){r.next=12;break}return r.abrupt("return",null);case 12:g={path:(0,c.stringToPDFString)(m.get("T")||""),value:h?this.data.exportValue:""};y=d.Name.get(h?this.data.exportValue:"Off");m.set("V",y);m.set("AS",y);m.set("M","D:".concat((0,c.getModificationDate)()));v=t.xref.encrypt;S=null;v&&(S=v.createCipherTransform(this.ref.num,this.ref.gen));_=["".concat(this.ref.num," ").concat(this.ref.gen," obj\n")];(0,C.writeDict)(m,_,S);_.push("\nendobj\n");return r.abrupt("return",[{ref:this.ref,data:_.join(""),xfa:g}]);case 24:case"end":return r.stop()}}),_callee8,this)}))),function _saveCheckbox(t,r,l){return o.apply(this,arguments)})},{key:"_saveRadioButton",value:(r=_asyncToGenerator(l.default.mark((function _callee9(t,r,o){var u,h,m,g,y,v,S,_,k,w,x,O;return l.default.wrap((function _callee9$(r){for(;;)switch(r.prev=r.next){case 0:if(o){r.next=2;break}return r.abrupt("return",null);case 2:u=o.get(this.data.id);if(void 0!==(h=u&&u.value)){r.next=6;break}return r.abrupt("return",null);case 6:if(this.data.fieldValue===this.data.buttonValue!==h){r.next=9;break}return r.abrupt("return",null);case 9:m=t.xref.fetchIfRef(this.ref);if((0,d.isDict)(m)){r.next=12;break}return r.abrupt("return",null);case 12:g={path:(0,c.stringToPDFString)(m.get("T")||""),value:h?this.data.buttonValue:""};y=d.Name.get(h?this.data.buttonValue:"Off");v=null;S=t.xref.encrypt;if(h)if((0,d.isRef)(this.parent)){_=t.xref.fetch(this.parent);k=null;S&&(k=S.createCipherTransform(this.parent.num,this.parent.gen));_.set("V",y);v=["".concat(this.parent.num," ").concat(this.parent.gen," obj\n")];(0,C.writeDict)(_,v,k);v.push("\nendobj\n")}else(0,d.isDict)(this.parent)&&this.parent.set("V",y);m.set("AS",y);m.set("M","D:".concat((0,c.getModificationDate)()));w=null;S&&(w=S.createCipherTransform(this.ref.num,this.ref.gen));x=["".concat(this.ref.num," ").concat(this.ref.gen," obj\n")];(0,C.writeDict)(m,x,w);x.push("\nendobj\n");O=[{ref:this.ref,data:x.join(""),xfa:g}];null!==v&&O.push({ref:this.parent,data:v.join(""),xfa:null});return r.abrupt("return",O);case 27:case"end":return r.stop()}}),_callee9,this)}))),function _saveRadioButton(t,o,l){return r.apply(this,arguments)})},{key:"_getDefaultCheckedAppearance",value:function _getDefaultCheckedAppearance(t,r){var o,l,u=this.data.rect[2]-this.data.rect[0],h=this.data.rect[3]-this.data.rect[1],m=[0,0,u,h],g=.8*Math.min(u,h);if("check"===r){o={width:.755*g,height:.705*g};l="3"}else if("disc"===r){o={width:.791*g,height:.705*g};l="l"}else(0,c.unreachable)("_getDefaultCheckedAppearance - unsupported type: ".concat(r));var y=(u-o.width)/2,v=(h-o.height)/2,S="q BT /PdfJsZaDb ".concat(g," Tf 0 g ").concat(y," ").concat(v," Td (").concat(l,") Tj ET Q"),_=new d.Dict(t.xref);_.set("FormType",1);_.set("Subtype",d.Name.get("Form"));_.set("Type",d.Name.get("XObject"));_.set("BBox",m);_.set("Matrix",[1,0,0,1,0,0]);_.set("Length",S.length);var C=new d.Dict(t.xref),w=new d.Dict(t.xref);w.set("PdfJsZaDb",this.fallbackFontDict);C.set("Font",w);_.set("Resources",C);this.checkedAppearance=new k.StringStream(S);this.checkedAppearance.dict=_;this._streams.push(this.checkedAppearance)}},{key:"_processCheckBox",value:function _processCheckBox(t){var r=t.dict.get("AP");if((0,d.isDict)(r)){var o=r.get("N");if((0,d.isDict)(o)){var l=this._decodeFormValue(t.dict.get("AS"));"string"==typeof l&&(this.data.fieldValue=l);var c=null!==this.data.fieldValue&&"Off"!==this.data.fieldValue?this.data.fieldValue:"Yes",u=o.getKeys();if(0===u.length)u.push("Off",c);else if(1===u.length)"Off"===u[0]?u.push(c):u.unshift("Off");else if(u.includes(c)){u.length=0;u.push("Off",c)}else{var h=u.find((function(t){return"Off"!==t}));u.length=0;u.push("Off",h)}u.includes(this.data.fieldValue)||(this.data.fieldValue="Off");this.data.exportValue=u[1];this.checkedAppearance=o.get(this.data.exportValue)||null;this.uncheckedAppearance=o.get("Off")||null;this.checkedAppearance?this._streams.push(this.checkedAppearance):this._getDefaultCheckedAppearance(t,"check");this.uncheckedAppearance&&this._streams.push(this.uncheckedAppearance);this._fallbackFontDict=this.fallbackFontDict}}}},{key:"_processRadioButton",value:function _processRadioButton(t){this.data.fieldValue=this.data.buttonValue=null;var r=t.dict.get("Parent");if((0,d.isDict)(r)){this.parent=t.dict.getRaw("Parent");var o=r.get("V");(0,d.isName)(o)&&(this.data.fieldValue=this._decodeFormValue(o))}var l=t.dict.get("AP");if((0,d.isDict)(l)){var c=l.get("N");if((0,d.isDict)(c)){var u,h=_createForOfIteratorHelper(c.getKeys());try{for(h.s();!(u=h.n()).done;){var m=u.value;if("Off"!==m){this.data.buttonValue=this._decodeFormValue(m);break}}}catch(t){h.e(t)}finally{h.f()}this.checkedAppearance=c.get(this.data.buttonValue)||null;this.uncheckedAppearance=c.get("Off")||null;this.checkedAppearance?this._streams.push(this.checkedAppearance):this._getDefaultCheckedAppearance(t,"disc");this.uncheckedAppearance&&this._streams.push(this.uncheckedAppearance);this._fallbackFontDict=this.fallbackFontDict}}}},{key:"_processPushButton",value:function _processPushButton(t){if(t.dict.has("A")||t.dict.has("AA")||this.data.alternativeText){this.data.isTooltipOnly=!t.dict.has("A")&&!t.dict.has("AA");g.Catalog.parseDestDictionary({destDict:t.dict,resultObj:this.data,docBaseUrl:t.pdfManager.docBaseUrl})}else(0,c.warn)("Push buttons without action dictionaries are not supported")}},{key:"getFieldObject",value:function getFieldObject(){var t,r="button";if(this.data.checkBox){r="checkbox";t=this.data.exportValue}else if(this.data.radioButton){r="radiobutton";t=this.data.buttonValue}return{id:this.data.id,value:this.data.fieldValue||"Off",defaultValue:this.data.defaultFieldValue,exportValues:t,editable:!this.data.readOnly,name:this.data.fieldName,rect:this.data.rect,hidden:this.data.hidden,actions:this.data.actions,page:this.data.pageIndex,strokeColor:this.data.borderColor,fillColor:this.data.backgroundColor,type:r}}},{key:"fallbackFontDict",get:function get(){var t=new d.Dict;t.set("BaseFont",d.Name.get("ZapfDingbats"));t.set("Type",d.Name.get("FallbackType"));t.set("Subtype",d.Name.get("FallbackType"));t.set("Encoding",d.Name.get("ZapfDingbatsEncoding"));return(0,c.shadow)(this,"fallbackFontDict",t)}}]);return ButtonWidgetAnnotation}(R),D=function(t){_inherits(ChoiceWidgetAnnotation,t);var r=_createSuper(ChoiceWidgetAnnotation);function ChoiceWidgetAnnotation(t){var o;_classCallCheck(this,ChoiceWidgetAnnotation);(o=r.call(this,t)).data.options=[];var l=(0,u.getInheritableProperty)({dict:t.dict,key:"Opt"});if(Array.isArray(l))for(var h=t.xref,d=0,m=l.length;d<m;d++){var g=h.fetchIfRef(l[d]),y=Array.isArray(g);o.data.options[d]={exportValue:o._decodeFormValue(y?h.fetchIfRef(g[0]):g),displayValue:o._decodeFormValue(y?h.fetchIfRef(g[1]):g)}}(0,c.isString)(o.data.fieldValue)?o.data.fieldValue=[o.data.fieldValue]:o.data.fieldValue||(o.data.fieldValue=[]);o.data.combo=o.hasFieldFlag(c.AnnotationFieldFlag.COMBO);o.data.multiSelect=o.hasFieldFlag(c.AnnotationFieldFlag.MULTISELECT);o._hasText=!0;return o}_createClass(ChoiceWidgetAnnotation,[{key:"getFieldObject",value:function getFieldObject(){var t=this.data.combo?"combobox":"listbox",r=this.data.fieldValue.length>0?this.data.fieldValue[0]:null;return{id:this.data.id,value:r,defaultValue:this.data.defaultFieldValue,editable:!this.data.readOnly,name:this.data.fieldName,rect:this.data.rect,numItems:this.data.fieldValue.length,multipleSelection:this.data.multiSelect,hidden:this.data.hidden,actions:this.data.actions,items:this.data.options,page:this.data.pageIndex,strokeColor:this.data.borderColor,fillColor:this.data.backgroundColor,type:t}}}]);return ChoiceWidgetAnnotation}(R),j=function(t){_inherits(SignatureWidgetAnnotation,t);var r=_createSuper(SignatureWidgetAnnotation);function SignatureWidgetAnnotation(t){var o;_classCallCheck(this,SignatureWidgetAnnotation);(o=r.call(this,t)).data.fieldValue=null;return o}_createClass(SignatureWidgetAnnotation,[{key:"getFieldObject",value:function getFieldObject(){return{id:this.data.id,value:null,page:this.data.pageIndex,type:"signature"}}}]);return SignatureWidgetAnnotation}(R),L=function(t){_inherits(TextAnnotation,t);var r=_createSuper(TextAnnotation);function TextAnnotation(t){var o;_classCallCheck(this,TextAnnotation);o=r.call(this,t);var l=t.dict;o.data.annotationType=c.AnnotationType.TEXT;if(o.data.hasAppearance)o.data.name="NoIcon";else{o.data.rect[1]=o.data.rect[3]-22;o.data.rect[2]=o.data.rect[0]+22;o.data.name=l.has("Name")?l.get("Name").name:"Note"}if(l.has("State")){o.data.state=l.get("State")||null;o.data.stateModel=l.get("StateModel")||null}else{o.data.state=null;o.data.stateModel=null}return o}return TextAnnotation}(T),N=function(t){_inherits(LinkAnnotation,t);var r=_createSuper(LinkAnnotation);function LinkAnnotation(t){var o;_classCallCheck(this,LinkAnnotation);(o=r.call(this,t)).data.annotationType=c.AnnotationType.LINK;var l=getQuadPoints(t.dict,o.rectangle);l&&(o.data.quadPoints=l);g.Catalog.parseDestDictionary({destDict:t.dict,resultObj:o.data,docBaseUrl:t.pdfManager.docBaseUrl});return o}return LinkAnnotation}(x),U=function(t){_inherits(PopupAnnotation,t);var r=_createSuper(PopupAnnotation);function PopupAnnotation(t){var o;_classCallCheck(this,PopupAnnotation);(o=r.call(this,t)).data.annotationType=c.AnnotationType.POPUP;var l=t.dict.get("Parent");if(!l){(0,c.warn)("Popup annotation has a missing or invalid parent annotation.");return _possibleConstructorReturn(o)}var u=l.get("Subtype");o.data.parentType=(0,d.isName)(u)?u.name:null;var h=t.dict.getRaw("Parent");o.data.parentId=(0,d.isRef)(h)?h.toString():null;var m=l.getArray("Rect");Array.isArray(m)&&4===m.length?o.data.parentRect=c.Util.normalizeRect(m):o.data.parentRect=[0,0,0,0];var g=l.get("RT");(0,d.isName)(g,c.AnnotationReplyType.GROUP)&&(l=l.get("IRT"));if(l.has("M")){o.setModificationDate(l.get("M"));o.data.modificationDate=o.modificationDate}else o.data.modificationDate=null;if(l.has("C")){o.setColor(l.getArray("C"));o.data.color=o.color}else o.data.color=null;if(!o.viewable){var y=l.get("F");o._isViewable(y)&&o.setFlags(y)}o.setTitle(l.get("T"));o.data.titleObj=o._title;o.setContents(l.get("Contents"));o.data.contentsObj=o._contents;return o}return PopupAnnotation}(x),H=function(t){_inherits(FreeTextAnnotation,t);var r=_createSuper(FreeTextAnnotation);function FreeTextAnnotation(t){var o;_classCallCheck(this,FreeTextAnnotation);(o=r.call(this,t)).data.annotationType=c.AnnotationType.FREETEXT;return o}return FreeTextAnnotation}(T),W=function(t){_inherits(LineAnnotation,t);var r=_createSuper(LineAnnotation);function LineAnnotation(t){var o;_classCallCheck(this,LineAnnotation);(o=r.call(this,t)).data.annotationType=c.AnnotationType.LINE;var l=t.dict.getArray("L");o.data.lineCoordinates=c.Util.normalizeRect(l);if(!o.appearance){var u=o.color?Array.from(o.color).map((function(t){return t/255})):[0,0,0],h=t.dict.get("CA"),d=null,m=t.dict.getArray("IC");m&&(d=(m=getRgbColor(m,null))?Array.from(m).map((function(t){return t/255})):null);var g=d?h:null,y=o.borderStyle.width||1,v=2*y,S=[o.data.lineCoordinates[0]-v,o.data.lineCoordinates[1]-v,o.data.lineCoordinates[2]+v,o.data.lineCoordinates[3]+v];c.Util.intersect(o.rectangle,S)||(o.rectangle=S);o._setDefaultAppearance({xref:t.xref,extra:"".concat(y," w"),strokeColor:u,fillColor:d,strokeAlpha:h,fillAlpha:g,pointsCallback:function pointsCallback(t,r){t.push("".concat(l[0]," ").concat(l[1]," m"),"".concat(l[2]," ").concat(l[3]," l"),"S");return[r[0].x-y,r[1].x+y,r[3].y-y,r[1].y+y]}})}return o}return LineAnnotation}(T),$=function(t){_inherits(SquareAnnotation,t);var r=_createSuper(SquareAnnotation);function SquareAnnotation(t){var o;_classCallCheck(this,SquareAnnotation);(o=r.call(this,t)).data.annotationType=c.AnnotationType.SQUARE;if(!o.appearance){var l=o.color?Array.from(o.color).map((function(t){return t/255})):[0,0,0],u=t.dict.get("CA"),h=null,d=t.dict.getArray("IC");if(d){d=getRgbColor(d,null);h=d?Array.from(d).map((function(t){return t/255})):null}var m=h?u:null;o._setDefaultAppearance({xref:t.xref,extra:"".concat(o.borderStyle.width," w"),strokeColor:l,fillColor:h,strokeAlpha:u,fillAlpha:m,pointsCallback:function pointsCallback(t,r){var l=r[2].x+o.borderStyle.width/2,c=r[2].y+o.borderStyle.width/2,u=r[3].x-r[2].x-o.borderStyle.width,d=r[1].y-r[3].y-o.borderStyle.width;t.push("".concat(l," ").concat(c," ").concat(u," ").concat(d," re"));h?t.push("B"):t.push("S");return[r[0].x,r[1].x,r[3].y,r[1].y]}})}return o}return SquareAnnotation}(T),q=function(t){_inherits(CircleAnnotation,t);var r=_createSuper(CircleAnnotation);function CircleAnnotation(t){var o;_classCallCheck(this,CircleAnnotation);(o=r.call(this,t)).data.annotationType=c.AnnotationType.CIRCLE;if(!o.appearance){var l=o.color?Array.from(o.color).map((function(t){return t/255})):[0,0,0],u=t.dict.get("CA"),h=null,d=t.dict.getArray("IC");if(d){d=getRgbColor(d,null);h=d?Array.from(d).map((function(t){return t/255})):null}var m=h?u:null,g=4/3*Math.tan(Math.PI/8);o._setDefaultAppearance({xref:t.xref,extra:"".concat(o.borderStyle.width," w"),strokeColor:l,fillColor:h,strokeAlpha:u,fillAlpha:m,pointsCallback:function pointsCallback(t,r){var l=r[0].x+o.borderStyle.width/2,c=r[0].y-o.borderStyle.width/2,u=r[3].x-o.borderStyle.width/2,d=r[3].y+o.borderStyle.width/2,m=l+(u-l)/2,y=c+(d-c)/2,v=(u-l)/2*g,S=(d-c)/2*g;t.push("".concat(m," ").concat(d," m"),"".concat(m+v," ").concat(d," ").concat(u," ").concat(y+S," ").concat(u," ").concat(y," c"),"".concat(u," ").concat(y-S," ").concat(m+v," ").concat(c," ").concat(m," ").concat(c," c"),"".concat(m-v," ").concat(c," ").concat(l," ").concat(y-S," ").concat(l," ").concat(y," c"),"".concat(l," ").concat(y+S," ").concat(m-v," ").concat(d," ").concat(m," ").concat(d," c"),"h");h?t.push("B"):t.push("S");return[r[0].x,r[1].x,r[3].y,r[1].y]}})}return o}return CircleAnnotation}(T),X=function(t){_inherits(PolylineAnnotation,t);var r=_createSuper(PolylineAnnotation);function PolylineAnnotation(t){var o;_classCallCheck(this,PolylineAnnotation);(o=r.call(this,t)).data.annotationType=c.AnnotationType.POLYLINE;o.data.vertices=[];var l=t.dict.getArray("Vertices");if(!Array.isArray(l))return _possibleConstructorReturn(o);for(var u=0,h=l.length;u<h;u+=2)o.data.vertices.push({x:l[u],y:l[u+1]});if(!o.appearance){var d,m=o.color?Array.from(o.color).map((function(t){return t/255})):[0,0,0],g=t.dict.get("CA"),y=o.borderStyle.width||1,v=2*y,S=[1/0,1/0,-1/0,-1/0],_=_createForOfIteratorHelper(o.data.vertices);try{for(_.s();!(d=_.n()).done;){var k=d.value;S[0]=Math.min(S[0],k.x-v);S[1]=Math.min(S[1],k.y-v);S[2]=Math.max(S[2],k.x+v);S[3]=Math.max(S[3],k.y+v)}}catch(t){_.e(t)}finally{_.f()}c.Util.intersect(o.rectangle,S)||(o.rectangle=S);o._setDefaultAppearance({xref:t.xref,extra:"".concat(y," w"),strokeColor:m,strokeAlpha:g,pointsCallback:function pointsCallback(t,r){for(var l=o.data.vertices,c=0,u=l.length;c<u;c++)t.push("".concat(l[c].x," ").concat(l[c].y," ").concat(0===c?"m":"l"));t.push("S");return[r[0].x,r[1].x,r[3].y,r[1].y]}})}return o}return PolylineAnnotation}(T),z=function(t){_inherits(PolygonAnnotation,t);var r=_createSuper(PolygonAnnotation);function PolygonAnnotation(t){var o;_classCallCheck(this,PolygonAnnotation);(o=r.call(this,t)).data.annotationType=c.AnnotationType.POLYGON;return o}return PolygonAnnotation}(X),G=function(t){_inherits(CaretAnnotation,t);var r=_createSuper(CaretAnnotation);function CaretAnnotation(t){var o;_classCallCheck(this,CaretAnnotation);(o=r.call(this,t)).data.annotationType=c.AnnotationType.CARET;return o}return CaretAnnotation}(T),V=function(t){_inherits(InkAnnotation,t);var r=_createSuper(InkAnnotation);function InkAnnotation(t){var o;_classCallCheck(this,InkAnnotation);(o=r.call(this,t)).data.annotationType=c.AnnotationType.INK;o.data.inkLists=[];var l=t.dict.getArray("InkList");if(!Array.isArray(l))return _possibleConstructorReturn(o);for(var u=t.xref,h=0,d=l.length;h<d;++h){o.data.inkLists.push([]);for(var m=0,g=l[h].length;m<g;m+=2)o.data.inkLists[h].push({x:u.fetchIfRef(l[h][m]),y:u.fetchIfRef(l[h][m+1])})}if(!o.appearance){var y,v=o.color?Array.from(o.color).map((function(t){return t/255})):[0,0,0],S=t.dict.get("CA"),_=o.borderStyle.width||1,k=2*_,C=[1/0,1/0,-1/0,-1/0],w=_createForOfIteratorHelper(o.data.inkLists);try{for(w.s();!(y=w.n()).done;){var x,O=_createForOfIteratorHelper(y.value);try{for(O.s();!(x=O.n()).done;){var T=x.value;C[0]=Math.min(C[0],T.x-k);C[1]=Math.min(C[1],T.y-k);C[2]=Math.max(C[2],T.x+k);C[3]=Math.max(C[3],T.y+k)}}catch(t){O.e(t)}finally{O.f()}}}catch(t){w.e(t)}finally{w.f()}c.Util.intersect(o.rectangle,C)||(o.rectangle=C);o._setDefaultAppearance({xref:t.xref,extra:"".concat(_," w"),strokeColor:v,strokeAlpha:S,pointsCallback:function pointsCallback(t,r){var l,c=_createForOfIteratorHelper(o.data.inkLists);try{for(c.s();!(l=c.n()).done;){for(var u=l.value,h=0,d=u.length;h<d;h++)t.push("".concat(u[h].x," ").concat(u[h].y," ").concat(0===h?"m":"l"));t.push("S")}}catch(t){c.e(t)}finally{c.f()}return[r[0].x,r[1].x,r[3].y,r[1].y]}})}return o}return InkAnnotation}(T),Y=function(t){_inherits(HighlightAnnotation,t);var r=_createSuper(HighlightAnnotation);function HighlightAnnotation(t){var o;_classCallCheck(this,HighlightAnnotation);(o=r.call(this,t)).data.annotationType=c.AnnotationType.HIGHLIGHT;if(o.data.quadPoints=getQuadPoints(t.dict,null)){var l=o.appearance&&o.appearance.dict.get("Resources");if(!o.appearance||!l||!l.has("ExtGState")){o.appearance&&(0,c.warn)("HighlightAnnotation - ignoring built-in appearance stream.");var u=o.color?Array.from(o.color).map((function(t){return t/255})):[1,1,0],h=t.dict.get("CA");o._setDefaultAppearance({xref:t.xref,fillColor:u,blendMode:"Multiply",fillAlpha:h,pointsCallback:function pointsCallback(t,r){t.push("".concat(r[0].x," ").concat(r[0].y," m"),"".concat(r[1].x," ").concat(r[1].y," l"),"".concat(r[3].x," ").concat(r[3].y," l"),"".concat(r[2].x," ").concat(r[2].y," l"),"f");return[r[0].x,r[1].x,r[3].y,r[1].y]}})}}else o.data.hasPopup=!1;return o}return HighlightAnnotation}(T),K=function(t){_inherits(UnderlineAnnotation,t);var r=_createSuper(UnderlineAnnotation);function UnderlineAnnotation(t){var o;_classCallCheck(this,UnderlineAnnotation);(o=r.call(this,t)).data.annotationType=c.AnnotationType.UNDERLINE;if(o.data.quadPoints=getQuadPoints(t.dict,null)){if(!o.appearance){var l=o.color?Array.from(o.color).map((function(t){return t/255})):[0,0,0],u=t.dict.get("CA");o._setDefaultAppearance({xref:t.xref,extra:"[] 0 d 1 w",strokeColor:l,strokeAlpha:u,pointsCallback:function pointsCallback(t,r){t.push("".concat(r[2].x," ").concat(r[2].y," m"),"".concat(r[3].x," ").concat(r[3].y," l"),"S");return[r[0].x,r[1].x,r[3].y,r[1].y]}})}}else o.data.hasPopup=!1;return o}return UnderlineAnnotation}(T),J=function(t){_inherits(SquigglyAnnotation,t);var r=_createSuper(SquigglyAnnotation);function SquigglyAnnotation(t){var o;_classCallCheck(this,SquigglyAnnotation);(o=r.call(this,t)).data.annotationType=c.AnnotationType.SQUIGGLY;if(o.data.quadPoints=getQuadPoints(t.dict,null)){if(!o.appearance){var l=o.color?Array.from(o.color).map((function(t){return t/255})):[0,0,0],u=t.dict.get("CA");o._setDefaultAppearance({xref:t.xref,extra:"[] 0 d 1 w",strokeColor:l,strokeAlpha:u,pointsCallback:function pointsCallback(t,r){var o=(r[0].y-r[2].y)/6,l=o,c=r[2].x,u=r[2].y,h=r[3].x;t.push("".concat(c," ").concat(u+l," m"));do{c+=2;l=0===l?o:0;t.push("".concat(c," ").concat(u+l," l"))}while(c<h);t.push("S");return[r[2].x,h,u-2*o,u+2*o]}})}}else o.data.hasPopup=!1;return o}return SquigglyAnnotation}(T),Q=function(t){_inherits(StrikeOutAnnotation,t);var r=_createSuper(StrikeOutAnnotation);function StrikeOutAnnotation(t){var o;_classCallCheck(this,StrikeOutAnnotation);(o=r.call(this,t)).data.annotationType=c.AnnotationType.STRIKEOUT;if(o.data.quadPoints=getQuadPoints(t.dict,null)){if(!o.appearance){var l=o.color?Array.from(o.color).map((function(t){return t/255})):[0,0,0],u=t.dict.get("CA");o._setDefaultAppearance({xref:t.xref,extra:"[] 0 d 1 w",strokeColor:l,strokeAlpha:u,pointsCallback:function pointsCallback(t,r){t.push("".concat((r[0].x+r[2].x)/2," ")+"".concat((r[0].y+r[2].y)/2," m"),"".concat((r[1].x+r[3].x)/2," ")+"".concat((r[1].y+r[3].y)/2," l"),"S");return[r[0].x,r[1].x,r[3].y,r[1].y]}})}}else o.data.hasPopup=!1;return o}return StrikeOutAnnotation}(T),Z=function(t){_inherits(StampAnnotation,t);var r=_createSuper(StampAnnotation);function StampAnnotation(t){var o;_classCallCheck(this,StampAnnotation);(o=r.call(this,t)).data.annotationType=c.AnnotationType.STAMP;return o}return StampAnnotation}(T),ee=function(t){_inherits(FileAttachmentAnnotation,t);var r=_createSuper(FileAttachmentAnnotation);function FileAttachmentAnnotation(t){var o;_classCallCheck(this,FileAttachmentAnnotation);o=r.call(this,t);var l=new v.FileSpec(t.dict.get("FS"),t.xref);o.data.annotationType=c.AnnotationType.FILEATTACHMENT;o.data.file=l.serializable;return o}return FileAttachmentAnnotation}(T)},(t,r,o)=>{"use strict";function _typeof(t){_typeof="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function _typeof(t){return typeof t}:function _typeof(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t};return _typeof(t)}Object.defineProperty(r,"__esModule",{value:!0});r.createDefaultAppearance=function createDefaultAppearance(t){var r,o=t.fontSize,l=t.fontName,c=t.fontColor;r=c.every((function(t){return 0===t}))?"0 g":Array.from(c).map((function(t){return(t/255).toFixed(2)})).join(" ")+" rg";return"/".concat((0,u.escapePDFName)(l)," ").concat(o," Tf ").concat(r)};r.parseDefaultAppearance=function parseDefaultAppearance(t){return new g(t).parse()};var l=o(4),c=o(137),u=o(122),h=o(138),d=o(118),m=o(123);function _slicedToArray(t,r){return function _arrayWithHoles(t){if(Array.isArray(t))return t}(t)||function _iterableToArrayLimit(t,r){var o=null==t?null:"undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(null==o)return;var l,c,u=[],h=!0,d=!1;try{for(o=o.call(t);!(h=(l=o.next()).done);h=!0){u.push(l.value);if(r&&u.length===r)break}}catch(t){d=!0;c=t}finally{try{h||null==o.return||o.return()}finally{if(d)throw c}}return u}(t,r)||function _unsupportedIterableToArray(t,r){if(!t)return;if("string"==typeof t)return _arrayLikeToArray(t,r);var o=Object.prototype.toString.call(t).slice(8,-1);"Object"===o&&t.constructor&&(o=t.constructor.name);if("Map"===o||"Set"===o)return Array.from(t);if("Arguments"===o||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(o))return _arrayLikeToArray(t,r)}(t,r)||function _nonIterableRest(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function _arrayLikeToArray(t,r){(null==r||r>t.length)&&(r=t.length);for(var o=0,l=new Array(r);o<r;o++)l[o]=t[o];return l}function _defineProperties(t,r){for(var o=0;o<r.length;o++){var l=r[o];l.enumerable=l.enumerable||!1;l.configurable=!0;"value"in l&&(l.writable=!0);Object.defineProperty(t,l.key,l)}}function _setPrototypeOf(t,r){_setPrototypeOf=Object.setPrototypeOf||function _setPrototypeOf(t,r){t.__proto__=r;return t};return _setPrototypeOf(t,r)}function _createSuper(t){var r=function _isNativeReflectConstruct(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){})));return!0}catch(t){return!1}}();return function _createSuperInternal(){var o,l=_getPrototypeOf(t);if(r){var c=_getPrototypeOf(this).constructor;o=Reflect.construct(l,arguments,c)}else o=l.apply(this,arguments);return _possibleConstructorReturn(this,o)}}function _possibleConstructorReturn(t,r){if(r&&("object"===_typeof(r)||"function"==typeof r))return r;if(void 0!==r)throw new TypeError("Derived constructors may only return object or undefined");return function _assertThisInitialized(t){if(void 0===t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return t}(t)}function _getPrototypeOf(t){_getPrototypeOf=Object.setPrototypeOf?Object.getPrototypeOf:function _getPrototypeOf(t){return t.__proto__||Object.getPrototypeOf(t)};return _getPrototypeOf(t)}var g=function(t){!function _inherits(t,r){if("function"!=typeof r&&null!==r)throw new TypeError("Super expression must either be null or a function");t.prototype=Object.create(r&&r.prototype,{constructor:{value:t,writable:!0,configurable:!0}});r&&_setPrototypeOf(t,r)}(DefaultAppearanceEvaluator,t);var r=_createSuper(DefaultAppearanceEvaluator);function DefaultAppearanceEvaluator(t){!function _classCallCheck(t,r){if(!(t instanceof r))throw new TypeError("Cannot call a class as a function")}(this,DefaultAppearanceEvaluator);return r.call(this,new m.StringStream(t))}!function _createClass(t,r,o){r&&_defineProperties(t.prototype,r);o&&_defineProperties(t,o);return t}(DefaultAppearanceEvaluator,[{key:"parse",value:function parse(){var t={fn:0,args:[]},r={fontSize:0,fontName:"",fontColor:new Uint8ClampedArray(3)};try{for(;;){t.args.length=0;if(!this.read(t))break;if(0===this.savedStatesDepth){var o=t.fn,u=t.args;switch(0|o){case l.OPS.setFont:var h=_slicedToArray(u,2),m=h[0],g=h[1];m instanceof d.Name&&(r.fontName=m.name);"number"==typeof g&&g>0&&(r.fontSize=g);break;case l.OPS.setFillRGBColor:c.ColorSpace.singletons.rgb.getRgbItem(u,0,r.fontColor,0);break;case l.OPS.setFillGray:c.ColorSpace.singletons.gray.getRgbItem(u,0,r.fontColor,0);break;case l.OPS.setFillColorSpace:c.ColorSpace.singletons.cmyk.getRgbItem(u,0,r.fontColor,0)}}}}catch(t){(0,l.warn)('parseDefaultAppearance - ignoring errors: "'.concat(t,'".'))}return r}}]);return DefaultAppearanceEvaluator}(h.EvaluatorPreprocessor)},(t,r,o)=>{"use strict";function _typeof(t){_typeof="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function _typeof(t){return typeof t}:function _typeof(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t};return _typeof(t)}Object.defineProperty(r,"__esModule",{value:!0});r.ColorSpace=void 0;var l=function _interopRequireDefault(t){return t&&t.__esModule?t:{default:t}}(o(2)),c=o(4),u=o(118),h=o(122);function _inherits(t,r){if("function"!=typeof r&&null!==r)throw new TypeError("Super expression must either be null or a function");t.prototype=Object.create(r&&r.prototype,{constructor:{value:t,writable:!0,configurable:!0}});r&&_setPrototypeOf(t,r)}function _setPrototypeOf(t,r){_setPrototypeOf=Object.setPrototypeOf||function _setPrototypeOf(t,r){t.__proto__=r;return t};return _setPrototypeOf(t,r)}function _createSuper(t){var r=function _isNativeReflectConstruct(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){})));return!0}catch(t){return!1}}();return function _createSuperInternal(){var o,l=_getPrototypeOf(t);if(r){var c=_getPrototypeOf(this).constructor;o=Reflect.construct(l,arguments,c)}else o=l.apply(this,arguments);return _possibleConstructorReturn(this,o)}}function _possibleConstructorReturn(t,r){if(r&&("object"===_typeof(r)||"function"==typeof r))return r;if(void 0!==r)throw new TypeError("Derived constructors may only return object or undefined");return function _assertThisInitialized(t){if(void 0===t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return t}(t)}function _getPrototypeOf(t){_getPrototypeOf=Object.setPrototypeOf?Object.getPrototypeOf:function _getPrototypeOf(t){return t.__proto__||Object.getPrototypeOf(t)};return _getPrototypeOf(t)}function asyncGeneratorStep(t,r,o,l,c,u,h){try{var d=t[u](h),m=d.value}catch(t){o(t);return}d.done?r(m):Promise.resolve(m).then(l,c)}function _classCallCheck(t,r){if(!(t instanceof r))throw new TypeError("Cannot call a class as a function")}function _defineProperties(t,r){for(var o=0;o<r.length;o++){var l=r[o];l.enumerable=l.enumerable||!1;l.configurable=!0;"value"in l&&(l.writable=!0);Object.defineProperty(t,l.key,l)}}function _createClass(t,r,o){r&&_defineProperties(t.prototype,r);o&&_defineProperties(t,o);return t}var d=function(){function ColorSpace(t,r){_classCallCheck(this,ColorSpace);this.constructor===ColorSpace&&(0,c.unreachable)("Cannot initialize ColorSpace.");this.name=t;this.numComps=r}_createClass(ColorSpace,[{key:"getRgb",value:function getRgb(t,r){var o=new Uint8ClampedArray(3);this.getRgbItem(t,r,o,0);return o}},{key:"getRgbItem",value:function getRgbItem(t,r,o,l){(0,c.unreachable)("Should not call ColorSpace.getRgbItem")}},{key:"getRgbBuffer",value:function getRgbBuffer(t,r,o,l,u,h,d){(0,c.unreachable)("Should not call ColorSpace.getRgbBuffer")}},{key:"getOutputLength",value:function getOutputLength(t,r){(0,c.unreachable)("Should not call ColorSpace.getOutputLength")}},{key:"isPassthrough",value:function isPassthrough(t){return!1}},{key:"isDefaultDecode",value:function isDefaultDecode(t,r){return ColorSpace.isDefaultDecode(t,this.numComps)}},{key:"fillRgb",value:function fillRgb(t,r,o,l,c,u,h,d,m){var g=r*o,y=null,v=1<<h,S=o!==c||r!==l;if(this.isPassthrough(h))y=d;else if(1===this.numComps&&g>v&&"DeviceGray"!==this.name&&"DeviceRGB"!==this.name){for(var _=h<=8?new Uint8Array(v):new Uint16Array(v),k=0;k<v;k++)_[k]=k;var C=new Uint8ClampedArray(3*v);this.getRgbBuffer(_,0,v,C,0,h,0);if(S){y=new Uint8Array(3*g);for(var w=0,x=0;x<g;++x){var O=3*d[x];y[w++]=C[O];y[w++]=C[O+1];y[w++]=C[O+2]}}else for(var T=0,R=0;R<g;++R){var E=3*d[R];t[T++]=C[E];t[T++]=C[E+1];t[T++]=C[E+2];T+=m}}else if(S){y=new Uint8ClampedArray(3*g);this.getRgbBuffer(d,0,g,y,0,h,0)}else this.getRgbBuffer(d,0,l*u,t,0,h,m);if(y)if(S)!function resizeRgbImage(t,r,o,l,c,u,h){h=1!==h?0:h;for(var d,m=o/c,g=l/u,y=0,v=new Uint16Array(c),S=3*o,_=0;_<c;_++)v[_]=3*Math.floor(_*m);for(var k=0;k<u;k++)for(var C=Math.floor(k*g)*S,w=0;w<c;w++){d=C+v[w];r[y++]=t[d++];r[y++]=t[d++];r[y++]=t[d++];y+=h}}(y,t,r,o,l,c,m);else for(var M=0,D=0,j=0,L=l*u;j<L;j++){t[M++]=y[D++];t[M++]=y[D++];t[M++]=y[D++];M+=m}}},{key:"usesZeroToOneRange",get:function get(){return(0,c.shadow)(this,"usesZeroToOneRange",!0)}}],[{key:"_cache",value:function _cache(t,r,o,l){if(!o)throw new Error('ColorSpace._cache - expected "localColorSpaceCache" argument.');if(!l)throw new Error('ColorSpace._cache - expected "parsedColorSpace" argument.');var c,h;if(t instanceof u.Ref){h=t;t=r.fetch(t)}t instanceof u.Name&&(c=t.name);(c||h)&&o.set(c,h,l)}},{key:"getCached",value:function getCached(t,r,o){if(!o)throw new Error('ColorSpace.getCached - expected "localColorSpaceCache" argument.');if(t instanceof u.Ref){var l=o.getByRef(t);if(l)return l;try{t=r.fetch(t)}catch(t){if(t instanceof h.MissingDataException)throw t}}if(t instanceof u.Name){var c=o.getByName(t.name);if(c)return c}return null}},{key:"parseAsync",value:(t=function _asyncToGenerator(t){return function(){var r=this,o=arguments;return new Promise((function(l,c){var u=t.apply(r,o);function _next(t){asyncGeneratorStep(u,l,c,_next,_throw,"next",t)}function _throw(t){asyncGeneratorStep(u,l,c,_next,_throw,"throw",t)}_next(void 0)}))}}(l.default.mark((function _callee(t){var r,o,c,u,h,d,m;return l.default.wrap((function _callee$(l){for(;;)switch(l.prev=l.next){case 0:r=t.cs,o=t.xref,c=t.resources,u=void 0===c?null:c,h=t.pdfFunctionFactory,d=t.localColorSpaceCache;m=this._parse(r,o,u,h);this._cache(r,o,d,m);return l.abrupt("return",m);case 4:case"end":return l.stop()}}),_callee,this)}))),function parseAsync(r){return t.apply(this,arguments)})},{key:"parse",value:function parse(t){var r=t.cs,o=t.xref,l=t.resources,c=void 0===l?null:l,u=t.pdfFunctionFactory,h=t.localColorSpaceCache,d=this.getCached(r,o,h);if(d)return d;var m=this._parse(r,o,c,u);this._cache(r,o,h,m);return m}},{key:"_parse",value:function _parse(t,r){var o=arguments.length>2&&void 0!==arguments[2]?arguments[2]:null,l=arguments.length>3?arguments[3]:void 0;t=r.fetchIfRef(t);if((0,u.isName)(t))switch(t.name){case"DeviceGray":case"G":return this.singletons.gray;case"DeviceRGB":case"RGB":return this.singletons.rgb;case"DeviceCMYK":case"CMYK":return this.singletons.cmyk;case"Pattern":return new g(null);default:if((0,u.isDict)(o)){var h=o.get("ColorSpace");if((0,u.isDict)(h)){var d=h.get(t.name);if(d){if((0,u.isName)(d))return this._parse(d,r,o,l);t=d;break}}}throw new c.FormatError("Unrecognized ColorSpace: ".concat(t.name))}if(Array.isArray(t)){var v,S,_,x,O,T,R=r.fetchIfRef(t[0]).name;switch(R){case"DeviceGray":case"G":return this.singletons.gray;case"DeviceRGB":case"RGB":return this.singletons.rgb;case"DeviceCMYK":case"CMYK":return this.singletons.cmyk;case"CalGray":x=(v=r.fetchIfRef(t[1])).getArray("WhitePoint");O=v.getArray("BlackPoint");T=v.get("Gamma");return new k(x,O,T);case"CalRGB":x=(v=r.fetchIfRef(t[1])).getArray("WhitePoint");O=v.getArray("BlackPoint");T=v.getArray("Gamma");var E=v.getArray("Matrix");return new C(x,O,T,E);case"ICCBased":var M=r.fetchIfRef(t[1]),D=M.dict;S=D.get("N");var j=D.get("Alternate");if(j){var L=this._parse(j,r,o,l);if(L.numComps===S)return L;(0,c.warn)("ICCBased color space: Ignoring incorrect /Alternate entry.")}if(1===S)return this.singletons.gray;if(3===S)return this.singletons.rgb;if(4===S)return this.singletons.cmyk;break;case"Pattern":(_=t[1]||null)&&(_=this._parse(_,r,o,l));return new g(_);case"Indexed":case"I":_=this._parse(t[1],r,o,l);var N=r.fetchIfRef(t[2])+1,U=r.fetchIfRef(t[3]);return new y(_,N,U);case"Separation":case"DeviceN":var H=r.fetchIfRef(t[1]);S=Array.isArray(H)?H.length:1;_=this._parse(t[2],r,o,l);var W=l.create(t[3]);return new m(S,_,W);case"Lab":x=(v=r.fetchIfRef(t[1])).getArray("WhitePoint");O=v.getArray("BlackPoint");var $=v.getArray("Range");return new w(x,O,$);default:throw new c.FormatError("Unimplemented ColorSpace object: ".concat(R))}}throw new c.FormatError("Unrecognized ColorSpace object: ".concat(t))}},{key:"isDefaultDecode",value:function isDefaultDecode(t,r){if(!Array.isArray(t))return!0;if(2*r!==t.length){(0,c.warn)("The decode map is not the correct length");return!0}for(var o=0,l=t.length;o<l;o+=2)if(0!==t[o]||1!==t[o+1])return!1;return!0}},{key:"singletons",get:function get(){return(0,c.shadow)(this,"singletons",{get gray(){return(0,c.shadow)(this,"gray",new v)},get rgb(){return(0,c.shadow)(this,"rgb",new S)},get cmyk(){return(0,c.shadow)(this,"cmyk",new _)}})}}]);var t;return ColorSpace}();r.ColorSpace=d;var m=function(t){_inherits(AlternateCS,t);var r=_createSuper(AlternateCS);function AlternateCS(t,o,l){var c;_classCallCheck(this,AlternateCS);(c=r.call(this,"Alternate",t)).base=o;c.tintFn=l;c.tmpBuf=new Float32Array(o.numComps);return c}_createClass(AlternateCS,[{key:"getRgbItem",value:function getRgbItem(t,r,o,l){var c=this.tmpBuf;this.tintFn(t,r,c,0);this.base.getRgbItem(c,0,o,l)}},{key:"getRgbBuffer",value:function getRgbBuffer(t,r,o,l,c,u,h){var d,m,g=this.tintFn,y=this.base,v=1/((1<<u)-1),S=y.numComps,_=y.usesZeroToOneRange,k=(y.isPassthrough(8)||!_)&&0===h,C=k?c:0,w=k?l:new Uint8ClampedArray(S*o),x=this.numComps,O=new Float32Array(x),T=new Float32Array(S);for(d=0;d<o;d++){for(m=0;m<x;m++)O[m]=t[r++]*v;g(O,0,T,0);if(_)for(m=0;m<S;m++)w[C++]=255*T[m];else{y.getRgbItem(T,0,w,C);C+=S}}k||y.getRgbBuffer(w,0,o,l,c,8,h)}},{key:"getOutputLength",value:function getOutputLength(t,r){return this.base.getOutputLength(t*this.base.numComps/this.numComps,r)}}]);return AlternateCS}(d),g=function(t){_inherits(PatternCS,t);var r=_createSuper(PatternCS);function PatternCS(t){var o;_classCallCheck(this,PatternCS);(o=r.call(this,"Pattern",null)).base=t;return o}_createClass(PatternCS,[{key:"isDefaultDecode",value:function isDefaultDecode(t,r){(0,c.unreachable)("Should not call PatternCS.isDefaultDecode")}}]);return PatternCS}(d),y=function(t){_inherits(IndexedCS,t);var r=_createSuper(IndexedCS);function IndexedCS(t,o,l){var h;_classCallCheck(this,IndexedCS);(h=r.call(this,"Indexed",1)).base=t;h.highVal=o;var d=t.numComps*o;h.lookup=new Uint8Array(d);if((0,u.isStream)(l)){var m=l.getBytes(d);h.lookup.set(m)}else{if("string"!=typeof l)throw new c.FormatError("IndexedCS - unrecognized lookup table: ".concat(l));for(var g=0;g<d;++g)h.lookup[g]=255&l.charCodeAt(g)}return h}_createClass(IndexedCS,[{key:"getRgbItem",value:function getRgbItem(t,r,o,l){var c=this.base.numComps,u=t[r]*c;this.base.getRgbBuffer(this.lookup,u,1,o,l,8,0)}},{key:"getRgbBuffer",value:function getRgbBuffer(t,r,o,l,c,u,h){for(var d=this.base,m=d.numComps,g=d.getOutputLength(m,h),y=this.lookup,v=0;v<o;++v){var S=t[r++]*m;d.getRgbBuffer(y,S,1,l,c,8,h);c+=g}}},{key:"getOutputLength",value:function getOutputLength(t,r){return this.base.getOutputLength(t*this.base.numComps,r)}},{key:"isDefaultDecode",value:function isDefaultDecode(t,r){if(!Array.isArray(t))return!0;if(2!==t.length){(0,c.warn)("Decode map length is not correct");return!0}if(!Number.isInteger(r)||r<1){(0,c.warn)("Bits per component is not correct");return!0}return 0===t[0]&&t[1]===(1<<r)-1}}]);return IndexedCS}(d),v=function(t){_inherits(DeviceGrayCS,t);var r=_createSuper(DeviceGrayCS);function DeviceGrayCS(){_classCallCheck(this,DeviceGrayCS);return r.call(this,"DeviceGray",1)}_createClass(DeviceGrayCS,[{key:"getRgbItem",value:function getRgbItem(t,r,o,l){var c=255*t[r];o[l]=o[l+1]=o[l+2]=c}},{key:"getRgbBuffer",value:function getRgbBuffer(t,r,o,l,c,u,h){for(var d=255/((1<<u)-1),m=r,g=c,y=0;y<o;++y){var v=d*t[m++];l[g++]=v;l[g++]=v;l[g++]=v;g+=h}}},{key:"getOutputLength",value:function getOutputLength(t,r){return t*(3+r)}}]);return DeviceGrayCS}(d),S=function(t){_inherits(DeviceRgbCS,t);var r=_createSuper(DeviceRgbCS);function DeviceRgbCS(){_classCallCheck(this,DeviceRgbCS);return r.call(this,"DeviceRGB",3)}_createClass(DeviceRgbCS,[{key:"getRgbItem",value:function getRgbItem(t,r,o,l){o[l]=255*t[r];o[l+1]=255*t[r+1];o[l+2]=255*t[r+2]}},{key:"getRgbBuffer",value:function getRgbBuffer(t,r,o,l,c,u,h){if(8!==u||0!==h)for(var d=255/((1<<u)-1),m=r,g=c,y=0;y<o;++y){l[g++]=d*t[m++];l[g++]=d*t[m++];l[g++]=d*t[m++];g+=h}else l.set(t.subarray(r,r+3*o),c)}},{key:"getOutputLength",value:function getOutputLength(t,r){return t*(3+r)/3|0}},{key:"isPassthrough",value:function isPassthrough(t){return 8===t}}]);return DeviceRgbCS}(d),_=function DeviceCmykCSClosure(){function convertToRgb(t,r,o,l,c){var u=t[r]*o,h=t[r+1]*o,d=t[r+2]*o,m=t[r+3]*o;l[c]=255+u*(-4.387332384609988*u+54.48615194189176*h+18.82290502165302*d+212.25662451639585*m-285.2331026137004)+h*(1.7149763477362134*h-5.6096736904047315*d+-17.873870861415444*m-5.497006427196366)+d*(-2.5217340131683033*d-21.248923337353073*m+17.5119270841813)+m*(-21.86122147463605*m-189.48180835922747);l[c+1]=255+u*(8.841041422036149*u+60.118027045597366*h+6.871425592049007*d+31.159100130055922*m-79.2970844816548)+h*(-15.310361306967817*h+17.575251261109482*d+131.35250912493976*m-190.9453302588951)+d*(4.444339102852739*d+9.8632861493405*m-24.86741582555878)+m*(-20.737325471181034*m-187.80453709719578);l[c+2]=255+u*(.8842522430003296*u+8.078677503112928*h+30.89978309703729*d-.23883238689178934*m-14.183576799673286)+h*(10.49593273432072*h+63.02378494754052*d+50.606957656360734*m-112.23884253719248)+d*(.03296041114873217*d+115.60384449646641*m-193.58209356861505)+m*(-22.33816807309886*m-180.12613974708367)}return function(t){_inherits(DeviceCmykCS,t);var r=_createSuper(DeviceCmykCS);function DeviceCmykCS(){_classCallCheck(this,DeviceCmykCS);return r.call(this,"DeviceCMYK",4)}_createClass(DeviceCmykCS,[{key:"getRgbItem",value:function getRgbItem(t,r,o,l){convertToRgb(t,r,1,o,l)}},{key:"getRgbBuffer",value:function getRgbBuffer(t,r,o,l,c,u,h){for(var d=1/((1<<u)-1),m=0;m<o;m++){convertToRgb(t,r,d,l,c);r+=4;c+=3+h}}},{key:"getOutputLength",value:function getOutputLength(t,r){return t/4*(3+r)|0}}]);return DeviceCmykCS}(d)}(),k=function CalGrayCSClosure(){function convertToRgb(t,r,o,l,c,u){var h=r[o]*u,d=Math.pow(h,t.G),m=t.YW*d,g=Math.max(295.8*Math.pow(m,.3333333333333333)-40.8,0);l[c]=g;l[c+1]=g;l[c+2]=g}return function(t){_inherits(CalGrayCS,t);var r=_createSuper(CalGrayCS);function CalGrayCS(t,o,l){var u;_classCallCheck(this,CalGrayCS);u=r.call(this,"CalGray",1);if(!t)throw new c.FormatError("WhitePoint missing - required for color space CalGray");o=o||[0,0,0];l=l||1;u.XW=t[0];u.YW=t[1];u.ZW=t[2];u.XB=o[0];u.YB=o[1];u.ZB=o[2];u.G=l;if(u.XW<0||u.ZW<0||1!==u.YW)throw new c.FormatError("Invalid WhitePoint components for ".concat(u.name)+", no fallback available");if(u.XB<0||u.YB<0||u.ZB<0){(0,c.info)("Invalid BlackPoint for ".concat(u.name,", falling back to default."));u.XB=u.YB=u.ZB=0}0===u.XB&&0===u.YB&&0===u.ZB||(0,c.warn)("".concat(u.name,", BlackPoint: XB: ").concat(u.XB,", YB: ").concat(u.YB,", ")+"ZB: ".concat(u.ZB,", only default values are supported."));if(u.G<1){(0,c.info)("Invalid Gamma: ".concat(u.G," for ").concat(u.name,", ")+"falling back to default.");u.G=1}return u}_createClass(CalGrayCS,[{key:"getRgbItem",value:function getRgbItem(t,r,o,l){convertToRgb(this,t,r,o,l,1)}},{key:"getRgbBuffer",value:function getRgbBuffer(t,r,o,l,c,u,h){for(var d=1/((1<<u)-1),m=0;m<o;++m){convertToRgb(this,t,r,l,c,d);r+=1;c+=3+h}}},{key:"getOutputLength",value:function getOutputLength(t,r){return t*(3+r)}}]);return CalGrayCS}(d)}(),C=function CalRGBCSClosure(){var t=new Float32Array([.8951,.2664,-.1614,-.7502,1.7135,.0367,.0389,-.0685,1.0296]),r=new Float32Array([.9869929,-.1470543,.1599627,.4323053,.5183603,.0492912,-.0085287,.0400428,.9684867]),o=new Float32Array([3.2404542,-1.5371385,-.4985314,-.969266,1.8760108,.041556,.0556434,-.2040259,1.0572252]),l=new Float32Array([1,1,1]),u=new Float32Array(3),h=new Float32Array(3),m=new Float32Array(3),g=Math.pow(24/116,3)/8;function matrixProduct(t,r,o){o[0]=t[0]*r[0]+t[1]*r[1]+t[2]*r[2];o[1]=t[3]*r[0]+t[4]*r[1]+t[5]*r[2];o[2]=t[6]*r[0]+t[7]*r[1]+t[8]*r[2]}function sRGBTransferFunction(t){return t<=.0031308?adjustToRange(0,1,12.92*t):t>=.99554525?1:adjustToRange(0,1,1.055*Math.pow(t,1/2.4)-.055)}function adjustToRange(t,r,o){return Math.max(t,Math.min(r,o))}function decodeL(t){return t<0?-decodeL(-t):t>8?Math.pow((t+16)/116,3):t*g}function convertToRgb(c,d,g,y,v,S){var _=adjustToRange(0,1,d[g]*S),k=adjustToRange(0,1,d[g+1]*S),C=adjustToRange(0,1,d[g+2]*S),w=1===_?1:Math.pow(_,c.GR),x=1===k?1:Math.pow(k,c.GG),O=1===C?1:Math.pow(C,c.GB),T=c.MXA*w+c.MXB*x+c.MXC*O,R=c.MYA*w+c.MYB*x+c.MYC*O,E=c.MZA*w+c.MZB*x+c.MZC*O,M=h;M[0]=T;M[1]=R;M[2]=E;var D=m;!function normalizeWhitePointToFlat(o,l,c){if(1!==o[0]||1!==o[2]){var h=c;matrixProduct(t,l,h);var d=u;!function convertToFlat(t,r,o){o[0]=1*r[0]/t[0];o[1]=1*r[1]/t[1];o[2]=1*r[2]/t[2]}(o,h,d);matrixProduct(r,d,c)}else{c[0]=l[0];c[1]=l[1];c[2]=l[2]}}(c.whitePoint,M,D);var j=h;!function compensateBlackPoint(t,r,o){if(0!==t[0]||0!==t[1]||0!==t[2]){var l=decodeL(0),c=(1-l)/(1-decodeL(t[0])),u=1-c,h=(1-l)/(1-decodeL(t[1])),d=1-h,m=(1-l)/(1-decodeL(t[2])),g=1-m;o[0]=r[0]*c+u;o[1]=r[1]*h+d;o[2]=r[2]*m+g}else{o[0]=r[0];o[1]=r[1];o[2]=r[2]}}(c.blackPoint,D,j);var L=m;!function normalizeWhitePointToD65(o,l,c){var h=c;matrixProduct(t,l,h);var d=u;!function convertToD65(t,r,o){o[0]=.95047*r[0]/t[0];o[1]=1*r[1]/t[1];o[2]=1.08883*r[2]/t[2]}(o,h,d);matrixProduct(r,d,c)}(l,j,L);var N=h;matrixProduct(o,L,N);y[v]=255*sRGBTransferFunction(N[0]);y[v+1]=255*sRGBTransferFunction(N[1]);y[v+2]=255*sRGBTransferFunction(N[2])}return function(t){_inherits(CalRGBCS,t);var r=_createSuper(CalRGBCS);function CalRGBCS(t,o,l,u){var h;_classCallCheck(this,CalRGBCS);h=r.call(this,"CalRGB",3);if(!t)throw new c.FormatError("WhitePoint missing - required for color space CalRGB");o=o||new Float32Array(3);l=l||new Float32Array([1,1,1]);u=u||new Float32Array([1,0,0,0,1,0,0,0,1]);var d=t[0],m=t[1],g=t[2];h.whitePoint=t;var y=o[0],v=o[1],S=o[2];h.blackPoint=o;h.GR=l[0];h.GG=l[1];h.GB=l[2];h.MXA=u[0];h.MYA=u[1];h.MZA=u[2];h.MXB=u[3];h.MYB=u[4];h.MZB=u[5];h.MXC=u[6];h.MYC=u[7];h.MZC=u[8];if(d<0||g<0||1!==m)throw new c.FormatError("Invalid WhitePoint components for ".concat(h.name)+", no fallback available");if(y<0||v<0||S<0){(0,c.info)("Invalid BlackPoint for ".concat(h.name," [").concat(y,", ").concat(v,", ").concat(S,"], ")+"falling back to default.");h.blackPoint=new Float32Array(3)}if(h.GR<0||h.GG<0||h.GB<0){(0,c.info)("Invalid Gamma [".concat(h.GR,", ").concat(h.GG,", ").concat(h.GB,"] for ")+"".concat(h.name,", falling back to default."));h.GR=h.GG=h.GB=1}return h}_createClass(CalRGBCS,[{key:"getRgbItem",value:function getRgbItem(t,r,o,l){convertToRgb(this,t,r,o,l,1)}},{key:"getRgbBuffer",value:function getRgbBuffer(t,r,o,l,c,u,h){for(var d=1/((1<<u)-1),m=0;m<o;++m){convertToRgb(this,t,r,l,c,d);r+=3;c+=3+h}}},{key:"getOutputLength",value:function getOutputLength(t,r){return t*(3+r)/3|0}}]);return CalRGBCS}(d)}(),w=function LabCSClosure(){function fn_g(t){return t>=6/29?Math.pow(t,3):108/841*(t-4/29)}function decode(t,r,o,l){return o+t*(l-o)/r}function convertToRgb(t,r,o,l,c,u){var h=r[o],d=r[o+1],m=r[o+2];if(!1!==l){h=decode(h,l,0,100);d=decode(d,l,t.amin,t.amax);m=decode(m,l,t.bmin,t.bmax)}d>t.amax?d=t.amax:d<t.amin&&(d=t.amin);m>t.bmax?m=t.bmax:m<t.bmin&&(m=t.bmin);var g,y,v,S=(h+16)/116,_=S+d/500,k=S-m/200,C=t.XW*fn_g(_),w=t.YW*fn_g(S),x=t.ZW*fn_g(k);if(t.ZW<1){g=3.1339*C+-1.617*w+-.4906*x;y=-.9785*C+1.916*w+.0333*x;v=.072*C+-.229*w+1.4057*x}else{g=3.2406*C+-1.5372*w+-.4986*x;y=-.9689*C+1.8758*w+.0415*x;v=.0557*C+-.204*w+1.057*x}c[u]=255*Math.sqrt(g);c[u+1]=255*Math.sqrt(y);c[u+2]=255*Math.sqrt(v)}return function(t){_inherits(LabCS,t);var r=_createSuper(LabCS);function LabCS(t,o,l){var u;_classCallCheck(this,LabCS);u=r.call(this,"Lab",3);if(!t)throw new c.FormatError("WhitePoint missing - required for color space Lab");o=o||[0,0,0];l=l||[-100,100,-100,100];u.XW=t[0];u.YW=t[1];u.ZW=t[2];u.amin=l[0];u.amax=l[1];u.bmin=l[2];u.bmax=l[3];u.XB=o[0];u.YB=o[1];u.ZB=o[2];if(u.XW<0||u.ZW<0||1!==u.YW)throw new c.FormatError("Invalid WhitePoint components, no fallback available");if(u.XB<0||u.YB<0||u.ZB<0){(0,c.info)("Invalid BlackPoint, falling back to default");u.XB=u.YB=u.ZB=0}if(u.amin>u.amax||u.bmin>u.bmax){(0,c.info)("Invalid Range, falling back to defaults");u.amin=-100;u.amax=100;u.bmin=-100;u.bmax=100}return u}_createClass(LabCS,[{key:"getRgbItem",value:function getRgbItem(t,r,o,l){convertToRgb(this,t,r,!1,o,l)}},{key:"getRgbBuffer",value:function getRgbBuffer(t,r,o,l,c,u,h){for(var d=(1<<u)-1,m=0;m<o;m++){convertToRgb(this,t,r,d,l,c);r+=3;c+=3+h}}},{key:"getOutputLength",value:function getOutputLength(t,r){return t*(3+r)/3|0}},{key:"isDefaultDecode",value:function isDefaultDecode(t,r){return!0}},{key:"usesZeroToOneRange",get:function get(){return(0,c.shadow)(this,"usesZeroToOneRange",!1)}}]);return LabCS}(d)}()},(t,r,o)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});r.PartialEvaluator=r.EvaluatorPreprocessor=void 0;var l=function _interopRequireDefault(t){return t&&t.__esModule?t:{default:t}}(o(2)),c=o(4),u=o(139),h=o(118),d=o(157),m=o(131),g=o(132),y=o(160),v=o(134),S=o(168),_=o(125),k=o(161),C=o(169),w=o(140),x=o(171),O=o(123),T=o(172),R=o(137),E=o(142),M=o(133),D=o(122),j=o(173),L=o(174),N=o(175),U=o(176);function _slicedToArray(t,r){return function _arrayWithHoles(t){if(Array.isArray(t))return t}(t)||function _iterableToArrayLimit(t,r){var o=null==t?null:"undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(null==o)return;var l,c,u=[],h=!0,d=!1;try{for(o=o.call(t);!(h=(l=o.next()).done);h=!0){u.push(l.value);if(r&&u.length===r)break}}catch(t){d=!0;c=t}finally{try{h||null==o.return||o.return()}finally{if(d)throw c}}return u}(t,r)||_unsupportedIterableToArray(t,r)||function _nonIterableRest(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function asyncGeneratorStep(t,r,o,l,c,u,h){try{var d=t[u](h),m=d.value}catch(t){o(t);return}d.done?r(m):Promise.resolve(m).then(l,c)}function _asyncToGenerator(t){return function(){var r=this,o=arguments;return new Promise((function(l,c){var u=t.apply(r,o);function _next(t){asyncGeneratorStep(u,l,c,_next,_throw,"next",t)}function _throw(t){asyncGeneratorStep(u,l,c,_next,_throw,"throw",t)}_next(void 0)}))}}function _createForOfIteratorHelper(t,r){var o="undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(!o){if(Array.isArray(t)||(o=_unsupportedIterableToArray(t))||r&&t&&"number"==typeof t.length){o&&(t=o);var l=0,c=function F(){};return{s:c,n:function n(){return l>=t.length?{done:!0}:{done:!1,value:t[l++]}},e:function e(t){throw t},f:c}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var u,h=!0,d=!1;return{s:function s(){o=o.call(t)},n:function n(){var t=o.next();h=t.done;return t},e:function e(t){d=!0;u=t},f:function f(){try{h||null==o.return||o.return()}finally{if(d)throw u}}}}function _unsupportedIterableToArray(t,r){if(t){if("string"==typeof t)return _arrayLikeToArray(t,r);var o=Object.prototype.toString.call(t).slice(8,-1);"Object"===o&&t.constructor&&(o=t.constructor.name);return"Map"===o||"Set"===o?Array.from(t):"Arguments"===o||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(o)?_arrayLikeToArray(t,r):void 0}}function _arrayLikeToArray(t,r){(null==r||r>t.length)&&(r=t.length);for(var o=0,l=new Array(r);o<r;o++)l[o]=t[o];return l}function _classCallCheck(t,r){if(!(t instanceof r))throw new TypeError("Cannot call a class as a function")}function _defineProperties(t,r){for(var o=0;o<r.length;o++){var l=r[o];l.enumerable=l.enumerable||!1;l.configurable=!0;"value"in l&&(l.writable=!0);Object.defineProperty(t,l.key,l)}}function _createClass(t,r,o){r&&_defineProperties(t.prototype,r);o&&_defineProperties(t,o);return t}var H=Object.freeze({maxImageSize:-1,disableFontFace:!1,ignoreErrors:!1,isEvalSupported:!0,fontExtraProperties:!1,useSystemFonts:!0,cMapUrl:null,standardFontDataUrl:null}),W=1,$=2,q=Promise.resolve();function normalizeBlendMode(t){var r=arguments.length>1&&void 0!==arguments[1]&&arguments[1];if(Array.isArray(t)){for(var o=0,l=t.length;o<l;o++){var u=normalizeBlendMode(t[o],!0);if(u)return u}(0,c.warn)("Unsupported blend mode Array: ".concat(t));return"source-over"}if(!(0,h.isName)(t))return r?null:"source-over";switch(t.name){case"Normal":case"Compatible":return"source-over";case"Multiply":return"multiply";case"Screen":return"screen";case"Overlay":return"overlay";case"Darken":return"darken";case"Lighten":return"lighten";case"ColorDodge":return"color-dodge";case"ColorBurn":return"color-burn";case"HardLight":return"hard-light";case"SoftLight":return"soft-light";case"Difference":return"difference";case"Exclusion":return"exclusion";case"Hue":return"hue";case"Saturation":return"saturation";case"Color":return"color";case"Luminosity":return"luminosity"}if(r)return null;(0,c.warn)("Unsupported blend mode: ".concat(t.name));return"source-over"}var X=function(){function TimeSlotManager(){_classCallCheck(this,TimeSlotManager);this.reset()}_createClass(TimeSlotManager,[{key:"check",value:function check(){if(++this.checked<TimeSlotManager.CHECK_TIME_EVERY)return!1;this.checked=0;return this.endTime<=Date.now()}},{key:"reset",value:function reset(){this.endTime=Date.now()+TimeSlotManager.TIME_SLOT_DURATION_MS;this.checked=0}}],[{key:"TIME_SLOT_DURATION_MS",get:function get(){return(0,c.shadow)(this,"TIME_SLOT_DURATION_MS",20)}},{key:"CHECK_TIME_EVERY",get:function get(){return(0,c.shadow)(this,"CHECK_TIME_EVERY",100)}}]);return TimeSlotManager}(),z=function(){function PartialEvaluator(t){var r=t.xref,o=t.handler,l=t.pageIndex,c=t.idFactory,u=t.fontCache,h=t.builtInCMapCache,d=t.standardFontDataCache,m=t.globalImageCache,g=t.options,y=void 0===g?null:g;_classCallCheck(this,PartialEvaluator);this.xref=r;this.handler=o;this.pageIndex=l;this.idFactory=c;this.fontCache=u;this.builtInCMapCache=h;this.standardFontDataCache=d;this.globalImageCache=m;this.options=y||H;this.parsingType3Font=!1;this._fetchBuiltInCMapBound=this.fetchBuiltInCMap.bind(this)}_createClass(PartialEvaluator,[{key:"_pdfFunctionFactory",get:function get(){var t=new C.PDFFunctionFactory({xref:this.xref,isEvalSupported:this.options.isEvalSupported});return(0,c.shadow)(this,"_pdfFunctionFactory",t)}},{key:"clone",value:function clone(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:null,r=Object.create(this);r.options=Object.assign(Object.create(null),this.options,t);return r}},{key:"hasBlendModes",value:function hasBlendModes(t,r){if(!(t instanceof h.Dict))return!1;if(t.objId&&r.has(t.objId))return!1;var o=new h.RefSet(r);t.objId&&o.put(t.objId);for(var l=[t],u=this.xref;l.length;){var d=l.shift(),m=d.get("ExtGState");if(m instanceof h.Dict){var g,y=_createForOfIteratorHelper(m.getRawValues());try{for(y.s();!(g=y.n()).done;){var v=g.value;if(v instanceof h.Ref){if(o.has(v))continue;try{v=u.fetch(v)}catch(t){o.put(v);(0,c.info)('hasBlendModes - ignoring ExtGState: "'.concat(t,'".'));continue}}if(v instanceof h.Dict){v.objId&&o.put(v.objId);var S=v.get("BM");if(S instanceof h.Name){if("Normal"!==S.name)return!0}else if(void 0!==S&&Array.isArray(S)){var _,k=_createForOfIteratorHelper(S);try{for(k.s();!(_=k.n()).done;){var C=_.value;if(C instanceof h.Name&&"Normal"!==C.name)return!0}}catch(t){k.e(t)}finally{k.f()}}}}}catch(t){y.e(t)}finally{y.f()}}var w=d.get("XObject");if(w instanceof h.Dict){var x,O=_createForOfIteratorHelper(w.getRawValues());try{for(O.s();!(x=O.n()).done;){var T=x.value;if(T instanceof h.Ref){if(o.has(T))continue;try{T=u.fetch(T)}catch(t){o.put(T);(0,c.info)('hasBlendModes - ignoring XObject: "'.concat(t,'".'));continue}}if((0,h.isStream)(T)){T.dict.objId&&o.put(T.dict.objId);var R=T.dict.get("Resources");if(R instanceof h.Dict&&(!R.objId||!o.has(R.objId))){l.push(R);R.objId&&o.put(R.objId)}}}}catch(t){O.e(t)}finally{O.f()}}}o.forEach((function(t){r.put(t)}));return!1}},{key:"fetchBuiltInCMap",value:(Z=_asyncToGenerator(l.default.mark((function _callee(t){var r,o,u,h;return l.default.wrap((function _callee$(l){for(;;)switch(l.prev=l.next){case 0:if(!(r=this.builtInCMapCache.get(t))){l.next=3;break}return l.abrupt("return",r);case 3:if(null===this.options.cMapUrl){l.next=19;break}u="".concat(this.options.cMapUrl).concat(t,".bcmap");l.next=7;return fetch(u);case 7:if((h=l.sent).ok){l.next=10;break}throw new Error('fetchBuiltInCMap: failed to fetch file "'.concat(u,'" with "').concat(h.statusText,'".'));case 10:l.t0=Uint8Array;l.next=13;return h.arrayBuffer();case 13:l.t1=l.sent;l.t2=new l.t0(l.t1);l.t3=c.CMapCompressionType.BINARY;o={cMapData:l.t2,compressionType:l.t3};l.next=22;break;case 19:l.next=21;return this.handler.sendWithPromise("FetchBuiltInCMap",{name:t});case 21:o=l.sent;case 22:o.compressionType!==c.CMapCompressionType.NONE&&this.builtInCMapCache.set(t,o);return l.abrupt("return",o);case 24:case"end":return l.stop()}}),_callee,this)}))),function fetchBuiltInCMap(t){return Z.apply(this,arguments)})},{key:"fetchStandardFontData",value:(Q=_asyncToGenerator(l.default.mark((function _callee2(t){var r,o,u,h,d,m;return l.default.wrap((function _callee2$(l){for(;;)switch(l.prev=l.next){case 0:if(!(r=this.standardFontDataCache.get(t))){l.next=3;break}return l.abrupt("return",new O.Stream(r));case 3:if(!this.options.useSystemFonts||"Symbol"===t||"ZapfDingbats"===t){l.next=5;break}return l.abrupt("return",null);case 5:o=(0,y.getFontNameToFileMap)(),u=o[t];if(null===this.options.standardFontDataUrl){l.next=20;break}d="".concat(this.options.standardFontDataUrl).concat(u);l.next=10;return fetch(d);case 10:if((m=l.sent).ok){l.next=15;break}(0,c.warn)('fetchStandardFontData: failed to fetch file "'.concat(d,'" with "').concat(m.statusText,'".'));l.next=18;break;case 15:l.next=17;return m.arrayBuffer();case 17:h=l.sent;case 18:l.next=29;break;case 20:l.prev=20;l.next=23;return this.handler.sendWithPromise("FetchStandardFontData",{filename:u});case 23:h=l.sent;l.next=29;break;case 26:l.prev=26;l.t0=l.catch(20);(0,c.warn)('fetchStandardFontData: failed to fetch file "'.concat(u,'" with "').concat(l.t0,'".'));case 29:if(h){l.next=31;break}return l.abrupt("return",null);case 31:this.standardFontDataCache.set(t,h);return l.abrupt("return",new O.Stream(h));case 33:case"end":return l.stop()}}),_callee2,this,[[20,26]])}))),function fetchStandardFontData(t){return Q.apply(this,arguments)})},{key:"buildFormXObject",value:(z=_asyncToGenerator(l.default.mark((function _callee3(t,r,o,u,d,m,g){var y,v,S,_,k,C,w,x,O,T;return l.default.wrap((function _callee3$(l){for(;;)switch(l.prev=l.next){case 0:y=r.dict;v=y.getArray("Matrix");S=y.getArray("BBox");S=Array.isArray(S)&&4===S.length?c.Util.normalizeRect(S):null;if(!y.has("OC")){l.next=8;break}l.next=7;return this.parseMarkedContentProps(y.get("OC"),t);case 7:_=l.sent;case 8:void 0!==_&&u.addOp(c.OPS.beginMarkedContentProps,["OC",_]);if(!(C=y.get("Group"))){l.next=29;break}k={matrix:v,bbox:S,smask:o,isolated:!1,knockout:!1};w=C.get("S");x=null;if(!(0,h.isName)(w,"Transparency")){l.next=27;break}k.isolated=C.get("I")||!1;k.knockout=C.get("K")||!1;if(!C.has("CS")){l.next=27;break}O=C.getRaw("CS");if(!(T=R.ColorSpace.getCached(O,this.xref,g))){l.next=24;break}x=T;l.next=27;break;case 24:l.next=26;return this.parseColorSpace({cs:O,resources:t,localColorSpaceCache:g});case 26:x=l.sent;case 27:if(o&&o.backdrop){x=x||R.ColorSpace.singletons.rgb;o.backdrop=x.getRgb(o.backdrop,0)}u.addOp(c.OPS.beginGroup,[k]);case 29:u.addOp(c.OPS.paintFormXObjectBegin,[v,S]);return l.abrupt("return",this.getOperatorList({stream:r,task:d,resources:y.get("Resources")||t,operatorList:u,initialState:m}).then((function(){u.addOp(c.OPS.paintFormXObjectEnd,[]);C&&u.addOp(c.OPS.endGroup,[k]);void 0!==_&&u.addOp(c.OPS.endMarkedContent,[])})));case 31:case"end":return l.stop()}}),_callee3,this)}))),function buildFormXObject(t,r,o,l,c,u,h){return z.apply(this,arguments)})},{key:"_sendImgData",value:function _sendImgData(t,r){var o=arguments.length>2&&void 0!==arguments[2]&&arguments[2],l=r?[r.data.buffer]:null;return this.parsingType3Font||o?this.handler.send("commonobj",[t,"Image",r],l):this.handler.send("obj",[t,this.pageIndex,"Image",r],l)}},{key:"buildPaintImageXObject",value:(D=_asyncToGenerator(l.default.mark((function _callee4(t){var r,o,u,h,d,m,g,y,v,S,_,k,C,w,x,O,T,R,M,D,j,L,N,H,W,$,q,X,z=this;return l.default.wrap((function _callee4$(l){for(;;)switch(l.prev=l.next){case 0:r=t.resources,o=t.image,u=t.isInline,h=void 0!==u&&u,d=t.operatorList,m=t.cacheKey,g=t.localImageCache,y=t.localColorSpaceCache;v=o.dict;S=v.objId;_=v.get("Width","W");k=v.get("Height","H");if(_&&(0,c.isNum)(_)&&k&&(0,c.isNum)(k)){l.next=8;break}(0,c.warn)("Image dimensions are missing, or not numbers.");return l.abrupt("return");case 8:if(!(-1!==(C=this.options.maxImageSize)&&_*k>C)){l.next=12;break}(0,c.warn)("Image exceeded maximum allowed size and was removed.");return l.abrupt("return");case 12:if(!v.has("OC")){l.next=16;break}l.next=15;return this.parseMarkedContentProps(v.get("OC"),r);case 15:w=l.sent;case 16:void 0!==w&&d.addOp(c.OPS.beginMarkedContentProps,["OC",w]);x=v.get("ImageMask","IM")||!1;O=v.get("Interpolate","I");if(!x){l.next=32;break}M=v.get("Width","W");D=v.get("Height","H");j=M+7>>3;L=o.getBytes(j*D,!0);N=v.getArray("Decode","D");(T=U.PDFImage.createMask({imgArray:L,width:M,height:D,imageIsFromDecodeStream:o instanceof E.DecodeStream,inverseDecode:!!N&&N[0]>0,interpolate:O})).cached=!!m;R=[T];d.addOp(c.OPS.paintImageMaskXObject,R);m&&g.set(m,S,{fn:c.OPS.paintImageMaskXObject,args:R});void 0!==w&&d.addOp(c.OPS.endMarkedContent,[]);return l.abrupt("return");case 32:H=v.get("SMask","SM")||!1;W=v.get("Mask")||!1;if(!h||H||W||!(_+k<200)){l.next=41;break}$=new U.PDFImage({xref:this.xref,res:r,image:o,isInline:h,pdfFunctionFactory:this._pdfFunctionFactory,localColorSpaceCache:y});T=$.createImageData(!0);d.addOp(c.OPS.paintInlineImageXObject,[T]);void 0!==w&&d.addOp(c.OPS.endMarkedContent,[]);return l.abrupt("return");case 41:q="img_".concat(this.idFactory.createObjId()),X=!1;this.parsingType3Font?q="".concat(this.idFactory.getDocId(),"_type3_").concat(q):S&&(X=this.globalImageCache.shouldCache(S,this.pageIndex))&&(q="".concat(this.idFactory.getDocId(),"_").concat(q));d.addDependency(q);R=[q,_,k];U.PDFImage.buildImage({xref:this.xref,res:r,image:o,isInline:h,pdfFunctionFactory:this._pdfFunctionFactory,localColorSpaceCache:y}).then((function(t){T=t.createImageData(!1);m&&S&&X&&z.globalImageCache.addByteSize(S,T.data.length);return z._sendImgData(q,T,X)})).catch((function(t){(0,c.warn)('Unable to decode image "'.concat(q,'": "').concat(t,'".'));return z._sendImgData(q,null,X)}));d.addOp(c.OPS.paintImageXObject,R);if(m){g.set(m,S,{fn:c.OPS.paintImageXObject,args:R});if(S){(0,c.assert)(!h,"Cannot cache an inline image globally.");this.globalImageCache.addPageIndex(S,this.pageIndex);X&&this.globalImageCache.setData(S,{objId:q,fn:c.OPS.paintImageXObject,args:R,byteSize:0})}}void 0!==w&&d.addOp(c.OPS.endMarkedContent,[]);case 49:case"end":return l.stop()}}),_callee4,this)}))),function buildPaintImageXObject(t){return D.apply(this,arguments)})},{key:"handleSMask",value:function handleSMask(t,r,o,l,c,u){var h=t.get("G"),d={subtype:t.get("S").name,backdrop:t.get("BC")},m=t.get("TR");if((0,C.isPDFFunction)(m)){for(var g=this._pdfFunctionFactory.create(m),y=new Uint8Array(256),v=new Float32Array(1),S=0;S<256;S++){v[0]=S/255;g(v,0,v,0);y[S]=255*v[0]|0}d.transferMap=y}return this.buildFormXObject(r,h,d,o,l,c.state.clone(),u)}},{key:"handleTransferFunction",value:function handleTransferFunction(t){var r;if(Array.isArray(t))r=t;else{if(!(0,C.isPDFFunction)(t))return null;r=[t]}var o,l=[],c=0,u=0,d=_createForOfIteratorHelper(r);try{for(d.s();!(o=d.n()).done;){var m=o.value,g=this.xref.fetchIfRef(m);c++;if((0,h.isName)(g,"Identity"))l.push(null);else{if(!(0,C.isPDFFunction)(g))return null;for(var y=this._pdfFunctionFactory.create(g),v=new Uint8Array(256),S=new Float32Array(1),_=0;_<256;_++){S[0]=_/255;y(S,0,S,0);v[_]=255*S[0]|0}l.push(v);u++}}}catch(t){d.e(t)}finally{d.f()}return 1!==c&&4!==c||0===u?null:l}},{key:"handleTilingType",value:function handleTilingType(t,r,o,l,u,d,m,g){var y=this,v=new N.OperatorList,_=h.Dict.merge({xref:this.xref,dictArray:[u.get("Resources"),o]});return this.getOperatorList({stream:l,task:m,resources:_,operatorList:v}).then((function(){var o=v.getIR(),l=(0,S.getTilingPatternIR)(o,u,r);d.addDependencies(v.dependencies);d.addOp(t,l);u.objId&&g.set(null,u.objId,{operatorListIR:o,dict:u})})).catch((function(t){if(!(t instanceof c.AbortException)){if(!y.options.ignoreErrors)throw t;y.handler.send("UnsupportedFeature",{featureId:c.UNSUPPORTED_FEATURES.errorTilingPattern});(0,c.warn)('handleTilingType - ignoring pattern: "'.concat(t,'".'))}}))}},{key:"handleSetFont",value:function handleSetFont(t,r,o,l,u,m){var g=this,y=arguments.length>6&&void 0!==arguments[6]?arguments[6]:null,v=arguments.length>7&&void 0!==arguments[7]?arguments[7]:null,S=r&&r[0]instanceof h.Name?r[0].name:null;return this.loadFont(S,o,t,y,v).then((function(r){return r.font.isType3Font?r.loadType3Data(g,t,u).then((function(){l.addDependencies(r.type3Dependencies);return r})).catch((function(t){g.handler.send("UnsupportedFeature",{featureId:c.UNSUPPORTED_FEATURES.errorFontLoadType3});return new G({loadedName:"g_font_error",font:new d.ErrorFont("Type3 font load error: ".concat(t)),dict:r.font,evaluatorOptions:g.options})})):r})).then((function(t){m.font=t.font;t.send(g.handler);return t.loadedName}))}},{key:"handleText",value:function handleText(t,r){var o=r.font,l=o.charsToGlyphs(t);if(o.data){(!!(r.textRenderingMode&c.TextRenderingMode.ADD_TO_PATH_FLAG)||"Pattern"===r.fillColorSpace.name||o.disableFontFace||this.options.disableFontFace)&&PartialEvaluator.buildFontPaths(o,l,this.handler,this.options)}return l}},{key:"ensureStateFont",value:function ensureStateFont(t){if(!t.font){var r=new c.FormatError("Missing setFont (Tf) operator before text rendering operator.");if(!this.options.ignoreErrors)throw r;this.handler.send("UnsupportedFeature",{featureId:c.UNSUPPORTED_FEATURES.errorFontState});(0,c.warn)('ensureStateFont: "'.concat(r,'".'))}}},{key:"setGState",value:(w=_asyncToGenerator(l.default.mark((function _callee5(t){var r,o,u,d,m,g,y,v,S,_,k,C,w,x,O,T,R=this;return l.default.wrap((function _callee5$(l){for(;;)switch(l.prev=l.next){case 0:r=t.resources,o=t.gState,u=t.operatorList,d=t.cacheKey,m=t.task,g=t.stateManager,y=t.localGStateCache,v=t.localColorSpaceCache;S=o.objId;_=!0;k=[];C=o.getKeys();w=Promise.resolve();x=function _loop(t,l){var d=C[t],y=o.get(d);switch(d){case"Type":break;case"LW":case"LC":case"LJ":case"ML":case"D":case"RI":case"FL":case"CA":case"ca":k.push([d,y]);break;case"Font":_=!1;w=w.then((function(){return R.handleSetFont(r,null,y[0],u,m,g.state).then((function(t){u.addDependency(t);k.push([d,[t,y[1]]])}))}));break;case"BM":k.push([d,normalizeBlendMode(y)]);break;case"SMask":if((0,h.isName)(y,"None")){k.push([d,!1]);break}if((0,h.isDict)(y)){_=!1;w=w.then((function(){return R.handleSMask(y,r,u,m,g,v)}));k.push([d,!0])}else(0,c.warn)("Unsupported SMask type");break;case"TR":var S=R.handleTransferFunction(y);k.push([d,S]);break;case"OP":case"op":case"OPM":case"BG":case"BG2":case"UCR":case"UCR2":case"TR2":case"HT":case"SM":case"SA":case"AIS":case"TK":(0,c.info)("graphic state operator "+d);break;default:(0,c.info)("Unknown graphic state operator "+d)}};for(O=0,T=C.length;O<T;O++)x(O);return l.abrupt("return",w.then((function(){k.length>0&&u.addOp(c.OPS.setGState,[k]);_&&y.set(d,S,k)})));case 9:case"end":return l.stop()}}),_callee5)}))),function setGState(t){return w.apply(this,arguments)})},{key:"loadFont",value:function loadFont(t,r,o){var u,g=this,y=arguments.length>3&&void 0!==arguments[3]?arguments[3]:null,v=arguments.length>4&&void 0!==arguments[4]?arguments[4]:null,S=function(){var o=_asyncToGenerator(l.default.mark((function _callee6(){return l.default.wrap((function _callee6$(o){for(;;)switch(o.prev=o.next){case 0:return o.abrupt("return",new G({loadedName:"g_font_error",font:new d.ErrorFont('Font "'.concat(t,'" is not available.')),dict:r,evaluatorOptions:g.options}));case 1:case"end":return o.stop()}}),_callee6)})));return function errorFont(){return o.apply(this,arguments)}}(),_=this.xref;if(r){if(!(0,h.isRef)(r))throw new c.FormatError('The "font" object should be a reference.');u=r}else{var k=o.get("Font");k&&(u=k.getRaw(t))}if(!u){var C='Font "'.concat(t||r&&r.toString(),'" is not available');if(!this.options.ignoreErrors&&!this.parsingType3Font){(0,c.warn)("".concat(C,"."));return S()}this.handler.send("UnsupportedFeature",{featureId:c.UNSUPPORTED_FEATURES.errorFontMissing});(0,c.warn)("".concat(C," -- attempting to fallback to a default font."));u=y||PartialEvaluator.fallbackFontDict}if(this.fontCache.has(u))return this.fontCache.get(u);r=_.fetchIfRef(u);if(!(0,h.isDict)(r))return S();if(r.cacheKey&&this.fontCache.has(r.cacheKey))return this.fontCache.get(r.cacheKey);var w,x=(0,c.createPromiseCapability)();try{(w=this.preEvaluateFont(r)).cssFontInfo=v}catch(t){(0,c.warn)('loadFont - preEvaluateFont failed: "'.concat(t,'".'));return S()}var O,T=w,R=T.descriptor,E=T.hash,M=(0,h.isRef)(u);M&&(O="f".concat(u.toString()));if(E&&(0,h.isDict)(R)){R.fontAliases||(R.fontAliases=Object.create(null));var D=R.fontAliases;if(D[E]){var j=D[E].aliasRef;if(M&&j&&this.fontCache.has(j)){this.fontCache.putAlias(u,j);return this.fontCache.get(u)}}else D[E]={fontID:this.idFactory.createFontId()};M&&(D[E].aliasRef=u);O=D[E].fontID}if(M)this.fontCache.put(u,x.promise);else{O||(O=this.idFactory.createFontId());r.cacheKey="cacheKey_".concat(O);this.fontCache.put(r.cacheKey,x.promise)}(0,c.assert)(O&&O.startsWith("f"),'The "fontID" must be (correctly) defined.');r.loadedName="".concat(this.idFactory.getDocId(),"_").concat(O);this.translateFont(w).then((function(t){if(void 0!==t.fontType){_.stats.fontTypes[t.fontType]=!0}x.resolve(new G({loadedName:r.loadedName,font:t,dict:r,evaluatorOptions:g.options}))})).catch((function(t){g.handler.send("UnsupportedFeature",{featureId:c.UNSUPPORTED_FEATURES.errorFontTranslate});(0,c.warn)('loadFont - translateFont failed: "'.concat(t,'".'));try{var o=R&&R.get("FontFile3"),l=o&&o.get("Subtype"),u=(0,m.getFontType)(w.type,l&&l.name);_.stats.fontTypes[u]=!0}catch(t){}x.resolve(new G({loadedName:r.loadedName,font:new d.ErrorFont(t instanceof Error?t.message:t),dict:r,evaluatorOptions:g.options}))}));return x.promise}},{key:"buildPath",value:function buildPath(t,r,o){var l=arguments.length>3&&void 0!==arguments[3]&&arguments[3],u=t.length-1;o||(o=[]);if(u<0||t.fnArray[u]!==c.OPS.constructPath){if(l){(0,c.warn)('Encountered path operator "'.concat(r,'" inside of a text object.'));t.addOp(c.OPS.save,null)}t.addOp(c.OPS.constructPath,[[r],o]);l&&t.addOp(c.OPS.restore,null)}else{var h=t.argsArray[u];h[0].push(r);Array.prototype.push.apply(h[1],o)}}},{key:"parseColorSpace",value:function parseColorSpace(t){var r=this,o=t.cs,l=t.resources,u=t.localColorSpaceCache;return R.ColorSpace.parseAsync({cs:o,xref:this.xref,resources:l,pdfFunctionFactory:this._pdfFunctionFactory,localColorSpaceCache:u}).catch((function(t){if(t instanceof c.AbortException)return null;if(r.options.ignoreErrors){r.handler.send("UnsupportedFeature",{featureId:c.UNSUPPORTED_FEATURES.errorColorSpace});(0,c.warn)('parseColorSpace - ignoring ColorSpace: "'.concat(t,'".'));return null}throw t}))}},{key:"parseShading",value:function parseShading(t){var r=t.shading,o=t.resources,l=t.localColorSpaceCache,c=t.localShadingPatternCache,u=c.get(r);if(!u){var h=S.Pattern.parseShading(r,this.xref,o,this.handler,this._pdfFunctionFactory,l).getIR();u="pattern_".concat(this.idFactory.createObjId());c.set(r,u);this.handler.send("obj",[u,this.pageIndex,"Pattern",h])}return u}},{key:"handleColorN",value:function handleColorN(t,r,o,l,u,d,m,g,y,v){var _=o.pop();if(_ instanceof h.Name){var k=u.getRaw(_.name),C=k instanceof h.Ref&&y.getByRef(k);if(C)try{var w=l.base?l.base.getRgb(o,0):null,x=(0,S.getTilingPatternIR)(C.operatorListIR,C.dict,w);t.addOp(r,x);return}catch(t){}var O=this.xref.fetchIfRef(k);if(O){var T=(0,h.isStream)(O)?O.dict:O,R=T.get("PatternType");if(R===W){var E=l.base?l.base.getRgb(o,0):null;return this.handleTilingType(r,E,d,O,T,t,m,y)}if(R===$){var M=T.get("Shading"),D=T.getArray("Matrix"),j=this.parseShading({shading:M,resources:d,localColorSpaceCache:g,localShadingPatternCache:v});t.addOp(r,["Shading",j,D]);return}throw new c.FormatError("Unknown PatternType: ".concat(R))}}throw new c.FormatError("Unknown PatternName: ".concat(_))}},{key:"_parseVisibilityExpression",value:function _parseVisibilityExpression(t,r,o){if(++r>10)(0,c.warn)("Visibility expression is too deeply nested");else{var l=t.length,u=this.xref.fetchIfRef(t[0]);if(l<2||!(0,h.isName)(u))(0,c.warn)("Invalid visibility expression");else{switch(u.name){case"And":case"Or":case"Not":o.push(u.name);break;default:(0,c.warn)("Invalid operator ".concat(u.name," in visibility expression"));return}for(var d=1;d<l;d++){var m=t[d],g=this.xref.fetchIfRef(m);if(Array.isArray(g)){var y=[];o.push(y);this._parseVisibilityExpression(g,r,y)}else(0,h.isRef)(m)&&o.push(m.toString())}}}}},{key:"parseMarkedContentProps",value:(o=_asyncToGenerator(l.default.mark((function _callee7(t,r){var o,u,d,m,g,y,v,S,_,k;return l.default.wrap((function _callee7$(l){for(;;)switch(l.prev=l.next){case 0:if(!(0,h.isName)(t)){l.next=5;break}u=r.get("Properties");o=u.get(t.name);l.next=10;break;case 5:if(!(0,h.isDict)(t)){l.next=9;break}o=t;l.next=10;break;case 9:throw new c.FormatError("Optional content properties malformed.");case 10:if("OCG"!==(d=o.get("Type").name)){l.next=15;break}return l.abrupt("return",{type:d,id:o.objId});case 15:if("OCMD"!==d){l.next=31;break}m=o.get("VE");if(!Array.isArray(m)){l.next=22;break}g=[];this._parseVisibilityExpression(m,0,g);if(!(g.length>0)){l.next=22;break}return l.abrupt("return",{type:"OCMD",expression:g});case 22:y=o.get("OCGs");if(!Array.isArray(y)&&!(0,h.isDict)(y)){l.next=29;break}v=[];if(Array.isArray(y)){S=_createForOfIteratorHelper(y);try{for(S.s();!(_=S.n()).done;){k=_.value;v.push(k.toString())}}catch(t){S.e(t)}finally{S.f()}}else v.push(y.objId);return l.abrupt("return",{type:d,ids:v,policy:(0,h.isName)(o.get("P"))?o.get("P").name:null,expression:null});case 29:if(!(0,h.isRef)(y)){l.next=31;break}return l.abrupt("return",{type:d,id:y.toString()});case 31:return l.abrupt("return",null);case 32:case"end":return l.stop()}}),_callee7,this)}))),function parseMarkedContentProps(t,r){return o.apply(this,arguments)})},{key:"getOperatorList",value:function getOperatorList(t){var r=this,o=t.stream,l=t.task,u=t.resources,d=t.operatorList,m=t.initialState,g=void 0===m?null:m,y=t.fallbackFontDict,v=void 0===y?null:y;u=u||h.Dict.empty;g=g||new K;if(!d)throw new Error('getOperatorList: missing "operatorList" parameter');var S=this,_=this.xref,k=!1,C=new x.LocalImageCache,w=new x.LocalColorSpaceCache,O=new x.LocalGStateCache,T=new x.LocalTilingPatternCache,E=new Map,M=u.get("XObject")||h.Dict.empty,D=u.get("Pattern")||h.Dict.empty,j=new V(g),L=new J(o,_,j),N=new X;function closePendingRestoreOPS(t){for(var r=0,o=L.savedStatesDepth;r<o;r++)d.addOp(c.OPS.restore,[])}return new Promise((function promiseBody(t,r){var o=function next(o){Promise.all([o,d.ready]).then((function(){try{promiseBody(t,r)}catch(t){r(t)}}),r)};l.ensureNotTerminated();N.reset();for(var m,g,y,x,U,H,W={};!(m=N.check());){W.args=null;if(!L.read(W))break;var $=W.args,X=W.fn;switch(0|X){case c.OPS.paintXObject:H=$[0]instanceof h.Name;U=$[0].name;if(H){var z=C.getByName(U);if(z){d.addOp(z.fn,z.args);$=null;continue}}o(new Promise((function(t,r){if(!H)throw new c.FormatError("XObject must be referred to by name.");var o=M.getRaw(U);if(o instanceof h.Ref){var m=C.getByRef(o);if(m){d.addOp(m.fn,m.args);t();return}var g=S.globalImageCache.getData(o,S.pageIndex);if(g){d.addDependency(g.objId);d.addOp(g.fn,g.args);t();return}o=_.fetch(o)}if(!(0,h.isStream)(o))throw new c.FormatError("XObject should be a stream");var y=o.dict.get("Subtype");if(!(0,h.isName)(y))throw new c.FormatError("XObject should have a Name subtype");if("Form"!==y.name)if("Image"!==y.name){if("PS"!==y.name)throw new c.FormatError("Unhandled XObject subtype ".concat(y.name));(0,c.info)("Ignored XObject subtype PS");t()}else S.buildPaintImageXObject({resources:u,image:o,operatorList:d,cacheKey:U,localImageCache:C,localColorSpaceCache:w}).then(t,r);else{j.save();S.buildFormXObject(u,o,null,d,l,j.state.clone(),w).then((function(){j.restore();t()}),r)}})).catch((function(t){if(!(t instanceof c.AbortException)){if(!S.options.ignoreErrors)throw t;S.handler.send("UnsupportedFeature",{featureId:c.UNSUPPORTED_FEATURES.errorXObject});(0,c.warn)('getOperatorList - ignoring XObject: "'.concat(t,'".'))}})));return;case c.OPS.setFont:var G=$[1];o(S.handleSetFont(u,$,null,d,l,j.state,v).then((function(t){d.addDependency(t);d.addOp(c.OPS.setFont,[t,G])})));return;case c.OPS.beginText:k=!0;break;case c.OPS.endText:k=!1;break;case c.OPS.endInlineImage:var V=$[0].cacheKey;if(V){var Y=C.getByName(V);if(Y){d.addOp(Y.fn,Y.args);$=null;continue}}o(S.buildPaintImageXObject({resources:u,image:$[0],isInline:!0,operatorList:d,cacheKey:V,localImageCache:C,localColorSpaceCache:w}));return;case c.OPS.showText:if(!j.state.font){S.ensureStateFont(j.state);continue}$[0]=S.handleText($[0],j.state);break;case c.OPS.showSpacedText:if(!j.state.font){S.ensureStateFont(j.state);continue}var K=$[0],J=[],Q=K.length,Z=j.state;for(g=0;g<Q;++g){var ee=K[g];(0,c.isString)(ee)?Array.prototype.push.apply(J,S.handleText(ee,Z)):(0,c.isNum)(ee)&&J.push(ee)}$[0]=J;X=c.OPS.showText;break;case c.OPS.nextLineShowText:if(!j.state.font){S.ensureStateFont(j.state);continue}d.addOp(c.OPS.nextLine);$[0]=S.handleText($[0],j.state);X=c.OPS.showText;break;case c.OPS.nextLineSetSpacingShowText:if(!j.state.font){S.ensureStateFont(j.state);continue}d.addOp(c.OPS.nextLine);d.addOp(c.OPS.setWordSpacing,[$.shift()]);d.addOp(c.OPS.setCharSpacing,[$.shift()]);$[0]=S.handleText($[0],j.state);X=c.OPS.showText;break;case c.OPS.setTextRenderingMode:j.state.textRenderingMode=$[0];break;case c.OPS.setFillColorSpace:var te=R.ColorSpace.getCached($[0],_,w);if(te){j.state.fillColorSpace=te;continue}o(S.parseColorSpace({cs:$[0],resources:u,localColorSpaceCache:w}).then((function(t){t&&(j.state.fillColorSpace=t)})));return;case c.OPS.setStrokeColorSpace:var re=R.ColorSpace.getCached($[0],_,w);if(re){j.state.strokeColorSpace=re;continue}o(S.parseColorSpace({cs:$[0],resources:u,localColorSpaceCache:w}).then((function(t){t&&(j.state.strokeColorSpace=t)})));return;case c.OPS.setFillColor:$=(x=j.state.fillColorSpace).getRgb($,0);X=c.OPS.setFillRGBColor;break;case c.OPS.setStrokeColor:$=(x=j.state.strokeColorSpace).getRgb($,0);X=c.OPS.setStrokeRGBColor;break;case c.OPS.setFillGray:j.state.fillColorSpace=R.ColorSpace.singletons.gray;$=R.ColorSpace.singletons.gray.getRgb($,0);X=c.OPS.setFillRGBColor;break;case c.OPS.setStrokeGray:j.state.strokeColorSpace=R.ColorSpace.singletons.gray;$=R.ColorSpace.singletons.gray.getRgb($,0);X=c.OPS.setStrokeRGBColor;break;case c.OPS.setFillCMYKColor:j.state.fillColorSpace=R.ColorSpace.singletons.cmyk;$=R.ColorSpace.singletons.cmyk.getRgb($,0);X=c.OPS.setFillRGBColor;break;case c.OPS.setStrokeCMYKColor:j.state.strokeColorSpace=R.ColorSpace.singletons.cmyk;$=R.ColorSpace.singletons.cmyk.getRgb($,0);X=c.OPS.setStrokeRGBColor;break;case c.OPS.setFillRGBColor:j.state.fillColorSpace=R.ColorSpace.singletons.rgb;$=R.ColorSpace.singletons.rgb.getRgb($,0);break;case c.OPS.setStrokeRGBColor:j.state.strokeColorSpace=R.ColorSpace.singletons.rgb;$=R.ColorSpace.singletons.rgb.getRgb($,0);break;case c.OPS.setFillColorN:if("Pattern"===(x=j.state.fillColorSpace).name){o(S.handleColorN(d,c.OPS.setFillColorN,$,x,D,u,l,w,T,E));return}$=x.getRgb($,0);X=c.OPS.setFillRGBColor;break;case c.OPS.setStrokeColorN:if("Pattern"===(x=j.state.strokeColorSpace).name){o(S.handleColorN(d,c.OPS.setStrokeColorN,$,x,D,u,l,w,T,E));return}$=x.getRgb($,0);X=c.OPS.setStrokeRGBColor;break;case c.OPS.shadingFill:var ae=u.get("Shading");if(!ae)throw new c.FormatError("No shading resource found");var ne=ae.get($[0].name);if(!ne)throw new c.FormatError("No shading object found");$=[S.parseShading({shading:ne,resources:u,localColorSpaceCache:w,localShadingPatternCache:E})];X=c.OPS.shadingFill;break;case c.OPS.setGState:H=$[0]instanceof h.Name;U=$[0].name;if(H){var ie=O.getByName(U);if(ie){ie.length>0&&d.addOp(c.OPS.setGState,[ie]);$=null;continue}}o(new Promise((function(t,r){if(!H)throw new c.FormatError("GState must be referred to by name.");var o=u.get("ExtGState");if(!(o instanceof h.Dict))throw new c.FormatError("ExtGState should be a dictionary.");var m=o.get(U);if(!(m instanceof h.Dict))throw new c.FormatError("GState should be a dictionary.");S.setGState({resources:u,gState:m,operatorList:d,cacheKey:U,task:l,stateManager:j,localGStateCache:O,localColorSpaceCache:w}).then(t,r)})).catch((function(t){if(!(t instanceof c.AbortException)){if(!S.options.ignoreErrors)throw t;S.handler.send("UnsupportedFeature",{featureId:c.UNSUPPORTED_FEATURES.errorExtGState});(0,c.warn)('getOperatorList - ignoring ExtGState: "'.concat(t,'".'))}})));return;case c.OPS.moveTo:case c.OPS.lineTo:case c.OPS.curveTo:case c.OPS.curveTo2:case c.OPS.curveTo3:case c.OPS.closePath:case c.OPS.rectangle:S.buildPath(d,X,$,k);continue;case c.OPS.markPoint:case c.OPS.markPointProps:case c.OPS.beginCompat:case c.OPS.endCompat:continue;case c.OPS.beginMarkedContentProps:if(!(0,h.isName)($[0])){(0,c.warn)("Expected name for beginMarkedContentProps arg0=".concat($[0]));continue}if("OC"===$[0].name){o(S.parseMarkedContentProps($[1],u).then((function(t){d.addOp(c.OPS.beginMarkedContentProps,["OC",t])})).catch((function(t){if(!(t instanceof c.AbortException)){if(!S.options.ignoreErrors)throw t;S.handler.send("UnsupportedFeature",{featureId:c.UNSUPPORTED_FEATURES.errorMarkedContent});(0,c.warn)('getOperatorList - ignoring beginMarkedContentProps: "'.concat(t,'".'))}})));return}$=[$[0].name,$[1]instanceof h.Dict?$[1].get("MCID"):null];break;case c.OPS.beginMarkedContent:case c.OPS.endMarkedContent:default:if(null!==$){for(g=0,y=$.length;g<y&&!($[g]instanceof h.Dict);g++);if(g<y){(0,c.warn)("getOperatorList - ignoring operator: "+X);continue}}}d.addOp(X,$)}if(m)o(q);else{closePendingRestoreOPS();t()}})).catch((function(t){if(!(t instanceof c.AbortException)){if(!r.options.ignoreErrors)throw t;r.handler.send("UnsupportedFeature",{featureId:c.UNSUPPORTED_FEATURES.errorOperatorList});(0,c.warn)('getOperatorList - ignoring errors during "'.concat(l.name,'" ')+'task: "'.concat(t,'".'));closePendingRestoreOPS()}}))}},{key:"getTextContent",value:function getTextContent(t){var r=this,o=t.stream,l=t.task,u=t.resources,d=t.stateManager,m=void 0===d?null:d,g=t.normalizeWhitespace,y=void 0!==g&&g,S=t.combineTextItems,_=void 0!==S&&S,k=t.includeMarkedContent,C=void 0!==k&&k,w=t.sink,O=t.seenStyles,R=void 0===O?new Set:O;u=u||h.Dict.empty;m=m||new V(new Y);var E,M=/\s/g,D={items:[],styles:Object.create(null)},j={initialized:!1,str:[],totalWidth:0,totalHeight:0,width:0,height:0,vertical:!1,lastCharSize:0,prevTransform:null,textAdvanceScale:0,spaceWidth:0,spaceInFlowMin:0,spaceInFlowMax:0,trackingSpaceMin:1/0,transform:null,fontName:null,hasEOL:!1,isLastCharWhiteSpace:!1},L=this,N=this.xref,U=[],H=null,W=new x.LocalImageCache,$=new x.LocalGStateCache,z=new J(o,N,m);function getCurrentTextTransform(){var t=E.font,r=[E.fontSize*E.textHScale,0,0,E.fontSize,0,E.textRise];if(t.isType3Font&&(E.fontSize<=1||t.isCharBBox)&&!(0,c.isArrayEqual)(E.fontMatrix,c.FONT_IDENTITY_MATRIX)){var o=t.bbox[3]-t.bbox[1];o>0&&(r[3]*=o*E.fontMatrix[3])}return c.Util.transform(E.ctm,c.Util.transform(E.textMatrix,r))}function ensureTextContentItem(){if(j.initialized)return j;var t=E.font,r=t.loadedName;if(!R.has(r)){R.add(r);D.styles[r]={fontFamily:t.fallbackName,ascent:t.ascent,descent:t.descent,vertical:t.vertical}}j.fontName=r;var o=j.transform=getCurrentTextTransform();if(t.vertical){j.width=j.totalWidth=Math.hypot(o[0],o[1]);j.height=j.totalHeight=0;j.vertical=!0}else{j.width=j.totalWidth=0;j.height=j.totalHeight=Math.hypot(o[2],o[3]);j.vertical=!1}var l=Math.hypot(E.textLineMatrix[0],E.textLineMatrix[1]),c=Math.hypot(E.ctm[0],E.ctm[1]);j.textAdvanceScale=c*l;j.lastCharSize=j.lastCharSize||0;var u=t.spaceWidth/1e3*E.fontSize;if(u){j.spaceWidth=u;j.trackingSpaceMin=.3*u;j.spaceInFlowMin=.3*u;j.spaceInFlowMax=1.3*u}else{j.spaceWidth=0;j.trackingSpaceMin=1/0}j.hasEOL=!1;j.initialized=!0;return j}function updateAdvanceScale(){if(j.initialized){var t=Math.hypot(E.textLineMatrix[0],E.textLineMatrix[1]),r=Math.hypot(E.ctm[0],E.ctm[1])*t;if(r!==j.textAdvanceScale){if(j.vertical){j.totalHeight+=j.height*j.textAdvanceScale;j.height=0}else{j.totalWidth+=j.width*j.textAdvanceScale;j.width=0}j.textAdvanceScale=r}}}function runBidiTransform(t){var r=t.str.join(""),o=(0,T.bidi)(r,-1,t.vertical);return{str:y?function replaceWhitespace(t){for(var r,o=t.length,l=0;l<o&&(r=t.charCodeAt(l))>=32&&r<=127;)l++;return l<o?t.replace(M," "):t}(o.str):o.str,dir:o.dir,width:t.totalWidth,height:t.totalHeight,transform:t.transform,fontName:t.fontName,hasEOL:t.hasEOL}}function handleSetFont(t,r){return L.loadFont(t,r,u).then((function(t){return t.font.isType3Font?t.loadType3Data(L,u,l).catch((function(){})).then((function(){return t})):t})).then((function(t){E.font=t.font;E.fontMatrix=t.font.fontMatrix||c.FONT_IDENTITY_MATRIX}))}function buildTextContentItem(t){var r=t.chars,o=t.extraSpacing,l=t.isFirstChunk,c=E.font;if(r){var u=(0,v.getNormalizedUnicodes)(),h=c.charsToGlyphs(r),d=E.fontMatrix[0]*E.fontSize;l&&function compareWithLastPosition(t){if(_&&E.font&&j.prevTransform){var r=getCurrentTextTransform(),o=r[4],l=r[5],c=j.prevTransform[4],u=j.prevTransform[5];if(c!==o||u!==l){var h=(o-c)/j.textAdvanceScale,d=(l-u)/j.textAdvanceScale,m=-.5*j.lastCharSize;if(E.font.vertical){if(Math.abs(h)>j.width/j.textAdvanceScale){appendEOL();return}if(m>d)return;if(d>j.trackingSpaceMin)j.height+=d;else if(!addFakeSpaces(d,0,j.prevTransform))if(0===j.str.length){D.items.push({str:" ",dir:"ltr",width:0,height:d,transform:j.prevTransform,fontName:j.fontName,hasEOL:!1});j.isLastCharWhiteSpace=!0}else j.height+=d}else if(Math.abs(d)>j.height/j.textAdvanceScale)appendEOL();else if(!(m>h))if(h<=j.trackingSpaceMin)j.width+=h;else if(!addFakeSpaces(h,0,j.prevTransform))if(0===j.str.length){D.items.push({str:" ",dir:"ltr",width:h,height:0,transform:j.prevTransform,fontName:j.fontName,hasEOL:!1});j.isLastCharWhiteSpace=!0}else j.width+=h}}}();for(var m=ensureTextContentItem(),g=0,y=0,S=0,k=h.length;S<k;S++){var C=h[S],w=E.charSpacing+(S===k-1?o:0),x=C.unicode;if(C.isSpace){w+=E.wordSpacing;m.isLastCharWhiteSpace=!0}else{x=u[x]||x;x=(0,v.reverseIfRtl)(x);m.isLastCharWhiteSpace=!1}m.str.push(x);var O=(c.vertical&&C.vmetric?C.vmetric[0]:C.width)*d;if(c.vertical){E.translateTextMatrix(0,O);O=Math.abs(O)}else{O*=E.textHScale;E.translateTextMatrix(O,0)}g+=O;if(w){c.vertical||(w*=E.textHScale);O+=w;var T=w>j.trackingSpaceMin&&addFakeSpaces(w,g);c.vertical?E.translateTextMatrix(0,w):E.translateTextMatrix(w,0);if(T){m=ensureTextContentItem();g=0}else g+=w}y=O}m.lastCharSize=y;c.vertical?m.height+=g:m.width+=g;m.prevTransform=getCurrentTextTransform()}else{var R=E.charSpacing+o;R&&(c.vertical?E.translateTextMatrix(0,R):E.translateTextMatrix(R*E.textHScale,0))}}function appendEOL(){if(j.initialized){j.hasEOL=!0;flushTextContentItem()}else D.items.push({str:"",dir:"ltr",width:0,height:0,transform:getCurrentTextTransform(),fontName:E.font.loadedName,hasEOL:!0});j.isLastCharWhiteSpace=!1;j.lastCharSize=0}function addFakeSpaces(t,r){var o=arguments.length>2&&void 0!==arguments[2]?arguments[2]:null;if(j.spaceInFlowMin<=t&&t<=j.spaceInFlowMax){if(j.initialized){j.str.push(" ");j.isLastCharWhiteSpace=!0}return!1}var l=j.fontName,c=0;t*=j.textAdvanceScale;if(j.vertical){j.height+=r;c=t;t=0}else j.width+=r;flushTextContentItem();if(j.isLastCharWhiteSpace)return!0;j.isLastCharWhiteSpace=!0;D.items.push({str:" ",dir:"ltr",width:t,height:c,transform:o||getCurrentTextTransform(),fontName:l,hasEOL:!1});return!0}function flushTextContentItem(){if(j.initialized&&j.str){j.vertical?j.totalHeight+=j.height*j.textAdvanceScale:j.totalWidth+=j.width*j.textAdvanceScale;D.items.push(runBidiTransform(j));j.initialized=!1;j.str.length=0}}function enqueueChunk(){var t=arguments.length>0&&void 0!==arguments[0]&&arguments[0],r=D.items.length;if(0!==r&&!(t&&r<10)){w.enqueue(D,r);D.items=[];D.styles=Object.create(null)}}var G=new X;return new Promise((function promiseBody(t,r){var o=function next(o){enqueueChunk(!0);Promise.all([o,w.ready]).then((function(){try{promiseBody(t,r)}catch(t){r(t)}}),r)};l.ensureNotTerminated();G.reset();for(var d,g={},v=[];!(d=G.check());){v.length=0;g.args=v;if(!z.read(g))break;E=m.state;var S=g.fn;v=g.args;switch(0|S){case c.OPS.setFont:var k=v[0].name,x=v[1];if(E.font&&k===E.fontName&&x===E.fontSize)break;flushTextContentItem();E.fontName=k;E.fontSize=x;o(handleSetFont(k,null));return;case c.OPS.setTextRise:flushTextContentItem();E.textRise=v[0];break;case c.OPS.setHScale:flushTextContentItem();E.textHScale=v[0]/100;break;case c.OPS.setLeading:flushTextContentItem();E.leading=v[0];break;case c.OPS.moveText:E.translateTextLineMatrix(v[0],v[1]);E.textMatrix=E.textLineMatrix.slice();break;case c.OPS.setLeadingMoveText:flushTextContentItem();E.leading=-v[1];E.translateTextLineMatrix(v[0],v[1]);E.textMatrix=E.textLineMatrix.slice();break;case c.OPS.nextLine:appendEOL();E.carriageReturn();break;case c.OPS.setTextMatrix:E.setTextMatrix(v[0],v[1],v[2],v[3],v[4],v[5]);E.setTextLineMatrix(v[0],v[1],v[2],v[3],v[4],v[5]);updateAdvanceScale();break;case c.OPS.setCharSpacing:E.charSpacing=v[0];break;case c.OPS.setWordSpacing:E.wordSpacing=v[0];break;case c.OPS.beginText:flushTextContentItem();E.textMatrix=c.IDENTITY_MATRIX.slice();E.textLineMatrix=c.IDENTITY_MATRIX.slice();break;case c.OPS.showSpacedText:if(!m.state.font){L.ensureStateFont(m.state);continue}for(var O=(E.font.vertical?1:-1)*E.fontSize/1e3,T=v[0],M=!0,X=0,Y=T.length;X<Y-1;X++){var K=T[X];if("string"==typeof K)U.push(K);else if("number"==typeof K&&0!==K){var J=U.join("");U.length=0;buildTextContentItem({chars:J,extraSpacing:K*O,isFirstChunk:M});J&&M&&(M=!1)}}var Q=T[T.length-1];"string"==typeof Q&&U.push(Q);if(U.length>0){var Z=U.join("");U.length=0;buildTextContentItem({chars:Z,extraSpacing:0,isFirstChunk:M})}break;case c.OPS.showText:if(!m.state.font){L.ensureStateFont(m.state);continue}buildTextContentItem({chars:v[0],extraSpacing:0,isFirstChunk:!0});break;case c.OPS.nextLineShowText:if(!m.state.font){L.ensureStateFont(m.state);continue}j.hasEOL=!0;flushTextContentItem();E.carriageReturn();buildTextContentItem({chars:v[0],extraSpacing:0,isFirstChunk:!0});break;case c.OPS.nextLineSetSpacingShowText:if(!m.state.font){L.ensureStateFont(m.state);continue}j.hasEOL=!0;flushTextContentItem();E.wordSpacing=v[0];E.charSpacing=v[1];E.carriageReturn();buildTextContentItem({chars:v[2],extraSpacing:0,isFirstChunk:!0});break;case c.OPS.paintXObject:flushTextContentItem();H||(H=u.get("XObject")||h.Dict.empty);var ee=v[0]instanceof h.Name,te=v[0].name;if(ee&&W.getByName(te))break;o(new Promise((function(t,r){if(!ee)throw new c.FormatError("XObject must be referred to by name.");var o=H.getRaw(te);if(o instanceof h.Ref){if(W.getByRef(o)){t();return}if(L.globalImageCache.getData(o,L.pageIndex)){t();return}o=N.fetch(o)}if(!(0,h.isStream)(o))throw new c.FormatError("XObject should be a stream");var d=o.dict.get("Subtype");if(!(0,h.isName)(d))throw new c.FormatError("XObject should have a Name subtype");if("Form"===d.name){var g=m.state.clone(),v=new V(g),S=o.dict.getArray("Matrix");Array.isArray(S)&&6===S.length&&v.transform(S);enqueueChunk();var k={enqueueInvoked:!1,enqueue:function enqueue(t,r){this.enqueueInvoked=!0;w.enqueue(t,r)},get desiredSize(){return w.desiredSize},get ready(){return w.ready}};L.getTextContent({stream:o,task:l,resources:o.dict.get("Resources")||u,stateManager:v,normalizeWhitespace:y,combineTextItems:_,includeMarkedContent:C,sink:k,seenStyles:R}).then((function(){k.enqueueInvoked||W.set(te,o.dict.objId,!0);t()}),r)}else{W.set(te,o.dict.objId,!0);t()}})).catch((function(t){if(!(t instanceof c.AbortException)){if(!L.options.ignoreErrors)throw t;(0,c.warn)('getTextContent - ignoring XObject: "'.concat(t,'".'))}})));return;case c.OPS.setGState:ee=v[0]instanceof h.Name;te=v[0].name;if(ee&&$.getByName(te))break;o(new Promise((function(t,r){if(!ee)throw new c.FormatError("GState must be referred to by name.");var o=u.get("ExtGState");if(!(o instanceof h.Dict))throw new c.FormatError("ExtGState should be a dictionary.");var l=o.get(te);if(!(l instanceof h.Dict))throw new c.FormatError("GState should be a dictionary.");var d=l.get("Font");if(d){flushTextContentItem();E.fontName=null;E.fontSize=d[1];handleSetFont(null,d[0]).then(t,r)}else{$.set(te,l.objId,!0);t()}})).catch((function(t){if(!(t instanceof c.AbortException)){if(!L.options.ignoreErrors)throw t;(0,c.warn)('getTextContent - ignoring ExtGState: "'.concat(t,'".'))}})));return;case c.OPS.beginMarkedContent:C&&D.items.push({type:"beginMarkedContent",tag:(0,h.isName)(v[0])?v[0].name:null});break;case c.OPS.beginMarkedContentProps:if(C){flushTextContentItem();var re=null;(0,h.isDict)(v[1])&&(re=v[1].get("MCID"));D.items.push({type:"beginMarkedContentProps",id:Number.isInteger(re)?"".concat(L.idFactory.getPageObjId(),"_mcid").concat(re):null,tag:(0,h.isName)(v[0])?v[0].name:null})}break;case c.OPS.endMarkedContent:if(C){flushTextContentItem();D.items.push({type:"endMarkedContent"})}}if(D.items.length>=w.desiredSize){d=!0;break}}if(d)o(q);else{flushTextContentItem();enqueueChunk();t()}})).catch((function(t){if(!(t instanceof c.AbortException)){if(!r.options.ignoreErrors)throw t;(0,c.warn)('getTextContent - ignoring errors during "'.concat(l.name,'" ')+'task: "'.concat(t,'".'));flushTextContentItem();enqueueChunk()}}))}},{key:"extractDataStructures",value:function extractDataStructures(t,r,o){var l,u=this,d=this.xref,y=this.readToUnicode(o.toUnicode||t.get("ToUnicode")||r.get("ToUnicode"));if(o.composite){var v=t.get("CIDSystemInfo");(0,h.isDict)(v)&&(o.cidSystemInfo={registry:(0,c.stringToPDFString)(v.get("Registry")),ordering:(0,c.stringToPDFString)(v.get("Ordering")),supplement:v.get("Supplement")});var S=t.get("CIDToGIDMap");(0,h.isStream)(S)&&(l=S.getBytes())}var _,k=[],C=null;if(t.has("Encoding")){_=t.get("Encoding");if((0,h.isDict)(_)){C=_.get("BaseEncoding");C=(0,h.isName)(C)?C.name:null;if(_.has("Differences"))for(var w=_.get("Differences"),x=0,O=0,T=w.length;O<T;O++){var R=d.fetchIfRef(w[O]);if((0,c.isNum)(R))x=R;else{if(!(0,h.isName)(R))throw new c.FormatError("Invalid entry in 'Differences' array: ".concat(R));k[x++]=R.name}}}else{if(!(0,h.isName)(_))throw new c.FormatError("Encoding is not a Name nor a Dict");C=_.name}"MacRomanEncoding"!==C&&"MacExpertEncoding"!==C&&"WinAnsiEncoding"!==C&&(C=null)}if(C)o.defaultEncoding=(0,g.getEncoding)(C);else{var E=!!(o.flags&m.FontFlags.Symbolic),M=!!(o.flags&m.FontFlags.Nonsymbolic);_=g.StandardEncoding;"TrueType"!==o.type||M||(_=g.WinAnsiEncoding);if(E){_=g.MacRomanEncoding;o.file&&!o.isInternalFont||(/Symbol/i.test(o.name)?_=g.SymbolSetEncoding:/Dingbats|Wingdings/i.test(o.name)&&(_=g.ZapfDingbatsEncoding))}o.defaultEncoding=_}o.differences=k;o.baseEncodingName=C;o.hasEncoding=!!C||k.length>0;o.dict=t;return y.then((function(t){o.toUnicode=t;return u.buildToUnicode(o)})).then((function(t){o.toUnicode=t;l&&(o.cidToGidMap=u.readCidToGidMap(l,t));return o}))}},{key:"_simpleFontToUnicode",value:function _simpleFontToUnicode(t){var r=arguments.length>1&&void 0!==arguments[1]&&arguments[1];(0,c.assert)(!t.composite,"Must be a simple font.");var o=[],l=t.defaultEncoding.slice(),u=t.baseEncodingName,h=t.differences;for(var d in h){var m=h[d];".notdef"!==m&&(l[d]=m)}var y=(0,M.getGlyphsUnicode)();for(var S in l){var _=l[S];if(""!==_)if(void 0!==y[_])o[S]=String.fromCharCode(y[_]);else{var k=0;switch(_[0]){case"G":3===_.length&&(k=parseInt(_.substring(1),16));break;case"g":5===_.length&&(k=parseInt(_.substring(1),16));break;case"C":case"c":if(_.length>=3&&_.length<=4){var C=_.substring(1);if(r){k=parseInt(C,16);break}k=+C;if(Number.isNaN(k)&&Number.isInteger(parseInt(C,16)))return this._simpleFontToUnicode(t,!0)}break;default:var w=(0,v.getUnicodeForGlyph)(_,y);-1!==w&&(k=w)}if(k>0&&k<=1114111&&Number.isInteger(k)){if(u&&k===+S){var x=(0,g.getEncoding)(u);if(x&&(_=x[S])){o[S]=String.fromCharCode(y[_]);continue}}o[S]=String.fromCodePoint(k)}}}return o}},{key:"buildToUnicode",value:(r=_asyncToGenerator(l.default.mark((function _callee8(t){var r,o,d,m,g,y;return l.default.wrap((function _callee8$(l){for(;;)switch(l.prev=l.next){case 0:t.hasIncludedToUnicodeMap=!!t.toUnicode&&t.toUnicode.length>0;if(!t.hasIncludedToUnicodeMap){l.next=4;break}!t.composite&&t.hasEncoding&&(t.fallbackToUnicode=this._simpleFontToUnicode(t));return l.abrupt("return",t.toUnicode);case 4:if(t.composite){l.next=6;break}return l.abrupt("return",new k.ToUnicodeMap(this._simpleFontToUnicode(t)));case 6:if(!t.composite||(!t.cMap.builtInCMap||t.cMap instanceof u.IdentityCMap)&&("Adobe"!==t.cidSystemInfo.registry||"GB1"!==t.cidSystemInfo.ordering&&"CNS1"!==t.cidSystemInfo.ordering&&"Japan1"!==t.cidSystemInfo.ordering&&"Korea1"!==t.cidSystemInfo.ordering)){l.next=15;break}r=t.cidSystemInfo,o=r.registry,d=r.ordering;m=h.Name.get("".concat(o,"-").concat(d,"-UCS2"));l.next=11;return u.CMapFactory.create({encoding:m,fetchBuiltInCMap:this._fetchBuiltInCMapBound,useCMap:null});case 11:g=l.sent;y=[];t.cMap.forEach((function(t,r){if(r>65535)throw new c.FormatError("Max size of CID is 65,535");var o=g.lookup(r);o&&(y[t]=String.fromCharCode((o.charCodeAt(0)<<8)+o.charCodeAt(1)))}));return l.abrupt("return",new k.ToUnicodeMap(y));case 15:return l.abrupt("return",new k.IdentityToUnicodeMap(t.firstChar,t.lastChar));case 16:case"end":return l.stop()}}),_callee8,this)}))),function buildToUnicode(t){return r.apply(this,arguments)})},{key:"readToUnicode",value:function readToUnicode(t){var r=this;return t?(0,h.isName)(t)?u.CMapFactory.create({encoding:t,fetchBuiltInCMap:this._fetchBuiltInCMapBound,useCMap:null}).then((function(t){return t instanceof u.IdentityCMap?new k.IdentityToUnicodeMap(0,65535):new k.ToUnicodeMap(t.getMap())})):(0,h.isStream)(t)?u.CMapFactory.create({encoding:t,fetchBuiltInCMap:this._fetchBuiltInCMapBound,useCMap:null}).then((function(t){if(t instanceof u.IdentityCMap)return new k.IdentityToUnicodeMap(0,65535);var r=new Array(t.length);t.forEach((function(t,o){if("number"!=typeof o){for(var l=[],c=0;c<o.length;c+=2){var u=o.charCodeAt(c)<<8|o.charCodeAt(c+1);if(55296==(63488&u)){c+=2;var h=o.charCodeAt(c)<<8|o.charCodeAt(c+1);l.push(((1023&u)<<10)+(1023&h)+65536)}else l.push(u)}r[t]=String.fromCodePoint.apply(String,l)}else r[t]=String.fromCodePoint(o)}));return new k.ToUnicodeMap(r)}),(function(t){if(t instanceof c.AbortException)return null;if(r.options.ignoreErrors){r.handler.send("UnsupportedFeature",{featureId:c.UNSUPPORTED_FEATURES.errorFontToUnicode});(0,c.warn)('readToUnicode - ignoring ToUnicode data: "'.concat(t,'".'));return null}throw t})):Promise.resolve(null):Promise.resolve(null)}},{key:"readCidToGidMap",value:function readCidToGidMap(t,r){for(var o=[],l=0,c=t.length;l<c;l++){var u=t[l++]<<8|t[l],h=l>>1;(0!==u||r.has(h))&&(o[h]=u)}return o}},{key:"extractWidths",value:function extractWidths(t,r,o){var l,c,u,d,g,y,v,S,_=this.xref,k=[],C=0,w=[];if(o.composite){C=t.has("DW")?t.get("DW"):1e3;if(S=t.get("W"))for(c=0,u=S.length;c<u;c++){y=_.fetchIfRef(S[c++]);v=_.fetchIfRef(S[c]);if(Array.isArray(v))for(d=0,g=v.length;d<g;d++)k[y++]=_.fetchIfRef(v[d]);else{var x=_.fetchIfRef(S[++c]);for(d=y;d<=v;d++)k[d]=x}}if(o.vertical){var O=t.getArray("DW2")||[880,-1e3];l=[O[1],.5*C,O[0]];if(O=t.get("W2"))for(c=0,u=O.length;c<u;c++){y=_.fetchIfRef(O[c++]);v=_.fetchIfRef(O[c]);if(Array.isArray(v))for(d=0,g=v.length;d<g;d++)w[y++]=[_.fetchIfRef(v[d++]),_.fetchIfRef(v[d++]),_.fetchIfRef(v[d])];else{var T=[_.fetchIfRef(O[++c]),_.fetchIfRef(O[++c]),_.fetchIfRef(O[++c])];for(d=y;d<=v;d++)w[d]=T}}}}else{var R=o.firstChar;if(S=t.get("Widths")){d=R;for(c=0,u=S.length;c<u;c++)k[d++]=_.fetchIfRef(S[c]);C=parseFloat(r.get("MissingWidth"))||0}else{var E=t.get("BaseFont");if((0,h.isName)(E)){var M=this.getBaseFontMetrics(E.name);k=this.buildCharCodeToWidth(M.widths,o);C=M.defaultWidth}}}var D=!0,j=C;for(var L in k){var N=k[L];if(N)if(j){if(j!==N){D=!1;break}}else j=N}D&&(o.flags|=m.FontFlags.FixedPitch);o.defaultWidth=C;o.widths=k;o.defaultVMetrics=l;o.vmetrics=w}},{key:"isSerifFont",value:function isSerifFont(t){var r=t.split("-")[0];return r in(0,y.getSerifFonts)()||-1!==r.search(/serif/gi)}},{key:"getBaseFontMetrics",value:function getBaseFontMetrics(t){var r=0,o=Object.create(null),l=!1,u=(0,y.getStdFontMap)()[t]||t,h=(0,j.getMetrics)();u in h||(u=this.isSerifFont(t)?"Times-Roman":"Helvetica");var d=h[u];if((0,c.isNum)(d)){r=d;l=!0}else o=d();return{defaultWidth:r,monospace:l,widths:o}}},{key:"buildCharCodeToWidth",value:function buildCharCodeToWidth(t,r){for(var o=Object.create(null),l=r.differences,c=r.defaultEncoding,u=0;u<256;u++)u in l&&t[l[u]]?o[u]=t[l[u]]:u in c&&t[c[u]]&&(o[u]=t[c[u]]);return o}},{key:"preEvaluateFont",value:function preEvaluateFont(t){var r=t,o=t.get("Subtype");if(!(0,h.isName)(o))throw new c.FormatError("invalid font Subtype");var l,u,d=!1;if("Type0"===o.name){var m=t.get("DescendantFonts");if(!m)throw new c.FormatError("Descendant fonts are not specified");if(!((t=Array.isArray(m)?this.xref.fetchIfRef(m[0]):m)instanceof h.Dict))throw new c.FormatError("Descendant font is not a dictionary.");o=t.get("Subtype");if(!(0,h.isName)(o))throw new c.FormatError("invalid font Subtype");d=!0}var g=t.get("FirstChar")||0,y=t.get("LastChar")||(d?65535:255),v=t.get("FontDescriptor");if(v){l=new L.MurmurHash3_64;var S=r.getRaw("Encoding");if((0,h.isName)(S))l.update(S.name);else if((0,h.isRef)(S))l.update(S.toString());else if((0,h.isDict)(S)){var _,k=_createForOfIteratorHelper(S.getRawValues());try{for(k.s();!(_=k.n()).done;){var C=_.value;if((0,h.isName)(C))l.update(C.name);else if((0,h.isRef)(C))l.update(C.toString());else if(Array.isArray(C)){for(var w=C.length,x=new Array(w),O=0;O<w;O++){var T=C[O];(0,h.isName)(T)?x[O]=T.name:((0,c.isNum)(T)||(0,h.isRef)(T))&&(x[O]=T.toString())}l.update(x.join())}}}catch(t){k.e(t)}finally{k.f()}}l.update("".concat(g,"-").concat(y));u=t.get("ToUnicode")||r.get("ToUnicode");if((0,h.isStream)(u)){var R=u.str||u,E=R.buffer?new Uint8Array(R.buffer.buffer,0,R.bufferLength):new Uint8Array(R.bytes.buffer,R.start,R.end-R.start);l.update(E)}else(0,h.isName)(u)&&l.update(u.name);var M=t.get("Widths")||r.get("Widths");if(Array.isArray(M)){var D,j=[],N=_createForOfIteratorHelper(M);try{for(N.s();!(D=N.n()).done;){var U=D.value;((0,c.isNum)(U)||(0,h.isRef)(U))&&j.push(U.toString())}}catch(t){N.e(t)}finally{N.f()}l.update(j.join())}if(d){l.update("compositeFont");var H=t.get("W")||r.get("W");if(Array.isArray(H)){var W,$=[],q=_createForOfIteratorHelper(H);try{for(q.s();!(W=q.n()).done;){var X=W.value;if((0,c.isNum)(X)||(0,h.isRef)(X))$.push(X.toString());else if(Array.isArray(X)){var z,G=[],V=_createForOfIteratorHelper(X);try{for(V.s();!(z=V.n()).done;){var Y=z.value;((0,c.isNum)(Y)||(0,h.isRef)(Y))&&G.push(Y.toString())}}catch(t){V.e(t)}finally{V.f()}$.push("[".concat(G.join(),"]"))}}}catch(t){q.e(t)}finally{q.f()}l.update($.join())}}}return{descriptor:v,dict:t,baseDict:r,composite:d,type:o.name,firstChar:g,lastChar:y,toUnicode:u,hash:l?l.hexdigest():""}}},{key:"translateFont",value:(t=_asyncToGenerator(l.default.mark((function _callee9(t){var r,o,g,v,S,k,C,w,x,T,R,E,M,D,j,L,N,U,H,W,$,q,X,z,G,V,Y,K,J,Q,Z,ee,te,re,ae,ne=this;return l.default.wrap((function _callee9$(l){for(;;)switch(l.prev=l.next){case 0:r=t.descriptor,o=t.dict,g=t.baseDict,v=t.composite,S=t.type,k=t.firstChar,C=t.lastChar,w=t.toUnicode,x=t.cssFontInfo;T="Type3"===S;if(r){l.next=27;break}if(!T){l.next=9;break}(r=new h.Dict(null)).set("FontName",h.Name.get(S));r.set("FontBBox",o.getArray("FontBBox")||[0,0,0,0]);l.next=27;break;case 9:E=o.get("BaseFont");if((0,h.isName)(E)){l.next=12;break}throw new c.FormatError("Base font is not specified");case 12:E=E.name.replace(/[,_]/g,"-");M=this.getBaseFontMetrics(E);D=E.split("-")[0];j=(this.isSerifFont(D)?m.FontFlags.Serif:0)|(M.monospace?m.FontFlags.FixedPitch:0)|((0,y.getSymbolsFonts)()[D]?m.FontFlags.Symbolic:m.FontFlags.Nonsymbolic);R={type:S,name:E,loadedName:g.loadedName,widths:M.widths,defaultWidth:M.defaultWidth,isSimulatedFlags:!0,flags:j,firstChar:k,lastChar:C,toUnicode:w,xHeight:0,capHeight:0,italicAngle:0,isType3Font:T};L=o.get("Widths");N=(0,y.getStandardFontName)(E);U=null;if(!N){l.next=26;break}R.isStandardFont=!0;l.next=24;return this.fetchStandardFontData(N);case 24:U=l.sent;R.isInternalFont=!!U;case 26:return l.abrupt("return",this.extractDataStructures(o,o,R).then((function(t){if(L){for(var r=[],o=k,l=0,c=L.length;l<c;l++)r[o++]=ne.xref.fetchIfRef(L[l]);t.widths=r}else t.widths=ne.buildCharCodeToWidth(M.widths,t);return new d.Font(E,U,t)})));case 27:H=r.get("FontName");W=o.get("BaseFont");(0,c.isString)(H)&&(H=h.Name.get(H));(0,c.isString)(W)&&(W=h.Name.get(W));if(!T){$=H&&H.name;q=W&&W.name;if($!==q){(0,c.info)("The FontDescriptor's FontName is \"".concat($,'" but ')+"should be the same as the Font's BaseFont \"".concat(q,'".'));$&&q&&q.startsWith($)&&(H=W)}}H=H||W;if((0,h.isName)(H)){l.next=35;break}throw new c.FormatError("invalid font name");case 35:l.prev=35;X=r.get("FontFile","FontFile2","FontFile3");l.next=45;break;case 39:l.prev=39;l.t0=l.catch(35);if(this.options.ignoreErrors){l.next=43;break}throw l.t0;case 43:(0,c.warn)('translateFont - fetching "'.concat(H.name,'" font file: "').concat(l.t0,'".'));X=new O.NullStream;case 45:K=!1;J=!1;Q=null;if(!X){l.next=52;break}if(X.dict){(Z=X.dict.get("Subtype"))instanceof h.Name&&(z=Z.name);G=X.dict.get("Length1");V=X.dict.get("Length2");Y=X.dict.get("Length3")}l.next=74;break;case 52:if(!x){l.next=66;break}if(!(ee=(0,_.getXfaFontName)(H.name))){l.next=64;break}x.fontFamily="".concat(x.fontFamily,"-PdfJS-XFA");x.metrics=ee.metrics||null;Q=ee.factors||null;l.next=60;return this.fetchStandardFontData(ee.name);case 60:X=l.sent;J=!!X;g=o=(0,_.getXfaFontDict)(H.name);v=!0;case 64:l.next=74;break;case 66:if(T){l.next=74;break}if(!(te=(0,y.getStandardFontName)(H.name))){l.next=74;break}K=!0;l.next=72;return this.fetchStandardFontData(te);case 72:X=l.sent;J=!!X;case 74:R={type:S,name:H.name,subtype:z,file:X,length1:G,length2:V,length3:Y,isStandardFont:K,isInternalFont:J,loadedName:g.loadedName,composite:v,fixedPitch:!1,fontMatrix:o.getArray("FontMatrix")||c.FONT_IDENTITY_MATRIX,firstChar:k,lastChar:C,toUnicode:w,bbox:r.getArray("FontBBox")||o.getArray("FontBBox"),ascent:r.get("Ascent"),descent:r.get("Descent"),xHeight:r.get("XHeight")||0,capHeight:r.get("CapHeight")||0,flags:r.get("Flags"),italicAngle:r.get("ItalicAngle")||0,isType3Font:T,cssFontInfo:x,scaleFactors:Q};if(!v){l.next=83;break}re=g.get("Encoding");(0,h.isName)(re)&&(R.cidEncoding=re.name);l.next=80;return u.CMapFactory.create({encoding:re,fetchBuiltInCMap:this._fetchBuiltInCMapBound,useCMap:null});case 80:ae=l.sent;R.cMap=ae;R.vertical=R.cMap.vertical;case 83:return l.abrupt("return",this.extractDataStructures(o,g,R).then((function(t){ne.extractWidths(o,r,t);return new d.Font(H.name,X,t)})));case 84:case"end":return l.stop()}}),_callee9,this,[[35,39]])}))),function translateFont(r){return t.apply(this,arguments)})}],[{key:"buildFontPaths",value:function buildFontPaths(t,r,o,l){function buildPath(r){var u="".concat(t.loadedName,"_path_").concat(r);try{if(t.renderer.hasBuiltPath(r))return;o.send("commonobj",[u,"FontPath",t.renderer.getPathJs(r)])}catch(t){if(l.ignoreErrors){o.send("UnsupportedFeature",{featureId:c.UNSUPPORTED_FEATURES.errorFontBuildPath});(0,c.warn)("buildFontPaths - ignoring ".concat(u,' glyph: "').concat(t,'".'));return}throw t}}var u,h=_createForOfIteratorHelper(r);try{for(h.s();!(u=h.n()).done;){var d=u.value;buildPath(d.fontChar);var m=d.accent;m&&m.fontChar&&buildPath(m.fontChar)}}catch(t){h.e(t)}finally{h.f()}}},{key:"fallbackFontDict",get:function get(){var t=new h.Dict;t.set("BaseFont",h.Name.get("PDFJS-FallbackFont"));t.set("Type",h.Name.get("FallbackType"));t.set("Subtype",h.Name.get("FallbackType"));t.set("Encoding",h.Name.get("WinAnsiEncoding"));return(0,c.shadow)(this,"fallbackFontDict",t)}}]);var t,r,o,w,D,z,Q,Z;return PartialEvaluator}();r.PartialEvaluator=z;var G=function(){function TranslatedFont(t){var r=t.loadedName,o=t.font,l=t.dict,c=t.evaluatorOptions;_classCallCheck(this,TranslatedFont);this.loadedName=r;this.font=o;this.dict=l;this._evaluatorOptions=c||H;this.type3Loaded=null;this.type3Dependencies=o.isType3Font?new Set:null;this.sent=!1}_createClass(TranslatedFont,[{key:"send",value:function send(t){if(!this.sent){this.sent=!0;t.send("commonobj",[this.loadedName,"Font",this.font.exportData(this._evaluatorOptions.fontExtraProperties)])}}},{key:"fallback",value:function fallback(t){if(this.font.data){this.font.disableFontFace=!0;z.buildFontPaths(this.font,this.font.glyphCacheValues,t,this._evaluatorOptions)}}},{key:"loadType3Data",value:function loadType3Data(t,r,o){var l=this;if(this.type3Loaded)return this.type3Loaded;if(!this.font.isType3Font)throw new Error("Must be a Type3 font.");var u=t.clone({ignoreErrors:!1});u.parsingType3Font=!0;var h,d=this.font,m=this.type3Dependencies,g=Promise.resolve(),y=this.dict.get("CharProcs"),v=this.dict.get("Resources")||r,S=Object.create(null),_=!d.bbox||(0,c.isArrayEqual)(d.bbox,[0,0,0,0]),k=_createForOfIteratorHelper(y.getKeys());try{var C=function _loop2(){var t=h.value;g=g.then((function(){var r=y.get(t),h=new N.OperatorList;return u.getOperatorList({stream:r,task:o,resources:v,operatorList:h}).then((function(){h.fnArray[0]===c.OPS.setCharWidthAndBounds&&l._removeType3ColorOperators(h,_);S[t]=h.getIR();var r,o=_createForOfIteratorHelper(h.dependencies);try{for(o.s();!(r=o.n()).done;){var u=r.value;m.add(u)}}catch(t){o.e(t)}finally{o.f()}})).catch((function(r){(0,c.warn)('Type3 font resource "'.concat(t,'" is not available.'));var o=new N.OperatorList;S[t]=o.getIR()}))}))};for(k.s();!(h=k.n()).done;)C()}catch(t){k.e(t)}finally{k.f()}this.type3Loaded=g.then((function(){d.charProcOperatorList=S;if(l._bbox){d.isCharBBox=!0;d.bbox=l._bbox}}));return this.type3Loaded}},{key:"_removeType3ColorOperators",value:function _removeType3ColorOperators(t){var r=arguments.length>1&&void 0!==arguments[1]&&arguments[1];if(r){this._bbox||(this._bbox=[1/0,1/0,-1/0,-1/0]);var o=c.Util.normalizeRect(t.argsArray[0].slice(2));this._bbox[0]=Math.min(this._bbox[0],o[0]);this._bbox[1]=Math.min(this._bbox[1],o[1]);this._bbox[2]=Math.max(this._bbox[2],o[2]);this._bbox[3]=Math.max(this._bbox[3],o[3])}for(var l=1,u=t.length;l<u;){switch(t.fnArray[l]){case c.OPS.setStrokeColorSpace:case c.OPS.setFillColorSpace:case c.OPS.setStrokeColor:case c.OPS.setStrokeColorN:case c.OPS.setFillColor:case c.OPS.setFillColorN:case c.OPS.setStrokeGray:case c.OPS.setFillGray:case c.OPS.setStrokeRGBColor:case c.OPS.setFillRGBColor:case c.OPS.setStrokeCMYKColor:case c.OPS.setFillCMYKColor:case c.OPS.shadingFill:case c.OPS.setRenderingIntent:t.fnArray.splice(l,1);t.argsArray.splice(l,1);u--;continue;case c.OPS.setGState:for(var h=_slicedToArray(t.argsArray[l],1),d=h[0],m=0,g=d.length;m<g;){var y=_slicedToArray(d[m],1),v=y[0];switch(v){case"TR":case"TR2":case"HT":case"BG":case"BG2":case"UCR":case"UCR2":d.splice(m,1);g--;continue}m++}}l++}}}]);return TranslatedFont}(),V=function(){function StateManager(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:new K;_classCallCheck(this,StateManager);this.state=t;this.stateStack=[]}_createClass(StateManager,[{key:"save",value:function save(){var t=this.state;this.stateStack.push(this.state);this.state=t.clone()}},{key:"restore",value:function restore(){var t=this.stateStack.pop();t&&(this.state=t)}},{key:"transform",value:function transform(t){this.state.ctm=c.Util.transform(this.state.ctm,t)}}]);return StateManager}(),Y=function(){function TextState(){_classCallCheck(this,TextState);this.ctm=new Float32Array(c.IDENTITY_MATRIX);this.fontName=null;this.fontSize=0;this.font=null;this.fontMatrix=c.FONT_IDENTITY_MATRIX;this.textMatrix=c.IDENTITY_MATRIX.slice();this.textLineMatrix=c.IDENTITY_MATRIX.slice();this.charSpacing=0;this.wordSpacing=0;this.leading=0;this.textHScale=1;this.textRise=0}_createClass(TextState,[{key:"setTextMatrix",value:function setTextMatrix(t,r,o,l,c,u){var h=this.textMatrix;h[0]=t;h[1]=r;h[2]=o;h[3]=l;h[4]=c;h[5]=u}},{key:"setTextLineMatrix",value:function setTextLineMatrix(t,r,o,l,c,u){var h=this.textLineMatrix;h[0]=t;h[1]=r;h[2]=o;h[3]=l;h[4]=c;h[5]=u}},{key:"translateTextMatrix",value:function translateTextMatrix(t,r){var o=this.textMatrix;o[4]=o[0]*t+o[2]*r+o[4];o[5]=o[1]*t+o[3]*r+o[5]}},{key:"translateTextLineMatrix",value:function translateTextLineMatrix(t,r){var o=this.textLineMatrix;o[4]=o[0]*t+o[2]*r+o[4];o[5]=o[1]*t+o[3]*r+o[5]}},{key:"carriageReturn",value:function carriageReturn(){this.translateTextLineMatrix(0,-this.leading);this.textMatrix=this.textLineMatrix.slice()}},{key:"clone",value:function clone(){var clone=Object.create(this);clone.textMatrix=this.textMatrix.slice();clone.textLineMatrix=this.textLineMatrix.slice();clone.fontMatrix=this.fontMatrix.slice();return clone}}]);return TextState}(),K=function(){function EvalState(){_classCallCheck(this,EvalState);this.ctm=new Float32Array(c.IDENTITY_MATRIX);this.font=null;this.textRenderingMode=c.TextRenderingMode.FILL;this.fillColorSpace=R.ColorSpace.singletons.gray;this.strokeColorSpace=R.ColorSpace.singletons.gray}_createClass(EvalState,[{key:"clone",value:function clone(){return Object.create(this)}}]);return EvalState}(),J=function(){function EvaluatorPreprocessor(t,r){var o=arguments.length>2&&void 0!==arguments[2]?arguments[2]:new V;_classCallCheck(this,EvaluatorPreprocessor);this.parser=new w.Parser({lexer:new w.Lexer(t,EvaluatorPreprocessor.opMap),xref:r});this.stateManager=o;this.nonProcessedArgs=[];this._numInvalidPathOPS=0}_createClass(EvaluatorPreprocessor,[{key:"savedStatesDepth",get:function get(){return this.stateManager.stateStack.length}},{key:"read",value:function read(t){for(var r=t.args;;){var o=this.parser.getObj();if(o instanceof h.Cmd){var l=o.cmd,u=EvaluatorPreprocessor.opMap[l];if(!u){(0,c.warn)('Unknown command "'.concat(l,'".'));continue}var d=u.id,m=u.numArgs,g=null!==r?r.length:0;if(u.variableArgs)g>m&&(0,c.info)("Command ".concat(l,": expected [0, ").concat(m,"] args, ")+"but received ".concat(g," args."));else{if(g!==m){for(var y=this.nonProcessedArgs;g>m;){y.push(r.shift());g--}for(;g<m&&0!==y.length;){null===r&&(r=[]);r.unshift(y.pop());g++}}if(g<m){var v="command ".concat(l,": expected ").concat(m," args, ")+"but received ".concat(g," args.");if(d>=c.OPS.moveTo&&d<=c.OPS.endPath&&++this._numInvalidPathOPS>EvaluatorPreprocessor.MAX_INVALID_PATH_OPS)throw new c.FormatError("Invalid ".concat(v));(0,c.warn)("Skipping ".concat(v));null!==r&&(r.length=0);continue}}this.preprocessCommand(d,r);t.fn=d;t.args=r;return!0}if(o===h.EOF)return!1;if(null!==o){null===r&&(r=[]);r.push(o);if(r.length>33)throw new c.FormatError("Too many arguments")}}}},{key:"preprocessCommand",value:function preprocessCommand(t,r){switch(0|t){case c.OPS.save:this.stateManager.save();break;case c.OPS.restore:this.stateManager.restore();break;case c.OPS.transform:this.stateManager.transform(r)}}}],[{key:"opMap",get:function get(){var t=(0,D.getLookupTableFactory)((function(t){t.w={id:c.OPS.setLineWidth,numArgs:1,variableArgs:!1};t.J={id:c.OPS.setLineCap,numArgs:1,variableArgs:!1};t.j={id:c.OPS.setLineJoin,numArgs:1,variableArgs:!1};t.M={id:c.OPS.setMiterLimit,numArgs:1,variableArgs:!1};t.d={id:c.OPS.setDash,numArgs:2,variableArgs:!1};t.ri={id:c.OPS.setRenderingIntent,numArgs:1,variableArgs:!1};t.i={id:c.OPS.setFlatness,numArgs:1,variableArgs:!1};t.gs={id:c.OPS.setGState,numArgs:1,variableArgs:!1};t.q={id:c.OPS.save,numArgs:0,variableArgs:!1};t.Q={id:c.OPS.restore,numArgs:0,variableArgs:!1};t.cm={id:c.OPS.transform,numArgs:6,variableArgs:!1};t.m={id:c.OPS.moveTo,numArgs:2,variableArgs:!1};t.l={id:c.OPS.lineTo,numArgs:2,variableArgs:!1};t.c={id:c.OPS.curveTo,numArgs:6,variableArgs:!1};t.v={id:c.OPS.curveTo2,numArgs:4,variableArgs:!1};t.y={id:c.OPS.curveTo3,numArgs:4,variableArgs:!1};t.h={id:c.OPS.closePath,numArgs:0,variableArgs:!1};t.re={id:c.OPS.rectangle,numArgs:4,variableArgs:!1};t.S={id:c.OPS.stroke,numArgs:0,variableArgs:!1};t.s={id:c.OPS.closeStroke,numArgs:0,variableArgs:!1};t.f={id:c.OPS.fill,numArgs:0,variableArgs:!1};t.F={id:c.OPS.fill,numArgs:0,variableArgs:!1};t["f*"]={id:c.OPS.eoFill,numArgs:0,variableArgs:!1};t.B={id:c.OPS.fillStroke,numArgs:0,variableArgs:!1};t["B*"]={id:c.OPS.eoFillStroke,numArgs:0,variableArgs:!1};t.b={id:c.OPS.closeFillStroke,numArgs:0,variableArgs:!1};t["b*"]={id:c.OPS.closeEOFillStroke,numArgs:0,variableArgs:!1};t.n={id:c.OPS.endPath,numArgs:0,variableArgs:!1};t.W={id:c.OPS.clip,numArgs:0,variableArgs:!1};t["W*"]={id:c.OPS.eoClip,numArgs:0,variableArgs:!1};t.BT={id:c.OPS.beginText,numArgs:0,variableArgs:!1};t.ET={id:c.OPS.endText,numArgs:0,variableArgs:!1};t.Tc={id:c.OPS.setCharSpacing,numArgs:1,variableArgs:!1};t.Tw={id:c.OPS.setWordSpacing,numArgs:1,variableArgs:!1};t.Tz={id:c.OPS.setHScale,numArgs:1,variableArgs:!1};t.TL={id:c.OPS.setLeading,numArgs:1,variableArgs:!1};t.Tf={id:c.OPS.setFont,numArgs:2,variableArgs:!1};t.Tr={id:c.OPS.setTextRenderingMode,numArgs:1,variableArgs:!1};t.Ts={id:c.OPS.setTextRise,numArgs:1,variableArgs:!1};t.Td={id:c.OPS.moveText,numArgs:2,variableArgs:!1};t.TD={id:c.OPS.setLeadingMoveText,numArgs:2,variableArgs:!1};t.Tm={id:c.OPS.setTextMatrix,numArgs:6,variableArgs:!1};t["T*"]={id:c.OPS.nextLine,numArgs:0,variableArgs:!1};t.Tj={id:c.OPS.showText,numArgs:1,variableArgs:!1};t.TJ={id:c.OPS.showSpacedText,numArgs:1,variableArgs:!1};t["'"]={id:c.OPS.nextLineShowText,numArgs:1,variableArgs:!1};t['"']={id:c.OPS.nextLineSetSpacingShowText,numArgs:3,variableArgs:!1};t.d0={id:c.OPS.setCharWidth,numArgs:2,variableArgs:!1};t.d1={id:c.OPS.setCharWidthAndBounds,numArgs:6,variableArgs:!1};t.CS={id:c.OPS.setStrokeColorSpace,numArgs:1,variableArgs:!1};t.cs={id:c.OPS.setFillColorSpace,numArgs:1,variableArgs:!1};t.SC={id:c.OPS.setStrokeColor,numArgs:4,variableArgs:!0};t.SCN={id:c.OPS.setStrokeColorN,numArgs:33,variableArgs:!0};t.sc={id:c.OPS.setFillColor,numArgs:4,variableArgs:!0};t.scn={id:c.OPS.setFillColorN,numArgs:33,variableArgs:!0};t.G={id:c.OPS.setStrokeGray,numArgs:1,variableArgs:!1};t.g={id:c.OPS.setFillGray,numArgs:1,variableArgs:!1};t.RG={id:c.OPS.setStrokeRGBColor,numArgs:3,variableArgs:!1};t.rg={id:c.OPS.setFillRGBColor,numArgs:3,variableArgs:!1};t.K={id:c.OPS.setStrokeCMYKColor,numArgs:4,variableArgs:!1};t.k={id:c.OPS.setFillCMYKColor,numArgs:4,variableArgs:!1};t.sh={id:c.OPS.shadingFill,numArgs:1,variableArgs:!1};t.BI={id:c.OPS.beginInlineImage,numArgs:0,variableArgs:!1};t.ID={id:c.OPS.beginImageData,numArgs:0,variableArgs:!1};t.EI={id:c.OPS.endInlineImage,numArgs:1,variableArgs:!1};t.Do={id:c.OPS.paintXObject,numArgs:1,variableArgs:!1};t.MP={id:c.OPS.markPoint,numArgs:1,variableArgs:!1};t.DP={id:c.OPS.markPointProps,numArgs:2,variableArgs:!1};t.BMC={id:c.OPS.beginMarkedContent,numArgs:1,variableArgs:!1};t.BDC={id:c.OPS.beginMarkedContentProps,numArgs:2,variableArgs:!1};t.EMC={id:c.OPS.endMarkedContent,numArgs:0,variableArgs:!1};t.BX={id:c.OPS.beginCompat,numArgs:0,variableArgs:!1};t.EX={id:c.OPS.endCompat,numArgs:0,variableArgs:!1};t.BM=null;t.BD=null;t.true=null;t.fa=null;t.fal=null;t.fals=null;t.false=null;t.nu=null;t.nul=null;t.null=null}));return(0,c.shadow)(this,"opMap",t())}},{key:"MAX_INVALID_PATH_OPS",get:function get(){return(0,c.shadow)(this,"MAX_INVALID_PATH_OPS",20)}}]);return EvaluatorPreprocessor}();r.EvaluatorPreprocessor=J},(t,r,o)=>{"use strict";function _typeof(t){_typeof="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function _typeof(t){return typeof t}:function _typeof(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t};return _typeof(t)}Object.defineProperty(r,"__esModule",{value:!0});r.IdentityCMap=r.CMapFactory=r.CMap=void 0;var l=function _interopRequireDefault(t){return t&&t.__esModule?t:{default:t}}(o(2)),c=o(4),u=o(118),h=o(140),d=o(122),m=o(123);function asyncGeneratorStep(t,r,o,l,c,u,h){try{var d=t[u](h),m=d.value}catch(t){o(t);return}d.done?r(m):Promise.resolve(m).then(l,c)}function _asyncToGenerator(t){return function(){var r=this,o=arguments;return new Promise((function(l,c){var u=t.apply(r,o);function _next(t){asyncGeneratorStep(u,l,c,_next,_throw,"next",t)}function _throw(t){asyncGeneratorStep(u,l,c,_next,_throw,"throw",t)}_next(void 0)}))}}function _setPrototypeOf(t,r){_setPrototypeOf=Object.setPrototypeOf||function _setPrototypeOf(t,r){t.__proto__=r;return t};return _setPrototypeOf(t,r)}function _createSuper(t){var r=function _isNativeReflectConstruct(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){})));return!0}catch(t){return!1}}();return function _createSuperInternal(){var o,l=_getPrototypeOf(t);if(r){var c=_getPrototypeOf(this).constructor;o=Reflect.construct(l,arguments,c)}else o=l.apply(this,arguments);return _possibleConstructorReturn(this,o)}}function _possibleConstructorReturn(t,r){if(r&&("object"===_typeof(r)||"function"==typeof r))return r;if(void 0!==r)throw new TypeError("Derived constructors may only return object or undefined");return function _assertThisInitialized(t){if(void 0===t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return t}(t)}function _getPrototypeOf(t){_getPrototypeOf=Object.setPrototypeOf?Object.getPrototypeOf:function _getPrototypeOf(t){return t.__proto__||Object.getPrototypeOf(t)};return _getPrototypeOf(t)}function _classCallCheck(t,r){if(!(t instanceof r))throw new TypeError("Cannot call a class as a function")}function _defineProperties(t,r){for(var o=0;o<r.length;o++){var l=r[o];l.enumerable=l.enumerable||!1;l.configurable=!0;"value"in l&&(l.writable=!0);Object.defineProperty(t,l.key,l)}}function _createClass(t,r,o){r&&_defineProperties(t.prototype,r);o&&_defineProperties(t,o);return t}var g=["Adobe-GB1-UCS2","Adobe-CNS1-UCS2","Adobe-Japan1-UCS2","Adobe-Korea1-UCS2","78-EUC-H","78-EUC-V","78-H","78-RKSJ-H","78-RKSJ-V","78-V","78ms-RKSJ-H","78ms-RKSJ-V","83pv-RKSJ-H","90ms-RKSJ-H","90ms-RKSJ-V","90msp-RKSJ-H","90msp-RKSJ-V","90pv-RKSJ-H","90pv-RKSJ-V","Add-H","Add-RKSJ-H","Add-RKSJ-V","Add-V","Adobe-CNS1-0","Adobe-CNS1-1","Adobe-CNS1-2","Adobe-CNS1-3","Adobe-CNS1-4","Adobe-CNS1-5","Adobe-CNS1-6","Adobe-GB1-0","Adobe-GB1-1","Adobe-GB1-2","Adobe-GB1-3","Adobe-GB1-4","Adobe-GB1-5","Adobe-Japan1-0","Adobe-Japan1-1","Adobe-Japan1-2","Adobe-Japan1-3","Adobe-Japan1-4","Adobe-Japan1-5","Adobe-Japan1-6","Adobe-Korea1-0","Adobe-Korea1-1","Adobe-Korea1-2","B5-H","B5-V","B5pc-H","B5pc-V","CNS-EUC-H","CNS-EUC-V","CNS1-H","CNS1-V","CNS2-H","CNS2-V","ETHK-B5-H","ETHK-B5-V","ETen-B5-H","ETen-B5-V","ETenms-B5-H","ETenms-B5-V","EUC-H","EUC-V","Ext-H","Ext-RKSJ-H","Ext-RKSJ-V","Ext-V","GB-EUC-H","GB-EUC-V","GB-H","GB-V","GBK-EUC-H","GBK-EUC-V","GBK2K-H","GBK2K-V","GBKp-EUC-H","GBKp-EUC-V","GBT-EUC-H","GBT-EUC-V","GBT-H","GBT-V","GBTpc-EUC-H","GBTpc-EUC-V","GBpc-EUC-H","GBpc-EUC-V","H","HKdla-B5-H","HKdla-B5-V","HKdlb-B5-H","HKdlb-B5-V","HKgccs-B5-H","HKgccs-B5-V","HKm314-B5-H","HKm314-B5-V","HKm471-B5-H","HKm471-B5-V","HKscs-B5-H","HKscs-B5-V","Hankaku","Hiragana","KSC-EUC-H","KSC-EUC-V","KSC-H","KSC-Johab-H","KSC-Johab-V","KSC-V","KSCms-UHC-H","KSCms-UHC-HW-H","KSCms-UHC-HW-V","KSCms-UHC-V","KSCpc-EUC-H","KSCpc-EUC-V","Katakana","NWP-H","NWP-V","RKSJ-H","RKSJ-V","Roman","UniCNS-UCS2-H","UniCNS-UCS2-V","UniCNS-UTF16-H","UniCNS-UTF16-V","UniCNS-UTF32-H","UniCNS-UTF32-V","UniCNS-UTF8-H","UniCNS-UTF8-V","UniGB-UCS2-H","UniGB-UCS2-V","UniGB-UTF16-H","UniGB-UTF16-V","UniGB-UTF32-H","UniGB-UTF32-V","UniGB-UTF8-H","UniGB-UTF8-V","UniJIS-UCS2-H","UniJIS-UCS2-HW-H","UniJIS-UCS2-HW-V","UniJIS-UCS2-V","UniJIS-UTF16-H","UniJIS-UTF16-V","UniJIS-UTF32-H","UniJIS-UTF32-V","UniJIS-UTF8-H","UniJIS-UTF8-V","UniJIS2004-UTF16-H","UniJIS2004-UTF16-V","UniJIS2004-UTF32-H","UniJIS2004-UTF32-V","UniJIS2004-UTF8-H","UniJIS2004-UTF8-V","UniJISPro-UCS2-HW-V","UniJISPro-UCS2-V","UniJISPro-UTF8-V","UniJISX0213-UTF32-H","UniJISX0213-UTF32-V","UniJISX02132004-UTF32-H","UniJISX02132004-UTF32-V","UniKS-UCS2-H","UniKS-UCS2-V","UniKS-UTF16-H","UniKS-UTF16-V","UniKS-UTF32-H","UniKS-UTF32-V","UniKS-UTF8-H","UniKS-UTF8-V","V","WP-Symbol"],y=Math.pow(2,24)-1,v=function(){function CMap(){var t=arguments.length>0&&void 0!==arguments[0]&&arguments[0];_classCallCheck(this,CMap);this.codespaceRanges=[[],[],[],[]];this.numCodespaceRanges=0;this._map=[];this.name="";this.vertical=!1;this.useCMap=null;this.builtInCMap=t}_createClass(CMap,[{key:"addCodespaceRange",value:function addCodespaceRange(t,r,o){this.codespaceRanges[t-1].push(r,o);this.numCodespaceRanges++}},{key:"mapCidRange",value:function mapCidRange(t,r,o){if(r-t>y)throw new Error("mapCidRange - ignoring data above MAX_MAP_RANGE.");for(;t<=r;)this._map[t++]=o++}},{key:"mapBfRange",value:function mapBfRange(t,r,o){if(r-t>y)throw new Error("mapBfRange - ignoring data above MAX_MAP_RANGE.");for(var l=o.length-1;t<=r;){this._map[t++]=o;o=o.substring(0,l)+String.fromCharCode(o.charCodeAt(l)+1)}}},{key:"mapBfRangeToArray",value:function mapBfRangeToArray(t,r,o){if(r-t>y)throw new Error("mapBfRangeToArray - ignoring data above MAX_MAP_RANGE.");for(var l=o.length,c=0;t<=r&&c<l;){this._map[t]=o[c++];++t}}},{key:"mapOne",value:function mapOne(t,r){this._map[t]=r}},{key:"lookup",value:function lookup(t){return this._map[t]}},{key:"contains",value:function contains(t){return void 0!==this._map[t]}},{key:"forEach",value:function forEach(t){var r=this._map,o=r.length;if(o<=65536)for(var l=0;l<o;l++)void 0!==r[l]&&t(l,r[l]);else for(var c in r)t(c,r[c])}},{key:"charCodeOf",value:function charCodeOf(t){var r=this._map;if(r.length<=65536)return r.indexOf(t);for(var o in r)if(r[o]===t)return 0|o;return-1}},{key:"getMap",value:function getMap(){return this._map}},{key:"readCharCode",value:function readCharCode(t,r,o){for(var l=0,c=this.codespaceRanges,u=0,h=c.length;u<h;u++){l=(l<<8|t.charCodeAt(r+u))>>>0;for(var d=c[u],m=0,g=d.length;m<g;){var y=d[m++],v=d[m++];if(l>=y&&l<=v){o.charcode=l;o.length=u+1;return}}}o.charcode=0;o.length=1}},{key:"getCharCodeLength",value:function getCharCodeLength(t){for(var r=this.codespaceRanges,o=0,l=r.length;o<l;o++)for(var c=r[o],u=0,h=c.length;u<h;){var d=c[u++],m=c[u++];if(t>=d&&t<=m)return o+1}return 1}},{key:"length",get:function get(){return this._map.length}},{key:"isIdentityCMap",get:function get(){if("Identity-H"!==this.name&&"Identity-V"!==this.name)return!1;if(65536!==this._map.length)return!1;for(var t=0;t<65536;t++)if(this._map[t]!==t)return!1;return!0}}]);return CMap}();r.CMap=v;var S=function(t){!function _inherits(t,r){if("function"!=typeof r&&null!==r)throw new TypeError("Super expression must either be null or a function");t.prototype=Object.create(r&&r.prototype,{constructor:{value:t,writable:!0,configurable:!0}});r&&_setPrototypeOf(t,r)}(IdentityCMap,t);var r=_createSuper(IdentityCMap);function IdentityCMap(t,o){var l;_classCallCheck(this,IdentityCMap);(l=r.call(this)).vertical=t;l.addCodespaceRange(o,0,65535);return l}_createClass(IdentityCMap,[{key:"mapCidRange",value:function mapCidRange(t,r,o){(0,c.unreachable)("should not call mapCidRange")}},{key:"mapBfRange",value:function mapBfRange(t,r,o){(0,c.unreachable)("should not call mapBfRange")}},{key:"mapBfRangeToArray",value:function mapBfRangeToArray(t,r,o){(0,c.unreachable)("should not call mapBfRangeToArray")}},{key:"mapOne",value:function mapOne(t,r){(0,c.unreachable)("should not call mapCidOne")}},{key:"lookup",value:function lookup(t){return Number.isInteger(t)&&t<=65535?t:void 0}},{key:"contains",value:function contains(t){return Number.isInteger(t)&&t<=65535}},{key:"forEach",value:function forEach(t){for(var r=0;r<=65535;r++)t(r,r)}},{key:"charCodeOf",value:function charCodeOf(t){return Number.isInteger(t)&&t<=65535?t:-1}},{key:"getMap",value:function getMap(){for(var t=new Array(65536),r=0;r<=65535;r++)t[r]=r;return t}},{key:"length",get:function get(){return 65536}},{key:"isIdentityCMap",get:function get(){(0,c.unreachable)("should not access .isIdentityCMap")}}]);return IdentityCMap}(v);r.IdentityCMap=S;var _=function BinaryCMapReaderClosure(){function hexToInt(t,r){for(var o=0,l=0;l<=r;l++)o=o<<8|t[l];return o>>>0}function hexToStr(t,r){return 1===r?String.fromCharCode(t[0],t[1]):3===r?String.fromCharCode(t[0],t[1],t[2],t[3]):String.fromCharCode.apply(null,t.subarray(0,r+1))}function addHex(t,r,o){for(var l=0,c=o;c>=0;c--){l+=t[c]+r[c];t[c]=255&l;l>>=8}}function incHex(t,r){for(var o=1,l=r;l>=0&&o>0;l--){o+=t[l];t[l]=255&o;o>>=8}}var t=16,r=function(){function BinaryCMapStream(t){_classCallCheck(this,BinaryCMapStream);this.buffer=t;this.pos=0;this.end=t.length;this.tmpBuf=new Uint8Array(19)}_createClass(BinaryCMapStream,[{key:"readByte",value:function readByte(){return this.pos>=this.end?-1:this.buffer[this.pos++]}},{key:"readNumber",value:function readNumber(){var t,r=0;do{var o=this.readByte();if(o<0)throw new c.FormatError("unexpected EOF in bcmap");t=!(128&o);r=r<<7|127&o}while(!t);return r}},{key:"readSigned",value:function readSigned(){var t=this.readNumber();return 1&t?~(t>>>1):t>>>1}},{key:"readHex",value:function readHex(t,r){t.set(this.buffer.subarray(this.pos,this.pos+r+1));this.pos+=r+1}},{key:"readHexNumber",value:function readHexNumber(t,r){var o,l=this.tmpBuf,u=0;do{var h=this.readByte();if(h<0)throw new c.FormatError("unexpected EOF in bcmap");o=!(128&h);l[u++]=127&h}while(!o);for(var d=r,m=0,g=0;d>=0;){for(;g<8&&l.length>0;){m|=l[--u]<<g;g+=7}t[d]=255&m;d--;m>>=8;g-=8}}},{key:"readHexSigned",value:function readHexSigned(t,r){this.readHexNumber(t,r);for(var o=1&t[r]?255:0,l=0,c=0;c<=r;c++){l=(1&l)<<8|t[c];t[c]=l>>1^o}}},{key:"readString",value:function readString(){for(var t=this.readNumber(),r="",o=0;o<t;o++)r+=String.fromCharCode(this.readNumber());return r}}]);return BinaryCMapStream}(),o=function(){function BinaryCMapReader(){_classCallCheck(this,BinaryCMapReader)}_createClass(BinaryCMapReader,[{key:"process",value:(o=_asyncToGenerator(l.default.mark((function _callee(o,c,u){var h,d,m,g,y,v,S,_,k,C,w,x,O,T,R,E,M,D,j,L,N;return l.default.wrap((function _callee$(l){for(;;)switch(l.prev=l.next){case 0:h=new r(o);d=h.readByte();c.vertical=!!(1&d);m=null;g=new Uint8Array(t);y=new Uint8Array(t);v=new Uint8Array(t);S=new Uint8Array(t);_=new Uint8Array(t);case 9:if(!((C=h.readByte())>=0)){l.next=68;break}if(7!=(w=C>>5)){l.next=20;break}l.t0=31&C;l.next=0===l.t0?15:1===l.t0?17:19;break;case 15:h.readString();return l.abrupt("break",19);case 17:m=h.readString();return l.abrupt("break",19);case 19:return l.abrupt("continue",9);case 20:x=!!(16&C);if(!(1+(O=15&C)>t)){l.next=24;break}throw new Error("BinaryCMapReader.process: Invalid dataSize.");case 24:T=1;R=h.readNumber();l.t1=w;l.next=0===l.t1?29:1===l.t1?35:2===l.t1?41:3===l.t1?46:4===l.t1?53:5===l.t1?58:65;break;case 29:h.readHex(g,O);h.readHexNumber(y,O);addHex(y,g,O);c.addCodespaceRange(O+1,hexToInt(g,O),hexToInt(y,O));for(E=1;E<R;E++){incHex(y,O);h.readHexNumber(g,O);addHex(g,y,O);h.readHexNumber(y,O);addHex(y,g,O);c.addCodespaceRange(O+1,hexToInt(g,O),hexToInt(y,O))}return l.abrupt("break",66);case 35:h.readHex(g,O);h.readHexNumber(y,O);addHex(y,g,O);h.readNumber();for(M=1;M<R;M++){incHex(y,O);h.readHexNumber(g,O);addHex(g,y,O);h.readHexNumber(y,O);addHex(y,g,O);h.readNumber()}return l.abrupt("break",66);case 41:h.readHex(v,O);k=h.readNumber();c.mapOne(hexToInt(v,O),k);for(D=1;D<R;D++){incHex(v,O);if(!x){h.readHexNumber(_,O);addHex(v,_,O)}k=h.readSigned()+(k+1);c.mapOne(hexToInt(v,O),k)}return l.abrupt("break",66);case 46:h.readHex(g,O);h.readHexNumber(y,O);addHex(y,g,O);k=h.readNumber();c.mapCidRange(hexToInt(g,O),hexToInt(y,O),k);for(j=1;j<R;j++){incHex(y,O);if(x)g.set(y);else{h.readHexNumber(g,O);addHex(g,y,O)}h.readHexNumber(y,O);addHex(y,g,O);k=h.readNumber();c.mapCidRange(hexToInt(g,O),hexToInt(y,O),k)}return l.abrupt("break",66);case 53:h.readHex(v,T);h.readHex(S,O);c.mapOne(hexToInt(v,T),hexToStr(S,O));for(L=1;L<R;L++){incHex(v,T);if(!x){h.readHexNumber(_,T);addHex(v,_,T)}incHex(S,O);h.readHexSigned(_,O);addHex(S,_,O);c.mapOne(hexToInt(v,T),hexToStr(S,O))}return l.abrupt("break",66);case 58:h.readHex(g,T);h.readHexNumber(y,T);addHex(y,g,T);h.readHex(S,O);c.mapBfRange(hexToInt(g,T),hexToInt(y,T),hexToStr(S,O));for(N=1;N<R;N++){incHex(y,T);if(x)g.set(y);else{h.readHexNumber(g,T);addHex(g,y,T)}h.readHexNumber(y,T);addHex(y,g,T);h.readHex(S,O);c.mapBfRange(hexToInt(g,T),hexToInt(y,T),hexToStr(S,O))}return l.abrupt("break",66);case 65:throw new Error("BinaryCMapReader.process - unknown type: ".concat(w));case 66:l.next=9;break;case 68:if(!m){l.next=70;break}return l.abrupt("return",u(m));case 70:return l.abrupt("return",c);case 71:case"end":return l.stop()}}),_callee)}))),function process(t,r,l){return o.apply(this,arguments)})}]);var o;return BinaryCMapReader}();return o}(),k=function CMapFactoryClosure(){function strToInt(t){for(var r=0,o=0;o<t.length;o++)r=r<<8|t.charCodeAt(o);return r>>>0}function expectString(t){if(!(0,c.isString)(t))throw new c.FormatError("Malformed CMap: expected string.")}function expectInt(t){if(!Number.isInteger(t))throw new c.FormatError("Malformed CMap: expected int.")}function parseBfChar(t,r){for(;;){var o=r.getObj();if(o===u.EOF)break;if((0,u.isCmd)(o,"endbfchar"))return;expectString(o);var l=strToInt(o);expectString(o=r.getObj());var c=o;t.mapOne(l,c)}}function parseBfRange(t,r){for(;;){var o=r.getObj();if(o===u.EOF)break;if((0,u.isCmd)(o,"endbfrange"))return;expectString(o);var l=strToInt(o);expectString(o=r.getObj());var h=strToInt(o);o=r.getObj();if(Number.isInteger(o)||(0,c.isString)(o)){var d=Number.isInteger(o)?String.fromCharCode(o):o;t.mapBfRange(l,h,d)}else{if(!(0,u.isCmd)(o,"["))break;o=r.getObj();for(var m=[];!(0,u.isCmd)(o,"]")&&o!==u.EOF;){m.push(o);o=r.getObj()}t.mapBfRangeToArray(l,h,m)}}throw new c.FormatError("Invalid bf range.")}function parseCidChar(t,r){for(;;){var o=r.getObj();if(o===u.EOF)break;if((0,u.isCmd)(o,"endcidchar"))return;expectString(o);var l=strToInt(o);expectInt(o=r.getObj());var c=o;t.mapOne(l,c)}}function parseCidRange(t,r){for(;;){var o=r.getObj();if(o===u.EOF)break;if((0,u.isCmd)(o,"endcidrange"))return;expectString(o);var l=strToInt(o);expectString(o=r.getObj());var c=strToInt(o);expectInt(o=r.getObj());var h=o;t.mapCidRange(l,c,h)}}function parseCodespaceRange(t,r){for(;;){var o=r.getObj();if(o===u.EOF)break;if((0,u.isCmd)(o,"endcodespacerange"))return;if(!(0,c.isString)(o))break;var l=strToInt(o);o=r.getObj();if(!(0,c.isString)(o))break;var h=strToInt(o);t.addCodespaceRange(o.length,l,h)}throw new c.FormatError("Invalid codespace range.")}function parseWMode(t,r){var o=r.getObj();Number.isInteger(o)&&(t.vertical=!!o)}function parseCMapName(t,r){var o=r.getObj();(0,u.isName)(o)&&(0,c.isString)(o.name)&&(t.name=o.name)}function parseCMap(t,r,o,l){return _parseCMap.apply(this,arguments)}function _parseCMap(){return(_parseCMap=_asyncToGenerator(l.default.mark((function _callee3(t,r,o,h){var m,g,y;return l.default.wrap((function _callee3$(l){for(;;)switch(l.prev=l.next){case 0:0;l.prev=1;if((y=r.getObj())!==u.EOF){l.next=7;break}return l.abrupt("break",39);case 7:if(!(0,u.isName)(y)){l.next=12;break}"WMode"===y.name?parseWMode(t,r):"CMapName"===y.name&&parseCMapName(t,r);m=y;l.next=29;break;case 12:if(!(0,u.isCmd)(y)){l.next=29;break}l.t0=y.cmd;l.next="endcmap"===l.t0?16:"usecmap"===l.t0?17:"begincodespacerange"===l.t0?19:"beginbfchar"===l.t0?21:"begincidchar"===l.t0?23:"beginbfrange"===l.t0?25:"begincidrange"===l.t0?27:29;break;case 16:return l.abrupt("break",39);case 17:(0,u.isName)(m)&&(g=m.name);return l.abrupt("break",29);case 19:parseCodespaceRange(t,r);return l.abrupt("break",29);case 21:parseBfChar(t,r);return l.abrupt("break",29);case 23:parseCidChar(t,r);return l.abrupt("break",29);case 25:parseBfRange(t,r);return l.abrupt("break",29);case 27:parseCidRange(t,r);return l.abrupt("break",29);case 29:l.next=37;break;case 31:l.prev=31;l.t1=l.catch(1);if(!(l.t1 instanceof d.MissingDataException)){l.next=35;break}throw l.t1;case 35:(0,c.warn)("Invalid cMap data: "+l.t1);return l.abrupt("continue",0);case 37:l.next=0;break;case 39:!h&&g&&(h=g);if(!h){l.next=42;break}return l.abrupt("return",extendCMap(t,o,h));case 42:return l.abrupt("return",t);case 43:case"end":return l.stop()}}),_callee3,null,[[1,31]])})))).apply(this,arguments)}function extendCMap(t,r,o){return _extendCMap.apply(this,arguments)}function _extendCMap(){return(_extendCMap=_asyncToGenerator(l.default.mark((function _callee4(t,r,o){var c,u;return l.default.wrap((function _callee4$(l){for(;;)switch(l.prev=l.next){case 0:l.next=2;return createBuiltInCMap(o,r);case 2:t.useCMap=l.sent;if(0===t.numCodespaceRanges){c=t.useCMap.codespaceRanges;for(u=0;u<c.length;u++)t.codespaceRanges[u]=c[u].slice();t.numCodespaceRanges=t.useCMap.numCodespaceRanges}t.useCMap.forEach((function(r,o){t.contains(r)||t.mapOne(r,t.useCMap.lookup(r))}));return l.abrupt("return",t);case 6:case"end":return l.stop()}}),_callee4)})))).apply(this,arguments)}function createBuiltInCMap(t,r){return _createBuiltInCMap.apply(this,arguments)}function _createBuiltInCMap(){return(_createBuiltInCMap=_asyncToGenerator(l.default.mark((function _callee5(t,r){var o,u,d,y,k;return l.default.wrap((function _callee5$(l){for(;;)switch(l.prev=l.next){case 0:if("Identity-H"!==t){l.next=4;break}return l.abrupt("return",new S(!1,2));case 4:if("Identity-V"!==t){l.next=6;break}return l.abrupt("return",new S(!0,2));case 6:if(g.includes(t)){l.next=8;break}throw new Error("Unknown CMap name: "+t);case 8:if(r){l.next=10;break}throw new Error("Built-in CMap parameters are not provided.");case 10:l.next=12;return r(t);case 12:o=l.sent;u=o.cMapData;d=o.compressionType;y=new v(!0);if(d!==c.CMapCompressionType.BINARY){l.next=18;break}return l.abrupt("return",(new _).process(u,y,(function(t){return extendCMap(y,r,t)})));case 18:if(d!==c.CMapCompressionType.NONE){l.next=21;break}k=new h.Lexer(new m.Stream(u));return l.abrupt("return",parseCMap(y,k,r,null));case 21:throw new Error("TODO: Only BINARY/NONE CMap compression is currently supported.");case 22:case"end":return l.stop()}}),_callee5)})))).apply(this,arguments)}return{create:function create(t){return _asyncToGenerator(l.default.mark((function _callee2(){var r,o,c,d;return l.default.wrap((function _callee2$(l){for(;;)switch(l.prev=l.next){case 0:r=t.encoding;o=t.fetchBuiltInCMap;c=t.useCMap;if(!(0,u.isName)(r)){l.next=7;break}return l.abrupt("return",createBuiltInCMap(r.name,o));case 7:if(!(0,u.isStream)(r)){l.next=14;break}l.next=10;return parseCMap(new v,new h.Lexer(r),o,c);case 10:if(!(d=l.sent).isIdentityCMap){l.next=13;break}return l.abrupt("return",createBuiltInCMap(d.name,o));case 13:return l.abrupt("return",d);case 14:throw new Error("Encoding required.");case 15:case"end":return l.stop()}}),_callee2)})))()}}}();r.CMapFactory=k},(t,r,o)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});r.Parser=r.Linearization=r.Lexer=void 0;var l=o(4),c=o(118),u=o(122),h=o(141),d=o(143),m=o(144),g=o(146),y=o(147),v=o(150),S=o(152),_=o(154),k=o(123),C=o(155),w=o(156);function _classCallCheck(t,r){if(!(t instanceof r))throw new TypeError("Cannot call a class as a function")}function _defineProperties(t,r){for(var o=0;o<r.length;o++){var l=r[o];l.enumerable=l.enumerable||!1;l.configurable=!0;"value"in l&&(l.writable=!0);Object.defineProperty(t,l.key,l)}}function _createClass(t,r,o){r&&_defineProperties(t.prototype,r);o&&_defineProperties(t,o);return t}function computeAdler32(t){for(var r=t.length,o=1,l=0,c=0;c<r;++c)l+=o+=255&t[c];return l%65521<<16|o%65521}var x=function(){function Parser(t){var r=t.lexer,o=t.xref,l=t.allowStreams,c=void 0!==l&&l,u=t.recoveryMode,h=void 0!==u&&u;_classCallCheck(this,Parser);this.lexer=r;this.xref=o;this.allowStreams=c;this.recoveryMode=h;this.imageCache=Object.create(null);this.refill()}_createClass(Parser,[{key:"refill",value:function refill(){this.buf1=this.lexer.getObj();this.buf2=this.lexer.getObj()}},{key:"shift",value:function shift(){if(this.buf2 instanceof c.Cmd&&"ID"===this.buf2.cmd){this.buf1=this.buf2;this.buf2=null}else{this.buf1=this.buf2;this.buf2=this.lexer.getObj()}}},{key:"tryShift",value:function tryShift(){try{this.shift();return!0}catch(t){if(t instanceof u.MissingDataException)throw t;return!1}}},{key:"getObj",value:function getObj(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:null,r=this.buf1;this.shift();if(r instanceof c.Cmd)switch(r.cmd){case"BI":return this.makeInlineImage(t);case"[":for(var o=[];!(0,c.isCmd)(this.buf1,"]")&&this.buf1!==c.EOF;)o.push(this.getObj(t));if(this.buf1===c.EOF){if(this.recoveryMode)return o;throw new u.ParserEOFException("End of file inside array.")}this.shift();return o;case"<<":for(var h=new c.Dict(this.xref);!(0,c.isCmd)(this.buf1,">>")&&this.buf1!==c.EOF;)if((0,c.isName)(this.buf1)){var d=this.buf1.name;this.shift();if(this.buf1===c.EOF)break;h.set(d,this.getObj(t))}else{(0,l.info)("Malformed dictionary: key must be a name object");this.shift()}if(this.buf1===c.EOF){if(this.recoveryMode)return h;throw new u.ParserEOFException("End of file inside dictionary.")}if((0,c.isCmd)(this.buf2,"stream"))return this.allowStreams?this.makeStream(h,t):h;this.shift();return h;default:return r}if(Number.isInteger(r)){if(Number.isInteger(this.buf1)&&(0,c.isCmd)(this.buf2,"R")){var m=c.Ref.get(r,this.buf1);this.shift();this.shift();return m}return r}return"string"==typeof r&&t?t.decryptString(r):r}},{key:"findDefaultInlineStreamEnd",value:function findDefaultInlineStreamEnd(t){for(var r,o,h=this.lexer,d=t.pos,m=0;-1!==(r=t.getByte());)if(0===m)m=69===r?1:0;else if(1===m)m=73===r?2:0;else{(0,l.assert)(2===m,"findDefaultInlineStreamEnd - invalid state.");if(32===r||10===r||13===r){o=t.pos;for(var g=t.peekBytes(10),y=0,v=g.length;y<v;y++)if((0!==(r=g[y])||0===g[y+1])&&10!==r&&13!==r&&(r<32||r>127)){m=0;break}if(2!==m)continue;if(h.knownCommands){var S=h.peekObj();S instanceof c.Cmd&&!h.knownCommands[S.cmd]&&(m=0)}else(0,l.warn)("findDefaultInlineStreamEnd - `lexer.knownCommands` is undefined.");if(2===m)break}else m=0}if(-1===r){(0,l.warn)("findDefaultInlineStreamEnd: Reached the end of the stream without finding a valid EI marker");if(o){(0,l.warn)('... trying to recover by using the last "EI" occurrence.');t.skip(-(t.pos-o))}}var _=4;t.skip(-_);r=t.peekByte();t.skip(_);(0,u.isWhiteSpace)(r)||_--;return t.pos-_-d}},{key:"findDCTDecodeInlineStreamEnd",value:function findDCTDecodeInlineStreamEnd(t){for(var r,o,c=t.pos,u=!1;-1!==(r=t.getByte());)if(255===r){switch(t.getByte()){case 0:break;case 255:t.skip(-1);break;case 217:u=!0;break;case 192:case 193:case 194:case 195:case 197:case 198:case 199:case 201:case 202:case 203:case 205:case 206:case 207:case 196:case 204:case 218:case 219:case 220:case 221:case 222:case 223:case 224:case 225:case 226:case 227:case 228:case 229:case 230:case 231:case 232:case 233:case 234:case 235:case 236:case 237:case 238:case 239:case 254:(o=t.getUint16())>2?t.skip(o-2):t.skip(-2)}if(u)break}var h=t.pos-c;if(-1===r){(0,l.warn)("Inline DCTDecode image stream: EOI marker not found, searching for /EI/ instead.");t.skip(-h);return this.findDefaultInlineStreamEnd(t)}this.inlineStreamSkipEI(t);return h}},{key:"findASCII85DecodeInlineStreamEnd",value:function findASCII85DecodeInlineStreamEnd(t){for(var r,o=t.pos;-1!==(r=t.getByte());)if(126===r){var c=t.pos;r=t.peekByte();for(;(0,u.isWhiteSpace)(r);){t.skip();r=t.peekByte()}if(62===r){t.skip();break}if(t.pos>c){var h=t.peekBytes(2);if(69===h[0]&&73===h[1])break}}var d=t.pos-o;if(-1===r){(0,l.warn)("Inline ASCII85Decode image stream: EOD marker not found, searching for /EI/ instead.");t.skip(-d);return this.findDefaultInlineStreamEnd(t)}this.inlineStreamSkipEI(t);return d}},{key:"findASCIIHexDecodeInlineStreamEnd",value:function findASCIIHexDecodeInlineStreamEnd(t){for(var r,o=t.pos;-1!==(r=t.getByte())&&62!==r;);var c=t.pos-o;if(-1===r){(0,l.warn)("Inline ASCIIHexDecode image stream: EOD marker not found, searching for /EI/ instead.");t.skip(-c);return this.findDefaultInlineStreamEnd(t)}this.inlineStreamSkipEI(t);return c}},{key:"inlineStreamSkipEI",value:function inlineStreamSkipEI(t){for(var r,o=0;-1!==(r=t.getByte());)if(0===o)o=69===r?1:0;else if(1===o)o=73===r?2:0;else if(2===o)break}},{key:"makeInlineImage",value:function makeInlineImage(t){for(var r,o=this.lexer,u=o.stream,h=new c.Dict(this.xref);!(0,c.isCmd)(this.buf1,"ID")&&this.buf1!==c.EOF;){if(!(0,c.isName)(this.buf1))throw new l.FormatError("Dictionary key must be a name object");var d=this.buf1.name;this.shift();if(this.buf1===c.EOF)break;h.set(d,this.getObj(t))}-1!==o.beginInlineImagePos&&(r=u.pos-o.beginInlineImagePos);var m,g=h.get("Filter","F");if((0,c.isName)(g))m=g.name;else if(Array.isArray(g)){var y=this.xref.fetchIfRef(g[0]);(0,c.isName)(y)&&(m=y.name)}var v,S=u.pos;v="DCTDecode"===m||"DCT"===m?this.findDCTDecodeInlineStreamEnd(u):"ASCII85Decode"===m||"A85"===m?this.findASCII85DecodeInlineStreamEnd(u):"ASCIIHexDecode"===m||"AHx"===m?this.findASCIIHexDecodeInlineStreamEnd(u):this.findDefaultInlineStreamEnd(u);var _,k=u.makeSubStream(S,v,h);if(v<1e3&&r<5552){var C=k.getBytes();k.reset();var w=u.pos;u.pos=o.beginInlineImagePos;var x=u.getBytes(r);u.pos=w;_=computeAdler32(C)+"_"+computeAdler32(x);var O=this.imageCache[_];if(void 0!==O){this.buf2=c.Cmd.get("EI");this.shift();O.reset();return O}}t&&(k=t.createStream(k,v));(k=this.filter(k,h,v)).dict=h;if(void 0!==_){k.cacheKey="inline_".concat(v,"_").concat(_);this.imageCache[_]=k}this.buf2=c.Cmd.get("EI");this.shift();return k}},{key:"_findStreamLength",value:function _findStreamLength(t,r){var o=this.lexer.stream;o.pos=t;for(var l=r.length;o.pos<o.end;){var c=o.peekBytes(2048),u=c.length-l;if(u<=0)break;for(var h=0;h<u;){for(var d=0;d<l&&c[h+d]===r[d];)d++;if(d>=l){o.pos+=h;return o.pos-t}h++}o.pos+=u}return-1}},{key:"makeStream",value:function makeStream(t,r){var o=this.lexer,h=o.stream;o.skipToNextLine();var d=h.pos-1,m=t.get("Length");if(!Number.isInteger(m)){(0,l.info)('Bad length "'.concat(m,'" in stream'));m=0}h.pos=d+m;o.nextChar();if(this.tryShift()&&(0,c.isCmd)(this.buf2,"endstream"))this.shift();else{var g=new Uint8Array([101,110,100,115,116,114,101,97,109]),y=this._findStreamLength(d,g);if(y<0){for(var v=1;v<=1;v++){var S=g.length-v,_=g.slice(0,S),k=this._findStreamLength(d,_);if(k>=0){var C=h.peekBytes(S+1)[S];if(!(0,u.isWhiteSpace)(C))break;(0,l.info)('Found "'.concat((0,l.bytesToString)(_),'" when ')+"searching for endstream command.");y=k;break}}if(y<0)throw new l.FormatError("Missing endstream command.")}m=y;o.nextChar();this.shift();this.shift()}this.shift();h=h.makeSubStream(d,m,t);r&&(h=r.createStream(h,m));(h=this.filter(h,t,m)).dict=t;return h}},{key:"filter",value:function filter(t,r,o){var filter=r.get("Filter","F"),u=r.get("DecodeParms","DP");if((0,c.isName)(filter)){Array.isArray(u)&&(0,l.warn)("/DecodeParms should not contain an Array, when /Filter contains a Name.");return this.makeFilter(t,filter.name,o,u)}var h=o;if(Array.isArray(filter))for(var d=filter,m=u,g=0,y=d.length;g<y;++g){filter=this.xref.fetchIfRef(d[g]);if(!(0,c.isName)(filter))throw new l.FormatError('Bad filter name "'.concat(filter,'"'));u=null;Array.isArray(m)&&g in m&&(u=this.xref.fetchIfRef(m[g]));t=this.makeFilter(t,filter.name,h,u);h=null}return t}},{key:"makeFilter",value:function makeFilter(t,r,o,c){if(0===o){(0,l.warn)('Empty "'.concat(r,'" stream.'));return new k.NullStream}try{var x=this.xref.stats.streamTypes;if("FlateDecode"===r||"Fl"===r){x[l.StreamType.FLATE]=!0;return c?new C.PredictorStream(new g.FlateStream(t,o),o,c):new g.FlateStream(t,o)}if("LZWDecode"===r||"LZW"===r){x[l.StreamType.LZW]=!0;var O=1;if(c){c.has("EarlyChange")&&(O=c.get("EarlyChange"));return new C.PredictorStream(new _.LZWStream(t,o,O),o,c)}return new _.LZWStream(t,o,O)}if("DCTDecode"===r||"DCT"===r){x[l.StreamType.DCT]=!0;return new v.JpegStream(t,o,c)}if("JPXDecode"===r||"JPX"===r){x[l.StreamType.JPX]=!0;return new S.JpxStream(t,o,c)}if("ASCII85Decode"===r||"A85"===r){x[l.StreamType.A85]=!0;return new h.Ascii85Stream(t,o)}if("ASCIIHexDecode"===r||"AHx"===r){x[l.StreamType.AHX]=!0;return new d.AsciiHexStream(t,o)}if("CCITTFaxDecode"===r||"CCF"===r){x[l.StreamType.CCF]=!0;return new m.CCITTFaxStream(t,o,c)}if("RunLengthDecode"===r||"RL"===r){x[l.StreamType.RLX]=!0;return new w.RunLengthStream(t,o)}if("JBIG2Decode"===r){x[l.StreamType.JBIG]=!0;return new y.Jbig2Stream(t,o,c)}(0,l.warn)('Filter "'.concat(r,'" is not supported.'));return t}catch(t){if(t instanceof u.MissingDataException)throw t;(0,l.warn)('Invalid stream: "'.concat(t,'"'));return new k.NullStream}}}]);return Parser}();r.Parser=x;var O=[1,0,0,0,0,0,0,0,0,1,1,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,2,0,0,2,2,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,2,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0];function toHexDigit(t){return t>=48&&t<=57?15&t:t>=65&&t<=70||t>=97&&t<=102?9+(15&t):-1}var T=function(){function Lexer(t){var r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null;_classCallCheck(this,Lexer);this.stream=t;this.nextChar();this.strBuf=[];this.knownCommands=r;this._hexStringNumWarn=0;this.beginInlineImagePos=-1}_createClass(Lexer,[{key:"nextChar",value:function nextChar(){return this.currentChar=this.stream.getByte()}},{key:"peekChar",value:function peekChar(){return this.stream.peekByte()}},{key:"getNumber",value:function getNumber(){var t=this.currentChar,r=!1,o=0,c=0;if(45===t){c=-1;45===(t=this.nextChar())&&(t=this.nextChar())}else if(43===t){c=1;t=this.nextChar()}if(10===t||13===t)do{t=this.nextChar()}while(10===t||13===t);if(46===t){o=10;t=this.nextChar()}if(t<48||t>57){if(10===o&&0===c&&((0,u.isWhiteSpace)(t)||-1===t)){(0,l.warn)("Lexer.getNumber - treating a single decimal point as zero.");return 0}throw new l.FormatError("Invalid number: ".concat(String.fromCharCode(t)," (charCode ").concat(t,")"))}c=c||1;for(var h=t-48,d=0,m=1;(t=this.nextChar())>=0;)if(t>=48&&t<=57){var g=t-48;if(r)d=10*d+g;else{0!==o&&(o*=10);h=10*h+g}}else if(46===t){if(0!==o)break;o=1}else if(45===t)(0,l.warn)("Badly formatted number: minus sign in the middle");else{if(69!==t&&101!==t)break;if(43===(t=this.peekChar())||45===t){m=45===t?-1:1;this.nextChar()}else if(t<48||t>57)break;r=!0}0!==o&&(h/=o);r&&(h*=Math.pow(10,m*d));return c*h}},{key:"getString",value:function getString(){var t=1,r=!1,o=this.strBuf;o.length=0;for(var c=this.nextChar();;){var u=!1;switch(0|c){case-1:(0,l.warn)("Unterminated string");r=!0;break;case 40:++t;o.push("(");break;case 41:if(0==--t){this.nextChar();r=!0}else o.push(")");break;case 92:switch(c=this.nextChar()){case-1:(0,l.warn)("Unterminated string");r=!0;break;case 110:o.push("\n");break;case 114:o.push("\r");break;case 116:o.push("\t");break;case 98:o.push("\b");break;case 102:o.push("\f");break;case 92:case 40:case 41:o.push(String.fromCharCode(c));break;case 48:case 49:case 50:case 51:case 52:case 53:case 54:case 55:var h=15&c;u=!0;if((c=this.nextChar())>=48&&c<=55){h=(h<<3)+(15&c);if((c=this.nextChar())>=48&&c<=55){u=!1;h=(h<<3)+(15&c)}}o.push(String.fromCharCode(h));break;case 13:10===this.peekChar()&&this.nextChar();break;case 10:break;default:o.push(String.fromCharCode(c))}break;default:o.push(String.fromCharCode(c))}if(r)break;u||(c=this.nextChar())}return o.join("")}},{key:"getName",value:function getName(){var t,r,o=this.strBuf;o.length=0;for(;(t=this.nextChar())>=0&&!O[t];)if(35===t){t=this.nextChar();if(O[t]){(0,l.warn)("Lexer_getName: NUMBER SIGN (#) should be followed by a hexadecimal number.");o.push("#");break}var u=toHexDigit(t);if(-1!==u){r=t;var h=toHexDigit(t=this.nextChar());if(-1===h){(0,l.warn)("Lexer_getName: Illegal digit (".concat(String.fromCharCode(t),") ")+"in hexadecimal number.");o.push("#",String.fromCharCode(r));if(O[t])break;o.push(String.fromCharCode(t));continue}o.push(String.fromCharCode(u<<4|h))}else o.push("#",String.fromCharCode(t))}else o.push(String.fromCharCode(t));o.length>127?(0,l.warn)("Name token is longer than allowed by the spec: ".concat(o.length)):0===o.length&&(0,l.warn)("Name token is empty.");return c.Name.get(o.join(""))}},{key:"_hexStringWarn",value:function _hexStringWarn(t){5!=this._hexStringNumWarn++?this._hexStringNumWarn>5||(0,l.warn)("getHexString - ignoring invalid character: ".concat(t)):(0,l.warn)("getHexString - ignoring additional invalid characters.")}},{key:"getHexString",value:function getHexString(){var t=this.strBuf;t.length=0;var r,o,c=this.currentChar,u=!0;this._hexStringNumWarn=0;for(;;){if(c<0){(0,l.warn)("Unterminated hex string");break}if(62===c){this.nextChar();break}if(1!==O[c]){if(u){if(-1===(r=toHexDigit(c))){this._hexStringWarn(c);c=this.nextChar();continue}}else{if(-1===(o=toHexDigit(c))){this._hexStringWarn(c);c=this.nextChar();continue}t.push(String.fromCharCode(r<<4|o))}u=!u;c=this.nextChar()}else c=this.nextChar()}return t.join("")}},{key:"getObj",value:function getObj(){for(var t=!1,r=this.currentChar;;){if(r<0)return c.EOF;if(t)10!==r&&13!==r||(t=!1);else if(37===r)t=!0;else if(1!==O[r])break;r=this.nextChar()}switch(0|r){case 48:case 49:case 50:case 51:case 52:case 53:case 54:case 55:case 56:case 57:case 43:case 45:case 46:return this.getNumber();case 40:return this.getString();case 47:return this.getName();case 91:this.nextChar();return c.Cmd.get("[");case 93:this.nextChar();return c.Cmd.get("]");case 60:if(60===(r=this.nextChar())){this.nextChar();return c.Cmd.get("<<")}return this.getHexString();case 62:if(62===(r=this.nextChar())){this.nextChar();return c.Cmd.get(">>")}return c.Cmd.get(">");case 123:this.nextChar();return c.Cmd.get("{");case 125:this.nextChar();return c.Cmd.get("}");case 41:this.nextChar();throw new l.FormatError("Illegal character: ".concat(r))}var o=String.fromCharCode(r);if(r<32||r>127){var u=this.peekChar();if(u>=32&&u<=127){this.nextChar();return c.Cmd.get(o)}}for(var h=this.knownCommands,d=h&&void 0!==h[o];(r=this.nextChar())>=0&&!O[r];){var m=o+String.fromCharCode(r);if(d&&void 0===h[m])break;if(128===o.length)throw new l.FormatError("Command token too long: ".concat(o.length));o=m;d=h&&void 0!==h[o]}if("true"===o)return!0;if("false"===o)return!1;if("null"===o)return null;"BI"===o&&(this.beginInlineImagePos=this.stream.pos);return c.Cmd.get(o)}},{key:"peekObj",value:function peekObj(){var t,r=this.stream.pos,o=this.currentChar,c=this.beginInlineImagePos;try{t=this.getObj()}catch(t){if(t instanceof u.MissingDataException)throw t;(0,l.warn)("peekObj: ".concat(t))}this.stream.pos=r;this.currentChar=o;this.beginInlineImagePos=c;return t}},{key:"skipToNextLine",value:function skipToNextLine(){for(var t=this.currentChar;t>=0;){if(13===t){10===(t=this.nextChar())&&this.nextChar();break}if(10===t){this.nextChar();break}t=this.nextChar()}}}]);return Lexer}();r.Lexer=T;var R=function(){function Linearization(){_classCallCheck(this,Linearization)}_createClass(Linearization,null,[{key:"create",value:function create(t){function getInt(t,r){var o=arguments.length>2&&void 0!==arguments[2]&&arguments[2],l=t.get(r);if(Number.isInteger(l)&&(o?l>=0:l>0))return l;throw new Error('The "'.concat(r,'" parameter in the linearization ')+"dictionary is invalid.")}var r,o,u=new x({lexer:new T(t),xref:null}),h=u.getObj(),d=u.getObj(),m=u.getObj(),g=u.getObj();if(!(Number.isInteger(h)&&Number.isInteger(d)&&(0,c.isCmd)(m,"obj")&&(0,c.isDict)(g)&&(0,l.isNum)(r=g.get("Linearized"))&&r>0))return null;if((o=getInt(g,"L"))!==t.length)throw new Error('The "L" parameter in the linearization dictionary does not equal the stream length.');return{length:o,hints:function getHints(t){var r,o=t.get("H");if(Array.isArray(o)&&(2===(r=o.length)||4===r)){for(var l=0;l<r;l++){var c=o[l];if(!(Number.isInteger(c)&&c>0))throw new Error("Hint (".concat(l,") in the linearization dictionary is invalid."))}return o}throw new Error("Hint array in the linearization dictionary is invalid.")}(g),objectNumberFirst:getInt(g,"O"),endFirst:getInt(g,"E"),numPages:getInt(g,"N"),mainXRefEntriesOffset:getInt(g,"T"),pageFirst:g.has("P")?getInt(g,"P",!0):0}}}]);return Linearization}();r.Linearization=R},(t,r,o)=>{"use strict";function _typeof(t){_typeof="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function _typeof(t){return typeof t}:function _typeof(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t};return _typeof(t)}Object.defineProperty(r,"__esModule",{value:!0});r.Ascii85Stream=void 0;var l=o(142),c=o(122);function _defineProperties(t,r){for(var o=0;o<r.length;o++){var l=r[o];l.enumerable=l.enumerable||!1;l.configurable=!0;"value"in l&&(l.writable=!0);Object.defineProperty(t,l.key,l)}}function _setPrototypeOf(t,r){_setPrototypeOf=Object.setPrototypeOf||function _setPrototypeOf(t,r){t.__proto__=r;return t};return _setPrototypeOf(t,r)}function _createSuper(t){var r=function _isNativeReflectConstruct(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){})));return!0}catch(t){return!1}}();return function _createSuperInternal(){var o,l=_getPrototypeOf(t);if(r){var c=_getPrototypeOf(this).constructor;o=Reflect.construct(l,arguments,c)}else o=l.apply(this,arguments);return _possibleConstructorReturn(this,o)}}function _possibleConstructorReturn(t,r){if(r&&("object"===_typeof(r)||"function"==typeof r))return r;if(void 0!==r)throw new TypeError("Derived constructors may only return object or undefined");return function _assertThisInitialized(t){if(void 0===t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return t}(t)}function _getPrototypeOf(t){_getPrototypeOf=Object.setPrototypeOf?Object.getPrototypeOf:function _getPrototypeOf(t){return t.__proto__||Object.getPrototypeOf(t)};return _getPrototypeOf(t)}var u=function(t){!function _inherits(t,r){if("function"!=typeof r&&null!==r)throw new TypeError("Super expression must either be null or a function");t.prototype=Object.create(r&&r.prototype,{constructor:{value:t,writable:!0,configurable:!0}});r&&_setPrototypeOf(t,r)}(Ascii85Stream,t);var r=_createSuper(Ascii85Stream);function Ascii85Stream(t,o){var l;!function _classCallCheck(t,r){if(!(t instanceof r))throw new TypeError("Cannot call a class as a function")}(this,Ascii85Stream);o&&(o*=.8);(l=r.call(this,o)).str=t;l.dict=t.dict;l.input=new Uint8Array(5);return l}!function _createClass(t,r,o){r&&_defineProperties(t.prototype,r);o&&_defineProperties(t,o);return t}(Ascii85Stream,[{key:"readBlock",value:function readBlock(){for(var t=this.str,r=t.getByte();(0,c.isWhiteSpace)(r);)r=t.getByte();if(-1!==r&&126!==r){var o,l,u=this.bufferLength;if(122===r){o=this.ensureBuffer(u+4);for(l=0;l<4;++l)o[u+l]=0;this.bufferLength+=4}else{var h=this.input;h[0]=r;for(l=1;l<5;++l){r=t.getByte();for(;(0,c.isWhiteSpace)(r);)r=t.getByte();h[l]=r;if(-1===r||126===r)break}o=this.ensureBuffer(u+l-1);this.bufferLength+=l-1;if(l<5){for(;l<5;++l)h[l]=117;this.eof=!0}var d=0;for(l=0;l<5;++l)d=85*d+(h[l]-33);for(l=3;l>=0;--l){o[u+l]=255&d;d>>=8}}}else this.eof=!0}}]);return Ascii85Stream}(l.DecodeStream);r.Ascii85Stream=u},(t,r,o)=>{"use strict";function _typeof(t){_typeof="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function _typeof(t){return typeof t}:function _typeof(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t};return _typeof(t)}Object.defineProperty(r,"__esModule",{value:!0});r.StreamsSequenceStream=r.DecodeStream=void 0;var l=o(119),c=o(123);function _toConsumableArray(t){return function _arrayWithoutHoles(t){if(Array.isArray(t))return _arrayLikeToArray(t)}(t)||function _iterableToArray(t){if("undefined"!=typeof Symbol&&null!=t[Symbol.iterator]||null!=t["@@iterator"])return Array.from(t)}(t)||_unsupportedIterableToArray(t)||function _nonIterableSpread(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function _createForOfIteratorHelper(t,r){var o="undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(!o){if(Array.isArray(t)||(o=_unsupportedIterableToArray(t))||r&&t&&"number"==typeof t.length){o&&(t=o);var l=0,c=function F(){};return{s:c,n:function n(){return l>=t.length?{done:!0}:{done:!1,value:t[l++]}},e:function e(t){throw t},f:c}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var u,h=!0,d=!1;return{s:function s(){o=o.call(t)},n:function n(){var t=o.next();h=t.done;return t},e:function e(t){d=!0;u=t},f:function f(){try{h||null==o.return||o.return()}finally{if(d)throw u}}}}function _unsupportedIterableToArray(t,r){if(t){if("string"==typeof t)return _arrayLikeToArray(t,r);var o=Object.prototype.toString.call(t).slice(8,-1);"Object"===o&&t.constructor&&(o=t.constructor.name);return"Map"===o||"Set"===o?Array.from(t):"Arguments"===o||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(o)?_arrayLikeToArray(t,r):void 0}}function _arrayLikeToArray(t,r){(null==r||r>t.length)&&(r=t.length);for(var o=0,l=new Array(r);o<r;o++)l[o]=t[o];return l}function _classCallCheck(t,r){if(!(t instanceof r))throw new TypeError("Cannot call a class as a function")}function _defineProperties(t,r){for(var o=0;o<r.length;o++){var l=r[o];l.enumerable=l.enumerable||!1;l.configurable=!0;"value"in l&&(l.writable=!0);Object.defineProperty(t,l.key,l)}}function _createClass(t,r,o){r&&_defineProperties(t.prototype,r);o&&_defineProperties(t,o);return t}function _inherits(t,r){if("function"!=typeof r&&null!==r)throw new TypeError("Super expression must either be null or a function");t.prototype=Object.create(r&&r.prototype,{constructor:{value:t,writable:!0,configurable:!0}});r&&_setPrototypeOf(t,r)}function _setPrototypeOf(t,r){_setPrototypeOf=Object.setPrototypeOf||function _setPrototypeOf(t,r){t.__proto__=r;return t};return _setPrototypeOf(t,r)}function _createSuper(t){var r=function _isNativeReflectConstruct(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){})));return!0}catch(t){return!1}}();return function _createSuperInternal(){var o,l=_getPrototypeOf(t);if(r){var c=_getPrototypeOf(this).constructor;o=Reflect.construct(l,arguments,c)}else o=l.apply(this,arguments);return _possibleConstructorReturn(this,o)}}function _possibleConstructorReturn(t,r){if(r&&("object"===_typeof(r)||"function"==typeof r))return r;if(void 0!==r)throw new TypeError("Derived constructors may only return object or undefined");return function _assertThisInitialized(t){if(void 0===t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return t}(t)}function _getPrototypeOf(t){_getPrototypeOf=Object.setPrototypeOf?Object.getPrototypeOf:function _getPrototypeOf(t){return t.__proto__||Object.getPrototypeOf(t)};return _getPrototypeOf(t)}var u=new Uint8Array(0),h=function(t){_inherits(DecodeStream,t);var r=_createSuper(DecodeStream);function DecodeStream(t){var o;_classCallCheck(this,DecodeStream);(o=r.call(this))._rawMinBufferLength=t||0;o.pos=0;o.bufferLength=0;o.eof=!1;o.buffer=u;o.minBufferLength=512;if(t)for(;o.minBufferLength<t;)o.minBufferLength*=2;return o}_createClass(DecodeStream,[{key:"isEmpty",get:function get(){for(;!this.eof&&0===this.bufferLength;)this.readBlock();return 0===this.bufferLength}},{key:"ensureBuffer",value:function ensureBuffer(t){var r=this.buffer;if(t<=r.byteLength)return r;for(var o=this.minBufferLength;o<t;)o*=2;var l=new Uint8Array(o);l.set(r);return this.buffer=l}},{key:"getByte",value:function getByte(){for(var t=this.pos;this.bufferLength<=t;){if(this.eof)return-1;this.readBlock()}return this.buffer[this.pos++]}},{key:"getBytes",value:function getBytes(t){var r,o=arguments.length>1&&void 0!==arguments[1]&&arguments[1],l=this.pos;if(t){this.ensureBuffer(l+t);r=l+t;for(;!this.eof&&this.bufferLength<r;)this.readBlock();var c=this.bufferLength;r>c&&(r=c)}else{for(;!this.eof;)this.readBlock();r=this.bufferLength}this.pos=r;var u=this.buffer.subarray(l,r);return!o||u instanceof Uint8ClampedArray?u:new Uint8ClampedArray(u)}},{key:"reset",value:function reset(){this.pos=0}},{key:"makeSubStream",value:function makeSubStream(t,r){var o=arguments.length>2&&void 0!==arguments[2]?arguments[2]:null;if(void 0===r)for(;!this.eof;)this.readBlock();else for(var l=t+r;this.bufferLength<=l&&!this.eof;)this.readBlock();return new c.Stream(this.buffer,t,r,o)}},{key:"getBaseStreams",value:function getBaseStreams(){return this.str?this.str.getBaseStreams():null}}]);return DecodeStream}(l.BaseStream);r.DecodeStream=h;var d=function(t){_inherits(StreamsSequenceStream,t);var r=_createSuper(StreamsSequenceStream);function StreamsSequenceStream(t){var o,l=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null;_classCallCheck(this,StreamsSequenceStream);var c,u=0,d=_createForOfIteratorHelper(t);try{for(d.s();!(c=d.n()).done;){var m=c.value;u+=m instanceof h?m._rawMinBufferLength:m.length}}catch(t){d.e(t)}finally{d.f()}(o=r.call(this,u)).streams=t;o._onError=l;return o}_createClass(StreamsSequenceStream,[{key:"readBlock",value:function readBlock(){var t=this.streams;if(0!==t.length){var r,o=t.shift();try{r=o.getBytes()}catch(t){if(this._onError){this._onError(t,o.dict&&o.dict.objId);return}throw t}var l=this.bufferLength,c=l+r.length;this.ensureBuffer(c).set(r,l);this.bufferLength=c}else this.eof=!0}},{key:"getBaseStreams",value:function getBaseStreams(){var t,r=[],o=_createForOfIteratorHelper(this.streams);try{for(o.s();!(t=o.n()).done;){var l=t.value.getBaseStreams();l&&r.push.apply(r,_toConsumableArray(l))}}catch(t){o.e(t)}finally{o.f()}return r.length>0?r:null}}]);return StreamsSequenceStream}(h);r.StreamsSequenceStream=d},(t,r,o)=>{"use strict";function _typeof(t){_typeof="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function _typeof(t){return typeof t}:function _typeof(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t};return _typeof(t)}Object.defineProperty(r,"__esModule",{value:!0});r.AsciiHexStream=void 0;function _createForOfIteratorHelper(t,r){var o="undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(!o){if(Array.isArray(t)||(o=function _unsupportedIterableToArray(t,r){if(!t)return;if("string"==typeof t)return _arrayLikeToArray(t,r);var o=Object.prototype.toString.call(t).slice(8,-1);"Object"===o&&t.constructor&&(o=t.constructor.name);if("Map"===o||"Set"===o)return Array.from(t);if("Arguments"===o||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(o))return _arrayLikeToArray(t,r)}(t))||r&&t&&"number"==typeof t.length){o&&(t=o);var l=0,c=function F(){};return{s:c,n:function n(){return l>=t.length?{done:!0}:{done:!1,value:t[l++]}},e:function e(t){throw t},f:c}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var u,h=!0,d=!1;return{s:function s(){o=o.call(t)},n:function n(){var t=o.next();h=t.done;return t},e:function e(t){d=!0;u=t},f:function f(){try{h||null==o.return||o.return()}finally{if(d)throw u}}}}function _arrayLikeToArray(t,r){(null==r||r>t.length)&&(r=t.length);for(var o=0,l=new Array(r);o<r;o++)l[o]=t[o];return l}function _defineProperties(t,r){for(var o=0;o<r.length;o++){var l=r[o];l.enumerable=l.enumerable||!1;l.configurable=!0;"value"in l&&(l.writable=!0);Object.defineProperty(t,l.key,l)}}function _setPrototypeOf(t,r){_setPrototypeOf=Object.setPrototypeOf||function _setPrototypeOf(t,r){t.__proto__=r;return t};return _setPrototypeOf(t,r)}function _createSuper(t){var r=function _isNativeReflectConstruct(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){})));return!0}catch(t){return!1}}();return function _createSuperInternal(){var o,l=_getPrototypeOf(t);if(r){var c=_getPrototypeOf(this).constructor;o=Reflect.construct(l,arguments,c)}else o=l.apply(this,arguments);return _possibleConstructorReturn(this,o)}}function _possibleConstructorReturn(t,r){if(r&&("object"===_typeof(r)||"function"==typeof r))return r;if(void 0!==r)throw new TypeError("Derived constructors may only return object or undefined");return function _assertThisInitialized(t){if(void 0===t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return t}(t)}function _getPrototypeOf(t){_getPrototypeOf=Object.setPrototypeOf?Object.getPrototypeOf:function _getPrototypeOf(t){return t.__proto__||Object.getPrototypeOf(t)};return _getPrototypeOf(t)}var l=function(t){!function _inherits(t,r){if("function"!=typeof r&&null!==r)throw new TypeError("Super expression must either be null or a function");t.prototype=Object.create(r&&r.prototype,{constructor:{value:t,writable:!0,configurable:!0}});r&&_setPrototypeOf(t,r)}(AsciiHexStream,t);var r=_createSuper(AsciiHexStream);function AsciiHexStream(t,o){var l;!function _classCallCheck(t,r){if(!(t instanceof r))throw new TypeError("Cannot call a class as a function")}(this,AsciiHexStream);o&&(o*=.5);(l=r.call(this,o)).str=t;l.dict=t.dict;l.firstDigit=-1;return l}!function _createClass(t,r,o){r&&_defineProperties(t.prototype,r);o&&_defineProperties(t,o);return t}(AsciiHexStream,[{key:"readBlock",value:function readBlock(){var t=this.str.getBytes(8e3);if(t.length){var r,o=t.length+1>>1,l=this.ensureBuffer(this.bufferLength+o),c=this.bufferLength,u=this.firstDigit,h=_createForOfIteratorHelper(t);try{for(h.s();!(r=h.n()).done;){var d=r.value,m=void 0;if(d>=48&&d<=57)m=15&d;else{if(!(d>=65&&d<=70||d>=97&&d<=102)){if(62===d){this.eof=!0;break}continue}m=9+(15&d)}if(u<0)u=m;else{l[c++]=u<<4|m;u=-1}}}catch(t){h.e(t)}finally{h.f()}if(u>=0&&this.eof){l[c++]=u<<4;u=-1}this.firstDigit=u;this.bufferLength=c}else this.eof=!0}}]);return AsciiHexStream}(o(142).DecodeStream);r.AsciiHexStream=l},(t,r,o)=>{"use strict";function _typeof(t){_typeof="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function _typeof(t){return typeof t}:function _typeof(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t};return _typeof(t)}Object.defineProperty(r,"__esModule",{value:!0});r.CCITTFaxStream=void 0;var l=o(118),c=o(145);function _defineProperties(t,r){for(var o=0;o<r.length;o++){var l=r[o];l.enumerable=l.enumerable||!1;l.configurable=!0;"value"in l&&(l.writable=!0);Object.defineProperty(t,l.key,l)}}function _setPrototypeOf(t,r){_setPrototypeOf=Object.setPrototypeOf||function _setPrototypeOf(t,r){t.__proto__=r;return t};return _setPrototypeOf(t,r)}function _createSuper(t){var r=function _isNativeReflectConstruct(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){})));return!0}catch(t){return!1}}();return function _createSuperInternal(){var o,l=_getPrototypeOf(t);if(r){var c=_getPrototypeOf(this).constructor;o=Reflect.construct(l,arguments,c)}else o=l.apply(this,arguments);return _possibleConstructorReturn(this,o)}}function _possibleConstructorReturn(t,r){if(r&&("object"===_typeof(r)||"function"==typeof r))return r;if(void 0!==r)throw new TypeError("Derived constructors may only return object or undefined");return function _assertThisInitialized(t){if(void 0===t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return t}(t)}function _getPrototypeOf(t){_getPrototypeOf=Object.setPrototypeOf?Object.getPrototypeOf:function _getPrototypeOf(t){return t.__proto__||Object.getPrototypeOf(t)};return _getPrototypeOf(t)}var u=function(t){!function _inherits(t,r){if("function"!=typeof r&&null!==r)throw new TypeError("Super expression must either be null or a function");t.prototype=Object.create(r&&r.prototype,{constructor:{value:t,writable:!0,configurable:!0}});r&&_setPrototypeOf(t,r)}(CCITTFaxStream,t);var r=_createSuper(CCITTFaxStream);function CCITTFaxStream(t,o,u){var h;!function _classCallCheck(t,r){if(!(t instanceof r))throw new TypeError("Cannot call a class as a function")}(this,CCITTFaxStream);(h=r.call(this,o)).str=t;h.dict=t.dict;(0,l.isDict)(u)||(u=l.Dict.empty);var d={next:function next(){return t.getByte()}};h.ccittFaxDecoder=new c.CCITTFaxDecoder(d,{K:u.get("K"),EndOfLine:u.get("EndOfLine"),EncodedByteAlign:u.get("EncodedByteAlign"),Columns:u.get("Columns"),Rows:u.get("Rows"),EndOfBlock:u.get("EndOfBlock"),BlackIs1:u.get("BlackIs1")});return h}!function _createClass(t,r,o){r&&_defineProperties(t.prototype,r);o&&_defineProperties(t,o);return t}(CCITTFaxStream,[{key:"readBlock",value:function readBlock(){for(;!this.eof;){var t=this.ccittFaxDecoder.readNextChar();if(-1===t){this.eof=!0;return}this.ensureBuffer(this.bufferLength+1);this.buffer[this.bufferLength++]=t}}}]);return CCITTFaxStream}(o(142).DecodeStream);r.CCITTFaxStream=u},(t,r,o)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});r.CCITTFaxDecoder=void 0;var l=o(4);function _classCallCheck(t,r){if(!(t instanceof r))throw new TypeError("Cannot call a class as a function")}function _defineProperties(t,r){for(var o=0;o<r.length;o++){var l=r[o];l.enumerable=l.enumerable||!1;l.configurable=!0;"value"in l&&(l.writable=!0);Object.defineProperty(t,l.key,l)}}var c=-1,u=[[-1,-1],[-1,-1],[7,8],[7,7],[6,6],[6,6],[6,5],[6,5],[4,0],[4,0],[4,0],[4,0],[4,0],[4,0],[4,0],[4,0],[3,1],[3,1],[3,1],[3,1],[3,1],[3,1],[3,1],[3,1],[3,1],[3,1],[3,1],[3,1],[3,1],[3,1],[3,1],[3,1],[3,4],[3,4],[3,4],[3,4],[3,4],[3,4],[3,4],[3,4],[3,4],[3,4],[3,4],[3,4],[3,4],[3,4],[3,4],[3,4],[3,3],[3,3],[3,3],[3,3],[3,3],[3,3],[3,3],[3,3],[3,3],[3,3],[3,3],[3,3],[3,3],[3,3],[3,3],[3,3],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2]],h=[[-1,-1],[12,-2],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[11,1792],[11,1792],[12,1984],[12,2048],[12,2112],[12,2176],[12,2240],[12,2304],[11,1856],[11,1856],[11,1920],[11,1920],[12,2368],[12,2432],[12,2496],[12,2560]],d=[[-1,-1],[-1,-1],[-1,-1],[-1,-1],[8,29],[8,29],[8,30],[8,30],[8,45],[8,45],[8,46],[8,46],[7,22],[7,22],[7,22],[7,22],[7,23],[7,23],[7,23],[7,23],[8,47],[8,47],[8,48],[8,48],[6,13],[6,13],[6,13],[6,13],[6,13],[6,13],[6,13],[6,13],[7,20],[7,20],[7,20],[7,20],[8,33],[8,33],[8,34],[8,34],[8,35],[8,35],[8,36],[8,36],[8,37],[8,37],[8,38],[8,38],[7,19],[7,19],[7,19],[7,19],[8,31],[8,31],[8,32],[8,32],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,12],[6,12],[6,12],[6,12],[6,12],[6,12],[6,12],[6,12],[8,53],[8,53],[8,54],[8,54],[7,26],[7,26],[7,26],[7,26],[8,39],[8,39],[8,40],[8,40],[8,41],[8,41],[8,42],[8,42],[8,43],[8,43],[8,44],[8,44],[7,21],[7,21],[7,21],[7,21],[7,28],[7,28],[7,28],[7,28],[8,61],[8,61],[8,62],[8,62],[8,63],[8,63],[8,0],[8,0],[8,320],[8,320],[8,384],[8,384],[5,10],[5,10],[5,10],[5,10],[5,10],[5,10],[5,10],[5,10],[5,10],[5,10],[5,10],[5,10],[5,10],[5,10],[5,10],[5,10],[5,11],[5,11],[5,11],[5,11],[5,11],[5,11],[5,11],[5,11],[5,11],[5,11],[5,11],[5,11],[5,11],[5,11],[5,11],[5,11],[7,27],[7,27],[7,27],[7,27],[8,59],[8,59],[8,60],[8,60],[9,1472],[9,1536],[9,1600],[9,1728],[7,18],[7,18],[7,18],[7,18],[7,24],[7,24],[7,24],[7,24],[8,49],[8,49],[8,50],[8,50],[8,51],[8,51],[8,52],[8,52],[7,25],[7,25],[7,25],[7,25],[8,55],[8,55],[8,56],[8,56],[8,57],[8,57],[8,58],[8,58],[6,192],[6,192],[6,192],[6,192],[6,192],[6,192],[6,192],[6,192],[6,1664],[6,1664],[6,1664],[6,1664],[6,1664],[6,1664],[6,1664],[6,1664],[8,448],[8,448],[8,512],[8,512],[9,704],[9,768],[8,640],[8,640],[8,576],[8,576],[9,832],[9,896],[9,960],[9,1024],[9,1088],[9,1152],[9,1216],[9,1280],[9,1344],[9,1408],[7,256],[7,256],[7,256],[7,256],[4,2],[4,2],[4,2],[4,2],[4,2],[4,2],[4,2],[4,2],[4,2],[4,2],[4,2],[4,2],[4,2],[4,2],[4,2],[4,2],[4,2],[4,2],[4,2],[4,2],[4,2],[4,2],[4,2],[4,2],[4,2],[4,2],[4,2],[4,2],[4,2],[4,2],[4,2],[4,2],[4,3],[4,3],[4,3],[4,3],[4,3],[4,3],[4,3],[4,3],[4,3],[4,3],[4,3],[4,3],[4,3],[4,3],[4,3],[4,3],[4,3],[4,3],[4,3],[4,3],[4,3],[4,3],[4,3],[4,3],[4,3],[4,3],[4,3],[4,3],[4,3],[4,3],[4,3],[4,3],[5,128],[5,128],[5,128],[5,128],[5,128],[5,128],[5,128],[5,128],[5,128],[5,128],[5,128],[5,128],[5,128],[5,128],[5,128],[5,128],[5,8],[5,8],[5,8],[5,8],[5,8],[5,8],[5,8],[5,8],[5,8],[5,8],[5,8],[5,8],[5,8],[5,8],[5,8],[5,8],[5,9],[5,9],[5,9],[5,9],[5,9],[5,9],[5,9],[5,9],[5,9],[5,9],[5,9],[5,9],[5,9],[5,9],[5,9],[5,9],[6,16],[6,16],[6,16],[6,16],[6,16],[6,16],[6,16],[6,16],[6,17],[6,17],[6,17],[6,17],[6,17],[6,17],[6,17],[6,17],[4,4],[4,4],[4,4],[4,4],[4,4],[4,4],[4,4],[4,4],[4,4],[4,4],[4,4],[4,4],[4,4],[4,4],[4,4],[4,4],[4,4],[4,4],[4,4],[4,4],[4,4],[4,4],[4,4],[4,4],[4,4],[4,4],[4,4],[4,4],[4,4],[4,4],[4,4],[4,4],[4,5],[4,5],[4,5],[4,5],[4,5],[4,5],[4,5],[4,5],[4,5],[4,5],[4,5],[4,5],[4,5],[4,5],[4,5],[4,5],[4,5],[4,5],[4,5],[4,5],[4,5],[4,5],[4,5],[4,5],[4,5],[4,5],[4,5],[4,5],[4,5],[4,5],[4,5],[4,5],[6,14],[6,14],[6,14],[6,14],[6,14],[6,14],[6,14],[6,14],[6,15],[6,15],[6,15],[6,15],[6,15],[6,15],[6,15],[6,15],[5,64],[5,64],[5,64],[5,64],[5,64],[5,64],[5,64],[5,64],[5,64],[5,64],[5,64],[5,64],[5,64],[5,64],[5,64],[5,64],[4,6],[4,6],[4,6],[4,6],[4,6],[4,6],[4,6],[4,6],[4,6],[4,6],[4,6],[4,6],[4,6],[4,6],[4,6],[4,6],[4,6],[4,6],[4,6],[4,6],[4,6],[4,6],[4,6],[4,6],[4,6],[4,6],[4,6],[4,6],[4,6],[4,6],[4,6],[4,6],[4,7],[4,7],[4,7],[4,7],[4,7],[4,7],[4,7],[4,7],[4,7],[4,7],[4,7],[4,7],[4,7],[4,7],[4,7],[4,7],[4,7],[4,7],[4,7],[4,7],[4,7],[4,7],[4,7],[4,7],[4,7],[4,7],[4,7],[4,7],[4,7],[4,7],[4,7],[4,7]],m=[[-1,-1],[-1,-1],[12,-2],[12,-2],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[11,1792],[11,1792],[11,1792],[11,1792],[12,1984],[12,1984],[12,2048],[12,2048],[12,2112],[12,2112],[12,2176],[12,2176],[12,2240],[12,2240],[12,2304],[12,2304],[11,1856],[11,1856],[11,1856],[11,1856],[11,1920],[11,1920],[11,1920],[11,1920],[12,2368],[12,2368],[12,2432],[12,2432],[12,2496],[12,2496],[12,2560],[12,2560],[10,18],[10,18],[10,18],[10,18],[10,18],[10,18],[10,18],[10,18],[12,52],[12,52],[13,640],[13,704],[13,768],[13,832],[12,55],[12,55],[12,56],[12,56],[13,1280],[13,1344],[13,1408],[13,1472],[12,59],[12,59],[12,60],[12,60],[13,1536],[13,1600],[11,24],[11,24],[11,24],[11,24],[11,25],[11,25],[11,25],[11,25],[13,1664],[13,1728],[12,320],[12,320],[12,384],[12,384],[12,448],[12,448],[13,512],[13,576],[12,53],[12,53],[12,54],[12,54],[13,896],[13,960],[13,1024],[13,1088],[13,1152],[13,1216],[10,64],[10,64],[10,64],[10,64],[10,64],[10,64],[10,64],[10,64]],g=[[8,13],[8,13],[8,13],[8,13],[8,13],[8,13],[8,13],[8,13],[8,13],[8,13],[8,13],[8,13],[8,13],[8,13],[8,13],[8,13],[11,23],[11,23],[12,50],[12,51],[12,44],[12,45],[12,46],[12,47],[12,57],[12,58],[12,61],[12,256],[10,16],[10,16],[10,16],[10,16],[10,17],[10,17],[10,17],[10,17],[12,48],[12,49],[12,62],[12,63],[12,30],[12,31],[12,32],[12,33],[12,40],[12,41],[11,22],[11,22],[8,14],[8,14],[8,14],[8,14],[8,14],[8,14],[8,14],[8,14],[8,14],[8,14],[8,14],[8,14],[8,14],[8,14],[8,14],[8,14],[7,10],[7,10],[7,10],[7,10],[7,10],[7,10],[7,10],[7,10],[7,10],[7,10],[7,10],[7,10],[7,10],[7,10],[7,10],[7,10],[7,10],[7,10],[7,10],[7,10],[7,10],[7,10],[7,10],[7,10],[7,10],[7,10],[7,10],[7,10],[7,10],[7,10],[7,10],[7,10],[7,11],[7,11],[7,11],[7,11],[7,11],[7,11],[7,11],[7,11],[7,11],[7,11],[7,11],[7,11],[7,11],[7,11],[7,11],[7,11],[7,11],[7,11],[7,11],[7,11],[7,11],[7,11],[7,11],[7,11],[7,11],[7,11],[7,11],[7,11],[7,11],[7,11],[7,11],[7,11],[9,15],[9,15],[9,15],[9,15],[9,15],[9,15],[9,15],[9,15],[12,128],[12,192],[12,26],[12,27],[12,28],[12,29],[11,19],[11,19],[11,20],[11,20],[12,34],[12,35],[12,36],[12,37],[12,38],[12,39],[11,21],[11,21],[12,42],[12,43],[10,0],[10,0],[10,0],[10,0],[7,12],[7,12],[7,12],[7,12],[7,12],[7,12],[7,12],[7,12],[7,12],[7,12],[7,12],[7,12],[7,12],[7,12],[7,12],[7,12],[7,12],[7,12],[7,12],[7,12],[7,12],[7,12],[7,12],[7,12],[7,12],[7,12],[7,12],[7,12],[7,12],[7,12],[7,12],[7,12]],y=[[-1,-1],[-1,-1],[-1,-1],[-1,-1],[6,9],[6,8],[5,7],[5,7],[4,6],[4,6],[4,6],[4,6],[4,5],[4,5],[4,5],[4,5],[3,1],[3,1],[3,1],[3,1],[3,1],[3,1],[3,1],[3,1],[3,4],[3,4],[3,4],[3,4],[3,4],[3,4],[3,4],[3,4],[2,3],[2,3],[2,3],[2,3],[2,3],[2,3],[2,3],[2,3],[2,3],[2,3],[2,3],[2,3],[2,3],[2,3],[2,3],[2,3],[2,2],[2,2],[2,2],[2,2],[2,2],[2,2],[2,2],[2,2],[2,2],[2,2],[2,2],[2,2],[2,2],[2,2],[2,2],[2,2]],v=function(){function CCITTFaxDecoder(t){var r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};_classCallCheck(this,CCITTFaxDecoder);if(!t||"function"!=typeof t.next)throw new Error('CCITTFaxDecoder - invalid "source" parameter.');this.source=t;this.eof=!1;this.encoding=r.K||0;this.eoline=r.EndOfLine||!1;this.byteAlign=r.EncodedByteAlign||!1;this.columns=r.Columns||1728;this.rows=r.Rows||0;var o,l=r.EndOfBlock;null==l&&(l=!0);this.eoblock=l;this.black=r.BlackIs1||!1;this.codingLine=new Uint32Array(this.columns+1);this.refLine=new Uint32Array(this.columns+2);this.codingLine[0]=this.columns;this.codingPos=0;this.row=0;this.nextLine2D=this.encoding<0;this.inputBits=0;this.inputBuf=0;this.outputBits=0;this.rowsDone=!1;for(;0===(o=this._lookBits(12));)this._eatBits(1);1===o&&this._eatBits(12);if(this.encoding>0){this.nextLine2D=!this._lookBits(1);this._eatBits(1)}}!function _createClass(t,r,o){r&&_defineProperties(t.prototype,r);o&&_defineProperties(t,o);return t}(CCITTFaxDecoder,[{key:"readNextChar",value:function readNextChar(){if(this.eof)return-1;var t,r,o,u,h,d=this.refLine,m=this.codingLine,g=this.columns;if(0===this.outputBits){this.rowsDone&&(this.eof=!0);if(this.eof)return-1;this.err=!1;var y,v,S;if(this.nextLine2D){for(u=0;m[u]<g;++u)d[u]=m[u];d[u++]=g;d[u]=g;m[0]=0;this.codingPos=0;t=0;r=0;for(;m[this.codingPos]<g;)switch(y=this._getTwoDimCode()){case 0:this._addPixels(d[t+1],r);d[t+1]<g&&(t+=2);break;case 1:y=v=0;if(r){do{y+=S=this._getBlackCode()}while(S>=64);do{v+=S=this._getWhiteCode()}while(S>=64)}else{do{y+=S=this._getWhiteCode()}while(S>=64);do{v+=S=this._getBlackCode()}while(S>=64)}this._addPixels(m[this.codingPos]+y,r);m[this.codingPos]<g&&this._addPixels(m[this.codingPos]+v,1^r);for(;d[t]<=m[this.codingPos]&&d[t]<g;)t+=2;break;case 7:this._addPixels(d[t]+3,r);r^=1;if(m[this.codingPos]<g){++t;for(;d[t]<=m[this.codingPos]&&d[t]<g;)t+=2}break;case 5:this._addPixels(d[t]+2,r);r^=1;if(m[this.codingPos]<g){++t;for(;d[t]<=m[this.codingPos]&&d[t]<g;)t+=2}break;case 3:this._addPixels(d[t]+1,r);r^=1;if(m[this.codingPos]<g){++t;for(;d[t]<=m[this.codingPos]&&d[t]<g;)t+=2}break;case 2:this._addPixels(d[t],r);r^=1;if(m[this.codingPos]<g){++t;for(;d[t]<=m[this.codingPos]&&d[t]<g;)t+=2}break;case 8:this._addPixelsNeg(d[t]-3,r);r^=1;if(m[this.codingPos]<g){t>0?--t:++t;for(;d[t]<=m[this.codingPos]&&d[t]<g;)t+=2}break;case 6:this._addPixelsNeg(d[t]-2,r);r^=1;if(m[this.codingPos]<g){t>0?--t:++t;for(;d[t]<=m[this.codingPos]&&d[t]<g;)t+=2}break;case 4:this._addPixelsNeg(d[t]-1,r);r^=1;if(m[this.codingPos]<g){t>0?--t:++t;for(;d[t]<=m[this.codingPos]&&d[t]<g;)t+=2}break;case c:this._addPixels(g,0);this.eof=!0;break;default:(0,l.info)("bad 2d code");this._addPixels(g,0);this.err=!0}}else{m[0]=0;this.codingPos=0;r=0;for(;m[this.codingPos]<g;){y=0;if(r)do{y+=S=this._getBlackCode()}while(S>=64);else do{y+=S=this._getWhiteCode()}while(S>=64);this._addPixels(m[this.codingPos]+y,r);r^=1}}var _=!1;this.byteAlign&&(this.inputBits&=-8);if(this.eoblock||this.row!==this.rows-1){y=this._lookBits(12);if(this.eoline)for(;y!==c&&1!==y;){this._eatBits(1);y=this._lookBits(12)}else for(;0===y;){this._eatBits(1);y=this._lookBits(12)}if(1===y){this._eatBits(12);_=!0}else y===c&&(this.eof=!0)}else this.rowsDone=!0;if(!this.eof&&this.encoding>0&&!this.rowsDone){this.nextLine2D=!this._lookBits(1);this._eatBits(1)}if(this.eoblock&&_&&this.byteAlign){if(1===(y=this._lookBits(12))){this._eatBits(12);if(this.encoding>0){this._lookBits(1);this._eatBits(1)}if(this.encoding>=0)for(u=0;u<4;++u){1!==(y=this._lookBits(12))&&(0,l.info)("bad rtc code: "+y);this._eatBits(12);if(this.encoding>0){this._lookBits(1);this._eatBits(1)}}this.eof=!0}}else if(this.err&&this.eoline){for(;;){if((y=this._lookBits(13))===c){this.eof=!0;return-1}if(y>>1==1)break;this._eatBits(1)}this._eatBits(12);if(this.encoding>0){this._eatBits(1);this.nextLine2D=!(1&y)}}m[0]>0?this.outputBits=m[this.codingPos=0]:this.outputBits=m[this.codingPos=1];this.row++}if(this.outputBits>=8){h=1&this.codingPos?0:255;this.outputBits-=8;if(0===this.outputBits&&m[this.codingPos]<g){this.codingPos++;this.outputBits=m[this.codingPos]-m[this.codingPos-1]}}else{o=8;h=0;do{if(this.outputBits>o){h<<=o;1&this.codingPos||(h|=255>>8-o);this.outputBits-=o;o=0}else{h<<=this.outputBits;1&this.codingPos||(h|=255>>8-this.outputBits);o-=this.outputBits;this.outputBits=0;if(m[this.codingPos]<g){this.codingPos++;this.outputBits=m[this.codingPos]-m[this.codingPos-1]}else if(o>0){h<<=o;o=0}}}while(o)}this.black&&(h^=255);return h}},{key:"_addPixels",value:function _addPixels(t,r){var o=this.codingLine,c=this.codingPos;if(t>o[c]){if(t>this.columns){(0,l.info)("row is wrong length");this.err=!0;t=this.columns}1&c^r&&++c;o[c]=t}this.codingPos=c}},{key:"_addPixelsNeg",value:function _addPixelsNeg(t,r){var o=this.codingLine,c=this.codingPos;if(t>o[c]){if(t>this.columns){(0,l.info)("row is wrong length");this.err=!0;t=this.columns}1&c^r&&++c;o[c]=t}else if(t<o[c]){if(t<0){(0,l.info)("invalid code");this.err=!0;t=0}for(;c>0&&t<o[c-1];)--c;o[c]=t}this.codingPos=c}},{key:"_findTableCode",value:function _findTableCode(t,r,o,l){for(var u=l||0,h=t;h<=r;++h){var d=this._lookBits(h);if(d===c)return[!0,1,!1];h<r&&(d<<=r-h);if(!u||d>=u){var m=o[d-u];if(m[0]===h){this._eatBits(h);return[!0,m[1],!0]}}}return[!1,0,!1]}},{key:"_getTwoDimCode",value:function _getTwoDimCode(){var t,r=0;if(this.eoblock){r=this._lookBits(7);if((t=u[r])&&t[0]>0){this._eatBits(t[0]);return t[1]}}else{var o=this._findTableCode(1,7,u);if(o[0]&&o[2])return o[1]}(0,l.info)("Bad two dim code");return c}},{key:"_getWhiteCode",value:function _getWhiteCode(){var t,r=0;if(this.eoblock){if((r=this._lookBits(12))===c)return 1;if((t=r>>5==0?h[r]:d[r>>3])[0]>0){this._eatBits(t[0]);return t[1]}}else{var o=this._findTableCode(1,9,d);if(o[0])return o[1];if((o=this._findTableCode(11,12,h))[0])return o[1]}(0,l.info)("bad white code");this._eatBits(1);return 1}},{key:"_getBlackCode",value:function _getBlackCode(){var t,r;if(this.eoblock){if((t=this._lookBits(13))===c)return 1;if((r=t>>7==0?m[t]:t>>9==0&&t>>7!=0?g[(t>>1)-64]:y[t>>7])[0]>0){this._eatBits(r[0]);return r[1]}}else{var o=this._findTableCode(2,6,y);if(o[0])return o[1];if((o=this._findTableCode(7,12,g,64))[0])return o[1];if((o=this._findTableCode(10,13,m))[0])return o[1]}(0,l.info)("bad black code");this._eatBits(1);return 1}},{key:"_lookBits",value:function _lookBits(t){for(var r;this.inputBits<t;){if(-1===(r=this.source.next()))return 0===this.inputBits?c:this.inputBuf<<t-this.inputBits&65535>>16-t;this.inputBuf=this.inputBuf<<8|r;this.inputBits+=8}return this.inputBuf>>this.inputBits-t&65535>>16-t}},{key:"_eatBits",value:function _eatBits(t){(this.inputBits-=t)<0&&(this.inputBits=0)}}]);return CCITTFaxDecoder}();r.CCITTFaxDecoder=v},(t,r,o)=>{"use strict";function _typeof(t){_typeof="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function _typeof(t){return typeof t}:function _typeof(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t};return _typeof(t)}Object.defineProperty(r,"__esModule",{value:!0});r.FlateStream=void 0;var l=o(142),c=o(4);function _defineProperties(t,r){for(var o=0;o<r.length;o++){var l=r[o];l.enumerable=l.enumerable||!1;l.configurable=!0;"value"in l&&(l.writable=!0);Object.defineProperty(t,l.key,l)}}function _setPrototypeOf(t,r){_setPrototypeOf=Object.setPrototypeOf||function _setPrototypeOf(t,r){t.__proto__=r;return t};return _setPrototypeOf(t,r)}function _createSuper(t){var r=function _isNativeReflectConstruct(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){})));return!0}catch(t){return!1}}();return function _createSuperInternal(){var o,l=_getPrototypeOf(t);if(r){var c=_getPrototypeOf(this).constructor;o=Reflect.construct(l,arguments,c)}else o=l.apply(this,arguments);return _possibleConstructorReturn(this,o)}}function _possibleConstructorReturn(t,r){if(r&&("object"===_typeof(r)||"function"==typeof r))return r;if(void 0!==r)throw new TypeError("Derived constructors may only return object or undefined");return function _assertThisInitialized(t){if(void 0===t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return t}(t)}function _getPrototypeOf(t){_getPrototypeOf=Object.setPrototypeOf?Object.getPrototypeOf:function _getPrototypeOf(t){return t.__proto__||Object.getPrototypeOf(t)};return _getPrototypeOf(t)}var u=new Int32Array([16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15]),h=new Int32Array([3,4,5,6,7,8,9,10,65547,65549,65551,65553,131091,131095,131099,131103,196643,196651,196659,196667,262211,262227,262243,262259,327811,327843,327875,327907,258,258,258]),d=new Int32Array([1,2,3,4,65541,65543,131081,131085,196625,196633,262177,262193,327745,327777,393345,393409,459009,459137,524801,525057,590849,591361,657409,658433,724993,727041,794625,798721,868353,876545]),m=[new Int32Array([459008,524368,524304,524568,459024,524400,524336,590016,459016,524384,524320,589984,524288,524416,524352,590048,459012,524376,524312,589968,459028,524408,524344,590032,459020,524392,524328,59e4,524296,524424,524360,590064,459010,524372,524308,524572,459026,524404,524340,590024,459018,524388,524324,589992,524292,524420,524356,590056,459014,524380,524316,589976,459030,524412,524348,590040,459022,524396,524332,590008,524300,524428,524364,590072,459009,524370,524306,524570,459025,524402,524338,590020,459017,524386,524322,589988,524290,524418,524354,590052,459013,524378,524314,589972,459029,524410,524346,590036,459021,524394,524330,590004,524298,524426,524362,590068,459011,524374,524310,524574,459027,524406,524342,590028,459019,524390,524326,589996,524294,524422,524358,590060,459015,524382,524318,589980,459031,524414,524350,590044,459023,524398,524334,590012,524302,524430,524366,590076,459008,524369,524305,524569,459024,524401,524337,590018,459016,524385,524321,589986,524289,524417,524353,590050,459012,524377,524313,589970,459028,524409,524345,590034,459020,524393,524329,590002,524297,524425,524361,590066,459010,524373,524309,524573,459026,524405,524341,590026,459018,524389,524325,589994,524293,524421,524357,590058,459014,524381,524317,589978,459030,524413,524349,590042,459022,524397,524333,590010,524301,524429,524365,590074,459009,524371,524307,524571,459025,524403,524339,590022,459017,524387,524323,589990,524291,524419,524355,590054,459013,524379,524315,589974,459029,524411,524347,590038,459021,524395,524331,590006,524299,524427,524363,590070,459011,524375,524311,524575,459027,524407,524343,590030,459019,524391,524327,589998,524295,524423,524359,590062,459015,524383,524319,589982,459031,524415,524351,590046,459023,524399,524335,590014,524303,524431,524367,590078,459008,524368,524304,524568,459024,524400,524336,590017,459016,524384,524320,589985,524288,524416,524352,590049,459012,524376,524312,589969,459028,524408,524344,590033,459020,524392,524328,590001,524296,524424,524360,590065,459010,524372,524308,524572,459026,524404,524340,590025,459018,524388,524324,589993,524292,524420,524356,590057,459014,524380,524316,589977,459030,524412,524348,590041,459022,524396,524332,590009,524300,524428,524364,590073,459009,524370,524306,524570,459025,524402,524338,590021,459017,524386,524322,589989,524290,524418,524354,590053,459013,524378,524314,589973,459029,524410,524346,590037,459021,524394,524330,590005,524298,524426,524362,590069,459011,524374,524310,524574,459027,524406,524342,590029,459019,524390,524326,589997,524294,524422,524358,590061,459015,524382,524318,589981,459031,524414,524350,590045,459023,524398,524334,590013,524302,524430,524366,590077,459008,524369,524305,524569,459024,524401,524337,590019,459016,524385,524321,589987,524289,524417,524353,590051,459012,524377,524313,589971,459028,524409,524345,590035,459020,524393,524329,590003,524297,524425,524361,590067,459010,524373,524309,524573,459026,524405,524341,590027,459018,524389,524325,589995,524293,524421,524357,590059,459014,524381,524317,589979,459030,524413,524349,590043,459022,524397,524333,590011,524301,524429,524365,590075,459009,524371,524307,524571,459025,524403,524339,590023,459017,524387,524323,589991,524291,524419,524355,590055,459013,524379,524315,589975,459029,524411,524347,590039,459021,524395,524331,590007,524299,524427,524363,590071,459011,524375,524311,524575,459027,524407,524343,590031,459019,524391,524327,589999,524295,524423,524359,590063,459015,524383,524319,589983,459031,524415,524351,590047,459023,524399,524335,590015,524303,524431,524367,590079]),9],g=[new Int32Array([327680,327696,327688,327704,327684,327700,327692,327708,327682,327698,327690,327706,327686,327702,327694,0,327681,327697,327689,327705,327685,327701,327693,327709,327683,327699,327691,327707,327687,327703,327695,0]),5],y=function(t){!function _inherits(t,r){if("function"!=typeof r&&null!==r)throw new TypeError("Super expression must either be null or a function");t.prototype=Object.create(r&&r.prototype,{constructor:{value:t,writable:!0,configurable:!0}});r&&_setPrototypeOf(t,r)}(FlateStream,t);var r=_createSuper(FlateStream);function FlateStream(t,o){var l;!function _classCallCheck(t,r){if(!(t instanceof r))throw new TypeError("Cannot call a class as a function")}(this,FlateStream);(l=r.call(this,o)).str=t;l.dict=t.dict;var u=t.getByte(),h=t.getByte();if(-1===u||-1===h)throw new c.FormatError("Invalid header in flate stream: ".concat(u,", ").concat(h));if(8!=(15&u))throw new c.FormatError("Unknown compression method in flate stream: ".concat(u,", ").concat(h));if(((u<<8)+h)%31!=0)throw new c.FormatError("Bad FCHECK in flate stream: ".concat(u,", ").concat(h));if(32&h)throw new c.FormatError("FDICT bit set in flate stream: ".concat(u,", ").concat(h));l.codeSize=0;l.codeBuf=0;return l}!function _createClass(t,r,o){r&&_defineProperties(t.prototype,r);o&&_defineProperties(t,o);return t}(FlateStream,[{key:"getBits",value:function getBits(t){for(var r,o=this.str,l=this.codeSize,u=this.codeBuf;l<t;){if(-1===(r=o.getByte()))throw new c.FormatError("Bad encoding in flate stream");u|=r<<l;l+=8}r=u&(1<<t)-1;this.codeBuf=u>>t;this.codeSize=l-=t;return r}},{key:"getCode",value:function getCode(t){for(var r,o=this.str,l=t[0],u=t[1],h=this.codeSize,d=this.codeBuf;h<u&&-1!==(r=o.getByte());){d|=r<<h;h+=8}var m=l[d&(1<<u)-1],g=m>>16,y=65535&m;if(g<1||h<g)throw new c.FormatError("Bad encoding in flate stream");this.codeBuf=d>>g;this.codeSize=h-g;return y}},{key:"generateHuffmanTable",value:function generateHuffmanTable(t){var r,o=t.length,l=0;for(r=0;r<o;++r)t[r]>l&&(l=t[r]);for(var c=1<<l,u=new Int32Array(c),h=1,d=0,m=2;h<=l;++h,d<<=1,m<<=1)for(var g=0;g<o;++g)if(t[g]===h){var y=0,v=d;for(r=0;r<h;++r){y=y<<1|1&v;v>>=1}for(r=y;r<c;r+=m)u[r]=h<<16|g;++d}return[u,l]}},{key:"readBlock",value:function readBlock(){var t,r,o=this.str,l=this.getBits(3);1&l&&(this.eof=!0);if(0!==(l>>=1)){var y,v;if(1===l){y=m;v=g}else{if(2!==l)throw new c.FormatError("Unknown block type in flate stream");var S,_=this.getBits(5)+257,k=this.getBits(5)+1,C=this.getBits(4)+4,w=new Uint8Array(u.length);for(S=0;S<C;++S)w[u[S]]=this.getBits(3);var x=this.generateHuffmanTable(w);r=0;S=0;for(var O,T,R,E=_+k,M=new Uint8Array(E);S<E;){var D=this.getCode(x);if(16===D){O=2;T=3;R=r}else if(17===D){O=3;T=3;R=r=0}else{if(18!==D){M[S++]=r=D;continue}O=7;T=11;R=r=0}for(var j=this.getBits(O)+T;j-- >0;)M[S++]=R}y=this.generateHuffmanTable(M.subarray(0,_));v=this.generateHuffmanTable(M.subarray(_,E))}for(var L=(t=this.buffer)?t.length:0,N=this.bufferLength;;){var U=this.getCode(y);if(U<256){N+1>=L&&(L=(t=this.ensureBuffer(N+1)).length);t[N++]=U}else{if(256===U){this.bufferLength=N;return}var H=(U=h[U-=257])>>16;H>0&&(H=this.getBits(H));r=(65535&U)+H;U=this.getCode(v);(H=(U=d[U])>>16)>0&&(H=this.getBits(H));var W=(65535&U)+H;N+r>=L&&(L=(t=this.ensureBuffer(N+r)).length);for(var $=0;$<r;++$,++N)t[N]=t[N-W]}}}else{var q;if(-1===(q=o.getByte()))throw new c.FormatError("Bad block header in flate stream");var X=q;if(-1===(q=o.getByte()))throw new c.FormatError("Bad block header in flate stream");X|=q<<8;if(-1===(q=o.getByte()))throw new c.FormatError("Bad block header in flate stream");var z=q;if(-1===(q=o.getByte()))throw new c.FormatError("Bad block header in flate stream");if((z|=q<<8)!==(65535&~X)&&(0!==X||0!==z))throw new c.FormatError("Bad uncompressed block length in flate stream");this.codeBuf=0;this.codeSize=0;var G=this.bufferLength,V=G+X;t=this.ensureBuffer(V);this.bufferLength=V;if(0===X)-1===o.peekByte()&&(this.eof=!0);else{var Y=o.getBytes(X);t.set(Y,G);Y.length<X&&(this.eof=!0)}}}}]);return FlateStream}(l.DecodeStream);r.FlateStream=y},(t,r,o)=>{"use strict";function _typeof(t){_typeof="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function _typeof(t){return typeof t}:function _typeof(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t};return _typeof(t)}Object.defineProperty(r,"__esModule",{value:!0});r.Jbig2Stream=void 0;var l=o(118),c=o(142),u=o(148),h=o(4);function _defineProperties(t,r){for(var o=0;o<r.length;o++){var l=r[o];l.enumerable=l.enumerable||!1;l.configurable=!0;"value"in l&&(l.writable=!0);Object.defineProperty(t,l.key,l)}}function _setPrototypeOf(t,r){_setPrototypeOf=Object.setPrototypeOf||function _setPrototypeOf(t,r){t.__proto__=r;return t};return _setPrototypeOf(t,r)}function _createSuper(t){var r=function _isNativeReflectConstruct(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){})));return!0}catch(t){return!1}}();return function _createSuperInternal(){var o,l=_getPrototypeOf(t);if(r){var c=_getPrototypeOf(this).constructor;o=Reflect.construct(l,arguments,c)}else o=l.apply(this,arguments);return _possibleConstructorReturn(this,o)}}function _possibleConstructorReturn(t,r){if(r&&("object"===_typeof(r)||"function"==typeof r))return r;if(void 0!==r)throw new TypeError("Derived constructors may only return object or undefined");return function _assertThisInitialized(t){if(void 0===t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return t}(t)}function _getPrototypeOf(t){_getPrototypeOf=Object.setPrototypeOf?Object.getPrototypeOf:function _getPrototypeOf(t){return t.__proto__||Object.getPrototypeOf(t)};return _getPrototypeOf(t)}var d=function(t){!function _inherits(t,r){if("function"!=typeof r&&null!==r)throw new TypeError("Super expression must either be null or a function");t.prototype=Object.create(r&&r.prototype,{constructor:{value:t,writable:!0,configurable:!0}});r&&_setPrototypeOf(t,r)}(Jbig2Stream,t);var r=_createSuper(Jbig2Stream);function Jbig2Stream(t,o,l){var c;!function _classCallCheck(t,r){if(!(t instanceof r))throw new TypeError("Cannot call a class as a function")}(this,Jbig2Stream);(c=r.call(this,o)).stream=t;c.dict=t.dict;c.maybeLength=o;c.params=l;return c}!function _createClass(t,r,o){r&&_defineProperties(t.prototype,r);o&&_defineProperties(t,o);return t}(Jbig2Stream,[{key:"bytes",get:function get(){return(0,h.shadow)(this,"bytes",this.stream.getBytes(this.maybeLength))}},{key:"ensureBuffer",value:function ensureBuffer(t){}},{key:"readBlock",value:function readBlock(){if(!this.eof){var t=new u.Jbig2Image,r=[];if((0,l.isDict)(this.params)){var o=this.params.get("JBIG2Globals");if((0,l.isStream)(o)){var c=o.getBytes();r.push({data:c,start:0,end:c.length})}}r.push({data:this.bytes,start:0,end:this.bytes.length});for(var h=t.parseChunks(r),d=h.length,m=0;m<d;m++)h[m]^=255;this.buffer=h;this.bufferLength=d;this.eof=!0}}}]);return Jbig2Stream}(c.DecodeStream);r.Jbig2Stream=d},(t,r,o)=>{"use strict";function _typeof(t){_typeof="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function _typeof(t){return typeof t}:function _typeof(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t};return _typeof(t)}Object.defineProperty(r,"__esModule",{value:!0});r.Jbig2Image=void 0;var l=o(4),c=o(122),u=o(149),h=o(145);function _defineProperties(t,r){for(var o=0;o<r.length;o++){var l=r[o];l.enumerable=l.enumerable||!1;l.configurable=!0;"value"in l&&(l.writable=!0);Object.defineProperty(t,l.key,l)}}function _createClass(t,r,o){r&&_defineProperties(t.prototype,r);o&&_defineProperties(t,o);return t}function _classCallCheck(t,r){if(!(t instanceof r))throw new TypeError("Cannot call a class as a function")}function _setPrototypeOf(t,r){_setPrototypeOf=Object.setPrototypeOf||function _setPrototypeOf(t,r){t.__proto__=r;return t};return _setPrototypeOf(t,r)}function _createSuper(t){var r=function _isNativeReflectConstruct(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){})));return!0}catch(t){return!1}}();return function _createSuperInternal(){var o,l=_getPrototypeOf(t);if(r){var c=_getPrototypeOf(this).constructor;o=Reflect.construct(l,arguments,c)}else o=l.apply(this,arguments);return _possibleConstructorReturn(this,o)}}function _possibleConstructorReturn(t,r){if(r&&("object"===_typeof(r)||"function"==typeof r))return r;if(void 0!==r)throw new TypeError("Derived constructors may only return object or undefined");return function _assertThisInitialized(t){if(void 0===t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return t}(t)}function _getPrototypeOf(t){_getPrototypeOf=Object.setPrototypeOf?Object.getPrototypeOf:function _getPrototypeOf(t){return t.__proto__||Object.getPrototypeOf(t)};return _getPrototypeOf(t)}var d=function(t){!function _inherits(t,r){if("function"!=typeof r&&null!==r)throw new TypeError("Super expression must either be null or a function");t.prototype=Object.create(r&&r.prototype,{constructor:{value:t,writable:!0,configurable:!0}});r&&_setPrototypeOf(t,r)}(Jbig2Error,t);var r=_createSuper(Jbig2Error);function Jbig2Error(t){_classCallCheck(this,Jbig2Error);return r.call(this,"JBIG2 error: ".concat(t),"Jbig2Error")}return Jbig2Error}(l.BaseException),m=function(){function ContextCache(){_classCallCheck(this,ContextCache)}_createClass(ContextCache,[{key:"getContexts",value:function getContexts(t){return t in this?this[t]:this[t]=new Int8Array(65536)}}]);return ContextCache}(),g=function(){function DecodingContext(t,r,o){_classCallCheck(this,DecodingContext);this.data=t;this.start=r;this.end=o}_createClass(DecodingContext,[{key:"decoder",get:function get(){var t=new u.ArithmeticDecoder(this.data,this.start,this.end);return(0,l.shadow)(this,"decoder",t)}},{key:"contextCache",get:function get(){var t=new m;return(0,l.shadow)(this,"contextCache",t)}}]);return DecodingContext}();function decodeInteger(t,r,o){var l=t.getContexts(r),c=1;function readBits(t){for(var r=0,u=0;u<t;u++){var h=o.readBit(l,c);c=c<256?c<<1|h:511&(c<<1|h)|256;r=r<<1|h}return r>>>0}var u=readBits(1),h=readBits(1)?readBits(1)?readBits(1)?readBits(1)?readBits(1)?readBits(32)+4436:readBits(12)+340:readBits(8)+84:readBits(6)+20:readBits(4)+4:readBits(2);return 0===u?h:h>0?-h:null}function decodeIAID(t,r,o){for(var l=t.getContexts("IAID"),c=1,u=0;u<o;u++){c=c<<1|r.readBit(l,c)}return o<31?c&(1<<o)-1:2147483647&c}var y=["SymbolDictionary",null,null,null,"IntermediateTextRegion",null,"ImmediateTextRegion","ImmediateLosslessTextRegion",null,null,null,null,null,null,null,null,"PatternDictionary",null,null,null,"IntermediateHalftoneRegion",null,"ImmediateHalftoneRegion","ImmediateLosslessHalftoneRegion",null,null,null,null,null,null,null,null,null,null,null,null,"IntermediateGenericRegion",null,"ImmediateGenericRegion","ImmediateLosslessGenericRegion","IntermediateGenericRefinementRegion",null,"ImmediateGenericRefinementRegion","ImmediateLosslessGenericRefinementRegion",null,null,null,null,"PageInformation","EndOfPage","EndOfStripe","EndOfFile","Profiles","Tables",null,null,null,null,null,null,null,null,"Extension"],v=[[{x:-1,y:-2},{x:0,y:-2},{x:1,y:-2},{x:-2,y:-1},{x:-1,y:-1},{x:0,y:-1},{x:1,y:-1},{x:2,y:-1},{x:-4,y:0},{x:-3,y:0},{x:-2,y:0},{x:-1,y:0}],[{x:-1,y:-2},{x:0,y:-2},{x:1,y:-2},{x:2,y:-2},{x:-2,y:-1},{x:-1,y:-1},{x:0,y:-1},{x:1,y:-1},{x:2,y:-1},{x:-3,y:0},{x:-2,y:0},{x:-1,y:0}],[{x:-1,y:-2},{x:0,y:-2},{x:1,y:-2},{x:-2,y:-1},{x:-1,y:-1},{x:0,y:-1},{x:1,y:-1},{x:-2,y:0},{x:-1,y:0}],[{x:-3,y:-1},{x:-2,y:-1},{x:-1,y:-1},{x:0,y:-1},{x:1,y:-1},{x:-4,y:0},{x:-3,y:0},{x:-2,y:0},{x:-1,y:0}]],S=[{coding:[{x:0,y:-1},{x:1,y:-1},{x:-1,y:0}],reference:[{x:0,y:-1},{x:1,y:-1},{x:-1,y:0},{x:0,y:0},{x:1,y:0},{x:-1,y:1},{x:0,y:1},{x:1,y:1}]},{coding:[{x:-1,y:-1},{x:0,y:-1},{x:1,y:-1},{x:-1,y:0}],reference:[{x:0,y:-1},{x:-1,y:0},{x:0,y:0},{x:1,y:0},{x:0,y:1},{x:1,y:1}]}],_=[39717,1941,229,405],k=[32,8];function decodeBitmap(t,r,o,l,c,u,h,d){if(t){return decodeMMRBitmap(new E(d.data,d.start,d.end),r,o,!1)}if(0===l&&!u&&!c&&4===h.length&&3===h[0].x&&-1===h[0].y&&-3===h[1].x&&-1===h[1].y&&2===h[2].x&&-2===h[2].y&&-2===h[3].x&&-2===h[3].y)return function decodeBitmapTemplate0(t,r,o){var l,c,u,h,d,m,g,y=o.decoder,v=o.contextCache.getContexts("GB"),S=[];for(c=0;c<r;c++){d=S[c]=new Uint8Array(t);m=c<1?d:S[c-1];l=(g=c<2?d:S[c-2])[0]<<13|g[1]<<12|g[2]<<11|m[0]<<7|m[1]<<6|m[2]<<5|m[3]<<4;for(u=0;u<t;u++){d[u]=h=y.readBit(v,l);l=(31735&l)<<1|(u+3<t?g[u+3]<<11:0)|(u+4<t?m[u+4]<<4:0)|h}}return S}(r,o,d);var m=!!u,g=v[l].concat(h);g.sort((function(t,r){return t.y-r.y||t.x-r.x}));var y,S,k=g.length,C=new Int8Array(k),w=new Int8Array(k),x=[],O=0,T=0,R=0,M=0;for(S=0;S<k;S++){C[S]=g[S].x;w[S]=g[S].y;T=Math.min(T,g[S].x);R=Math.max(R,g[S].x);M=Math.min(M,g[S].y);S<k-1&&g[S].y===g[S+1].y&&g[S].x===g[S+1].x-1?O|=1<<k-1-S:x.push(S)}var D=x.length,j=new Int8Array(D),L=new Int8Array(D),N=new Uint16Array(D);for(y=0;y<D;y++){S=x[y];j[y]=g[S].x;L[y]=g[S].y;N[y]=1<<k-1-S}for(var U,H,W,$,q,X=-T,z=-M,G=r-R,V=_[l],Y=new Uint8Array(r),K=[],J=d.decoder,Q=d.contextCache.getContexts("GB"),Z=0,ee=0,te=0;te<o;te++){if(c){if(Z^=J.readBit(Q,V)){K.push(Y);continue}}Y=new Uint8Array(Y);K.push(Y);for(U=0;U<r;U++)if(m&&u[te][U])Y[U]=0;else{if(U>=X&&U<G&&te>=z){ee=ee<<1&O;for(S=0;S<D;S++){H=te+L[S];W=U+j[S];($=K[H][W])&&(ee|=$=N[S])}}else{ee=0;q=k-1;for(S=0;S<k;S++,q--)(W=U+C[S])>=0&&W<r&&(H=te+w[S])>=0&&($=K[H][W])&&(ee|=$<<q)}var re=J.readBit(Q,ee);Y[U]=re}}return K}function decodeRefinement(t,r,o,l,c,u,h,m,g){var y=S[o].coding;0===o&&(y=y.concat([m[0]]));var v,_=y.length,C=new Int32Array(_),w=new Int32Array(_);for(v=0;v<_;v++){C[v]=y[v].x;w[v]=y[v].y}var x=S[o].reference;0===o&&(x=x.concat([m[1]]));var O=x.length,T=new Int32Array(O),R=new Int32Array(O);for(v=0;v<O;v++){T[v]=x[v].x;R[v]=x[v].y}for(var E=l[0].length,M=l.length,D=k[o],j=[],L=g.decoder,N=g.contextCache.getContexts("GR"),U=0,H=0;H<r;H++){if(h){if(U^=L.readBit(N,D))throw new d("prediction is not supported")}var W=new Uint8Array(t);j.push(W);for(var $=0;$<t;$++){var q=void 0,X=void 0,z=0;for(v=0;v<_;v++){q=H+w[v];X=$+C[v];q<0||X<0||X>=t?z<<=1:z=z<<1|j[q][X]}for(v=0;v<O;v++){q=H+R[v]-u;X=$+T[v]-c;q<0||q>=M||X<0||X>=E?z<<=1:z=z<<1|l[q][X]}var G=L.readBit(N,z);W[$]=G}}return j}function decodeTextRegion(t,r,o,l,c,u,h,m,g,y,v,S,_,k,C,w,x,O,T){if(t&&r)throw new d("refinement with Huffman is not supported");var R,E,M=[];for(R=0;R<l;R++){E=new Uint8Array(o);if(c)for(var D=0;D<o;D++)E[D]=c;M.push(E)}var j=x.decoder,L=x.contextCache,N=t?-k.tableDeltaT.decode(T):-decodeInteger(L,"IADT",j),U=0;R=0;for(;R<u;){N+=t?k.tableDeltaT.decode(T):decodeInteger(L,"IADT",j);for(var H=U+=t?k.tableFirstS.decode(T):decodeInteger(L,"IAFS",j);;){var W=0;h>1&&(W=t?T.readBits(O):decodeInteger(L,"IAIT",j));var $=h*N+W,q=t?k.symbolIDTable.decode(T):decodeIAID(L,j,g),X=r&&(t?T.readBit():decodeInteger(L,"IARI",j)),z=m[q],G=z[0].length,V=z.length;if(X){var Y=decodeInteger(L,"IARDW",j),K=decodeInteger(L,"IARDH",j);z=decodeRefinement(G+=Y,V+=K,C,z,(Y>>1)+decodeInteger(L,"IARDX",j),(K>>1)+decodeInteger(L,"IARDY",j),!1,w,x)}var J=$-(1&S?0:V-1),Q=H-(2&S?G-1:0),Z=void 0,ee=void 0,te=void 0;if(y){for(Z=0;Z<V;Z++)if(E=M[Q+Z]){te=z[Z];var re=Math.min(o-J,G);switch(_){case 0:for(ee=0;ee<re;ee++)E[J+ee]|=te[ee];break;case 2:for(ee=0;ee<re;ee++)E[J+ee]^=te[ee];break;default:throw new d("operator ".concat(_," is not supported"))}}H+=V-1}else{for(ee=0;ee<V;ee++)if(E=M[J+ee]){te=z[ee];switch(_){case 0:for(Z=0;Z<G;Z++)E[Q+Z]|=te[Z];break;case 2:for(Z=0;Z<G;Z++)E[Q+Z]^=te[Z];break;default:throw new d("operator ".concat(_," is not supported"))}}H+=G-1}R++;var ae=t?k.tableDeltaS.decode(T):decodeInteger(L,"IADS",j);if(null===ae)break;H+=ae+v}}return M}function readSegmentHeader(t,r){var o={};o.number=(0,c.readUint32)(t,r);var l=t[r+4],u=63&l;if(!y[u])throw new d("invalid segment type: "+u);o.type=u;o.typeName=y[u];o.deferredNonRetain=!!(128&l);var h=!!(64&l),m=t[r+5],g=m>>5&7,v=[31&m],S=r+6;if(7===m){g=536870911&(0,c.readUint32)(t,S-1);S+=3;var _=g+7>>3;v[0]=t[S++];for(;--_>0;)v.push(t[S++])}else if(5===m||6===m)throw new d("invalid referred-to flags");o.retainBits=v;var k=4;o.number<=256?k=1:o.number<=65536&&(k=2);var w,x,O=[];for(w=0;w<g;w++){var T=void 0;T=1===k?t[S]:2===k?(0,c.readUint16)(t,S):(0,c.readUint32)(t,S);O.push(T);S+=k}o.referredTo=O;if(h){o.pageAssociation=(0,c.readUint32)(t,S);S+=4}else o.pageAssociation=t[S++];o.length=(0,c.readUint32)(t,S);S+=4;if(4294967295===o.length){if(38!==u)throw new d("invalid unknown segment length");var R=readRegionSegmentInformation(t,S),E=!!(1&t[S+C]),M=new Uint8Array(6);if(!E){M[0]=255;M[1]=172}M[2]=R.height>>>24&255;M[3]=R.height>>16&255;M[4]=R.height>>8&255;M[5]=255&R.height;for(w=S,x=t.length;w<x;w++){for(var D=0;D<6&&M[D]===t[w+D];)D++;if(6===D){o.length=w+6;break}}if(4294967295===o.length)throw new d("segment end was not found")}o.headerEnd=S;return o}function readSegments(t,r,o,l){for(var c=[],u=o;u<l;){var h=readSegmentHeader(r,u);u=h.headerEnd;var d={header:h,data:r};if(!t.randomAccess){d.start=u;u+=h.length;d.end=u}c.push(d);if(51===h.type)break}if(t.randomAccess)for(var m=0,g=c.length;m<g;m++){c[m].start=u;u+=c[m].header.length;c[m].end=u}return c}function readRegionSegmentInformation(t,r){return{width:(0,c.readUint32)(t,r),height:(0,c.readUint32)(t,r+4),x:(0,c.readUint32)(t,r+8),y:(0,c.readUint32)(t,r+12),combinationOperator:7&t[r+16]}}var C=17;function processSegment(t,r){var o,l,u,h,m=t.header,g=t.data,y=t.end,v=t.start;switch(m.type){case 0:var S={},_=(0,c.readUint16)(g,v);S.huffman=!!(1&_);S.refinement=!!(2&_);S.huffmanDHSelector=_>>2&3;S.huffmanDWSelector=_>>4&3;S.bitmapSizeSelector=_>>6&1;S.aggregationInstancesSelector=_>>7&1;S.bitmapCodingContextUsed=!!(256&_);S.bitmapCodingContextRetained=!!(512&_);S.template=_>>10&3;S.refinementTemplate=_>>12&1;v+=2;if(!S.huffman){h=0===S.template?4:1;l=[];for(u=0;u<h;u++){l.push({x:(0,c.readInt8)(g,v),y:(0,c.readInt8)(g,v+1)});v+=2}S.at=l}if(S.refinement&&!S.refinementTemplate){l=[];for(u=0;u<2;u++){l.push({x:(0,c.readInt8)(g,v),y:(0,c.readInt8)(g,v+1)});v+=2}S.refinementAt=l}S.numberOfExportedSymbols=(0,c.readUint32)(g,v);v+=4;S.numberOfNewSymbols=(0,c.readUint32)(g,v);v+=4;o=[S,m.number,m.referredTo,g,v,y];break;case 6:case 7:var k={};k.info=readRegionSegmentInformation(g,v);v+=C;var w=(0,c.readUint16)(g,v);v+=2;k.huffman=!!(1&w);k.refinement=!!(2&w);k.logStripSize=w>>2&3;k.stripSize=1<<k.logStripSize;k.referenceCorner=w>>4&3;k.transposed=!!(64&w);k.combinationOperator=w>>7&3;k.defaultPixelValue=w>>9&1;k.dsOffset=w<<17>>27;k.refinementTemplate=w>>15&1;if(k.huffman){var x=(0,c.readUint16)(g,v);v+=2;k.huffmanFS=3&x;k.huffmanDS=x>>2&3;k.huffmanDT=x>>4&3;k.huffmanRefinementDW=x>>6&3;k.huffmanRefinementDH=x>>8&3;k.huffmanRefinementDX=x>>10&3;k.huffmanRefinementDY=x>>12&3;k.huffmanRefinementSizeSelector=!!(16384&x)}if(k.refinement&&!k.refinementTemplate){l=[];for(u=0;u<2;u++){l.push({x:(0,c.readInt8)(g,v),y:(0,c.readInt8)(g,v+1)});v+=2}k.refinementAt=l}k.numberOfSymbolInstances=(0,c.readUint32)(g,v);v+=4;o=[k,m.referredTo,g,v,y];break;case 16:var O={},T=g[v++];O.mmr=!!(1&T);O.template=T>>1&3;O.patternWidth=g[v++];O.patternHeight=g[v++];O.maxPatternIndex=(0,c.readUint32)(g,v);v+=4;o=[O,m.number,g,v,y];break;case 22:case 23:var R={};R.info=readRegionSegmentInformation(g,v);v+=C;var E=g[v++];R.mmr=!!(1&E);R.template=E>>1&3;R.enableSkip=!!(8&E);R.combinationOperator=E>>4&7;R.defaultPixelValue=E>>7&1;R.gridWidth=(0,c.readUint32)(g,v);v+=4;R.gridHeight=(0,c.readUint32)(g,v);v+=4;R.gridOffsetX=4294967295&(0,c.readUint32)(g,v);v+=4;R.gridOffsetY=4294967295&(0,c.readUint32)(g,v);v+=4;R.gridVectorX=(0,c.readUint16)(g,v);v+=2;R.gridVectorY=(0,c.readUint16)(g,v);v+=2;o=[R,m.referredTo,g,v,y];break;case 38:case 39:var M={};M.info=readRegionSegmentInformation(g,v);v+=C;var D=g[v++];M.mmr=!!(1&D);M.template=D>>1&3;M.prediction=!!(8&D);if(!M.mmr){h=0===M.template?4:1;l=[];for(u=0;u<h;u++){l.push({x:(0,c.readInt8)(g,v),y:(0,c.readInt8)(g,v+1)});v+=2}M.at=l}o=[M,g,v,y];break;case 48:var j={width:(0,c.readUint32)(g,v),height:(0,c.readUint32)(g,v+4),resolutionX:(0,c.readUint32)(g,v+8),resolutionY:(0,c.readUint32)(g,v+12)};4294967295===j.height&&delete j.height;var L=g[v+16];(0,c.readUint16)(g,v+17);j.lossless=!!(1&L);j.refinement=!!(2&L);j.defaultPixelValue=L>>2&1;j.combinationOperator=L>>3&3;j.requiresBuffer=!!(32&L);j.combinationOperatorOverride=!!(64&L);o=[j];break;case 49:case 50:case 51:break;case 53:o=[m.number,g,v,y];break;case 62:break;default:throw new d("segment type ".concat(m.typeName,"(").concat(m.type,")")+" is not implemented")}var N="on"+m.typeName;N in r&&r[N].apply(r,o)}function processSegments(t,r){for(var o=0,l=t.length;o<l;o++)processSegment(t[o],r)}var w=function(){function SimpleSegmentVisitor(){_classCallCheck(this,SimpleSegmentVisitor)}_createClass(SimpleSegmentVisitor,[{key:"onPageInformation",value:function onPageInformation(t){this.currentPageInfo=t;var r=t.width+7>>3,o=new Uint8ClampedArray(r*t.height);if(t.defaultPixelValue)for(var l=0,c=o.length;l<c;l++)o[l]=255;this.buffer=o}},{key:"drawBitmap",value:function drawBitmap(t,r){var o,l,c,u,h=this.currentPageInfo,m=t.width,g=t.height,y=h.width+7>>3,v=h.combinationOperatorOverride?t.combinationOperator:h.combinationOperator,S=this.buffer,_=128>>(7&t.x),k=t.y*y+(t.x>>3);switch(v){case 0:for(o=0;o<g;o++){c=_;u=k;for(l=0;l<m;l++){r[o][l]&&(S[u]|=c);if(!(c>>=1)){c=128;u++}}k+=y}break;case 2:for(o=0;o<g;o++){c=_;u=k;for(l=0;l<m;l++){r[o][l]&&(S[u]^=c);if(!(c>>=1)){c=128;u++}}k+=y}break;default:throw new d("operator ".concat(v," is not supported"))}}},{key:"onImmediateGenericRegion",value:function onImmediateGenericRegion(t,r,o,l){var c=t.info,u=new g(r,o,l),h=decodeBitmap(t.mmr,c.width,c.height,t.template,t.prediction,null,t.at,u);this.drawBitmap(c,h)}},{key:"onImmediateLosslessGenericRegion",value:function onImmediateLosslessGenericRegion(){this.onImmediateGenericRegion.apply(this,arguments)}},{key:"onSymbolDictionary",value:function onSymbolDictionary(t,r,o,l,u,h){var m,y;if(t.huffman){m=function getSymbolDictionaryHuffmanTables(t,r,o){var l,c,u,h,m=0;switch(t.huffmanDHSelector){case 0:case 1:l=getStandardTable(t.huffmanDHSelector+4);break;case 3:l=getCustomHuffmanTable(m,r,o);m++;break;default:throw new d("invalid Huffman DH selector")}switch(t.huffmanDWSelector){case 0:case 1:c=getStandardTable(t.huffmanDWSelector+2);break;case 3:c=getCustomHuffmanTable(m,r,o);m++;break;default:throw new d("invalid Huffman DW selector")}if(t.bitmapSizeSelector){u=getCustomHuffmanTable(m,r,o);m++}else u=getStandardTable(1);h=t.aggregationInstancesSelector?getCustomHuffmanTable(m,r,o):getStandardTable(1);return{tableDeltaHeight:l,tableDeltaWidth:c,tableBitmapSize:u,tableAggregateInstances:h}}(t,o,this.customTables);y=new E(l,u,h)}var v=this.symbols;v||(this.symbols=v={});for(var S=[],_=0,k=o.length;_<k;_++){var C=v[o[_]];C&&(S=S.concat(C))}var w=new g(l,u,h);v[r]=function decodeSymbolDictionary(t,r,o,l,u,h,m,g,y,v,S,_){if(t&&r)throw new d("symbol refinement with Huffman is not supported");var k,C,w=[],x=0,O=(0,c.log2)(o.length+l),T=S.decoder,R=S.contextCache;if(t){k=getStandardTable(1);C=[];O=Math.max(O,1)}for(;w.length<l;){x+=t?h.tableDeltaHeight.decode(_):decodeInteger(R,"IADH",T);for(var E=0,M=0,D=t?C.length:0;;){var j=t?h.tableDeltaWidth.decode(_):decodeInteger(R,"IADW",T);if(null===j)break;M+=E+=j;var L=void 0;if(r){var N=decodeInteger(R,"IAAI",T);if(N>1)L=decodeTextRegion(t,r,E,x,0,N,1,o.concat(w),O,0,0,1,0,h,y,v,S,0,_);else{var U=decodeIAID(R,T,O),H=decodeInteger(R,"IARDX",T),W=decodeInteger(R,"IARDY",T);L=decodeRefinement(E,x,y,U<o.length?o[U]:w[U-o.length],H,W,!1,v,S)}w.push(L)}else if(t)C.push(E);else{L=decodeBitmap(!1,E,x,m,!1,null,g,S);w.push(L)}}if(t&&!r){var $=h.tableBitmapSize.decode(_);_.byteAlign();var q=void 0;if(0===$)q=readUncompressedBitmap(_,M,x);else{var X=_.end,z=_.position+$;_.end=z;q=decodeMMRBitmap(_,M,x,!1);_.end=X;_.position=z}var G=C.length;if(D===G-1)w.push(q);else{var V=void 0,Y=void 0,K=0,J=void 0,Q=void 0;for(V=D;V<G;V++){J=K+C[V];Q=[];for(Y=0;Y<x;Y++)Q.push(q[Y].subarray(K,J));w.push(Q);K=J}}}}for(var Z,ee,te=[],re=[],ae=!1,ne=o.length+l;re.length<ne;){for(var ie=t?k.decode(_):decodeInteger(R,"IAEX",T);ie--;)re.push(ae);ae=!ae}for(Z=0,ee=o.length;Z<ee;Z++)re[Z]&&te.push(o[Z]);for(var oe=0;oe<l;Z++,oe++)re[Z]&&te.push(w[oe]);return te}(t.huffman,t.refinement,S,t.numberOfNewSymbols,t.numberOfExportedSymbols,m,t.template,t.at,t.refinementTemplate,t.refinementAt,w,y)}},{key:"onImmediateTextRegion",value:function onImmediateTextRegion(t,r,o,l,u){for(var h,m,y=t.info,v=this.symbols,S=[],_=0,k=r.length;_<k;_++){var C=v[r[_]];C&&(S=S.concat(C))}var w=(0,c.log2)(S.length);if(t.huffman){m=new E(o,l,u);h=function getTextRegionHuffmanTables(t,r,o,l,c){for(var u=[],h=0;h<=34;h++){var m=c.readBits(4);u.push(new x([h,m,0,0]))}var g=new T(u,!1);u.length=0;for(var y=0;y<l;){var v=g.decode(c);if(v>=32){var S=void 0,_=void 0,k=void 0;switch(v){case 32:if(0===y)throw new d("no previous value in symbol ID table");_=c.readBits(2)+3;S=u[y-1].prefixLength;break;case 33:_=c.readBits(3)+3;S=0;break;case 34:_=c.readBits(7)+11;S=0;break;default:throw new d("invalid code length in symbol ID table")}for(k=0;k<_;k++){u.push(new x([y,S,0,0]));y++}}else{u.push(new x([y,v,0,0]));y++}}c.byteAlign();var C,w,O,R=new T(u,!1),E=0;switch(t.huffmanFS){case 0:case 1:C=getStandardTable(t.huffmanFS+6);break;case 3:C=getCustomHuffmanTable(E,r,o);E++;break;default:throw new d("invalid Huffman FS selector")}switch(t.huffmanDS){case 0:case 1:case 2:w=getStandardTable(t.huffmanDS+8);break;case 3:w=getCustomHuffmanTable(E,r,o);E++;break;default:throw new d("invalid Huffman DS selector")}switch(t.huffmanDT){case 0:case 1:case 2:O=getStandardTable(t.huffmanDT+11);break;case 3:O=getCustomHuffmanTable(E,r,o);E++;break;default:throw new d("invalid Huffman DT selector")}if(t.refinement)throw new d("refinement with Huffman is not supported");return{symbolIDTable:R,tableFirstS:C,tableDeltaS:w,tableDeltaT:O}}(t,r,this.customTables,S.length,m)}var O=new g(o,l,u),R=decodeTextRegion(t.huffman,t.refinement,y.width,y.height,t.defaultPixelValue,t.numberOfSymbolInstances,t.stripSize,S,w,t.transposed,t.dsOffset,t.referenceCorner,t.combinationOperator,h,t.refinementTemplate,t.refinementAt,O,t.logStripSize,m);this.drawBitmap(y,R)}},{key:"onImmediateLosslessTextRegion",value:function onImmediateLosslessTextRegion(){this.onImmediateTextRegion.apply(this,arguments)}},{key:"onPatternDictionary",value:function onPatternDictionary(t,r,o,l,c){var u=this.patterns;u||(this.patterns=u={});var h=new g(o,l,c);u[r]=function decodePatternDictionary(t,r,o,l,c,u){var h=[];if(!t){h.push({x:-r,y:0});0===c&&h.push({x:-3,y:-1},{x:2,y:-2},{x:-2,y:-2})}for(var d=decodeBitmap(t,(l+1)*r,o,c,!1,null,h,u),m=[],g=0;g<=l;g++){for(var y=[],v=r*g,S=v+r,_=0;_<o;_++)y.push(d[_].subarray(v,S));m.push(y)}return m}(t.mmr,t.patternWidth,t.patternHeight,t.maxPatternIndex,t.template,h)}},{key:"onImmediateHalftoneRegion",value:function onImmediateHalftoneRegion(t,r,o,l,u){var h=this.patterns[r[0]],m=t.info,y=new g(o,l,u),v=function decodeHalftoneRegion(t,r,o,l,u,h,m,g,y,v,S,_,k,C,w){if(m)throw new d("skip is not supported");if(0!==g)throw new d('operator "'.concat(g,'" is not supported in halftone region'));var x,O,T,R=[];for(x=0;x<u;x++){T=new Uint8Array(l);if(h)for(O=0;O<l;O++)T[O]=h;R.push(T)}var M=r.length,D=r[0],j=D[0].length,L=D.length,N=(0,c.log2)(M),U=[];if(!t){U.push({x:o<=1?3:2,y:-1});0===o&&U.push({x:-3,y:-1},{x:2,y:-2},{x:-2,y:-2})}var H,W,$,q,X,z,G,V,Y,K,J,Q=[];t&&(H=new E(w.data,w.start,w.end));for(x=N-1;x>=0;x--){W=t?decodeMMRBitmap(H,y,v,!0):decodeBitmap(!1,y,v,o,!1,null,U,w);Q[x]=W}for($=0;$<v;$++)for(q=0;q<y;q++){X=0;z=0;for(O=N-1;O>=0;O--)z|=(X^=Q[O][$][q])<<O;G=r[z];Y=_+$*k-q*C>>8;if((V=S+$*C+q*k>>8)>=0&&V+j<=l&&Y>=0&&Y+L<=u)for(x=0;x<L;x++){J=R[Y+x];K=G[x];for(O=0;O<j;O++)J[V+O]|=K[O]}else{var Z=void 0,ee=void 0;for(x=0;x<L;x++)if(!((ee=Y+x)<0||ee>=u)){J=R[ee];K=G[x];for(O=0;O<j;O++)(Z=V+O)>=0&&Z<l&&(J[Z]|=K[O])}}}return R}(t.mmr,h,t.template,m.width,m.height,t.defaultPixelValue,t.enableSkip,t.combinationOperator,t.gridWidth,t.gridHeight,t.gridOffsetX,t.gridOffsetY,t.gridVectorX,t.gridVectorY,y);this.drawBitmap(m,v)}},{key:"onImmediateLosslessHalftoneRegion",value:function onImmediateLosslessHalftoneRegion(){this.onImmediateHalftoneRegion.apply(this,arguments)}},{key:"onTables",value:function onTables(t,r,o,l){var u=this.customTables;u||(this.customTables=u={});u[t]=function decodeTablesSegment(t,r,o){var l,u,h=t[r],d=4294967295&(0,c.readUint32)(t,r+1),m=4294967295&(0,c.readUint32)(t,r+5),g=new E(t,r+9,o),y=1+(h>>1&7),v=1+(h>>4&7),S=[],_=d;do{l=g.readBits(y);u=g.readBits(v);S.push(new x([_,l,u,0]));_+=1<<u}while(_<m);l=g.readBits(y);S.push(new x([d-1,l,32,0,"lower"]));l=g.readBits(y);S.push(new x([m,l,32,0]));if(1&h){l=g.readBits(y);S.push(new x([l,0]))}return new T(S,!1)}(r,o,l)}}]);return SimpleSegmentVisitor}(),x=function HuffmanLine(t){_classCallCheck(this,HuffmanLine);if(2===t.length){this.isOOB=!0;this.rangeLow=0;this.prefixLength=t[0];this.rangeLength=0;this.prefixCode=t[1];this.isLowerRange=!1}else{this.isOOB=!1;this.rangeLow=t[0];this.prefixLength=t[1];this.rangeLength=t[2];this.prefixCode=t[3];this.isLowerRange="lower"===t[4]}},O=function(){function HuffmanTreeNode(t){_classCallCheck(this,HuffmanTreeNode);this.children=[];if(t){this.isLeaf=!0;this.rangeLength=t.rangeLength;this.rangeLow=t.rangeLow;this.isLowerRange=t.isLowerRange;this.isOOB=t.isOOB}else this.isLeaf=!1}_createClass(HuffmanTreeNode,[{key:"buildTree",value:function buildTree(t,r){var o=t.prefixCode>>r&1;if(r<=0)this.children[o]=new HuffmanTreeNode(t);else{var l=this.children[o];l||(this.children[o]=l=new HuffmanTreeNode(null));l.buildTree(t,r-1)}}},{key:"decodeNode",value:function decodeNode(t){if(this.isLeaf){if(this.isOOB)return null;var r=t.readBits(this.rangeLength);return this.rangeLow+(this.isLowerRange?-r:r)}var o=this.children[t.readBit()];if(!o)throw new d("invalid Huffman data");return o.decodeNode(t)}}]);return HuffmanTreeNode}(),T=function(){function HuffmanTable(t,r){_classCallCheck(this,HuffmanTable);r||this.assignPrefixCodes(t);this.rootNode=new O(null);for(var o=0,l=t.length;o<l;o++){var c=t[o];c.prefixLength>0&&this.rootNode.buildTree(c,c.prefixLength-1)}}_createClass(HuffmanTable,[{key:"decode",value:function decode(t){return this.rootNode.decodeNode(t)}},{key:"assignPrefixCodes",value:function assignPrefixCodes(t){for(var r=t.length,o=0,l=0;l<r;l++)o=Math.max(o,t[l].prefixLength);for(var c=new Uint32Array(o+1),u=0;u<r;u++)c[t[u].prefixLength]++;var h,d,m,g=1,y=0;c[0]=0;for(;g<=o;){h=y=y+c[g-1]<<1;d=0;for(;d<r;){if((m=t[d]).prefixLength===g){m.prefixCode=h;h++}d++}g++}}}]);return HuffmanTable}();var R={};function getStandardTable(t){var r,o=R[t];if(o)return o;switch(t){case 1:r=[[0,1,4,0],[16,2,8,2],[272,3,16,6],[65808,3,32,7]];break;case 2:r=[[0,1,0,0],[1,2,0,2],[2,3,0,6],[3,4,3,14],[11,5,6,30],[75,6,32,62],[6,63]];break;case 3:r=[[-256,8,8,254],[0,1,0,0],[1,2,0,2],[2,3,0,6],[3,4,3,14],[11,5,6,30],[-257,8,32,255,"lower"],[75,7,32,126],[6,62]];break;case 4:r=[[1,1,0,0],[2,2,0,2],[3,3,0,6],[4,4,3,14],[12,5,6,30],[76,5,32,31]];break;case 5:r=[[-255,7,8,126],[1,1,0,0],[2,2,0,2],[3,3,0,6],[4,4,3,14],[12,5,6,30],[-256,7,32,127,"lower"],[76,6,32,62]];break;case 6:r=[[-2048,5,10,28],[-1024,4,9,8],[-512,4,8,9],[-256,4,7,10],[-128,5,6,29],[-64,5,5,30],[-32,4,5,11],[0,2,7,0],[128,3,7,2],[256,3,8,3],[512,4,9,12],[1024,4,10,13],[-2049,6,32,62,"lower"],[2048,6,32,63]];break;case 7:r=[[-1024,4,9,8],[-512,3,8,0],[-256,4,7,9],[-128,5,6,26],[-64,5,5,27],[-32,4,5,10],[0,4,5,11],[32,5,5,28],[64,5,6,29],[128,4,7,12],[256,3,8,1],[512,3,9,2],[1024,3,10,3],[-1025,5,32,30,"lower"],[2048,5,32,31]];break;case 8:r=[[-15,8,3,252],[-7,9,1,508],[-5,8,1,253],[-3,9,0,509],[-2,7,0,124],[-1,4,0,10],[0,2,1,0],[2,5,0,26],[3,6,0,58],[4,3,4,4],[20,6,1,59],[22,4,4,11],[38,4,5,12],[70,5,6,27],[134,5,7,28],[262,6,7,60],[390,7,8,125],[646,6,10,61],[-16,9,32,510,"lower"],[1670,9,32,511],[2,1]];break;case 9:r=[[-31,8,4,252],[-15,9,2,508],[-11,8,2,253],[-7,9,1,509],[-5,7,1,124],[-3,4,1,10],[-1,3,1,2],[1,3,1,3],[3,5,1,26],[5,6,1,58],[7,3,5,4],[39,6,2,59],[43,4,5,11],[75,4,6,12],[139,5,7,27],[267,5,8,28],[523,6,8,60],[779,7,9,125],[1291,6,11,61],[-32,9,32,510,"lower"],[3339,9,32,511],[2,0]];break;case 10:r=[[-21,7,4,122],[-5,8,0,252],[-4,7,0,123],[-3,5,0,24],[-2,2,2,0],[2,5,0,25],[3,6,0,54],[4,7,0,124],[5,8,0,253],[6,2,6,1],[70,5,5,26],[102,6,5,55],[134,6,6,56],[198,6,7,57],[326,6,8,58],[582,6,9,59],[1094,6,10,60],[2118,7,11,125],[-22,8,32,254,"lower"],[4166,8,32,255],[2,2]];break;case 11:r=[[1,1,0,0],[2,2,1,2],[4,4,0,12],[5,4,1,13],[7,5,1,28],[9,5,2,29],[13,6,2,60],[17,7,2,122],[21,7,3,123],[29,7,4,124],[45,7,5,125],[77,7,6,126],[141,7,32,127]];break;case 12:r=[[1,1,0,0],[2,2,0,2],[3,3,1,6],[5,5,0,28],[6,5,1,29],[8,6,1,60],[10,7,0,122],[11,7,1,123],[13,7,2,124],[17,7,3,125],[25,7,4,126],[41,8,5,254],[73,8,32,255]];break;case 13:r=[[1,1,0,0],[2,3,0,4],[3,4,0,12],[4,5,0,28],[5,4,1,13],[7,3,3,5],[15,6,1,58],[17,6,2,59],[21,6,3,60],[29,6,4,61],[45,6,5,62],[77,7,6,126],[141,7,32,127]];break;case 14:r=[[-2,3,0,4],[-1,3,0,5],[0,1,0,0],[1,3,0,6],[2,3,0,7]];break;case 15:r=[[-24,7,4,124],[-8,6,2,60],[-4,5,1,28],[-2,4,0,12],[-1,3,0,4],[0,1,0,0],[1,3,0,5],[2,4,0,13],[3,5,1,29],[5,6,2,61],[9,7,4,125],[-25,7,32,126,"lower"],[25,7,32,127]];break;default:throw new d("standard table B.".concat(t," does not exist"))}for(var l=0,c=r.length;l<c;l++)r[l]=new x(r[l]);o=new T(r,!0);R[t]=o;return o}var E=function(){function Reader(t,r,o){_classCallCheck(this,Reader);this.data=t;this.start=r;this.end=o;this.position=r;this.shift=-1;this.currentByte=0}_createClass(Reader,[{key:"readBit",value:function readBit(){if(this.shift<0){if(this.position>=this.end)throw new d("end of data while reading bit");this.currentByte=this.data[this.position++];this.shift=7}var t=this.currentByte>>this.shift&1;this.shift--;return t}},{key:"readBits",value:function readBits(t){var r,o=0;for(r=t-1;r>=0;r--)o|=this.readBit()<<r;return o}},{key:"byteAlign",value:function byteAlign(){this.shift=-1}},{key:"next",value:function next(){return this.position>=this.end?-1:this.data[this.position++]}}]);return Reader}();function getCustomHuffmanTable(t,r,o){for(var l=0,c=0,u=r.length;c<u;c++){var h=o[r[c]];if(h){if(t===l)return h;l++}}throw new d("can't find custom Huffman table")}function readUncompressedBitmap(t,r,o){for(var l=[],c=0;c<o;c++){var u=new Uint8Array(r);l.push(u);for(var h=0;h<r;h++)u[h]=t.readBit();t.byteAlign()}return l}function decodeMMRBitmap(t,r,o,l){for(var c,u={K:-1,Columns:r,Rows:o,BlackIs1:!0,EndOfBlock:l},d=new h.CCITTFaxDecoder(t,u),m=[],g=!1,y=0;y<o;y++){var v=new Uint8Array(r);m.push(v);for(var S=-1,_=0;_<r;_++){if(S<0){if(-1===(c=d.readNextChar())){c=0;g=!0}S=7}v[_]=c>>S&1;S--}}if(l&&!g)for(var k=0;k<5&&-1!==d.readNextChar();k++);return m}var M=function(){function Jbig2Image(){_classCallCheck(this,Jbig2Image)}_createClass(Jbig2Image,[{key:"parseChunks",value:function parseChunks(t){return function parseJbig2Chunks(t){for(var r=new w,o=0,l=t.length;o<l;o++){var c=t[o];processSegments(readSegments({},c.data,c.start,c.end),r)}return r.buffer}(t)}},{key:"parse",value:function parse(t){var r=function parseJbig2(t){var r=t.length,o=0;if(151!==t[o]||74!==t[o+1]||66!==t[o+2]||50!==t[o+3]||13!==t[o+4]||10!==t[o+5]||26!==t[o+6]||10!==t[o+7])throw new d("parseJbig2 - invalid header.");var l=Object.create(null);o+=8;var u=t[o++];l.randomAccess=!(1&u);if(!(2&u)){l.numberOfPages=(0,c.readUint32)(t,o);o+=4}var h=readSegments(l,t,o,r),m=new w;processSegments(h,m);for(var g=m.currentPageInfo,y=g.width,v=g.height,S=m.buffer,_=new Uint8ClampedArray(y*v),k=0,C=0,x=0;x<v;x++)for(var O=0,T=void 0,R=0;R<y;R++){if(!O){O=128;T=S[C++]}_[k++]=T&O?0:255;O>>=1}return{imgData:_,width:y,height:v}}(t),o=r.imgData,l=r.width,u=r.height;this.width=l;this.height=u;return o}}]);return Jbig2Image}();r.Jbig2Image=M},(t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});r.ArithmeticDecoder=void 0;function _defineProperties(t,r){for(var o=0;o<r.length;o++){var l=r[o];l.enumerable=l.enumerable||!1;l.configurable=!0;"value"in l&&(l.writable=!0);Object.defineProperty(t,l.key,l)}}var o=[{qe:22017,nmps:1,nlps:1,switchFlag:1},{qe:13313,nmps:2,nlps:6,switchFlag:0},{qe:6145,nmps:3,nlps:9,switchFlag:0},{qe:2753,nmps:4,nlps:12,switchFlag:0},{qe:1313,nmps:5,nlps:29,switchFlag:0},{qe:545,nmps:38,nlps:33,switchFlag:0},{qe:22017,nmps:7,nlps:6,switchFlag:1},{qe:21505,nmps:8,nlps:14,switchFlag:0},{qe:18433,nmps:9,nlps:14,switchFlag:0},{qe:14337,nmps:10,nlps:14,switchFlag:0},{qe:12289,nmps:11,nlps:17,switchFlag:0},{qe:9217,nmps:12,nlps:18,switchFlag:0},{qe:7169,nmps:13,nlps:20,switchFlag:0},{qe:5633,nmps:29,nlps:21,switchFlag:0},{qe:22017,nmps:15,nlps:14,switchFlag:1},{qe:21505,nmps:16,nlps:14,switchFlag:0},{qe:20737,nmps:17,nlps:15,switchFlag:0},{qe:18433,nmps:18,nlps:16,switchFlag:0},{qe:14337,nmps:19,nlps:17,switchFlag:0},{qe:13313,nmps:20,nlps:18,switchFlag:0},{qe:12289,nmps:21,nlps:19,switchFlag:0},{qe:10241,nmps:22,nlps:19,switchFlag:0},{qe:9217,nmps:23,nlps:20,switchFlag:0},{qe:8705,nmps:24,nlps:21,switchFlag:0},{qe:7169,nmps:25,nlps:22,switchFlag:0},{qe:6145,nmps:26,nlps:23,switchFlag:0},{qe:5633,nmps:27,nlps:24,switchFlag:0},{qe:5121,nmps:28,nlps:25,switchFlag:0},{qe:4609,nmps:29,nlps:26,switchFlag:0},{qe:4353,nmps:30,nlps:27,switchFlag:0},{qe:2753,nmps:31,nlps:28,switchFlag:0},{qe:2497,nmps:32,nlps:29,switchFlag:0},{qe:2209,nmps:33,nlps:30,switchFlag:0},{qe:1313,nmps:34,nlps:31,switchFlag:0},{qe:1089,nmps:35,nlps:32,switchFlag:0},{qe:673,nmps:36,nlps:33,switchFlag:0},{qe:545,nmps:37,nlps:34,switchFlag:0},{qe:321,nmps:38,nlps:35,switchFlag:0},{qe:273,nmps:39,nlps:36,switchFlag:0},{qe:133,nmps:40,nlps:37,switchFlag:0},{qe:73,nmps:41,nlps:38,switchFlag:0},{qe:37,nmps:42,nlps:39,switchFlag:0},{qe:21,nmps:43,nlps:40,switchFlag:0},{qe:9,nmps:44,nlps:41,switchFlag:0},{qe:5,nmps:45,nlps:42,switchFlag:0},{qe:1,nmps:45,nlps:43,switchFlag:0},{qe:22017,nmps:46,nlps:46,switchFlag:0}],l=function(){function ArithmeticDecoder(t,r,o){!function _classCallCheck(t,r){if(!(t instanceof r))throw new TypeError("Cannot call a class as a function")}(this,ArithmeticDecoder);this.data=t;this.bp=r;this.dataEnd=o;this.chigh=t[r];this.clow=0;this.byteIn();this.chigh=this.chigh<<7&65535|this.clow>>9&127;this.clow=this.clow<<7&65535;this.ct-=7;this.a=32768}!function _createClass(t,r,o){r&&_defineProperties(t.prototype,r);o&&_defineProperties(t,o);return t}(ArithmeticDecoder,[{key:"byteIn",value:function byteIn(){var t=this.data,r=this.bp;if(255===t[r])if(t[r+1]>143){this.clow+=65280;this.ct=8}else{r++;this.clow+=t[r]<<9;this.ct=7;this.bp=r}else{r++;this.clow+=r<this.dataEnd?t[r]<<8:65280;this.ct=8;this.bp=r}if(this.clow>65535){this.chigh+=this.clow>>16;this.clow&=65535}}},{key:"readBit",value:function readBit(t,r){var l,c=t[r]>>1,u=1&t[r],h=o[c],d=h.qe,m=this.a-d;if(this.chigh<d)if(m<d){m=d;l=u;c=h.nmps}else{m=d;l=1^u;1===h.switchFlag&&(u=l);c=h.nlps}else{this.chigh-=d;if(0!=(32768&m)){this.a=m;return u}if(m<d){l=1^u;1===h.switchFlag&&(u=l);c=h.nlps}else{l=u;c=h.nmps}}do{0===this.ct&&this.byteIn();m<<=1;this.chigh=this.chigh<<1&65535|this.clow>>15&1;this.clow=this.clow<<1&65535;this.ct--}while(0==(32768&m));this.a=m;t[r]=c<<1|u;return l}}]);return ArithmeticDecoder}();r.ArithmeticDecoder=l},(t,r,o)=>{"use strict";function _typeof(t){_typeof="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function _typeof(t){return typeof t}:function _typeof(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t};return _typeof(t)}Object.defineProperty(r,"__esModule",{value:!0});r.JpegStream=void 0;var l=o(142),c=o(118),u=o(151),h=o(4);function _defineProperties(t,r){for(var o=0;o<r.length;o++){var l=r[o];l.enumerable=l.enumerable||!1;l.configurable=!0;"value"in l&&(l.writable=!0);Object.defineProperty(t,l.key,l)}}function _setPrototypeOf(t,r){_setPrototypeOf=Object.setPrototypeOf||function _setPrototypeOf(t,r){t.__proto__=r;return t};return _setPrototypeOf(t,r)}function _createSuper(t){var r=function _isNativeReflectConstruct(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){})));return!0}catch(t){return!1}}();return function _createSuperInternal(){var o,l=_getPrototypeOf(t);if(r){var c=_getPrototypeOf(this).constructor;o=Reflect.construct(l,arguments,c)}else o=l.apply(this,arguments);return _possibleConstructorReturn(this,o)}}function _possibleConstructorReturn(t,r){if(r&&("object"===_typeof(r)||"function"==typeof r))return r;if(void 0!==r)throw new TypeError("Derived constructors may only return object or undefined");return function _assertThisInitialized(t){if(void 0===t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return t}(t)}function _getPrototypeOf(t){_getPrototypeOf=Object.setPrototypeOf?Object.getPrototypeOf:function _getPrototypeOf(t){return t.__proto__||Object.getPrototypeOf(t)};return _getPrototypeOf(t)}var d=function(t){!function _inherits(t,r){if("function"!=typeof r&&null!==r)throw new TypeError("Super expression must either be null or a function");t.prototype=Object.create(r&&r.prototype,{constructor:{value:t,writable:!0,configurable:!0}});r&&_setPrototypeOf(t,r)}(JpegStream,t);var r=_createSuper(JpegStream);function JpegStream(t,o,l){var c,u;!function _classCallCheck(t,r){if(!(t instanceof r))throw new TypeError("Cannot call a class as a function")}(this,JpegStream);for(;-1!==(u=t.getByte());)if(255===u){t.skip(-1);break}(c=r.call(this,o)).stream=t;c.dict=t.dict;c.maybeLength=o;c.params=l;return c}!function _createClass(t,r,o){r&&_defineProperties(t.prototype,r);o&&_defineProperties(t,o);return t}(JpegStream,[{key:"bytes",get:function get(){return(0,h.shadow)(this,"bytes",this.stream.getBytes(this.maybeLength))}},{key:"ensureBuffer",value:function ensureBuffer(t){}},{key:"readBlock",value:function readBlock(){if(!this.eof){var t={decodeTransform:void 0,colorTransform:void 0},r=this.dict.getArray("Decode","D");if(this.forceRGB&&Array.isArray(r)){for(var o=this.dict.get("BitsPerComponent")||8,l=r.length,h=new Int32Array(l),d=!1,m=(1<<o)-1,g=0;g<l;g+=2){h[g]=256*(r[g+1]-r[g])|0;h[g+1]=r[g]*m|0;256===h[g]&&0===h[g+1]||(d=!0)}d&&(t.decodeTransform=h)}if((0,c.isDict)(this.params)){var y=this.params.get("ColorTransform");Number.isInteger(y)&&(t.colorTransform=y)}var v=new u.JpegImage(t);v.parse(this.bytes);var S=v.getData({width:this.drawWidth,height:this.drawHeight,forceRGB:this.forceRGB,isSourcePDF:!0});this.buffer=S;this.bufferLength=S.length;this.eof=!0}}}]);return JpegStream}(l.DecodeStream);r.JpegStream=d},(t,r,o)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});r.JpegImage=void 0;var l=o(4),c=o(122);function _defineProperties(t,r){for(var o=0;o<r.length;o++){var l=r[o];l.enumerable=l.enumerable||!1;l.configurable=!0;"value"in l&&(l.writable=!0);Object.defineProperty(t,l.key,l)}}function _typeof(t){_typeof="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function _typeof(t){return typeof t}:function _typeof(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t};return _typeof(t)}function _classCallCheck(t,r){if(!(t instanceof r))throw new TypeError("Cannot call a class as a function")}function _inherits(t,r){if("function"!=typeof r&&null!==r)throw new TypeError("Super expression must either be null or a function");t.prototype=Object.create(r&&r.prototype,{constructor:{value:t,writable:!0,configurable:!0}});r&&_setPrototypeOf(t,r)}function _setPrototypeOf(t,r){_setPrototypeOf=Object.setPrototypeOf||function _setPrototypeOf(t,r){t.__proto__=r;return t};return _setPrototypeOf(t,r)}function _createSuper(t){var r=function _isNativeReflectConstruct(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){})));return!0}catch(t){return!1}}();return function _createSuperInternal(){var o,l=_getPrototypeOf(t);if(r){var c=_getPrototypeOf(this).constructor;o=Reflect.construct(l,arguments,c)}else o=l.apply(this,arguments);return _possibleConstructorReturn(this,o)}}function _possibleConstructorReturn(t,r){if(r&&("object"===_typeof(r)||"function"==typeof r))return r;if(void 0!==r)throw new TypeError("Derived constructors may only return object or undefined");return function _assertThisInitialized(t){if(void 0===t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return t}(t)}function _getPrototypeOf(t){_getPrototypeOf=Object.setPrototypeOf?Object.getPrototypeOf:function _getPrototypeOf(t){return t.__proto__||Object.getPrototypeOf(t)};return _getPrototypeOf(t)}var u=function(t){_inherits(JpegError,t);var r=_createSuper(JpegError);function JpegError(t){_classCallCheck(this,JpegError);return r.call(this,"JPEG error: ".concat(t),"JpegError")}return JpegError}(l.BaseException),h=function(t){_inherits(DNLMarkerError,t);var r=_createSuper(DNLMarkerError);function DNLMarkerError(t,o){var l;_classCallCheck(this,DNLMarkerError);(l=r.call(this,t,"DNLMarkerError")).scanLines=o;return l}return DNLMarkerError}(l.BaseException),d=function(t){_inherits(EOIMarkerError,t);var r=_createSuper(EOIMarkerError);function EOIMarkerError(t){_classCallCheck(this,EOIMarkerError);return r.call(this,t,"EOIMarkerError")}return EOIMarkerError}(l.BaseException),m=new Uint8Array([0,1,8,16,9,2,3,10,17,24,32,25,18,11,4,5,12,19,26,33,40,48,41,34,27,20,13,6,7,14,21,28,35,42,49,56,57,50,43,36,29,22,15,23,30,37,44,51,58,59,52,45,38,31,39,46,53,60,61,54,47,55,62,63]),g=4017,y=799,v=3406,S=2276,_=1567,k=3784,C=5793,w=2896;function buildHuffmanTable(t,r){for(var o,l,c=0,u=16;u>0&&!t[u-1];)u--;var h,d=[{children:[],index:0}],m=d[0];for(o=0;o<u;o++){for(l=0;l<t[o];l++){(m=d.pop()).children[m.index]=r[c];for(;m.index>0;)m=d.pop();m.index++;d.push(m);for(;d.length<=o;){d.push(h={children:[],index:0});m.children[m.index]=h.children;m=h}c++}if(o+1<u){d.push(h={children:[],index:0});m.children[m.index]=h.children;m=h}}return d[0].children}function getBlockBufferOffset(t,r,o){return 64*((t.blocksPerLine+1)*r+o)}function decodeScan(t,r,o,g,y,v,S,_,k){var C=arguments.length>9&&void 0!==arguments[9]&&arguments[9],w=o.mcusPerLine,x=o.progressive,O=r,T=0,R=0;function readBit(){if(R>0){R--;return T>>R&1}if(255===(T=t[r++])){var l=t[r++];if(l){if(220===l&&C){r+=2;var m=(0,c.readUint16)(t,r);r+=2;if(m>0&&m!==o.scanLines)throw new h("Found DNL marker (0xFFDC) while parsing scan data",m)}else if(217===l){if(C){var g=j*(8===o.precision?8:0);if(g>0&&Math.round(o.scanLines/g)>=10)throw new h("Found EOI marker (0xFFD9) while parsing scan data, possibly caused by incorrect `scanLines` parameter",g)}throw new d("Found EOI marker (0xFFD9) while parsing scan data")}throw new u("unexpected marker ".concat((T<<8|l).toString(16)))}}R=7;return T>>>7}function decodeHuffman(t){for(var r=t;;){switch(_typeof(r=r[readBit()])){case"number":return r;case"object":continue}throw new u("invalid huffman sequence")}}function receive(t){for(var r=0;t>0;){r=r<<1|readBit();t--}return r}function receiveAndExtend(t){if(1===t)return 1===readBit()?1:-1;var r=receive(t);return r>=1<<t-1?r:r+(-1<<t)+1}function decodeBaseline(t,r){var o=decodeHuffman(t.huffmanTableDC),l=0===o?0:receiveAndExtend(o);t.blockData[r]=t.pred+=l;for(var c=1;c<64;){var u=decodeHuffman(t.huffmanTableAC),h=15&u,d=u>>4;if(0!==h){var g=m[c+=d];t.blockData[r+g]=receiveAndExtend(h);c++}else{if(d<15)break;c+=16}}}function decodeDCFirst(t,r){var o=decodeHuffman(t.huffmanTableDC),l=0===o?0:receiveAndExtend(o)<<k;t.blockData[r]=t.pred+=l}function decodeDCSuccessive(t,r){t.blockData[r]|=readBit()<<k}var E=0;function decodeACFirst(t,r){if(E>0)E--;else for(var o=v,l=S;o<=l;){var c=decodeHuffman(t.huffmanTableAC),u=15&c,h=c>>4;if(0!==u){var d=m[o+=h];t.blockData[r+d]=receiveAndExtend(u)*(1<<k);o++}else{if(h<15){E=receive(h)+(1<<h)-1;break}o+=16}}}var M,D=0;function decodeACSuccessive(t,r){for(var o,l,c=v,h=S,d=0;c<=h;){var g=r+m[c],y=t.blockData[g]<0?-1:1;switch(D){case 0:d=(l=decodeHuffman(t.huffmanTableAC))>>4;if(0===(o=15&l))if(d<15){E=receive(d)+(1<<d);D=4}else{d=16;D=1}else{if(1!==o)throw new u("invalid ACn encoding");M=receiveAndExtend(o);D=d?2:3}continue;case 1:case 2:t.blockData[g]?t.blockData[g]+=y*(readBit()<<k):0===--d&&(D=2===D?3:0);break;case 3:if(t.blockData[g])t.blockData[g]+=y*(readBit()<<k);else{t.blockData[g]=M<<k;D=0}break;case 4:t.blockData[g]&&(t.blockData[g]+=y*(readBit()<<k))}c++}4===D&&0===--E&&(D=0)}var j=0;function decodeMcu(t,r,o,l,c){var u=o%w;j=(o/w|0)*t.v+l;var h=u*t.h+c;r(t,getBlockBufferOffset(t,j,h))}function decodeBlock(t,r,o){j=o/t.blocksPerLine|0;var l=o%t.blocksPerLine;r(t,getBlockBufferOffset(t,j,l))}var L,N,U,H,W,$,q=g.length;$=x?0===v?0===_?decodeDCFirst:decodeDCSuccessive:0===_?decodeACFirst:decodeACSuccessive:decodeBaseline;var X,z,G,V,Y=0;z=1===q?g[0].blocksPerLine*g[0].blocksPerColumn:w*o.mcusPerColumn;for(;Y<=z;){var K=y?Math.min(z-Y,y):z;if(K>0){for(N=0;N<q;N++)g[N].pred=0;E=0;if(1===q){L=g[0];for(W=0;W<K;W++){decodeBlock(L,$,Y);Y++}}else for(W=0;W<K;W++){for(N=0;N<q;N++){G=(L=g[N]).h;V=L.v;for(U=0;U<V;U++)for(H=0;H<G;H++)decodeMcu(L,$,Y,U,H)}Y++}}R=0;if(!(X=findNextFileMarker(t,r)))break;if(X.invalid){var J=K>0?"unexpected":"excessive";(0,l.warn)("decodeScan - ".concat(J," MCU data, current marker is: ").concat(X.invalid));r=X.offset}if(!(X.marker>=65488&&X.marker<=65495))break;r+=2}return r-O}function quantizeAndInverse(t,r,o){var l,c,h,d,m,x,O,T,R,E,M,D,j,L,N,U,H,W=t.quantizationTable,$=t.blockData;if(!W)throw new u("missing required Quantization Table.");for(var q=0;q<64;q+=8){R=$[r+q];E=$[r+q+1];M=$[r+q+2];D=$[r+q+3];j=$[r+q+4];L=$[r+q+5];N=$[r+q+6];U=$[r+q+7];R*=W[q];if(0!=(E|M|D|j|L|N|U)){E*=W[q+1];M*=W[q+2];D*=W[q+3];j*=W[q+4];L*=W[q+5];N*=W[q+6];U*=W[q+7];c=(l=(l=C*R+128>>8)+(c=C*j+128>>8)+1>>1)-c;H=(h=M)*k+(d=N)*_+128>>8;h=h*_-d*k+128>>8;O=(m=(m=w*(E-U)+128>>8)+(O=L<<4)+1>>1)-O;x=(T=(T=w*(E+U)+128>>8)+(x=D<<4)+1>>1)-x;d=(l=l+(d=H)+1>>1)-d;h=(c=c+h+1>>1)-h;H=m*S+T*v+2048>>12;m=m*v-T*S+2048>>12;T=H;H=x*y+O*g+2048>>12;x=x*g-O*y+2048>>12;O=H;o[q]=l+T;o[q+7]=l-T;o[q+1]=c+O;o[q+6]=c-O;o[q+2]=h+x;o[q+5]=h-x;o[q+3]=d+m;o[q+4]=d-m}else{H=C*R+512>>10;o[q]=H;o[q+1]=H;o[q+2]=H;o[q+3]=H;o[q+4]=H;o[q+5]=H;o[q+6]=H;o[q+7]=H}}for(var X=0;X<8;++X){R=o[X];if(0!=((E=o[X+8])|(M=o[X+16])|(D=o[X+24])|(j=o[X+32])|(L=o[X+40])|(N=o[X+48])|(U=o[X+56]))){c=(l=4112+((l=C*R+2048>>12)+(c=C*j+2048>>12)+1>>1))-c;H=(h=M)*k+(d=N)*_+2048>>12;h=h*_-d*k+2048>>12;d=H;O=(m=(m=w*(E-U)+2048>>12)+(O=L)+1>>1)-O;x=(T=(T=w*(E+U)+2048>>12)+(x=D)+1>>1)-x;H=m*S+T*v+2048>>12;m=m*v-T*S+2048>>12;T=H;H=x*y+O*g+2048>>12;x=x*g-O*y+2048>>12;(R=(l=l+d+1>>1)+T)<16?R=0:R>=4080?R=255:R>>=4;(E=(c=c+h+1>>1)+(O=H))<16?E=0:E>=4080?E=255:E>>=4;(M=(h=c-h)+x)<16?M=0:M>=4080?M=255:M>>=4;(D=(d=l-d)+m)<16?D=0:D>=4080?D=255:D>>=4;(j=d-m)<16?j=0:j>=4080?j=255:j>>=4;(L=h-x)<16?L=0:L>=4080?L=255:L>>=4;(N=c-O)<16?N=0:N>=4080?N=255:N>>=4;(U=l-T)<16?U=0:U>=4080?U=255:U>>=4;$[r+X]=R;$[r+X+8]=E;$[r+X+16]=M;$[r+X+24]=D;$[r+X+32]=j;$[r+X+40]=L;$[r+X+48]=N;$[r+X+56]=U}else{H=(H=C*R+8192>>14)<-2040?0:H>=2024?255:H+2056>>4;$[r+X]=H;$[r+X+8]=H;$[r+X+16]=H;$[r+X+24]=H;$[r+X+32]=H;$[r+X+40]=H;$[r+X+48]=H;$[r+X+56]=H}}}function buildComponentData(t,r){for(var o=r.blocksPerLine,l=r.blocksPerColumn,c=new Int16Array(64),u=0;u<l;u++)for(var h=0;h<o;h++){quantizeAndInverse(r,getBlockBufferOffset(r,u,h),c)}return r.blockData}function findNextFileMarker(t,r){var o=arguments.length>2&&void 0!==arguments[2]?arguments[2]:r,l=t.length-1,u=o<r?o:r;if(r>=l)return null;var h=(0,c.readUint16)(t,r);if(h>=65472&&h<=65534)return{invalid:null,marker:h,offset:r};for(var d=(0,c.readUint16)(t,u);!(d>=65472&&d<=65534);){if(++u>=l)return null;d=(0,c.readUint16)(t,u)}return{invalid:h.toString(16),marker:d,offset:u}}var x=function(){function JpegImage(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},r=t.decodeTransform,o=void 0===r?null:r,l=t.colorTransform,c=void 0===l?-1:l;_classCallCheck(this,JpegImage);this._decodeTransform=o;this._colorTransform=c}!function _createClass(t,r,o){r&&_defineProperties(t.prototype,r);o&&_defineProperties(t,o);return t}(JpegImage,[{key:"parse",value:function parse(t){var r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},o=r.dnlScanLines,g=void 0===o?null:o;function readDataBlock(){var r=(0,c.readUint16)(t,S),o=(S+=2)+r-2,u=findNextFileMarker(t,o,S);if(u&&u.invalid){(0,l.warn)("readDataBlock - incorrect length, current marker is: "+u.invalid);o=u.offset}var h=t.subarray(S,o);S+=h.length;return h}function prepareComponents(t){for(var r=Math.ceil(t.samplesPerLine/8/t.maxH),o=Math.ceil(t.scanLines/8/t.maxV),l=0,c=t.components.length;l<c;l++){var u=t.components[l],h=Math.ceil(Math.ceil(t.samplesPerLine/8)*u.h/t.maxH),d=Math.ceil(Math.ceil(t.scanLines/8)*u.v/t.maxV),m=r*u.h,g=64*(o*u.v)*(m+1);u.blockData=new Int16Array(g);u.blocksPerLine=h;u.blocksPerColumn=d}t.mcusPerLine=r;t.mcusPerColumn=o}var y,v,S=0,_=null,k=null,C=0,w=[],x=[],O=[],T=(0,c.readUint16)(t,S);S+=2;if(65496!==T)throw new u("SOI not found");T=(0,c.readUint16)(t,S);S+=2;e:for(;65497!==T;){var R=void 0,E=void 0,M=void 0;switch(T){case 65504:case 65505:case 65506:case 65507:case 65508:case 65509:case 65510:case 65511:case 65512:case 65513:case 65514:case 65515:case 65516:case 65517:case 65518:case 65519:case 65534:var D=readDataBlock();65504===T&&74===D[0]&&70===D[1]&&73===D[2]&&70===D[3]&&0===D[4]&&(_={version:{major:D[5],minor:D[6]},densityUnits:D[7],xDensity:D[8]<<8|D[9],yDensity:D[10]<<8|D[11],thumbWidth:D[12],thumbHeight:D[13],thumbData:D.subarray(14,14+3*D[12]*D[13])});65518===T&&65===D[0]&&100===D[1]&&111===D[2]&&98===D[3]&&101===D[4]&&(k={version:D[5]<<8|D[6],flags0:D[7]<<8|D[8],flags1:D[9]<<8|D[10],transformCode:D[11]});break;case 65499:for(var j=(0,c.readUint16)(t,S),L=j+(S+=2)-2;S<L;){var N=t[S++],U=new Uint16Array(64);if(N>>4==0)for(E=0;E<64;E++)U[m[E]]=t[S++];else{if(N>>4!=1)throw new u("DQT - invalid table spec");for(E=0;E<64;E++){U[m[E]]=(0,c.readUint16)(t,S);S+=2}}w[15&N]=U}break;case 65472:case 65473:case 65474:if(y)throw new u("Only single frame JPEGs supported");S+=2;(y={}).extended=65473===T;y.progressive=65474===T;y.precision=t[S++];var H=(0,c.readUint16)(t,S);S+=2;y.scanLines=g||H;y.samplesPerLine=(0,c.readUint16)(t,S);S+=2;y.components=[];y.componentIds={};var W=t[S++],$=0,q=0;for(R=0;R<W;R++){var X=t[S],z=t[S+1]>>4,G=15&t[S+1];$<z&&($=z);q<G&&(q=G);var V=t[S+2];M=y.components.push({h:z,v:G,quantizationId:V,quantizationTable:null});y.componentIds[X]=M-1;S+=3}y.maxH=$;y.maxV=q;prepareComponents(y);break;case 65476:var Y=(0,c.readUint16)(t,S);S+=2;for(R=2;R<Y;){var K=t[S++],J=new Uint8Array(16),Q=0;for(E=0;E<16;E++,S++)Q+=J[E]=t[S];var Z=new Uint8Array(Q);for(E=0;E<Q;E++,S++)Z[E]=t[S];R+=17+Q;(K>>4==0?O:x)[15&K]=buildHuffmanTable(J,Z)}break;case 65501:S+=2;v=(0,c.readUint16)(t,S);S+=2;break;case 65498:var ee=1==++C&&!g;S+=2;var te=t[S++],re=[];for(R=0;R<te;R++){var ae=t[S++],ne=y.componentIds[ae],ie=y.components[ne];ie.index=ae;var oe=t[S++];ie.huffmanTableDC=O[oe>>4];ie.huffmanTableAC=x[15&oe];re.push(ie)}var se=t[S++],le=t[S++],ce=t[S++];try{var ue=decodeScan(t,S,y,re,v,se,le,ce>>4,15&ce,ee);S+=ue}catch(r){if(r instanceof h){(0,l.warn)("".concat(r.message," -- attempting to re-parse the JPEG image."));return this.parse(t,{dnlScanLines:r.scanLines})}if(r instanceof d){(0,l.warn)("".concat(r.message," -- ignoring the rest of the image data."));break e}throw r}break;case 65500:S+=4;break;case 65535:255!==t[S]&&S--;break;default:var fe=findNextFileMarker(t,S-2,S-3);if(fe&&fe.invalid){(0,l.warn)("JpegImage.parse - unexpected data, current marker is: "+fe.invalid);S=fe.offset;break}if(!fe||S>=t.length-1){(0,l.warn)("JpegImage.parse - reached the end of the image data without finding an EOI marker (0xFFD9).");break e}throw new u("JpegImage.parse - unknown marker: "+T.toString(16))}T=(0,c.readUint16)(t,S);S+=2}this.width=y.samplesPerLine;this.height=y.scanLines;this.jfif=_;this.adobe=k;this.components=[];for(var he=0,de=y.components.length;he<de;he++){var pe=y.components[he],me=w[pe.quantizationId];me&&(pe.quantizationTable=me);this.components.push({index:pe.index,output:buildComponentData(0,pe),scaleX:pe.h/y.maxH,scaleY:pe.v/y.maxV,blocksPerLine:pe.blocksPerLine,blocksPerColumn:pe.blocksPerColumn})}this.numComponents=this.components.length}},{key:"_getLinearizedBlockData",value:function _getLinearizedBlockData(t,r){var o,l,c,u,h,d,m,g,y,v,S,_,k=arguments.length>2&&void 0!==arguments[2]&&arguments[2],C=this.width/t,w=this.height/r,x=0,O=this.components.length,T=t*r*O,R=new Uint8ClampedArray(T),E=new Uint32Array(t),M=4294967288;for(m=0;m<O;m++){l=(o=this.components[m]).scaleX*C;c=o.scaleY*w;x=m;S=o.output;u=o.blocksPerLine+1<<3;if(l!==_){for(h=0;h<t;h++){g=0|h*l;E[h]=(g&M)<<3|7&g}_=l}for(d=0;d<r;d++){v=u*((g=0|d*c)&M)|(7&g)<<3;for(h=0;h<t;h++){R[x]=S[v+E[h]];x+=O}}}var D=this._decodeTransform;k||4!==O||D||(D=new Int32Array([-256,255,-256,255,-256,255,-256,255]));if(D)for(m=0;m<T;)for(g=0,y=0;g<O;g++,m++,y+=2)R[m]=(R[m]*D[y]>>8)+D[y+1];return R}},{key:"_isColorConversionNeeded",get:function get(){return this.adobe?!!this.adobe.transformCode:3===this.numComponents?0!==this._colorTransform&&(82!==this.components[0].index||71!==this.components[1].index||66!==this.components[2].index):1===this._colorTransform}},{key:"_convertYccToRgb",value:function _convertYccToRgb(t){for(var r,o,l,c=0,u=t.length;c<u;c+=3){r=t[c];o=t[c+1];l=t[c+2];t[c]=r-179.456+1.402*l;t[c+1]=r+135.459-.344*o-.714*l;t[c+2]=r-226.816+1.772*o}return t}},{key:"_convertYcckToRgb",value:function _convertYcckToRgb(t){for(var r,o,l,c,u=0,h=0,d=t.length;h<d;h+=4){r=t[h];o=t[h+1];l=t[h+2];c=t[h+3];t[u++]=o*(-660635669420364e-19*o+.000437130475926232*l-54080610064599e-18*r+.00048449797120281*c-.154362151871126)-122.67195406894+l*(-.000957964378445773*l+.000817076911346625*r-.00477271405408747*c+1.53380253221734)+r*(.000961250184130688*r-.00266257332283933*c+.48357088451265)+c*(-.000336197177618394*c+.484791561490776);t[u++]=107.268039397724+o*(219927104525741e-19*o-.000640992018297945*l+.000659397001245577*r+.000426105652938837*c-.176491792462875)+l*(-.000778269941513683*l+.00130872261408275*r+.000770482631801132*c-.151051492775562)+r*(.00126935368114843*r-.00265090189010898*c+.25802910206845)+c*(-.000318913117588328*c-.213742400323665);t[u++]=o*(-.000570115196973677*o-263409051004589e-19*l+.0020741088115012*r-.00288260236853442*c+.814272968359295)-20.810012546947+l*(-153496057440975e-19*l-.000132689043961446*r+.000560833691242812*c-.195152027534049)+r*(.00174418132927582*r-.00255243321439347*c+.116935020465145)+c*(-.000343531996510555*c+.24165260232407)}return t.subarray(0,u)}},{key:"_convertYcckToCmyk",value:function _convertYcckToCmyk(t){for(var r,o,l,c=0,u=t.length;c<u;c+=4){r=t[c];o=t[c+1];l=t[c+2];t[c]=434.456-r-1.402*l;t[c+1]=119.541-r+.344*o+.714*l;t[c+2]=481.816-r-1.772*o}return t}},{key:"_convertCmykToRgb",value:function _convertCmykToRgb(t){for(var r,o,l,c,u=0,h=0,d=t.length;h<d;h+=4){r=t[h];o=t[h+1];l=t[h+2];c=t[h+3];t[u++]=255+r*(-6747147073602441e-20*r+.0008379262121013727*o+.0002894718188643294*l+.003264231057537806*c-1.1185611867203937)+o*(26374107616089405e-21*o-8626949158638572e-20*l-.0002748769067499491*c-.02155688794978967)+l*(-3878099212869363e-20*l-.0003267808279485286*c+.0686742238595345)-c*(.0003361971776183937*c+.7430659151342254);t[u++]=255+r*(.00013596372813588848*r+.000924537132573585*o+.00010567359618683593*l+.0004791864687436512*c-.3109689587515875)+o*(-.00023545346108370344*o+.0002702845253534714*l+.0020200308977307156*c-.7488052167015494)+l*(6834815998235662e-20*l+.00015168452363460973*c-.09751927774728933)-c*(.0003189131175883281*c+.7364883807733168);t[u++]=255+r*(13598650411385307e-21*r+.00012423956175490851*o+.0004751985097583589*l-36729317476630422e-22*c-.05562186980264034)+o*(.00016141380598724676*o+.0009692239130725186*l+.0007782692450036253*c-.44015232367526463)+l*(5.068882914068769e-7*l+.0017778369011375071*c-.7591454649749609)-c*(.0003435319965105553*c+.7063770186160144)}return t.subarray(0,u)}},{key:"getData",value:function getData(t){var r=t.width,o=t.height,l=t.forceRGB,c=void 0!==l&&l,h=t.isSourcePDF,d=void 0!==h&&h;if(this.numComponents>4)throw new u("Unsupported color mode");var m=this._getLinearizedBlockData(r,o,d);if(1===this.numComponents&&c){for(var g=m.length,y=new Uint8ClampedArray(3*g),v=0,S=0;S<g;S++){var _=m[S];y[v++]=_;y[v++]=_;y[v++]=_}return y}if(3===this.numComponents&&this._isColorConversionNeeded)return this._convertYccToRgb(m);if(4===this.numComponents){if(this._isColorConversionNeeded)return c?this._convertYcckToRgb(m):this._convertYcckToCmyk(m);if(c)return this._convertCmykToRgb(m)}return m}}]);return JpegImage}();r.JpegImage=x},(t,r,o)=>{"use strict";function _typeof(t){_typeof="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function _typeof(t){return typeof t}:function _typeof(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t};return _typeof(t)}Object.defineProperty(r,"__esModule",{value:!0});r.JpxStream=void 0;var l=o(142),c=o(153),u=o(4);function _defineProperties(t,r){for(var o=0;o<r.length;o++){var l=r[o];l.enumerable=l.enumerable||!1;l.configurable=!0;"value"in l&&(l.writable=!0);Object.defineProperty(t,l.key,l)}}function _setPrototypeOf(t,r){_setPrototypeOf=Object.setPrototypeOf||function _setPrototypeOf(t,r){t.__proto__=r;return t};return _setPrototypeOf(t,r)}function _createSuper(t){var r=function _isNativeReflectConstruct(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){})));return!0}catch(t){return!1}}();return function _createSuperInternal(){var o,l=_getPrototypeOf(t);if(r){var c=_getPrototypeOf(this).constructor;o=Reflect.construct(l,arguments,c)}else o=l.apply(this,arguments);return _possibleConstructorReturn(this,o)}}function _possibleConstructorReturn(t,r){if(r&&("object"===_typeof(r)||"function"==typeof r))return r;if(void 0!==r)throw new TypeError("Derived constructors may only return object or undefined");return function _assertThisInitialized(t){if(void 0===t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return t}(t)}function _getPrototypeOf(t){_getPrototypeOf=Object.setPrototypeOf?Object.getPrototypeOf:function _getPrototypeOf(t){return t.__proto__||Object.getPrototypeOf(t)};return _getPrototypeOf(t)}var h=function(t){!function _inherits(t,r){if("function"!=typeof r&&null!==r)throw new TypeError("Super expression must either be null or a function");t.prototype=Object.create(r&&r.prototype,{constructor:{value:t,writable:!0,configurable:!0}});r&&_setPrototypeOf(t,r)}(JpxStream,t);var r=_createSuper(JpxStream);function JpxStream(t,o,l){var c;!function _classCallCheck(t,r){if(!(t instanceof r))throw new TypeError("Cannot call a class as a function")}(this,JpxStream);(c=r.call(this,o)).stream=t;c.dict=t.dict;c.maybeLength=o;c.params=l;return c}!function _createClass(t,r,o){r&&_defineProperties(t.prototype,r);o&&_defineProperties(t,o);return t}(JpxStream,[{key:"bytes",get:function get(){return(0,u.shadow)(this,"bytes",this.stream.getBytes(this.maybeLength))}},{key:"ensureBuffer",value:function ensureBuffer(t){}},{key:"readBlock",value:function readBlock(){if(!this.eof){var t=new c.JpxImage;t.parse(this.bytes);var r=t.width,o=t.height,l=t.componentsCount,u=t.tiles.length;if(1===u)this.buffer=t.tiles[0].items;else{for(var h=new Uint8ClampedArray(r*o*l),d=0;d<u;d++)for(var m=t.tiles[d],g=m.width,y=m.height,v=m.left,S=m.top,_=m.items,k=0,C=(r*S+v)*l,w=r*l,x=g*l,O=0;O<y;O++){var T=_.subarray(k,k+x);h.set(T,C);k+=x;C+=w}this.buffer=h}this.bufferLength=this.buffer.length;this.eof=!0}}}]);return JpxStream}(l.DecodeStream);r.JpxStream=h},(t,r,o)=>{"use strict";function _typeof(t){_typeof="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function _typeof(t){return typeof t}:function _typeof(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t};return _typeof(t)}Object.defineProperty(r,"__esModule",{value:!0});r.JpxImage=void 0;var l=o(4),c=o(122),u=o(149);function _defineProperties(t,r){for(var o=0;o<r.length;o++){var l=r[o];l.enumerable=l.enumerable||!1;l.configurable=!0;"value"in l&&(l.writable=!0);Object.defineProperty(t,l.key,l)}}function _createClass(t,r,o){r&&_defineProperties(t.prototype,r);o&&_defineProperties(t,o);return t}function _classCallCheck(t,r){if(!(t instanceof r))throw new TypeError("Cannot call a class as a function")}function _inherits(t,r){if("function"!=typeof r&&null!==r)throw new TypeError("Super expression must either be null or a function");t.prototype=Object.create(r&&r.prototype,{constructor:{value:t,writable:!0,configurable:!0}});r&&_setPrototypeOf(t,r)}function _setPrototypeOf(t,r){_setPrototypeOf=Object.setPrototypeOf||function _setPrototypeOf(t,r){t.__proto__=r;return t};return _setPrototypeOf(t,r)}function _createSuper(t){var r=function _isNativeReflectConstruct(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){})));return!0}catch(t){return!1}}();return function _createSuperInternal(){var o,l=_getPrototypeOf(t);if(r){var c=_getPrototypeOf(this).constructor;o=Reflect.construct(l,arguments,c)}else o=l.apply(this,arguments);return _possibleConstructorReturn(this,o)}}function _possibleConstructorReturn(t,r){if(r&&("object"===_typeof(r)||"function"==typeof r))return r;if(void 0!==r)throw new TypeError("Derived constructors may only return object or undefined");return function _assertThisInitialized(t){if(void 0===t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return t}(t)}function _getPrototypeOf(t){_getPrototypeOf=Object.setPrototypeOf?Object.getPrototypeOf:function _getPrototypeOf(t){return t.__proto__||Object.getPrototypeOf(t)};return _getPrototypeOf(t)}var h=function(t){_inherits(JpxError,t);var r=_createSuper(JpxError);function JpxError(t){_classCallCheck(this,JpxError);return r.call(this,"JPX error: ".concat(t),"JpxError")}return JpxError}(l.BaseException),d={LL:0,LH:1,HL:1,HH:2},m=function(){function JpxImage(){_classCallCheck(this,JpxImage);this.failOnCorruptedImage=!1}_createClass(JpxImage,[{key:"parse",value:function parse(t){if(65359!==(0,c.readUint16)(t,0))for(var r=t.length,o=0;o<r;){var u=8,d=(0,c.readUint32)(t,o),m=(0,c.readUint32)(t,o+4);o+=u;if(1===d){d=4294967296*(0,c.readUint32)(t,o)+(0,c.readUint32)(t,o+4);o+=8;u+=8}0===d&&(d=r-o+u);if(d<u)throw new h("Invalid box field size");var g=d-u,y=!0;switch(m){case 1785737832:y=!1;break;case 1668246642:var v=t[o];if(1===v){var S=(0,c.readUint32)(t,o+3);switch(S){case 16:case 17:case 18:break;default:(0,l.warn)("Unknown colorspace "+S)}}else 2===v&&(0,l.info)("ICC profile not supported");break;case 1785737827:this.parseCodestream(t,o,o+g);break;case 1783636e3:218793738!==(0,c.readUint32)(t,o)&&(0,l.warn)("Invalid JP2 signature");break;case 1783634458:case 1718909296:case 1920099697:case 1919251232:case 1768449138:break;default:var _=String.fromCharCode(m>>24&255,m>>16&255,m>>8&255,255&m);(0,l.warn)("Unsupported header type ".concat(m," (").concat(_,")."))}y&&(o+=g)}else this.parseCodestream(t,0,t.length)}},{key:"parseImageProperties",value:function parseImageProperties(t){for(var r=t.getByte();r>=0;){if(65361===(r<<8|(r=t.getByte()))){t.skip(4);var o=t.getInt32()>>>0,l=t.getInt32()>>>0,c=t.getInt32()>>>0,u=t.getInt32()>>>0;t.skip(16);var d=t.getUint16();this.width=o-c;this.height=l-u;this.componentsCount=d;this.bitsPerComponent=8;return}}throw new h("No size marker found in JPX stream")}},{key:"parseCodestream",value:function parseCodestream(t,r,o){var u={},d=!1;try{for(var m=r;m+1<o;){var g=(0,c.readUint16)(t,m);m+=2;var y=0,v=void 0,S=void 0,_=void 0,k=void 0,C=void 0,w=void 0;switch(g){case 65359:u.mainHeader=!0;break;case 65497:break;case 65361:y=(0,c.readUint16)(t,m);var x={};x.Xsiz=(0,c.readUint32)(t,m+4);x.Ysiz=(0,c.readUint32)(t,m+8);x.XOsiz=(0,c.readUint32)(t,m+12);x.YOsiz=(0,c.readUint32)(t,m+16);x.XTsiz=(0,c.readUint32)(t,m+20);x.YTsiz=(0,c.readUint32)(t,m+24);x.XTOsiz=(0,c.readUint32)(t,m+28);x.YTOsiz=(0,c.readUint32)(t,m+32);var O=(0,c.readUint16)(t,m+36);x.Csiz=O;var T=[];v=m+38;for(var R=0;R<O;R++){var E={precision:1+(127&t[v]),isSigned:!!(128&t[v]),XRsiz:t[v+1],YRsiz:t[v+2]};v+=3;calculateComponentDimensions(E,x);T.push(E)}u.SIZ=x;u.components=T;calculateTileGrids(u,T);u.QCC=[];u.COC=[];break;case 65372:y=(0,c.readUint16)(t,m);var M={};v=m+2;switch(31&(S=t[v++])){case 0:k=8;C=!0;break;case 1:k=16;C=!1;break;case 2:k=16;C=!0;break;default:throw new Error("Invalid SQcd value "+S)}M.noQuantization=8===k;M.scalarExpounded=C;M.guardBits=S>>5;_=[];for(;v<y+m;){var D={};if(8===k){D.epsilon=t[v++]>>3;D.mu=0}else{D.epsilon=t[v]>>3;D.mu=(7&t[v])<<8|t[v+1];v+=2}_.push(D)}M.SPqcds=_;if(u.mainHeader)u.QCD=M;else{u.currentTile.QCD=M;u.currentTile.QCC=[]}break;case 65373:y=(0,c.readUint16)(t,m);var j={};v=m+2;var L=void 0;if(u.SIZ.Csiz<257)L=t[v++];else{L=(0,c.readUint16)(t,v);v+=2}switch(31&(S=t[v++])){case 0:k=8;C=!0;break;case 1:k=16;C=!1;break;case 2:k=16;C=!0;break;default:throw new Error("Invalid SQcd value "+S)}j.noQuantization=8===k;j.scalarExpounded=C;j.guardBits=S>>5;_=[];for(;v<y+m;){var N={};if(8===k){N.epsilon=t[v++]>>3;N.mu=0}else{N.epsilon=t[v]>>3;N.mu=(7&t[v])<<8|t[v+1];v+=2}_.push(N)}j.SPqcds=_;u.mainHeader?u.QCC[L]=j:u.currentTile.QCC[L]=j;break;case 65362:y=(0,c.readUint16)(t,m);var U={};v=m+2;var H=t[v++];U.entropyCoderWithCustomPrecincts=!!(1&H);U.sopMarkerUsed=!!(2&H);U.ephMarkerUsed=!!(4&H);U.progressionOrder=t[v++];U.layersCount=(0,c.readUint16)(t,v);v+=2;U.multipleComponentTransform=t[v++];U.decompositionLevelsCount=t[v++];U.xcb=2+(15&t[v++]);U.ycb=2+(15&t[v++]);var W=t[v++];U.selectiveArithmeticCodingBypass=!!(1&W);U.resetContextProbabilities=!!(2&W);U.terminationOnEachCodingPass=!!(4&W);U.verticallyStripe=!!(8&W);U.predictableTermination=!!(16&W);U.segmentationSymbolUsed=!!(32&W);U.reversibleTransformation=t[v++];if(U.entropyCoderWithCustomPrecincts){for(var $=[];v<y+m;){var q=t[v++];$.push({PPx:15&q,PPy:q>>4})}U.precinctsSizes=$}var X=[];U.selectiveArithmeticCodingBypass&&X.push("selectiveArithmeticCodingBypass");U.resetContextProbabilities&&X.push("resetContextProbabilities");U.terminationOnEachCodingPass&&X.push("terminationOnEachCodingPass");U.verticallyStripe&&X.push("verticallyStripe");U.predictableTermination&&X.push("predictableTermination");if(X.length>0){d=!0;(0,l.warn)("JPX: Unsupported COD options (".concat(X.join(", "),")."))}if(u.mainHeader)u.COD=U;else{u.currentTile.COD=U;u.currentTile.COC=[]}break;case 65424:y=(0,c.readUint16)(t,m);(w={}).index=(0,c.readUint16)(t,m+2);w.length=(0,c.readUint32)(t,m+4);w.dataEnd=w.length+m-2;w.partIndex=t[m+8];w.partsCount=t[m+9];u.mainHeader=!1;if(0===w.partIndex){w.COD=u.COD;w.COC=u.COC.slice(0);w.QCD=u.QCD;w.QCC=u.QCC.slice(0)}u.currentTile=w;break;case 65427:if(0===(w=u.currentTile).partIndex){initializeTile(u,w.index);buildPackets(u)}parseTilePackets(u,t,m,y=w.dataEnd-m);break;case 65363:(0,l.warn)("JPX: Codestream code 0xFF53 (COC) is not implemented.");case 65365:case 65367:case 65368:case 65380:y=(0,c.readUint16)(t,m);break;default:throw new Error("Unknown codestream code: "+g.toString(16))}m+=y}}catch(t){if(d||this.failOnCorruptedImage)throw new h(t.message);(0,l.warn)('JPX: Trying to recover from: "'.concat(t.message,'".'))}this.tiles=function transformComponents(t){for(var r=t.SIZ,o=t.components,l=r.Csiz,c=[],u=0,h=t.tiles.length;u<h;u++){for(var d=t.tiles[u],m=[],g=0;g<l;g++)m[g]=transformTile(t,d,g);var y=m[0],v=new Uint8ClampedArray(y.items.length*l),S={left:y.left,top:y.top,width:y.width,height:y.height,items:v},_=void 0,k=void 0,C=0,w=void 0,x=void 0,O=void 0,T=void 0,R=void 0;if(d.codingStyleDefaultParameters.multipleComponentTransform){var E=4===l,M=m[0].items,D=m[1].items,j=m[2].items,L=E?m[3].items:null;k=.5+(128<<(_=o[0].precision-8));var N=d.components[0],U=l-3;x=M.length;if(N.codingStyleParameters.reversibleTransformation)for(w=0;w<x;w++,C+=U){O=M[w]+k;T=D[w];var H=O-((R=j[w])+T>>2);v[C++]=H+R>>_;v[C++]=H>>_;v[C++]=H+T>>_}else for(w=0;w<x;w++,C+=U){O=M[w]+k;T=D[w];R=j[w];v[C++]=O+1.402*R>>_;v[C++]=O-.34413*T-.71414*R>>_;v[C++]=O+1.772*T>>_}if(E)for(w=0,C=3;w<x;w++,C+=4)v[C]=L[w]+k>>_}else for(var W=0;W<l;W++){var $=m[W].items;k=.5+(128<<(_=o[W].precision-8));for(C=W,w=0,x=$.length;w<x;w++){v[C]=$[w]+k>>_;C+=l}}c.push(S)}return c}(u);this.width=u.SIZ.Xsiz-u.SIZ.XOsiz;this.height=u.SIZ.Ysiz-u.SIZ.YOsiz;this.componentsCount=u.SIZ.Csiz}}]);return JpxImage}();r.JpxImage=m;function calculateComponentDimensions(t,r){t.x0=Math.ceil(r.XOsiz/t.XRsiz);t.x1=Math.ceil(r.Xsiz/t.XRsiz);t.y0=Math.ceil(r.YOsiz/t.YRsiz);t.y1=Math.ceil(r.Ysiz/t.YRsiz);t.width=t.x1-t.x0;t.height=t.y1-t.y0}function calculateTileGrids(t,r){for(var o,l=t.SIZ,c=[],u=Math.ceil((l.Xsiz-l.XTOsiz)/l.XTsiz),h=Math.ceil((l.Ysiz-l.YTOsiz)/l.YTsiz),d=0;d<h;d++)for(var m=0;m<u;m++){(o={}).tx0=Math.max(l.XTOsiz+m*l.XTsiz,l.XOsiz);o.ty0=Math.max(l.YTOsiz+d*l.YTsiz,l.YOsiz);o.tx1=Math.min(l.XTOsiz+(m+1)*l.XTsiz,l.Xsiz);o.ty1=Math.min(l.YTOsiz+(d+1)*l.YTsiz,l.Ysiz);o.width=o.tx1-o.tx0;o.height=o.ty1-o.ty0;o.components=[];c.push(o)}t.tiles=c;for(var g=0,y=l.Csiz;g<y;g++)for(var v=r[g],S=0,_=c.length;S<_;S++){var k={};o=c[S];k.tcx0=Math.ceil(o.tx0/v.XRsiz);k.tcy0=Math.ceil(o.ty0/v.YRsiz);k.tcx1=Math.ceil(o.tx1/v.XRsiz);k.tcy1=Math.ceil(o.ty1/v.YRsiz);k.width=k.tcx1-k.tcx0;k.height=k.tcy1-k.tcy0;o.components[g]=k}}function getBlocksDimensions(t,r,o){var l=r.codingStyleParameters,c={};if(l.entropyCoderWithCustomPrecincts){c.PPx=l.precinctsSizes[o].PPx;c.PPy=l.precinctsSizes[o].PPy}else{c.PPx=15;c.PPy=15}c.xcb_=o>0?Math.min(l.xcb,c.PPx-1):Math.min(l.xcb,c.PPx);c.ycb_=o>0?Math.min(l.ycb,c.PPy-1):Math.min(l.ycb,c.PPy);return c}function buildPrecincts(t,r,o){var l=1<<o.PPx,c=1<<o.PPy,u=0===r.resLevel,h=1<<o.PPx+(u?0:-1),d=1<<o.PPy+(u?0:-1),m=r.trx1>r.trx0?Math.ceil(r.trx1/l)-Math.floor(r.trx0/l):0,g=r.try1>r.try0?Math.ceil(r.try1/c)-Math.floor(r.try0/c):0,y=m*g;r.precinctParameters={precinctWidth:l,precinctHeight:c,numprecinctswide:m,numprecinctshigh:g,numprecincts:y,precinctWidthInSubband:h,precinctHeightInSubband:d}}function buildCodeblocks(t,r,o){var l,c,u,h,d=o.xcb_,m=o.ycb_,g=1<<d,y=1<<m,v=r.tbx0>>d,S=r.tby0>>m,_=r.tbx1+g-1>>d,k=r.tby1+y-1>>m,C=r.resolution.precinctParameters,w=[],x=[];for(c=S;c<k;c++)for(l=v;l<_;l++){(u={cbx:l,cby:c,tbx0:g*l,tby0:y*c,tbx1:g*(l+1),tby1:y*(c+1)}).tbx0_=Math.max(r.tbx0,u.tbx0);u.tby0_=Math.max(r.tby0,u.tby0);u.tbx1_=Math.min(r.tbx1,u.tbx1);u.tby1_=Math.min(r.tby1,u.tby1);h=Math.floor((u.tbx0_-r.tbx0)/C.precinctWidthInSubband)+Math.floor((u.tby0_-r.tby0)/C.precinctHeightInSubband)*C.numprecinctswide;u.precinctNumber=h;u.subbandType=r.type;u.Lblock=3;if(!(u.tbx1_<=u.tbx0_||u.tby1_<=u.tby0_)){w.push(u);var O=x[h];if(void 0!==O){l<O.cbxMin?O.cbxMin=l:l>O.cbxMax&&(O.cbxMax=l);c<O.cbyMin?O.cbxMin=c:c>O.cbyMax&&(O.cbyMax=c)}else x[h]=O={cbxMin:l,cbyMin:c,cbxMax:l,cbyMax:c};u.precinct=O}}r.codeblockParameters={codeblockWidth:d,codeblockHeight:m,numcodeblockwide:_-v+1,numcodeblockhigh:k-S+1};r.codeblocks=w;r.precincts=x}function createPacket(t,r,o){for(var l=[],c=t.subbands,u=0,h=c.length;u<h;u++)for(var d=c[u].codeblocks,m=0,g=d.length;m<g;m++){var y=d[m];y.precinctNumber===r&&l.push(y)}return{layerNumber:o,codeblocks:l}}function LayerResolutionComponentPositionIterator(t){for(var r=t.SIZ,o=t.currentTile.index,l=t.tiles[o],c=l.codingStyleDefaultParameters.layersCount,u=r.Csiz,d=0,m=0;m<u;m++)d=Math.max(d,l.components[m].codingStyleParameters.decompositionLevelsCount);var g=0,y=0,v=0,S=0;this.nextPacket=function JpxImage_nextPacket(){for(;g<c;g++){for(;y<=d;y++){for(;v<u;v++){var t=l.components[v];if(!(y>t.codingStyleParameters.decompositionLevelsCount)){for(var r=t.resolutions[y],o=r.precinctParameters.numprecincts;S<o;){var m=createPacket(r,S,g);S++;return m}S=0}}v=0}y=0}throw new h("Out of packets")}}function ResolutionLayerComponentPositionIterator(t){for(var r=t.SIZ,o=t.currentTile.index,l=t.tiles[o],c=l.codingStyleDefaultParameters.layersCount,u=r.Csiz,d=0,m=0;m<u;m++)d=Math.max(d,l.components[m].codingStyleParameters.decompositionLevelsCount);var g=0,y=0,v=0,S=0;this.nextPacket=function JpxImage_nextPacket(){for(;g<=d;g++){for(;y<c;y++){for(;v<u;v++){var t=l.components[v];if(!(g>t.codingStyleParameters.decompositionLevelsCount)){for(var r=t.resolutions[g],o=r.precinctParameters.numprecincts;S<o;){var m=createPacket(r,S,y);S++;return m}S=0}}v=0}y=0}throw new h("Out of packets")}}function ResolutionPositionComponentLayerIterator(t){var r,o,l,c,u=t.SIZ,d=t.currentTile.index,m=t.tiles[d],g=m.codingStyleDefaultParameters.layersCount,y=u.Csiz,v=0;for(l=0;l<y;l++){var S=m.components[l];v=Math.max(v,S.codingStyleParameters.decompositionLevelsCount)}var _=new Int32Array(v+1);for(o=0;o<=v;++o){var k=0;for(l=0;l<y;++l){var C=m.components[l].resolutions;o<C.length&&(k=Math.max(k,C[o].precinctParameters.numprecincts))}_[o]=k}r=0;o=0;l=0;c=0;this.nextPacket=function JpxImage_nextPacket(){for(;o<=v;o++){for(;c<_[o];c++){for(;l<y;l++){var t=m.components[l];if(!(o>t.codingStyleParameters.decompositionLevelsCount)){var u=t.resolutions[o],d=u.precinctParameters.numprecincts;if(!(c>=d)){for(;r<g;){var S=createPacket(u,c,r);r++;return S}r=0}}}l=0}c=0}throw new h("Out of packets")}}function PositionComponentResolutionLayerIterator(t){var r=t.SIZ,o=t.currentTile.index,l=t.tiles[o],c=l.codingStyleDefaultParameters.layersCount,u=r.Csiz,d=getPrecinctSizesInImageScale(l),m=d,g=0,y=0,v=0,S=0,_=0;this.nextPacket=function JpxImage_nextPacket(){for(;_<m.maxNumHigh;_++){for(;S<m.maxNumWide;S++){for(;v<u;v++){for(var t=l.components[v],r=t.codingStyleParameters.decompositionLevelsCount;y<=r;y++){var o=t.resolutions[y],k=d.components[v].resolutions[y],C=getPrecinctIndexIfExist(S,_,k,m,o);if(null!==C){for(;g<c;){var w=createPacket(o,C,g);g++;return w}g=0}}y=0}v=0}S=0}throw new h("Out of packets")}}function ComponentPositionResolutionLayerIterator(t){var r=t.SIZ,o=t.currentTile.index,l=t.tiles[o],c=l.codingStyleDefaultParameters.layersCount,u=r.Csiz,d=getPrecinctSizesInImageScale(l),m=0,g=0,y=0,v=0,S=0;this.nextPacket=function JpxImage_nextPacket(){for(;y<u;++y){for(var t=l.components[y],r=d.components[y],o=t.codingStyleParameters.decompositionLevelsCount;S<r.maxNumHigh;S++){for(;v<r.maxNumWide;v++){for(;g<=o;g++){var _=t.resolutions[g],k=r.resolutions[g],C=getPrecinctIndexIfExist(v,S,k,r,_);if(null!==C){for(;m<c;){var w=createPacket(_,C,m);m++;return w}m=0}}g=0}v=0}S=0}throw new h("Out of packets")}}function getPrecinctIndexIfExist(t,r,o,l,c){var u=t*l.minWidth,h=r*l.minHeight;if(u%o.width!=0||h%o.height!=0)return null;var d=h/o.width*c.precinctParameters.numprecinctswide;return u/o.height+d}function getPrecinctSizesInImageScale(t){for(var r=t.components.length,o=Number.MAX_VALUE,l=Number.MAX_VALUE,c=0,u=0,h=new Array(r),d=0;d<r;d++){for(var m=t.components[d],g=m.codingStyleParameters.decompositionLevelsCount,y=new Array(g+1),v=Number.MAX_VALUE,S=Number.MAX_VALUE,_=0,k=0,C=1,w=g;w>=0;--w){var x=m.resolutions[w],O=C*x.precinctParameters.precinctWidth,T=C*x.precinctParameters.precinctHeight;v=Math.min(v,O);S=Math.min(S,T);_=Math.max(_,x.precinctParameters.numprecinctswide);k=Math.max(k,x.precinctParameters.numprecinctshigh);y[w]={width:O,height:T};C<<=1}o=Math.min(o,v);l=Math.min(l,S);c=Math.max(c,_);u=Math.max(u,k);h[d]={resolutions:y,minWidth:v,minHeight:S,maxNumWide:_,maxNumHigh:k}}return{components:h,minWidth:o,minHeight:l,maxNumWide:c,maxNumHigh:u}}function buildPackets(t){for(var r=t.SIZ,o=t.currentTile.index,l=t.tiles[o],c=r.Csiz,u=0;u<c;u++){for(var d=l.components[u],m=d.codingStyleParameters.decompositionLevelsCount,g=[],y=[],v=0;v<=m;v++){var S=getBlocksDimensions(0,d,v),_={},k=1<<m-v;_.trx0=Math.ceil(d.tcx0/k);_.try0=Math.ceil(d.tcy0/k);_.trx1=Math.ceil(d.tcx1/k);_.try1=Math.ceil(d.tcy1/k);_.resLevel=v;buildPrecincts(0,_,S);g.push(_);var C=void 0;if(0===v){(C={}).type="LL";C.tbx0=Math.ceil(d.tcx0/k);C.tby0=Math.ceil(d.tcy0/k);C.tbx1=Math.ceil(d.tcx1/k);C.tby1=Math.ceil(d.tcy1/k);C.resolution=_;buildCodeblocks(0,C,S);y.push(C);_.subbands=[C]}else{var w=1<<m-v+1,x=[];(C={}).type="HL";C.tbx0=Math.ceil(d.tcx0/w-.5);C.tby0=Math.ceil(d.tcy0/w);C.tbx1=Math.ceil(d.tcx1/w-.5);C.tby1=Math.ceil(d.tcy1/w);C.resolution=_;buildCodeblocks(0,C,S);y.push(C);x.push(C);(C={}).type="LH";C.tbx0=Math.ceil(d.tcx0/w);C.tby0=Math.ceil(d.tcy0/w-.5);C.tbx1=Math.ceil(d.tcx1/w);C.tby1=Math.ceil(d.tcy1/w-.5);C.resolution=_;buildCodeblocks(0,C,S);y.push(C);x.push(C);(C={}).type="HH";C.tbx0=Math.ceil(d.tcx0/w-.5);C.tby0=Math.ceil(d.tcy0/w-.5);C.tbx1=Math.ceil(d.tcx1/w-.5);C.tby1=Math.ceil(d.tcy1/w-.5);C.resolution=_;buildCodeblocks(0,C,S);y.push(C);x.push(C);_.subbands=x}}d.resolutions=g;d.subbands=y}var O=l.codingStyleDefaultParameters.progressionOrder;switch(O){case 0:l.packetsIterator=new LayerResolutionComponentPositionIterator(t);break;case 1:l.packetsIterator=new ResolutionLayerComponentPositionIterator(t);break;case 2:l.packetsIterator=new ResolutionPositionComponentLayerIterator(t);break;case 3:l.packetsIterator=new PositionComponentResolutionLayerIterator(t);break;case 4:l.packetsIterator=new ComponentPositionResolutionLayerIterator(t);break;default:throw new h("Unsupported progression order ".concat(O))}}function parseTilePackets(t,r,o,l){var u,d=0,m=0,v=!1;function readBits(t){for(;m<t;){var l=r[o+d];d++;if(v){u=u<<7|l;m+=7;v=!1}else{u=u<<8|l;m+=8}255===l&&(v=!0)}return u>>>(m-=t)&(1<<t)-1}function skipMarkerIfEqual(t){if(255===r[o+d-1]&&r[o+d]===t){skipBytes(1);return!0}if(255===r[o+d]&&r[o+d+1]===t){skipBytes(2);return!0}return!1}function skipBytes(t){d+=t}function alignToByte(){m=0;if(v){d++;v=!1}}function readCodingpasses(){if(0===readBits(1))return 1;if(0===readBits(1))return 2;var t=readBits(2);return t<3?t+3:(t=readBits(5))<31?t+6:(t=readBits(7))+37}for(var S=t.currentTile.index,_=t.tiles[S],k=t.COD.sopMarkerUsed,C=t.COD.ephMarkerUsed,w=_.packetsIterator;d<l;){alignToByte();k&&skipMarkerIfEqual(145)&&skipBytes(4);var x=w.nextPacket();if(readBits(1)){for(var O=x.layerNumber,T=[],R=void 0,E=0,M=x.codeblocks.length;E<M;E++){var D=(R=x.codeblocks[E]).precinct,j=R.cbx-D.cbxMin,L=R.cby-D.cbyMin,N=!1,U=!1,H=void 0;if(void 0!==R.included)N=!!readBits(1);else{var W=void 0;if(void 0!==(D=R.precinct).inclusionTree)W=D.inclusionTree;else{var $=D.cbxMax-D.cbxMin+1,q=D.cbyMax-D.cbyMin+1;W=new y($,q,O);H=new g($,q);D.inclusionTree=W;D.zeroBitPlanesTree=H;for(var X=0;X<O;X++)if(0!==readBits(1))throw new h("Invalid tag tree")}if(W.reset(j,L,O))for(;;){if(!readBits(1)){W.incrementValue(O);break}if(!W.nextLevel()){R.included=!0;N=U=!0;break}}}if(N){if(U){(H=D.zeroBitPlanesTree).reset(j,L);for(;;)if(readBits(1)){if(!H.nextLevel())break}else H.incrementValue();R.zeroBitPlanes=H.value}for(var z=readCodingpasses();readBits(1);)R.Lblock++;var G=(0,c.log2)(z),V=readBits((z<1<<G?G-1:G)+R.Lblock);T.push({codeblock:R,codingpasses:z,dataLength:V})}}alignToByte();C&&skipMarkerIfEqual(146);for(;T.length>0;){var Y=T.shift();void 0===(R=Y.codeblock).data&&(R.data=[]);R.data.push({data:r,start:o+d,end:o+d+Y.dataLength,codingpasses:Y.codingpasses});d+=Y.dataLength}}}return d}function copyCoefficients(t,r,o,l,c,h,d,m){for(var g=l.tbx0,y=l.tby0,S=l.tbx1-l.tbx0,_=l.codeblocks,k="H"===l.type.charAt(0)?1:0,C="H"===l.type.charAt(1)?r:0,w=0,x=_.length;w<x;++w){var O=_[w],T=O.tbx1_-O.tbx0_,R=O.tby1_-O.tby0_;if(0!==T&&0!==R&&void 0!==O.data){var E=new v(T,R,O.subbandType,O.zeroBitPlanes,h),M=2,D=O.data,j=0,L=0,N=void 0,U=void 0,H=void 0;for(N=0,U=D.length;N<U;N++){j+=(H=D[N]).end-H.start;L+=H.codingpasses}var W=new Uint8Array(j),$=0;for(N=0,U=D.length;N<U;N++){var q=(H=D[N]).data.subarray(H.start,H.end);W.set(q,$);$+=q.length}var X=new u.ArithmeticDecoder(W,0,j);E.setDecoder(X);for(N=0;N<L;N++){switch(M){case 0:E.runSignificancePropagationPass();break;case 1:E.runMagnitudeRefinementPass();break;case 2:E.runCleanupPass();m&&E.checkSegmentationSymbol()}M=(M+1)%3}var z=O.tbx0_-g+(O.tby0_-y)*S,G=E.coefficentsSign,V=E.coefficentsMagnitude,Y=E.bitsDecoded,K=d?0:.5,J=void 0,Q=void 0,Z=void 0;$=0;var ee="LL"!==l.type;for(N=0;N<R;N++){var te=2*(z/S|0)*(r-S)+k+C;for(J=0;J<T;J++){if(0!==(Q=V[$])){Q=(Q+K)*c;0!==G[$]&&(Q=-Q);Z=Y[$];var re=ee?te+(z<<1):z;t[re]=d&&Z>=h?Q:Q*(1<<h-Z)}z++;$++}z+=S-T}}}}function transformTile(t,r,o){for(var l=r.components[o],c=l.codingStyleParameters,u=l.quantizationParameters,h=c.decompositionLevelsCount,m=u.SPqcds,g=u.scalarExpounded,y=u.guardBits,v=c.segmentationSymbolUsed,S=t.components[o].precision,C=c.reversibleTransformation,w=C?new k:new _,x=[],O=0,T=0;T<=h;T++){for(var R=l.resolutions[T],E=R.trx1-R.trx0,M=R.try1-R.try0,D=new Float32Array(E*M),j=0,L=R.subbands.length;j<L;j++){var N=void 0,U=void 0;if(g){N=m[O].mu;U=m[O].epsilon;O++}else{N=m[0].mu;U=m[0].epsilon+(T>0?1-T:0)}var H=R.subbands[j],W=d[H.type];copyCoefficients(D,E,0,H,C?1:Math.pow(2,S+W-U)*(1+N/2048),y+U-1,C,v)}x.push({width:E,height:M,items:D})}var $=w.calculate(x,l.tcx0,l.tcy0);return{left:l.tcx0,top:l.tcy0,width:$.width,height:$.height,items:$.items}}function initializeTile(t,r){for(var o=t.SIZ.Csiz,l=t.tiles[r],c=0;c<o;c++){var u=l.components[c],h=void 0!==t.currentTile.QCC[c]?t.currentTile.QCC[c]:t.currentTile.QCD;u.quantizationParameters=h;var d=void 0!==t.currentTile.COC[c]?t.currentTile.COC[c]:t.currentTile.COD;u.codingStyleParameters=d}l.codingStyleDefaultParameters=t.currentTile.COD}var g=function(){function TagTree(t,r){_classCallCheck(this,TagTree);var o=(0,c.log2)(Math.max(t,r))+1;this.levels=[];for(var l=0;l<o;l++){var u={width:t,height:r,items:[]};this.levels.push(u);t=Math.ceil(t/2);r=Math.ceil(r/2)}}_createClass(TagTree,[{key:"reset",value:function reset(t,r){for(var o,l=0,c=0;l<this.levels.length;){var u=t+r*(o=this.levels[l]).width;if(void 0!==o.items[u]){c=o.items[u];break}o.index=u;t>>=1;r>>=1;l++}l--;(o=this.levels[l]).items[o.index]=c;this.currentLevel=l;delete this.value}},{key:"incrementValue",value:function incrementValue(){var t=this.levels[this.currentLevel];t.items[t.index]++}},{key:"nextLevel",value:function nextLevel(){var t=this.currentLevel,r=this.levels[t],o=r.items[r.index];if(--t<0){this.value=o;return!1}this.currentLevel=t;(r=this.levels[t]).items[r.index]=o;return!0}}]);return TagTree}(),y=function(){function InclusionTree(t,r,o){_classCallCheck(this,InclusionTree);var l=(0,c.log2)(Math.max(t,r))+1;this.levels=[];for(var u=0;u<l;u++){for(var h=new Uint8Array(t*r),d=0,m=h.length;d<m;d++)h[d]=o;var g={width:t,height:r,items:h};this.levels.push(g);t=Math.ceil(t/2);r=Math.ceil(r/2)}}_createClass(InclusionTree,[{key:"reset",value:function reset(t,r,o){for(var l=0;l<this.levels.length;){var c=this.levels[l],u=t+r*c.width;c.index=u;var h=c.items[u];if(255===h)break;if(h>o){this.currentLevel=l;this.propagateValues();return!1}t>>=1;r>>=1;l++}this.currentLevel=l-1;return!0}},{key:"incrementValue",value:function incrementValue(t){var r=this.levels[this.currentLevel];r.items[r.index]=t+1;this.propagateValues()}},{key:"propagateValues",value:function propagateValues(){for(var t=this.currentLevel,r=this.levels[t],o=r.items[r.index];--t>=0;)(r=this.levels[t]).items[r.index]=o}},{key:"nextLevel",value:function nextLevel(){var t=this.currentLevel,r=this.levels[t],o=r.items[r.index];r.items[r.index]=255;if(--t<0)return!1;this.currentLevel=t;(r=this.levels[t]).items[r.index]=o;return!0}}]);return InclusionTree}(),v=function BitModelClosure(){var t=17,r=new Uint8Array([0,5,8,0,3,7,8,0,4,7,8,0,0,0,0,0,1,6,8,0,3,7,8,0,4,7,8,0,0,0,0,0,2,6,8,0,3,7,8,0,4,7,8,0,0,0,0,0,2,6,8,0,3,7,8,0,4,7,8,0,0,0,0,0,2,6,8,0,3,7,8,0,4,7,8]),o=new Uint8Array([0,3,4,0,5,7,7,0,8,8,8,0,0,0,0,0,1,3,4,0,6,7,7,0,8,8,8,0,0,0,0,0,2,3,4,0,6,7,7,0,8,8,8,0,0,0,0,0,2,3,4,0,6,7,7,0,8,8,8,0,0,0,0,0,2,3,4,0,6,7,7,0,8,8,8]),l=new Uint8Array([0,1,2,0,1,2,2,0,2,2,2,0,0,0,0,0,3,4,5,0,4,5,5,0,5,5,5,0,0,0,0,0,6,7,7,0,7,7,7,0,7,7,7,0,0,0,0,0,8,8,8,0,8,8,8,0,8,8,8,0,0,0,0,0,8,8,8,0,8,8,8,0,8,8,8]);return function(){function BitModel(t,c,u,h,d){_classCallCheck(this,BitModel);this.width=t;this.height=c;var m;m="HH"===u?l:"HL"===u?o:r;this.contextLabelTable=m;var g,y=t*c;this.neighborsSignificance=new Uint8Array(y);this.coefficentsSign=new Uint8Array(y);g=d>14?new Uint32Array(y):d>6?new Uint16Array(y):new Uint8Array(y);this.coefficentsMagnitude=g;this.processingFlags=new Uint8Array(y);var v=new Uint8Array(y);if(0!==h)for(var S=0;S<y;S++)v[S]=h;this.bitsDecoded=v;this.reset()}_createClass(BitModel,[{key:"setDecoder",value:function setDecoder(t){this.decoder=t}},{key:"reset",value:function reset(){this.contexts=new Int8Array(19);this.contexts[0]=8;this.contexts[17]=92;this.contexts[18]=6}},{key:"setNeighborsSignificance",value:function setNeighborsSignificance(t,r,o){var l,c=this.neighborsSignificance,u=this.width,h=this.height,d=r>0,m=r+1<u;if(t>0){l=o-u;d&&(c[l-1]+=16);m&&(c[l+1]+=16);c[l]+=4}if(t+1<h){l=o+u;d&&(c[l-1]+=16);m&&(c[l+1]+=16);c[l]+=4}d&&(c[o-1]+=1);m&&(c[o+1]+=1);c[o]|=128}},{key:"runSignificancePropagationPass",value:function runSignificancePropagationPass(){for(var t=this.decoder,r=this.width,o=this.height,l=this.coefficentsMagnitude,c=this.coefficentsSign,u=this.neighborsSignificance,h=this.processingFlags,d=this.contexts,m=this.contextLabelTable,g=this.bitsDecoded,y=0;y<o;y+=4)for(var v=0;v<r;v++)for(var S=y*r+v,_=0;_<4;_++,S+=r){var k=y+_;if(k>=o)break;h[S]&=-2;if(!l[S]&&u[S]){var C=m[u[S]];if(t.readBit(d,C)){var w=this.decodeSignBit(k,v,S);c[S]=w;l[S]=1;this.setNeighborsSignificance(k,v,S);h[S]|=2}g[S]++;h[S]|=1}}}},{key:"decodeSignBit",value:function decodeSignBit(t,r,o){var l,c,u,h,d,m,g=this.width,y=this.height,v=this.coefficentsMagnitude,S=this.coefficentsSign;h=r>0&&0!==v[o-1];if(r+1<g&&0!==v[o+1]){u=S[o+1];l=h?1-u-(c=S[o-1]):1-u-u}else l=h?1-(c=S[o-1])-c:0;var _=3*l;h=t>0&&0!==v[o-g];if(t+1<y&&0!==v[o+g]){u=S[o+g];l=h?1-u-(c=S[o-g])+_:1-u-u+_}else l=h?1-(c=S[o-g])-c+_:_;if(l>=0){d=9+l;m=this.decoder.readBit(this.contexts,d)}else{d=9-l;m=1^this.decoder.readBit(this.contexts,d)}return m}},{key:"runMagnitudeRefinementPass",value:function runMagnitudeRefinementPass(){for(var t,r=this.decoder,o=this.width,l=this.height,c=this.coefficentsMagnitude,u=this.neighborsSignificance,h=this.contexts,d=this.bitsDecoded,m=this.processingFlags,g=o*l,y=4*o,v=0;v<g;v=t){t=Math.min(g,v+y);for(var S=0;S<o;S++)for(var _=v+S;_<t;_+=o)if(c[_]&&0==(1&m[_])){var k=16;if(0!=(2&m[_])){m[_]^=2;k=0===(127&u[_])?15:14}var C=r.readBit(h,k);c[_]=c[_]<<1|C;d[_]++;m[_]|=1}}}},{key:"runCleanupPass",value:function runCleanupPass(){for(var r,o=this.decoder,l=this.width,c=this.height,u=this.neighborsSignificance,h=this.coefficentsMagnitude,d=this.coefficentsSign,m=this.contexts,g=this.contextLabelTable,y=this.bitsDecoded,v=this.processingFlags,S=l,_=2*l,k=3*l,C=0;C<c;C=r){r=Math.min(C+4,c);for(var w=C*l,x=C+3<c,O=0;O<l;O++){var T=w+O,R=0,E=T,M=C,D=void 0;if(x&&0===v[T]&&0===v[T+S]&&0===v[T+_]&&0===v[T+k]&&0===u[T]&&0===u[T+S]&&0===u[T+_]&&0===u[T+k]){if(!o.readBit(m,18)){y[T]++;y[T+S]++;y[T+_]++;y[T+k]++;continue}if(0!==(R=o.readBit(m,t)<<1|o.readBit(m,t))){M=C+R;E+=R*l}D=this.decodeSignBit(M,O,E);d[E]=D;h[E]=1;this.setNeighborsSignificance(M,O,E);v[E]|=2;E=T;for(var j=C;j<=M;j++,E+=l)y[E]++;R++}for(M=C+R;M<r;M++,E+=l)if(!h[E]&&0==(1&v[E])){var L=g[u[E]];if(1===o.readBit(m,L)){D=this.decodeSignBit(M,O,E);d[E]=D;h[E]=1;this.setNeighborsSignificance(M,O,E);v[E]|=2}y[E]++}}}}},{key:"checkSegmentationSymbol",value:function checkSegmentationSymbol(){var r=this.decoder,o=this.contexts;if(10!==(r.readBit(o,t)<<3|r.readBit(o,t)<<2|r.readBit(o,t)<<1|r.readBit(o,t)))throw new h("Invalid segmentation symbol")}}]);return BitModel}()}(),S=function(){function Transform(){_classCallCheck(this,Transform);this.constructor===Transform&&(0,l.unreachable)("Cannot initialize Transform.")}_createClass(Transform,[{key:"calculate",value:function calculate(t,r,o){for(var l=t[0],c=1,u=t.length;c<u;c++)l=this.iterate(l,t[c],r,o);return l}},{key:"extend",value:function extend(t,r,o){var l=r-1,c=r+1,u=r+o-2,h=r+o;t[l--]=t[c++];t[h++]=t[u--];t[l--]=t[c++];t[h++]=t[u--];t[l--]=t[c++];t[h++]=t[u--];t[l]=t[c];t[h]=t[u]}},{key:"filter",value:function filter(t,r,o){(0,l.unreachable)("Abstract method `filter` called")}},{key:"iterate",value:function iterate(t,r,o,l){var c,u,h,d,m,g,y=t.width,v=t.height,S=t.items,_=r.width,k=r.height,C=r.items;for(h=0,c=0;c<v;c++){d=2*c*_;for(u=0;u<y;u++,h++,d+=2)C[d]=S[h]}S=t.items=null;var w=new Float32Array(_+8);if(1===_){if(0!=(1&o))for(g=0,h=0;g<k;g++,h+=_)C[h]*=.5}else for(g=0,h=0;g<k;g++,h+=_){w.set(C.subarray(h,h+_),4);this.extend(w,4,_);this.filter(w,4,_);C.set(w.subarray(4,4+_),h)}var x=16,O=[];for(c=0;c<x;c++)O.push(new Float32Array(k+8));var T,R=0;t=4+k;if(1===k){if(0!=(1&l))for(m=0;m<_;m++)C[m]*=.5}else for(m=0;m<_;m++){if(0===R){x=Math.min(_-m,x);for(h=m,d=4;d<t;h+=_,d++)for(T=0;T<x;T++)O[T][d]=C[h+T];R=x}var E=O[--R];this.extend(E,4,k);this.filter(E,4,k);if(0===R){h=m-x+1;for(d=4;d<t;h+=_,d++)for(T=0;T<x;T++)C[h+T]=O[T][d]}}return{width:_,height:k,items:C}}}]);return Transform}(),_=function(t){_inherits(IrreversibleTransform,t);var r=_createSuper(IrreversibleTransform);function IrreversibleTransform(){_classCallCheck(this,IrreversibleTransform);return r.apply(this,arguments)}_createClass(IrreversibleTransform,[{key:"filter",value:function filter(t,r,o){var l,c,u,h,d=o>>1,m=-1.586134342059924,g=-.052980118572961,y=.882911075530934,v=.443506852043971,S=1.230174104914001;l=(r|=0)-3;for(c=d+4;c--;l+=2)t[l]*=.8128930661159609;u=v*t[(l=r-2)-1];for(c=d+3;c--;l+=2){h=v*t[l+1];t[l]=S*t[l]-u-h;if(!c--)break;u=v*t[(l+=2)+1];t[l]=S*t[l]-u-h}u=y*t[(l=r-1)-1];for(c=d+2;c--;l+=2){h=y*t[l+1];t[l]-=u+h;if(!c--)break;u=y*t[(l+=2)+1];t[l]-=u+h}u=g*t[(l=r)-1];for(c=d+1;c--;l+=2){h=g*t[l+1];t[l]-=u+h;if(!c--)break;u=g*t[(l+=2)+1];t[l]-=u+h}if(0!==d){u=m*t[(l=r+1)-1];for(c=d;c--;l+=2){h=m*t[l+1];t[l]-=u+h;if(!c--)break;u=m*t[(l+=2)+1];t[l]-=u+h}}}}]);return IrreversibleTransform}(S),k=function(t){_inherits(ReversibleTransform,t);var r=_createSuper(ReversibleTransform);function ReversibleTransform(){_classCallCheck(this,ReversibleTransform);return r.apply(this,arguments)}_createClass(ReversibleTransform,[{key:"filter",value:function filter(t,r,o){var l,c,u=o>>1;for(l=r|=0,c=u+1;c--;l+=2)t[l]-=t[l-1]+t[l+1]+2>>2;for(l=r+1,c=u;c--;l+=2)t[l]+=t[l-1]+t[l+1]>>1}}]);return ReversibleTransform}(S)},(t,r,o)=>{"use strict";function _typeof(t){_typeof="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function _typeof(t){return typeof t}:function _typeof(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t};return _typeof(t)}Object.defineProperty(r,"__esModule",{value:!0});r.LZWStream=void 0;function _defineProperties(t,r){for(var o=0;o<r.length;o++){var l=r[o];l.enumerable=l.enumerable||!1;l.configurable=!0;"value"in l&&(l.writable=!0);Object.defineProperty(t,l.key,l)}}function _setPrototypeOf(t,r){_setPrototypeOf=Object.setPrototypeOf||function _setPrototypeOf(t,r){t.__proto__=r;return t};return _setPrototypeOf(t,r)}function _createSuper(t){var r=function _isNativeReflectConstruct(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){})));return!0}catch(t){return!1}}();return function _createSuperInternal(){var o,l=_getPrototypeOf(t);if(r){var c=_getPrototypeOf(this).constructor;o=Reflect.construct(l,arguments,c)}else o=l.apply(this,arguments);return _possibleConstructorReturn(this,o)}}function _possibleConstructorReturn(t,r){if(r&&("object"===_typeof(r)||"function"==typeof r))return r;if(void 0!==r)throw new TypeError("Derived constructors may only return object or undefined");return function _assertThisInitialized(t){if(void 0===t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return t}(t)}function _getPrototypeOf(t){_getPrototypeOf=Object.setPrototypeOf?Object.getPrototypeOf:function _getPrototypeOf(t){return t.__proto__||Object.getPrototypeOf(t)};return _getPrototypeOf(t)}var l=function(t){!function _inherits(t,r){if("function"!=typeof r&&null!==r)throw new TypeError("Super expression must either be null or a function");t.prototype=Object.create(r&&r.prototype,{constructor:{value:t,writable:!0,configurable:!0}});r&&_setPrototypeOf(t,r)}(LZWStream,t);var r=_createSuper(LZWStream);function LZWStream(t,o,l){var c;!function _classCallCheck(t,r){if(!(t instanceof r))throw new TypeError("Cannot call a class as a function")}(this,LZWStream);(c=r.call(this,o)).str=t;c.dict=t.dict;c.cachedData=0;c.bitsCached=0;for(var u=4096,h={earlyChange:l,codeLength:9,nextCode:258,dictionaryValues:new Uint8Array(u),dictionaryLengths:new Uint16Array(u),dictionaryPrevCodes:new Uint16Array(u),currentSequence:new Uint8Array(u),currentSequenceLength:0},d=0;d<256;++d){h.dictionaryValues[d]=d;h.dictionaryLengths[d]=1}c.lzwState=h;return c}!function _createClass(t,r,o){r&&_defineProperties(t.prototype,r);o&&_defineProperties(t,o);return t}(LZWStream,[{key:"readBits",value:function readBits(t){for(var r=this.bitsCached,o=this.cachedData;r<t;){var l=this.str.getByte();if(-1===l){this.eof=!0;return null}o=o<<8|l;r+=8}this.bitsCached=r-=t;this.cachedData=o;this.lastCode=null;return o>>>r&(1<<t)-1}},{key:"readBlock",value:function readBlock(){var t,r,o,l=1024,c=this.lzwState;if(c){var u=c.earlyChange,h=c.nextCode,d=c.dictionaryValues,m=c.dictionaryLengths,g=c.dictionaryPrevCodes,y=c.codeLength,v=c.prevCode,S=c.currentSequence,_=c.currentSequenceLength,k=0,C=this.bufferLength,w=this.ensureBuffer(this.bufferLength+l);for(t=0;t<512;t++){var x=this.readBits(y),O=_>0;if(x<256){S[0]=x;_=1}else{if(!(x>=258)){if(256===x){y=9;h=258;_=0;continue}this.eof=!0;delete this.lzwState;break}if(x<h)for(r=(_=m[x])-1,o=x;r>=0;r--){S[r]=d[o];o=g[o]}else S[_++]=S[0]}if(O){g[h]=v;m[h]=m[v]+1;d[h]=S[0];y=++h+u&h+u-1?y:0|Math.min(Math.log(h+u)/.6931471805599453+1,12)}v=x;if(l<(k+=_)){do{l+=512}while(l<k);w=this.ensureBuffer(this.bufferLength+l)}for(r=0;r<_;r++)w[C++]=S[r]}c.nextCode=h;c.codeLength=y;c.prevCode=v;c.currentSequenceLength=_;this.bufferLength=C}}}]);return LZWStream}(o(142).DecodeStream);r.LZWStream=l},(t,r,o)=>{"use strict";function _typeof(t){_typeof="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function _typeof(t){return typeof t}:function _typeof(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t};return _typeof(t)}Object.defineProperty(r,"__esModule",{value:!0});r.PredictorStream=void 0;var l=o(142),c=o(4),u=o(118);function _defineProperties(t,r){for(var o=0;o<r.length;o++){var l=r[o];l.enumerable=l.enumerable||!1;l.configurable=!0;"value"in l&&(l.writable=!0);Object.defineProperty(t,l.key,l)}}function _setPrototypeOf(t,r){_setPrototypeOf=Object.setPrototypeOf||function _setPrototypeOf(t,r){t.__proto__=r;return t};return _setPrototypeOf(t,r)}function _createSuper(t){var r=function _isNativeReflectConstruct(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){})));return!0}catch(t){return!1}}();return function _createSuperInternal(){var o,l=_getPrototypeOf(t);if(r){var c=_getPrototypeOf(this).constructor;o=Reflect.construct(l,arguments,c)}else o=l.apply(this,arguments);return _possibleConstructorReturn(this,o)}}function _possibleConstructorReturn(t,r){if(r&&("object"===_typeof(r)||"function"==typeof r))return r;if(void 0!==r)throw new TypeError("Derived constructors may only return object or undefined");return _assertThisInitialized(t)}function _assertThisInitialized(t){if(void 0===t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return t}function _getPrototypeOf(t){_getPrototypeOf=Object.setPrototypeOf?Object.getPrototypeOf:function _getPrototypeOf(t){return t.__proto__||Object.getPrototypeOf(t)};return _getPrototypeOf(t)}var h=function(t){!function _inherits(t,r){if("function"!=typeof r&&null!==r)throw new TypeError("Super expression must either be null or a function");t.prototype=Object.create(r&&r.prototype,{constructor:{value:t,writable:!0,configurable:!0}});r&&_setPrototypeOf(t,r)}(PredictorStream,t);var r=_createSuper(PredictorStream);function PredictorStream(t,o,l){var h;!function _classCallCheck(t,r){if(!(t instanceof r))throw new TypeError("Cannot call a class as a function")}(this,PredictorStream);h=r.call(this,o);if(!(0,u.isDict)(l))return _possibleConstructorReturn(h,t);var d=h.predictor=l.get("Predictor")||1;if(d<=1)return _possibleConstructorReturn(h,t);if(2!==d&&(d<10||d>15))throw new c.FormatError("Unsupported predictor: ".concat(d));h.readBlock=2===d?h.readBlockTiff:h.readBlockPng;h.str=t;h.dict=t.dict;var m=h.colors=l.get("Colors")||1,g=h.bits=l.get("BitsPerComponent")||8,y=h.columns=l.get("Columns")||1;h.pixBytes=m*g+7>>3;h.rowBytes=y*m*g+7>>3;return _possibleConstructorReturn(h,_assertThisInitialized(h))}!function _createClass(t,r,o){r&&_defineProperties(t.prototype,r);o&&_defineProperties(t,o);return t}(PredictorStream,[{key:"readBlockTiff",value:function readBlockTiff(){var t=this.rowBytes,r=this.bufferLength,o=this.ensureBuffer(r+t),l=this.bits,c=this.colors,u=this.str.getBytes(t);this.eof=!u.length;if(!this.eof){var h,d=0,m=0,g=0,y=0,v=r;if(1===l&&1===c)for(h=0;h<t;++h){var S=u[h]^d;S^=S>>1;S^=S>>2;d=(1&(S^=S>>4))<<7;o[v++]=S}else if(8===l){for(h=0;h<c;++h)o[v++]=u[h];for(;h<t;++h){o[v]=o[v-c]+u[h];v++}}else if(16===l){var _=2*c;for(h=0;h<_;++h)o[v++]=u[h];for(;h<t;h+=2){var k=((255&u[h])<<8)+(255&u[h+1])+((255&o[v-_])<<8)+(255&o[v-_+1]);o[v++]=k>>8&255;o[v++]=255&k}}else{var C=new Uint8Array(c+1),w=(1<<l)-1,x=0,O=r,T=this.columns;for(h=0;h<T;++h)for(var R=0;R<c;++R){if(g<l){d=d<<8|255&u[x++];g+=8}C[R]=C[R]+(d>>g-l)&w;g-=l;m=m<<l|C[R];if((y+=l)>=8){o[O++]=m>>y-8&255;y-=8}}y>0&&(o[O++]=(m<<8-y)+(d&(1<<8-y)-1))}this.bufferLength+=t}}},{key:"readBlockPng",value:function readBlockPng(){var t=this.rowBytes,r=this.pixBytes,o=this.str.getByte(),l=this.str.getBytes(t);this.eof=!l.length;if(!this.eof){var u=this.bufferLength,h=this.ensureBuffer(u+t),d=h.subarray(u-t,u);0===d.length&&(d=new Uint8Array(t));var m,g,y,v=u;switch(o){case 0:for(m=0;m<t;++m)h[v++]=l[m];break;case 1:for(m=0;m<r;++m)h[v++]=l[m];for(;m<t;++m){h[v]=h[v-r]+l[m]&255;v++}break;case 2:for(m=0;m<t;++m)h[v++]=d[m]+l[m]&255;break;case 3:for(m=0;m<r;++m)h[v++]=(d[m]>>1)+l[m];for(;m<t;++m){h[v]=(d[m]+h[v-r]>>1)+l[m]&255;v++}break;case 4:for(m=0;m<r;++m){g=d[m];y=l[m];h[v++]=g+y}for(;m<t;++m){g=d[m];var S=d[m-r],_=h[v-r],k=_+g-S,C=k-_;C<0&&(C=-C);var w=k-g;w<0&&(w=-w);var x=k-S;x<0&&(x=-x);y=l[m];h[v++]=C<=w&&C<=x?_+y:w<=x?g+y:S+y}break;default:throw new c.FormatError("Unsupported predictor: ".concat(o))}this.bufferLength+=t}}}]);return PredictorStream}(l.DecodeStream);r.PredictorStream=h},(t,r,o)=>{"use strict";function _typeof(t){_typeof="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function _typeof(t){return typeof t}:function _typeof(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t};return _typeof(t)}Object.defineProperty(r,"__esModule",{value:!0});r.RunLengthStream=void 0;function _defineProperties(t,r){for(var o=0;o<r.length;o++){var l=r[o];l.enumerable=l.enumerable||!1;l.configurable=!0;"value"in l&&(l.writable=!0);Object.defineProperty(t,l.key,l)}}function _setPrototypeOf(t,r){_setPrototypeOf=Object.setPrototypeOf||function _setPrototypeOf(t,r){t.__proto__=r;return t};return _setPrototypeOf(t,r)}function _createSuper(t){var r=function _isNativeReflectConstruct(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){})));return!0}catch(t){return!1}}();return function _createSuperInternal(){var o,l=_getPrototypeOf(t);if(r){var c=_getPrototypeOf(this).constructor;o=Reflect.construct(l,arguments,c)}else o=l.apply(this,arguments);return _possibleConstructorReturn(this,o)}}function _possibleConstructorReturn(t,r){if(r&&("object"===_typeof(r)||"function"==typeof r))return r;if(void 0!==r)throw new TypeError("Derived constructors may only return object or undefined");return function _assertThisInitialized(t){if(void 0===t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return t}(t)}function _getPrototypeOf(t){_getPrototypeOf=Object.setPrototypeOf?Object.getPrototypeOf:function _getPrototypeOf(t){return t.__proto__||Object.getPrototypeOf(t)};return _getPrototypeOf(t)}var l=function(t){!function _inherits(t,r){if("function"!=typeof r&&null!==r)throw new TypeError("Super expression must either be null or a function");t.prototype=Object.create(r&&r.prototype,{constructor:{value:t,writable:!0,configurable:!0}});r&&_setPrototypeOf(t,r)}(RunLengthStream,t);var r=_createSuper(RunLengthStream);function RunLengthStream(t,o){var l;!function _classCallCheck(t,r){if(!(t instanceof r))throw new TypeError("Cannot call a class as a function")}(this,RunLengthStream);(l=r.call(this,o)).str=t;l.dict=t.dict;return l}!function _createClass(t,r,o){r&&_defineProperties(t.prototype,r);o&&_defineProperties(t,o);return t}(RunLengthStream,[{key:"readBlock",value:function readBlock(){var t=this.str.getBytes(2);if(!t||t.length<2||128===t[0])this.eof=!0;else{var r,o=this.bufferLength,l=t[0];if(l<128){(r=this.ensureBuffer(o+l+1))[o++]=t[1];if(l>0){var c=this.str.getBytes(l);r.set(c,o);o+=l}}else{l=257-l;var u=t[1];r=this.ensureBuffer(o+l+1);for(var h=0;h<l;h++)r[o++]=u}this.bufferLength=o}}}]);return RunLengthStream}(o(142).DecodeStream);r.RunLengthStream=l},(t,r,o)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});r.Font=r.ErrorFont=void 0;var l=o(4),c=o(158),u=o(131),h=o(133),d=o(132),m=o(160),g=o(134),y=o(161),v=o(162),S=o(163),_=o(164),k=o(139),C=o(165),w=o(122),x=o(123),O=o(166);function _slicedToArray(t,r){return function _arrayWithHoles(t){if(Array.isArray(t))return t}(t)||function _iterableToArrayLimit(t,r){var o=null==t?null:"undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(null==o)return;var l,c,u=[],h=!0,d=!1;try{for(o=o.call(t);!(h=(l=o.next()).done);h=!0){u.push(l.value);if(r&&u.length===r)break}}catch(t){d=!0;c=t}finally{try{h||null==o.return||o.return()}finally{if(d)throw c}}return u}(t,r)||_unsupportedIterableToArray(t,r)||function _nonIterableRest(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function _createForOfIteratorHelper(t,r){var o="undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(!o){if(Array.isArray(t)||(o=_unsupportedIterableToArray(t))||r&&t&&"number"==typeof t.length){o&&(t=o);var l=0,c=function F(){};return{s:c,n:function n(){return l>=t.length?{done:!0}:{done:!1,value:t[l++]}},e:function e(t){throw t},f:c}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var u,h=!0,d=!1;return{s:function s(){o=o.call(t)},n:function n(){var t=o.next();h=t.done;return t},e:function e(t){d=!0;u=t},f:function f(){try{h||null==o.return||o.return()}finally{if(d)throw u}}}}function _unsupportedIterableToArray(t,r){if(t){if("string"==typeof t)return _arrayLikeToArray(t,r);var o=Object.prototype.toString.call(t).slice(8,-1);"Object"===o&&t.constructor&&(o=t.constructor.name);return"Map"===o||"Set"===o?Array.from(t):"Arguments"===o||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(o)?_arrayLikeToArray(t,r):void 0}}function _arrayLikeToArray(t,r){(null==r||r>t.length)&&(r=t.length);for(var o=0,l=new Array(r);o<r;o++)l[o]=t[o];return l}function _classCallCheck(t,r){if(!(t instanceof r))throw new TypeError("Cannot call a class as a function")}function _defineProperties(t,r){for(var o=0;o<r.length;o++){var l=r[o];l.enumerable=l.enumerable||!1;l.configurable=!0;"value"in l&&(l.writable=!0);Object.defineProperty(t,l.key,l)}}function _createClass(t,r,o){r&&_defineProperties(t.prototype,r);o&&_defineProperties(t,o);return t}var T=[[57344,63743],[1048576,1114109]],R=1e3,E=["ascent","bbox","black","bold","charProcOperatorList","composite","cssFontInfo","data","defaultVMetrics","defaultWidth","descent","fallbackName","fontMatrix","fontType","isType3Font","italic","loadedName","mimetype","missingFile","name","remeasure","subtype","type","vertical"],M=["cMap","defaultEncoding","differences","isMonospace","isSerifFont","isSymbolicFont","seacMap","toFontChar","toUnicode","vmetrics","widths"];function adjustWidths(t){if(t.fontMatrix&&t.fontMatrix[0]!==l.FONT_IDENTITY_MATRIX[0]){var r=.001/t.fontMatrix[0],o=t.widths;for(var c in o)o[c]*=r;t.defaultWidth*=r}}function amendFallbackToUnicode(t){if(t.fallbackToUnicode&&!(t.toUnicode instanceof y.IdentityToUnicodeMap)){var r=[];for(var o in t.fallbackToUnicode)t.toUnicode.has(o)||(r[o]=t.fallbackToUnicode[o]);r.length>0&&t.toUnicode.amend(r)}}var D=function(){function Glyph(t,r,o,l,c,u,h,d,m){_classCallCheck(this,Glyph);this.originalCharCode=t;this.fontChar=r;this.unicode=o;this.accent=l;this.width=c;this.vmetric=u;this.operatorListId=h;this.isSpace=d;this.isInFont=m}_createClass(Glyph,[{key:"matchesForCache",value:function matchesForCache(t,r,o,l,c,u,h,d,m){return this.originalCharCode===t&&this.fontChar===r&&this.unicode===o&&this.accent===l&&this.width===c&&this.vmetric===u&&this.operatorListId===h&&this.isSpace===d&&this.isInFont===m}}]);return Glyph}();function int16(t,r){return(t<<8)+r}function writeSignedInt16(t,r,o){t[r+1]=o;t[r]=o>>>8}function signedInt16(t,r){var o=(t<<8)+r;return 32768&o?o-65536:o}function string16(t){return String.fromCharCode(t>>8&255,255&t)}function safeString16(t){t>32767?t=32767:t<-32768&&(t=-32768);return String.fromCharCode(t>>8&255,255&t)}function isTrueTypeCollectionFile(t){var r=t.peekBytes(4);return"ttcf"===(0,l.bytesToString)(r)}function getFontFileType(t,r){var o,c,u=r.type,h=r.subtype,d=r.composite;if(function isTrueTypeFile(t){var r=t.peekBytes(4);return 65536===(0,w.readUint32)(r,0)||"true"===(0,l.bytesToString)(r)}(t)||isTrueTypeCollectionFile(t))o=d?"CIDFontType2":"TrueType";else if(function isOpenTypeFile(t){var r=t.peekBytes(4);return"OTTO"===(0,l.bytesToString)(r)}(t))o=d?"CIDFontType2":"OpenType";else if(function isType1File(t){var r=t.peekBytes(2);return 37===r[0]&&33===r[1]||128===r[0]&&1===r[1]}(t))o=d?"CIDFontType0":"MMType1"===u?"MMType1":"Type1";else if(function isCFFFile(t){var r=t.peekBytes(4);return r[0]>=1&&r[3]>=1&&r[3]<=4}(t))if(d){o="CIDFontType0";c="CIDFontType0C"}else{o="MMType1"===u?"MMType1":"Type1";c="Type1C"}else{(0,l.warn)("getFontFileType: Unable to detect correct font file Type/Subtype.");o=u;c=h}return[o,c]}function applyStandardFontGlyphMap(t,r){for(var o in r)t[+o]=r[o]}function buildToFontChar(t,r,o){for(var l,c=[],u=0,h=t.length;u<h;u++)-1!==(l=(0,g.getUnicodeForGlyph)(t[u],r))&&(c[u]=l);for(var d in o)-1!==(l=(0,g.getUnicodeForGlyph)(o[d],r))&&(c[+d]=l);return c}function convertCidString(t,r){var o=arguments.length>2&&void 0!==arguments[2]&&arguments[2];switch(r.length){case 1:return r.charCodeAt(0);case 2:return r.charCodeAt(0)<<8|r.charCodeAt(1)}var c="Unsupported CID string (charCode ".concat(t,'): "').concat(r,'".');if(o)throw new l.FormatError(c);(0,l.warn)(c);return r}function adjustMapping(t,r,o){var c=Object.create(null),u=[],h=0,d=T[h][0],m=T[h][1];for(var g in t){var y=t[g|=0];if(r(y)){if(d>m){if(++h>=T.length){(0,l.warn)("Ran out of space in font private use area.");break}d=T[h][0];m=T[h][1]}var v=d++;0===y&&(y=o);c[v]=y;u[g]=v}}return{toFontChar:u,charCodeToGlyphId:c,nextAvailableFontCharCode:d}}function createCmapTable(t,r){var o,c,u,h,d=function getRanges(t,r){var o=[];for(var l in t)t[l]>=r||o.push({fontCharCode:0|l,glyphId:t[l]});0===o.length&&o.push({fontCharCode:0,glyphId:0});o.sort((function fontGetRangesSort(t,r){return t.fontCharCode-r.fontCharCode}));for(var c=[],u=o.length,h=0;h<u;){var d=o[h].fontCharCode,m=[o[h].glyphId];++h;for(var g=d;h<u&&g+1===o[h].fontCharCode;){m.push(o[h].glyphId);++h;if(65535==++g)break}c.push([d,g,m])}return c}(t,r),m=d[d.length-1][1]>65535?2:1,g="\0\0"+string16(m)+"\0\0"+(0,l.string32)(4+8*m);for(o=d.length-1;o>=0&&!(d[o][0]<=65535);--o);var y=o+1;d[o][0]<65535&&65535===d[o][1]&&(d[o][1]=65534);var v,S,_,k,w=d[o][1]<65535?1:0,x=y+w,O=C.OpenTypeFileBuilder.getSearchParams(x,2),T="",R="",E="",M="",D="",j=0;for(o=0,c=y;o<c;o++){S=(v=d[o])[0];_=v[1];T+=string16(S);R+=string16(_);var L=!0;for(u=1,h=(k=v[2]).length;u<h;++u)if(k[u]!==k[u-1]+1){L=!1;break}if(L){E+=string16(k[0]-S&65535);M+=string16(0)}else{var N=2*(x-o)+2*j;j+=_-S+1;E+=string16(0);M+=string16(N);for(u=0,h=k.length;u<h;++u)D+=string16(k[u])}}if(w>0){R+="ÿÿ";T+="ÿÿ";E+="\0";M+="\0\0"}var U="\0\0"+string16(2*x)+string16(O.range)+string16(O.entry)+string16(O.rangeShift)+R+"\0\0"+T+E+M+D,H="",W="";if(m>1){g+="\0\0\n"+(0,l.string32)(4+8*m+4+U.length);H="";for(o=0,c=d.length;o<c;o++){S=(v=d[o])[0];var $=(k=v[2])[0];for(u=1,h=k.length;u<h;++u)if(k[u]!==k[u-1]+1){_=v[0]+u-1;H+=(0,l.string32)(S)+(0,l.string32)(_)+(0,l.string32)($);S=_+1;$=k[u]}H+=(0,l.string32)(S)+(0,l.string32)(v[1])+(0,l.string32)($)}W="\0\f\0\0"+(0,l.string32)(H.length+16)+"\0\0\0\0"+(0,l.string32)(H.length/12)}return g+"\0"+string16(U.length+4)+U+W+H}function createOS2Table(t,r,o){o=o||{unitsPerEm:0,yMax:0,yMin:0,ascent:0,descent:0};var c=0,u=0,h=0,d=0,m=null,y=0;if(r){for(var v in r){(m>(v|=0)||!m)&&(m=v);y<v&&(y=v);var S=(0,g.getUnicodeRangeFor)(v);if(S<32)c|=1<<S;else if(S<64)u|=1<<S-32;else if(S<96)h|=1<<S-64;else{if(!(S<123))throw new l.FormatError("Unicode ranges Bits > 123 are reserved for internal usage");d|=1<<S-96}}y>65535&&(y=65535)}else{m=0;y=255}var _=t.bbox||[0,0,0,0],k=o.unitsPerEm||1/(t.fontMatrix||l.FONT_IDENTITY_MATRIX)[0],C=t.ascentScaled?1:k/R,w=o.ascent||Math.round(C*(t.ascent||_[3])),x=o.descent||Math.round(C*(t.descent||_[1]));x>0&&t.descent>0&&_[1]<0&&(x=-x);var O=o.yMax||w,T=-o.yMin||-x;return"\0$ô\0\0\0»\0\0\0»\0\0ß\x001\0\0\0\0"+String.fromCharCode(t.fixedPitch?9:0)+"\0\0\0\0\0\0"+(0,l.string32)(c)+(0,l.string32)(u)+(0,l.string32)(h)+(0,l.string32)(d)+"*21*"+string16(t.italicAngle?1:0)+string16(m||t.firstChar)+string16(y||t.lastChar)+string16(w)+string16(x)+"\0d"+string16(O)+string16(T)+"\0\0\0\0\0\0\0\0"+string16(t.xHeight)+string16(t.capHeight)+string16(0)+string16(m||t.firstChar)+"\0"}function createPostTable(t){var r=Math.floor(t.italicAngle*Math.pow(2,16));return"\0\0\0"+(0,l.string32)(r)+"\0\0\0\0"+(0,l.string32)(t.fixedPitch?1:0)+"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"}function createPostscriptName(t){return t.replace(/[^\x21-\x7E]|[[\](){}<>/%]/g,"").slice(0,63)}function createNameTable(t,r){r||(r=[[],[]]);var o,l,c,u,h,d=[r[0][0]||"Original licence",r[0][1]||t,r[0][2]||"Unknown",r[0][3]||"uniqueID",r[0][4]||t,r[0][5]||"Version 0.11",r[0][6]||createPostscriptName(t),r[0][7]||"Unknown",r[0][8]||"Unknown",r[0][9]||"Unknown"],m=[];for(o=0,l=d.length;o<l;o++){var g=[];for(c=0,u=(h=r[1][o]||d[o]).length;c<u;c++)g.push(string16(h.charCodeAt(c)));m.push(g.join(""))}var y=[d,m],v=["\0","\0"],S=["\0\0","\0"],_=["\0\0","\t"],k=d.length*v.length,C="\0\0"+string16(k)+string16(12*k+6),w=0;for(o=0,l=v.length;o<l;o++){var x=y[o];for(c=0,u=x.length;c<u;c++){h=x[c];C+=v[o]+S[o]+_[o]+string16(c)+string16(h.length)+string16(w);w+=h.length}}return C+=d.join("")+m.join("")}var j=function(){function Font(t,r,o){_classCallCheck(this,Font);this.name=t;this.psName=null;this.mimetype=null;this.disableFontFace=!1;this.loadedName=o.loadedName;this.isType3Font=o.isType3Font;this.missingFile=!1;this.cssFontInfo=o.cssFontInfo;this._charsCache=Object.create(null);this._glyphCache=Object.create(null);var c=!!(o.flags&u.FontFlags.Serif);if(!c&&!o.isSimulatedFlags){var h,d=t.replace(/[,_]/g,"-").split("-")[0],g=(0,m.getSerifFonts)(),y=_createForOfIteratorHelper(d.split("+"));try{for(y.s();!(h=y.n()).done;){if(g[h.value]){c=!0;break}}}catch(t){y.e(t)}finally{y.f()}}this.isSerifFont=c;this.isSymbolicFont=!!(o.flags&u.FontFlags.Symbolic);this.isMonospace=!!(o.flags&u.FontFlags.FixedPitch);var S=o.type,_=o.subtype;this.type=S;this.subtype=_;var k="sans-serif";this.isMonospace?k="monospace":this.isSerifFont&&(k="serif");this.fallbackName=k;this.differences=o.differences;this.widths=o.widths;this.defaultWidth=o.defaultWidth;this.composite=o.composite;this.cMap=o.cMap;this.capHeight=o.capHeight/R;this.ascent=o.ascent/R;this.descent=o.descent/R;this.lineHeight=this.ascent-this.descent;this.fontMatrix=o.fontMatrix;this.bbox=o.bbox;this.defaultEncoding=o.defaultEncoding;this.toUnicode=o.toUnicode;this.toFontChar=[];if("Type3"!==o.type){this.cidEncoding=o.cidEncoding||"";this.vertical=!!o.vertical;if(this.vertical){this.vmetrics=o.vmetrics;this.defaultVMetrics=o.defaultVMetrics}if(r&&!r.isEmpty){var C,w=_slicedToArray(getFontFileType(r,o),2);S=w[0];_=w[1];S===this.type&&_===this.subtype||(0,l.info)("Inconsistent font file Type/SubType, expected: "+"".concat(this.type,"/").concat(this.subtype," but found: ").concat(S,"/").concat(_,"."));try{switch(S){case"MMType1":(0,l.info)("MMType1 font ("+t+"), falling back to Type1.");case"Type1":case"CIDFontType0":this.mimetype="font/opentype";var x="Type1C"===_||"CIDFontType0C"===_?new v.CFFFont(r,o):new O.Type1Font(t,r,o);adjustWidths(o);C=this.convert(t,x,o);break;case"OpenType":case"TrueType":case"CIDFontType2":this.mimetype="font/opentype";C=this.checkAndRepair(t,r,o);if(this.isOpenType){adjustWidths(o);S="OpenType"}break;default:throw new l.FormatError("Font ".concat(S," is not supported"))}}catch(t){(0,l.warn)(t);this.fallbackToSystemFont(o);return}amendFallbackToUnicode(o);this.data=C;this.fontType=(0,u.getFontType)(S,_,o.isStandardFont);this.fontMatrix=o.fontMatrix;this.widths=o.widths;this.defaultWidth=o.defaultWidth;this.toUnicode=o.toUnicode;this.seacMap=o.seacMap}else{r&&(0,l.warn)('Font file is empty in "'+t+'" ('+this.loadedName+")");this.fallbackToSystemFont(o)}}else{for(var T=0;T<256;T++)this.toFontChar[T]=this.differences[T]||o.defaultEncoding[T];this.fontType=l.FontType.TYPE3}}_createClass(Font,[{key:"renderer",get:function get(){var t=S.FontRendererFactory.create(this,u.SEAC_ANALYSIS_ENABLED);return(0,l.shadow)(this,"renderer",t)}},{key:"exportData",value:function exportData(){var t,r,o,l=arguments.length>0&&void 0!==arguments[0]&&arguments[0],c=l?[].concat(E,M):E,u=Object.create(null),h=_createForOfIteratorHelper(c);try{for(h.s();!(o=h.n()).done;)void 0!==(r=this[t=o.value])&&(u[t]=r)}catch(t){h.e(t)}finally{h.f()}return u}},{key:"fallbackToSystemFont",value:function fallbackToSystemFont(t){var r=this;this.missingFile=!0;var o=this.name,c=this.type,v=this.subtype,S=(0,u.normalizeFontName)(o),_=(0,m.getStdFontMap)(),k=(0,m.getNonStdFontMap)(),C=!!_[S],w=!(!k[S]||!_[k[S]]);S=_[S]||k[S]||S;this.bold=-1!==S.search(/bold/gi);this.italic=-1!==S.search(/oblique/gi)||-1!==S.search(/italic/gi);this.black=-1!==o.search(/Black/g);var x=-1!==o.search(/Narrow/g);this.remeasure=(!C||x)&&Object.keys(this.widths).length>0;if((C||w)&&"CIDFontType2"===c&&this.cidEncoding.startsWith("Identity-")){var O=t.cidToGidMap,T=[];applyStandardFontGlyphMap(T,(0,m.getGlyphMapForStandardFonts)());/Arial-?Black/i.test(o)?applyStandardFontGlyphMap(T,(0,m.getSupplementalGlyphMapForArialBlack)()):/Calibri/i.test(o)&&applyStandardFontGlyphMap(T,(0,m.getSupplementalGlyphMapForCalibri)());if(O){for(var R in T){var E=T[R];void 0!==O[E]&&(T[+R]=O[E])}O.length!==this.toUnicode.length&&t.hasIncludedToUnicodeMap&&this.toUnicode instanceof y.IdentityToUnicodeMap&&this.toUnicode.forEach((function(t,r){var o=T[t];void 0===O[o]&&(T[+t]=r)}))}this.toUnicode instanceof y.IdentityToUnicodeMap||this.toUnicode.forEach((function(t,r){T[+t]=r}));this.toFontChar=T;this.toUnicode=new y.ToUnicodeMap(T)}else if(/Symbol/i.test(S))this.toFontChar=buildToFontChar(d.SymbolSetEncoding,(0,h.getGlyphsUnicode)(),this.differences);else if(/Dingbats/i.test(S)){/Wingdings/i.test(o)&&(0,l.warn)("Non-embedded Wingdings font, falling back to ZapfDingbats.");this.toFontChar=buildToFontChar(d.ZapfDingbatsEncoding,(0,h.getDingbatsGlyphsUnicode)(),this.differences)}else if(C){var M=buildToFontChar(this.defaultEncoding,(0,h.getGlyphsUnicode)(),this.differences);"CIDFontType2"!==c||this.cidEncoding.startsWith("Identity-")||this.toUnicode instanceof y.IdentityToUnicodeMap||this.toUnicode.forEach((function(t,r){M[+t]=r}));this.toFontChar=M}else{var D=(0,h.getGlyphsUnicode)(),j=[];this.toUnicode.forEach((function(t,o){if(!r.composite){var l=r.differences[t]||r.defaultEncoding[t],c=(0,g.getUnicodeForGlyph)(l,D);-1!==c&&(o=c)}j[+t]=o}));this.composite&&this.toUnicode instanceof y.IdentityToUnicodeMap&&/Verdana/i.test(o)&&applyStandardFontGlyphMap(j,(0,m.getGlyphMapForStandardFonts)());this.toFontChar=j}amendFallbackToUnicode(t);this.loadedName=S.split("-")[0];this.fontType=(0,u.getFontType)(c,v,t.isStandardFont)}},{key:"checkAndRepair",value:function checkAndRepair(t,r,o){var m=["OS/2","cmap","head","hhea","hmtx","maxp","name","post","loca","glyf","fpgm","prep","cvt ","CFF "];function readTables(t,r){var o=Object.create(null);o["OS/2"]=null;o.cmap=null;o.head=null;o.hhea=null;o.hmtx=null;o.maxp=null;o.name=null;o.post=null;for(var l=0;l<r;l++){var c=readTableEntry(t);m.includes(c.tag)&&(0!==c.length&&(o[c.tag]=c))}return o}function readTableEntry(t){var r=t.getString(4),o=t.getInt32()>>>0,l=t.getInt32()>>>0,c=t.getInt32()>>>0,u=t.pos;t.pos=t.start?t.start:0;t.skip(l);var h=t.getBytes(c);t.pos=u;if("head"===r){h[8]=h[9]=h[10]=h[11]=0;h[17]|=32}return{tag:r,checksum:o,length:c,offset:l,data:h}}function readOpenTypeHeader(t){return{version:t.getString(4),numTables:t.getUint16(),searchRange:t.getUint16(),entrySelector:t.getUint16(),rangeShift:t.getUint16()}}function sanitizeGlyph(t,r,o,l,c,u){var h={length:0,sizeOfInstructions:0};if(o-r<=12)return h;var d=t.subarray(r,o),m=signedInt16(d[0],d[1]);if(m<0){writeSignedInt16(d,0,m=-1);l.set(d,c);h.length=d.length;return h}var g,y=10,v=0;for(g=0;g<m;g++){v=(d[y]<<8|d[y+1])+1;y+=2}var S=y,_=d[y]<<8|d[y+1];h.sizeOfInstructions=_;var k=y+=2+_,C=0;for(g=0;g<v;g++){var w=d[y++];192&w&&(d[y-1]=63&w);var x=2;2&w?x=1:16&w&&(x=0);var O=2;4&w?O=1:32&w&&(O=0);var T=x+O;C+=T;if(8&w){var R=d[y++];g+=R;C+=R*T}}if(0===C)return h;var E=y+C;if(E>d.length)return h;if(!u&&_>0){l.set(d.subarray(0,S),c);l.set([0,0],c+S);l.set(d.subarray(k,E),c+S+2);E-=_;d.length-E>3&&(E=E+3&-4);h.length=E;return h}if(d.length-E>3){E=E+3&-4;l.set(d.subarray(0,E),c);h.length=E;return h}l.set(d,c);h.length=d.length;return h}function readNameTable(t){var o=(r.start?r.start:0)+t.offset;r.pos=o;var l=[[],[]],c=t.length,u=o+c;if(0!==r.getUint16()||c<6)return l;var h,d,m=r.getUint16(),g=r.getUint16(),y=[];for(h=0;h<m&&r.pos+12<=u;h++){var v={platform:r.getUint16(),encoding:r.getUint16(),language:r.getUint16(),name:r.getUint16(),length:r.getUint16(),offset:r.getUint16()};(1===v.platform&&0===v.encoding&&0===v.language||3===v.platform&&1===v.encoding&&1033===v.language)&&y.push(v)}for(h=0,d=y.length;h<d;h++){var S=y[h];if(!(S.length<=0)){var _=o+g+S.offset;if(!(_+S.length>u)){r.pos=_;var k=S.name;if(S.encoding){for(var C="",w=0,x=S.length;w<x;w+=2)C+=String.fromCharCode(r.getUint16());l[1][k]=C}else l[0][k]=r.getString(S.length)}}}return l}var g,S,w,O,T=[0,0,0,0,0,0,0,0,-2,-2,-2,-2,0,0,-2,-5,-1,-1,-1,-1,-1,-1,-1,-1,0,0,-1,0,-1,-1,-1,-1,1,-1,-999,0,1,0,-1,-2,0,-1,-2,-1,-1,0,-1,-1,0,0,-999,-999,-1,-1,-1,-1,-2,-999,-2,-2,-999,0,-2,-2,0,0,-2,0,-2,0,0,0,-2,-1,-1,1,1,0,0,-1,-1,-1,-1,-1,-1,-1,0,0,-1,0,-1,-1,0,-999,-1,-1,-1,-1,-1,-1,0,0,0,0,0,0,0,0,0,0,0,0,-2,-999,-999,-999,-999,-999,-1,-1,-2,-2,0,0,0,0,-1,-1,-999,-2,-2,0,0,-1,-2,-2,0,0,0,-1,-1,-1,-2];function sanitizeTTProgram(t,r){for(var o,c,u,h,d,m=t.data,g=0,y=0,v=0,S=[],_=[],k=[],C=r.tooComplexToFollowFunctions,w=!1,x=0,O=0,R=m.length;g<R;){var E=m[g++];if(64===E){c=m[g++];if(w||O)g+=c;else for(o=0;o<c;o++)S.push(m[g++])}else if(65===E){c=m[g++];if(w||O)g+=2*c;else for(o=0;o<c;o++){u=m[g++];S.push(u<<8|m[g++])}}else if(176==(248&E)){c=E-176+1;if(w||O)g+=c;else for(o=0;o<c;o++)S.push(m[g++])}else if(184==(248&E)){c=E-184+1;if(w||O)g+=2*c;else for(o=0;o<c;o++){u=m[g++];S.push(u<<8|m[g++])}}else if(43!==E||C)if(44!==E||C){if(45===E)if(w){w=!1;y=g}else{if(!(d=_.pop())){(0,l.warn)("TT: ENDF bad stack");r.hintsValid=!1;return}h=k.pop();m=d.data;g=d.i;r.functionsStackDeltas[h]=S.length-d.stackTop}else if(137===E){if(w||O){(0,l.warn)("TT: nested IDEFs not allowed");C=!0}w=!0;v=g}else if(88===E)++x;else if(27===E)O=x;else if(89===E){O===x&&(O=0);--x}else if(28===E&&!w&&!O){var M=S[S.length-1];M>0&&(g+=M-1)}}else{if(w||O){(0,l.warn)("TT: nested FDEFs not allowed");C=!0}w=!0;v=g;h=S.pop();r.functionsDefined[h]={data:m,i:g}}else if(!w&&!O){h=S[S.length-1];if(isNaN(h))(0,l.info)("TT: CALL empty stack (or invalid entry).");else{r.functionsUsed[h]=!0;if(h in r.functionsStackDeltas){var D=S.length+r.functionsStackDeltas[h];if(D<0){(0,l.warn)("TT: CALL invalid functions stack delta.");r.hintsValid=!1;return}S.length=D}else if(h in r.functionsDefined&&!k.includes(h)){_.push({data:m,i:g,stackTop:S.length-1});k.push(h);if(!(d=r.functionsDefined[h])){(0,l.warn)("TT: CALL non-existent function");r.hintsValid=!1;return}m=d.data;g=d.i}}}if(!w&&!O){var j=0;E<=142?j=T[E]:E>=192&&E<=223?j=-1:E>=224&&(j=-2);if(E>=113&&E<=117){c=S.pop();isNaN(c)||(j=2*-c)}for(;j<0&&S.length>0;){S.pop();j++}for(;j>0;){S.push(NaN);j--}}}r.tooComplexToFollowFunctions=C;var L=[m];g>m.length&&L.push(new Uint8Array(g-m.length));if(v>y){(0,l.warn)("TT: complementing a missing function tail");L.push(new Uint8Array([34,45]))}!function foldTTTable(t,r){if(r.length>1){var o,l,c=0;for(o=0,l=r.length;o<l;o++)c+=r[o].length;c=c+3&-4;var u=new Uint8Array(c),h=0;for(o=0,l=r.length;o<l;o++){u.set(r[o],h);h+=r[o].length}t.data=u;t.length=c}}(t,L)}if(isTrueTypeCollectionFile(r=new x.Stream(new Uint8Array(r.getBytes())))){var R=function readTrueTypeCollectionData(t,r){for(var o,c=function readTrueTypeCollectionHeader(t){var r=t.getString(4);(0,l.assert)("ttcf"===r,"Must be a TrueType Collection font.");for(var o=t.getUint16(),c=t.getUint16(),u=t.getInt32()>>>0,h=[],d=0;d<u;d++)h.push(t.getInt32()>>>0);var m={ttcTag:r,majorVersion:o,minorVersion:c,numFonts:u,offsetTable:h};switch(o){case 1:return m;case 2:m.dsigTag=t.getInt32()>>>0;m.dsigLength=t.getInt32()>>>0;m.dsigOffset=t.getInt32()>>>0;return m}throw new l.FormatError("Invalid TrueType Collection majorVersion: ".concat(o,"."))}(t),u=c.numFonts,h=c.offsetTable,d=r.split("+"),m=0;m<u;m++){t.pos=(t.start||0)+h[m];var g=readOpenTypeHeader(t),y=readTables(t,g.numTables);if(!y.name)throw new l.FormatError('TrueType Collection font must contain a "name" table.');for(var v=readNameTable(y.name),S=0,_=v.length;S<_;S++)for(var k=0,C=v[S].length;k<C;k++){var w=v[S][k]&&v[S][k].replace(/\s/g,"");if(w){if(w===r)return{header:g,tables:y};if(!(d.length<2)){var x,O=_createForOfIteratorHelper(d);try{for(O.s();!(x=O.n()).done;){var T=x.value;w===T&&(o={name:T,header:g,tables:y})}}catch(t){O.e(t)}finally{O.f()}}}}}if(o){(0,l.warn)('TrueType Collection does not contain "'.concat(r,'" font, ')+'falling back to "'.concat(o.name,'" font instead.'));return{header:o.header,tables:o.tables}}throw new l.FormatError('TrueType Collection does not contain "'.concat(r,'" font.'))}(r,this.name);g=R.header;S=R.tables}else{g=readOpenTypeHeader(r);S=readTables(r,g.numTables)}var E=!S["CFF "];if(E){if(!S.loca)throw new l.FormatError('Required "loca" table is not found');if(!S.glyf){(0,l.warn)('Required "glyf" table is not found -- trying to recover.');S.glyf={tag:"glyf",data:new Uint8Array(0)}}this.isOpenType=!1}else{var M=o.composite&&((o.cidToGidMap||[]).length>0||!(o.cMap instanceof k.IdentityCMap));if("OTTO"===g.version&&!M||!S.head||!S.hhea||!S.maxp||!S.post){O=new x.Stream(S["CFF "].data);w=new v.CFFFont(O,o);adjustWidths(o);return this.convert(t,w,o)}delete S.glyf;delete S.loca;delete S.fpgm;delete S.prep;delete S["cvt "];this.isOpenType=!0}if(!S.maxp)throw new l.FormatError('Required "maxp" table is not found');r.pos=(r.start||0)+S.maxp.offset;var D=r.getInt32(),j=r.getUint16();if(o.scaleFactors&&o.scaleFactors.length===j&&E){var L=o.scaleFactors,N=int16(S.head.data[50],S.head.data[51]),U=new _.GlyfTable({glyfTable:S.glyf.data,isGlyphLocationsLong:N,locaTable:S.loca.data,numGlyphs:j});U.scale(L);var H=U.write(),W=H.glyf,$=H.loca,q=H.isLocationLong;S.glyf.data=W;S.loca.data=$;if(q!==!!N){S.head.data[50]=0;S.head.data[51]=q?1:0}for(var X=S.hmtx.data,z=0;z<j;z++){var G=4*z,V=Math.round(L[z]*int16(X[G],X[G+1]));X[G]=V>>8&255;X[G+1]=255&V;writeSignedInt16(X,G+2,Math.round(L[z]*signedInt16(X[G+2],X[G+3])))}}var Y=j+1,K=!0;if(Y>65535){K=!1;Y=j;(0,l.warn)("Not enough space in glyfs to duplicate first glyph.")}var J=0,Q=0;if(D>=65536&&S.maxp.length>=22){r.pos+=8;if(r.getUint16()>2){S.maxp.data[14]=0;S.maxp.data[15]=2}r.pos+=4;J=r.getUint16();r.pos+=4;Q=r.getUint16()}S.maxp.data[4]=Y>>8;S.maxp.data[5]=255&Y;var Z=function sanitizeTTPrograms(t,r,o,c){var u={functionsDefined:[],functionsUsed:[],functionsStackDeltas:[],tooComplexToFollowFunctions:!1,hintsValid:!0};t&&sanitizeTTProgram(t,u);r&&sanitizeTTProgram(r,u);t&&function checkInvalidFunctions(t,r){if(!t.tooComplexToFollowFunctions)if(t.functionsDefined.length>r){(0,l.warn)("TT: more functions defined than expected");t.hintsValid=!1}else for(var o=0,c=t.functionsUsed.length;o<c;o++){if(o>r){(0,l.warn)("TT: invalid function id: "+o);t.hintsValid=!1;return}if(t.functionsUsed[o]&&!t.functionsDefined[o]){(0,l.warn)("TT: undefined function: "+o);t.hintsValid=!1;return}}}(u,c);if(o&&1&o.length){var h=new Uint8Array(o.length+1);h.set(o.data);o.data=h}return u.hintsValid}(S.fpgm,S.prep,S["cvt "],J);if(!Z){delete S.fpgm;delete S.prep;delete S["cvt "]}!function sanitizeMetrics(t,r,o,c,u,h){if(r){t.pos=(t.start?t.start:0)+r.offset;t.pos+=4;t.pos+=2;t.pos+=2;t.pos+=2;t.pos+=2;t.pos+=2;t.pos+=2;t.pos+=2;t.pos+=2;t.pos+=2;var d=t.getUint16();t.pos+=8;t.pos+=2;var m=t.getUint16();if(0!==d){if(!(2&int16(c.data[44],c.data[45]))){r.data[22]=0;r.data[23]=0}}if(m>u){(0,l.info)("The numOfMetrics (".concat(m,") should not be ")+"greater than the numGlyphs (".concat(u,")."));m=u;r.data[34]=(65280&m)>>8;r.data[35]=255&m}var g=u-m-(o.length-4*m>>1);if(g>0){var y=new Uint8Array(o.length+2*g);y.set(o.data);if(h){y[o.length]=o.data[2];y[o.length+1]=o.data[3]}o.data=y}}else o&&(o.data=null)}(r,S.hhea,S.hmtx,S.head,Y,K);if(!S.head)throw new l.FormatError('Required "head" table is not found');!function sanitizeHead(t,r,o){var c=t.data,u=function int32(t,r,o,l){return(t<<24)+(r<<16)+(o<<8)+l}(c[0],c[1],c[2],c[3]);if(u>>16!=1){(0,l.info)("Attempting to fix invalid version in head table: "+u);c[0]=0;c[1]=1;c[2]=0;c[3]=0}var h=int16(c[50],c[51]);if(h<0||h>1){(0,l.info)("Attempting to fix invalid indexToLocFormat in head table: "+h);var d=r+1;if(o===d<<1){c[50]=0;c[51]=0}else{if(o!==d<<2)throw new l.FormatError("Could not fix indexToLocFormat: "+h);c[50]=0;c[51]=1}}}(S.head,j,E?S.loca.length:0);var ee=Object.create(null);if(E){var te=int16(S.head.data[50],S.head.data[51]),re=function sanitizeGlyphLocations(t,r,o,l,c,u,h){var d,m,g;if(l){d=4;m=function fontItemDecodeLong(t,r){return t[r]<<24|t[r+1]<<16|t[r+2]<<8|t[r+3]};g=function fontItemEncodeLong(t,r,o){t[r]=o>>>24&255;t[r+1]=o>>16&255;t[r+2]=o>>8&255;t[r+3]=255&o}}else{d=2;m=function fontItemDecode(t,r){return t[r]<<9|t[r+1]<<1};g=function fontItemEncode(t,r,o){t[r]=o>>9&255;t[r+1]=o>>1&255}}var y=u?o+1:o,v=d*(1+y),S=new Uint8Array(v);S.set(t.data.subarray(0,v));t.data=S;var _,k,C=r.data,w=C.length,x=new Uint8Array(w),O=[];for(_=0,k=0;_<o+1;_++,k+=d){var T=m(S,k);T>w&&(T=w);O.push({index:_,offset:T,endOffset:0})}O.sort((function(t,r){return t.offset-r.offset}));for(_=0;_<o;_++)O[_].endOffset=O[_+1].offset;O.sort((function(t,r){return t.index-r.index}));var R=Object.create(null),E=0;g(S,0,E);for(_=0,k=d;_<o;_++,k+=d){var M=sanitizeGlyph(C,O[_].offset,O[_].endOffset,x,E,c),D=M.length;0===D&&(R[_]=!0);M.sizeOfInstructions>h&&(h=M.sizeOfInstructions);g(S,k,E+=D)}if(0===E){var j=new Uint8Array([0,1,0,0,0,0,0,0,0,0,0,0,0,0,49,0]);for(_=0,k=d;_<y;_++,k+=d)g(S,k,j.length);r.data=j}else if(u){var L=m(S,d);if(x.length>L+E)r.data=x.subarray(0,L+E);else{r.data=new Uint8Array(L+E);r.data.set(x.subarray(0,E))}r.data.set(x.subarray(0,L),E);g(t.data,S.length-d,E+L)}else r.data=x.subarray(0,E);return{missingGlyphs:R,maxSizeOfInstructions:h}}(S.loca,S.glyf,j,te,Z,K,Q);ee=re.missingGlyphs;if(D>=65536&&S.maxp.length>=22){S.maxp.data[26]=re.maxSizeOfInstructions>>8;S.maxp.data[27]=255&re.maxSizeOfInstructions}}if(!S.hhea)throw new l.FormatError('Required "hhea" table is not found');if(0===S.hhea.data[10]&&0===S.hhea.data[11]){S.hhea.data[10]=255;S.hhea.data[11]=255}var ae={unitsPerEm:int16(S.head.data[18],S.head.data[19]),yMax:int16(S.head.data[42],S.head.data[43]),yMin:signedInt16(S.head.data[38],S.head.data[39]),ascent:signedInt16(S.hhea.data[4],S.hhea.data[5]),descent:signedInt16(S.hhea.data[6],S.hhea.data[7]),lineGap:signedInt16(S.hhea.data[8],S.hhea.data[9])};this.ascent=ae.ascent/ae.unitsPerEm;this.descent=ae.descent/ae.unitsPerEm;this.lineGap=ae.lineGap/ae.unitsPerEm;if(this.cssFontInfo&&this.cssFontInfo.lineHeight){this.lineHeight=this.cssFontInfo.metrics.lineHeight;this.lineGap=this.cssFontInfo.metrics.lineGap}else this.lineHeight=this.ascent-this.descent+this.lineGap;S.post&&function readPostScriptTable(t,o,c){var h=(r.start?r.start:0)+t.offset;r.pos=h;var d,m=h+t.length,g=r.getInt32();r.skip(28);var y,v=!0;switch(g){case 65536:d=u.MacStandardGlyphOrdering;break;case 131072:var S=r.getUint16();if(S!==c){v=!1;break}var _=[];for(y=0;y<S;++y){var k=r.getUint16();if(k>=32768){v=!1;break}_.push(k)}if(!v)break;for(var C=[],w=[];r.pos<m;){var x=r.getByte();w.length=x;for(y=0;y<x;++y)w[y]=String.fromCharCode(r.getByte());C.push(w.join(""))}d=[];for(y=0;y<S;++y){var O=_[y];O<258?d.push(u.MacStandardGlyphOrdering[O]):d.push(C[O-258])}break;case 196608:break;default:(0,l.warn)("Unknown/unsupported post table version "+g);v=!1;o.defaultEncoding&&(d=o.defaultEncoding)}o.glyphNames=d;return v}(S.post,o,j);S.post={tag:"post",data:createPostTable(o)};var ne=[];function hasGlyph(t){return!ee[t]}if(o.composite){var ie=o.cidToGidMap||[],oe=0===ie.length;o.cMap.forEach((function(t,r){"string"==typeof r&&(r=convertCidString(t,r,!0));if(r>65535)throw new l.FormatError("Max size of CID is 65,535");var o=-1;oe?o=r:void 0!==ie[r]&&(o=ie[r]);o>=0&&o<j&&hasGlyph(o)&&(ne[t]=o)}))}else{var se=function readCmapTable(t,r,o,c){if(!t){(0,l.warn)("No cmap table available.");return{platformId:-1,encodingId:-1,mappings:[],hasShortCmap:!1}}var u,h=(r.start?r.start:0)+t.offset;r.pos=h;r.skip(2);for(var d,m=r.getUint16(),g=!1,y=0;y<m;y++){var v=r.getUint16(),S=r.getUint16(),_=r.getInt32()>>>0,k=!1;if(!d||d.platformId!==v||d.encodingId!==S){if(0!==v||0!==S&&1!==S&&3!==S)if(1===v&&0===S)k=!0;else if(3!==v||1!==S||!c&&d){if(o&&3===v&&0===S){k=!0;var C=!0;if(y<m-1){var w=r.peekBytes(2);int16(w[0],w[1])<v&&(C=!1)}C&&(g=!0)}}else{k=!0;o||(g=!0)}else k=!0;k&&(d={platformId:v,encodingId:S,offset:_});if(g)break}}d&&(r.pos=h+d.offset);if(!d||-1===r.peekByte()){(0,l.warn)("Could not find a preferred cmap table.");return{platformId:-1,encodingId:-1,mappings:[],hasShortCmap:!1}}var x=r.getUint16();r.skip(4);var O,T,R=!1,E=[];if(0===x){for(O=0;O<256;O++){var M=r.getByte();M&&E.push({charCode:O,glyphId:M})}R=!0}else if(4===x){var D=r.getUint16()>>1;r.skip(6);var j,L=[];for(j=0;j<D;j++)L.push({end:r.getUint16()});r.skip(2);for(j=0;j<D;j++)L[j].start=r.getUint16();for(j=0;j<D;j++)L[j].delta=r.getUint16();var N,U=0;for(j=0;j<D;j++){u=L[j];var H=r.getUint16();if(H){N=(H>>1)-(D-j);u.offsetIndex=N;U=Math.max(U,N+u.end-u.start+1)}else u.offsetIndex=-1}var W=[];for(O=0;O<U;O++)W.push(r.getUint16());for(j=0;j<D;j++){h=(u=L[j]).start;var $=u.end,q=u.delta;N=u.offsetIndex;for(O=h;O<=$;O++)if(65535!==O){T=(T=N<0?O:W[N+O-h])+q&65535;E.push({charCode:O,glyphId:T})}}}else{if(6!==x){(0,l.warn)("cmap table has unsupported format: "+x);return{platformId:-1,encodingId:-1,mappings:[],hasShortCmap:!1}}var X=r.getUint16(),z=r.getUint16();for(O=0;O<z;O++){T=r.getUint16();var G=X+O;E.push({charCode:G,glyphId:T})}}E.sort((function(t,r){return t.charCode-r.charCode}));for(var V=1;V<E.length;V++)if(E[V-1].charCode===E[V].charCode){E.splice(V,1);V--}return{platformId:d.platformId,encodingId:d.encodingId,mappings:E,hasShortCmap:R}}(S.cmap,r,this.isSymbolicFont,o.hasEncoding),le=se.platformId,ce=se.encodingId,ue=se.mappings,fe=ue.length,he=[],de=!1;!o.hasEncoding||"MacRomanEncoding"!==o.baseEncodingName&&"WinAnsiEncoding"!==o.baseEncodingName||(he=(0,d.getEncoding)(o.baseEncodingName));if(o.hasEncoding&&!this.isSymbolicFont&&(3===le&&1===ce||1===le&&0===ce))for(var pe=(0,h.getGlyphsUnicode)(),me=0;me<256;me++){var ge=void 0;if(ge=void 0!==this.differences[me]?this.differences[me]:he.length&&""!==he[me]?he[me]:d.StandardEncoding[me]){var ye=(0,u.recoverGlyphName)(ge,pe),ve=void 0;3===le&&1===ce?ve=pe[ye]:1===le&&0===ce&&(ve=d.MacRomanEncoding.indexOf(ye));if(void 0===ve){if(!o.glyphNames&&o.hasIncludedToUnicodeMap&&!(this.toUnicode instanceof y.IdentityToUnicodeMap)){var be=this.toUnicode.get(me);be&&(ve=be.codePointAt(0))}if(void 0===ve)continue}for(var Se=0;Se<fe;++Se)if(ue[Se].charCode===ve){ne[me]=ue[Se].glyphId;break}}}else if(0===le){for(var _e=0;_e<fe;++_e)ne[ue[_e].charCode]=ue[_e].glyphId;de=!0}else for(var ke=0;ke<fe;++ke){var Ce=ue[ke].charCode;3===le&&Ce>=61440&&Ce<=61695&&(Ce&=255);ne[Ce]=ue[ke].glyphId}if(o.glyphNames&&(he.length||this.differences.length))for(var we=0;we<256;++we)if(de||void 0===ne[we]){var Ae=this.differences[we]||he[we];if(Ae){var xe=o.glyphNames.indexOf(Ae);xe>0&&hasGlyph(xe)&&(ne[we]=xe)}}}0===ne.length&&(ne[0]=0);var Oe=Y-1;K||(Oe=0);if(!o.cssFontInfo){var Pe=adjustMapping(ne,hasGlyph,Oe);this.toFontChar=Pe.toFontChar;S.cmap={tag:"cmap",data:createCmapTable(Pe.charCodeToGlyphId,Y)};S["OS/2"]&&function validateOS2Table(t,r){r.pos=(r.start||0)+t.offset;var o=r.getUint16();r.skip(60);var l=r.getUint16();if(o<4&&768&l)return!1;if(r.getUint16()>r.getUint16())return!1;r.skip(6);if(0===r.getUint16())return!1;t.data[8]=t.data[9]=0;return!0}(S["OS/2"],r)||(S["OS/2"]={tag:"OS/2",data:createOS2Table(o,Pe.charCodeToGlyphId,ae)})}if(!E)try{O=new x.Stream(S["CFF "].data);(w=new c.CFFParser(O,o,u.SEAC_ANALYSIS_ENABLED).parse()).duplicateFirstGlyph();var Te=new c.CFFCompiler(w);S["CFF "].data=Te.compile()}catch(t){(0,l.warn)("Failed to compile font "+o.loadedName)}if(S.name){var Ie=readNameTable(S.name);S.name.data=createNameTable(t,Ie);this.psName=Ie[0][6]||null}else S.name={tag:"name",data:createNameTable(this.name)};var Fe=new C.OpenTypeFileBuilder(g.version);for(var Re in S)Fe.addTable(Re,S[Re].data);return Fe.toArray()}},{key:"convert",value:function convert(t,r,o){o.fixedPitch=!1;o.builtInEncoding&&function adjustToUnicode(t,r){if(!(t.isInternalFont||r===t.defaultEncoding||t.toUnicode instanceof y.IdentityToUnicodeMap)){var o=[],l=(0,h.getGlyphsUnicode)();for(var c in r){if(t.hasIncludedToUnicodeMap){if(t.toUnicode.has(c))continue}else if(t.hasEncoding&&(0===t.differences.length||void 0!==t.differences[c]))continue;var u=r[c],d=(0,g.getUnicodeForGlyph)(u,l);-1!==d&&(o[c]=String.fromCharCode(d))}o.length>0&&t.toUnicode.amend(o)}}(o,o.builtInEncoding);var c=1;r instanceof v.CFFFont&&(c=r.numGlyphs-1);var m=r.getGlyphMapping(o),S=null,_=m;if(!o.cssFontInfo){S=adjustMapping(m,r.hasGlyphId.bind(r),c);this.toFontChar=S.toFontChar;_=S.charCodeToGlyphId}var k=r.numGlyphs;function getCharCodes(t,r){var o=null;for(var l in t)if(r===t[l]){o||(o=[]);o.push(0|l)}return o}function createCharCode(t,r){for(var o in t)if(r===t[o])return 0|o;S.charCodeToGlyphId[S.nextAvailableFontCharCode]=r;return S.nextAvailableFontCharCode++}var w=r.seacs;if(S&&u.SEAC_ANALYSIS_ENABLED&&w&&w.length){var x=o.fontMatrix||l.FONT_IDENTITY_MATRIX,O=r.getCharset(),T=Object.create(null);for(var R in w){var E=w[R|=0],M=d.StandardEncoding[E[2]],D=d.StandardEncoding[E[3]],j=O.indexOf(M),L=O.indexOf(D);if(!(j<0||L<0)){var N={x:E[0]*x[0]+E[1]*x[2]+x[4],y:E[0]*x[1]+E[1]*x[3]+x[5]},U=getCharCodes(m,R);if(U)for(var H=0,W=U.length;H<W;H++){var $=U[H],q=S.charCodeToGlyphId,X=createCharCode(q,j),z=createCharCode(q,L);T[$]={baseFontCharCode:X,accentFontCharCode:z,accentOffset:N}}}}o.seacMap=T}var G=1/(o.fontMatrix||l.FONT_IDENTITY_MATRIX)[0],V=new C.OpenTypeFileBuilder("OTTO");V.addTable("CFF ",r.data);V.addTable("OS/2",createOS2Table(o,_));V.addTable("cmap",createCmapTable(_,k));V.addTable("head","\0\0\0\0\0\0\0\0\0\0_<õ\0\0"+safeString16(G)+"\0\0\0\0\v~'\0\0\0\0\v~'\0\0"+safeString16(o.descent)+"ÿ"+safeString16(o.ascent)+string16(o.italicAngle?2:0)+"\0\0\0\0\0\0\0");V.addTable("hhea","\0\0\0"+safeString16(o.ascent)+safeString16(o.descent)+"\0\0ÿÿ\0\0\0\0\0\0"+safeString16(o.capHeight)+safeString16(Math.tan(o.italicAngle)*o.xHeight)+"\0\0\0\0\0\0\0\0\0\0\0\0"+string16(k));V.addTable("hmtx",function fontFieldsHmtx(){for(var t=r.charstrings,o=r.cff?r.cff.widths:null,l="\0\0\0\0",c=1,u=k;c<u;c++){var h=0;if(t){var d=t[c-1];h="width"in d?d.width:0}else o&&(h=Math.ceil(o[c]||0));l+=string16(h)+string16(0)}return l}());V.addTable("maxp","\0\0P\0"+string16(k));V.addTable("name",createNameTable(t));V.addTable("post",createPostTable(o));return V.toArray()}},{key:"spaceWidth",get:function get(){for(var t,r=["space","minus","one","i","I"],o=0,c=r.length;o<c;o++){var u=r[o];if(u in this.widths){t=this.widths[u];break}var d=(0,h.getGlyphsUnicode)()[u],m=0;this.composite&&this.cMap.contains(d)&&"string"==typeof(m=this.cMap.lookup(d))&&(m=convertCidString(d,m));!m&&this.toUnicode&&(m=this.toUnicode.charCodeOf(d));m<=0&&(m=d);if(t=this.widths[m])break}t=t||this.defaultWidth;return(0,l.shadow)(this,"spaceWidth",t)}},{key:"_charToGlyph",value:function _charToGlyph(t){var r,o,c,u=arguments.length>1&&void 0!==arguments[1]&&arguments[1],h=t;this.cMap&&this.cMap.contains(t)&&"string"==typeof(h=this.cMap.lookup(t))&&(h=convertCidString(t,h));o=this.widths[h];o=(0,l.isNum)(o)?o:this.defaultWidth;var d=this.vmetrics&&this.vmetrics[h],m=this.toUnicode.get(t)||t;"number"==typeof m&&(m=String.fromCharCode(m));var y=void 0!==this.toFontChar[t];r=this.toFontChar[t]||t;if(this.missingFile){var v=this.differences[t]||this.defaultEncoding[t];".notdef"!==v&&""!==v||"Type1"!==this.type||(r=32);r=(0,g.mapSpecialUnicodeValues)(r)}this.isType3Font&&(c=r);var S=null;if(this.seacMap&&this.seacMap[t]){y=!0;var _=this.seacMap[t];r=_.baseFontCharCode;S={fontChar:String.fromCodePoint(_.accentFontCharCode),offset:_.accentOffset}}var k="";"number"==typeof r&&(r<=1114111?k=String.fromCodePoint(r):(0,l.warn)("charToGlyph - invalid fontCharCode: ".concat(r)));var C=this._glyphCache[t];if(!C||!C.matchesForCache(t,k,m,S,o,d,c,u,y)){C=new D(t,k,m,S,o,d,c,u,y);this._glyphCache[t]=C}return C}},{key:"charsToGlyphs",value:function charsToGlyphs(t){var r=this._charsCache[t];if(r)return r;r=[];if(this.cMap)for(var o=Object.create(null),l=t.length,c=0;c<l;){this.cMap.readCharCode(t,c,o);var u=o.charcode,h=o.length;c+=h;var d=this._charToGlyph(u,1===h&&32===t.charCodeAt(c-1));r.push(d)}else for(var m=0,g=t.length;m<g;++m){var y=t.charCodeAt(m),v=this._charToGlyph(y,32===y);r.push(v)}return this._charsCache[t]=r}},{key:"getCharPositions",value:function getCharPositions(t){var r=[];if(this.cMap)for(var o=Object.create(null),l=0;l<t.length;){this.cMap.readCharCode(t,l,o);var c=o.length;r.push([l,l+c]);l+=c}else for(var u=0,h=t.length;u<h;++u)r.push([u,u+1]);return r}},{key:"glyphCacheValues",get:function get(){return Object.values(this._glyphCache)}},{key:"encodeString",value:function encodeString(t){for(var r=this,o=[],l=[],c=function hasCurrentBufErrors(){return o.length%2==1},u=this.toUnicode instanceof y.IdentityToUnicodeMap?function(t){return r.toUnicode.charCodeOf(t)}:function(t){return r.toUnicode.charCodeOf(String.fromCodePoint(t))},h=0,d=t.length;h<d;h++){var m=t.codePointAt(h);m>55295&&(m<57344||m>65533)&&h++;if(this.toUnicode){var g=u(m);if(-1!==g){if(c()){o.push(l.join(""));l.length=0}for(var v=(this.cMap?this.cMap.getCharCodeLength(g):1)-1;v>=0;v--)l.push(String.fromCharCode(g>>8*v&255));continue}}if(!c()){o.push(l.join(""));l.length=0}l.push(String.fromCodePoint(m))}o.push(l.join(""));return o}}]);return Font}();r.Font=j;var L=function(){function ErrorFont(t){_classCallCheck(this,ErrorFont);this.error=t;this.loadedName="g_font_error";this.missingFile=!0}_createClass(ErrorFont,[{key:"charsToGlyphs",value:function charsToGlyphs(){return[]}},{key:"encodeString",value:function encodeString(t){return[t]}},{key:"exportData",value:function exportData(){return{error:this.error}}}]);return ErrorFont}();r.ErrorFont=L},(t,r,o)=>{"use strict";function _typeof(t){_typeof="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function _typeof(t){return typeof t}:function _typeof(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t};return _typeof(t)}Object.defineProperty(r,"__esModule",{value:!0});r.CFFTopDict=r.CFFStrings=r.CFFStandardStrings=r.CFFPrivateDict=r.CFFParser=r.CFFIndex=r.CFFHeader=r.CFFFDSelect=r.CFFCompiler=r.CFFCharset=r.CFF=void 0;var l=o(4),c=o(159),u=o(132);function _inherits(t,r){if("function"!=typeof r&&null!==r)throw new TypeError("Super expression must either be null or a function");t.prototype=Object.create(r&&r.prototype,{constructor:{value:t,writable:!0,configurable:!0}});r&&_setPrototypeOf(t,r)}function _setPrototypeOf(t,r){_setPrototypeOf=Object.setPrototypeOf||function _setPrototypeOf(t,r){t.__proto__=r;return t};return _setPrototypeOf(t,r)}function _createSuper(t){var r=function _isNativeReflectConstruct(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){})));return!0}catch(t){return!1}}();return function _createSuperInternal(){var o,l=_getPrototypeOf(t);if(r){var c=_getPrototypeOf(this).constructor;o=Reflect.construct(l,arguments,c)}else o=l.apply(this,arguments);return _possibleConstructorReturn(this,o)}}function _possibleConstructorReturn(t,r){if(r&&("object"===_typeof(r)||"function"==typeof r))return r;if(void 0!==r)throw new TypeError("Derived constructors may only return object or undefined");return function _assertThisInitialized(t){if(void 0===t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return t}(t)}function _getPrototypeOf(t){_getPrototypeOf=Object.setPrototypeOf?Object.getPrototypeOf:function _getPrototypeOf(t){return t.__proto__||Object.getPrototypeOf(t)};return _getPrototypeOf(t)}function _classCallCheck(t,r){if(!(t instanceof r))throw new TypeError("Cannot call a class as a function")}function _defineProperties(t,r){for(var o=0;o<r.length;o++){var l=r[o];l.enumerable=l.enumerable||!1;l.configurable=!0;"value"in l&&(l.writable=!0);Object.defineProperty(t,l.key,l)}}function _createClass(t,r,o){r&&_defineProperties(t.prototype,r);o&&_defineProperties(t,o);return t}var h=[".notdef","space","exclam","quotedbl","numbersign","dollar","percent","ampersand","quoteright","parenleft","parenright","asterisk","plus","comma","hyphen","period","slash","zero","one","two","three","four","five","six","seven","eight","nine","colon","semicolon","less","equal","greater","question","at","A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z","bracketleft","backslash","bracketright","asciicircum","underscore","quoteleft","a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s","t","u","v","w","x","y","z","braceleft","bar","braceright","asciitilde","exclamdown","cent","sterling","fraction","yen","florin","section","currency","quotesingle","quotedblleft","guillemotleft","guilsinglleft","guilsinglright","fi","fl","endash","dagger","daggerdbl","periodcentered","paragraph","bullet","quotesinglbase","quotedblbase","quotedblright","guillemotright","ellipsis","perthousand","questiondown","grave","acute","circumflex","tilde","macron","breve","dotaccent","dieresis","ring","cedilla","hungarumlaut","ogonek","caron","emdash","AE","ordfeminine","Lslash","Oslash","OE","ordmasculine","ae","dotlessi","lslash","oslash","oe","germandbls","onesuperior","logicalnot","mu","trademark","Eth","onehalf","plusminus","Thorn","onequarter","divide","brokenbar","degree","thorn","threequarters","twosuperior","registered","minus","eth","multiply","threesuperior","copyright","Aacute","Acircumflex","Adieresis","Agrave","Aring","Atilde","Ccedilla","Eacute","Ecircumflex","Edieresis","Egrave","Iacute","Icircumflex","Idieresis","Igrave","Ntilde","Oacute","Ocircumflex","Odieresis","Ograve","Otilde","Scaron","Uacute","Ucircumflex","Udieresis","Ugrave","Yacute","Ydieresis","Zcaron","aacute","acircumflex","adieresis","agrave","aring","atilde","ccedilla","eacute","ecircumflex","edieresis","egrave","iacute","icircumflex","idieresis","igrave","ntilde","oacute","ocircumflex","odieresis","ograve","otilde","scaron","uacute","ucircumflex","udieresis","ugrave","yacute","ydieresis","zcaron","exclamsmall","Hungarumlautsmall","dollaroldstyle","dollarsuperior","ampersandsmall","Acutesmall","parenleftsuperior","parenrightsuperior","twodotenleader","onedotenleader","zerooldstyle","oneoldstyle","twooldstyle","threeoldstyle","fouroldstyle","fiveoldstyle","sixoldstyle","sevenoldstyle","eightoldstyle","nineoldstyle","commasuperior","threequartersemdash","periodsuperior","questionsmall","asuperior","bsuperior","centsuperior","dsuperior","esuperior","isuperior","lsuperior","msuperior","nsuperior","osuperior","rsuperior","ssuperior","tsuperior","ff","ffi","ffl","parenleftinferior","parenrightinferior","Circumflexsmall","hyphensuperior","Gravesmall","Asmall","Bsmall","Csmall","Dsmall","Esmall","Fsmall","Gsmall","Hsmall","Ismall","Jsmall","Ksmall","Lsmall","Msmall","Nsmall","Osmall","Psmall","Qsmall","Rsmall","Ssmall","Tsmall","Usmall","Vsmall","Wsmall","Xsmall","Ysmall","Zsmall","colonmonetary","onefitted","rupiah","Tildesmall","exclamdownsmall","centoldstyle","Lslashsmall","Scaronsmall","Zcaronsmall","Dieresissmall","Brevesmall","Caronsmall","Dotaccentsmall","Macronsmall","figuredash","hypheninferior","Ogoneksmall","Ringsmall","Cedillasmall","questiondownsmall","oneeighth","threeeighths","fiveeighths","seveneighths","onethird","twothirds","zerosuperior","foursuperior","fivesuperior","sixsuperior","sevensuperior","eightsuperior","ninesuperior","zeroinferior","oneinferior","twoinferior","threeinferior","fourinferior","fiveinferior","sixinferior","seveninferior","eightinferior","nineinferior","centinferior","dollarinferior","periodinferior","commainferior","Agravesmall","Aacutesmall","Acircumflexsmall","Atildesmall","Adieresissmall","Aringsmall","AEsmall","Ccedillasmall","Egravesmall","Eacutesmall","Ecircumflexsmall","Edieresissmall","Igravesmall","Iacutesmall","Icircumflexsmall","Idieresissmall","Ethsmall","Ntildesmall","Ogravesmall","Oacutesmall","Ocircumflexsmall","Otildesmall","Odieresissmall","OEsmall","Oslashsmall","Ugravesmall","Uacutesmall","Ucircumflexsmall","Udieresissmall","Yacutesmall","Thornsmall","Ydieresissmall","001.000","001.001","001.002","001.003","Black","Bold","Book","Light","Medium","Regular","Roman","Semibold"];r.CFFStandardStrings=h;var d=391,m=function CFFParserClosure(){var t=[null,{id:"hstem",min:2,stackClearing:!0,stem:!0},null,{id:"vstem",min:2,stackClearing:!0,stem:!0},{id:"vmoveto",min:1,stackClearing:!0},{id:"rlineto",min:2,resetStack:!0},{id:"hlineto",min:1,resetStack:!0},{id:"vlineto",min:1,resetStack:!0},{id:"rrcurveto",min:6,resetStack:!0},null,{id:"callsubr",min:1,undefStack:!0},{id:"return",min:0,undefStack:!0},null,null,{id:"endchar",min:0,stackClearing:!0},null,null,null,{id:"hstemhm",min:2,stackClearing:!0,stem:!0},{id:"hintmask",min:0,stackClearing:!0},{id:"cntrmask",min:0,stackClearing:!0},{id:"rmoveto",min:2,stackClearing:!0},{id:"hmoveto",min:1,stackClearing:!0},{id:"vstemhm",min:2,stackClearing:!0,stem:!0},{id:"rcurveline",min:8,resetStack:!0},{id:"rlinecurve",min:8,resetStack:!0},{id:"vvcurveto",min:4,resetStack:!0},{id:"hhcurveto",min:4,resetStack:!0},null,{id:"callgsubr",min:1,undefStack:!0},{id:"vhcurveto",min:4,resetStack:!0},{id:"hvcurveto",min:4,resetStack:!0}],r=[null,null,null,{id:"and",min:2,stackDelta:-1},{id:"or",min:2,stackDelta:-1},{id:"not",min:1,stackDelta:0},null,null,null,{id:"abs",min:1,stackDelta:0},{id:"add",min:2,stackDelta:-1,stackFn:function stack_div(t,r){t[r-2]=t[r-2]+t[r-1]}},{id:"sub",min:2,stackDelta:-1,stackFn:function stack_div(t,r){t[r-2]=t[r-2]-t[r-1]}},{id:"div",min:2,stackDelta:-1,stackFn:function stack_div(t,r){t[r-2]=t[r-2]/t[r-1]}},null,{id:"neg",min:1,stackDelta:0,stackFn:function stack_div(t,r){t[r-1]=-t[r-1]}},{id:"eq",min:2,stackDelta:-1},null,null,{id:"drop",min:1,stackDelta:-1},null,{id:"put",min:2,stackDelta:-2},{id:"get",min:1,stackDelta:0},{id:"ifelse",min:4,stackDelta:-3},{id:"random",min:0,stackDelta:1},{id:"mul",min:2,stackDelta:-1,stackFn:function stack_div(t,r){t[r-2]=t[r-2]*t[r-1]}},null,{id:"sqrt",min:1,stackDelta:0},{id:"dup",min:1,stackDelta:1},{id:"exch",min:2,stackDelta:0},{id:"index",min:2,stackDelta:0},{id:"roll",min:3,stackDelta:-2},null,null,null,{id:"hflex",min:7,resetStack:!0},{id:"flex",min:13,resetStack:!0},{id:"hflex1",min:9,resetStack:!0},{id:"flex1",min:11,resetStack:!0}];return function(){function CFFParser(t,r,o){_classCallCheck(this,CFFParser);this.bytes=t.getBytes();this.properties=r;this.seacAnalysisEnabled=!!o}_createClass(CFFParser,[{key:"parse",value:function parse(){var t=this.properties,r=new g;this.cff=r;var o=this.parseHeader(),l=this.parseIndex(o.endPos),c=this.parseIndex(l.endPos),u=this.parseIndex(c.endPos),h=this.parseIndex(u.endPos),d=this.parseDict(c.obj.get(0)),m=this.createDict(k,d,r.strings);r.header=o.obj;r.names=this.parseNameIndex(l.obj);r.strings=this.parseStringIndex(u.obj);r.topDict=m;r.globalSubrIndex=h.obj;this.parsePrivateDict(r.topDict);r.isCIDFont=m.hasName("ROS");var y=m.getByName("CharStrings"),v=this.parseIndex(y).obj,S=m.getByName("FontMatrix");S&&(t.fontMatrix=S);var _,C,w=m.getByName("FontBBox");if(w){t.ascent=Math.max(w[3],w[1]);t.descent=Math.min(w[1],w[3]);t.ascentScaled=!0}if(r.isCIDFont){for(var x=this.parseIndex(m.getByName("FDArray")).obj,O=0,T=x.count;O<T;++O){var R=x.get(O),E=this.createDict(k,this.parseDict(R),r.strings);this.parsePrivateDict(E);r.fdArray.push(E)}C=null;_=this.parseCharsets(m.getByName("charset"),v.count,r.strings,!0);r.fdSelect=this.parseFDSelect(m.getByName("FDSelect"),v.count)}else{_=this.parseCharsets(m.getByName("charset"),v.count,r.strings,!1);C=this.parseEncoding(m.getByName("Encoding"),t,r.strings,_.charset)}r.charset=_;r.encoding=C;var M=this.parseCharStrings({charStrings:v,localSubrIndex:m.privateDict.subrsIndex,globalSubrIndex:h.obj,fdSelect:r.fdSelect,fdArray:r.fdArray,privateDict:m.privateDict});r.charStrings=M.charStrings;r.seacs=M.seacs;r.widths=M.widths;return r}},{key:"parseHeader",value:function parseHeader(){for(var t=this.bytes,r=t.length,o=0;o<r&&1!==t[o];)++o;if(o>=r)throw new l.FormatError("Invalid CFF header");if(0!==o){(0,l.info)("cff data is shifted");t=t.subarray(o);this.bytes=t}var c=t[0],u=t[1],h=t[2],d=t[3];return{obj:new y(c,u,h,d),endPos:h}}},{key:"parseDict",value:function parseDict(t){var r=0;function parseOperand(){var o=t[r++];if(30===o)return function parseFloatOperand(){var o="",l=15,c=["0","1","2","3","4","5","6","7","8","9",".","E","E-",null,"-"],u=t.length;for(;r<u;){var h=t[r++],d=h>>4,m=15&h;if(d===l)break;o+=c[d];if(m===l)break;o+=c[m]}return parseFloat(o)}();if(28===o)return o=((o=t[r++])<<24|t[r++]<<16)>>16;if(29===o)return o=(o=(o=(o=t[r++])<<8|t[r++])<<8|t[r++])<<8|t[r++];if(o>=32&&o<=246)return o-139;if(o>=247&&o<=250)return 256*(o-247)+t[r++]+108;if(o>=251&&o<=254)return-256*(o-251)-t[r++]-108;(0,l.warn)('CFFParser_parseDict: "'+o+'" is a reserved command.');return NaN}var o=[],c=[];r=0;for(var u=t.length;r<u;){var h=t[r];if(h<=21){12===h&&(h=h<<8|t[++r]);c.push([h,o]);o=[];++r}else o.push(parseOperand())}return c}},{key:"parseIndex",value:function parseIndex(t){var r,o,l=new S,c=this.bytes,u=c[t++]<<8|c[t++],h=[],d=t;if(0!==u){var m=c[t++],g=t+(u+1)*m-1;for(r=0,o=u+1;r<o;++r){for(var y=0,v=0;v<m;++v){y<<=8;y+=c[t++]}h.push(g+y)}d=h[u]}for(r=0,o=h.length-1;r<o;++r){var _=h[r],k=h[r+1];l.add(c.subarray(_,k))}return{obj:l,endPos:d}}},{key:"parseNameIndex",value:function parseNameIndex(t){for(var r=[],o=0,c=t.count;o<c;++o){var u=t.get(o);r.push((0,l.bytesToString)(u))}return r}},{key:"parseStringIndex",value:function parseStringIndex(t){for(var r=new v,o=0,c=t.count;o<c;++o){var u=t.get(o);r.add((0,l.bytesToString)(u))}return r}},{key:"createDict",value:function createDict(t,r,o){for(var l=new t(o),c=0,u=r.length;c<u;++c){var h=r[c],d=h[0],m=h[1];l.setByKey(d,m)}return l}},{key:"parseCharString",value:function parseCharString(o,c,u,h){if(!c||o.callDepth>10)return!1;for(var d=o.stackSize,m=o.stack,g=c.length,y=0;y<g;){var v=c[y++],S=null;if(12===v){var _=c[y++];if(0===_){c[y-2]=139;c[y-1]=22;d=0}else S=r[_]}else if(28===v){m[d]=(c[y]<<24|c[y+1]<<16)>>16;y+=2;d++}else if(14===v){if(d>=4){d-=4;if(this.seacAnalysisEnabled){o.seac=m.slice(d,d+4);return!1}}S=t[v]}else if(v>=32&&v<=246){m[d]=v-139;d++}else if(v>=247&&v<=254){m[d]=v<251?(v-247<<8)+c[y]+108:-(v-251<<8)-c[y]-108;y++;d++}else if(255===v){m[d]=(c[y]<<24|c[y+1]<<16|c[y+2]<<8|c[y+3])/65536;y+=4;d++}else if(19===v||20===v){o.hints+=d>>1;y+=o.hints+7>>3;d%=2;S=t[v]}else{if(10===v||29===v){var k=void 0;if(!(k=10===v?u:h)){S=t[v];(0,l.warn)("Missing subrsIndex for "+S.id);return!1}var C=32768;k.count<1240?C=107:k.count<33900&&(C=1131);var w=m[--d]+C;if(w<0||w>=k.count||isNaN(w)){S=t[v];(0,l.warn)("Out of bounds subrIndex for "+S.id);return!1}o.stackSize=d;o.callDepth++;if(!this.parseCharString(o,k.get(w),u,h))return!1;o.callDepth--;d=o.stackSize;continue}if(11===v){o.stackSize=d;return!0}if(0===v&&y===c.length){c[y-1]=14;S=t[14]}else S=t[v]}if(S){if(S.stem){o.hints+=d>>1;if(3===v||23===v)o.hasVStems=!0;else if(o.hasVStems&&(1===v||18===v)){(0,l.warn)("CFF stem hints are in wrong order");c[y-1]=1===v?3:23}}if("min"in S&&!o.undefStack&&d<S.min){(0,l.warn)("Not enough parameters for "+S.id+"; actual: "+d+", expected: "+S.min);if(0===d){c[y-1]=14;return!0}return!1}if(o.firstStackClearing&&S.stackClearing){o.firstStackClearing=!1;(d-=S.min)>=2&&S.stem?d%=2:d>1&&(0,l.warn)("Found too many parameters for stack-clearing command");d>0&&(o.width=m[d-1])}if("stackDelta"in S){"stackFn"in S&&S.stackFn(m,d);d+=S.stackDelta}else if(S.stackClearing)d=0;else if(S.resetStack){d=0;o.undefStack=!1}else if(S.undefStack){d=0;o.undefStack=!0;o.firstStackClearing=!1}}}o.stackSize=d;return!0}},{key:"parseCharStrings",value:function parseCharStrings(t){for(var r=t.charStrings,o=t.localSubrIndex,c=t.globalSubrIndex,u=t.fdSelect,h=t.fdArray,d=t.privateDict,m=[],g=[],y=r.count,v=0;v<y;v++){var S=r.get(v),_={callDepth:0,stackSize:0,stack:[],undefStack:!0,hints:0,firstStackClearing:!0,seac:null,width:null,hasVStems:!1},k=!0,C=null,w=d;if(u&&h.length){var x=u.getFDIndex(v);if(-1===x){(0,l.warn)("Glyph index is not in fd select.");k=!1}if(x>=h.length){(0,l.warn)("Invalid fd index for glyph index.");k=!1}k&&(C=(w=h[x].privateDict).subrsIndex)}else o&&(C=o);k&&(k=this.parseCharString(_,S,C,c));if(null!==_.width){var O=w.getByName("nominalWidthX");g[v]=O+_.width}else{var T=w.getByName("defaultWidthX");g[v]=T}null!==_.seac&&(m[v]=_.seac);k||r.set(v,new Uint8Array([14]))}return{charStrings:r,seacs:m,widths:g}}},{key:"emptyPrivateDictionary",value:function emptyPrivateDictionary(t){var r=this.createDict(C,[],t.strings);t.setByKey(18,[0,0]);t.privateDict=r}},{key:"parsePrivateDict",value:function parsePrivateDict(t){if(t.hasName("Private")){var r=t.getByName("Private");if(Array.isArray(r)&&2===r.length){var o=r[0],l=r[1];if(0===o||l>=this.bytes.length)this.emptyPrivateDictionary(t);else{var c=l+o,u=this.bytes.subarray(l,c),h=this.parseDict(u),d=this.createDict(C,h,t.strings);t.privateDict=d;if(d.getByName("Subrs")){var m=d.getByName("Subrs"),g=l+m;if(0===m||g>=this.bytes.length)this.emptyPrivateDictionary(t);else{var y=this.parseIndex(g);d.subrsIndex=y.obj}}}}else t.removeByName("Private")}else this.emptyPrivateDictionary(t)}},{key:"parseCharsets",value:function parseCharsets(t,r,o,u){if(0===t)return new x(!0,w.ISO_ADOBE,c.ISOAdobeCharset);if(1===t)return new x(!0,w.EXPERT,c.ExpertCharset);if(2===t)return new x(!0,w.EXPERT_SUBSET,c.ExpertSubsetCharset);var h,d,m,g=this.bytes,y=t,v=g[t++],S=[u?0:".notdef"];r-=1;switch(v){case 0:for(m=0;m<r;m++){h=g[t++]<<8|g[t++];S.push(u?h:o.get(h))}break;case 1:for(;S.length<=r;){h=g[t++]<<8|g[t++];d=g[t++];for(m=0;m<=d;m++)S.push(u?h++:o.get(h++))}break;case 2:for(;S.length<=r;){h=g[t++]<<8|g[t++];d=g[t++]<<8|g[t++];for(m=0;m<=d;m++)S.push(u?h++:o.get(h++))}break;default:throw new l.FormatError("Unknown charset format")}var _=t,k=g.subarray(y,_);return new x(!1,v,S,k)}},{key:"parseEncoding",value:function parseEncoding(t,r,o,c){var h,d,m,g=Object.create(null),y=this.bytes,v=!1,S=null;if(0===t||1===t){v=!0;h=t;var _=t?u.ExpertEncoding:u.StandardEncoding;for(d=0,m=c.length;d<m;d++){var k=_.indexOf(c[d]);-1!==k&&(g[k]=d)}}else{var C=t;switch(127&(h=y[t++])){case 0:var w=y[t++];for(d=1;d<=w;d++)g[y[t++]]=d;break;case 1:var x=y[t++],T=1;for(d=0;d<x;d++)for(var R=y[t++],E=y[t++],M=R;M<=R+E;M++)g[M]=T++;break;default:throw new l.FormatError("Unknown encoding format: ".concat(h," in CFF"))}var D=t;if(128&h){y[C]&=127;!function readSupplement(){var r=y[t++];for(d=0;d<r;d++){var l=y[t++],u=(y[t++]<<8)+(255&y[t++]);g[l]=c.indexOf(o.get(u))}}()}S=y.subarray(C,D)}return new O(v,h&=127,g,S)}},{key:"parseFDSelect",value:function parseFDSelect(t,r){var o,c=this.bytes,u=c[t++],h=[];switch(u){case 0:for(o=0;o<r;++o){var d=c[t++];h.push(d)}break;case 3:var m=c[t++]<<8|c[t++];for(o=0;o<m;++o){var g=c[t++]<<8|c[t++];if(0===o&&0!==g){(0,l.warn)("parseFDSelect: The first range must have a first GID of 0 -- trying to recover.");g=0}for(var y=c[t++],v=c[t]<<8|c[t+1],S=g;S<v;++S)h.push(y)}t+=2;break;default:throw new l.FormatError('parseFDSelect: Unknown format "'.concat(u,'".'))}if(h.length!==r)throw new l.FormatError("parseFDSelect: Invalid font data.");return new T(u,h)}}]);return CFFParser}()}();r.CFFParser=m;var g=function(){function CFF(){_classCallCheck(this,CFF);this.header=null;this.names=[];this.topDict=null;this.strings=new v;this.globalSubrIndex=null;this.encoding=null;this.charset=null;this.charStrings=null;this.fdArray=[];this.fdSelect=null;this.isCIDFont=!1}_createClass(CFF,[{key:"duplicateFirstGlyph",value:function duplicateFirstGlyph(){if(this.charStrings.count>=65535)(0,l.warn)("Not enough space in charstrings to duplicate first glyph.");else{var t=this.charStrings.get(0);this.charStrings.add(t);this.isCIDFont&&this.fdSelect.fdSelect.push(this.fdSelect.fdSelect[0])}}},{key:"hasGlyphId",value:function hasGlyphId(t){return!(t<0||t>=this.charStrings.count)&&this.charStrings.get(t).length>0}}]);return CFF}();r.CFF=g;var y=function CFFHeader(t,r,o,l){_classCallCheck(this,CFFHeader);this.major=t;this.minor=r;this.hdrSize=o;this.offSize=l};r.CFFHeader=y;var v=function(){function CFFStrings(){_classCallCheck(this,CFFStrings);this.strings=[]}_createClass(CFFStrings,[{key:"get",value:function get(t){return t>=0&&t<=390?h[t]:t-d<=this.strings.length?this.strings[t-d]:h[0]}},{key:"getSID",value:function getSID(t){var r=h.indexOf(t);return-1!==r?r:-1!==(r=this.strings.indexOf(t))?r+d:-1}},{key:"add",value:function add(t){this.strings.push(t)}},{key:"count",get:function get(){return this.strings.length}}]);return CFFStrings}();r.CFFStrings=v;var S=function(){function CFFIndex(){_classCallCheck(this,CFFIndex);this.objects=[];this.length=0}_createClass(CFFIndex,[{key:"add",value:function add(t){this.length+=t.length;this.objects.push(t)}},{key:"set",value:function set(t,r){this.length+=r.length-this.objects[t].length;this.objects[t]=r}},{key:"get",value:function get(t){return this.objects[t]}},{key:"count",get:function get(){return this.objects.length}}]);return CFFIndex}();r.CFFIndex=S;var _=function(){function CFFDict(t,r){_classCallCheck(this,CFFDict);this.keyToNameMap=t.keyToNameMap;this.nameToKeyMap=t.nameToKeyMap;this.defaults=t.defaults;this.types=t.types;this.opcodes=t.opcodes;this.order=t.order;this.strings=r;this.values=Object.create(null)}_createClass(CFFDict,[{key:"setByKey",value:function setByKey(t,r){if(!(t in this.keyToNameMap))return!1;var o=r.length;if(0===o)return!0;for(var c=0;c<o;c++)if(isNaN(r[c])){(0,l.warn)('Invalid CFFDict value: "'+r+'" for key "'+t+'".');return!0}var u=this.types[t];"num"!==u&&"sid"!==u&&"offset"!==u||(r=r[0]);this.values[t]=r;return!0}},{key:"setByName",value:function setByName(t,r){if(!(t in this.nameToKeyMap))throw new l.FormatError('Invalid dictionary name "'.concat(t,'"'));this.values[this.nameToKeyMap[t]]=r}},{key:"hasName",value:function hasName(t){return this.nameToKeyMap[t]in this.values}},{key:"getByName",value:function getByName(t){if(!(t in this.nameToKeyMap))throw new l.FormatError("Invalid dictionary name ".concat(t,'"'));var r=this.nameToKeyMap[t];return r in this.values?this.values[r]:this.defaults[r]}},{key:"removeByName",value:function removeByName(t){delete this.values[this.nameToKeyMap[t]]}}],[{key:"createTables",value:function createTables(t){for(var r={keyToNameMap:{},nameToKeyMap:{},defaults:{},types:{},opcodes:{},order:[]},o=0,l=t.length;o<l;++o){var c=t[o],u=Array.isArray(c[0])?(c[0][0]<<8)+c[0][1]:c[0];r.keyToNameMap[u]=c[1];r.nameToKeyMap[c[1]]=u;r.types[u]=c[2];r.defaults[u]=c[3];r.opcodes[u]=Array.isArray(c[0])?c[0]:[c[0]];r.order.push(u)}return r}}]);return CFFDict}(),k=function CFFTopDictClosure(){var t=[[[12,30],"ROS",["sid","sid","num"],null],[[12,20],"SyntheticBase","num",null],[0,"version","sid",null],[1,"Notice","sid",null],[[12,0],"Copyright","sid",null],[2,"FullName","sid",null],[3,"FamilyName","sid",null],[4,"Weight","sid",null],[[12,1],"isFixedPitch","num",0],[[12,2],"ItalicAngle","num",0],[[12,3],"UnderlinePosition","num",-100],[[12,4],"UnderlineThickness","num",50],[[12,5],"PaintType","num",0],[[12,6],"CharstringType","num",2],[[12,7],"FontMatrix",["num","num","num","num","num","num"],[.001,0,0,.001,0,0]],[13,"UniqueID","num",null],[5,"FontBBox",["num","num","num","num"],[0,0,0,0]],[[12,8],"StrokeWidth","num",0],[14,"XUID","array",null],[15,"charset","offset",0],[16,"Encoding","offset",0],[17,"CharStrings","offset",0],[18,"Private",["offset","offset"],null],[[12,21],"PostScript","sid",null],[[12,22],"BaseFontName","sid",null],[[12,23],"BaseFontBlend","delta",null],[[12,31],"CIDFontVersion","num",0],[[12,32],"CIDFontRevision","num",0],[[12,33],"CIDFontType","num",0],[[12,34],"CIDCount","num",8720],[[12,35],"UIDBase","num",null],[[12,37],"FDSelect","offset",null],[[12,36],"FDArray","offset",null],[[12,38],"FontName","sid",null]],r=null;return function(o){_inherits(CFFTopDict,o);var l=_createSuper(CFFTopDict);function CFFTopDict(o){var c;_classCallCheck(this,CFFTopDict);null===r&&(r=_.createTables(t));(c=l.call(this,r,o)).privateDict=null;return c}return CFFTopDict}(_)}();r.CFFTopDict=k;var C=function CFFPrivateDictClosure(){var t=[[6,"BlueValues","delta",null],[7,"OtherBlues","delta",null],[8,"FamilyBlues","delta",null],[9,"FamilyOtherBlues","delta",null],[[12,9],"BlueScale","num",.039625],[[12,10],"BlueShift","num",7],[[12,11],"BlueFuzz","num",1],[10,"StdHW","num",null],[11,"StdVW","num",null],[[12,12],"StemSnapH","delta",null],[[12,13],"StemSnapV","delta",null],[[12,14],"ForceBold","num",0],[[12,17],"LanguageGroup","num",0],[[12,18],"ExpansionFactor","num",.06],[[12,19],"initialRandomSeed","num",0],[20,"defaultWidthX","num",0],[21,"nominalWidthX","num",0],[19,"Subrs","offset",null]],r=null;return function(o){_inherits(CFFPrivateDict,o);var l=_createSuper(CFFPrivateDict);function CFFPrivateDict(o){var c;_classCallCheck(this,CFFPrivateDict);null===r&&(r=_.createTables(t));(c=l.call(this,r,o)).subrsIndex=null;return c}return CFFPrivateDict}(_)}();r.CFFPrivateDict=C;var w={ISO_ADOBE:0,EXPERT:1,EXPERT_SUBSET:2},x=function CFFCharset(t,r,o,l){_classCallCheck(this,CFFCharset);this.predefined=t;this.format=r;this.charset=o;this.raw=l};r.CFFCharset=x;var O=function CFFEncoding(t,r,o,l){_classCallCheck(this,CFFEncoding);this.predefined=t;this.format=r;this.encoding=o;this.raw=l},T=function(){function CFFFDSelect(t,r){_classCallCheck(this,CFFFDSelect);this.format=t;this.fdSelect=r}_createClass(CFFFDSelect,[{key:"getFDIndex",value:function getFDIndex(t){return t<0||t>=this.fdSelect.length?-1:this.fdSelect[t]}}]);return CFFFDSelect}();r.CFFFDSelect=T;var R=function(){function CFFOffsetTracker(){_classCallCheck(this,CFFOffsetTracker);this.offsets=Object.create(null)}_createClass(CFFOffsetTracker,[{key:"isTracking",value:function isTracking(t){return t in this.offsets}},{key:"track",value:function track(t,r){if(t in this.offsets)throw new l.FormatError("Already tracking location of ".concat(t));this.offsets[t]=r}},{key:"offset",value:function offset(t){for(var r in this.offsets)this.offsets[r]+=t}},{key:"setEntryLocation",value:function setEntryLocation(t,r,o){if(!(t in this.offsets))throw new l.FormatError("Not tracking location of ".concat(t));for(var c=o.data,u=this.offsets[t],h=0,d=r.length;h<d;++h){var m=5*h+u,g=m+1,y=m+2,v=m+3,S=m+4;if(29!==c[m]||0!==c[g]||0!==c[y]||0!==c[v]||0!==c[S])throw new l.FormatError("writing to an offset that is not empty");var _=r[h];c[m]=29;c[g]=_>>24&255;c[y]=_>>16&255;c[v]=_>>8&255;c[S]=255&_}}}]);return CFFOffsetTracker}(),E=function(){function CFFCompiler(t){_classCallCheck(this,CFFCompiler);this.cff=t}_createClass(CFFCompiler,[{key:"compile",value:function compile(){var t=this.cff,r={data:[],length:0,add:function CFFCompiler_add(t){this.data=this.data.concat(t);this.length=this.data.length}},o=this.compileHeader(t.header);r.add(o);var c=this.compileNameIndex(t.names);r.add(c);if(t.isCIDFont&&t.topDict.hasName("FontMatrix")){var u=t.topDict.getByName("FontMatrix");t.topDict.removeByName("FontMatrix");for(var h=0,d=t.fdArray.length;h<d;h++){var m=t.fdArray[h],g=u.slice(0);m.hasName("FontMatrix")&&(g=l.Util.transform(g,m.getByName("FontMatrix")));m.setByName("FontMatrix",g)}}var y=t.topDict.getByName("XUID");y&&y.length>16&&t.topDict.removeByName("XUID");t.topDict.setByName("charset",0);var v=this.compileTopDicts([t.topDict],r.length,t.isCIDFont);r.add(v.output);var S=v.trackers[0],_=this.compileStringIndex(t.strings.strings);r.add(_);var k=this.compileIndex(t.globalSubrIndex);r.add(k);if(t.encoding&&t.topDict.hasName("Encoding"))if(t.encoding.predefined)S.setEntryLocation("Encoding",[t.encoding.format],r);else{var C=this.compileEncoding(t.encoding);S.setEntryLocation("Encoding",[r.length],r);r.add(C)}var w=this.compileCharset(t.charset,t.charStrings.count,t.strings,t.isCIDFont);S.setEntryLocation("charset",[r.length],r);r.add(w);var x=this.compileCharStrings(t.charStrings);S.setEntryLocation("CharStrings",[r.length],r);r.add(x);if(t.isCIDFont){S.setEntryLocation("FDSelect",[r.length],r);var O=this.compileFDSelect(t.fdSelect);r.add(O);v=this.compileTopDicts(t.fdArray,r.length,!0);S.setEntryLocation("FDArray",[r.length],r);r.add(v.output);var T=v.trackers;this.compilePrivateDicts(t.fdArray,T,r)}this.compilePrivateDicts([t.topDict],[S],r);r.add([0]);return r.data}},{key:"encodeNumber",value:function encodeNumber(t){return Number.isInteger(t)?this.encodeInteger(t):this.encodeFloat(t)}},{key:"encodeFloat",value:function encodeFloat(t){var r=t.toString(),o=CFFCompiler.EncodeFloatRegExp.exec(r);if(o){var l=parseFloat("1e"+((o[2]?+o[2]:0)+o[1].length));r=(Math.round(t*l)/l).toString()}var c,u,h="";for(c=0,u=r.length;c<u;++c){var d=r[c];h+="e"===d?"-"===r[++c]?"c":"b":"."===d?"a":"-"===d?"e":d}var m=[30];for(c=0,u=(h+=1&h.length?"f":"ff").length;c<u;c+=2)m.push(parseInt(h.substring(c,c+2),16));return m}},{key:"encodeInteger",value:function encodeInteger(t){return t>=-107&&t<=107?[t+139]:t>=108&&t<=1131?[247+((t-=108)>>8),255&t]:t>=-1131&&t<=-108?[251+((t=-t-108)>>8),255&t]:t>=-32768&&t<=32767?[28,t>>8&255,255&t]:[29,t>>24&255,t>>16&255,t>>8&255,255&t]}},{key:"compileHeader",value:function compileHeader(t){return[t.major,t.minor,4,t.offSize]}},{key:"compileNameIndex",value:function compileNameIndex(t){for(var r=new S,o=0,c=t.length;o<c;++o){for(var u=t[o],h=Math.min(u.length,127),d=new Array(h),m=0;m<h;m++){var g=u[m];(g<"!"||g>"~"||"["===g||"]"===g||"("===g||")"===g||"{"===g||"}"===g||"<"===g||">"===g||"/"===g||"%"===g)&&(g="_");d[m]=g}""===(d=d.join(""))&&(d="Bad_Font_Name");r.add((0,l.stringToBytes)(d))}return this.compileIndex(r)}},{key:"compileTopDicts",value:function compileTopDicts(t,r,o){for(var l=[],c=new S,u=0,h=t.length;u<h;++u){var d=t[u];if(o){d.removeByName("CIDFontVersion");d.removeByName("CIDFontRevision");d.removeByName("CIDFontType");d.removeByName("CIDCount");d.removeByName("UIDBase")}var m=new R,g=this.compileDict(d,m);l.push(m);c.add(g);m.offset(r)}return{trackers:l,output:c=this.compileIndex(c,l)}}},{key:"compilePrivateDicts",value:function compilePrivateDicts(t,r,o){for(var c=0,u=t.length;c<u;++c){var h=t[c],d=h.privateDict;if(!d||!h.hasName("Private"))throw new l.FormatError("There must be a private dictionary.");var m=new R,g=this.compileDict(d,m),y=o.length;m.offset(y);g.length||(y=0);r[c].setEntryLocation("Private",[g.length,y],o);o.add(g);if(d.subrsIndex&&d.hasName("Subrs")){var v=this.compileIndex(d.subrsIndex);m.setEntryLocation("Subrs",[g.length],o);o.add(v)}}}},{key:"compileDict",value:function compileDict(t,r){for(var o=[],c=t.order,u=0;u<c.length;++u){var h=c[u];if(h in t.values){var d=t.values[h],m=t.types[h];Array.isArray(m)||(m=[m]);Array.isArray(d)||(d=[d]);if(0!==d.length){for(var g=0,y=m.length;g<y;++g){var v=m[g],S=d[g];switch(v){case"num":case"sid":o=o.concat(this.encodeNumber(S));break;case"offset":var _=t.keyToNameMap[h];r.isTracking(_)||r.track(_,o.length);o=o.concat([29,0,0,0,0]);break;case"array":case"delta":o=o.concat(this.encodeNumber(S));for(var k=1,C=d.length;k<C;++k)o=o.concat(this.encodeNumber(d[k]));break;default:throw new l.FormatError("Unknown data type of ".concat(v))}}o=o.concat(t.opcodes[h])}}}return o}},{key:"compileStringIndex",value:function compileStringIndex(t){for(var r=new S,o=0,c=t.length;o<c;++o)r.add((0,l.stringToBytes)(t[o]));return this.compileIndex(r)}},{key:"compileGlobalSubrIndex",value:function compileGlobalSubrIndex(){var t=this.cff.globalSubrIndex;this.out.writeByteArray(this.compileIndex(t))}},{key:"compileCharStrings",value:function compileCharStrings(t){for(var r=new S,o=0;o<t.count;o++){var l=t.get(o);0!==l.length?r.add(l):r.add(new Uint8Array([139,14]))}return this.compileIndex(r)}},{key:"compileCharset",value:function compileCharset(t,r,o,c){var u,h=r-1;if(c)u=new Uint8Array([2,0,0,h>>8&255,255&h]);else{(u=new Uint8Array(1+2*h))[0]=0;for(var d=0,m=t.charset.length,g=!1,y=1;y<u.length;y+=2){var v=0;if(d<m){var S=t.charset[d++];if(-1===(v=o.getSID(S))){v=0;if(!g){g=!0;(0,l.warn)("Couldn't find ".concat(S," in CFF strings"))}}}u[y]=v>>8&255;u[y+1]=255&v}}return this.compileTypedArray(u)}},{key:"compileEncoding",value:function compileEncoding(t){return this.compileTypedArray(t.raw)}},{key:"compileFDSelect",value:function compileFDSelect(t){var r,o,l=t.format;switch(l){case 0:(r=new Uint8Array(1+t.fdSelect.length))[0]=l;for(o=0;o<t.fdSelect.length;o++)r[o+1]=t.fdSelect[o];break;case 3:var c=t.fdSelect[0],u=[l,0,0,0,0,c];for(o=1;o<t.fdSelect.length;o++){var h=t.fdSelect[o];if(h!==c){u.push(o>>8&255,255&o,h);c=h}}var d=(u.length-3)/3;u[1]=d>>8&255;u[2]=255&d;u.push(o>>8&255,255&o);r=new Uint8Array(u)}return this.compileTypedArray(r)}},{key:"compileTypedArray",value:function compileTypedArray(t){for(var r=[],o=0,l=t.length;o<l;++o)r[o]=t[o];return r}},{key:"compileIndex",value:function compileIndex(t){var r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[],o=t.objects,l=o.length;if(0===l)return[0,0,0];var c,u,h=[l>>8&255,255&l],d=1;for(c=0;c<l;++c)d+=o[c].length;u=d<256?1:d<65536?2:d<16777216?3:4;h.push(u);var m=1;for(c=0;c<l+1;c++){1===u?h.push(255&m):2===u?h.push(m>>8&255,255&m):3===u?h.push(m>>16&255,m>>8&255,255&m):h.push(m>>>24&255,m>>16&255,m>>8&255,255&m);o[c]&&(m+=o[c].length)}for(c=0;c<l;c++){r[c]&&r[c].offset(h.length);for(var g=0,y=o[c].length;g<y;g++)h.push(o[c][g])}return h}}],[{key:"EncodeFloatRegExp",get:function get(){return(0,l.shadow)(this,"EncodeFloatRegExp",/\.(\d*?)(?:9{5,20}|0{5,20})\d{0,2}(?:e(.+)|$)/)}}]);return CFFCompiler}();r.CFFCompiler=E},(t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});r.ISOAdobeCharset=r.ExpertSubsetCharset=r.ExpertCharset=void 0;r.ISOAdobeCharset=[".notdef","space","exclam","quotedbl","numbersign","dollar","percent","ampersand","quoteright","parenleft","parenright","asterisk","plus","comma","hyphen","period","slash","zero","one","two","three","four","five","six","seven","eight","nine","colon","semicolon","less","equal","greater","question","at","A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z","bracketleft","backslash","bracketright","asciicircum","underscore","quoteleft","a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s","t","u","v","w","x","y","z","braceleft","bar","braceright","asciitilde","exclamdown","cent","sterling","fraction","yen","florin","section","currency","quotesingle","quotedblleft","guillemotleft","guilsinglleft","guilsinglright","fi","fl","endash","dagger","daggerdbl","periodcentered","paragraph","bullet","quotesinglbase","quotedblbase","quotedblright","guillemotright","ellipsis","perthousand","questiondown","grave","acute","circumflex","tilde","macron","breve","dotaccent","dieresis","ring","cedilla","hungarumlaut","ogonek","caron","emdash","AE","ordfeminine","Lslash","Oslash","OE","ordmasculine","ae","dotlessi","lslash","oslash","oe","germandbls","onesuperior","logicalnot","mu","trademark","Eth","onehalf","plusminus","Thorn","onequarter","divide","brokenbar","degree","thorn","threequarters","twosuperior","registered","minus","eth","multiply","threesuperior","copyright","Aacute","Acircumflex","Adieresis","Agrave","Aring","Atilde","Ccedilla","Eacute","Ecircumflex","Edieresis","Egrave","Iacute","Icircumflex","Idieresis","Igrave","Ntilde","Oacute","Ocircumflex","Odieresis","Ograve","Otilde","Scaron","Uacute","Ucircumflex","Udieresis","Ugrave","Yacute","Ydieresis","Zcaron","aacute","acircumflex","adieresis","agrave","aring","atilde","ccedilla","eacute","ecircumflex","edieresis","egrave","iacute","icircumflex","idieresis","igrave","ntilde","oacute","ocircumflex","odieresis","ograve","otilde","scaron","uacute","ucircumflex","udieresis","ugrave","yacute","ydieresis","zcaron"];r.ExpertCharset=[".notdef","space","exclamsmall","Hungarumlautsmall","dollaroldstyle","dollarsuperior","ampersandsmall","Acutesmall","parenleftsuperior","parenrightsuperior","twodotenleader","onedotenleader","comma","hyphen","period","fraction","zerooldstyle","oneoldstyle","twooldstyle","threeoldstyle","fouroldstyle","fiveoldstyle","sixoldstyle","sevenoldstyle","eightoldstyle","nineoldstyle","colon","semicolon","commasuperior","threequartersemdash","periodsuperior","questionsmall","asuperior","bsuperior","centsuperior","dsuperior","esuperior","isuperior","lsuperior","msuperior","nsuperior","osuperior","rsuperior","ssuperior","tsuperior","ff","fi","fl","ffi","ffl","parenleftinferior","parenrightinferior","Circumflexsmall","hyphensuperior","Gravesmall","Asmall","Bsmall","Csmall","Dsmall","Esmall","Fsmall","Gsmall","Hsmall","Ismall","Jsmall","Ksmall","Lsmall","Msmall","Nsmall","Osmall","Psmall","Qsmall","Rsmall","Ssmall","Tsmall","Usmall","Vsmall","Wsmall","Xsmall","Ysmall","Zsmall","colonmonetary","onefitted","rupiah","Tildesmall","exclamdownsmall","centoldstyle","Lslashsmall","Scaronsmall","Zcaronsmall","Dieresissmall","Brevesmall","Caronsmall","Dotaccentsmall","Macronsmall","figuredash","hypheninferior","Ogoneksmall","Ringsmall","Cedillasmall","onequarter","onehalf","threequarters","questiondownsmall","oneeighth","threeeighths","fiveeighths","seveneighths","onethird","twothirds","zerosuperior","onesuperior","twosuperior","threesuperior","foursuperior","fivesuperior","sixsuperior","sevensuperior","eightsuperior","ninesuperior","zeroinferior","oneinferior","twoinferior","threeinferior","fourinferior","fiveinferior","sixinferior","seveninferior","eightinferior","nineinferior","centinferior","dollarinferior","periodinferior","commainferior","Agravesmall","Aacutesmall","Acircumflexsmall","Atildesmall","Adieresissmall","Aringsmall","AEsmall","Ccedillasmall","Egravesmall","Eacutesmall","Ecircumflexsmall","Edieresissmall","Igravesmall","Iacutesmall","Icircumflexsmall","Idieresissmall","Ethsmall","Ntildesmall","Ogravesmall","Oacutesmall","Ocircumflexsmall","Otildesmall","Odieresissmall","OEsmall","Oslashsmall","Ugravesmall","Uacutesmall","Ucircumflexsmall","Udieresissmall","Yacutesmall","Thornsmall","Ydieresissmall"];r.ExpertSubsetCharset=[".notdef","space","dollaroldstyle","dollarsuperior","parenleftsuperior","parenrightsuperior","twodotenleader","onedotenleader","comma","hyphen","period","fraction","zerooldstyle","oneoldstyle","twooldstyle","threeoldstyle","fouroldstyle","fiveoldstyle","sixoldstyle","sevenoldstyle","eightoldstyle","nineoldstyle","colon","semicolon","commasuperior","threequartersemdash","periodsuperior","asuperior","bsuperior","centsuperior","dsuperior","esuperior","isuperior","lsuperior","msuperior","nsuperior","osuperior","rsuperior","ssuperior","tsuperior","ff","fi","fl","ffi","ffl","parenleftinferior","parenrightinferior","hyphensuperior","colonmonetary","onefitted","rupiah","centoldstyle","figuredash","hypheninferior","onequarter","onehalf","threequarters","oneeighth","threeeighths","fiveeighths","seveneighths","onethird","twothirds","zerosuperior","onesuperior","twosuperior","threesuperior","foursuperior","fivesuperior","sixsuperior","sevensuperior","eightsuperior","ninesuperior","zeroinferior","oneinferior","twoinferior","threeinferior","fourinferior","fiveinferior","sixinferior","seveninferior","eightinferior","nineinferior","centinferior","dollarinferior","periodinferior","commainferior"]},(t,r,o)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});r.getStandardFontName=function getStandardFontName(t){var r=(0,c.normalizeFontName)(t);return u()[r]};r.getSymbolsFonts=r.getSupplementalGlyphMapForCalibri=r.getSupplementalGlyphMapForArialBlack=r.getStdFontMap=r.getSerifFonts=r.getNonStdFontMap=r.getGlyphMapForStandardFonts=r.getFontNameToFileMap=void 0;var l=o(122),c=o(131),u=(0,l.getLookupTableFactory)((function(t){t["Times-Roman"]="Times-Roman";t.Helvetica="Helvetica";t.Courier="Courier";t.Symbol="Symbol";t["Times-Bold"]="Times-Bold";t["Helvetica-Bold"]="Helvetica-Bold";t["Courier-Bold"]="Courier-Bold";t.ZapfDingbats="ZapfDingbats";t["Times-Italic"]="Times-Italic";t["Helvetica-Oblique"]="Helvetica-Oblique";t["Courier-Oblique"]="Courier-Oblique";t["Times-BoldItalic"]="Times-BoldItalic";t["Helvetica-BoldOblique"]="Helvetica-BoldOblique";t["Courier-BoldOblique"]="Courier-BoldOblique";t.ArialNarrow="Helvetica";t["ArialNarrow-Bold"]="Helvetica-Bold";t["ArialNarrow-BoldItalic"]="Helvetica-BoldOblique";t["ArialNarrow-Italic"]="Helvetica-Oblique";t.ArialBlack="Helvetica";t["ArialBlack-Bold"]="Helvetica-Bold";t["ArialBlack-BoldItalic"]="Helvetica-BoldOblique";t["ArialBlack-Italic"]="Helvetica-Oblique";t["Arial-Black"]="Helvetica";t["Arial-Black-Bold"]="Helvetica-Bold";t["Arial-Black-BoldItalic"]="Helvetica-BoldOblique";t["Arial-Black-Italic"]="Helvetica-Oblique";t.Arial="Helvetica";t["Arial-Bold"]="Helvetica-Bold";t["Arial-BoldItalic"]="Helvetica-BoldOblique";t["Arial-Italic"]="Helvetica-Oblique";t["Arial-BoldItalicMT"]="Helvetica-BoldOblique";t["Arial-BoldMT"]="Helvetica-Bold";t["Arial-ItalicMT"]="Helvetica-Oblique";t.ArialMT="Helvetica";t["Courier-BoldItalic"]="Courier-BoldOblique";t["Courier-Italic"]="Courier-Oblique";t.CourierNew="Courier";t["CourierNew-Bold"]="Courier-Bold";t["CourierNew-BoldItalic"]="Courier-BoldOblique";t["CourierNew-Italic"]="Courier-Oblique";t["CourierNewPS-BoldItalicMT"]="Courier-BoldOblique";t["CourierNewPS-BoldMT"]="Courier-Bold";t["CourierNewPS-ItalicMT"]="Courier-Oblique";t.CourierNewPSMT="Courier";t["Helvetica-BoldItalic"]="Helvetica-BoldOblique";t["Helvetica-Italic"]="Helvetica-Oblique";t["Symbol-Bold"]="Symbol";t["Symbol-BoldItalic"]="Symbol";t["Symbol-Italic"]="Symbol";t.TimesNewRoman="Times-Roman";t["TimesNewRoman-Bold"]="Times-Bold";t["TimesNewRoman-BoldItalic"]="Times-BoldItalic";t["TimesNewRoman-Italic"]="Times-Italic";t.TimesNewRomanPS="Times-Roman";t["TimesNewRomanPS-Bold"]="Times-Bold";t["TimesNewRomanPS-BoldItalic"]="Times-BoldItalic";t["TimesNewRomanPS-BoldItalicMT"]="Times-BoldItalic";t["TimesNewRomanPS-BoldMT"]="Times-Bold";t["TimesNewRomanPS-Italic"]="Times-Italic";t["TimesNewRomanPS-ItalicMT"]="Times-Italic";t.TimesNewRomanPSMT="Times-Roman";t["TimesNewRomanPSMT-Bold"]="Times-Bold";t["TimesNewRomanPSMT-BoldItalic"]="Times-BoldItalic";t["TimesNewRomanPSMT-Italic"]="Times-Italic"}));r.getStdFontMap=u;var h=(0,l.getLookupTableFactory)((function(t){t.Courier="FoxitFixed.pfb";t["Courier-Bold"]="FoxitFixedBold.pfb";t["Courier-BoldOblique"]="FoxitFixedBoldItalic.pfb";t["Courier-Oblique"]="FoxitFixedItalic.pfb";t.Helvetica="FoxitSans.pfb";t["Helvetica-Bold"]="FoxitSansBold.pfb";t["Helvetica-BoldOblique"]="FoxitSansBoldItalic.pfb";t["Helvetica-Oblique"]="FoxitSansItalic.pfb";t["Times-Roman"]="FoxitSerif.pfb";t["Times-Bold"]="FoxitSerifBold.pfb";t["Times-BoldItalic"]="FoxitSerifBoldItalic.pfb";t["Times-Italic"]="FoxitSerifItalic.pfb";t.Symbol="FoxitSymbol.pfb";t.ZapfDingbats="FoxitDingbats.pfb";t["LiberationSans-Regular"]="LiberationSans-Regular.ttf";t["LiberationSans-Bold"]="LiberationSans-Bold.ttf";t["LiberationSans-Italic"]="LiberationSans-Italic.ttf";t["LiberationSans-BoldItalic"]="LiberationSans-BoldItalic.ttf"}));r.getFontNameToFileMap=h;var d=(0,l.getLookupTableFactory)((function(t){t.Calibri="Helvetica";t["Calibri-Bold"]="Helvetica-Bold";t["Calibri-BoldItalic"]="Helvetica-BoldOblique";t["Calibri-Italic"]="Helvetica-Oblique";t.CenturyGothic="Helvetica";t["CenturyGothic-Bold"]="Helvetica-Bold";t["CenturyGothic-BoldItalic"]="Helvetica-BoldOblique";t["CenturyGothic-Italic"]="Helvetica-Oblique";t.ComicSansMS="Comic Sans MS";t["ComicSansMS-Bold"]="Comic Sans MS-Bold";t["ComicSansMS-BoldItalic"]="Comic Sans MS-BoldItalic";t["ComicSansMS-Italic"]="Comic Sans MS-Italic";t["ItcSymbol-Bold"]="Helvetica-Bold";t["ItcSymbol-BoldItalic"]="Helvetica-BoldOblique";t["ItcSymbol-Book"]="Helvetica";t["ItcSymbol-BookItalic"]="Helvetica-Oblique";t["ItcSymbol-Medium"]="Helvetica";t["ItcSymbol-MediumItalic"]="Helvetica-Oblique";t.LucidaConsole="Courier";t["LucidaConsole-Bold"]="Courier-Bold";t["LucidaConsole-BoldItalic"]="Courier-BoldOblique";t["LucidaConsole-Italic"]="Courier-Oblique";t["LucidaSans-Demi"]="Helvetica-Bold";t["MS-Gothic"]="MS Gothic";t["MS-Gothic-Bold"]="MS Gothic-Bold";t["MS-Gothic-BoldItalic"]="MS Gothic-BoldItalic";t["MS-Gothic-Italic"]="MS Gothic-Italic";t["MS-Mincho"]="MS Mincho";t["MS-Mincho-Bold"]="MS Mincho-Bold";t["MS-Mincho-BoldItalic"]="MS Mincho-BoldItalic";t["MS-Mincho-Italic"]="MS Mincho-Italic";t["MS-PGothic"]="MS PGothic";t["MS-PGothic-Bold"]="MS PGothic-Bold";t["MS-PGothic-BoldItalic"]="MS PGothic-BoldItalic";t["MS-PGothic-Italic"]="MS PGothic-Italic";t["MS-PMincho"]="MS PMincho";t["MS-PMincho-Bold"]="MS PMincho-Bold";t["MS-PMincho-BoldItalic"]="MS PMincho-BoldItalic";t["MS-PMincho-Italic"]="MS PMincho-Italic";t.NuptialScript="Times-Italic";t.SegoeUISymbol="Helvetica";t.Wingdings="ZapfDingbats";t["Wingdings-Regular"]="ZapfDingbats"}));r.getNonStdFontMap=d;var m=(0,l.getLookupTableFactory)((function(t){t["Adobe Jenson"]=!0;t["Adobe Text"]=!0;t.Albertus=!0;t.Aldus=!0;t.Alexandria=!0;t.Algerian=!0;t["American Typewriter"]=!0;t.Antiqua=!0;t.Apex=!0;t.Arno=!0;t.Aster=!0;t.Aurora=!0;t.Baskerville=!0;t.Bell=!0;t.Bembo=!0;t["Bembo Schoolbook"]=!0;t.Benguiat=!0;t["Berkeley Old Style"]=!0;t["Bernhard Modern"]=!0;t["Berthold City"]=!0;t.Bodoni=!0;t["Bauer Bodoni"]=!0;t["Book Antiqua"]=!0;t.Bookman=!0;t["Bordeaux Roman"]=!0;t["Californian FB"]=!0;t.Calisto=!0;t.Calvert=!0;t.Capitals=!0;t.Cambria=!0;t.Cartier=!0;t.Caslon=!0;t.Catull=!0;t.Centaur=!0;t["Century Old Style"]=!0;t["Century Schoolbook"]=!0;t.Chaparral=!0;t["Charis SIL"]=!0;t.Cheltenham=!0;t["Cholla Slab"]=!0;t.Clarendon=!0;t.Clearface=!0;t.Cochin=!0;t.Colonna=!0;t["Computer Modern"]=!0;t["Concrete Roman"]=!0;t.Constantia=!0;t["Cooper Black"]=!0;t.Corona=!0;t.Ecotype=!0;t.Egyptienne=!0;t.Elephant=!0;t.Excelsior=!0;t.Fairfield=!0;t["FF Scala"]=!0;t.Folkard=!0;t.Footlight=!0;t.FreeSerif=!0;t["Friz Quadrata"]=!0;t.Garamond=!0;t.Gentium=!0;t.Georgia=!0;t.Gloucester=!0;t["Goudy Old Style"]=!0;t["Goudy Schoolbook"]=!0;t["Goudy Pro Font"]=!0;t.Granjon=!0;t["Guardian Egyptian"]=!0;t.Heather=!0;t.Hercules=!0;t["High Tower Text"]=!0;t.Hiroshige=!0;t["Hoefler Text"]=!0;t["Humana Serif"]=!0;t.Imprint=!0;t["Ionic No. 5"]=!0;t.Janson=!0;t.Joanna=!0;t.Korinna=!0;t.Lexicon=!0;t.LiberationSerif=!0;t["Liberation Serif"]=!0;t["Linux Libertine"]=!0;t.Literaturnaya=!0;t.Lucida=!0;t["Lucida Bright"]=!0;t.Melior=!0;t.Memphis=!0;t.Miller=!0;t.Minion=!0;t.Modern=!0;t["Mona Lisa"]=!0;t["Mrs Eaves"]=!0;t["MS Serif"]=!0;t["Museo Slab"]=!0;t["New York"]=!0;t["Nimbus Roman"]=!0;t["NPS Rawlinson Roadway"]=!0;t.NuptialScript=!0;t.Palatino=!0;t.Perpetua=!0;t.Plantin=!0;t["Plantin Schoolbook"]=!0;t.Playbill=!0;t["Poor Richard"]=!0;t["Rawlinson Roadway"]=!0;t.Renault=!0;t.Requiem=!0;t.Rockwell=!0;t.Roman=!0;t["Rotis Serif"]=!0;t.Sabon=!0;t.Scala=!0;t.Seagull=!0;t.Sistina=!0;t.Souvenir=!0;t.STIX=!0;t["Stone Informal"]=!0;t["Stone Serif"]=!0;t.Sylfaen=!0;t.Times=!0;t.Trajan=!0;t["Trinité"]=!0;t["Trump Mediaeval"]=!0;t.Utopia=!0;t["Vale Type"]=!0;t["Bitstream Vera"]=!0;t["Vera Serif"]=!0;t.Versailles=!0;t.Wanted=!0;t.Weiss=!0;t["Wide Latin"]=!0;t.Windsor=!0;t.XITS=!0}));r.getSerifFonts=m;var g=(0,l.getLookupTableFactory)((function(t){t.Dingbats=!0;t.Symbol=!0;t.ZapfDingbats=!0}));r.getSymbolsFonts=g;var y=(0,l.getLookupTableFactory)((function(t){t[2]=10;t[3]=32;t[4]=33;t[5]=34;t[6]=35;t[7]=36;t[8]=37;t[9]=38;t[10]=39;t[11]=40;t[12]=41;t[13]=42;t[14]=43;t[15]=44;t[16]=45;t[17]=46;t[18]=47;t[19]=48;t[20]=49;t[21]=50;t[22]=51;t[23]=52;t[24]=53;t[25]=54;t[26]=55;t[27]=56;t[28]=57;t[29]=58;t[30]=894;t[31]=60;t[32]=61;t[33]=62;t[34]=63;t[35]=64;t[36]=65;t[37]=66;t[38]=67;t[39]=68;t[40]=69;t[41]=70;t[42]=71;t[43]=72;t[44]=73;t[45]=74;t[46]=75;t[47]=76;t[48]=77;t[49]=78;t[50]=79;t[51]=80;t[52]=81;t[53]=82;t[54]=83;t[55]=84;t[56]=85;t[57]=86;t[58]=87;t[59]=88;t[60]=89;t[61]=90;t[62]=91;t[63]=92;t[64]=93;t[65]=94;t[66]=95;t[67]=96;t[68]=97;t[69]=98;t[70]=99;t[71]=100;t[72]=101;t[73]=102;t[74]=103;t[75]=104;t[76]=105;t[77]=106;t[78]=107;t[79]=108;t[80]=109;t[81]=110;t[82]=111;t[83]=112;t[84]=113;t[85]=114;t[86]=115;t[87]=116;t[88]=117;t[89]=118;t[90]=119;t[91]=120;t[92]=121;t[93]=122;t[94]=123;t[95]=124;t[96]=125;t[97]=126;t[98]=196;t[99]=197;t[100]=199;t[101]=201;t[102]=209;t[103]=214;t[104]=220;t[105]=225;t[106]=224;t[107]=226;t[108]=228;t[109]=227;t[110]=229;t[111]=231;t[112]=233;t[113]=232;t[114]=234;t[115]=235;t[116]=237;t[117]=236;t[118]=238;t[119]=239;t[120]=241;t[121]=243;t[122]=242;t[123]=244;t[124]=246;t[125]=245;t[126]=250;t[127]=249;t[128]=251;t[129]=252;t[130]=8224;t[131]=176;t[132]=162;t[133]=163;t[134]=167;t[135]=8226;t[136]=182;t[137]=223;t[138]=174;t[139]=169;t[140]=8482;t[141]=180;t[142]=168;t[143]=8800;t[144]=198;t[145]=216;t[146]=8734;t[147]=177;t[148]=8804;t[149]=8805;t[150]=165;t[151]=181;t[152]=8706;t[153]=8721;t[154]=8719;t[156]=8747;t[157]=170;t[158]=186;t[159]=8486;t[160]=230;t[161]=248;t[162]=191;t[163]=161;t[164]=172;t[165]=8730;t[166]=402;t[167]=8776;t[168]=8710;t[169]=171;t[170]=187;t[171]=8230;t[200]=193;t[203]=205;t[210]=218;t[223]=711;t[224]=321;t[225]=322;t[226]=352;t[227]=353;t[228]=381;t[229]=382;t[233]=221;t[234]=253;t[252]=263;t[253]=268;t[254]=269;t[258]=258;t[260]=260;t[261]=261;t[265]=280;t[266]=281;t[267]=282;t[268]=283;t[269]=313;t[275]=323;t[276]=324;t[278]=328;t[283]=344;t[284]=345;t[285]=346;t[286]=347;t[292]=367;t[295]=377;t[296]=378;t[298]=380;t[305]=963;t[306]=964;t[307]=966;t[308]=8215;t[309]=8252;t[310]=8319;t[311]=8359;t[312]=8592;t[313]=8593;t[337]=9552;t[493]=1039;t[494]=1040;t[705]=1524;t[706]=8362;t[710]=64288;t[711]=64298;t[759]=1617;t[761]=1776;t[763]=1778;t[775]=1652;t[777]=1764;t[778]=1780;t[779]=1781;t[780]=1782;t[782]=771;t[783]=64726;t[786]=8363;t[788]=8532;t[790]=768;t[791]=769;t[792]=768;t[795]=803;t[797]=64336;t[798]=64337;t[799]=64342;t[800]=64343;t[801]=64344;t[802]=64345;t[803]=64362;t[804]=64363;t[805]=64364;t[2424]=7821;t[2425]=7822;t[2426]=7823;t[2427]=7824;t[2428]=7825;t[2429]=7826;t[2430]=7827;t[2433]=7682;t[2678]=8045;t[2679]=8046;t[2830]=1552;t[2838]=686;t[2840]=751;t[2842]=753;t[2843]=754;t[2844]=755;t[2846]=757;t[2856]=767;t[2857]=848;t[2858]=849;t[2862]=853;t[2863]=854;t[2864]=855;t[2865]=861;t[2866]=862;t[2906]=7460;t[2908]=7462;t[2909]=7463;t[2910]=7464;t[2912]=7466;t[2913]=7467;t[2914]=7468;t[2916]=7470;t[2917]=7471;t[2918]=7472;t[2920]=7474;t[2921]=7475;t[2922]=7476;t[2924]=7478;t[2925]=7479;t[2926]=7480;t[2928]=7482;t[2929]=7483;t[2930]=7484;t[2932]=7486;t[2933]=7487;t[2934]=7488;t[2936]=7490;t[2937]=7491;t[2938]=7492;t[2940]=7494;t[2941]=7495;t[2942]=7496;t[2944]=7498;t[2946]=7500;t[2948]=7502;t[2950]=7504;t[2951]=7505;t[2952]=7506;t[2954]=7508;t[2955]=7509;t[2956]=7510;t[2958]=7512;t[2959]=7513;t[2960]=7514;t[2962]=7516;t[2963]=7517;t[2964]=7518;t[2966]=7520;t[2967]=7521;t[2968]=7522;t[2970]=7524;t[2971]=7525;t[2972]=7526;t[2974]=7528;t[2975]=7529;t[2976]=7530;t[2978]=1537;t[2979]=1538;t[2980]=1539;t[2982]=1549;t[2983]=1551;t[2984]=1552;t[2986]=1554;t[2987]=1555;t[2988]=1556;t[2990]=1623;t[2991]=1624;t[2995]=1775;t[2999]=1791;t[3002]=64290;t[3003]=64291;t[3004]=64292;t[3006]=64294;t[3007]=64295;t[3008]=64296;t[3011]=1900;t[3014]=8223;t[3015]=8244;t[3017]=7532;t[3018]=7533;t[3019]=7534;t[3075]=7590;t[3076]=7591;t[3079]=7594;t[3080]=7595;t[3083]=7598;t[3084]=7599;t[3087]=7602;t[3088]=7603;t[3091]=7606;t[3092]=7607;t[3095]=7610;t[3096]=7611;t[3099]=7614;t[3100]=7615;t[3103]=7618;t[3104]=7619;t[3107]=8337;t[3108]=8338;t[3116]=1884;t[3119]=1885;t[3120]=1885;t[3123]=1886;t[3124]=1886;t[3127]=1887;t[3128]=1887;t[3131]=1888;t[3132]=1888;t[3135]=1889;t[3136]=1889;t[3139]=1890;t[3140]=1890;t[3143]=1891;t[3144]=1891;t[3147]=1892;t[3148]=1892;t[3153]=580;t[3154]=581;t[3157]=584;t[3158]=585;t[3161]=588;t[3162]=589;t[3165]=891;t[3166]=892;t[3169]=1274;t[3170]=1275;t[3173]=1278;t[3174]=1279;t[3181]=7622;t[3182]=7623;t[3282]=11799;t[3316]=578;t[3379]=42785;t[3393]=1159;t[3416]=8377}));r.getGlyphMapForStandardFonts=y;var v=(0,l.getLookupTableFactory)((function(t){t[227]=322;t[264]=261;t[291]=346}));r.getSupplementalGlyphMapForArialBlack=v;var S=(0,l.getLookupTableFactory)((function(t){t[1]=32;t[4]=65;t[6]=193;t[17]=66;t[18]=67;t[21]=268;t[24]=68;t[28]=69;t[30]=201;t[32]=282;t[38]=70;t[39]=71;t[44]=72;t[47]=73;t[49]=205;t[58]=74;t[60]=75;t[62]=76;t[68]=77;t[69]=78;t[75]=79;t[87]=80;t[89]=81;t[90]=82;t[92]=344;t[94]=83;t[97]=352;t[100]=84;t[104]=85;t[115]=86;t[116]=87;t[121]=88;t[122]=89;t[124]=221;t[127]=90;t[129]=381;t[258]=97;t[260]=225;t[268]=261;t[271]=98;t[272]=99;t[273]=263;t[275]=269;t[282]=100;t[286]=101;t[288]=233;t[290]=283;t[295]=281;t[296]=102;t[336]=103;t[346]=104;t[349]=105;t[351]=237;t[361]=106;t[364]=107;t[367]=108;t[371]=322;t[373]=109;t[374]=110;t[381]=111;t[383]=243;t[393]=112;t[395]=113;t[396]=114;t[398]=345;t[400]=115;t[401]=347;t[403]=353;t[410]=116;t[437]=117;t[448]=118;t[449]=119;t[454]=120;t[455]=121;t[457]=253;t[460]=122;t[462]=382;t[463]=380;t[853]=44;t[855]=58;t[856]=46;t[876]=47;t[878]=45;t[882]=45;t[894]=40;t[895]=41;t[896]=91;t[897]=93;t[923]=64;t[1004]=48;t[1005]=49;t[1006]=50;t[1007]=51;t[1008]=52;t[1009]=53;t[1010]=54;t[1011]=55;t[1012]=56;t[1013]=57;t[1081]=37;t[1085]=43;t[1086]=45}));r.getSupplementalGlyphMapForCalibri=S},(t,r,o)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});r.ToUnicodeMap=r.IdentityToUnicodeMap=void 0;var l=o(4);function _classCallCheck(t,r){if(!(t instanceof r))throw new TypeError("Cannot call a class as a function")}function _defineProperties(t,r){for(var o=0;o<r.length;o++){var l=r[o];l.enumerable=l.enumerable||!1;l.configurable=!0;"value"in l&&(l.writable=!0);Object.defineProperty(t,l.key,l)}}function _createClass(t,r,o){r&&_defineProperties(t.prototype,r);o&&_defineProperties(t,o);return t}var c=function(){function ToUnicodeMap(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[];_classCallCheck(this,ToUnicodeMap);this._map=t}_createClass(ToUnicodeMap,[{key:"length",get:function get(){return this._map.length}},{key:"forEach",value:function forEach(t){for(var r in this._map)t(r,this._map[r].charCodeAt(0))}},{key:"has",value:function has(t){return void 0!==this._map[t]}},{key:"get",value:function get(t){return this._map[t]}},{key:"charCodeOf",value:function charCodeOf(t){var r=this._map;if(r.length<=65536)return r.indexOf(t);for(var o in r)if(r[o]===t)return 0|o;return-1}},{key:"amend",value:function amend(t){for(var r in t)this._map[r]=t[r]}}]);return ToUnicodeMap}();r.ToUnicodeMap=c;var u=function(){function IdentityToUnicodeMap(t,r){_classCallCheck(this,IdentityToUnicodeMap);this.firstChar=t;this.lastChar=r}_createClass(IdentityToUnicodeMap,[{key:"length",get:function get(){return this.lastChar+1-this.firstChar}},{key:"forEach",value:function forEach(t){for(var r=this.firstChar,o=this.lastChar;r<=o;r++)t(r,r)}},{key:"has",value:function has(t){return this.firstChar<=t&&t<=this.lastChar}},{key:"get",value:function get(t){if(this.firstChar<=t&&t<=this.lastChar)return String.fromCharCode(t)}},{key:"charCodeOf",value:function charCodeOf(t){return Number.isInteger(t)&&t>=this.firstChar&&t<=this.lastChar?t:-1}},{key:"amend",value:function amend(t){(0,l.unreachable)("Should not call amend()")}}]);return IdentityToUnicodeMap}();r.IdentityToUnicodeMap=u},(t,r,o)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});r.CFFFont=void 0;var l=o(158),c=o(131),u=o(4);function _defineProperties(t,r){for(var o=0;o<r.length;o++){var l=r[o];l.enumerable=l.enumerable||!1;l.configurable=!0;"value"in l&&(l.writable=!0);Object.defineProperty(t,l.key,l)}}var h=function(){function CFFFont(t,r){!function _classCallCheck(t,r){if(!(t instanceof r))throw new TypeError("Cannot call a class as a function")}(this,CFFFont);this.properties=r;var o=new l.CFFParser(t,r,c.SEAC_ANALYSIS_ENABLED);this.cff=o.parse();this.cff.duplicateFirstGlyph();var h=new l.CFFCompiler(this.cff);this.seacs=this.cff.seacs;try{this.data=h.compile()}catch(o){(0,u.warn)("Failed to compile font "+r.loadedName);this.data=t}this._createBuiltInEncoding()}!function _createClass(t,r,o){r&&_defineProperties(t.prototype,r);o&&_defineProperties(t,o);return t}(CFFFont,[{key:"numGlyphs",get:function get(){return this.cff.charStrings.count}},{key:"getCharset",value:function getCharset(){return this.cff.charset.charset}},{key:"getGlyphMapping",value:function getGlyphMapping(){var t,r,o=this.cff,l=this.properties,u=o.charset.charset;if(l.composite){t=Object.create(null);if(o.isCIDFont)for(r=0;r<u.length;r++){var h=u[r];t[l.cMap.charCodeOf(h)]=r}else for(r=0;r<o.charStrings.count;r++)t[l.cMap.charCodeOf(r)]=r;return t}var d=o.encoding?o.encoding.encoding:null;l.isInternalFont&&(d=l.defaultEncoding);return t=(0,c.type1FontGlyphMapping)(l,d,u)}},{key:"hasGlyphId",value:function hasGlyphId(t){return this.cff.hasGlyphId(t)}},{key:"_createBuiltInEncoding",value:function _createBuiltInEncoding(){var t=this.cff,r=t.charset,o=t.encoding;if(r&&o){var l=r.charset,c=o.encoding,u=[];for(var h in c){var d=c[h];if(d>=0){var m=l[d];m&&(u[h]=m)}}u.length>0&&(this.properties.builtInEncoding=u)}}}]);return CFFFont}();r.CFFFont=h},(t,r,o)=>{"use strict";function _typeof(t){_typeof="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function _typeof(t){return typeof t}:function _typeof(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t};return _typeof(t)}Object.defineProperty(r,"__esModule",{value:!0});r.FontRendererFactory=void 0;var l=o(4),c=o(158),u=o(133),h=o(132),d=o(123);function _inherits(t,r){if("function"!=typeof r&&null!==r)throw new TypeError("Super expression must either be null or a function");t.prototype=Object.create(r&&r.prototype,{constructor:{value:t,writable:!0,configurable:!0}});r&&_setPrototypeOf(t,r)}function _setPrototypeOf(t,r){_setPrototypeOf=Object.setPrototypeOf||function _setPrototypeOf(t,r){t.__proto__=r;return t};return _setPrototypeOf(t,r)}function _createSuper(t){var r=function _isNativeReflectConstruct(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){})));return!0}catch(t){return!1}}();return function _createSuperInternal(){var o,l=_getPrototypeOf(t);if(r){var c=_getPrototypeOf(this).constructor;o=Reflect.construct(l,arguments,c)}else o=l.apply(this,arguments);return _possibleConstructorReturn(this,o)}}function _possibleConstructorReturn(t,r){if(r&&("object"===_typeof(r)||"function"==typeof r))return r;if(void 0!==r)throw new TypeError("Derived constructors may only return object or undefined");return function _assertThisInitialized(t){if(void 0===t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return t}(t)}function _getPrototypeOf(t){_getPrototypeOf=Object.setPrototypeOf?Object.getPrototypeOf:function _getPrototypeOf(t){return t.__proto__||Object.getPrototypeOf(t)};return _getPrototypeOf(t)}function _classCallCheck(t,r){if(!(t instanceof r))throw new TypeError("Cannot call a class as a function")}function _defineProperties(t,r){for(var o=0;o<r.length;o++){var l=r[o];l.enumerable=l.enumerable||!1;l.configurable=!0;"value"in l&&(l.writable=!0);Object.defineProperty(t,l.key,l)}}function _createClass(t,r,o){r&&_defineProperties(t.prototype,r);o&&_defineProperties(t,o);return t}function getLong(t,r){return t[r]<<24|t[r+1]<<16|t[r+2]<<8|t[r+3]}function getUshort(t,r){return t[r]<<8|t[r+1]}function getSubroutineBias(t){var r=t.length,o=32768;r<1240?o=107:r<33900&&(o=1131);return o}function parseCmap(t,r,o){var c,u,h,d=1===getUshort(t,r+2)?getLong(t,r+8):getLong(t,r+16),m=getUshort(t,r+d);if(4===m){getUshort(t,r+d+2);var g=getUshort(t,r+d+6)>>1;u=r+d+14;c=[];for(h=0;h<g;h++,u+=2)c[h]={end:getUshort(t,u)};u+=2;for(h=0;h<g;h++,u+=2)c[h].start=getUshort(t,u);for(h=0;h<g;h++,u+=2)c[h].idDelta=getUshort(t,u);for(h=0;h<g;h++,u+=2){var y=getUshort(t,u);if(0!==y){c[h].ids=[];for(var v=0,S=c[h].end-c[h].start+1;v<S;v++){c[h].ids[v]=getUshort(t,u+y);y+=2}}}return c}if(12===m){getLong(t,r+d+4);var _=getLong(t,r+d+12);u=r+d+16;c=[];for(h=0;h<_;h++){c.push({start:getLong(t,u),end:getLong(t,u+4),idDelta:getLong(t,u+8)-getLong(t,u)});u+=12}return c}throw new l.FormatError("unsupported cmap: ".concat(m))}function parseCff(t,r,o,l){var u=new c.CFFParser(new d.Stream(t,r,o-r),{},l).parse();return{glyphs:u.charStrings.objects,subrs:u.topDict.privateDict&&u.topDict.privateDict.subrsIndex&&u.topDict.privateDict.subrsIndex.objects,gsubrs:u.globalSubrIndex&&u.globalSubrIndex.objects,isCFFCIDFont:u.isCIDFont,fdSelect:u.fdSelect,fdArray:u.fdArray}}function lookupCmap(t,r){for(var o=r.codePointAt(0),l=0,c=0,u=t.length-1;c<u;){var h=c+u+1>>1;o<t[h].start?u=h-1:c=h}t[c].start<=o&&o<=t[c].end&&(l=t[c].idDelta+(t[c].ids?t[c].ids[o-t[c].start]:o)&65535);return{charCode:o,glyphId:l}}function compileGlyf(t,r,o){function moveTo(t,o){r.push({cmd:"moveTo",args:[t,o]})}function lineTo(t,o){r.push({cmd:"lineTo",args:[t,o]})}function quadraticCurveTo(t,o,l,c){r.push({cmd:"quadraticCurveTo",args:[t,o,l,c]})}var l,c=0,u=(t[c]<<24|t[c+1]<<16)>>16,h=0,d=0;c+=10;if(u<0)do{l=t[c]<<8|t[c+1];var m=t[c+2]<<8|t[c+3];c+=4;var g=void 0,y=void 0;if(1&l){g=(t[c]<<24|t[c+1]<<16)>>16;y=(t[c+2]<<24|t[c+3]<<16)>>16;c+=4}else{g=t[c++];y=t[c++]}if(2&l){h=g;d=y}else{h=0;d=0}var v=1,S=1,_=0,k=0;if(8&l){v=S=(t[c]<<24|t[c+1]<<16)/1073741824;c+=2}else if(64&l){v=(t[c]<<24|t[c+1]<<16)/1073741824;S=(t[c+2]<<24|t[c+3]<<16)/1073741824;c+=4}else if(128&l){v=(t[c]<<24|t[c+1]<<16)/1073741824;_=(t[c+2]<<24|t[c+3]<<16)/1073741824;k=(t[c+4]<<24|t[c+5]<<16)/1073741824;S=(t[c+6]<<24|t[c+7]<<16)/1073741824;c+=8}var C=o.glyphs[m];if(C){r.push({cmd:"save"},{cmd:"transform",args:[v,_,k,S,h,d]});compileGlyf(C,r,o);r.push({cmd:"restore"})}}while(32&l);else{var w,x,O=[];for(w=0;w<u;w++){O.push(t[c]<<8|t[c+1]);c+=2}c+=2+(t[c]<<8|t[c+1]);for(var T=O[O.length-1]+1,R=[];R.length<T;){var E=1;8&(l=t[c++])&&(E+=t[c++]);for(;E-- >0;)R.push({flags:l})}for(w=0;w<T;w++){switch(18&R[w].flags){case 0:h+=(t[c]<<24|t[c+1]<<16)>>16;c+=2;break;case 2:h-=t[c++];break;case 18:h+=t[c++]}R[w].x=h}for(w=0;w<T;w++){switch(36&R[w].flags){case 0:d+=(t[c]<<24|t[c+1]<<16)>>16;c+=2;break;case 4:d-=t[c++];break;case 36:d+=t[c++]}R[w].y=d}var M=0;for(c=0;c<u;c++){var D=O[c],j=R.slice(M,D+1);if(1&j[0].flags)j.push(j[0]);else if(1&j[j.length-1].flags)j.unshift(j[j.length-1]);else{var L={flags:1,x:(j[0].x+j[j.length-1].x)/2,y:(j[0].y+j[j.length-1].y)/2};j.unshift(L);j.push(L)}moveTo(j[0].x,j[0].y);for(w=1,x=j.length;w<x;w++)if(1&j[w].flags)lineTo(j[w].x,j[w].y);else if(1&j[w+1].flags){quadraticCurveTo(j[w].x,j[w].y,j[w+1].x,j[w+1].y);w++}else quadraticCurveTo(j[w].x,j[w].y,(j[w].x+j[w+1].x)/2,(j[w].y+j[w+1].y)/2);M=D+1}}}function compileCharString(t,r,o,c){function moveTo(t,o){r.push({cmd:"moveTo",args:[t,o]})}function lineTo(t,o){r.push({cmd:"lineTo",args:[t,o]})}function bezierCurveTo(t,o,l,c,u,h){r.push({cmd:"bezierCurveTo",args:[t,o,l,c,u,h]})}var u=[],d=0,m=0,g=0;!function parse(t){for(var y=0;y<t.length;){var v=!1,S=t[y++],_=void 0,k=void 0,C=void 0,w=void 0,x=void 0,O=void 0,T=void 0,R=void 0;switch(S){case 1:case 3:g+=u.length>>1;v=!0;break;case 4:m+=u.pop();moveTo(d,m);v=!0;break;case 5:for(;u.length>0;){d+=u.shift();m+=u.shift();lineTo(d,m)}break;case 6:for(;u.length>0;){lineTo(d+=u.shift(),m);if(0===u.length)break;m+=u.shift();lineTo(d,m)}break;case 7:for(;u.length>0;){m+=u.shift();lineTo(d,m);if(0===u.length)break;lineTo(d+=u.shift(),m)}break;case 8:for(;u.length>0;){_=d+u.shift();C=m+u.shift();k=_+u.shift();w=C+u.shift();d=k+u.shift();m=w+u.shift();bezierCurveTo(_,C,k,w,d,m)}break;case 10:T=u.pop();R=null;if(o.isCFFCIDFont){var E=o.fdSelect.getFDIndex(c);if(E>=0&&E<o.fdArray.length){var M=o.fdArray[E],D=void 0;M.privateDict&&M.privateDict.subrsIndex&&(D=M.privateDict.subrsIndex.objects);D&&(R=D[T+=getSubroutineBias(D)])}else(0,l.warn)("Invalid fd index for glyph index.")}else R=o.subrs[T+o.subrsBias];R&&parse(R);break;case 11:return;case 12:switch(S=t[y++]){case 34:k=(_=d+u.shift())+u.shift();x=m+u.shift();d=k+u.shift();bezierCurveTo(_,m,k,x,d,x);k=(_=d+u.shift())+u.shift();d=k+u.shift();bezierCurveTo(_,x,k,m,d,m);break;case 35:_=d+u.shift();C=m+u.shift();k=_+u.shift();w=C+u.shift();d=k+u.shift();m=w+u.shift();bezierCurveTo(_,C,k,w,d,m);_=d+u.shift();C=m+u.shift();k=_+u.shift();w=C+u.shift();d=k+u.shift();m=w+u.shift();bezierCurveTo(_,C,k,w,d,m);u.pop();break;case 36:bezierCurveTo(_=d+u.shift(),x=m+u.shift(),k=_+u.shift(),O=x+u.shift(),d=k+u.shift(),O);bezierCurveTo(_=d+u.shift(),O,k=_+u.shift(),O+u.shift(),d=k+u.shift(),m);break;case 37:var j=d,L=m;_=d+u.shift();C=m+u.shift();k=_+u.shift();w=C+u.shift();d=k+u.shift();m=w+u.shift();bezierCurveTo(_,C,k,w,d,m);_=d+u.shift();C=m+u.shift();k=_+u.shift();w=C+u.shift();d=k;m=w;Math.abs(d-j)>Math.abs(m-L)?d+=u.shift():m+=u.shift();bezierCurveTo(_,C,k,w,d,m);break;default:throw new l.FormatError("unknown operator: 12 ".concat(S))}break;case 14:if(u.length>=4){var N=u.pop(),U=u.pop();m=u.pop();d=u.pop();r.push({cmd:"save"},{cmd:"translate",args:[d,m]});var H=lookupCmap(o.cmap,String.fromCharCode(o.glyphNameMap[h.StandardEncoding[N]]));compileCharString(o.glyphs[H.glyphId],r,o,H.glyphId);r.push({cmd:"restore"});H=lookupCmap(o.cmap,String.fromCharCode(o.glyphNameMap[h.StandardEncoding[U]]));compileCharString(o.glyphs[H.glyphId],r,o,H.glyphId)}return;case 18:g+=u.length>>1;v=!0;break;case 19:case 20:y+=(g+=u.length>>1)+7>>3;v=!0;break;case 21:m+=u.pop();moveTo(d+=u.pop(),m);v=!0;break;case 22:moveTo(d+=u.pop(),m);v=!0;break;case 23:g+=u.length>>1;v=!0;break;case 24:for(;u.length>2;){_=d+u.shift();C=m+u.shift();k=_+u.shift();w=C+u.shift();d=k+u.shift();m=w+u.shift();bezierCurveTo(_,C,k,w,d,m)}d+=u.shift();m+=u.shift();lineTo(d,m);break;case 25:for(;u.length>6;){d+=u.shift();m+=u.shift();lineTo(d,m)}_=d+u.shift();C=m+u.shift();k=_+u.shift();w=C+u.shift();d=k+u.shift();m=w+u.shift();bezierCurveTo(_,C,k,w,d,m);break;case 26:u.length%2&&(d+=u.shift());for(;u.length>0;){_=d;C=m+u.shift();k=_+u.shift();w=C+u.shift();d=k;m=w+u.shift();bezierCurveTo(_,C,k,w,d,m)}break;case 27:u.length%2&&(m+=u.shift());for(;u.length>0;)bezierCurveTo(_=d+u.shift(),C=m,k=_+u.shift(),w=C+u.shift(),d=k+u.shift(),m=w);break;case 28:u.push((t[y]<<24|t[y+1]<<16)>>16);y+=2;break;case 29:T=u.pop()+o.gsubrsBias;(R=o.gsubrs[T])&&parse(R);break;case 30:for(;u.length>0;){_=d;C=m+u.shift();k=_+u.shift();w=C+u.shift();d=k+u.shift();m=w+(1===u.length?u.shift():0);bezierCurveTo(_,C,k,w,d,m);if(0===u.length)break;_=d+u.shift();C=m;k=_+u.shift();w=C+u.shift();m=w+u.shift();bezierCurveTo(_,C,k,w,d=k+(1===u.length?u.shift():0),m)}break;case 31:for(;u.length>0;){_=d+u.shift();C=m;k=_+u.shift();w=C+u.shift();m=w+u.shift();bezierCurveTo(_,C,k,w,d=k+(1===u.length?u.shift():0),m);if(0===u.length)break;_=d;C=m+u.shift();k=_+u.shift();w=C+u.shift();d=k+u.shift();m=w+(1===u.length?u.shift():0);bezierCurveTo(_,C,k,w,d,m)}break;default:if(S<32)throw new l.FormatError("unknown operator: ".concat(S));if(S<247)u.push(S-139);else if(S<251)u.push(256*(S-247)+t[y++]+108);else if(S<255)u.push(256*-(S-251)-t[y++]-108);else{u.push((t[y]<<24|t[y+1]<<16|t[y+2]<<8|t[y+3])/65536);y+=4}}v&&(u.length=0)}}(t)}var m=[],g=function(){function CompiledFont(t){_classCallCheck(this,CompiledFont);this.constructor===CompiledFont&&(0,l.unreachable)("Cannot initialize CompiledFont.");this.fontMatrix=t;this.compiledGlyphs=Object.create(null);this.compiledCharCodeToGlyphId=Object.create(null)}_createClass(CompiledFont,[{key:"getPathJs",value:function getPathJs(t){var r=lookupCmap(this.cmap,t),o=r.charCode,l=r.glyphId,c=this.compiledGlyphs[l];if(!c)try{c=this.compileGlyph(this.glyphs[l],l);this.compiledGlyphs[l]=c}catch(t){this.compiledGlyphs[l]=m;void 0===this.compiledCharCodeToGlyphId[o]&&(this.compiledCharCodeToGlyphId[o]=l);throw t}void 0===this.compiledCharCodeToGlyphId[o]&&(this.compiledCharCodeToGlyphId[o]=l);return c}},{key:"compileGlyph",value:function compileGlyph(t,r){if(!t||0===t.length||14===t[0])return m;var o=this.fontMatrix;if(this.isCFFCIDFont){var c=this.fdSelect.getFDIndex(r);if(c>=0&&c<this.fdArray.length){o=this.fdArray[c].getByName("FontMatrix")||l.FONT_IDENTITY_MATRIX}else(0,l.warn)("Invalid fd index for glyph index.")}var u=[{cmd:"save"},{cmd:"transform",args:o.slice()},{cmd:"scale",args:["size","-size"]}];this.compileGlyphImpl(t,u,r);u.push({cmd:"restore"});return u}},{key:"compileGlyphImpl",value:function compileGlyphImpl(){(0,l.unreachable)("Children classes should implement this.")}},{key:"hasBuiltPath",value:function hasBuiltPath(t){var r=lookupCmap(this.cmap,t),o=r.charCode,l=r.glyphId;return void 0!==this.compiledGlyphs[l]&&void 0!==this.compiledCharCodeToGlyphId[o]}}]);return CompiledFont}(),y=function(t){_inherits(TrueTypeCompiled,t);var r=_createSuper(TrueTypeCompiled);function TrueTypeCompiled(t,o,l){var c;_classCallCheck(this,TrueTypeCompiled);(c=r.call(this,l||[488e-6,0,0,488e-6,0,0])).glyphs=t;c.cmap=o;return c}_createClass(TrueTypeCompiled,[{key:"compileGlyphImpl",value:function compileGlyphImpl(t,r){compileGlyf(t,r,this)}}]);return TrueTypeCompiled}(g),v=function(t){_inherits(Type2Compiled,t);var r=_createSuper(Type2Compiled);function Type2Compiled(t,o,l,c){var h;_classCallCheck(this,Type2Compiled);(h=r.call(this,l||[.001,0,0,.001,0,0])).glyphs=t.glyphs;h.gsubrs=t.gsubrs||[];h.subrs=t.subrs||[];h.cmap=o;h.glyphNameMap=c||(0,u.getGlyphsUnicode)();h.gsubrsBias=getSubroutineBias(h.gsubrs);h.subrsBias=getSubroutineBias(h.subrs);h.isCFFCIDFont=t.isCFFCIDFont;h.fdSelect=t.fdSelect;h.fdArray=t.fdArray;return h}_createClass(Type2Compiled,[{key:"compileGlyphImpl",value:function compileGlyphImpl(t,r,o){compileCharString(t,r,this,o)}}]);return Type2Compiled}(g),S=function(){function FontRendererFactory(){_classCallCheck(this,FontRendererFactory)}_createClass(FontRendererFactory,null,[{key:"create",value:function create(t,r){for(var o,c,u,h,d,m,g=new Uint8Array(t.data),S=getUshort(g,4),_=0,k=12;_<S;_++,k+=16){var C=(0,l.bytesToString)(g.subarray(k,k+4)),w=getLong(g,k+8),x=getLong(g,k+12);switch(C){case"cmap":o=parseCmap(g,w);break;case"glyf":c=g.subarray(w,w+x);break;case"loca":u=g.subarray(w,w+x);break;case"head":m=getUshort(g,w+18);d=getUshort(g,w+50);break;case"CFF ":h=parseCff(g,w,w+x,r)}}if(c){var O=m?[1/m,0,0,1/m,0,0]:t.fontMatrix;return new y(function parseGlyfTable(t,r,o){var l,c;if(o){l=4;c=function fontItemDecodeLong(t,r){return t[r]<<24|t[r+1]<<16|t[r+2]<<8|t[r+3]}}else{l=2;c=function fontItemDecode(t,r){return t[r]<<9|t[r+1]<<1}}for(var u=[],h=c(r,0),d=l;d<r.length;d+=l){var m=c(r,d);u.push(t.subarray(h,m));h=m}return u}(c,u,d),o,O)}return new v(h,o,t.fontMatrix,t.glyphNameMap)}}]);return FontRendererFactory}();r.FontRendererFactory=S},(t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});r.GlyfTable=void 0;function _slicedToArray(t,r){return function _arrayWithHoles(t){if(Array.isArray(t))return t}(t)||function _iterableToArrayLimit(t,r){var o=null==t?null:"undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(null==o)return;var l,c,u=[],h=!0,d=!1;try{for(o=o.call(t);!(h=(l=o.next()).done);h=!0){u.push(l.value);if(r&&u.length===r)break}}catch(t){d=!0;c=t}finally{try{h||null==o.return||o.return()}finally{if(d)throw c}}return u}(t,r)||_unsupportedIterableToArray(t,r)||function _nonIterableRest(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function _createForOfIteratorHelper(t,r){var o="undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(!o){if(Array.isArray(t)||(o=_unsupportedIterableToArray(t))||r&&t&&"number"==typeof t.length){o&&(t=o);var l=0,c=function F(){};return{s:c,n:function n(){return l>=t.length?{done:!0}:{done:!1,value:t[l++]}},e:function e(t){throw t},f:c}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var u,h=!0,d=!1;return{s:function s(){o=o.call(t)},n:function n(){var t=o.next();h=t.done;return t},e:function e(t){d=!0;u=t},f:function f(){try{h||null==o.return||o.return()}finally{if(d)throw u}}}}function _unsupportedIterableToArray(t,r){if(t){if("string"==typeof t)return _arrayLikeToArray(t,r);var o=Object.prototype.toString.call(t).slice(8,-1);"Object"===o&&t.constructor&&(o=t.constructor.name);return"Map"===o||"Set"===o?Array.from(t):"Arguments"===o||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(o)?_arrayLikeToArray(t,r):void 0}}function _arrayLikeToArray(t,r){(null==r||r>t.length)&&(r=t.length);for(var o=0,l=new Array(r);o<r;o++)l[o]=t[o];return l}function _classCallCheck(t,r){if(!(t instanceof r))throw new TypeError("Cannot call a class as a function")}function _defineProperties(t,r){for(var o=0;o<r.length;o++){var l=r[o];l.enumerable=l.enumerable||!1;l.configurable=!0;"value"in l&&(l.writable=!0);Object.defineProperty(t,l.key,l)}}function _createClass(t,r,o){r&&_defineProperties(t.prototype,r);o&&_defineProperties(t,o);return t}var o=function(){function GlyfTable(t){var r=t.glyfTable,o=t.isGlyphLocationsLong,c=t.locaTable,u=t.numGlyphs;_classCallCheck(this,GlyfTable);this.glyphs=[];for(var h=new DataView(c.buffer,c.byteOffset,c.byteLength),d=new DataView(r.buffer,r.byteOffset,r.byteLength),m=o?4:2,g=o?h.getUint32(0):2*h.getUint16(0),y=0,v=0;v<u;v++){y+=m;var S=o?h.getUint32(y):2*h.getUint16(y);if(S!==g){var _=l.parse(g,d);this.glyphs.push(_);g=S}else this.glyphs.push(new l({}))}}_createClass(GlyfTable,[{key:"getSize",value:function getSize(){return this.glyphs.reduce((function(t,r){return t+(r.getSize()+3&-4)}),0)}},{key:"write",value:function write(){var t=this.getSize(),r=new DataView(new ArrayBuffer(t)),o=t>131070,l=o?4:2,c=new DataView(new ArrayBuffer((this.glyphs.length+1)*l));o?c.setUint32(0,0):c.setUint16(0,0);var u,h=0,d=0,m=_createForOfIteratorHelper(this.glyphs);try{for(m.s();!(u=m.n()).done;){h=(h+=u.value.write(h,r))+3&-4;d+=l;o?c.setUint32(d,h):c.setUint16(d,h>>1)}}catch(t){m.e(t)}finally{m.f()}return{isLocationLong:o,loca:new Uint8Array(c.buffer),glyf:new Uint8Array(r.buffer)}}},{key:"scale",value:function scale(t){for(var r=0,o=this.glyphs.length;r<o;r++)this.glyphs[r].scale(t[r])}}]);return GlyfTable}();r.GlyfTable=o;var l=function(){function Glyph(t){var r=t.header,o=void 0===r?null:r,l=t.simple,c=void 0===l?null:l,u=t.composites,h=void 0===u?null:u;_classCallCheck(this,Glyph);this.header=o;this.simple=c;this.composites=h}_createClass(Glyph,[{key:"getSize",value:function getSize(){if(!this.header)return 0;var t=this.simple?this.simple.getSize():this.composites.reduce((function(t,r){return t+r.getSize()}),0);return this.header.getSize()+t}},{key:"write",value:function write(t,r){if(!this.header)return 0;var o=t;t+=this.header.write(t,r);if(this.simple)t+=this.simple.write(t,r);else{var l,c=_createForOfIteratorHelper(this.composites);try{for(c.s();!(l=c.n()).done;){t+=l.value.write(t,r)}}catch(t){c.e(t)}finally{c.f()}}return t-o}},{key:"scale",value:function scale(t){if(this.header){var r=(this.header.xMin+this.header.xMax)/2;this.header.scale(r,t);if(this.simple)this.simple.scale(r,t);else{var o,l=_createForOfIteratorHelper(this.composites);try{for(l.s();!(o=l.n()).done;){o.value.scale(r,t)}}catch(t){l.e(t)}finally{l.f()}}}}}],[{key:"parse",value:function parse(t,r){var o=_slicedToArray(c.parse(t,r),2),l=o[0],u=o[1];t+=l;if(u.numberOfContours<0){for(var m=[];;){var g=_slicedToArray(d.parse(t,r),2),y=g[0],v=g[1];t+=y;m.push(v);if(!(32&v.flags))break}return new Glyph({header:u,composites:m})}return new Glyph({header:u,simple:h.parse(t,r,u.numberOfContours)})}}]);return Glyph}(),c=function(){function GlyphHeader(t){var r=t.numberOfContours,o=t.xMin,l=t.yMin,c=t.xMax,u=t.yMax;_classCallCheck(this,GlyphHeader);this.numberOfContours=r;this.xMin=o;this.yMin=l;this.xMax=c;this.yMax=u}_createClass(GlyphHeader,[{key:"getSize",value:function getSize(){return 10}},{key:"write",value:function write(t,r){r.setInt16(t,this.numberOfContours);r.setInt16(t+2,this.xMin);r.setInt16(t+4,this.yMin);r.setInt16(t+6,this.xMax);r.setInt16(t+8,this.yMax);return 10}},{key:"scale",value:function scale(t,r){this.xMin=Math.round(t+(this.xMin-t)*r);this.xMax=Math.round(t+(this.xMax-t)*r)}}],[{key:"parse",value:function parse(t,r){return[10,new GlyphHeader({numberOfContours:r.getInt16(t),xMin:r.getInt16(t+2),yMin:r.getInt16(t+4),xMax:r.getInt16(t+6),yMax:r.getInt16(t+8)})]}}]);return GlyphHeader}(),u=function Contour(t){var r=t.flags,o=t.xCoordinates,l=t.yCoordinates;_classCallCheck(this,Contour);this.xCoordinates=o;this.yCoordinates=l;this.flags=r},h=function(){function SimpleGlyph(t){var r=t.contours,o=t.instructions;_classCallCheck(this,SimpleGlyph);this.contours=r;this.instructions=o}_createClass(SimpleGlyph,[{key:"getSize",value:function getSize(){var t,r=2*this.contours.length+2+this.instructions.length,o=0,l=0,c=_createForOfIteratorHelper(this.contours);try{for(c.s();!(t=c.n()).done;){var u=t.value;r+=u.flags.length;for(var h=0,d=u.xCoordinates.length;h<d;h++){var m=u.xCoordinates[h],g=u.yCoordinates[h],y=Math.abs(m-o);y>255?r+=2:y>0&&(r+=1);o=m;(y=Math.abs(g-l))>255?r+=2:y>0&&(r+=1);l=g}}}catch(t){c.e(t)}finally{c.f()}return r}},{key:"write",value:function write(t,r){var o,l=t,c=[],u=[],h=[],d=0,m=0,g=_createForOfIteratorHelper(this.contours);try{for(g.s();!(o=g.n()).done;){for(var y=o.value,v=0,S=y.xCoordinates.length;v<S;v++){var _=y.flags[v],k=y.xCoordinates[v],C=k-d;if(0===C){_|=16;c.push(0)}else{var w=Math.abs(C);if(w<=255){_|=C>=0?18:2;c.push(w)}else c.push(C)}d=k;var x=y.yCoordinates[v];if(0===(C=x-m)){_|=32;u.push(0)}else{var O=Math.abs(C);if(O<=255){_|=C>=0?36:4;u.push(O)}else u.push(C)}m=x;h.push(_)}r.setUint16(t,c.length-1);t+=2}}catch(t){g.e(t)}finally{g.f()}r.setUint16(t,this.instructions.length);t+=2;if(this.instructions.length){new Uint8Array(r.buffer,0,r.buffer.byteLength).set(this.instructions,t);t+=this.instructions.length}for(var T=0,R=h;T<R.length;T++){var E=R[T];r.setUint8(t++,E)}for(var M=0,D=c.length;M<D;M++){var j=c[M],L=h[M];if(2&L)r.setUint8(t++,j);else if(!(16&L)){r.setInt16(t,j);t+=2}}for(var N=0,U=u.length;N<U;N++){var H=u[N],W=h[N];if(4&W)r.setUint8(t++,H);else if(!(32&W)){r.setInt16(t,H);t+=2}}return t-l}},{key:"scale",value:function scale(t,r){var o,l=_createForOfIteratorHelper(this.contours);try{for(l.s();!(o=l.n()).done;){var c=o.value;if(0!==c.xCoordinates.length)for(var u=0,h=c.xCoordinates.length;u<h;u++)c.xCoordinates[u]=Math.round(t+(c.xCoordinates[u]-t)*r)}}catch(t){l.e(t)}finally{l.f()}}}],[{key:"parse",value:function parse(t,r,o){for(var l=[],c=0;c<o;c++){var h=r.getUint16(t);t+=2;l.push(h)}var d=l[o-1]+1,m=r.getUint16(t);t+=2;var g=new Uint8Array(r).slice(t,t+m);t+=m;for(var y=[],v=0;v<d;t++,v++){var S=r.getUint8(t);y.push(S);if(8&S){var _=r.getUint8(++t);S^=8;for(var k=0;k<_;k++)y.push(S);v+=_}}for(var C=[],w=[],x=[],O=[],T=[],R=0,E=0,M=0;M<d;M++){var D=y[M];if(2&D){var j=r.getUint8(t++);E+=16&D?j:-j;w.push(E)}else if(16&D)w.push(E);else{E+=r.getInt16(t);t+=2;w.push(E)}if(l[R]===M){R++;C.push(w);w=[]}}E=0;R=0;for(var L=0;L<d;L++){var N=y[L];if(4&N){var U=r.getUint8(t++);E+=32&N?U:-U;x.push(E)}else if(32&N)x.push(E);else{E+=r.getInt16(t);t+=2;x.push(E)}O.push(1&N|64&N);if(l[R]===L){w=C[R];R++;T.push(new u({flags:O,xCoordinates:w,yCoordinates:x}));x=[];O=[]}}return new SimpleGlyph({contours:T,instructions:g})}}]);return SimpleGlyph}(),d=function(){function CompositeGlyph(t){var r=t.flags,o=t.glyphIndex,l=t.argument1,c=t.argument2,u=t.transf,h=t.instructions;_classCallCheck(this,CompositeGlyph);this.flags=r;this.glyphIndex=o;this.argument1=l;this.argument2=c;this.transf=u;this.instructions=h}_createClass(CompositeGlyph,[{key:"getSize",value:function getSize(){var t=4+2*this.transf.length;256&this.flags&&(t+=2+this.instructions.length);t+=2;2&this.flags?this.argument1>=-128&&this.argument1<=127&&this.argument2>=-128&&this.argument2<=127||(t+=2):this.argument1>=0&&this.argument1<=255&&this.argument2>=0&&this.argument2<=255||(t+=2);return t}},{key:"write",value:function write(t,r){var o=t;2&this.flags?this.argument1>=-128&&this.argument1<=127&&this.argument2>=-128&&this.argument2<=127||(this.flags|=1):this.argument1>=0&&this.argument1<=255&&this.argument2>=0&&this.argument2<=255||(this.flags|=1);r.setUint16(t,this.flags);r.setUint16(t+2,this.glyphIndex);t+=4;if(1&this.flags){if(2&this.flags){r.setInt16(t,this.argument1);r.setInt16(t+2,this.argument2)}else{r.setUint16(t,this.argument1);r.setUint16(t+2,this.argument2)}t+=4}else{r.setUint8(t,this.argument1);r.setUint8(t+1,this.argument2);t+=2}if(256&this.flags){r.setUint16(t,this.instructions.length);t+=2;if(this.instructions.length){new Uint8Array(r.buffer,0,r.buffer.byteLength).set(this.instructions,t);t+=this.instructions.length}}return t-o}},{key:"scale",value:function scale(t,r){}}],[{key:"parse",value:function parse(t,r){var o,l,c=t,u=[],h=r.getUint16(t),d=r.getUint16(t+2);t+=4;if(1&h){if(2&h){o=r.getInt16(t);l=r.getInt16(t+2)}else{o=r.getUint16(t);l=r.getUint16(t+2)}t+=4;h^=1}else{o=r.getUint8(t);l=r.getUint8(t+1);if(2&h){var m=127&o;o=128&o?-m:m;var g=127&l;l=128&l?-g:g}t+=2}if(8&h){u.push(r.getUint16(t));t+=2}else if(64&h){u.push(r.getUint16(t),r.getUint16(t+2));t+=4}else if(128&h){u.push(r.getUint16(t),r.getUint16(t+2),r.getUint16(t+4),r.getUint16(t+6));t+=8}var y=null;if(256&h){var v=r.getUint16(t);t+=2;y=new Uint8Array(r).slice(t,t+v);t+=v}return[t-c,new CompositeGlyph({flags:h,glyphIndex:d,argument1:o,argument2:l,transf:u,instructions:y})]}}]);return CompositeGlyph}()},(t,r,o)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});r.OpenTypeFileBuilder=void 0;var l=o(122),c=o(4);function _defineProperties(t,r){for(var o=0;o<r.length;o++){var l=r[o];l.enumerable=l.enumerable||!1;l.configurable=!0;"value"in l&&(l.writable=!0);Object.defineProperty(t,l.key,l)}}function writeInt16(t,r,o){t[r]=o>>8&255;t[r+1]=255&o}function writeInt32(t,r,o){t[r]=o>>24&255;t[r+1]=o>>16&255;t[r+2]=o>>8&255;t[r+3]=255&o}function writeData(t,r,o){if(o instanceof Uint8Array)t.set(o,r);else if("string"==typeof o)for(var l=0,c=o.length;l<c;l++)t[r++]=255&o.charCodeAt(l);else for(var u=0,h=o.length;u<h;u++)t[r++]=255&o[u]}var u=function(){function OpenTypeFileBuilder(t){!function _classCallCheck(t,r){if(!(t instanceof r))throw new TypeError("Cannot call a class as a function")}(this,OpenTypeFileBuilder);this.sfnt=t;this.tables=Object.create(null)}!function _createClass(t,r,o){r&&_defineProperties(t.prototype,r);o&&_defineProperties(t,o);return t}(OpenTypeFileBuilder,[{key:"toArray",value:function toArray(){var t=this.sfnt,r=this.tables,o=Object.keys(r);o.sort();var u,h,d,m,g,y=o.length,v=12+16*y,S=[v];for(u=0;u<y;u++){v+=((m=r[o[u]]).length+3&-4)>>>0;S.push(v)}var _=new Uint8Array(v);for(u=0;u<y;u++){m=r[o[u]];writeData(_,S[u],m)}"true"===t&&(t=(0,c.string32)(65536));_[0]=255&t.charCodeAt(0);_[1]=255&t.charCodeAt(1);_[2]=255&t.charCodeAt(2);_[3]=255&t.charCodeAt(3);writeInt16(_,4,y);var k=OpenTypeFileBuilder.getSearchParams(y,16);writeInt16(_,6,k.range);writeInt16(_,8,k.entry);writeInt16(_,10,k.rangeShift);v=12;for(u=0;u<y;u++){g=o[u];_[v]=255&g.charCodeAt(0);_[v+1]=255&g.charCodeAt(1);_[v+2]=255&g.charCodeAt(2);_[v+3]=255&g.charCodeAt(3);var C=0;for(h=S[u],d=S[u+1];h<d;h+=4){C=C+(0,l.readUint32)(_,h)>>>0}writeInt32(_,v+4,C);writeInt32(_,v+8,S[u]);writeInt32(_,v+12,r[g].length);v+=16}return _}},{key:"addTable",value:function addTable(t,r){if(t in this.tables)throw new Error("Table "+t+" already exists");this.tables[t]=r}}],[{key:"getSearchParams",value:function getSearchParams(t,r){for(var o=1,l=0;(o^t)>o;){o<<=1;l++}var c=o*r;return{range:c,entry:l,rangeShift:r*t-c}}}]);return OpenTypeFileBuilder}();r.OpenTypeFileBuilder=u},(t,r,o)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});r.Type1Font=void 0;var l=o(158),c=o(131),u=o(122),h=o(123),d=o(167),m=o(4);function _defineProperties(t,r){for(var o=0;o<r.length;o++){var l=r[o];l.enumerable=l.enumerable||!1;l.configurable=!0;"value"in l&&(l.writable=!0);Object.defineProperty(t,l.key,l)}}function findBlock(t,r,o){for(var l=t.length,c=r.length,h=l-c,d=o,m=!1;d<h;){for(var g=0;g<c&&t[d+g]===r[g];)g++;if(g>=c){d+=g;for(;d<l&&(0,u.isWhiteSpace)(t[d]);)d++;m=!0;break}d++}return{found:m,length:d}}var g=function(){function Type1Font(t,r,o){!function _classCallCheck(t,r){if(!(t instanceof r))throw new TypeError("Cannot call a class as a function")}(this,Type1Font);var l=o.length1,u=(o.length2,r.peekBytes(6)),g=128===u[0]&&1===u[1];if(g){r.skip(6);l=u[5]<<24|u[4]<<16|u[3]<<8|u[2]}var y=function getHeaderBlock(t,r){var o,l,c,u,d=[101,101,120,101,99],g=t.pos;try{l=(o=t.getBytes(r)).length}catch(t){}if(l===r&&(c=findBlock(o,d,r-2*d.length)).found&&c.length===r)return{stream:new h.Stream(o),length:r};(0,m.warn)('Invalid "Length1" property in Type1 font -- trying to recover.');t.pos=g;for(;0!==(c=findBlock(t.peekBytes(2048),d,0)).length;){t.pos+=c.length;if(c.found){u=t.pos-g;break}}t.pos=g;if(u)return{stream:new h.Stream(t.getBytes(u)),length:u};(0,m.warn)('Unable to recover "Length1" property in Type1 font -- using as is.');return{stream:new h.Stream(t.getBytes(r)),length:r}}(r,l);new d.Type1Parser(y.stream,!1,c.SEAC_ANALYSIS_ENABLED).extractFontHeader(o);g&&(u=r.getBytes(6))[5]<<24|u[4]<<16|u[3]<<8|u[2];var v=function getEexecBlock(t,r){var o=t.getBytes();return{stream:new h.Stream(o),length:o.length}}(r),S=new d.Type1Parser(v.stream,!0,c.SEAC_ANALYSIS_ENABLED).extractFontProgram(o);for(var _ in S.properties)o[_]=S.properties[_];var k=S.charstrings,C=this.getType2Charstrings(k),w=this.getType2Subrs(S.subrs);this.charstrings=k;this.data=this.wrap(t,C,this.charstrings,w,o);this.seacs=this.getSeacs(S.charstrings)}!function _createClass(t,r,o){r&&_defineProperties(t.prototype,r);o&&_defineProperties(t,o);return t}(Type1Font,[{key:"numGlyphs",get:function get(){return this.charstrings.length+1}},{key:"getCharset",value:function getCharset(){for(var t=[".notdef"],r=this.charstrings,o=0;o<r.length;o++)t.push(r[o].glyphName);return t}},{key:"getGlyphMapping",value:function getGlyphMapping(t){var r=this.charstrings;if(t.composite){for(var o=Object.create(null),l=0,u=r.length;l<u;l++){o[t.cMap.charCodeOf(l)]=l+1}return o}var h,d,m=[".notdef"];for(d=0;d<r.length;d++)m.push(r[d].glyphName);var g=t.builtInEncoding;if(g){h=Object.create(null);for(var y in g)(d=m.indexOf(g[y]))>=0&&(h[y]=d)}return(0,c.type1FontGlyphMapping)(t,h,m)}},{key:"hasGlyphId",value:function hasGlyphId(t){return!(t<0||t>=this.numGlyphs)&&(0===t||this.charstrings[t-1].charstring.length>0)}},{key:"getSeacs",value:function getSeacs(t){for(var r=[],o=0,l=t.length;o<l;o++){var c=t[o];c.seac&&(r[o+1]=c.seac)}return r}},{key:"getType2Charstrings",value:function getType2Charstrings(t){for(var r=[],o=0,l=t.length;o<l;o++)r.push(t[o].charstring);return r}},{key:"getType2Subrs",value:function getType2Subrs(t){var r=0,o=t.length;r=o<1133?107:o<33769?1131:32768;var l,c=[];for(l=0;l<r;l++)c.push([11]);for(l=0;l<o;l++)c.push(t[l]);return c}},{key:"wrap",value:function wrap(t,r,o,c,u){var h=new l.CFF;h.header=new l.CFFHeader(1,0,4,4);h.names=[t];var d=new l.CFFTopDict;d.setByName("version",391);d.setByName("Notice",392);d.setByName("FullName",393);d.setByName("FamilyName",394);d.setByName("Weight",395);d.setByName("Encoding",null);d.setByName("FontMatrix",u.fontMatrix);d.setByName("FontBBox",u.bbox);d.setByName("charset",null);d.setByName("CharStrings",null);d.setByName("Private",null);h.topDict=d;var m=new l.CFFStrings;m.add("Version 0.11");m.add("See original notice");m.add(t);m.add(t);m.add("Medium");h.strings=m;h.globalSubrIndex=new l.CFFIndex;var g,y,v=r.length,S=[".notdef"];for(g=0;g<v;g++){var _=o[g].glyphName;-1===l.CFFStandardStrings.indexOf(_)&&m.add(_);S.push(_)}h.charset=new l.CFFCharset(!1,0,S);var k=new l.CFFIndex;k.add([139,14]);for(g=0;g<v;g++)k.add(r[g]);h.charStrings=k;var C=new l.CFFPrivateDict;C.setByName("Subrs",null);var w=["BlueValues","OtherBlues","FamilyBlues","FamilyOtherBlues","StemSnapH","StemSnapV","BlueShift","BlueFuzz","BlueScale","LanguageGroup","ExpansionFactor","ForceBold","StdHW","StdVW"];for(g=0,y=w.length;g<y;g++){var x=w[g];if(x in u.privateData){var O=u.privateData[x];if(Array.isArray(O))for(var T=O.length-1;T>0;T--)O[T]-=O[T-1];C.setByName(x,O)}}h.topDict.privateDict=C;var R=new l.CFFIndex;for(g=0,y=c.length;g<y;g++)R.add(c[g]);C.subrsIndex=R;return new l.CFFCompiler(h).compile()}}]);return Type1Font}();r.Type1Font=g},(t,r,o)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});r.Type1Parser=void 0;var l=o(132),c=o(122),u=o(123),h=o(4);function _classCallCheck(t,r){if(!(t instanceof r))throw new TypeError("Cannot call a class as a function")}function _defineProperties(t,r){for(var o=0;o<r.length;o++){var l=r[o];l.enumerable=l.enumerable||!1;l.configurable=!0;"value"in l&&(l.writable=!0);Object.defineProperty(t,l.key,l)}}function _createClass(t,r,o){r&&_defineProperties(t.prototype,r);o&&_defineProperties(t,o);return t}var d=function Type1CharStringClosure(){var t=[4],r=[5],o=[6],l=[7],c=[8],u=[12,35],d=[14],m=[21],g=[22],y=[30],v=[31];return function(){function Type1CharString(){_classCallCheck(this,Type1CharString);this.width=0;this.lsb=0;this.flexing=!1;this.output=[];this.stack=[]}_createClass(Type1CharString,[{key:"convert",value:function convert(S,_,k){for(var C,w,x,O=S.length,T=!1,R=0;R<O;R++){var E=S[R];if(E<32){12===E&&(E=(E<<8)+S[++R]);switch(E){case 1:case 3:this.stack=[];break;case 4:if(this.flexing){if(this.stack.length<1){T=!0;break}var M=this.stack.pop();this.stack.push(0,M);break}T=this.executeCommand(1,t);break;case 5:T=this.executeCommand(2,r);break;case 6:T=this.executeCommand(1,o);break;case 7:T=this.executeCommand(1,l);break;case 8:T=this.executeCommand(6,c);break;case 9:this.stack=[];break;case 10:if(this.stack.length<1){T=!0;break}if(!_[x=this.stack.pop()]){T=!0;break}T=this.convert(_[x],_,k);break;case 11:return T;case 13:if(this.stack.length<2){T=!0;break}C=this.stack.pop();w=this.stack.pop();this.lsb=w;this.width=C;this.stack.push(C,w);T=this.executeCommand(2,g);break;case 14:this.output.push(d[0]);break;case 21:if(this.flexing)break;T=this.executeCommand(2,m);break;case 22:if(this.flexing){this.stack.push(0);break}T=this.executeCommand(1,g);break;case 30:T=this.executeCommand(4,y);break;case 31:T=this.executeCommand(4,v);break;case 3072:case 3073:case 3074:this.stack=[];break;case 3078:if(k){var D=this.stack[this.stack.length-5];this.seac=this.stack.splice(-4,4);this.seac[0]+=this.lsb-D;T=this.executeCommand(0,d)}else T=this.executeCommand(4,d);break;case 3079:if(this.stack.length<4){T=!0;break}this.stack.pop();C=this.stack.pop();var j=this.stack.pop();w=this.stack.pop();this.lsb=w;this.width=C;this.stack.push(C,w,j);T=this.executeCommand(3,m);break;case 3084:if(this.stack.length<2){T=!0;break}var L=this.stack.pop(),N=this.stack.pop();this.stack.push(N/L);break;case 3088:if(this.stack.length<2){T=!0;break}x=this.stack.pop();var U=this.stack.pop();if(0===x&&3===U){var H=this.stack.splice(this.stack.length-17,17);this.stack.push(H[2]+H[0],H[3]+H[1],H[4],H[5],H[6],H[7],H[8],H[9],H[10],H[11],H[12],H[13],H[14]);T=this.executeCommand(13,u,!0);this.flexing=!1;this.stack.push(H[15],H[16])}else 1===x&&0===U&&(this.flexing=!0);break;case 3089:break;case 3105:this.stack=[];break;default:(0,h.warn)('Unknown type 1 charstring command of "'+E+'"')}if(T)break}else{E<=246?E-=139:E=E<=250?256*(E-247)+S[++R]+108:E<=254?-256*(E-251)-S[++R]-108:(255&S[++R])<<24|(255&S[++R])<<16|(255&S[++R])<<8|(255&S[++R])<<0;this.stack.push(E)}}return T}},{key:"executeCommand",value:function executeCommand(t,r,o){var l=this.stack.length;if(t>l)return!0;for(var c=l-t,u=c;u<l;u++){var h=this.stack[u];if(Number.isInteger(h))this.output.push(28,h>>8&255,255&h);else{h=65536*h|0;this.output.push(255,h>>24&255,h>>16&255,h>>8&255,255&h)}}this.output.push.apply(this.output,r);o?this.stack.splice(c,t):this.stack.length=0;return!1}}]);return Type1CharString}()}(),m=function Type1ParserClosure(){function isHexDigit(t){return t>=48&&t<=57||t>=65&&t<=70||t>=97&&t<=102}function decrypt(t,r,o){if(o>=t.length)return new Uint8Array(0);var l,c,u=0|r;for(l=0;l<o;l++)u=52845*(t[l]+u)+22719&65535;var h=t.length-o,d=new Uint8Array(h);for(l=o,c=0;c<h;l++,c++){var m=t[l];d[c]=m^u>>8;u=52845*(m+u)+22719&65535}return d}function isSpecial(t){return 47===t||91===t||93===t||123===t||125===t||40===t||41===t}return function(){function Type1Parser(t,r,o){_classCallCheck(this,Type1Parser);if(r){var l=t.getBytes(),h=!((isHexDigit(l[0])||(0,c.isWhiteSpace)(l[0]))&&isHexDigit(l[1])&&isHexDigit(l[2])&&isHexDigit(l[3])&&isHexDigit(l[4])&&isHexDigit(l[5])&&isHexDigit(l[6])&&isHexDigit(l[7]));t=new u.Stream(h?decrypt(l,55665,4):function decryptAscii(t,r,o){var l,c,u=0|r,h=t.length,d=new Uint8Array(h>>>1);for(l=0,c=0;l<h;l++){var m=t[l];if(isHexDigit(m)){l++;for(var g=void 0;l<h&&!isHexDigit(g=t[l]);)l++;if(l<h){var y=parseInt(String.fromCharCode(m,g),16);d[c++]=y^u>>8;u=52845*(y+u)+22719&65535}}}return d.slice(o,c)}(l,55665,4))}this.seacAnalysisEnabled=!!o;this.stream=t;this.nextChar()}_createClass(Type1Parser,[{key:"readNumberArray",value:function readNumberArray(){this.getToken();for(var t=[];;){var r=this.getToken();if(null===r||"]"===r||"}"===r)break;t.push(parseFloat(r||0))}return t}},{key:"readNumber",value:function readNumber(){var t=this.getToken();return parseFloat(t||0)}},{key:"readInt",value:function readInt(){var t=this.getToken();return 0|parseInt(t||0,10)}},{key:"readBoolean",value:function readBoolean(){return"true"===this.getToken()?1:0}},{key:"nextChar",value:function nextChar(){return this.currentChar=this.stream.getByte()}},{key:"getToken",value:function getToken(){for(var t=!1,r=this.currentChar;;){if(-1===r)return null;if(t)10!==r&&13!==r||(t=!1);else if(37===r)t=!0;else if(!(0,c.isWhiteSpace)(r))break;r=this.nextChar()}if(isSpecial(r)){this.nextChar();return String.fromCharCode(r)}var o="";do{o+=String.fromCharCode(r);r=this.nextChar()}while(r>=0&&!(0,c.isWhiteSpace)(r)&&!isSpecial(r));return o}},{key:"readCharStrings",value:function readCharStrings(t,r){return-1===r?t:decrypt(t,4330,r)}},{key:"extractFontProgram",value:function extractFontProgram(t){var r=this.stream,o=[],l=[],c=Object.create(null);c.lenIV=4;for(var u,h,m,g,y,v={subrs:[],charstrings:[],properties:{privateData:c}};null!==(u=this.getToken());)if("/"===u)switch(u=this.getToken()){case"CharStrings":this.getToken();this.getToken();this.getToken();this.getToken();for(;null!==(u=this.getToken())&&"end"!==u;)if("/"===u){var S=this.getToken();h=this.readInt();this.getToken();m=h>0?r.getBytes(h):new Uint8Array(0);g=v.properties.privateData.lenIV;y=this.readCharStrings(m,g);this.nextChar();"noaccess"===(u=this.getToken())&&this.getToken();l.push({glyph:S,encoded:y})}break;case"Subrs":this.readInt();this.getToken();for(;"dup"===this.getToken();){var _=this.readInt();h=this.readInt();this.getToken();m=h>0?r.getBytes(h):new Uint8Array(0);g=v.properties.privateData.lenIV;y=this.readCharStrings(m,g);this.nextChar();"noaccess"===(u=this.getToken())&&this.getToken();o[_]=y}break;case"BlueValues":case"OtherBlues":case"FamilyBlues":case"FamilyOtherBlues":var k=this.readNumberArray();k.length>0&&k.length,0;break;case"StemSnapH":case"StemSnapV":v.properties.privateData[u]=this.readNumberArray();break;case"StdHW":case"StdVW":v.properties.privateData[u]=this.readNumberArray()[0];break;case"BlueShift":case"lenIV":case"BlueFuzz":case"BlueScale":case"LanguageGroup":case"ExpansionFactor":v.properties.privateData[u]=this.readNumber();break;case"ForceBold":v.properties.privateData[u]=this.readBoolean()}for(var C=0;C<l.length;C++){var w=l[C].glyph;y=l[C].encoded;var x=new d,O=x.convert(y,o,this.seacAnalysisEnabled),T=x.output;O&&(T=[14]);var R={glyphName:w,charstring:T,width:x.width,lsb:x.lsb,seac:x.seac};".notdef"===w?v.charstrings.unshift(R):v.charstrings.push(R);if(t.builtInEncoding){var E=t.builtInEncoding.indexOf(w);E>-1&&void 0===t.widths[E]&&E>=t.firstChar&&E<=t.lastChar&&(t.widths[E]=x.width)}}return v}},{key:"extractFontHeader",value:function extractFontHeader(t){for(var r;null!==(r=this.getToken());)if("/"===r)switch(r=this.getToken()){case"FontMatrix":var o=this.readNumberArray();t.fontMatrix=o;break;case"Encoding":var c=this.getToken(),u=void 0;if(/^\d+$/.test(c)){u=[];var h=0|parseInt(c,10);this.getToken();for(var d=0;d<h;d++){r=this.getToken();for(;"dup"!==r&&"def"!==r;)if(null===(r=this.getToken()))return;if("def"===r)break;var m=this.readInt();this.getToken();var g=this.getToken();u[m]=g;this.getToken()}}else u=(0,l.getEncoding)(c);t.builtInEncoding=u;break;case"FontBBox":var y=this.readNumberArray();t.ascent=Math.max(y[3],y[1]);t.descent=Math.min(y[1],y[3]);t.ascentScaled=!0}}}]);return Type1Parser}()}();r.Type1Parser=m},(t,r,o)=>{"use strict";function _typeof(t){_typeof="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function _typeof(t){return typeof t}:function _typeof(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t};return _typeof(t)}Object.defineProperty(r,"__esModule",{value:!0});r.getTilingPatternIR=function getTilingPatternIR(t,r,o){var c=r.getArray("Matrix"),u=l.Util.normalizeRect(r.getArray("BBox")),h=r.get("XStep"),d=r.get("YStep"),m=r.get("PaintType"),g=r.get("TilingType");if(u[2]-u[0]==0||u[3]-u[1]==0)throw new l.FormatError("Invalid getTilingPatternIR /BBox array: [".concat(u,"]."));return["TilingPattern",o,t,c,u,h,d,m,g]};r.Pattern=void 0;var l=o(4),c=o(137),u=o(118),h=o(122);function _slicedToArray(t,r){return function _arrayWithHoles(t){if(Array.isArray(t))return t}(t)||function _iterableToArrayLimit(t,r){var o=null==t?null:"undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(null==o)return;var l,c,u=[],h=!0,d=!1;try{for(o=o.call(t);!(h=(l=o.next()).done);h=!0){u.push(l.value);if(r&&u.length===r)break}}catch(t){d=!0;c=t}finally{try{h||null==o.return||o.return()}finally{if(d)throw c}}return u}(t,r)||function _unsupportedIterableToArray(t,r){if(!t)return;if("string"==typeof t)return _arrayLikeToArray(t,r);var o=Object.prototype.toString.call(t).slice(8,-1);"Object"===o&&t.constructor&&(o=t.constructor.name);if("Map"===o||"Set"===o)return Array.from(t);if("Arguments"===o||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(o))return _arrayLikeToArray(t,r)}(t,r)||function _nonIterableRest(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function _arrayLikeToArray(t,r){(null==r||r>t.length)&&(r=t.length);for(var o=0,l=new Array(r);o<r;o++)l[o]=t[o];return l}function _inherits(t,r){if("function"!=typeof r&&null!==r)throw new TypeError("Super expression must either be null or a function");t.prototype=Object.create(r&&r.prototype,{constructor:{value:t,writable:!0,configurable:!0}});r&&_setPrototypeOf(t,r)}function _setPrototypeOf(t,r){_setPrototypeOf=Object.setPrototypeOf||function _setPrototypeOf(t,r){t.__proto__=r;return t};return _setPrototypeOf(t,r)}function _createSuper(t){var r=function _isNativeReflectConstruct(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){})));return!0}catch(t){return!1}}();return function _createSuperInternal(){var o,l=_getPrototypeOf(t);if(r){var c=_getPrototypeOf(this).constructor;o=Reflect.construct(l,arguments,c)}else o=l.apply(this,arguments);return _possibleConstructorReturn(this,o)}}function _possibleConstructorReturn(t,r){if(r&&("object"===_typeof(r)||"function"==typeof r))return r;if(void 0!==r)throw new TypeError("Derived constructors may only return object or undefined");return function _assertThisInitialized(t){if(void 0===t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return t}(t)}function _getPrototypeOf(t){_getPrototypeOf=Object.setPrototypeOf?Object.getPrototypeOf:function _getPrototypeOf(t){return t.__proto__||Object.getPrototypeOf(t)};return _getPrototypeOf(t)}function _classCallCheck(t,r){if(!(t instanceof r))throw new TypeError("Cannot call a class as a function")}function _defineProperties(t,r){for(var o=0;o<r.length;o++){var l=r[o];l.enumerable=l.enumerable||!1;l.configurable=!0;"value"in l&&(l.writable=!0);Object.defineProperty(t,l.key,l)}}function _createClass(t,r,o){r&&_defineProperties(t.prototype,r);o&&_defineProperties(t,o);return t}var d=2,m=3,g=4,y=5,v=6,S=7,_=function(){function Pattern(){_classCallCheck(this,Pattern);(0,l.unreachable)("Cannot initialize Pattern.")}_createClass(Pattern,null,[{key:"parseShading",value:function parseShading(t,r,o,c,_,k){var w=(0,u.isStream)(t)?t.dict:t,x=w.get("ShadingType");try{switch(x){case d:case m:return new C(w,r,o,_,k);case g:case y:case v:case S:return new O(t,r,o,_,k);default:throw new l.FormatError("Unsupported ShadingType: "+x)}}catch(t){if(t instanceof h.MissingDataException)throw t;c.send("UnsupportedFeature",{featureId:l.UNSUPPORTED_FEATURES.shadingPattern});(0,l.warn)(t);return new T}}}]);return Pattern}();r.Pattern=_;var k=function(){function BaseShading(){_classCallCheck(this,BaseShading);this.constructor===BaseShading&&(0,l.unreachable)("Cannot initialize BaseShading.")}_createClass(BaseShading,[{key:"getIR",value:function getIR(){(0,l.unreachable)("Abstract method `getIR` called.")}}],[{key:"SMALL_NUMBER",get:function get(){return(0,l.shadow)(this,"SMALL_NUMBER",1e-6)}}]);return BaseShading}(),C=function(t){_inherits(RadialAxialShading,t);var r=_createSuper(RadialAxialShading);function RadialAxialShading(t,o,u,h,d){var g;_classCallCheck(this,RadialAxialShading);(g=r.call(this)).coordsArr=t.getArray("Coords");g.shadingType=t.get("ShadingType");var y=c.ColorSpace.parse({cs:t.getRaw("ColorSpace")||t.getRaw("CS"),xref:o,resources:u,pdfFunctionFactory:h,localColorSpaceCache:d}),v=t.getArray("BBox");Array.isArray(v)&&4===v.length?g.bbox=l.Util.normalizeRect(v):g.bbox=null;var S=0,_=1;if(t.has("Domain")){var C=t.getArray("Domain");S=C[0];_=C[1]}var w=!1,x=!1;if(t.has("Extend")){var O=t.getArray("Extend");w=O[0];x=O[1]}if(!(g.shadingType!==m||w&&x)){var T=_slicedToArray(g.coordsArr,6),R=T[0],E=T[1],M=T[2],D=T[3],j=T[4],L=T[5],N=Math.hypot(R-D,E-j);M<=L+N&&L<=M+N&&(0,l.warn)("Unsupported radial gradient.")}g.extendStart=w;g.extendEnd=x;var U=t.getRaw("Function"),H=h.createFromArray(U),W=(_-S)/10,$=g.colorStops=[];if(S>=_||W<=0){(0,l.info)("Bad shading domain.");return _possibleConstructorReturn(g)}for(var q,X=new Float32Array(y.numComps),z=new Float32Array(1),G=0;G<=10;G++){z[0]=S+G*W;H(z,0,X,0);q=y.getRgb(X,0);var V=l.Util.makeHexColor(q[0],q[1],q[2]);$.push([G/10,V])}var Y="transparent";if(t.has("Background")){q=y.getRgb(t.get("Background"),0);Y=l.Util.makeHexColor(q[0],q[1],q[2])}if(!w){$.unshift([0,Y]);$[1][0]+=k.SMALL_NUMBER}if(!x){$[$.length-1][0]-=k.SMALL_NUMBER;$.push([1,Y])}g.colorStops=$;return g}_createClass(RadialAxialShading,[{key:"getIR",value:function getIR(){var t,r,o,c,u,h=this.coordsArr,g=this.shadingType;if(g===d){r=[h[0],h[1]];o=[h[2],h[3]];c=null;u=null;t="axial"}else if(g===m){r=[h[0],h[1]];o=[h[3],h[4]];c=h[2];u=h[5];t="radial"}else(0,l.unreachable)("getPattern type unknown: ".concat(g));return["RadialAxial",t,this.bbox,this.colorStops,r,o,c,u]}}]);return RadialAxialShading}(k),w=function(){function MeshStreamReader(t,r){_classCallCheck(this,MeshStreamReader);this.stream=t;this.context=r;this.buffer=0;this.bufferLength=0;var o=r.numComps;this.tmpCompsBuf=new Float32Array(o);var l=r.colorSpace.numComps;this.tmpCsCompsBuf=r.colorFn?new Float32Array(l):this.tmpCompsBuf}_createClass(MeshStreamReader,[{key:"hasData",get:function get(){if(this.stream.end)return this.stream.pos<this.stream.end;if(this.bufferLength>0)return!0;var t=this.stream.getByte();if(t<0)return!1;this.buffer=t;this.bufferLength=8;return!0}},{key:"readBits",value:function readBits(t){var r=this.buffer,o=this.bufferLength;if(32===t){if(0===o)return(this.stream.getByte()<<24|this.stream.getByte()<<16|this.stream.getByte()<<8|this.stream.getByte())>>>0;r=r<<24|this.stream.getByte()<<16|this.stream.getByte()<<8|this.stream.getByte();var l=this.stream.getByte();this.buffer=l&(1<<o)-1;return(r<<8-o|(255&l)>>o)>>>0}if(8===t&&0===o)return this.stream.getByte();for(;o<t;){r=r<<8|this.stream.getByte();o+=8}o-=t;this.bufferLength=o;this.buffer=r&(1<<o)-1;return r>>o}},{key:"align",value:function align(){this.buffer=0;this.bufferLength=0}},{key:"readFlag",value:function readFlag(){return this.readBits(this.context.bitsPerFlag)}},{key:"readCoordinate",value:function readCoordinate(){var t=this.context.bitsPerCoordinate,r=this.readBits(t),o=this.readBits(t),l=this.context.decode,c=t<32?1/((1<<t)-1):2.3283064365386963e-10;return[r*c*(l[1]-l[0])+l[0],o*c*(l[3]-l[2])+l[2]]}},{key:"readComponents",value:function readComponents(){for(var t=this.context.numComps,r=this.context.bitsPerComponent,o=r<32?1/((1<<r)-1):2.3283064365386963e-10,l=this.context.decode,c=this.tmpCompsBuf,u=0,h=4;u<t;u++,h+=2){var d=this.readBits(r);c[u]=d*o*(l[h+1]-l[h])+l[h]}var m=this.tmpCsCompsBuf;this.context.colorFn&&this.context.colorFn(c,0,m,0);return this.context.colorSpace.getRgb(m,0)}}]);return MeshStreamReader}(),x=function getBClosure(){var t=[];return function(r){t[r]||(t[r]=function buildB(t){for(var r=[],o=0;o<=t;o++){var l=o/t,c=1-l;r.push(new Float32Array([c*c*c,3*l*c*c,3*l*l*c,l*l*l]))}return r}(r));return t[r]}}(),O=function(t){_inherits(MeshShading,t);var r=_createSuper(MeshShading);function MeshShading(t,o,h,d,m){var _;_classCallCheck(this,MeshShading);_=r.call(this);if(!(0,u.isStream)(t))throw new l.FormatError("Mesh data is not a stream");var k=t.dict;_.shadingType=k.get("ShadingType");var C=k.getArray("BBox");Array.isArray(C)&&4===C.length?_.bbox=l.Util.normalizeRect(C):_.bbox=null;var x=c.ColorSpace.parse({cs:k.getRaw("ColorSpace")||k.getRaw("CS"),xref:o,resources:h,pdfFunctionFactory:d,localColorSpaceCache:m});_.background=k.has("Background")?x.getRgb(k.get("Background"),0):null;var O=k.getRaw("Function"),T=O?d.createFromArray(O):null;_.coords=[];_.colors=[];_.figures=[];var R={bitsPerCoordinate:k.get("BitsPerCoordinate"),bitsPerComponent:k.get("BitsPerComponent"),bitsPerFlag:k.get("BitsPerFlag"),decode:k.getArray("Decode"),colorFn:T,colorSpace:x,numComps:T?1:x.numComps},E=new w(t,R),M=!1;switch(_.shadingType){case g:_._decodeType4Shading(E);break;case y:var D=0|k.get("VerticesPerRow");if(D<2)throw new l.FormatError("Invalid VerticesPerRow");_._decodeType5Shading(E,D);break;case v:_._decodeType6Shading(E);M=!0;break;case S:_._decodeType7Shading(E);M=!0;break;default:(0,l.unreachable)("Unsupported mesh type.")}if(M){_._updateBounds();for(var j=0,L=_.figures.length;j<L;j++)_._buildFigureFromPatch(j)}_._updateBounds();_._packData();return _}_createClass(MeshShading,[{key:"_decodeType4Shading",value:function _decodeType4Shading(t){for(var r=this.coords,o=this.colors,c=[],u=[],h=0;t.hasData;){var d=t.readFlag(),m=t.readCoordinate(),g=t.readComponents();if(0===h){if(!(0<=d&&d<=2))throw new l.FormatError("Unknown type4 flag");switch(d){case 0:h=3;break;case 1:u.push(u[u.length-2],u[u.length-1]);h=1;break;case 2:u.push(u[u.length-3],u[u.length-1]);h=1}c.push(d)}u.push(r.length);r.push(m);o.push(g);h--;t.align()}this.figures.push({type:"triangles",coords:new Int32Array(u),colors:new Int32Array(u)})}},{key:"_decodeType5Shading",value:function _decodeType5Shading(t,r){for(var o=this.coords,l=this.colors,c=[];t.hasData;){var u=t.readCoordinate(),h=t.readComponents();c.push(o.length);o.push(u);l.push(h)}this.figures.push({type:"lattice",coords:new Int32Array(c),colors:new Int32Array(c),verticesPerRow:r})}},{key:"_decodeType6Shading",value:function _decodeType6Shading(t){for(var r=this.coords,o=this.colors,c=new Int32Array(16),u=new Int32Array(4);t.hasData;){var h=t.readFlag();if(!(0<=h&&h<=3))throw new l.FormatError("Unknown type6 flag");for(var d=r.length,m=0,g=0!==h?8:12;m<g;m++)r.push(t.readCoordinate());for(var y=o.length,v=0,S=0!==h?2:4;v<S;v++)o.push(t.readComponents());var _=void 0,k=void 0,C=void 0,w=void 0;switch(h){case 0:c[12]=d+3;c[13]=d+4;c[14]=d+5;c[15]=d+6;c[8]=d+2;c[11]=d+7;c[4]=d+1;c[7]=d+8;c[0]=d;c[1]=d+11;c[2]=d+10;c[3]=d+9;u[2]=y+1;u[3]=y+2;u[0]=y;u[1]=y+3;break;case 1:_=c[12];k=c[13];C=c[14];w=c[15];c[12]=w;c[13]=d+0;c[14]=d+1;c[15]=d+2;c[8]=C;c[11]=d+3;c[4]=k;c[7]=d+4;c[0]=_;c[1]=d+7;c[2]=d+6;c[3]=d+5;_=u[2];k=u[3];u[2]=k;u[3]=y;u[0]=_;u[1]=y+1;break;case 2:_=c[15];k=c[11];c[12]=c[3];c[13]=d+0;c[14]=d+1;c[15]=d+2;c[8]=c[7];c[11]=d+3;c[4]=k;c[7]=d+4;c[0]=_;c[1]=d+7;c[2]=d+6;c[3]=d+5;_=u[3];u[2]=u[1];u[3]=y;u[0]=_;u[1]=y+1;break;case 3:c[12]=c[0];c[13]=d+0;c[14]=d+1;c[15]=d+2;c[8]=c[1];c[11]=d+3;c[4]=c[2];c[7]=d+4;c[0]=c[3];c[1]=d+7;c[2]=d+6;c[3]=d+5;u[2]=u[0];u[3]=y;u[0]=u[1];u[1]=y+1}c[5]=r.length;r.push([(-4*r[c[0]][0]-r[c[15]][0]+6*(r[c[4]][0]+r[c[1]][0])-2*(r[c[12]][0]+r[c[3]][0])+3*(r[c[13]][0]+r[c[7]][0]))/9,(-4*r[c[0]][1]-r[c[15]][1]+6*(r[c[4]][1]+r[c[1]][1])-2*(r[c[12]][1]+r[c[3]][1])+3*(r[c[13]][1]+r[c[7]][1]))/9]);c[6]=r.length;r.push([(-4*r[c[3]][0]-r[c[12]][0]+6*(r[c[2]][0]+r[c[7]][0])-2*(r[c[0]][0]+r[c[15]][0])+3*(r[c[4]][0]+r[c[14]][0]))/9,(-4*r[c[3]][1]-r[c[12]][1]+6*(r[c[2]][1]+r[c[7]][1])-2*(r[c[0]][1]+r[c[15]][1])+3*(r[c[4]][1]+r[c[14]][1]))/9]);c[9]=r.length;r.push([(-4*r[c[12]][0]-r[c[3]][0]+6*(r[c[8]][0]+r[c[13]][0])-2*(r[c[0]][0]+r[c[15]][0])+3*(r[c[11]][0]+r[c[1]][0]))/9,(-4*r[c[12]][1]-r[c[3]][1]+6*(r[c[8]][1]+r[c[13]][1])-2*(r[c[0]][1]+r[c[15]][1])+3*(r[c[11]][1]+r[c[1]][1]))/9]);c[10]=r.length;r.push([(-4*r[c[15]][0]-r[c[0]][0]+6*(r[c[11]][0]+r[c[14]][0])-2*(r[c[12]][0]+r[c[3]][0])+3*(r[c[2]][0]+r[c[8]][0]))/9,(-4*r[c[15]][1]-r[c[0]][1]+6*(r[c[11]][1]+r[c[14]][1])-2*(r[c[12]][1]+r[c[3]][1])+3*(r[c[2]][1]+r[c[8]][1]))/9]);this.figures.push({type:"patch",coords:new Int32Array(c),colors:new Int32Array(u)})}}},{key:"_decodeType7Shading",value:function _decodeType7Shading(t){for(var r=this.coords,o=this.colors,c=new Int32Array(16),u=new Int32Array(4);t.hasData;){var h=t.readFlag();if(!(0<=h&&h<=3))throw new l.FormatError("Unknown type7 flag");for(var d=r.length,m=0,g=0!==h?12:16;m<g;m++)r.push(t.readCoordinate());for(var y=o.length,v=0,S=0!==h?2:4;v<S;v++)o.push(t.readComponents());var _=void 0,k=void 0,C=void 0,w=void 0;switch(h){case 0:c[12]=d+3;c[13]=d+4;c[14]=d+5;c[15]=d+6;c[8]=d+2;c[9]=d+13;c[10]=d+14;c[11]=d+7;c[4]=d+1;c[5]=d+12;c[6]=d+15;c[7]=d+8;c[0]=d;c[1]=d+11;c[2]=d+10;c[3]=d+9;u[2]=y+1;u[3]=y+2;u[0]=y;u[1]=y+3;break;case 1:_=c[12];k=c[13];C=c[14];w=c[15];c[12]=w;c[13]=d+0;c[14]=d+1;c[15]=d+2;c[8]=C;c[9]=d+9;c[10]=d+10;c[11]=d+3;c[4]=k;c[5]=d+8;c[6]=d+11;c[7]=d+4;c[0]=_;c[1]=d+7;c[2]=d+6;c[3]=d+5;_=u[2];k=u[3];u[2]=k;u[3]=y;u[0]=_;u[1]=y+1;break;case 2:_=c[15];k=c[11];c[12]=c[3];c[13]=d+0;c[14]=d+1;c[15]=d+2;c[8]=c[7];c[9]=d+9;c[10]=d+10;c[11]=d+3;c[4]=k;c[5]=d+8;c[6]=d+11;c[7]=d+4;c[0]=_;c[1]=d+7;c[2]=d+6;c[3]=d+5;_=u[3];u[2]=u[1];u[3]=y;u[0]=_;u[1]=y+1;break;case 3:c[12]=c[0];c[13]=d+0;c[14]=d+1;c[15]=d+2;c[8]=c[1];c[9]=d+9;c[10]=d+10;c[11]=d+3;c[4]=c[2];c[5]=d+8;c[6]=d+11;c[7]=d+4;c[0]=c[3];c[1]=d+7;c[2]=d+6;c[3]=d+5;u[2]=u[0];u[3]=y;u[0]=u[1];u[1]=y+1}this.figures.push({type:"patch",coords:new Int32Array(c),colors:new Int32Array(u)})}}},{key:"_buildFigureFromPatch",value:function _buildFigureFromPatch(t){var r=this.figures[t];(0,l.assert)("patch"===r.type,"Unexpected patch mesh figure");var o=this.coords,c=this.colors,u=r.coords,h=r.colors,d=Math.min(o[u[0]][0],o[u[3]][0],o[u[12]][0],o[u[15]][0]),m=Math.min(o[u[0]][1],o[u[3]][1],o[u[12]][1],o[u[15]][1]),g=Math.max(o[u[0]][0],o[u[3]][0],o[u[12]][0],o[u[15]][0]),y=Math.max(o[u[0]][1],o[u[3]][1],o[u[12]][1],o[u[15]][1]),v=Math.ceil((g-d)*MeshShading.TRIANGLE_DENSITY/(this.bounds[2]-this.bounds[0]));v=Math.max(MeshShading.MIN_SPLIT_PATCH_CHUNKS_AMOUNT,Math.min(MeshShading.MAX_SPLIT_PATCH_CHUNKS_AMOUNT,v));var S=Math.ceil((y-m)*MeshShading.TRIANGLE_DENSITY/(this.bounds[3]-this.bounds[1]));S=Math.max(MeshShading.MIN_SPLIT_PATCH_CHUNKS_AMOUNT,Math.min(MeshShading.MAX_SPLIT_PATCH_CHUNKS_AMOUNT,S));for(var _=v+1,k=new Int32Array((S+1)*_),C=new Int32Array((S+1)*_),w=0,O=new Uint8Array(3),T=new Uint8Array(3),R=c[h[0]],E=c[h[1]],M=c[h[2]],D=c[h[3]],j=x(S),L=x(v),N=0;N<=S;N++){O[0]=(R[0]*(S-N)+M[0]*N)/S|0;O[1]=(R[1]*(S-N)+M[1]*N)/S|0;O[2]=(R[2]*(S-N)+M[2]*N)/S|0;T[0]=(E[0]*(S-N)+D[0]*N)/S|0;T[1]=(E[1]*(S-N)+D[1]*N)/S|0;T[2]=(E[2]*(S-N)+D[2]*N)/S|0;for(var U=0;U<=v;U++,w++)if(0!==N&&N!==S||0!==U&&U!==v){for(var H=0,W=0,$=0,q=0;q<=3;q++)for(var X=0;X<=3;X++,$++){var z=j[N][q]*L[U][X];H+=o[u[$]][0]*z;W+=o[u[$]][1]*z}k[w]=o.length;o.push([H,W]);C[w]=c.length;var G=new Uint8Array(3);G[0]=(O[0]*(v-U)+T[0]*U)/v|0;G[1]=(O[1]*(v-U)+T[1]*U)/v|0;G[2]=(O[2]*(v-U)+T[2]*U)/v|0;c.push(G)}}k[0]=u[0];C[0]=h[0];k[v]=u[3];C[v]=h[1];k[_*S]=u[12];C[_*S]=h[2];k[_*S+v]=u[15];C[_*S+v]=h[3];this.figures[t]={type:"lattice",coords:k,colors:C,verticesPerRow:_}}},{key:"_updateBounds",value:function _updateBounds(){for(var t=this.coords[0][0],r=this.coords[0][1],o=t,l=r,c=1,u=this.coords.length;c<u;c++){var h=this.coords[c][0],d=this.coords[c][1];t=t>h?h:t;r=r>d?d:r;o=o<h?h:o;l=l<d?d:l}this.bounds=[t,r,o,l]}},{key:"_packData",value:function _packData(){var t,r,o,l,c=this.coords,u=new Float32Array(2*c.length);for(t=0,o=0,r=c.length;t<r;t++){var h=c[t];u[o++]=h[0];u[o++]=h[1]}this.coords=u;var d=this.colors,m=new Uint8Array(3*d.length);for(t=0,o=0,r=d.length;t<r;t++){var g=d[t];m[o++]=g[0];m[o++]=g[1];m[o++]=g[2]}this.colors=m;var y=this.figures;for(t=0,r=y.length;t<r;t++){var v=y[t],S=v.coords,_=v.colors;for(o=0,l=S.length;o<l;o++){S[o]*=2;_[o]*=3}}}},{key:"getIR",value:function getIR(){return["Mesh",this.shadingType,this.coords,this.colors,this.figures,this.bounds,this.bbox,this.background]}}],[{key:"MIN_SPLIT_PATCH_CHUNKS_AMOUNT",get:function get(){return(0,l.shadow)(this,"MIN_SPLIT_PATCH_CHUNKS_AMOUNT",3)}},{key:"MAX_SPLIT_PATCH_CHUNKS_AMOUNT",get:function get(){return(0,l.shadow)(this,"MAX_SPLIT_PATCH_CHUNKS_AMOUNT",20)}},{key:"TRIANGLE_DENSITY",get:function get(){return(0,l.shadow)(this,"TRIANGLE_DENSITY",20)}}]);return MeshShading}(k),T=function(t){_inherits(DummyShading,t);var r=_createSuper(DummyShading);function DummyShading(){_classCallCheck(this,DummyShading);return r.apply(this,arguments)}_createClass(DummyShading,[{key:"getIR",value:function getIR(){return["Dummy"]}}]);return DummyShading}(k)},(t,r,o)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});r.isPDFFunction=function isPDFFunction(t){var r;if("object"!==_typeof(t))return!1;if((0,l.isDict)(t))r=t;else{if(!(0,l.isStream)(t))return!1;r=t.dict}return r.has("FunctionType")};r.PostScriptEvaluator=r.PostScriptCompiler=r.PDFFunctionFactory=void 0;var l=o(118),c=o(4),u=o(170),h=o(171);function _inherits(t,r){if("function"!=typeof r&&null!==r)throw new TypeError("Super expression must either be null or a function");t.prototype=Object.create(r&&r.prototype,{constructor:{value:t,writable:!0,configurable:!0}});r&&_setPrototypeOf(t,r)}function _setPrototypeOf(t,r){_setPrototypeOf=Object.setPrototypeOf||function _setPrototypeOf(t,r){t.__proto__=r;return t};return _setPrototypeOf(t,r)}function _createSuper(t){var r=function _isNativeReflectConstruct(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){})));return!0}catch(t){return!1}}();return function _createSuperInternal(){var o,l=_getPrototypeOf(t);if(r){var c=_getPrototypeOf(this).constructor;o=Reflect.construct(l,arguments,c)}else o=l.apply(this,arguments);return _possibleConstructorReturn(this,o)}}function _possibleConstructorReturn(t,r){if(r&&("object"===_typeof(r)||"function"==typeof r))return r;if(void 0!==r)throw new TypeError("Derived constructors may only return object or undefined");return function _assertThisInitialized(t){if(void 0===t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return t}(t)}function _getPrototypeOf(t){_getPrototypeOf=Object.setPrototypeOf?Object.getPrototypeOf:function _getPrototypeOf(t){return t.__proto__||Object.getPrototypeOf(t)};return _getPrototypeOf(t)}function _typeof(t){_typeof="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function _typeof(t){return typeof t}:function _typeof(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t};return _typeof(t)}function _classCallCheck(t,r){if(!(t instanceof r))throw new TypeError("Cannot call a class as a function")}function _defineProperties(t,r){for(var o=0;o<r.length;o++){var l=r[o];l.enumerable=l.enumerable||!1;l.configurable=!0;"value"in l&&(l.writable=!0);Object.defineProperty(t,l.key,l)}}function _createClass(t,r,o){r&&_defineProperties(t.prototype,r);o&&_defineProperties(t,o);return t}var d=function(){function PDFFunctionFactory(t){var r=t.xref,o=t.isEvalSupported,l=void 0===o||o;_classCallCheck(this,PDFFunctionFactory);this.xref=r;this.isEvalSupported=!1!==l}_createClass(PDFFunctionFactory,[{key:"create",value:function create(t){var r=this.getCached(t);if(r)return r;var o=m.parse({xref:this.xref,isEvalSupported:this.isEvalSupported,fn:t instanceof l.Ref?this.xref.fetch(t):t});this._cache(t,o);return o}},{key:"createFromArray",value:function createFromArray(t){var r=this.getCached(t);if(r)return r;var o=m.parseArray({xref:this.xref,isEvalSupported:this.isEvalSupported,fnObj:t instanceof l.Ref?this.xref.fetch(t):t});this._cache(t,o);return o}},{key:"getCached",value:function getCached(t){var r;t instanceof l.Ref?r=t:t instanceof l.Dict?r=t.objId:(0,l.isStream)(t)&&(r=t.dict&&t.dict.objId);if(r){var o=this._localFunctionCache.getByRef(r);if(o)return o}return null}},{key:"_cache",value:function _cache(t,r){if(!r)throw new Error('PDFFunctionFactory._cache - expected "parsedFunction" argument.');var o;t instanceof l.Ref?o=t:t instanceof l.Dict?o=t.objId:(0,l.isStream)(t)&&(o=t.dict&&t.dict.objId);o&&this._localFunctionCache.set(null,o,r)}},{key:"_localFunctionCache",get:function get(){return(0,c.shadow)(this,"_localFunctionCache",new h.LocalFunctionCache)}}]);return PDFFunctionFactory}();r.PDFFunctionFactory=d;function toNumberArray(t){if(!Array.isArray(t))return null;for(var r=t.length,o=0;o<r;o++)if("number"!=typeof t[o]){for(var l=new Array(r),c=0;c<r;c++)l[c]=+t[c];return l}return t}var m=function(){function PDFFunction(){_classCallCheck(this,PDFFunction)}_createClass(PDFFunction,null,[{key:"getSampleArray",value:function getSampleArray(t,r,o,l){var c,u,h=1;for(c=0,u=t.length;c<u;c++)h*=t[c];h*=r;var d=new Array(h),m=0,g=0,y=1/(Math.pow(2,o)-1),v=l.getBytes((h*o+7)/8),S=0;for(c=0;c<h;c++){for(;m<o;){g<<=8;g|=v[S++];m+=8}m-=o;d[c]=(g>>m)*y;g&=(1<<m)-1}return d}},{key:"parse",value:function parse(t){var r=t.xref,o=t.isEvalSupported,l=t.fn,u=l.dict||l;switch(u.get("FunctionType")){case 0:return this.constructSampled({xref:r,isEvalSupported:o,fn:l,dict:u});case 1:break;case 2:return this.constructInterpolated({xref:r,isEvalSupported:o,dict:u});case 3:return this.constructStiched({xref:r,isEvalSupported:o,dict:u});case 4:return this.constructPostScript({xref:r,isEvalSupported:o,fn:l,dict:u})}throw new c.FormatError("Unknown type of function")}},{key:"parseArray",value:function parseArray(t){var r=t.xref,o=t.isEvalSupported,l=t.fnObj;if(!Array.isArray(l))return this.parse({xref:r,isEvalSupported:o,fn:l});for(var c=[],u=0,h=l.length;u<h;u++)c.push(this.parse({xref:r,isEvalSupported:o,fn:r.fetchIfRef(l[u])}));return function(t,r,o,l){for(var u=0,h=c.length;u<h;u++)c[u](t,r,o,l+u)}}},{key:"constructSampled",value:function constructSampled(t){t.xref,t.isEvalSupported;var r=t.fn,o=t.dict;function toMultiArray(t){for(var r=t.length,o=[],l=0,c=0;c<r;c+=2)o[l++]=[t[c],t[c+1]];return o}function interpolate(t,r,o,l,c){return l+(c-l)/(o-r)*(t-r)}var l=toNumberArray(o.getArray("Domain")),u=toNumberArray(o.getArray("Range"));if(!l||!u)throw new c.FormatError("No domain or range");var h=l.length/2,d=u.length/2;l=toMultiArray(l);u=toMultiArray(u);var m=toNumberArray(o.getArray("Size")),g=o.get("BitsPerSample"),y=o.get("Order")||1;1!==y&&(0,c.info)("No support for cubic spline interpolation: "+y);var v=toNumberArray(o.getArray("Encode"));if(v)v=toMultiArray(v);else{v=[];for(var S=0;S<h;++S)v.push([0,m[S]-1])}var _=toNumberArray(o.getArray("Decode"));_=_?toMultiArray(_):u;var k=this.getSampleArray(m,d,g,r);return function constructSampledFn(t,r,o,c){var g,y,S=1<<h,C=new Float64Array(S),w=new Uint32Array(S);for(y=0;y<S;y++)C[y]=1;var x=d,O=1;for(g=0;g<h;++g){var T=l[g][0],R=l[g][1],E=interpolate(Math.min(Math.max(t[r+g],T),R),T,R,v[g][0],v[g][1]),M=m[g],D=(E=Math.min(Math.max(E,0),M-1))<M-1?Math.floor(E):E-1,j=D+1-E,L=E-D,N=D*x,U=N+x;for(y=0;y<S;y++)if(y&O){C[y]*=L;w[y]+=U}else{C[y]*=j;w[y]+=N}x*=M;O<<=1}for(y=0;y<d;++y){var H=0;for(g=0;g<S;g++)H+=k[w[g]+y]*C[g];H=interpolate(H,0,1,_[y][0],_[y][1]);o[c+y]=Math.min(Math.max(H,u[y][0]),u[y][1])}}}},{key:"constructInterpolated",value:function constructInterpolated(t){t.xref,t.isEvalSupported;for(var r=t.dict,o=toNumberArray(r.getArray("C0"))||[0],l=toNumberArray(r.getArray("C1"))||[1],c=r.get("N"),u=[],h=0,d=o.length;h<d;++h)u.push(l[h]-o[h]);var m=u.length;return function constructInterpolatedFn(t,r,l,h){for(var d=1===c?t[r]:Math.pow(t[r],c),g=0;g<m;++g)l[h+g]=o[g]+d*u[g]}}},{key:"constructStiched",value:function constructStiched(t){var r=t.xref,o=t.isEvalSupported,l=t.dict,u=toNumberArray(l.getArray("Domain"));if(!u)throw new c.FormatError("No domain");if(1!==u.length/2)throw new c.FormatError("Bad domain for stiched function");for(var h=l.get("Functions"),d=[],m=0,g=h.length;m<g;++m)d.push(this.parse({xref:r,isEvalSupported:o,fn:r.fetchIfRef(h[m])}));var y=toNumberArray(l.getArray("Bounds")),v=toNumberArray(l.getArray("Encode")),S=new Float32Array(1);return function constructStichedFn(t,r,o,l){var c,h=function constructStichedFromIRClip(t,r,o){t>o?t=o:t<r&&(t=r);return t}(t[r],u[0],u[1]),m=y.length;for(c=0;c<m&&!(h<y[c]);++c);var g=u[0];c>0&&(g=y[c-1]);var _=u[1];c<y.length&&(_=y[c]);var k=v[2*c],C=v[2*c+1];S[0]=g===_?k:k+(h-g)*(C-k)/(_-g);d[c](S,0,o,l)}}},{key:"constructPostScript",value:function constructPostScript(t){t.xref;var r=t.isEvalSupported,o=t.fn,l=t.dict,h=toNumberArray(l.getArray("Domain")),d=toNumberArray(l.getArray("Range"));if(!h)throw new c.FormatError("No domain.");if(!d)throw new c.FormatError("No range.");var m=new u.PostScriptLexer(o),g=new u.PostScriptParser(m).parse();if(r&&c.IsEvalSupportedCached.value){var S=(new v).compile(g,h,d);if(S)return new Function("src","srcOffset","dest","destOffset",S)}(0,c.info)("Unable to compile PS function");var _=d.length>>1,k=h.length>>1,C=new y(g),w=Object.create(null),x=8192,O=new Float32Array(k);return function constructPostScriptFn(t,r,o,l){var c,u,h="",m=O;for(c=0;c<k;c++){u=t[r+c];m[c]=u;h+=u+"_"}var g=w[h];if(void 0===g){var y=new Float32Array(_),v=C.execute(m),S=v.length-_;for(c=0;c<_;c++){u=v[S+c];var T=d[2*c];(u<T||u>(T=d[2*c+1]))&&(u=T);y[c]=u}if(x>0){x--;w[h]=y}o.set(y,l)}else o.set(g,l)}}}]);return PDFFunction}();var g=function(){function PostScriptStack(t){_classCallCheck(this,PostScriptStack);this.stack=t?Array.prototype.slice.call(t,0):[]}_createClass(PostScriptStack,[{key:"push",value:function push(t){if(this.stack.length>=PostScriptStack.MAX_STACK_SIZE)throw new Error("PostScript function stack overflow.");this.stack.push(t)}},{key:"pop",value:function pop(){if(this.stack.length<=0)throw new Error("PostScript function stack underflow.");return this.stack.pop()}},{key:"copy",value:function copy(t){if(this.stack.length+t>=PostScriptStack.MAX_STACK_SIZE)throw new Error("PostScript function stack overflow.");for(var r=this.stack,o=r.length-t,l=t-1;l>=0;l--,o++)r.push(r[o])}},{key:"index",value:function index(t){this.push(this.stack[this.stack.length-t-1])}},{key:"roll",value:function roll(t,r){for(var o=this.stack,l=o.length-t,c=o.length-1,u=l+(r-Math.floor(r/t)*t),h=l,d=c;h<d;h++,d--){var m=o[h];o[h]=o[d];o[d]=m}for(var g=l,y=u-1;g<y;g++,y--){var v=o[g];o[g]=o[y];o[y]=v}for(var S=u,_=c;S<_;S++,_--){var k=o[S];o[S]=o[_];o[_]=k}}}],[{key:"MAX_STACK_SIZE",get:function get(){return(0,c.shadow)(this,"MAX_STACK_SIZE",100)}}]);return PostScriptStack}(),y=function(){function PostScriptEvaluator(t){_classCallCheck(this,PostScriptEvaluator);this.operators=t}_createClass(PostScriptEvaluator,[{key:"execute",value:function execute(t){for(var r,o,l,u=new g(t),h=0,d=this.operators,m=d.length;h<m;)if("number"!=typeof(r=d[h++]))switch(r){case"jz":l=u.pop();(o=u.pop())||(h=l);break;case"j":h=o=u.pop();break;case"abs":o=u.pop();u.push(Math.abs(o));break;case"add":l=u.pop();o=u.pop();u.push(o+l);break;case"and":l=u.pop();o=u.pop();(0,c.isBool)(o)&&(0,c.isBool)(l)?u.push(o&&l):u.push(o&l);break;case"atan":o=u.pop();u.push(Math.atan(o));break;case"bitshift":l=u.pop();(o=u.pop())>0?u.push(o<<l):u.push(o>>l);break;case"ceiling":o=u.pop();u.push(Math.ceil(o));break;case"copy":o=u.pop();u.copy(o);break;case"cos":o=u.pop();u.push(Math.cos(o));break;case"cvi":o=0|u.pop();u.push(o);break;case"cvr":break;case"div":l=u.pop();o=u.pop();u.push(o/l);break;case"dup":u.copy(1);break;case"eq":l=u.pop();o=u.pop();u.push(o===l);break;case"exch":u.roll(2,1);break;case"exp":l=u.pop();o=u.pop();u.push(Math.pow(o,l));break;case"false":u.push(!1);break;case"floor":o=u.pop();u.push(Math.floor(o));break;case"ge":l=u.pop();o=u.pop();u.push(o>=l);break;case"gt":l=u.pop();o=u.pop();u.push(o>l);break;case"idiv":l=u.pop();o=u.pop();u.push(o/l|0);break;case"index":o=u.pop();u.index(o);break;case"le":l=u.pop();o=u.pop();u.push(o<=l);break;case"ln":o=u.pop();u.push(Math.log(o));break;case"log":o=u.pop();u.push(Math.log(o)/Math.LN10);break;case"lt":l=u.pop();o=u.pop();u.push(o<l);break;case"mod":l=u.pop();o=u.pop();u.push(o%l);break;case"mul":l=u.pop();o=u.pop();u.push(o*l);break;case"ne":l=u.pop();o=u.pop();u.push(o!==l);break;case"neg":o=u.pop();u.push(-o);break;case"not":o=u.pop();(0,c.isBool)(o)?u.push(!o):u.push(~o);break;case"or":l=u.pop();o=u.pop();(0,c.isBool)(o)&&(0,c.isBool)(l)?u.push(o||l):u.push(o|l);break;case"pop":u.pop();break;case"roll":l=u.pop();o=u.pop();u.roll(o,l);break;case"round":o=u.pop();u.push(Math.round(o));break;case"sin":o=u.pop();u.push(Math.sin(o));break;case"sqrt":o=u.pop();u.push(Math.sqrt(o));break;case"sub":l=u.pop();o=u.pop();u.push(o-l);break;case"true":u.push(!0);break;case"truncate":o=(o=u.pop())<0?Math.ceil(o):Math.floor(o);u.push(o);break;case"xor":l=u.pop();o=u.pop();(0,c.isBool)(o)&&(0,c.isBool)(l)?u.push(o!==l):u.push(o^l);break;default:throw new c.FormatError("Unknown operator ".concat(r))}else u.push(r);return u.stack}}]);return PostScriptEvaluator}();r.PostScriptEvaluator=y;var v=function PostScriptCompilerClosure(){var t=function(){function AstNode(t){_classCallCheck(this,AstNode);this.type=t}_createClass(AstNode,[{key:"visit",value:function visit(t){(0,c.unreachable)("abstract method")}}]);return AstNode}(),r=function(t){_inherits(AstArgument,t);var r=_createSuper(AstArgument);function AstArgument(t,o,l){var c;_classCallCheck(this,AstArgument);(c=r.call(this,"args")).index=t;c.min=o;c.max=l;return c}_createClass(AstArgument,[{key:"visit",value:function visit(t){t.visitArgument(this)}}]);return AstArgument}(t),o=function(t){_inherits(AstLiteral,t);var r=_createSuper(AstLiteral);function AstLiteral(t){var o;_classCallCheck(this,AstLiteral);(o=r.call(this,"literal")).number=t;o.min=t;o.max=t;return o}_createClass(AstLiteral,[{key:"visit",value:function visit(t){t.visitLiteral(this)}}]);return AstLiteral}(t),l=function(t){_inherits(AstBinaryOperation,t);var r=_createSuper(AstBinaryOperation);function AstBinaryOperation(t,o,l,c,u){var h;_classCallCheck(this,AstBinaryOperation);(h=r.call(this,"binary")).op=t;h.arg1=o;h.arg2=l;h.min=c;h.max=u;return h}_createClass(AstBinaryOperation,[{key:"visit",value:function visit(t){t.visitBinaryOperation(this)}}]);return AstBinaryOperation}(t),u=function(t){_inherits(AstMin,t);var r=_createSuper(AstMin);function AstMin(t,o){var l;_classCallCheck(this,AstMin);(l=r.call(this,"max")).arg=t;l.min=t.min;l.max=o;return l}_createClass(AstMin,[{key:"visit",value:function visit(t){t.visitMin(this)}}]);return AstMin}(t),h=function(t){_inherits(AstVariable,t);var r=_createSuper(AstVariable);function AstVariable(t,o,l){var c;_classCallCheck(this,AstVariable);(c=r.call(this,"var")).index=t;c.min=o;c.max=l;return c}_createClass(AstVariable,[{key:"visit",value:function visit(t){t.visitVariable(this)}}]);return AstVariable}(t),d=function(t){_inherits(AstVariableDefinition,t);var r=_createSuper(AstVariableDefinition);function AstVariableDefinition(t,o){var l;_classCallCheck(this,AstVariableDefinition);(l=r.call(this,"definition")).variable=t;l.arg=o;return l}_createClass(AstVariableDefinition,[{key:"visit",value:function visit(t){t.visitVariableDefinition(this)}}]);return AstVariableDefinition}(t),m=function(){function ExpressionBuilderVisitor(){_classCallCheck(this,ExpressionBuilderVisitor);this.parts=[]}_createClass(ExpressionBuilderVisitor,[{key:"visitArgument",value:function visitArgument(t){this.parts.push("Math.max(",t.min,", Math.min(",t.max,", src[srcOffset + ",t.index,"]))")}},{key:"visitVariable",value:function visitVariable(t){this.parts.push("v",t.index)}},{key:"visitLiteral",value:function visitLiteral(t){this.parts.push(t.number)}},{key:"visitBinaryOperation",value:function visitBinaryOperation(t){this.parts.push("(");t.arg1.visit(this);this.parts.push(" ",t.op," ");t.arg2.visit(this);this.parts.push(")")}},{key:"visitVariableDefinition",value:function visitVariableDefinition(t){this.parts.push("var ");t.variable.visit(this);this.parts.push(" = ");t.arg.visit(this);this.parts.push(";")}},{key:"visitMin",value:function visitMin(t){this.parts.push("Math.min(");t.arg.visit(this);this.parts.push(", ",t.max,")")}},{key:"toString",value:function toString(){return this.parts.join("")}}]);return ExpressionBuilderVisitor}();function buildAddOperation(t,r){return"literal"===r.type&&0===r.number?t:"literal"===t.type&&0===t.number?r:"literal"===r.type&&"literal"===t.type?new o(t.number+r.number):new l("+",t,r,t.min+r.min,t.max+r.max)}function buildMulOperation(t,r){if("literal"===r.type){if(0===r.number)return new o(0);if(1===r.number)return t;if("literal"===t.type)return new o(t.number*r.number)}if("literal"===t.type){if(0===t.number)return new o(0);if(1===t.number)return r}var c=Math.min(t.min*r.min,t.min*r.max,t.max*r.min,t.max*r.max),u=Math.max(t.min*r.min,t.min*r.max,t.max*r.min,t.max*r.max);return new l("*",t,r,c,u)}function buildSubOperation(t,r){if("literal"===r.type){if(0===r.number)return t;if("literal"===t.type)return new o(t.number-r.number)}return"binary"===r.type&&"-"===r.op&&"literal"===t.type&&1===t.number&&"literal"===r.arg1.type&&1===r.arg1.number?r.arg2:new l("-",t,r,t.min-r.max,t.max-r.min)}function buildMinOperation(t,r){return t.min>=r?new o(r):t.max<=r?t:new u(t,r)}return function(){function PostScriptCompiler(){_classCallCheck(this,PostScriptCompiler)}_createClass(PostScriptCompiler,[{key:"compile",value:function compile(t,l,c){for(var u,g,y,v,S,_,k,C,w=[],x=[],O=l.length>>1,T=c.length>>1,R=0,E=0;E<O;E++)w.push(new r(E,l[2*E],l[2*E+1]));for(var M=0,D=t.length;M<D;M++)if("number"!=typeof(C=t[M]))switch(C){case"add":if(w.length<2)return null;v=w.pop();y=w.pop();w.push(buildAddOperation(y,v));break;case"cvr":if(w.length<1)return null;break;case"mul":if(w.length<2)return null;v=w.pop();y=w.pop();w.push(buildMulOperation(y,v));break;case"sub":if(w.length<2)return null;v=w.pop();y=w.pop();w.push(buildSubOperation(y,v));break;case"exch":if(w.length<2)return null;S=w.pop();_=w.pop();w.push(S,_);break;case"pop":if(w.length<1)return null;w.pop();break;case"index":if(w.length<1)return null;if("literal"!==(y=w.pop()).type)return null;if((u=y.number)<0||!Number.isInteger(u)||w.length<u)return null;if("literal"===(S=w[w.length-u-1]).type||"var"===S.type){w.push(S);break}k=new h(R++,S.min,S.max);w[w.length-u-1]=k;w.push(k);x.push(new d(k,S));break;case"dup":if(w.length<1)return null;if("number"==typeof t[M+1]&&"gt"===t[M+2]&&t[M+3]===M+7&&"jz"===t[M+4]&&"pop"===t[M+5]&&t[M+6]===t[M+1]){y=w.pop();w.push(buildMinOperation(y,t[M+1]));M+=6;break}if("literal"===(S=w[w.length-1]).type||"var"===S.type){w.push(S);break}k=new h(R++,S.min,S.max);w[w.length-1]=k;w.push(k);x.push(new d(k,S));break;case"roll":if(w.length<2)return null;v=w.pop();y=w.pop();if("literal"!==v.type||"literal"!==y.type)return null;g=v.number;if((u=y.number)<=0||!Number.isInteger(u)||!Number.isInteger(g)||w.length<u)return null;if(0===(g=(g%u+u)%u))break;Array.prototype.push.apply(w,w.splice(w.length-u,u-g));break;default:return null}else w.push(new o(C));if(w.length!==T)return null;for(var j=[],L=0,N=x;L<N.length;L++){var U=N[L],H=new m;U.visit(H);j.push(H.toString())}for(var W=0,$=w.length;W<$;W++){var q=w[W],X=new m;q.visit(X);var z=c[2*W],G=c[2*W+1],V=[X.toString()];if(z>q.min){V.unshift("Math.max(",z,", ");V.push(")")}if(G<q.max){V.unshift("Math.min(",G,", ");V.push(")")}V.unshift("dest[destOffset + ",W,"] = ");V.push(";");j.push(V.join(""))}return j.join("\n")}}]);return PostScriptCompiler}()}();r.PostScriptCompiler=v},(t,r,o)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});r.PostScriptParser=r.PostScriptLexer=void 0;var l=o(4),c=o(118),u=o(122);function _classCallCheck(t,r){if(!(t instanceof r))throw new TypeError("Cannot call a class as a function")}function _defineProperties(t,r){for(var o=0;o<r.length;o++){var l=r[o];l.enumerable=l.enumerable||!1;l.configurable=!0;"value"in l&&(l.writable=!0);Object.defineProperty(t,l.key,l)}}function _createClass(t,r,o){r&&_defineProperties(t.prototype,r);o&&_defineProperties(t,o);return t}var h=function(){function PostScriptParser(t){_classCallCheck(this,PostScriptParser);this.lexer=t;this.operators=[];this.token=null;this.prev=null}_createClass(PostScriptParser,[{key:"nextToken",value:function nextToken(){this.prev=this.token;this.token=this.lexer.getToken()}},{key:"accept",value:function accept(t){if(this.token.type===t){this.nextToken();return!0}return!1}},{key:"expect",value:function expect(t){if(this.accept(t))return!0;throw new l.FormatError("Unexpected symbol: found ".concat(this.token.type," expected ").concat(t,"."))}},{key:"parse",value:function parse(){this.nextToken();this.expect(d.LBRACE);this.parseBlock();this.expect(d.RBRACE);return this.operators}},{key:"parseBlock",value:function parseBlock(){for(;;)if(this.accept(d.NUMBER))this.operators.push(this.prev.value);else if(this.accept(d.OPERATOR))this.operators.push(this.prev.value);else{if(!this.accept(d.LBRACE))return;this.parseCondition()}}},{key:"parseCondition",value:function parseCondition(){var t=this.operators.length;this.operators.push(null,null);this.parseBlock();this.expect(d.RBRACE);if(this.accept(d.IF)){this.operators[t]=this.operators.length;this.operators[t+1]="jz"}else{if(!this.accept(d.LBRACE))throw new l.FormatError("PS Function: error parsing conditional.");var r=this.operators.length;this.operators.push(null,null);var o=this.operators.length;this.parseBlock();this.expect(d.RBRACE);this.expect(d.IFELSE);this.operators[r]=this.operators.length;this.operators[r+1]="j";this.operators[t]=o;this.operators[t+1]="jz"}}}]);return PostScriptParser}();r.PostScriptParser=h;var d={LBRACE:0,RBRACE:1,NUMBER:2,OPERATOR:3,IF:4,IFELSE:5},m=function(){function PostScriptToken(t,r){_classCallCheck(this,PostScriptToken);this.type=t;this.value=r}_createClass(PostScriptToken,null,[{key:"opCache",get:function get(){return(0,l.shadow)(this,"opCache",Object.create(null))}},{key:"getOperator",value:function getOperator(t){var r=PostScriptToken.opCache[t];return r||(PostScriptToken.opCache[t]=new PostScriptToken(d.OPERATOR,t))}},{key:"LBRACE",get:function get(){return(0,l.shadow)(this,"LBRACE",new PostScriptToken(d.LBRACE,"{"))}},{key:"RBRACE",get:function get(){return(0,l.shadow)(this,"RBRACE",new PostScriptToken(d.RBRACE,"}"))}},{key:"IF",get:function get(){return(0,l.shadow)(this,"IF",new PostScriptToken(d.IF,"IF"))}},{key:"IFELSE",get:function get(){return(0,l.shadow)(this,"IFELSE",new PostScriptToken(d.IFELSE,"IFELSE"))}}]);return PostScriptToken}(),g=function(){function PostScriptLexer(t){_classCallCheck(this,PostScriptLexer);this.stream=t;this.nextChar();this.strBuf=[]}_createClass(PostScriptLexer,[{key:"nextChar",value:function nextChar(){return this.currentChar=this.stream.getByte()}},{key:"getToken",value:function getToken(){for(var t=!1,r=this.currentChar;;){if(r<0)return c.EOF;if(t)10!==r&&13!==r||(t=!1);else if(37===r)t=!0;else if(!(0,u.isWhiteSpace)(r))break;r=this.nextChar()}switch(0|r){case 48:case 49:case 50:case 51:case 52:case 53:case 54:case 55:case 56:case 57:case 43:case 45:case 46:return new m(d.NUMBER,this.getNumber());case 123:this.nextChar();return m.LBRACE;case 125:this.nextChar();return m.RBRACE}var o=this.strBuf;o.length=0;o[0]=String.fromCharCode(r);for(;(r=this.nextChar())>=0&&(r>=65&&r<=90||r>=97&&r<=122);)o.push(String.fromCharCode(r));var l=o.join("");switch(l.toLowerCase()){case"if":return m.IF;case"ifelse":return m.IFELSE;default:return m.getOperator(l)}}},{key:"getNumber",value:function getNumber(){var t=this.currentChar,r=this.strBuf;r.length=0;r[0]=String.fromCharCode(t);for(;(t=this.nextChar())>=0&&(t>=48&&t<=57||45===t||46===t);)r.push(String.fromCharCode(t));var o=parseFloat(r.join(""));if(isNaN(o))throw new l.FormatError("Invalid floating point number: ".concat(o));return o}}]);return PostScriptLexer}();r.PostScriptLexer=g},(t,r,o)=>{"use strict";function _typeof(t){_typeof="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function _typeof(t){return typeof t}:function _typeof(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t};return _typeof(t)}Object.defineProperty(r,"__esModule",{value:!0});r.LocalTilingPatternCache=r.LocalImageCache=r.LocalGStateCache=r.LocalFunctionCache=r.LocalColorSpaceCache=r.GlobalImageCache=void 0;var l=o(4),c=o(118);function _inherits(t,r){if("function"!=typeof r&&null!==r)throw new TypeError("Super expression must either be null or a function");t.prototype=Object.create(r&&r.prototype,{constructor:{value:t,writable:!0,configurable:!0}});r&&_setPrototypeOf(t,r)}function _setPrototypeOf(t,r){_setPrototypeOf=Object.setPrototypeOf||function _setPrototypeOf(t,r){t.__proto__=r;return t};return _setPrototypeOf(t,r)}function _createSuper(t){var r=function _isNativeReflectConstruct(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){})));return!0}catch(t){return!1}}();return function _createSuperInternal(){var o,l=_getPrototypeOf(t);if(r){var c=_getPrototypeOf(this).constructor;o=Reflect.construct(l,arguments,c)}else o=l.apply(this,arguments);return _possibleConstructorReturn(this,o)}}function _possibleConstructorReturn(t,r){if(r&&("object"===_typeof(r)||"function"==typeof r))return r;if(void 0!==r)throw new TypeError("Derived constructors may only return object or undefined");return function _assertThisInitialized(t){if(void 0===t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return t}(t)}function _getPrototypeOf(t){_getPrototypeOf=Object.setPrototypeOf?Object.getPrototypeOf:function _getPrototypeOf(t){return t.__proto__||Object.getPrototypeOf(t)};return _getPrototypeOf(t)}function _classCallCheck(t,r){if(!(t instanceof r))throw new TypeError("Cannot call a class as a function")}function _defineProperties(t,r){for(var o=0;o<r.length;o++){var l=r[o];l.enumerable=l.enumerable||!1;l.configurable=!0;"value"in l&&(l.writable=!0);Object.defineProperty(t,l.key,l)}}function _createClass(t,r,o){r&&_defineProperties(t.prototype,r);o&&_defineProperties(t,o);return t}var u=function(){function BaseLocalCache(t){_classCallCheck(this,BaseLocalCache);this.constructor===BaseLocalCache&&(0,l.unreachable)("Cannot initialize BaseLocalCache.");this._onlyRefs=!0===(t&&t.onlyRefs);if(!this._onlyRefs){this._nameRefMap=new Map;this._imageMap=new Map}this._imageCache=new c.RefSetCache}_createClass(BaseLocalCache,[{key:"getByName",value:function getByName(t){this._onlyRefs&&(0,l.unreachable)("Should not call `getByName` method.");var r=this._nameRefMap.get(t);return r?this.getByRef(r):this._imageMap.get(t)||null}},{key:"getByRef",value:function getByRef(t){return this._imageCache.get(t)||null}},{key:"set",value:function set(t,r,o){(0,l.unreachable)("Abstract method `set` called.")}}]);return BaseLocalCache}(),h=function(t){_inherits(LocalImageCache,t);var r=_createSuper(LocalImageCache);function LocalImageCache(){_classCallCheck(this,LocalImageCache);return r.apply(this,arguments)}_createClass(LocalImageCache,[{key:"set",value:function set(t){var r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null,o=arguments.length>2?arguments[2]:void 0;if("string"!=typeof t)throw new Error('LocalImageCache.set - expected "name" argument.');if(r){if(this._imageCache.has(r))return;this._nameRefMap.set(t,r);this._imageCache.put(r,o)}else this._imageMap.has(t)||this._imageMap.set(t,o)}}]);return LocalImageCache}(u);r.LocalImageCache=h;var d=function(t){_inherits(LocalColorSpaceCache,t);var r=_createSuper(LocalColorSpaceCache);function LocalColorSpaceCache(){_classCallCheck(this,LocalColorSpaceCache);return r.apply(this,arguments)}_createClass(LocalColorSpaceCache,[{key:"set",value:function set(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:null,r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null,o=arguments.length>2?arguments[2]:void 0;if("string"!=typeof t&&!r)throw new Error('LocalColorSpaceCache.set - expected "name" and/or "ref" argument.');if(r){if(this._imageCache.has(r))return;null!==t&&this._nameRefMap.set(t,r);this._imageCache.put(r,o)}else this._imageMap.has(t)||this._imageMap.set(t,o)}}]);return LocalColorSpaceCache}(u);r.LocalColorSpaceCache=d;var m=function(t){_inherits(LocalFunctionCache,t);var r=_createSuper(LocalFunctionCache);function LocalFunctionCache(t){_classCallCheck(this,LocalFunctionCache);return r.call(this,{onlyRefs:!0})}_createClass(LocalFunctionCache,[{key:"set",value:function set(){var t=arguments.length>1?arguments[1]:void 0,r=arguments.length>2?arguments[2]:void 0;if(!t)throw new Error('LocalFunctionCache.set - expected "ref" argument.');this._imageCache.has(t)||this._imageCache.put(t,r)}}]);return LocalFunctionCache}(u);r.LocalFunctionCache=m;var g=function(t){_inherits(LocalGStateCache,t);var r=_createSuper(LocalGStateCache);function LocalGStateCache(){_classCallCheck(this,LocalGStateCache);return r.apply(this,arguments)}_createClass(LocalGStateCache,[{key:"set",value:function set(t){var r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null,o=arguments.length>2?arguments[2]:void 0;if("string"!=typeof t)throw new Error('LocalGStateCache.set - expected "name" argument.');if(r){if(this._imageCache.has(r))return;this._nameRefMap.set(t,r);this._imageCache.put(r,o)}else this._imageMap.has(t)||this._imageMap.set(t,o)}}]);return LocalGStateCache}(u);r.LocalGStateCache=g;var y=function(t){_inherits(LocalTilingPatternCache,t);var r=_createSuper(LocalTilingPatternCache);function LocalTilingPatternCache(t){_classCallCheck(this,LocalTilingPatternCache);return r.call(this,{onlyRefs:!0})}_createClass(LocalTilingPatternCache,[{key:"set",value:function set(){var t=arguments.length>1?arguments[1]:void 0,r=arguments.length>2?arguments[2]:void 0;if(!t)throw new Error('LocalTilingPatternCache.set - expected "ref" argument.');this._imageCache.has(t)||this._imageCache.put(t,r)}}]);return LocalTilingPatternCache}(u);r.LocalTilingPatternCache=y;var v=function(){function GlobalImageCache(){_classCallCheck(this,GlobalImageCache);this._refCache=new c.RefSetCache;this._imageCache=new c.RefSetCache}_createClass(GlobalImageCache,[{key:"_byteSize",get:function get(){var t=0;this._imageCache.forEach((function(r){t+=r.byteSize}));return t}},{key:"_cacheLimitReached",get:function get(){return!(this._imageCache.size<GlobalImageCache.MIN_IMAGES_TO_CACHE)&&!(this._byteSize<GlobalImageCache.MAX_BYTE_SIZE)}},{key:"shouldCache",value:function shouldCache(t,r){var o=this._refCache.get(t);return!((o?o.size+(o.has(r)?0:1):1)<GlobalImageCache.NUM_PAGES_THRESHOLD)&&!(!this._imageCache.has(t)&&this._cacheLimitReached)}},{key:"addPageIndex",value:function addPageIndex(t,r){var o=this._refCache.get(t);if(!o){o=new Set;this._refCache.put(t,o)}o.add(r)}},{key:"addByteSize",value:function addByteSize(t,r){var o=this._imageCache.get(t);o&&(o.byteSize||(o.byteSize=r))}},{key:"getData",value:function getData(t,r){var o=this._refCache.get(t);if(!o)return null;if(o.size<GlobalImageCache.NUM_PAGES_THRESHOLD)return null;var l=this._imageCache.get(t);if(!l)return null;o.add(r);return l}},{key:"setData",value:function setData(t,r){if(!this._refCache.has(t))throw new Error('GlobalImageCache.setData - expected "addPageIndex" to have been called.');this._imageCache.has(t)||(this._cacheLimitReached?(0,l.warn)("GlobalImageCache.setData - cache limit reached."):this._imageCache.put(t,r))}},{key:"clear",value:function clear(){var t=arguments.length>0&&void 0!==arguments[0]&&arguments[0];t||this._refCache.clear();this._imageCache.clear()}}],[{key:"NUM_PAGES_THRESHOLD",get:function get(){return(0,l.shadow)(this,"NUM_PAGES_THRESHOLD",2)}},{key:"MIN_IMAGES_TO_CACHE",get:function get(){return(0,l.shadow)(this,"MIN_IMAGES_TO_CACHE",10)}},{key:"MAX_BYTE_SIZE",get:function get(){return(0,l.shadow)(this,"MAX_BYTE_SIZE",4e7)}}]);return GlobalImageCache}();r.GlobalImageCache=v},(t,r,o)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});r.bidi=function bidi(t){var r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:-1,o=arguments.length>2&&void 0!==arguments[2]&&arguments[2],m=!0,g=t.length;if(0===g||o)return createBidiText(t,m,o);h.length=g;d.length=g;var y,v,S=0;for(y=0;y<g;++y){h[y]=t.charAt(y);var _=t.charCodeAt(y),k="L";_<=255?k=c[_]:1424<=_&&_<=1524?k="R":1536<=_&&_<=1791?(k=u[255&_])||(0,l.warn)("Bidi: invalid Unicode character "+_.toString(16)):1792<=_&&_<=2220&&(k="AL");"R"!==k&&"AL"!==k&&"AN"!==k||S++;d[y]=k}if(0===S)return createBidiText(t,m=!0);if(-1===r)if(S/g<.3){m=!0;r=0}else{m=!1;r=1}var C=[];for(y=0;y<g;++y)C[y]=r;var w,x=isOdd(r)?"R":"L",O=x,T=O,R=O;for(y=0;y<g;++y)"NSM"===d[y]?d[y]=R:R=d[y];R=O;for(y=0;y<g;++y)"EN"===(w=d[y])?d[y]="AL"===R?"AN":"EN":"R"!==w&&"L"!==w&&"AL"!==w||(R=w);for(y=0;y<g;++y)"AL"===(w=d[y])&&(d[y]="R");for(y=1;y<g-1;++y){"ES"===d[y]&&"EN"===d[y-1]&&"EN"===d[y+1]&&(d[y]="EN");"CS"!==d[y]||"EN"!==d[y-1]&&"AN"!==d[y-1]||d[y+1]!==d[y-1]||(d[y]=d[y-1])}for(y=0;y<g;++y)if("EN"===d[y]){for(var E=y-1;E>=0&&"ET"===d[E];--E)d[E]="EN";for(var M=y+1;M<g&&"ET"===d[M];++M)d[M]="EN"}for(y=0;y<g;++y)"WS"!==(w=d[y])&&"ES"!==w&&"ET"!==w&&"CS"!==w||(d[y]="ON");R=O;for(y=0;y<g;++y)"EN"===(w=d[y])?d[y]="L"===R?"L":"EN":"R"!==w&&"L"!==w||(R=w);for(y=0;y<g;++y)if("ON"===d[y]){var D=findUnequal(d,y+1,"ON"),j=O;y>0&&(j=d[y-1]);var L=T;D+1<g&&(L=d[D+1]);"L"!==j&&(j="R");"L"!==L&&(L="R");j===L&&setValues(d,y,D,j);y=D-1}for(y=0;y<g;++y)"ON"===d[y]&&(d[y]=x);for(y=0;y<g;++y){w=d[y];isEven(C[y])?"R"===w?C[y]+=1:"AN"!==w&&"EN"!==w||(C[y]+=2):"L"!==w&&"AN"!==w&&"EN"!==w||(C[y]+=1)}var N,U=-1,H=99;for(y=0,v=C.length;y<v;++y){N=C[y];U<N&&(U=N);H>N&&isOdd(N)&&(H=N)}for(N=U;N>=H;--N){var W=-1;for(y=0,v=C.length;y<v;++y)if(C[y]<N){if(W>=0){reverseValues(h,W,y);W=-1}}else W<0&&(W=y);W>=0&&reverseValues(h,W,C.length)}for(y=0,v=h.length;y<v;++y){var $=h[y];"<"!==$&&">"!==$||(h[y]="")}return createBidiText(h.join(""),m)};var l=o(4),c=["BN","BN","BN","BN","BN","BN","BN","BN","BN","S","B","S","WS","B","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","B","B","B","S","WS","ON","ON","ET","ET","ET","ON","ON","ON","ON","ON","ES","CS","ES","CS","CS","EN","EN","EN","EN","EN","EN","EN","EN","EN","EN","CS","ON","ON","ON","ON","ON","ON","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","ON","ON","ON","ON","ON","ON","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","ON","ON","ON","ON","BN","BN","BN","BN","BN","BN","B","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","CS","ON","ET","ET","ET","ET","ON","ON","ON","ON","L","ON","ON","BN","ON","ON","ET","ET","EN","EN","ON","L","ON","ON","ON","EN","L","ON","ON","ON","ON","ON","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","ON","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","ON","L","L","L","L","L","L","L","L"],u=["AN","AN","AN","AN","AN","AN","ON","ON","AL","ET","ET","AL","CS","AL","ON","ON","NSM","NSM","NSM","NSM","NSM","NSM","NSM","NSM","NSM","NSM","NSM","AL","AL","","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","NSM","NSM","NSM","NSM","NSM","NSM","NSM","NSM","NSM","NSM","NSM","NSM","NSM","NSM","NSM","NSM","NSM","NSM","NSM","NSM","NSM","AN","AN","AN","AN","AN","AN","AN","AN","AN","AN","ET","AN","AN","AL","AL","AL","NSM","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","NSM","NSM","NSM","NSM","NSM","NSM","NSM","AN","ON","NSM","NSM","NSM","NSM","NSM","NSM","AL","AL","NSM","NSM","ON","NSM","NSM","NSM","NSM","AL","AL","EN","EN","EN","EN","EN","EN","EN","EN","EN","EN","AL","AL","AL","AL","AL","AL"];function isOdd(t){return 0!=(1&t)}function isEven(t){return 0==(1&t)}function findUnequal(t,r,o){var l,c;for(l=r,c=t.length;l<c;++l)if(t[l]!==o)return l;return l}function setValues(t,r,o,l){for(var c=r;c<o;++c)t[c]=l}function reverseValues(t,r,o){for(var l=r,c=o-1;l<c;++l,--c){var u=t[l];t[l]=t[c];t[c]=u}}function createBidiText(t,r){var o=arguments.length>2&&void 0!==arguments[2]&&arguments[2],l="ltr";o?l="ttb":r||(l="rtl");return{str:t,dir:l}}var h=[],d=[]},(t,r,o)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});r.getMetrics=void 0;var l=o(122),c=(0,l.getLookupTableFactory)((function(t){t.Courier=600;t["Courier-Bold"]=600;t["Courier-BoldOblique"]=600;t["Courier-Oblique"]=600;t.Helvetica=(0,l.getLookupTableFactory)((function(t){t.space=278;t.exclam=278;t.quotedbl=355;t.numbersign=556;t.dollar=556;t.percent=889;t.ampersand=667;t.quoteright=222;t.parenleft=333;t.parenright=333;t.asterisk=389;t.plus=584;t.comma=278;t.hyphen=333;t.period=278;t.slash=278;t.zero=556;t.one=556;t.two=556;t.three=556;t.four=556;t.five=556;t.six=556;t.seven=556;t.eight=556;t.nine=556;t.colon=278;t.semicolon=278;t.less=584;t.equal=584;t.greater=584;t.question=556;t.at=1015;t.A=667;t.B=667;t.C=722;t.D=722;t.E=667;t.F=611;t.G=778;t.H=722;t.I=278;t.J=500;t.K=667;t.L=556;t.M=833;t.N=722;t.O=778;t.P=667;t.Q=778;t.R=722;t.S=667;t.T=611;t.U=722;t.V=667;t.W=944;t.X=667;t.Y=667;t.Z=611;t.bracketleft=278;t.backslash=278;t.bracketright=278;t.asciicircum=469;t.underscore=556;t.quoteleft=222;t.a=556;t.b=556;t.c=500;t.d=556;t.e=556;t.f=278;t.g=556;t.h=556;t.i=222;t.j=222;t.k=500;t.l=222;t.m=833;t.n=556;t.o=556;t.p=556;t.q=556;t.r=333;t.s=500;t.t=278;t.u=556;t.v=500;t.w=722;t.x=500;t.y=500;t.z=500;t.braceleft=334;t.bar=260;t.braceright=334;t.asciitilde=584;t.exclamdown=333;t.cent=556;t.sterling=556;t.fraction=167;t.yen=556;t.florin=556;t.section=556;t.currency=556;t.quotesingle=191;t.quotedblleft=333;t.guillemotleft=556;t.guilsinglleft=333;t.guilsinglright=333;t.fi=500;t.fl=500;t.endash=556;t.dagger=556;t.daggerdbl=556;t.periodcentered=278;t.paragraph=537;t.bullet=350;t.quotesinglbase=222;t.quotedblbase=333;t.quotedblright=333;t.guillemotright=556;t.ellipsis=1e3;t.perthousand=1e3;t.questiondown=611;t.grave=333;t.acute=333;t.circumflex=333;t.tilde=333;t.macron=333;t.breve=333;t.dotaccent=333;t.dieresis=333;t.ring=333;t.cedilla=333;t.hungarumlaut=333;t.ogonek=333;t.caron=333;t.emdash=1e3;t.AE=1e3;t.ordfeminine=370;t.Lslash=556;t.Oslash=778;t.OE=1e3;t.ordmasculine=365;t.ae=889;t.dotlessi=278;t.lslash=222;t.oslash=611;t.oe=944;t.germandbls=611;t.Idieresis=278;t.eacute=556;t.abreve=556;t.uhungarumlaut=556;t.ecaron=556;t.Ydieresis=667;t.divide=584;t.Yacute=667;t.Acircumflex=667;t.aacute=556;t.Ucircumflex=722;t.yacute=500;t.scommaaccent=500;t.ecircumflex=556;t.Uring=722;t.Udieresis=722;t.aogonek=556;t.Uacute=722;t.uogonek=556;t.Edieresis=667;t.Dcroat=722;t.commaaccent=250;t.copyright=737;t.Emacron=667;t.ccaron=500;t.aring=556;t.Ncommaaccent=722;t.lacute=222;t.agrave=556;t.Tcommaaccent=611;t.Cacute=722;t.atilde=556;t.Edotaccent=667;t.scaron=500;t.scedilla=500;t.iacute=278;t.lozenge=471;t.Rcaron=722;t.Gcommaaccent=778;t.ucircumflex=556;t.acircumflex=556;t.Amacron=667;t.rcaron=333;t.ccedilla=500;t.Zdotaccent=611;t.Thorn=667;t.Omacron=778;t.Racute=722;t.Sacute=667;t.dcaron=643;t.Umacron=722;t.uring=556;t.threesuperior=333;t.Ograve=778;t.Agrave=667;t.Abreve=667;t.multiply=584;t.uacute=556;t.Tcaron=611;t.partialdiff=476;t.ydieresis=500;t.Nacute=722;t.icircumflex=278;t.Ecircumflex=667;t.adieresis=556;t.edieresis=556;t.cacute=500;t.nacute=556;t.umacron=556;t.Ncaron=722;t.Iacute=278;t.plusminus=584;t.brokenbar=260;t.registered=737;t.Gbreve=778;t.Idotaccent=278;t.summation=600;t.Egrave=667;t.racute=333;t.omacron=556;t.Zacute=611;t.Zcaron=611;t.greaterequal=549;t.Eth=722;t.Ccedilla=722;t.lcommaaccent=222;t.tcaron=317;t.eogonek=556;t.Uogonek=722;t.Aacute=667;t.Adieresis=667;t.egrave=556;t.zacute=500;t.iogonek=222;t.Oacute=778;t.oacute=556;t.amacron=556;t.sacute=500;t.idieresis=278;t.Ocircumflex=778;t.Ugrave=722;t.Delta=612;t.thorn=556;t.twosuperior=333;t.Odieresis=778;t.mu=556;t.igrave=278;t.ohungarumlaut=556;t.Eogonek=667;t.dcroat=556;t.threequarters=834;t.Scedilla=667;t.lcaron=299;t.Kcommaaccent=667;t.Lacute=556;t.trademark=1e3;t.edotaccent=556;t.Igrave=278;t.Imacron=278;t.Lcaron=556;t.onehalf=834;t.lessequal=549;t.ocircumflex=556;t.ntilde=556;t.Uhungarumlaut=722;t.Eacute=667;t.emacron=556;t.gbreve=556;t.onequarter=834;t.Scaron=667;t.Scommaaccent=667;t.Ohungarumlaut=778;t.degree=400;t.ograve=556;t.Ccaron=722;t.ugrave=556;t.radical=453;t.Dcaron=722;t.rcommaaccent=333;t.Ntilde=722;t.otilde=556;t.Rcommaaccent=722;t.Lcommaaccent=556;t.Atilde=667;t.Aogonek=667;t.Aring=667;t.Otilde=778;t.zdotaccent=500;t.Ecaron=667;t.Iogonek=278;t.kcommaaccent=500;t.minus=584;t.Icircumflex=278;t.ncaron=556;t.tcommaaccent=278;t.logicalnot=584;t.odieresis=556;t.udieresis=556;t.notequal=549;t.gcommaaccent=556;t.eth=556;t.zcaron=500;t.ncommaaccent=556;t.onesuperior=333;t.imacron=278;t.Euro=556}));t["Helvetica-Bold"]=(0,l.getLookupTableFactory)((function(t){t.space=278;t.exclam=333;t.quotedbl=474;t.numbersign=556;t.dollar=556;t.percent=889;t.ampersand=722;t.quoteright=278;t.parenleft=333;t.parenright=333;t.asterisk=389;t.plus=584;t.comma=278;t.hyphen=333;t.period=278;t.slash=278;t.zero=556;t.one=556;t.two=556;t.three=556;t.four=556;t.five=556;t.six=556;t.seven=556;t.eight=556;t.nine=556;t.colon=333;t.semicolon=333;t.less=584;t.equal=584;t.greater=584;t.question=611;t.at=975;t.A=722;t.B=722;t.C=722;t.D=722;t.E=667;t.F=611;t.G=778;t.H=722;t.I=278;t.J=556;t.K=722;t.L=611;t.M=833;t.N=722;t.O=778;t.P=667;t.Q=778;t.R=722;t.S=667;t.T=611;t.U=722;t.V=667;t.W=944;t.X=667;t.Y=667;t.Z=611;t.bracketleft=333;t.backslash=278;t.bracketright=333;t.asciicircum=584;t.underscore=556;t.quoteleft=278;t.a=556;t.b=611;t.c=556;t.d=611;t.e=556;t.f=333;t.g=611;t.h=611;t.i=278;t.j=278;t.k=556;t.l=278;t.m=889;t.n=611;t.o=611;t.p=611;t.q=611;t.r=389;t.s=556;t.t=333;t.u=611;t.v=556;t.w=778;t.x=556;t.y=556;t.z=500;t.braceleft=389;t.bar=280;t.braceright=389;t.asciitilde=584;t.exclamdown=333;t.cent=556;t.sterling=556;t.fraction=167;t.yen=556;t.florin=556;t.section=556;t.currency=556;t.quotesingle=238;t.quotedblleft=500;t.guillemotleft=556;t.guilsinglleft=333;t.guilsinglright=333;t.fi=611;t.fl=611;t.endash=556;t.dagger=556;t.daggerdbl=556;t.periodcentered=278;t.paragraph=556;t.bullet=350;t.quotesinglbase=278;t.quotedblbase=500;t.quotedblright=500;t.guillemotright=556;t.ellipsis=1e3;t.perthousand=1e3;t.questiondown=611;t.grave=333;t.acute=333;t.circumflex=333;t.tilde=333;t.macron=333;t.breve=333;t.dotaccent=333;t.dieresis=333;t.ring=333;t.cedilla=333;t.hungarumlaut=333;t.ogonek=333;t.caron=333;t.emdash=1e3;t.AE=1e3;t.ordfeminine=370;t.Lslash=611;t.Oslash=778;t.OE=1e3;t.ordmasculine=365;t.ae=889;t.dotlessi=278;t.lslash=278;t.oslash=611;t.oe=944;t.germandbls=611;t.Idieresis=278;t.eacute=556;t.abreve=556;t.uhungarumlaut=611;t.ecaron=556;t.Ydieresis=667;t.divide=584;t.Yacute=667;t.Acircumflex=722;t.aacute=556;t.Ucircumflex=722;t.yacute=556;t.scommaaccent=556;t.ecircumflex=556;t.Uring=722;t.Udieresis=722;t.aogonek=556;t.Uacute=722;t.uogonek=611;t.Edieresis=667;t.Dcroat=722;t.commaaccent=250;t.copyright=737;t.Emacron=667;t.ccaron=556;t.aring=556;t.Ncommaaccent=722;t.lacute=278;t.agrave=556;t.Tcommaaccent=611;t.Cacute=722;t.atilde=556;t.Edotaccent=667;t.scaron=556;t.scedilla=556;t.iacute=278;t.lozenge=494;t.Rcaron=722;t.Gcommaaccent=778;t.ucircumflex=611;t.acircumflex=556;t.Amacron=722;t.rcaron=389;t.ccedilla=556;t.Zdotaccent=611;t.Thorn=667;t.Omacron=778;t.Racute=722;t.Sacute=667;t.dcaron=743;t.Umacron=722;t.uring=611;t.threesuperior=333;t.Ograve=778;t.Agrave=722;t.Abreve=722;t.multiply=584;t.uacute=611;t.Tcaron=611;t.partialdiff=494;t.ydieresis=556;t.Nacute=722;t.icircumflex=278;t.Ecircumflex=667;t.adieresis=556;t.edieresis=556;t.cacute=556;t.nacute=611;t.umacron=611;t.Ncaron=722;t.Iacute=278;t.plusminus=584;t.brokenbar=280;t.registered=737;t.Gbreve=778;t.Idotaccent=278;t.summation=600;t.Egrave=667;t.racute=389;t.omacron=611;t.Zacute=611;t.Zcaron=611;t.greaterequal=549;t.Eth=722;t.Ccedilla=722;t.lcommaaccent=278;t.tcaron=389;t.eogonek=556;t.Uogonek=722;t.Aacute=722;t.Adieresis=722;t.egrave=556;t.zacute=500;t.iogonek=278;t.Oacute=778;t.oacute=611;t.amacron=556;t.sacute=556;t.idieresis=278;t.Ocircumflex=778;t.Ugrave=722;t.Delta=612;t.thorn=611;t.twosuperior=333;t.Odieresis=778;t.mu=611;t.igrave=278;t.ohungarumlaut=611;t.Eogonek=667;t.dcroat=611;t.threequarters=834;t.Scedilla=667;t.lcaron=400;t.Kcommaaccent=722;t.Lacute=611;t.trademark=1e3;t.edotaccent=556;t.Igrave=278;t.Imacron=278;t.Lcaron=611;t.onehalf=834;t.lessequal=549;t.ocircumflex=611;t.ntilde=611;t.Uhungarumlaut=722;t.Eacute=667;t.emacron=556;t.gbreve=611;t.onequarter=834;t.Scaron=667;t.Scommaaccent=667;t.Ohungarumlaut=778;t.degree=400;t.ograve=611;t.Ccaron=722;t.ugrave=611;t.radical=549;t.Dcaron=722;t.rcommaaccent=389;t.Ntilde=722;t.otilde=611;t.Rcommaaccent=722;t.Lcommaaccent=611;t.Atilde=722;t.Aogonek=722;t.Aring=722;t.Otilde=778;t.zdotaccent=500;t.Ecaron=667;t.Iogonek=278;t.kcommaaccent=556;t.minus=584;t.Icircumflex=278;t.ncaron=611;t.tcommaaccent=333;t.logicalnot=584;t.odieresis=611;t.udieresis=611;t.notequal=549;t.gcommaaccent=611;t.eth=611;t.zcaron=500;t.ncommaaccent=611;t.onesuperior=333;t.imacron=278;t.Euro=556}));t["Helvetica-BoldOblique"]=(0,l.getLookupTableFactory)((function(t){t.space=278;t.exclam=333;t.quotedbl=474;t.numbersign=556;t.dollar=556;t.percent=889;t.ampersand=722;t.quoteright=278;t.parenleft=333;t.parenright=333;t.asterisk=389;t.plus=584;t.comma=278;t.hyphen=333;t.period=278;t.slash=278;t.zero=556;t.one=556;t.two=556;t.three=556;t.four=556;t.five=556;t.six=556;t.seven=556;t.eight=556;t.nine=556;t.colon=333;t.semicolon=333;t.less=584;t.equal=584;t.greater=584;t.question=611;t.at=975;t.A=722;t.B=722;t.C=722;t.D=722;t.E=667;t.F=611;t.G=778;t.H=722;t.I=278;t.J=556;t.K=722;t.L=611;t.M=833;t.N=722;t.O=778;t.P=667;t.Q=778;t.R=722;t.S=667;t.T=611;t.U=722;t.V=667;t.W=944;t.X=667;t.Y=667;t.Z=611;t.bracketleft=333;t.backslash=278;t.bracketright=333;t.asciicircum=584;t.underscore=556;t.quoteleft=278;t.a=556;t.b=611;t.c=556;t.d=611;t.e=556;t.f=333;t.g=611;t.h=611;t.i=278;t.j=278;t.k=556;t.l=278;t.m=889;t.n=611;t.o=611;t.p=611;t.q=611;t.r=389;t.s=556;t.t=333;t.u=611;t.v=556;t.w=778;t.x=556;t.y=556;t.z=500;t.braceleft=389;t.bar=280;t.braceright=389;t.asciitilde=584;t.exclamdown=333;t.cent=556;t.sterling=556;t.fraction=167;t.yen=556;t.florin=556;t.section=556;t.currency=556;t.quotesingle=238;t.quotedblleft=500;t.guillemotleft=556;t.guilsinglleft=333;t.guilsinglright=333;t.fi=611;t.fl=611;t.endash=556;t.dagger=556;t.daggerdbl=556;t.periodcentered=278;t.paragraph=556;t.bullet=350;t.quotesinglbase=278;t.quotedblbase=500;t.quotedblright=500;t.guillemotright=556;t.ellipsis=1e3;t.perthousand=1e3;t.questiondown=611;t.grave=333;t.acute=333;t.circumflex=333;t.tilde=333;t.macron=333;t.breve=333;t.dotaccent=333;t.dieresis=333;t.ring=333;t.cedilla=333;t.hungarumlaut=333;t.ogonek=333;t.caron=333;t.emdash=1e3;t.AE=1e3;t.ordfeminine=370;t.Lslash=611;t.Oslash=778;t.OE=1e3;t.ordmasculine=365;t.ae=889;t.dotlessi=278;t.lslash=278;t.oslash=611;t.oe=944;t.germandbls=611;t.Idieresis=278;t.eacute=556;t.abreve=556;t.uhungarumlaut=611;t.ecaron=556;t.Ydieresis=667;t.divide=584;t.Yacute=667;t.Acircumflex=722;t.aacute=556;t.Ucircumflex=722;t.yacute=556;t.scommaaccent=556;t.ecircumflex=556;t.Uring=722;t.Udieresis=722;t.aogonek=556;t.Uacute=722;t.uogonek=611;t.Edieresis=667;t.Dcroat=722;t.commaaccent=250;t.copyright=737;t.Emacron=667;t.ccaron=556;t.aring=556;t.Ncommaaccent=722;t.lacute=278;t.agrave=556;t.Tcommaaccent=611;t.Cacute=722;t.atilde=556;t.Edotaccent=667;t.scaron=556;t.scedilla=556;t.iacute=278;t.lozenge=494;t.Rcaron=722;t.Gcommaaccent=778;t.ucircumflex=611;t.acircumflex=556;t.Amacron=722;t.rcaron=389;t.ccedilla=556;t.Zdotaccent=611;t.Thorn=667;t.Omacron=778;t.Racute=722;t.Sacute=667;t.dcaron=743;t.Umacron=722;t.uring=611;t.threesuperior=333;t.Ograve=778;t.Agrave=722;t.Abreve=722;t.multiply=584;t.uacute=611;t.Tcaron=611;t.partialdiff=494;t.ydieresis=556;t.Nacute=722;t.icircumflex=278;t.Ecircumflex=667;t.adieresis=556;t.edieresis=556;t.cacute=556;t.nacute=611;t.umacron=611;t.Ncaron=722;t.Iacute=278;t.plusminus=584;t.brokenbar=280;t.registered=737;t.Gbreve=778;t.Idotaccent=278;t.summation=600;t.Egrave=667;t.racute=389;t.omacron=611;t.Zacute=611;t.Zcaron=611;t.greaterequal=549;t.Eth=722;t.Ccedilla=722;t.lcommaaccent=278;t.tcaron=389;t.eogonek=556;t.Uogonek=722;t.Aacute=722;t.Adieresis=722;t.egrave=556;t.zacute=500;t.iogonek=278;t.Oacute=778;t.oacute=611;t.amacron=556;t.sacute=556;t.idieresis=278;t.Ocircumflex=778;t.Ugrave=722;t.Delta=612;t.thorn=611;t.twosuperior=333;t.Odieresis=778;t.mu=611;t.igrave=278;t.ohungarumlaut=611;t.Eogonek=667;t.dcroat=611;t.threequarters=834;t.Scedilla=667;t.lcaron=400;t.Kcommaaccent=722;t.Lacute=611;t.trademark=1e3;t.edotaccent=556;t.Igrave=278;t.Imacron=278;t.Lcaron=611;t.onehalf=834;t.lessequal=549;t.ocircumflex=611;t.ntilde=611;t.Uhungarumlaut=722;t.Eacute=667;t.emacron=556;t.gbreve=611;t.onequarter=834;t.Scaron=667;t.Scommaaccent=667;t.Ohungarumlaut=778;t.degree=400;t.ograve=611;t.Ccaron=722;t.ugrave=611;t.radical=549;t.Dcaron=722;t.rcommaaccent=389;t.Ntilde=722;t.otilde=611;t.Rcommaaccent=722;t.Lcommaaccent=611;t.Atilde=722;t.Aogonek=722;t.Aring=722;t.Otilde=778;t.zdotaccent=500;t.Ecaron=667;t.Iogonek=278;t.kcommaaccent=556;t.minus=584;t.Icircumflex=278;t.ncaron=611;t.tcommaaccent=333;t.logicalnot=584;t.odieresis=611;t.udieresis=611;t.notequal=549;t.gcommaaccent=611;t.eth=611;t.zcaron=500;t.ncommaaccent=611;t.onesuperior=333;t.imacron=278;t.Euro=556}));t["Helvetica-Oblique"]=(0,l.getLookupTableFactory)((function(t){t.space=278;t.exclam=278;t.quotedbl=355;t.numbersign=556;t.dollar=556;t.percent=889;t.ampersand=667;t.quoteright=222;t.parenleft=333;t.parenright=333;t.asterisk=389;t.plus=584;t.comma=278;t.hyphen=333;t.period=278;t.slash=278;t.zero=556;t.one=556;t.two=556;t.three=556;t.four=556;t.five=556;t.six=556;t.seven=556;t.eight=556;t.nine=556;t.colon=278;t.semicolon=278;t.less=584;t.equal=584;t.greater=584;t.question=556;t.at=1015;t.A=667;t.B=667;t.C=722;t.D=722;t.E=667;t.F=611;t.G=778;t.H=722;t.I=278;t.J=500;t.K=667;t.L=556;t.M=833;t.N=722;t.O=778;t.P=667;t.Q=778;t.R=722;t.S=667;t.T=611;t.U=722;t.V=667;t.W=944;t.X=667;t.Y=667;t.Z=611;t.bracketleft=278;t.backslash=278;t.bracketright=278;t.asciicircum=469;t.underscore=556;t.quoteleft=222;t.a=556;t.b=556;t.c=500;t.d=556;t.e=556;t.f=278;t.g=556;t.h=556;t.i=222;t.j=222;t.k=500;t.l=222;t.m=833;t.n=556;t.o=556;t.p=556;t.q=556;t.r=333;t.s=500;t.t=278;t.u=556;t.v=500;t.w=722;t.x=500;t.y=500;t.z=500;t.braceleft=334;t.bar=260;t.braceright=334;t.asciitilde=584;t.exclamdown=333;t.cent=556;t.sterling=556;t.fraction=167;t.yen=556;t.florin=556;t.section=556;t.currency=556;t.quotesingle=191;t.quotedblleft=333;t.guillemotleft=556;t.guilsinglleft=333;t.guilsinglright=333;t.fi=500;t.fl=500;t.endash=556;t.dagger=556;t.daggerdbl=556;t.periodcentered=278;t.paragraph=537;t.bullet=350;t.quotesinglbase=222;t.quotedblbase=333;t.quotedblright=333;t.guillemotright=556;t.ellipsis=1e3;t.perthousand=1e3;t.questiondown=611;t.grave=333;t.acute=333;t.circumflex=333;t.tilde=333;t.macron=333;t.breve=333;t.dotaccent=333;t.dieresis=333;t.ring=333;t.cedilla=333;t.hungarumlaut=333;t.ogonek=333;t.caron=333;t.emdash=1e3;t.AE=1e3;t.ordfeminine=370;t.Lslash=556;t.Oslash=778;t.OE=1e3;t.ordmasculine=365;t.ae=889;t.dotlessi=278;t.lslash=222;t.oslash=611;t.oe=944;t.germandbls=611;t.Idieresis=278;t.eacute=556;t.abreve=556;t.uhungarumlaut=556;t.ecaron=556;t.Ydieresis=667;t.divide=584;t.Yacute=667;t.Acircumflex=667;t.aacute=556;t.Ucircumflex=722;t.yacute=500;t.scommaaccent=500;t.ecircumflex=556;t.Uring=722;t.Udieresis=722;t.aogonek=556;t.Uacute=722;t.uogonek=556;t.Edieresis=667;t.Dcroat=722;t.commaaccent=250;t.copyright=737;t.Emacron=667;t.ccaron=500;t.aring=556;t.Ncommaaccent=722;t.lacute=222;t.agrave=556;t.Tcommaaccent=611;t.Cacute=722;t.atilde=556;t.Edotaccent=667;t.scaron=500;t.scedilla=500;t.iacute=278;t.lozenge=471;t.Rcaron=722;t.Gcommaaccent=778;t.ucircumflex=556;t.acircumflex=556;t.Amacron=667;t.rcaron=333;t.ccedilla=500;t.Zdotaccent=611;t.Thorn=667;t.Omacron=778;t.Racute=722;t.Sacute=667;t.dcaron=643;t.Umacron=722;t.uring=556;t.threesuperior=333;t.Ograve=778;t.Agrave=667;t.Abreve=667;t.multiply=584;t.uacute=556;t.Tcaron=611;t.partialdiff=476;t.ydieresis=500;t.Nacute=722;t.icircumflex=278;t.Ecircumflex=667;t.adieresis=556;t.edieresis=556;t.cacute=500;t.nacute=556;t.umacron=556;t.Ncaron=722;t.Iacute=278;t.plusminus=584;t.brokenbar=260;t.registered=737;t.Gbreve=778;t.Idotaccent=278;t.summation=600;t.Egrave=667;t.racute=333;t.omacron=556;t.Zacute=611;t.Zcaron=611;t.greaterequal=549;t.Eth=722;t.Ccedilla=722;t.lcommaaccent=222;t.tcaron=317;t.eogonek=556;t.Uogonek=722;t.Aacute=667;t.Adieresis=667;t.egrave=556;t.zacute=500;t.iogonek=222;t.Oacute=778;t.oacute=556;t.amacron=556;t.sacute=500;t.idieresis=278;t.Ocircumflex=778;t.Ugrave=722;t.Delta=612;t.thorn=556;t.twosuperior=333;t.Odieresis=778;t.mu=556;t.igrave=278;t.ohungarumlaut=556;t.Eogonek=667;t.dcroat=556;t.threequarters=834;t.Scedilla=667;t.lcaron=299;t.Kcommaaccent=667;t.Lacute=556;t.trademark=1e3;t.edotaccent=556;t.Igrave=278;t.Imacron=278;t.Lcaron=556;t.onehalf=834;t.lessequal=549;t.ocircumflex=556;t.ntilde=556;t.Uhungarumlaut=722;t.Eacute=667;t.emacron=556;t.gbreve=556;t.onequarter=834;t.Scaron=667;t.Scommaaccent=667;t.Ohungarumlaut=778;t.degree=400;t.ograve=556;t.Ccaron=722;t.ugrave=556;t.radical=453;t.Dcaron=722;t.rcommaaccent=333;t.Ntilde=722;t.otilde=556;t.Rcommaaccent=722;t.Lcommaaccent=556;t.Atilde=667;t.Aogonek=667;t.Aring=667;t.Otilde=778;t.zdotaccent=500;t.Ecaron=667;t.Iogonek=278;t.kcommaaccent=500;t.minus=584;t.Icircumflex=278;t.ncaron=556;t.tcommaaccent=278;t.logicalnot=584;t.odieresis=556;t.udieresis=556;t.notequal=549;t.gcommaaccent=556;t.eth=556;t.zcaron=500;t.ncommaaccent=556;t.onesuperior=333;t.imacron=278;t.Euro=556}));t.Symbol=(0,l.getLookupTableFactory)((function(t){t.space=250;t.exclam=333;t.universal=713;t.numbersign=500;t.existential=549;t.percent=833;t.ampersand=778;t.suchthat=439;t.parenleft=333;t.parenright=333;t.asteriskmath=500;t.plus=549;t.comma=250;t.minus=549;t.period=250;t.slash=278;t.zero=500;t.one=500;t.two=500;t.three=500;t.four=500;t.five=500;t.six=500;t.seven=500;t.eight=500;t.nine=500;t.colon=278;t.semicolon=278;t.less=549;t.equal=549;t.greater=549;t.question=444;t.congruent=549;t.Alpha=722;t.Beta=667;t.Chi=722;t.Delta=612;t.Epsilon=611;t.Phi=763;t.Gamma=603;t.Eta=722;t.Iota=333;t.theta1=631;t.Kappa=722;t.Lambda=686;t.Mu=889;t.Nu=722;t.Omicron=722;t.Pi=768;t.Theta=741;t.Rho=556;t.Sigma=592;t.Tau=611;t.Upsilon=690;t.sigma1=439;t.Omega=768;t.Xi=645;t.Psi=795;t.Zeta=611;t.bracketleft=333;t.therefore=863;t.bracketright=333;t.perpendicular=658;t.underscore=500;t.radicalex=500;t.alpha=631;t.beta=549;t.chi=549;t.delta=494;t.epsilon=439;t.phi=521;t.gamma=411;t.eta=603;t.iota=329;t.phi1=603;t.kappa=549;t.lambda=549;t.mu=576;t.nu=521;t.omicron=549;t.pi=549;t.theta=521;t.rho=549;t.sigma=603;t.tau=439;t.upsilon=576;t.omega1=713;t.omega=686;t.xi=493;t.psi=686;t.zeta=494;t.braceleft=480;t.bar=200;t.braceright=480;t.similar=549;t.Euro=750;t.Upsilon1=620;t.minute=247;t.lessequal=549;t.fraction=167;t.infinity=713;t.florin=500;t.club=753;t.diamond=753;t.heart=753;t.spade=753;t.arrowboth=1042;t.arrowleft=987;t.arrowup=603;t.arrowright=987;t.arrowdown=603;t.degree=400;t.plusminus=549;t.second=411;t.greaterequal=549;t.multiply=549;t.proportional=713;t.partialdiff=494;t.bullet=460;t.divide=549;t.notequal=549;t.equivalence=549;t.approxequal=549;t.ellipsis=1e3;t.arrowvertex=603;t.arrowhorizex=1e3;t.carriagereturn=658;t.aleph=823;t.Ifraktur=686;t.Rfraktur=795;t.weierstrass=987;t.circlemultiply=768;t.circleplus=768;t.emptyset=823;t.intersection=768;t.union=768;t.propersuperset=713;t.reflexsuperset=713;t.notsubset=713;t.propersubset=713;t.reflexsubset=713;t.element=713;t.notelement=713;t.angle=768;t.gradient=713;t.registerserif=790;t.copyrightserif=790;t.trademarkserif=890;t.product=823;t.radical=549;t.dotmath=250;t.logicalnot=713;t.logicaland=603;t.logicalor=603;t.arrowdblboth=1042;t.arrowdblleft=987;t.arrowdblup=603;t.arrowdblright=987;t.arrowdbldown=603;t.lozenge=494;t.angleleft=329;t.registersans=790;t.copyrightsans=790;t.trademarksans=786;t.summation=713;t.parenlefttp=384;t.parenleftex=384;t.parenleftbt=384;t.bracketlefttp=384;t.bracketleftex=384;t.bracketleftbt=384;t.bracelefttp=494;t.braceleftmid=494;t.braceleftbt=494;t.braceex=494;t.angleright=329;t.integral=274;t.integraltp=686;t.integralex=686;t.integralbt=686;t.parenrighttp=384;t.parenrightex=384;t.parenrightbt=384;t.bracketrighttp=384;t.bracketrightex=384;t.bracketrightbt=384;t.bracerighttp=494;t.bracerightmid=494;t.bracerightbt=494;t.apple=790}));t["Times-Roman"]=(0,l.getLookupTableFactory)((function(t){t.space=250;t.exclam=333;t.quotedbl=408;t.numbersign=500;t.dollar=500;t.percent=833;t.ampersand=778;t.quoteright=333;t.parenleft=333;t.parenright=333;t.asterisk=500;t.plus=564;t.comma=250;t.hyphen=333;t.period=250;t.slash=278;t.zero=500;t.one=500;t.two=500;t.three=500;t.four=500;t.five=500;t.six=500;t.seven=500;t.eight=500;t.nine=500;t.colon=278;t.semicolon=278;t.less=564;t.equal=564;t.greater=564;t.question=444;t.at=921;t.A=722;t.B=667;t.C=667;t.D=722;t.E=611;t.F=556;t.G=722;t.H=722;t.I=333;t.J=389;t.K=722;t.L=611;t.M=889;t.N=722;t.O=722;t.P=556;t.Q=722;t.R=667;t.S=556;t.T=611;t.U=722;t.V=722;t.W=944;t.X=722;t.Y=722;t.Z=611;t.bracketleft=333;t.backslash=278;t.bracketright=333;t.asciicircum=469;t.underscore=500;t.quoteleft=333;t.a=444;t.b=500;t.c=444;t.d=500;t.e=444;t.f=333;t.g=500;t.h=500;t.i=278;t.j=278;t.k=500;t.l=278;t.m=778;t.n=500;t.o=500;t.p=500;t.q=500;t.r=333;t.s=389;t.t=278;t.u=500;t.v=500;t.w=722;t.x=500;t.y=500;t.z=444;t.braceleft=480;t.bar=200;t.braceright=480;t.asciitilde=541;t.exclamdown=333;t.cent=500;t.sterling=500;t.fraction=167;t.yen=500;t.florin=500;t.section=500;t.currency=500;t.quotesingle=180;t.quotedblleft=444;t.guillemotleft=500;t.guilsinglleft=333;t.guilsinglright=333;t.fi=556;t.fl=556;t.endash=500;t.dagger=500;t.daggerdbl=500;t.periodcentered=250;t.paragraph=453;t.bullet=350;t.quotesinglbase=333;t.quotedblbase=444;t.quotedblright=444;t.guillemotright=500;t.ellipsis=1e3;t.perthousand=1e3;t.questiondown=444;t.grave=333;t.acute=333;t.circumflex=333;t.tilde=333;t.macron=333;t.breve=333;t.dotaccent=333;t.dieresis=333;t.ring=333;t.cedilla=333;t.hungarumlaut=333;t.ogonek=333;t.caron=333;t.emdash=1e3;t.AE=889;t.ordfeminine=276;t.Lslash=611;t.Oslash=722;t.OE=889;t.ordmasculine=310;t.ae=667;t.dotlessi=278;t.lslash=278;t.oslash=500;t.oe=722;t.germandbls=500;t.Idieresis=333;t.eacute=444;t.abreve=444;t.uhungarumlaut=500;t.ecaron=444;t.Ydieresis=722;t.divide=564;t.Yacute=722;t.Acircumflex=722;t.aacute=444;t.Ucircumflex=722;t.yacute=500;t.scommaaccent=389;t.ecircumflex=444;t.Uring=722;t.Udieresis=722;t.aogonek=444;t.Uacute=722;t.uogonek=500;t.Edieresis=611;t.Dcroat=722;t.commaaccent=250;t.copyright=760;t.Emacron=611;t.ccaron=444;t.aring=444;t.Ncommaaccent=722;t.lacute=278;t.agrave=444;t.Tcommaaccent=611;t.Cacute=667;t.atilde=444;t.Edotaccent=611;t.scaron=389;t.scedilla=389;t.iacute=278;t.lozenge=471;t.Rcaron=667;t.Gcommaaccent=722;t.ucircumflex=500;t.acircumflex=444;t.Amacron=722;t.rcaron=333;t.ccedilla=444;t.Zdotaccent=611;t.Thorn=556;t.Omacron=722;t.Racute=667;t.Sacute=556;t.dcaron=588;t.Umacron=722;t.uring=500;t.threesuperior=300;t.Ograve=722;t.Agrave=722;t.Abreve=722;t.multiply=564;t.uacute=500;t.Tcaron=611;t.partialdiff=476;t.ydieresis=500;t.Nacute=722;t.icircumflex=278;t.Ecircumflex=611;t.adieresis=444;t.edieresis=444;t.cacute=444;t.nacute=500;t.umacron=500;t.Ncaron=722;t.Iacute=333;t.plusminus=564;t.brokenbar=200;t.registered=760;t.Gbreve=722;t.Idotaccent=333;t.summation=600;t.Egrave=611;t.racute=333;t.omacron=500;t.Zacute=611;t.Zcaron=611;t.greaterequal=549;t.Eth=722;t.Ccedilla=667;t.lcommaaccent=278;t.tcaron=326;t.eogonek=444;t.Uogonek=722;t.Aacute=722;t.Adieresis=722;t.egrave=444;t.zacute=444;t.iogonek=278;t.Oacute=722;t.oacute=500;t.amacron=444;t.sacute=389;t.idieresis=278;t.Ocircumflex=722;t.Ugrave=722;t.Delta=612;t.thorn=500;t.twosuperior=300;t.Odieresis=722;t.mu=500;t.igrave=278;t.ohungarumlaut=500;t.Eogonek=611;t.dcroat=500;t.threequarters=750;t.Scedilla=556;t.lcaron=344;t.Kcommaaccent=722;t.Lacute=611;t.trademark=980;t.edotaccent=444;t.Igrave=333;t.Imacron=333;t.Lcaron=611;t.onehalf=750;t.lessequal=549;t.ocircumflex=500;t.ntilde=500;t.Uhungarumlaut=722;t.Eacute=611;t.emacron=444;t.gbreve=500;t.onequarter=750;t.Scaron=556;t.Scommaaccent=556;t.Ohungarumlaut=722;t.degree=400;t.ograve=500;t.Ccaron=667;t.ugrave=500;t.radical=453;t.Dcaron=722;t.rcommaaccent=333;t.Ntilde=722;t.otilde=500;t.Rcommaaccent=667;t.Lcommaaccent=611;t.Atilde=722;t.Aogonek=722;t.Aring=722;t.Otilde=722;t.zdotaccent=444;t.Ecaron=611;t.Iogonek=333;t.kcommaaccent=500;t.minus=564;t.Icircumflex=333;t.ncaron=500;t.tcommaaccent=278;t.logicalnot=564;t.odieresis=500;t.udieresis=500;t.notequal=549;t.gcommaaccent=500;t.eth=500;t.zcaron=444;t.ncommaaccent=500;t.onesuperior=300;t.imacron=278;t.Euro=500}));t["Times-Bold"]=(0,l.getLookupTableFactory)((function(t){t.space=250;t.exclam=333;t.quotedbl=555;t.numbersign=500;t.dollar=500;t.percent=1e3;t.ampersand=833;t.quoteright=333;t.parenleft=333;t.parenright=333;t.asterisk=500;t.plus=570;t.comma=250;t.hyphen=333;t.period=250;t.slash=278;t.zero=500;t.one=500;t.two=500;t.three=500;t.four=500;t.five=500;t.six=500;t.seven=500;t.eight=500;t.nine=500;t.colon=333;t.semicolon=333;t.less=570;t.equal=570;t.greater=570;t.question=500;t.at=930;t.A=722;t.B=667;t.C=722;t.D=722;t.E=667;t.F=611;t.G=778;t.H=778;t.I=389;t.J=500;t.K=778;t.L=667;t.M=944;t.N=722;t.O=778;t.P=611;t.Q=778;t.R=722;t.S=556;t.T=667;t.U=722;t.V=722;t.W=1e3;t.X=722;t.Y=722;t.Z=667;t.bracketleft=333;t.backslash=278;t.bracketright=333;t.asciicircum=581;t.underscore=500;t.quoteleft=333;t.a=500;t.b=556;t.c=444;t.d=556;t.e=444;t.f=333;t.g=500;t.h=556;t.i=278;t.j=333;t.k=556;t.l=278;t.m=833;t.n=556;t.o=500;t.p=556;t.q=556;t.r=444;t.s=389;t.t=333;t.u=556;t.v=500;t.w=722;t.x=500;t.y=500;t.z=444;t.braceleft=394;t.bar=220;t.braceright=394;t.asciitilde=520;t.exclamdown=333;t.cent=500;t.sterling=500;t.fraction=167;t.yen=500;t.florin=500;t.section=500;t.currency=500;t.quotesingle=278;t.quotedblleft=500;t.guillemotleft=500;t.guilsinglleft=333;t.guilsinglright=333;t.fi=556;t.fl=556;t.endash=500;t.dagger=500;t.daggerdbl=500;t.periodcentered=250;t.paragraph=540;t.bullet=350;t.quotesinglbase=333;t.quotedblbase=500;t.quotedblright=500;t.guillemotright=500;t.ellipsis=1e3;t.perthousand=1e3;t.questiondown=500;t.grave=333;t.acute=333;t.circumflex=333;t.tilde=333;t.macron=333;t.breve=333;t.dotaccent=333;t.dieresis=333;t.ring=333;t.cedilla=333;t.hungarumlaut=333;t.ogonek=333;t.caron=333;t.emdash=1e3;t.AE=1e3;t.ordfeminine=300;t.Lslash=667;t.Oslash=778;t.OE=1e3;t.ordmasculine=330;t.ae=722;t.dotlessi=278;t.lslash=278;t.oslash=500;t.oe=722;t.germandbls=556;t.Idieresis=389;t.eacute=444;t.abreve=500;t.uhungarumlaut=556;t.ecaron=444;t.Ydieresis=722;t.divide=570;t.Yacute=722;t.Acircumflex=722;t.aacute=500;t.Ucircumflex=722;t.yacute=500;t.scommaaccent=389;t.ecircumflex=444;t.Uring=722;t.Udieresis=722;t.aogonek=500;t.Uacute=722;t.uogonek=556;t.Edieresis=667;t.Dcroat=722;t.commaaccent=250;t.copyright=747;t.Emacron=667;t.ccaron=444;t.aring=500;t.Ncommaaccent=722;t.lacute=278;t.agrave=500;t.Tcommaaccent=667;t.Cacute=722;t.atilde=500;t.Edotaccent=667;t.scaron=389;t.scedilla=389;t.iacute=278;t.lozenge=494;t.Rcaron=722;t.Gcommaaccent=778;t.ucircumflex=556;t.acircumflex=500;t.Amacron=722;t.rcaron=444;t.ccedilla=444;t.Zdotaccent=667;t.Thorn=611;t.Omacron=778;t.Racute=722;t.Sacute=556;t.dcaron=672;t.Umacron=722;t.uring=556;t.threesuperior=300;t.Ograve=778;t.Agrave=722;t.Abreve=722;t.multiply=570;t.uacute=556;t.Tcaron=667;t.partialdiff=494;t.ydieresis=500;t.Nacute=722;t.icircumflex=278;t.Ecircumflex=667;t.adieresis=500;t.edieresis=444;t.cacute=444;t.nacute=556;t.umacron=556;t.Ncaron=722;t.Iacute=389;t.plusminus=570;t.brokenbar=220;t.registered=747;t.Gbreve=778;t.Idotaccent=389;t.summation=600;t.Egrave=667;t.racute=444;t.omacron=500;t.Zacute=667;t.Zcaron=667;t.greaterequal=549;t.Eth=722;t.Ccedilla=722;t.lcommaaccent=278;t.tcaron=416;t.eogonek=444;t.Uogonek=722;t.Aacute=722;t.Adieresis=722;t.egrave=444;t.zacute=444;t.iogonek=278;t.Oacute=778;t.oacute=500;t.amacron=500;t.sacute=389;t.idieresis=278;t.Ocircumflex=778;t.Ugrave=722;t.Delta=612;t.thorn=556;t.twosuperior=300;t.Odieresis=778;t.mu=556;t.igrave=278;t.ohungarumlaut=500;t.Eogonek=667;t.dcroat=556;t.threequarters=750;t.Scedilla=556;t.lcaron=394;t.Kcommaaccent=778;t.Lacute=667;t.trademark=1e3;t.edotaccent=444;t.Igrave=389;t.Imacron=389;t.Lcaron=667;t.onehalf=750;t.lessequal=549;t.ocircumflex=500;t.ntilde=556;t.Uhungarumlaut=722;t.Eacute=667;t.emacron=444;t.gbreve=500;t.onequarter=750;t.Scaron=556;t.Scommaaccent=556;t.Ohungarumlaut=778;t.degree=400;t.ograve=500;t.Ccaron=722;t.ugrave=556;t.radical=549;t.Dcaron=722;t.rcommaaccent=444;t.Ntilde=722;t.otilde=500;t.Rcommaaccent=722;t.Lcommaaccent=667;t.Atilde=722;t.Aogonek=722;t.Aring=722;t.Otilde=778;t.zdotaccent=444;t.Ecaron=667;t.Iogonek=389;t.kcommaaccent=556;t.minus=570;t.Icircumflex=389;t.ncaron=556;t.tcommaaccent=333;t.logicalnot=570;t.odieresis=500;t.udieresis=556;t.notequal=549;t.gcommaaccent=500;t.eth=500;t.zcaron=444;t.ncommaaccent=556;t.onesuperior=300;t.imacron=278;t.Euro=500}));t["Times-BoldItalic"]=(0,l.getLookupTableFactory)((function(t){t.space=250;t.exclam=389;t.quotedbl=555;t.numbersign=500;t.dollar=500;t.percent=833;t.ampersand=778;t.quoteright=333;t.parenleft=333;t.parenright=333;t.asterisk=500;t.plus=570;t.comma=250;t.hyphen=333;t.period=250;t.slash=278;t.zero=500;t.one=500;t.two=500;t.three=500;t.four=500;t.five=500;t.six=500;t.seven=500;t.eight=500;t.nine=500;t.colon=333;t.semicolon=333;t.less=570;t.equal=570;t.greater=570;t.question=500;t.at=832;t.A=667;t.B=667;t.C=667;t.D=722;t.E=667;t.F=667;t.G=722;t.H=778;t.I=389;t.J=500;t.K=667;t.L=611;t.M=889;t.N=722;t.O=722;t.P=611;t.Q=722;t.R=667;t.S=556;t.T=611;t.U=722;t.V=667;t.W=889;t.X=667;t.Y=611;t.Z=611;t.bracketleft=333;t.backslash=278;t.bracketright=333;t.asciicircum=570;t.underscore=500;t.quoteleft=333;t.a=500;t.b=500;t.c=444;t.d=500;t.e=444;t.f=333;t.g=500;t.h=556;t.i=278;t.j=278;t.k=500;t.l=278;t.m=778;t.n=556;t.o=500;t.p=500;t.q=500;t.r=389;t.s=389;t.t=278;t.u=556;t.v=444;t.w=667;t.x=500;t.y=444;t.z=389;t.braceleft=348;t.bar=220;t.braceright=348;t.asciitilde=570;t.exclamdown=389;t.cent=500;t.sterling=500;t.fraction=167;t.yen=500;t.florin=500;t.section=500;t.currency=500;t.quotesingle=278;t.quotedblleft=500;t.guillemotleft=500;t.guilsinglleft=333;t.guilsinglright=333;t.fi=556;t.fl=556;t.endash=500;t.dagger=500;t.daggerdbl=500;t.periodcentered=250;t.paragraph=500;t.bullet=350;t.quotesinglbase=333;t.quotedblbase=500;t.quotedblright=500;t.guillemotright=500;t.ellipsis=1e3;t.perthousand=1e3;t.questiondown=500;t.grave=333;t.acute=333;t.circumflex=333;t.tilde=333;t.macron=333;t.breve=333;t.dotaccent=333;t.dieresis=333;t.ring=333;t.cedilla=333;t.hungarumlaut=333;t.ogonek=333;t.caron=333;t.emdash=1e3;t.AE=944;t.ordfeminine=266;t.Lslash=611;t.Oslash=722;t.OE=944;t.ordmasculine=300;t.ae=722;t.dotlessi=278;t.lslash=278;t.oslash=500;t.oe=722;t.germandbls=500;t.Idieresis=389;t.eacute=444;t.abreve=500;t.uhungarumlaut=556;t.ecaron=444;t.Ydieresis=611;t.divide=570;t.Yacute=611;t.Acircumflex=667;t.aacute=500;t.Ucircumflex=722;t.yacute=444;t.scommaaccent=389;t.ecircumflex=444;t.Uring=722;t.Udieresis=722;t.aogonek=500;t.Uacute=722;t.uogonek=556;t.Edieresis=667;t.Dcroat=722;t.commaaccent=250;t.copyright=747;t.Emacron=667;t.ccaron=444;t.aring=500;t.Ncommaaccent=722;t.lacute=278;t.agrave=500;t.Tcommaaccent=611;t.Cacute=667;t.atilde=500;t.Edotaccent=667;t.scaron=389;t.scedilla=389;t.iacute=278;t.lozenge=494;t.Rcaron=667;t.Gcommaaccent=722;t.ucircumflex=556;t.acircumflex=500;t.Amacron=667;t.rcaron=389;t.ccedilla=444;t.Zdotaccent=611;t.Thorn=611;t.Omacron=722;t.Racute=667;t.Sacute=556;t.dcaron=608;t.Umacron=722;t.uring=556;t.threesuperior=300;t.Ograve=722;t.Agrave=667;t.Abreve=667;t.multiply=570;t.uacute=556;t.Tcaron=611;t.partialdiff=494;t.ydieresis=444;t.Nacute=722;t.icircumflex=278;t.Ecircumflex=667;t.adieresis=500;t.edieresis=444;t.cacute=444;t.nacute=556;t.umacron=556;t.Ncaron=722;t.Iacute=389;t.plusminus=570;t.brokenbar=220;t.registered=747;t.Gbreve=722;t.Idotaccent=389;t.summation=600;t.Egrave=667;t.racute=389;t.omacron=500;t.Zacute=611;t.Zcaron=611;t.greaterequal=549;t.Eth=722;t.Ccedilla=667;t.lcommaaccent=278;t.tcaron=366;t.eogonek=444;t.Uogonek=722;t.Aacute=667;t.Adieresis=667;t.egrave=444;t.zacute=389;t.iogonek=278;t.Oacute=722;t.oacute=500;t.amacron=500;t.sacute=389;t.idieresis=278;t.Ocircumflex=722;t.Ugrave=722;t.Delta=612;t.thorn=500;t.twosuperior=300;t.Odieresis=722;t.mu=576;t.igrave=278;t.ohungarumlaut=500;t.Eogonek=667;t.dcroat=500;t.threequarters=750;t.Scedilla=556;t.lcaron=382;t.Kcommaaccent=667;t.Lacute=611;t.trademark=1e3;t.edotaccent=444;t.Igrave=389;t.Imacron=389;t.Lcaron=611;t.onehalf=750;t.lessequal=549;t.ocircumflex=500;t.ntilde=556;t.Uhungarumlaut=722;t.Eacute=667;t.emacron=444;t.gbreve=500;t.onequarter=750;t.Scaron=556;t.Scommaaccent=556;t.Ohungarumlaut=722;t.degree=400;t.ograve=500;t.Ccaron=667;t.ugrave=556;t.radical=549;t.Dcaron=722;t.rcommaaccent=389;t.Ntilde=722;t.otilde=500;t.Rcommaaccent=667;t.Lcommaaccent=611;t.Atilde=667;t.Aogonek=667;t.Aring=667;t.Otilde=722;t.zdotaccent=389;t.Ecaron=667;t.Iogonek=389;t.kcommaaccent=500;t.minus=606;t.Icircumflex=389;t.ncaron=556;t.tcommaaccent=278;t.logicalnot=606;t.odieresis=500;t.udieresis=556;t.notequal=549;t.gcommaaccent=500;t.eth=500;t.zcaron=389;t.ncommaaccent=556;t.onesuperior=300;t.imacron=278;t.Euro=500}));t["Times-Italic"]=(0,l.getLookupTableFactory)((function(t){t.space=250;t.exclam=333;t.quotedbl=420;t.numbersign=500;t.dollar=500;t.percent=833;t.ampersand=778;t.quoteright=333;t.parenleft=333;t.parenright=333;t.asterisk=500;t.plus=675;t.comma=250;t.hyphen=333;t.period=250;t.slash=278;t.zero=500;t.one=500;t.two=500;t.three=500;t.four=500;t.five=500;t.six=500;t.seven=500;t.eight=500;t.nine=500;t.colon=333;t.semicolon=333;t.less=675;t.equal=675;t.greater=675;t.question=500;t.at=920;t.A=611;t.B=611;t.C=667;t.D=722;t.E=611;t.F=611;t.G=722;t.H=722;t.I=333;t.J=444;t.K=667;t.L=556;t.M=833;t.N=667;t.O=722;t.P=611;t.Q=722;t.R=611;t.S=500;t.T=556;t.U=722;t.V=611;t.W=833;t.X=611;t.Y=556;t.Z=556;t.bracketleft=389;t.backslash=278;t.bracketright=389;t.asciicircum=422;t.underscore=500;t.quoteleft=333;t.a=500;t.b=500;t.c=444;t.d=500;t.e=444;t.f=278;t.g=500;t.h=500;t.i=278;t.j=278;t.k=444;t.l=278;t.m=722;t.n=500;t.o=500;t.p=500;t.q=500;t.r=389;t.s=389;t.t=278;t.u=500;t.v=444;t.w=667;t.x=444;t.y=444;t.z=389;t.braceleft=400;t.bar=275;t.braceright=400;t.asciitilde=541;t.exclamdown=389;t.cent=500;t.sterling=500;t.fraction=167;t.yen=500;t.florin=500;t.section=500;t.currency=500;t.quotesingle=214;t.quotedblleft=556;t.guillemotleft=500;t.guilsinglleft=333;t.guilsinglright=333;t.fi=500;t.fl=500;t.endash=500;t.dagger=500;t.daggerdbl=500;t.periodcentered=250;t.paragraph=523;t.bullet=350;t.quotesinglbase=333;t.quotedblbase=556;t.quotedblright=556;t.guillemotright=500;t.ellipsis=889;t.perthousand=1e3;t.questiondown=500;t.grave=333;t.acute=333;t.circumflex=333;t.tilde=333;t.macron=333;t.breve=333;t.dotaccent=333;t.dieresis=333;t.ring=333;t.cedilla=333;t.hungarumlaut=333;t.ogonek=333;t.caron=333;t.emdash=889;t.AE=889;t.ordfeminine=276;t.Lslash=556;t.Oslash=722;t.OE=944;t.ordmasculine=310;t.ae=667;t.dotlessi=278;t.lslash=278;t.oslash=500;t.oe=667;t.germandbls=500;t.Idieresis=333;t.eacute=444;t.abreve=500;t.uhungarumlaut=500;t.ecaron=444;t.Ydieresis=556;t.divide=675;t.Yacute=556;t.Acircumflex=611;t.aacute=500;t.Ucircumflex=722;t.yacute=444;t.scommaaccent=389;t.ecircumflex=444;t.Uring=722;t.Udieresis=722;t.aogonek=500;t.Uacute=722;t.uogonek=500;t.Edieresis=611;t.Dcroat=722;t.commaaccent=250;t.copyright=760;t.Emacron=611;t.ccaron=444;t.aring=500;t.Ncommaaccent=667;t.lacute=278;t.agrave=500;t.Tcommaaccent=556;t.Cacute=667;t.atilde=500;t.Edotaccent=611;t.scaron=389;t.scedilla=389;t.iacute=278;t.lozenge=471;t.Rcaron=611;t.Gcommaaccent=722;t.ucircumflex=500;t.acircumflex=500;t.Amacron=611;t.rcaron=389;t.ccedilla=444;t.Zdotaccent=556;t.Thorn=611;t.Omacron=722;t.Racute=611;t.Sacute=500;t.dcaron=544;t.Umacron=722;t.uring=500;t.threesuperior=300;t.Ograve=722;t.Agrave=611;t.Abreve=611;t.multiply=675;t.uacute=500;t.Tcaron=556;t.partialdiff=476;t.ydieresis=444;t.Nacute=667;t.icircumflex=278;t.Ecircumflex=611;t.adieresis=500;t.edieresis=444;t.cacute=444;t.nacute=500;t.umacron=500;t.Ncaron=667;t.Iacute=333;t.plusminus=675;t.brokenbar=275;t.registered=760;t.Gbreve=722;t.Idotaccent=333;t.summation=600;t.Egrave=611;t.racute=389;t.omacron=500;t.Zacute=556;t.Zcaron=556;t.greaterequal=549;t.Eth=722;t.Ccedilla=667;t.lcommaaccent=278;t.tcaron=300;t.eogonek=444;t.Uogonek=722;t.Aacute=611;t.Adieresis=611;t.egrave=444;t.zacute=389;t.iogonek=278;t.Oacute=722;t.oacute=500;t.amacron=500;t.sacute=389;t.idieresis=278;t.Ocircumflex=722;t.Ugrave=722;t.Delta=612;t.thorn=500;t.twosuperior=300;t.Odieresis=722;t.mu=500;t.igrave=278;t.ohungarumlaut=500;t.Eogonek=611;t.dcroat=500;t.threequarters=750;t.Scedilla=500;t.lcaron=300;t.Kcommaaccent=667;t.Lacute=556;t.trademark=980;t.edotaccent=444;t.Igrave=333;t.Imacron=333;t.Lcaron=611;t.onehalf=750;t.lessequal=549;t.ocircumflex=500;t.ntilde=500;t.Uhungarumlaut=722;t.Eacute=611;t.emacron=444;t.gbreve=500;t.onequarter=750;t.Scaron=500;t.Scommaaccent=500;t.Ohungarumlaut=722;t.degree=400;t.ograve=500;t.Ccaron=667;t.ugrave=500;t.radical=453;t.Dcaron=722;t.rcommaaccent=389;t.Ntilde=667;t.otilde=500;t.Rcommaaccent=611;t.Lcommaaccent=556;t.Atilde=611;t.Aogonek=611;t.Aring=611;t.Otilde=722;t.zdotaccent=389;t.Ecaron=611;t.Iogonek=333;t.kcommaaccent=444;t.minus=675;t.Icircumflex=333;t.ncaron=500;t.tcommaaccent=278;t.logicalnot=675;t.odieresis=500;t.udieresis=500;t.notequal=549;t.gcommaaccent=500;t.eth=500;t.zcaron=389;t.ncommaaccent=500;t.onesuperior=300;t.imacron=278;t.Euro=500}));t.ZapfDingbats=(0,l.getLookupTableFactory)((function(t){t.space=278;t.a1=974;t.a2=961;t.a202=974;t.a3=980;t.a4=719;t.a5=789;t.a119=790;t.a118=791;t.a117=690;t.a11=960;t.a12=939;t.a13=549;t.a14=855;t.a15=911;t.a16=933;t.a105=911;t.a17=945;t.a18=974;t.a19=755;t.a20=846;t.a21=762;t.a22=761;t.a23=571;t.a24=677;t.a25=763;t.a26=760;t.a27=759;t.a28=754;t.a6=494;t.a7=552;t.a8=537;t.a9=577;t.a10=692;t.a29=786;t.a30=788;t.a31=788;t.a32=790;t.a33=793;t.a34=794;t.a35=816;t.a36=823;t.a37=789;t.a38=841;t.a39=823;t.a40=833;t.a41=816;t.a42=831;t.a43=923;t.a44=744;t.a45=723;t.a46=749;t.a47=790;t.a48=792;t.a49=695;t.a50=776;t.a51=768;t.a52=792;t.a53=759;t.a54=707;t.a55=708;t.a56=682;t.a57=701;t.a58=826;t.a59=815;t.a60=789;t.a61=789;t.a62=707;t.a63=687;t.a64=696;t.a65=689;t.a66=786;t.a67=787;t.a68=713;t.a69=791;t.a70=785;t.a71=791;t.a72=873;t.a73=761;t.a74=762;t.a203=762;t.a75=759;t.a204=759;t.a76=892;t.a77=892;t.a78=788;t.a79=784;t.a81=438;t.a82=138;t.a83=277;t.a84=415;t.a97=392;t.a98=392;t.a99=668;t.a100=668;t.a89=390;t.a90=390;t.a93=317;t.a94=317;t.a91=276;t.a92=276;t.a205=509;t.a85=509;t.a206=410;t.a86=410;t.a87=234;t.a88=234;t.a95=334;t.a96=334;t.a101=732;t.a102=544;t.a103=544;t.a104=910;t.a106=667;t.a107=760;t.a108=760;t.a112=776;t.a111=595;t.a110=694;t.a109=626;t.a120=788;t.a121=788;t.a122=788;t.a123=788;t.a124=788;t.a125=788;t.a126=788;t.a127=788;t.a128=788;t.a129=788;t.a130=788;t.a131=788;t.a132=788;t.a133=788;t.a134=788;t.a135=788;t.a136=788;t.a137=788;t.a138=788;t.a139=788;t.a140=788;t.a141=788;t.a142=788;t.a143=788;t.a144=788;t.a145=788;t.a146=788;t.a147=788;t.a148=788;t.a149=788;t.a150=788;t.a151=788;t.a152=788;t.a153=788;t.a154=788;t.a155=788;t.a156=788;t.a157=788;t.a158=788;t.a159=788;t.a160=894;t.a161=838;t.a163=1016;t.a164=458;t.a196=748;t.a165=924;t.a192=748;t.a166=918;t.a167=927;t.a168=928;t.a169=928;t.a170=834;t.a171=873;t.a172=828;t.a173=924;t.a162=924;t.a174=917;t.a175=930;t.a176=931;t.a177=463;t.a178=883;t.a179=836;t.a193=836;t.a180=867;t.a199=867;t.a181=696;t.a200=696;t.a182=874;t.a201=874;t.a183=760;t.a184=946;t.a197=771;t.a185=865;t.a194=771;t.a198=888;t.a186=967;t.a195=888;t.a187=831;t.a188=873;t.a189=927;t.a190=970;t.a191=918}))}));r.getMetrics=c},(t,r,o)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});r.MurmurHash3_64=void 0;var l=o(4);function _defineProperties(t,r){for(var o=0;o<r.length;o++){var l=r[o];l.enumerable=l.enumerable||!1;l.configurable=!0;"value"in l&&(l.writable=!0);Object.defineProperty(t,l.key,l)}}var c=3285377520,u=4294901760,h=65535,d=function(){function MurmurHash3_64(t){!function _classCallCheck(t,r){if(!(t instanceof r))throw new TypeError("Cannot call a class as a function")}(this,MurmurHash3_64);this.h1=t?4294967295&t:c;this.h2=t?4294967295&t:c}!function _createClass(t,r,o){r&&_defineProperties(t.prototype,r);o&&_defineProperties(t,o);return t}(MurmurHash3_64,[{key:"update",value:function update(t){var r,o;if((0,l.isString)(t)){r=new Uint8Array(2*t.length);o=0;for(var c=0,d=t.length;c<d;c++){var m=t.charCodeAt(c);if(m<=255)r[o++]=m;else{r[o++]=m>>>8;r[o++]=255&m}}}else{if(!(0,l.isArrayBuffer)(t))throw new Error("Wrong data format in MurmurHash3_64_update. Input must be a string or array.");o=(r=t.slice()).byteLength}for(var g=o>>2,y=o-4*g,v=new Uint32Array(r.buffer,0,g),S=0,_=0,k=this.h1,C=this.h2,w=3432918353,x=461845907,O=11601,T=13715,R=0;R<g;R++)1&R?k=5*(k=(k^=S=(S=(S=(S=v[R])*w&u|S*O&h)<<15|S>>>17)*x&u|S*T&h)<<13|k>>>19)+3864292196:C=5*(C=(C^=_=(_=(_=(_=v[R])*w&u|_*O&h)<<15|_>>>17)*x&u|_*T&h)<<13|C>>>19)+3864292196;S=0;switch(y){case 3:S^=r[4*g+2]<<16;case 2:S^=r[4*g+1]<<8;case 1:S=(S=(S=(S^=r[4*g])*w&u|S*O&h)<<15|S>>>17)*x&u|S*T&h;1&g?k^=S:C^=S}this.h1=k;this.h2=C}},{key:"hexdigest",value:function hexdigest(){var t=this.h1,r=this.h2;t=3981806797*(t^=r>>>1)&u|36045*t&h;t=444984403*(t^=(r=4283543511*r&u|(2950163797*(r<<16|t>>>16)&u)>>>16)>>>1)&u|60499*t&h;var o=((t^=(r=3301882366*r&u|(3120437893*(r<<16|t>>>16)&u)>>>16)>>>1)>>>0).toString(16),l=(r>>>0).toString(16);return o.padStart(8,"0")+l.padStart(8,"0")}}]);return MurmurHash3_64}();r.MurmurHash3_64=d},(t,r,o)=>{"use strict";function _typeof(t){_typeof="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function _typeof(t){return typeof t}:function _typeof(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t};return _typeof(t)}Object.defineProperty(r,"__esModule",{value:!0});r.OperatorList=void 0;var l=o(4);function _createForOfIteratorHelper(t,r){var o="undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(!o){if(Array.isArray(t)||(o=function _unsupportedIterableToArray(t,r){if(!t)return;if("string"==typeof t)return _arrayLikeToArray(t,r);var o=Object.prototype.toString.call(t).slice(8,-1);"Object"===o&&t.constructor&&(o=t.constructor.name);if("Map"===o||"Set"===o)return Array.from(t);if("Arguments"===o||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(o))return _arrayLikeToArray(t,r)}(t))||r&&t&&"number"==typeof t.length){o&&(t=o);var l=0,c=function F(){};return{s:c,n:function n(){return l>=t.length?{done:!0}:{done:!1,value:t[l++]}},e:function e(t){throw t},f:c}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var u,h=!0,d=!1;return{s:function s(){o=o.call(t)},n:function n(){var t=o.next();h=t.done;return t},e:function e(t){d=!0;u=t},f:function f(){try{h||null==o.return||o.return()}finally{if(d)throw u}}}}function _arrayLikeToArray(t,r){(null==r||r>t.length)&&(r=t.length);for(var o=0,l=new Array(r);o<r;o++)l[o]=t[o];return l}function _setPrototypeOf(t,r){_setPrototypeOf=Object.setPrototypeOf||function _setPrototypeOf(t,r){t.__proto__=r;return t};return _setPrototypeOf(t,r)}function _createSuper(t){var r=function _isNativeReflectConstruct(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){})));return!0}catch(t){return!1}}();return function _createSuperInternal(){var o,l=_getPrototypeOf(t);if(r){var c=_getPrototypeOf(this).constructor;o=Reflect.construct(l,arguments,c)}else o=l.apply(this,arguments);return _possibleConstructorReturn(this,o)}}function _possibleConstructorReturn(t,r){if(r&&("object"===_typeof(r)||"function"==typeof r))return r;if(void 0!==r)throw new TypeError("Derived constructors may only return object or undefined");return function _assertThisInitialized(t){if(void 0===t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return t}(t)}function _getPrototypeOf(t){_getPrototypeOf=Object.setPrototypeOf?Object.getPrototypeOf:function _getPrototypeOf(t){return t.__proto__||Object.getPrototypeOf(t)};return _getPrototypeOf(t)}function _classCallCheck(t,r){if(!(t instanceof r))throw new TypeError("Cannot call a class as a function")}function _defineProperties(t,r){for(var o=0;o<r.length;o++){var l=r[o];l.enumerable=l.enumerable||!1;l.configurable=!0;"value"in l&&(l.writable=!0);Object.defineProperty(t,l.key,l)}}function _createClass(t,r,o){r&&_defineProperties(t.prototype,r);o&&_defineProperties(t,o);return t}function addState(t,r,o,l,c){for(var u=t,h=0,d=r.length-1;h<d;h++){var m=r[h];u=u[m]||(u[m]=[])}u[r[r.length-1]]={checkFn:o,iterateFn:l,processFn:c}}var c=[];addState(c,[l.OPS.save,l.OPS.transform,l.OPS.paintInlineImageXObject,l.OPS.restore],null,(function iterateInlineImageGroup(t,r){var o=t.fnArray,c=(r-(t.iCurr-3))%4;switch(c){case 0:return o[r]===l.OPS.save;case 1:return o[r]===l.OPS.transform;case 2:return o[r]===l.OPS.paintInlineImageXObject;case 3:return o[r]===l.OPS.restore}throw new Error("iterateInlineImageGroup - invalid pos: ".concat(c))}),(function foundInlineImageGroup(t,r){var o=t.fnArray,c=t.argsArray,u=t.iCurr,h=u-3,d=u-2,m=u-1,g=Math.min(Math.floor((r-h)/4),200);if(g<10)return r-(r-h)%4;for(var y=0,v=[],S=0,_=1,k=1,C=0;C<g;C++){var w=c[d+(C<<2)],x=c[m+(C<<2)][0];if(_+x.width>1e3){y=Math.max(y,_);k+=S+2;_=0;S=0}v.push({transform:w,x:_,y:k,w:x.width,h:x.height});_+=x.width+2;S=Math.max(S,x.height)}for(var O=Math.max(y,_)+1,T=k+S+1,R=new Uint8ClampedArray(O*T*4),E=O<<2,M=0;M<g;M++){var D=c[m+(M<<2)][0].data,j=v[M].w<<2,L=0,N=v[M].x+v[M].y*O<<2;R.set(D.subarray(0,j),N-E);for(var U=0,H=v[M].h;U<H;U++){R.set(D.subarray(L,L+j),N);L+=j;N+=E}R.set(D.subarray(L-j,L),N);for(;N>=0;){D[N-4]=D[N];D[N-3]=D[N+1];D[N-2]=D[N+2];D[N-1]=D[N+3];D[N+j]=D[N+j-4];D[N+j+1]=D[N+j-3];D[N+j+2]=D[N+j-2];D[N+j+3]=D[N+j-1];N-=E}}o.splice(h,4*g,l.OPS.paintInlineImageXObjectGroup);c.splice(h,4*g,[{width:O,height:T,kind:l.ImageKind.RGBA_32BPP,data:R},v]);return h+1}));addState(c,[l.OPS.save,l.OPS.transform,l.OPS.paintImageMaskXObject,l.OPS.restore],null,(function iterateImageMaskGroup(t,r){var o=t.fnArray,c=(r-(t.iCurr-3))%4;switch(c){case 0:return o[r]===l.OPS.save;case 1:return o[r]===l.OPS.transform;case 2:return o[r]===l.OPS.paintImageMaskXObject;case 3:return o[r]===l.OPS.restore}throw new Error("iterateImageMaskGroup - invalid pos: ".concat(c))}),(function foundImageMaskGroup(t,r){var o=t.fnArray,c=t.argsArray,u=t.iCurr,h=u-3,d=u-2,m=u-1,g=Math.floor((r-h)/4);g=function handlePaintSolidColorImageMask(t,r,o,c){var u,h=t+2;for(u=0;u<r;u++){var d=c[h+4*u],m=1===d.length&&d[0];if(!m||1!==m.width||1!==m.height||m.data.length&&(1!==m.data.length||0!==m.data[0]))break;o[h+4*u]=l.OPS.paintSolidColorImageMask}return r-u}(h,g,o,c);if(g<10)return r-(r-h)%4;var y,v,S=!1,_=c[m][0],k=c[d][0],C=c[d][1],w=c[d][2],x=c[d][3];if(C===w){S=!0;y=d+4;for(var O=m+4,T=1;T<g;T++,y+=4,O+=4){v=c[y];if(c[O][0]!==_||v[0]!==k||v[1]!==C||v[2]!==w||v[3]!==x){T<10?S=!1:g=T;break}}}if(S){g=Math.min(g,1e3);var R=new Float32Array(2*g);y=d;for(var E=0;E<g;E++,y+=4){v=c[y];R[E<<1]=v[4];R[1+(E<<1)]=v[5]}o.splice(h,4*g,l.OPS.paintImageMaskXObjectRepeat);c.splice(h,4*g,[_,k,C,w,x,R])}else{g=Math.min(g,100);for(var M=[],D=0;D<g;D++){v=c[d+(D<<2)];var j=c[m+(D<<2)][0];M.push({data:j.data,width:j.width,height:j.height,transform:v})}o.splice(h,4*g,l.OPS.paintImageMaskXObjectGroup);c.splice(h,4*g,[M])}return h+1}));addState(c,[l.OPS.save,l.OPS.transform,l.OPS.paintImageXObject,l.OPS.restore],(function(t){var r=t.argsArray,o=t.iCurr-2;return 0===r[o][1]&&0===r[o][2]}),(function iterateImageGroup(t,r){var o=t.fnArray,c=t.argsArray,u=(r-(t.iCurr-3))%4;switch(u){case 0:return o[r]===l.OPS.save;case 1:if(o[r]!==l.OPS.transform)return!1;var h=t.iCurr-2,d=c[h][0],m=c[h][3];return c[r][0]===d&&0===c[r][1]&&0===c[r][2]&&c[r][3]===m;case 2:if(o[r]!==l.OPS.paintImageXObject)return!1;var g=c[t.iCurr-1][0];return c[r][0]===g;case 3:return o[r]===l.OPS.restore}throw new Error("iterateImageGroup - invalid pos: ".concat(u))}),(function(t,r){var o=t.fnArray,c=t.argsArray,u=t.iCurr,h=u-3,d=u-2,m=c[u-1][0],g=c[d][0],y=c[d][3],v=Math.min(Math.floor((r-h)/4),1e3);if(v<3)return r-(r-h)%4;for(var S=new Float32Array(2*v),_=d,k=0;k<v;k++,_+=4){var C=c[_];S[k<<1]=C[4];S[1+(k<<1)]=C[5]}var w=[m,g,y,S];o.splice(h,4*v,l.OPS.paintImageXObjectRepeat);c.splice(h,4*v,w);return h+1}));addState(c,[l.OPS.beginText,l.OPS.setFont,l.OPS.setTextMatrix,l.OPS.showText,l.OPS.endText],null,(function iterateShowTextGroup(t,r){var o=t.fnArray,c=t.argsArray,u=(r-(t.iCurr-4))%5;switch(u){case 0:return o[r]===l.OPS.beginText;case 1:return o[r]===l.OPS.setFont;case 2:return o[r]===l.OPS.setTextMatrix;case 3:if(o[r]!==l.OPS.showText)return!1;var h=t.iCurr-3,d=c[h][0],m=c[h][1];return c[r][0]===d&&c[r][1]===m;case 4:return o[r]===l.OPS.endText}throw new Error("iterateShowTextGroup - invalid pos: ".concat(u))}),(function(t,r){var o=t.fnArray,l=t.argsArray,c=t.iCurr,u=c-4,h=c-3,d=c-2,m=c-1,g=c,y=l[h][0],v=l[h][1],S=Math.min(Math.floor((r-u)/5),1e3);if(S<3)return r-(r-u)%5;var _=u;if(u>=4&&o[u-4]===o[h]&&o[u-3]===o[d]&&o[u-2]===o[m]&&o[u-1]===o[g]&&l[u-4][0]===y&&l[u-4][1]===v){S++;_-=5}for(var k=_+4,C=1;C<S;C++){o.splice(k,3);l.splice(k,3);k+=2}return k+1}));var u=function(){function NullOptimizer(t){_classCallCheck(this,NullOptimizer);this.queue=t}_createClass(NullOptimizer,[{key:"_optimize",value:function _optimize(){}},{key:"push",value:function push(t,r){this.queue.fnArray.push(t);this.queue.argsArray.push(r);this._optimize()}},{key:"flush",value:function flush(){}},{key:"reset",value:function reset(){}}]);return NullOptimizer}(),h=function(t){!function _inherits(t,r){if("function"!=typeof r&&null!==r)throw new TypeError("Super expression must either be null or a function");t.prototype=Object.create(r&&r.prototype,{constructor:{value:t,writable:!0,configurable:!0}});r&&_setPrototypeOf(t,r)}(QueueOptimizer,t);var r=_createSuper(QueueOptimizer);function QueueOptimizer(t){var o;_classCallCheck(this,QueueOptimizer);(o=r.call(this,t)).state=null;o.context={iCurr:0,fnArray:t.fnArray,argsArray:t.argsArray};o.match=null;o.lastProcessed=0;return o}_createClass(QueueOptimizer,[{key:"_optimize",value:function _optimize(){var t=this.queue.fnArray,r=this.lastProcessed,o=t.length,l=this.state,u=this.match;if(l||u||r+1!==o||c[t[r]]){for(var h=this.context;r<o;){if(u){if((0,u.iterateFn)(h,r)){r++;continue}r=(0,u.processFn)(h,r+1);u=null;l=null;if(r>=(o=t.length))break}if((l=(l||c)[t[r]])&&!Array.isArray(l)){h.iCurr=r;r++;if(!l.checkFn||(0,l.checkFn)(h)){u=l;l=null}else l=null}else r++}this.state=l;this.match=u;this.lastProcessed=r}else this.lastProcessed=o}},{key:"flush",value:function flush(){for(;this.match;){var t=this.queue.fnArray.length;this.lastProcessed=(0,this.match.processFn)(this.context,t);this.match=null;this.state=null;this._optimize()}}},{key:"reset",value:function reset(){this.state=null;this.match=null;this.lastProcessed=0}}]);return QueueOptimizer}(u),d=function(){function OperatorList(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0,r=arguments.length>1?arguments[1]:void 0;_classCallCheck(this,OperatorList);this._streamSink=r;this.fnArray=[];this.argsArray=[];!r||t&l.RenderingIntentFlag.OPLIST?this.optimizer=new u(this):this.optimizer=new h(this);this.dependencies=new Set;this._totalLength=0;this.weight=0;this._resolved=r?null:Promise.resolve()}_createClass(OperatorList,[{key:"length",get:function get(){return this.argsArray.length}},{key:"ready",get:function get(){return this._resolved||this._streamSink.ready}},{key:"totalLength",get:function get(){return this._totalLength+this.length}},{key:"addOp",value:function addOp(t,r){this.optimizer.push(t,r);this.weight++;this._streamSink&&(this.weight>=OperatorList.CHUNK_SIZE||this.weight>=OperatorList.CHUNK_SIZE_ABOUT&&(t===l.OPS.restore||t===l.OPS.endText))&&this.flush()}},{key:"addDependency",value:function addDependency(t){if(!this.dependencies.has(t)){this.dependencies.add(t);this.addOp(l.OPS.dependency,[t])}}},{key:"addDependencies",value:function addDependencies(t){var r,o=_createForOfIteratorHelper(t);try{for(o.s();!(r=o.n()).done;){var l=r.value;this.addDependency(l)}}catch(t){o.e(t)}finally{o.f()}}},{key:"addOpList",value:function addOpList(t){if(t instanceof OperatorList){var r,o=_createForOfIteratorHelper(t.dependencies);try{for(o.s();!(r=o.n()).done;){var c=r.value;this.dependencies.add(c)}}catch(t){o.e(t)}finally{o.f()}for(var u=0,h=t.length;u<h;u++)this.addOp(t.fnArray[u],t.argsArray[u])}else(0,l.warn)('addOpList - ignoring invalid "opList" parameter.')}},{key:"getIR",value:function getIR(){return{fnArray:this.fnArray,argsArray:this.argsArray,length:this.length}}},{key:"_transfers",get:function get(){for(var t=[],r=this.fnArray,o=this.argsArray,c=this.length,u=0;u<c;u++)switch(r[u]){case l.OPS.paintInlineImageXObject:case l.OPS.paintInlineImageXObjectGroup:case l.OPS.paintImageMaskXObject:var h=o[u][0];h.cached||t.push(h.data.buffer)}return t}},{key:"flush",value:function flush(){var t=arguments.length>0&&void 0!==arguments[0]&&arguments[0];this.optimizer.flush();var r=this.length;this._totalLength+=r;this._streamSink.enqueue({fnArray:this.fnArray,argsArray:this.argsArray,lastChunk:t,length:r},1,this._transfers);this.dependencies.clear();this.fnArray.length=0;this.argsArray.length=0;this.weight=0;this.optimizer.reset()}}],[{key:"CHUNK_SIZE",get:function get(){return(0,l.shadow)(this,"CHUNK_SIZE",1e3)}},{key:"CHUNK_SIZE_ABOUT",get:function get(){return(0,l.shadow)(this,"CHUNK_SIZE_ABOUT",this.CHUNK_SIZE-5)}}]);return OperatorList}();r.OperatorList=d},(t,r,o)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});r.PDFImage=void 0;var l=function _interopRequireDefault(t){return t&&t.__esModule?t:{default:t}}(o(2)),c=o(4),u=o(118),h=o(137),d=o(142),m=o(150),g=o(153);function asyncGeneratorStep(t,r,o,l,c,u,h){try{var d=t[u](h),m=d.value}catch(t){o(t);return}d.done?r(m):Promise.resolve(m).then(l,c)}function _defineProperties(t,r){for(var o=0;o<r.length;o++){var l=r[o];l.enumerable=l.enumerable||!1;l.configurable=!0;"value"in l&&(l.writable=!0);Object.defineProperty(t,l.key,l)}}function decodeAndClamp(t,r,o,l){(t=r+t*o)<0?t=0:t>l&&(t=l);return t}function resizeImageMask(t,r,o,l,c,u){var h,d=c*u;h=r<=8?new Uint8Array(d):r<=16?new Uint16Array(d):new Uint32Array(d);var m,g,y,v,S=o/c,_=l/u,k=0,C=new Uint16Array(c),w=o;for(m=0;m<c;m++)C[m]=Math.floor(m*S);for(m=0;m<u;m++){y=Math.floor(m*_)*w;for(g=0;g<c;g++){v=y+C[g];h[k++]=t[v]}}return h}var y=function(){function PDFImage(t){var r=t.xref,o=t.res,l=t.image,d=t.isInline,m=void 0!==d&&d,y=t.smask,v=void 0===y?null:y,S=t.mask,_=void 0===S?null:S,k=t.isMask,C=void 0!==k&&k,w=t.pdfFunctionFactory,x=t.localColorSpaceCache;!function _classCallCheck(t,r){if(!(t instanceof r))throw new TypeError("Cannot call a class as a function")}(this,PDFImage);this.image=l;var O=l.dict,T=O.get("Filter");if((0,u.isName)(T))switch(T.name){case"JPXDecode":var R=new g.JpxImage;R.parseImageProperties(l.stream);l.stream.reset();l.width=R.width;l.height=R.height;l.bitsPerComponent=R.bitsPerComponent;l.numComps=R.componentsCount;break;case"JBIG2Decode":l.bitsPerComponent=1;l.numComps=1}var E=O.get("Width","W"),M=O.get("Height","H");if(Number.isInteger(l.width)&&l.width>0&&Number.isInteger(l.height)&&l.height>0&&(l.width!==E||l.height!==M)){(0,c.warn)("PDFImage - using the Width/Height of the image data, rather than the image dictionary.");E=l.width;M=l.height}if(E<1||M<1)throw new c.FormatError("Invalid image width: ".concat(E," or height: ").concat(M));this.width=E;this.height=M;this.interpolate=O.get("Interpolate","I");this.imageMask=O.get("ImageMask","IM")||!1;this.matte=O.get("Matte")||!1;var D=l.bitsPerComponent;if(!D&&!(D=O.get("BitsPerComponent","BPC"))){if(!this.imageMask)throw new c.FormatError("Bits per component missing in image: ".concat(this.imageMask));D=1}this.bpc=D;if(!this.imageMask){var j=O.getRaw("ColorSpace")||O.getRaw("CS");if(!j){(0,c.info)("JPX images (which do not require color spaces)");switch(l.numComps){case 1:j=u.Name.get("DeviceGray");break;case 3:j=u.Name.get("DeviceRGB");break;case 4:j=u.Name.get("DeviceCMYK");break;default:throw new Error("JPX images with ".concat(l.numComps," ")+"color components not supported.")}}this.colorSpace=h.ColorSpace.parse({cs:j,xref:r,resources:m?o:null,pdfFunctionFactory:w,localColorSpaceCache:x});this.numComps=this.colorSpace.numComps}this.decode=O.getArray("Decode","D");this.needsDecode=!1;if(this.decode&&(this.colorSpace&&!this.colorSpace.isDefaultDecode(this.decode,D)||C&&!h.ColorSpace.isDefaultDecode(this.decode,1))){this.needsDecode=!0;var L=(1<<D)-1;this.decodeCoefficients=[];this.decodeAddends=[];for(var N=this.colorSpace&&"Indexed"===this.colorSpace.name,U=0,H=0;U<this.decode.length;U+=2,++H){var W=this.decode[U],$=this.decode[U+1];this.decodeCoefficients[H]=N?($-W)/L:$-W;this.decodeAddends[H]=N?W:L*W}}if(v)this.smask=new PDFImage({xref:r,res:o,image:v,isInline:m,pdfFunctionFactory:w,localColorSpaceCache:x});else if(_)if((0,u.isStream)(_)){_.dict.get("ImageMask","IM")?this.mask=new PDFImage({xref:r,res:o,image:_,isInline:m,isMask:!0,pdfFunctionFactory:w,localColorSpaceCache:x}):(0,c.warn)("Ignoring /Mask in image without /ImageMask.")}else this.mask=_}!function _createClass(t,r,o){r&&_defineProperties(t.prototype,r);o&&_defineProperties(t,o);return t}(PDFImage,[{key:"drawWidth",get:function get(){return Math.max(this.width,this.smask&&this.smask.width||0,this.mask&&this.mask.width||0)}},{key:"drawHeight",get:function get(){return Math.max(this.height,this.smask&&this.smask.height||0,this.mask&&this.mask.height||0)}},{key:"decodeBuffer",value:function decodeBuffer(t){var r,o,l=this.bpc,c=this.numComps,u=this.decodeAddends,h=this.decodeCoefficients,d=(1<<l)-1;if(1!==l){var m=0;for(r=0,o=this.width*this.height;r<o;r++)for(var g=0;g<c;g++){t[m]=decodeAndClamp(t[m],u[g],h[g],d);m++}}else for(r=0,o=t.length;r<o;r++)t[r]=+!t[r]}},{key:"getComponents",value:function getComponents(t){var r=this.bpc;if(8===r)return t;var o,l=this.width,c=this.height,u=this.numComps,h=l*c*u,d=0;o=r<=8?new Uint8Array(h):r<=16?new Uint16Array(h):new Uint32Array(h);var m,g,y=l*u,v=(1<<r)-1,S=0;if(1===r)for(var _,k,C,w=0;w<c;w++){k=S+(-8&y);C=S+y;for(;S<k;){g=t[d++];o[S]=g>>7&1;o[S+1]=g>>6&1;o[S+2]=g>>5&1;o[S+3]=g>>4&1;o[S+4]=g>>3&1;o[S+5]=g>>2&1;o[S+6]=g>>1&1;o[S+7]=1&g;S+=8}if(S<C){g=t[d++];_=128;for(;S<C;){o[S++]=+!!(g&_);_>>=1}}}else{var x=0;g=0;for(S=0,m=h;S<m;++S){if(S%y==0){g=0;x=0}for(;x<r;){g=g<<8|t[d++];x+=8}var O=x-r,T=g>>O;T<0?T=0:T>v&&(T=v);o[S]=T;g&=(1<<O)-1;x=O}}return o}},{key:"fillOpacity",value:function fillOpacity(t,r,o,l,u){var h,d,m,g,y,v,S=this.smask,_=this.mask;if(S){d=S.width;m=S.height;h=new Uint8ClampedArray(d*m);S.fillGrayBuffer(h);d===r&&m===o||(h=resizeImageMask(h,S.bpc,d,m,r,o))}else if(_)if(_ instanceof PDFImage){d=_.width;m=_.height;h=new Uint8ClampedArray(d*m);_.numComps=1;_.fillGrayBuffer(h);for(g=0,y=d*m;g<y;++g)h[g]=255-h[g];d===r&&m===o||(h=resizeImageMask(h,_.bpc,d,m,r,o))}else{if(!Array.isArray(_))throw new c.FormatError("Unknown mask format.");h=new Uint8ClampedArray(r*o);var k=this.numComps;for(g=0,y=r*o;g<y;++g){var C=0,w=g*k;for(v=0;v<k;++v){var x=u[w+v],O=2*v;if(x<_[O]||x>_[O+1]){C=255;break}}h[g]=C}}if(h)for(g=0,v=3,y=r*l;g<y;++g,v+=4)t[v]=h[g];else for(g=0,v=3,y=r*l;g<y;++g,v+=4)t[v]=255}},{key:"undoPreblend",value:function undoPreblend(t,r,o){var l=this.smask&&this.smask.matte;if(l)for(var c=this.colorSpace.getRgb(l,0),u=c[0],h=c[1],d=c[2],m=r*o*4,g=0;g<m;g+=4){var y=t[g+3];if(0!==y){var v=255/y;t[g]=(t[g]-u)*v+u;t[g+1]=(t[g+1]-h)*v+h;t[g+2]=(t[g+2]-d)*v+d}else{t[g]=255;t[g+1]=255;t[g+2]=255}}}},{key:"createImageData",value:function createImageData(){var t,r=arguments.length>0&&void 0!==arguments[0]&&arguments[0],o=this.drawWidth,l=this.drawHeight,u={width:o,height:l,interpolate:this.interpolate,kind:0,data:null},h=this.numComps,g=this.width,y=this.height,v=this.bpc,S=g*h*v+7>>3;if(!r){var _;"DeviceGray"===this.colorSpace.name&&1===v?_=c.ImageKind.GRAYSCALE_1BPP:"DeviceRGB"!==this.colorSpace.name||8!==v||this.needsDecode||(_=c.ImageKind.RGB_24BPP);if(_&&!this.smask&&!this.mask&&o===g&&l===y){u.kind=_;t=this.getImageBytes(y*S);if(this.image instanceof d.DecodeStream)u.data=t;else{var k=new Uint8ClampedArray(t.length);k.set(t);u.data=k}if(this.needsDecode){(0,c.assert)(_===c.ImageKind.GRAYSCALE_1BPP,"PDFImage.createImageData: The image must be grayscale.");for(var C=u.data,w=0,x=C.length;w<x;w++)C[w]^=255}return u}if(this.image instanceof m.JpegStream&&!this.smask&&!this.mask){var O=y*S;switch(this.colorSpace.name){case"DeviceGray":O*=3;case"DeviceRGB":case"DeviceCMYK":u.kind=c.ImageKind.RGB_24BPP;u.data=this.getImageBytes(O,o,l,!0);return u}}}var T,R,E=0|(t=this.getImageBytes(y*S)).length/S*l/y,M=this.getComponents(t);if(r||this.smask||this.mask){u.kind=c.ImageKind.RGBA_32BPP;u.data=new Uint8ClampedArray(o*l*4);T=1;R=!0;this.fillOpacity(u.data,o,l,E,M)}else{u.kind=c.ImageKind.RGB_24BPP;u.data=new Uint8ClampedArray(o*l*3);T=0;R=!1}this.needsDecode&&this.decodeBuffer(M);this.colorSpace.fillRgb(u.data,g,y,o,l,E,v,M,T);R&&this.undoPreblend(u.data,o,E);return u}},{key:"fillGrayBuffer",value:function fillGrayBuffer(t){var r=this.numComps;if(1!==r)throw new c.FormatError("Reading gray scale from a color image: ".concat(r));var o,l,u=this.width,h=this.height,d=this.bpc,m=u*r*d+7>>3,g=this.getImageBytes(h*m),y=this.getComponents(g);if(1!==d){this.needsDecode&&this.decodeBuffer(y);l=u*h;var v=255/((1<<d)-1);for(o=0;o<l;++o)t[o]=v*y[o]}else{l=u*h;if(this.needsDecode)for(o=0;o<l;++o)t[o]=y[o]-1&255;else for(o=0;o<l;++o)t[o]=255&-y[o]}}},{key:"getImageBytes",value:function getImageBytes(t,r,o){var l=arguments.length>3&&void 0!==arguments[3]&&arguments[3];this.image.reset();this.image.drawWidth=r||this.width;this.image.drawHeight=o||this.height;this.image.forceRGB=!!l;return this.image.getBytes(t,!0)}}],[{key:"buildImage",value:(t=function _asyncToGenerator(t){return function(){var r=this,o=arguments;return new Promise((function(l,c){var u=t.apply(r,o);function _next(t){asyncGeneratorStep(u,l,c,_next,_throw,"next",t)}function _throw(t){asyncGeneratorStep(u,l,c,_next,_throw,"throw",t)}_next(void 0)}))}}(l.default.mark((function _callee(t){var r,o,h,d,m,g,y,v,S,_,k,C;return l.default.wrap((function _callee$(l){for(;;)switch(l.prev=l.next){case 0:r=t.xref,o=t.res,h=t.image,d=t.isInline,m=void 0!==d&&d,g=t.pdfFunctionFactory,y=t.localColorSpaceCache;v=h;S=null;_=null;k=h.dict.get("SMask");C=h.dict.get("Mask");k?S=k:C&&((0,u.isStream)(C)||Array.isArray(C)?_=C:(0,c.warn)("Unsupported mask format."));return l.abrupt("return",new PDFImage({xref:r,res:o,image:v,isInline:m,smask:S,mask:_,pdfFunctionFactory:g,localColorSpaceCache:y}));case 8:case"end":return l.stop()}}),_callee)}))),function buildImage(r){return t.apply(this,arguments)})},{key:"createMask",value:function createMask(t){var r,o,l=t.imgArray,c=t.width,u=t.height,h=t.imageIsFromDecodeStream,d=t.inverseDecode,m=t.interpolate,g=(c+7>>3)*u,y=l.byteLength;if(!h||d&&!(g===y))if(d){(r=new Uint8ClampedArray(g)).set(l);for(o=y;o<g;o++)r[o]=255}else(r=new Uint8ClampedArray(y)).set(l);else r=l;if(d)for(o=0;o<y;o++)r[o]^=255;return{data:r,width:c,height:u,interpolate:m}}}]);var t;return PDFImage}();r.PDFImage=y},(t,r,o)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});r.Catalog=void 0;var l=o(118),c=o(122),u=o(4),h=o(178),d=o(137),m=o(179),g=o(171),y=o(180),v=o(182);function _typeof(t){_typeof="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function _typeof(t){return typeof t}:function _typeof(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t};return _typeof(t)}function _toConsumableArray(t){return function _arrayWithoutHoles(t){if(Array.isArray(t))return _arrayLikeToArray(t)}(t)||function _iterableToArray(t){if("undefined"!=typeof Symbol&&null!=t[Symbol.iterator]||null!=t["@@iterator"])return Array.from(t)}(t)||_unsupportedIterableToArray(t)||function _nonIterableSpread(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function _slicedToArray(t,r){return function _arrayWithHoles(t){if(Array.isArray(t))return t}(t)||function _iterableToArrayLimit(t,r){var o=null==t?null:"undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(null==o)return;var l,c,u=[],h=!0,d=!1;try{for(o=o.call(t);!(h=(l=o.next()).done);h=!0){u.push(l.value);if(r&&u.length===r)break}}catch(t){d=!0;c=t}finally{try{h||null==o.return||o.return()}finally{if(d)throw c}}return u}(t,r)||_unsupportedIterableToArray(t,r)||function _nonIterableRest(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function _createForOfIteratorHelper(t,r){var o="undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(!o){if(Array.isArray(t)||(o=_unsupportedIterableToArray(t))||r&&t&&"number"==typeof t.length){o&&(t=o);var l=0,c=function F(){};return{s:c,n:function n(){return l>=t.length?{done:!0}:{done:!1,value:t[l++]}},e:function e(t){throw t},f:c}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var u,h=!0,d=!1;return{s:function s(){o=o.call(t)},n:function n(){var t=o.next();h=t.done;return t},e:function e(t){d=!0;u=t},f:function f(){try{h||null==o.return||o.return()}finally{if(d)throw u}}}}function _unsupportedIterableToArray(t,r){if(t){if("string"==typeof t)return _arrayLikeToArray(t,r);var o=Object.prototype.toString.call(t).slice(8,-1);"Object"===o&&t.constructor&&(o=t.constructor.name);return"Map"===o||"Set"===o?Array.from(t):"Arguments"===o||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(o)?_arrayLikeToArray(t,r):void 0}}function _arrayLikeToArray(t,r){(null==r||r>t.length)&&(r=t.length);for(var o=0,l=new Array(r);o<r;o++)l[o]=t[o];return l}function _defineProperties(t,r){for(var o=0;o<r.length;o++){var l=r[o];l.enumerable=l.enumerable||!1;l.configurable=!0;"value"in l&&(l.writable=!0);Object.defineProperty(t,l.key,l)}}function fetchDestination(t){t instanceof l.Dict&&(t=t.get("D"));return Array.isArray(t)?t:null}var S=function(){function Catalog(t,r){!function _classCallCheck(t,r){if(!(t instanceof r))throw new TypeError("Cannot call a class as a function")}(this,Catalog);this.pdfManager=t;this.xref=r;this._catDict=r.getCatalogObj();if(!(0,l.isDict)(this._catDict))throw new u.FormatError("Catalog object is not a dictionary.");this.fontCache=new l.RefSetCache;this.builtInCMapCache=new Map;this.standardFontDataCache=new Map;this.globalImageCache=new g.GlobalImageCache;this.pageKidsCountCache=new l.RefSetCache;this.pageIndexCache=new l.RefSetCache;this.nonBlendModesSet=new l.RefSet}!function _createClass(t,r,o){r&&_defineProperties(t.prototype,r);o&&_defineProperties(t,o);return t}(Catalog,[{key:"version",get:function get(){var t=this._catDict.get("Version");return(0,l.isName)(t)?(0,u.shadow)(this,"version",t.name):(0,u.shadow)(this,"version",null)}},{key:"needsRendering",get:function get(){var t=this._catDict.get("NeedsRendering");return(0,u.isBool)(t)?(0,u.shadow)(this,"needsRendering",t):(0,u.shadow)(this,"needsRendering",!1)}},{key:"collection",get:function get(){var t=null;try{var r=this._catDict.get("Collection");(0,l.isDict)(r)&&r.size>0&&(t=r)}catch(t){if(t instanceof c.MissingDataException)throw t;(0,u.info)("Cannot fetch Collection entry; assuming no collection is present.")}return(0,u.shadow)(this,"collection",t)}},{key:"acroForm",get:function get(){var t=null;try{var r=this._catDict.get("AcroForm");(0,l.isDict)(r)&&r.size>0&&(t=r)}catch(t){if(t instanceof c.MissingDataException)throw t;(0,u.info)("Cannot fetch AcroForm entry; assuming no forms are present.")}return(0,u.shadow)(this,"acroForm",t)}},{key:"acroFormRef",get:function get(){var t=this._catDict.getRaw("AcroForm");return(0,u.shadow)(this,"acroFormRef",(0,l.isRef)(t)?t:null)}},{key:"metadata",get:function get(){var t=this._catDict.getRaw("Metadata");if(!(0,l.isRef)(t))return(0,u.shadow)(this,"metadata",null);var r=!(this.xref.encrypt&&this.xref.encrypt.encryptMetadata),o=this.xref.fetch(t,r),h=null;if((0,l.isStream)(o)&&(0,l.isDict)(o.dict)){var d=o.dict.get("Type"),m=o.dict.get("Subtype");if((0,l.isName)(d,"Metadata")&&(0,l.isName)(m,"XML"))try{var g=(0,u.stringToUTF8String)(o.getString());g&&(h=new y.MetadataParser(g).serializable)}catch(t){if(t instanceof c.MissingDataException)throw t;(0,u.info)("Skipping invalid metadata.")}}return(0,u.shadow)(this,"metadata",h)}},{key:"markInfo",get:function get(){var t=null;try{t=this._readMarkInfo()}catch(t){if(t instanceof c.MissingDataException)throw t;(0,u.warn)("Unable to read mark info.")}return(0,u.shadow)(this,"markInfo",t)}},{key:"_readMarkInfo",value:function _readMarkInfo(){var t=this._catDict.get("MarkInfo");if(!(0,l.isDict)(t))return null;var r=Object.assign(Object.create(null),{Marked:!1,UserProperties:!1,Suspects:!1});for(var o in r)if(t.has(o)){var c=t.get(o);(0,u.isBool)(c)&&(r[o]=c)}return r}},{key:"structTreeRoot",get:function get(){var t=null;try{t=this._readStructTreeRoot()}catch(t){if(t instanceof c.MissingDataException)throw t;(0,u.warn)("Unable read to structTreeRoot info.")}return(0,u.shadow)(this,"structTreeRoot",t)}},{key:"_readStructTreeRoot",value:function _readStructTreeRoot(){var t=this._catDict.get("StructTreeRoot");if(!(0,l.isDict)(t))return null;var r=new v.StructTreeRoot(t);r.init();return r}},{key:"toplevelPagesDict",get:function get(){var t=this._catDict.get("Pages");if(!(0,l.isDict)(t))throw new u.FormatError("Invalid top-level pages dictionary.");return(0,u.shadow)(this,"toplevelPagesDict",t)}},{key:"documentOutline",get:function get(){var t=null;try{t=this._readDocumentOutline()}catch(t){if(t instanceof c.MissingDataException)throw t;(0,u.warn)("Unable to read document outline.")}return(0,u.shadow)(this,"documentOutline",t)}},{key:"_readDocumentOutline",value:function _readDocumentOutline(){var t=this._catDict.get("Outlines");if(!(0,l.isDict)(t))return null;t=t.getRaw("First");if(!(0,l.isRef)(t))return null;var r={items:[]},o=[{obj:t,parent:r}],c=new l.RefSet;c.put(t);for(var h=this.xref,m=new Uint8ClampedArray(3);o.length>0;){var g=o.shift(),y=h.fetchIfRef(g.obj);if(null!==y){if(!y.has("Title"))throw new u.FormatError("Invalid outline item encountered.");var v={url:null,dest:null};Catalog.parseDestDictionary({destDict:y,resultObj:v,docBaseUrl:this.pdfManager.docBaseUrl});var S=y.get("Title"),_=y.get("F")||0,k=y.getArray("C"),C=y.get("Count"),w=m;!Array.isArray(k)||3!==k.length||0===k[0]&&0===k[1]&&0===k[2]||(w=d.ColorSpace.singletons.rgb.getRgb(k,0));var x={dest:v.dest,url:v.url,unsafeUrl:v.unsafeUrl,newWindow:v.newWindow,title:(0,u.stringToPDFString)(S),color:w,count:Number.isInteger(C)?C:void 0,bold:!!(2&_),italic:!!(1&_),items:[]};g.parent.items.push(x);t=y.getRaw("First");if((0,l.isRef)(t)&&!c.has(t)){o.push({obj:t,parent:x});c.put(t)}t=y.getRaw("Next");if((0,l.isRef)(t)&&!c.has(t)){o.push({obj:t,parent:g.parent});c.put(t)}}}return r.items.length>0?r.items:null}},{key:"permissions",get:function get(){var t=null;try{t=this._readPermissions()}catch(t){if(t instanceof c.MissingDataException)throw t;(0,u.warn)("Unable to read permissions.")}return(0,u.shadow)(this,"permissions",t)}},{key:"_readPermissions",value:function _readPermissions(){var t=this.xref.trailer.get("Encrypt");if(!(0,l.isDict)(t))return null;var r=t.get("P");if(!(0,u.isNum)(r))return null;r+=Math.pow(2,32);var o=[];for(var c in u.PermissionFlag){var h=u.PermissionFlag[c];r&h&&o.push(h)}return o}},{key:"optionalContentConfig",get:function get(){var t=null;try{var r=this._catDict.get("OCProperties");if(!r)return(0,u.shadow)(this,"optionalContentConfig",null);var o=r.get("D");if(!o)return(0,u.shadow)(this,"optionalContentConfig",null);var h=r.get("OCGs");if(!Array.isArray(h))return(0,u.shadow)(this,"optionalContentConfig",null);var d,m=[],g=[],y=_createForOfIteratorHelper(h);try{for(y.s();!(d=y.n()).done;){var v=d.value;if((0,l.isRef)(v)){g.push(v);var S=this.xref.fetchIfRef(v);m.push({id:v.toString(),name:(0,u.isString)(S.get("Name"))?(0,u.stringToPDFString)(S.get("Name")):null,intent:(0,u.isString)(S.get("Intent"))?(0,u.stringToPDFString)(S.get("Intent")):null})}}}catch(t){y.e(t)}finally{y.f()}(t=this._readOptionalContentConfig(o,g)).groups=m}catch(t){if(t instanceof c.MissingDataException)throw t;(0,u.warn)("Unable to read optional content config: ".concat(t))}return(0,u.shadow)(this,"optionalContentConfig",t)}},{key:"_readOptionalContentConfig",value:function _readOptionalContentConfig(t,r){function parseOnOff(t){var o=[];if(Array.isArray(t)){var c,u=_createForOfIteratorHelper(t);try{for(u.s();!(c=u.n()).done;){var h=c.value;(0,l.isRef)(h)&&(r.includes(h)&&o.push(h.toString()))}}catch(t){u.e(t)}finally{u.f()}}return o}function parseOrder(t){var o=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0;if(!Array.isArray(t))return null;var u,h=[],d=_createForOfIteratorHelper(t);try{for(d.s();!(u=d.n()).done;){var m=u.value;if((0,l.isRef)(m)&&r.includes(m)){c.put(m);h.push(m.toString())}else{var g=parseNestedOrder(m,o);g&&h.push(g)}}}catch(t){d.e(t)}finally{d.f()}if(o>0)return h;var y,v=[],S=_createForOfIteratorHelper(r);try{for(S.s();!(y=S.n()).done;){var _=y.value;c.has(_)||v.push(_.toString())}}catch(t){S.e(t)}finally{S.f()}v.length&&h.push({name:null,order:v});return h}function parseNestedOrder(t,r){if(++r>h){(0,u.warn)("parseNestedOrder - reached MAX_NESTED_LEVELS.");return null}var l=o.fetchIfRef(t);if(!Array.isArray(l))return null;var c=o.fetchIfRef(l[0]);if("string"!=typeof c)return null;var d=parseOrder(l.slice(1),r);return d&&d.length?{name:(0,u.stringToPDFString)(c),order:d}:null}var o=this.xref,c=new l.RefSet,h=10;return{name:(0,u.isString)(t.get("Name"))?(0,u.stringToPDFString)(t.get("Name")):null,creator:(0,u.isString)(t.get("Creator"))?(0,u.stringToPDFString)(t.get("Creator")):null,baseState:(0,l.isName)(t.get("BaseState"))?t.get("BaseState").name:null,on:parseOnOff(t.get("ON")),off:parseOnOff(t.get("OFF")),order:parseOrder(t.get("Order")),groups:null}}},{key:"numPages",get:function get(){var t=this.toplevelPagesDict.get("Count");if(!Number.isInteger(t))throw new u.FormatError("Page count in top-level pages dictionary is not an integer.");return(0,u.shadow)(this,"numPages",t)}},{key:"destinations",get:function get(){var t=this._readDests(),r=Object.create(null);if(t instanceof h.NameTree){var o,c=_createForOfIteratorHelper(t.getAll());try{for(c.s();!(o=c.n()).done;){var d=_slicedToArray(o.value,2),m=d[0],g=fetchDestination(d[1]);g&&(r[m]=g)}}catch(t){c.e(t)}finally{c.f()}}else t instanceof l.Dict&&t.forEach((function(t,o){var l=fetchDestination(o);l&&(r[t]=l)}));return(0,u.shadow)(this,"destinations",r)}},{key:"getDestination",value:function getDestination(t){var r=this._readDests();if(r instanceof h.NameTree){var o=fetchDestination(r.get(t));if(o)return o;var c=this.destinations[t];if(c){(0,u.warn)('Found "'.concat(t,'" at an incorrect position in the NameTree.'));return c}}else if(r instanceof l.Dict){var d=fetchDestination(r.get(t));if(d)return d}return null}},{key:"_readDests",value:function _readDests(){var t=this._catDict.get("Names");return t&&t.has("Dests")?new h.NameTree(t.getRaw("Dests"),this.xref):this._catDict.has("Dests")?this._catDict.get("Dests"):void 0}},{key:"pageLabels",get:function get(){var t=null;try{t=this._readPageLabels()}catch(t){if(t instanceof c.MissingDataException)throw t;(0,u.warn)("Unable to read page labels.")}return(0,u.shadow)(this,"pageLabels",t)}},{key:"_readPageLabels",value:function _readPageLabels(){var t=this._catDict.getRaw("PageLabels");if(!t)return null;for(var r=new Array(this.numPages),o=null,d="",m=new h.NumberTree(t,this.xref).getAll(),g="",y=1,v=0,S=this.numPages;v<S;v++){var _=m.get(v);if(void 0!==_){if(!(0,l.isDict)(_))throw new u.FormatError("PageLabel is not a dictionary.");if(_.has("Type")&&!(0,l.isName)(_.get("Type"),"PageLabel"))throw new u.FormatError("Invalid type in PageLabel dictionary.");if(_.has("S")){var k=_.get("S");if(!(0,l.isName)(k))throw new u.FormatError("Invalid style in PageLabel dictionary.");o=k.name}else o=null;if(_.has("P")){var C=_.get("P");if(!(0,u.isString)(C))throw new u.FormatError("Invalid prefix in PageLabel dictionary.");d=(0,u.stringToPDFString)(C)}else d="";if(_.has("St")){var w=_.get("St");if(!(Number.isInteger(w)&&w>=1))throw new u.FormatError("Invalid start in PageLabel dictionary.");y=w}else y=1}switch(o){case"D":g=y;break;case"R":case"r":g=(0,c.toRomanNumerals)(y,"r"===o);break;case"A":case"a":for(var x="a"===o?97:65,O=y-1,T=String.fromCharCode(x+O%26),R=[],E=0,M=O/26|0;E<=M;E++)R.push(T);g=R.join("");break;default:if(o)throw new u.FormatError('Invalid style "'.concat(o,'" in PageLabel dictionary.'));g=""}r[v]=d+g;y++}return r}},{key:"pageLayout",get:function get(){var t=this._catDict.get("PageLayout"),r="";if((0,l.isName)(t))switch(t.name){case"SinglePage":case"OneColumn":case"TwoColumnLeft":case"TwoColumnRight":case"TwoPageLeft":case"TwoPageRight":r=t.name}return(0,u.shadow)(this,"pageLayout",r)}},{key:"pageMode",get:function get(){var t=this._catDict.get("PageMode"),r="UseNone";if((0,l.isName)(t))switch(t.name){case"UseNone":case"UseOutlines":case"UseThumbs":case"FullScreen":case"UseOC":case"UseAttachments":r=t.name}return(0,u.shadow)(this,"pageMode",r)}},{key:"viewerPreferences",get:function get(){var t=this,r={HideToolbar:u.isBool,HideMenubar:u.isBool,HideWindowUI:u.isBool,FitWindow:u.isBool,CenterWindow:u.isBool,DisplayDocTitle:u.isBool,NonFullScreenPageMode:l.isName,Direction:l.isName,ViewArea:l.isName,ViewClip:l.isName,PrintArea:l.isName,PrintClip:l.isName,PrintScaling:l.isName,Duplex:l.isName,PickTrayByPDFSize:u.isBool,PrintPageRange:Array.isArray,NumCopies:Number.isInteger},o=this._catDict.get("ViewerPreferences"),c=null;if((0,l.isDict)(o))for(var h in r)if(o.has(h)){var d=o.get(h);if(r[h](d)){var m=void 0;switch(h){case"NonFullScreenPageMode":switch(d.name){case"UseNone":case"UseOutlines":case"UseThumbs":case"UseOC":m=d.name;break;default:m="UseNone"}break;case"Direction":switch(d.name){case"L2R":case"R2L":m=d.name;break;default:m="L2R"}break;case"ViewArea":case"ViewClip":case"PrintArea":case"PrintClip":switch(d.name){case"MediaBox":case"CropBox":case"BleedBox":case"TrimBox":case"ArtBox":m=d.name;break;default:m="CropBox"}break;case"PrintScaling":switch(d.name){case"None":case"AppDefault":m=d.name;break;default:m="AppDefault"}break;case"Duplex":switch(d.name){case"Simplex":case"DuplexFlipShortEdge":case"DuplexFlipLongEdge":m=d.name;break;default:m="None"}break;case"PrintPageRange":if(d.length%2!=0)break;d.every((function(r,o,l){return Number.isInteger(r)&&r>0&&(0===o||r>=l[o-1])&&r<=t.numPages}))&&(m=d);break;case"NumCopies":d>0&&(m=d);break;default:if("boolean"!=typeof d)throw new u.FormatError("viewerPreferences - expected a boolean value for: ".concat(h));m=d}if(void 0!==m){c||(c=Object.create(null));c[h]=m}else(0,u.info)('Bad value in ViewerPreferences for "'.concat(h,'".'))}else(0,u.info)('Bad value in ViewerPreferences for "'.concat(h,'".'))}return(0,u.shadow)(this,"viewerPreferences",c)}},{key:"openAction",get:function get(){var t=this._catDict.get("OpenAction"),r=Object.create(null);if((0,l.isDict)(t)){var o=new l.Dict(this.xref);o.set("A",t);var c={url:null,dest:null,action:null};Catalog.parseDestDictionary({destDict:o,resultObj:c});Array.isArray(c.dest)?r.dest=c.dest:c.action&&(r.action=c.action)}else Array.isArray(t)&&(r.dest=t);return(0,u.shadow)(this,"openAction",(0,u.objectSize)(r)>0?r:null)}},{key:"attachments",get:function get(){var t=this._catDict.get("Names"),r=null;if(t instanceof l.Dict&&t.has("EmbeddedFiles")){var o,c=_createForOfIteratorHelper(new h.NameTree(t.getRaw("EmbeddedFiles"),this.xref).getAll());try{for(c.s();!(o=c.n()).done;){var d=_slicedToArray(o.value,2),g=d[0],y=d[1],v=new m.FileSpec(y,this.xref);r||(r=Object.create(null));r[(0,u.stringToPDFString)(g)]=v.serializable}}catch(t){c.e(t)}finally{c.f()}}return(0,u.shadow)(this,"attachments",r)}},{key:"xfaImages",get:function get(){var t=this._catDict.get("Names"),r=null;if(t instanceof l.Dict&&t.has("XFAImages")){var o,c=_createForOfIteratorHelper(new h.NameTree(t.getRaw("XFAImages"),this.xref).getAll());try{for(c.s();!(o=c.n()).done;){var d=_slicedToArray(o.value,2),m=d[0],g=d[1];r||(r=new l.Dict(this.xref));r.set(m,g)}}catch(t){c.e(t)}finally{c.f()}}return(0,u.shadow)(this,"xfaImages",r)}},{key:"_collectJavaScript",value:function _collectJavaScript(){var t=this._catDict.get("Names"),r=null;function appendIfJavaScriptDict(t,o){if(o instanceof l.Dict&&(0,l.isName)(o.get("S"),"JavaScript")){var c=o.get("JS");if((0,l.isStream)(c))c=c.getString();else if("string"!=typeof c)return;null===r&&(r=new Map);r.set(t,(0,u.stringToPDFString)(c))}}if(t instanceof l.Dict&&t.has("JavaScript")){var o,c=_createForOfIteratorHelper(new h.NameTree(t.getRaw("JavaScript"),this.xref).getAll());try{for(c.s();!(o=c.n()).done;){var d=_slicedToArray(o.value,2);appendIfJavaScriptDict(d[0],d[1])}}catch(t){c.e(t)}finally{c.f()}}var m=this._catDict.get("OpenAction");m&&appendIfJavaScriptDict("OpenAction",m);return r}},{key:"javaScript",get:function get(){var t=this._collectJavaScript();return(0,u.shadow)(this,"javaScript",t?_toConsumableArray(t.values()):null)}},{key:"jsActions",get:function get(){var t=this._collectJavaScript(),r=(0,c.collectActions)(this.xref,this._catDict,u.DocumentActionEventType);if(t){r||(r=Object.create(null));var o,l=_createForOfIteratorHelper(t);try{for(l.s();!(o=l.n()).done;){var h=_slicedToArray(o.value,2),d=h[0],m=h[1];d in r?r[d].push(m):r[d]=[m]}}catch(t){l.e(t)}finally{l.f()}}return(0,u.shadow)(this,"jsActions",r)}},{key:"fontFallback",value:function fontFallback(t,r){var o=[];this.fontCache.forEach((function(t){o.push(t)}));return Promise.all(o).then((function(o){var l,c=_createForOfIteratorHelper(o);try{for(c.s();!(l=c.n()).done;){var u=l.value;if(u.loadedName===t){u.fallback(r);return}}}catch(t){c.e(t)}finally{c.f()}}))}},{key:"cleanup",value:function cleanup(){var t=this,r=arguments.length>0&&void 0!==arguments[0]&&arguments[0];(0,l.clearPrimitiveCaches)();this.globalImageCache.clear(r);this.pageKidsCountCache.clear();this.pageIndexCache.clear();this.nonBlendModesSet.clear();var o=[];this.fontCache.forEach((function(t){o.push(t)}));return Promise.all(o).then((function(r){var o,l=_createForOfIteratorHelper(r);try{for(l.s();!(o=l.n()).done;){delete o.value.dict.cacheKey}}catch(t){l.e(t)}finally{l.f()}t.fontCache.clear();t.builtInCMapCache.clear();t.standardFontDataCache.clear()}))}},{key:"getPageDict",value:function getPageDict(t){var r,o=(0,u.createPromiseCapability)(),c=[this._catDict.getRaw("Pages")],h=new l.RefSet,d=this.xref,m=this.pageKidsCountCache,g=0;!function next(){for(var y=function _loop(){var y=c.pop();if((0,l.isRef)(y)){if((r=m.get(y))>0&&g+r<t){g+=r;return"continue"}if(h.has(y)){o.reject(new u.FormatError("Pages tree contains circular reference."));return{v:void 0}}h.put(y);d.fetchAsync(y).then((function(r){if((0,l.isDict)(r,"Page")||(0,l.isDict)(r)&&!r.has("Kids"))if(t===g){y&&!m.has(y)&&m.put(y,1);o.resolve([r,y])}else{g++;next()}else{c.push(r);next()}}),o.reject);return{v:void 0}}if(!(0,l.isDict)(y)){o.reject(new u.FormatError("Page dictionary kid reference points to wrong type of object."));return{v:void 0}}r=y.get("Count");if(Number.isInteger(r)&&r>=0){var v=y.objId;v&&!m.has(v)&&m.put(v,r);if(g+r<=t){g+=r;return"continue"}}var S=y.get("Kids");if(!Array.isArray(S)){if((0,l.isName)(y.get("Type"),"Page")||!y.has("Type")&&y.has("Contents")){if(g===t){o.resolve([y,null]);return{v:void 0}}g++;return"continue"}o.reject(new u.FormatError("Page dictionary kids object is not an array."));return{v:void 0}}for(var _=S.length-1;_>=0;_--)c.push(S[_])};c.length;){var v=y();if("continue"!==v&&"object"===_typeof(v))return v.v}o.reject(new Error("Page index ".concat(t," not found.")))}();return o.promise}},{key:"getPageIndex",value:function getPageIndex(t){var r=this,o=this.pageIndexCache.get(t);if(void 0!==o)return Promise.resolve(o);var c=this.xref;var h=0;return function next(o){return function pagesBeforeRef(r){var o,h=0;return c.fetchAsync(r).then((function(c){if((0,l.isRefsEqual)(r,t)&&!(0,l.isDict)(c,"Page")&&(!(0,l.isDict)(c)||c.has("Type")||!c.has("Contents")))throw new u.FormatError("The reference does not point to a /Page dictionary.");if(!c)return null;if(!(0,l.isDict)(c))throw new u.FormatError("Node must be a dictionary.");o=c.getRaw("Parent");return c.getAsync("Parent")})).then((function(t){if(!t)return null;if(!(0,l.isDict)(t))throw new u.FormatError("Parent must be a dictionary.");return t.getAsync("Kids")})).then((function(t){if(!t)return null;for(var d=[],m=!1,g=0,y=t.length;g<y;g++){var v=t[g];if(!(0,l.isRef)(v))throw new u.FormatError("Kid must be a reference.");if((0,l.isRefsEqual)(v,r)){m=!0;break}d.push(c.fetchAsync(v).then((function(t){if(!(0,l.isDict)(t))throw new u.FormatError("Kid node must be a dictionary.");t.has("Count")?h+=t.get("Count"):h++})))}if(!m)throw new u.FormatError("Kid reference not found in parent's kids.");return Promise.all(d).then((function(){return[h,o]}))}))}(o).then((function(o){if(!o){r.pageIndexCache.put(t,h);return h}var l=_slicedToArray(o,2),c=l[0],u=l[1];h+=c;return next(u)}))}(t)}}],[{key:"parseDestDictionary",value:function parseDestDictionary(t){var r=t.destDict;if((0,l.isDict)(r)){var o=t.resultObj;if("object"===_typeof(o)){var h,d,m=t.docBaseUrl||null,g=r.get("A");if(!(0,l.isDict)(g))if(r.has("Dest"))g=r.get("Dest");else{g=r.get("AA");(0,l.isDict)(g)&&(g.has("D")?g=g.get("D"):g.has("U")&&(g=g.get("U")))}if((0,l.isDict)(g)){var y=g.get("S");if(!(0,l.isName)(y)){(0,u.warn)("parseDestDictionary: Invalid type in Action dictionary.");return}var v=y.name;switch(v){case"ResetForm":var S,_=g.get("Flags"),k=0==(1&((0,u.isNum)(_)?_:0)),C=[],w=[],x=_createForOfIteratorHelper(g.get("Fields")||[]);try{for(x.s();!(S=x.n()).done;){var O=S.value;(0,l.isRef)(O)?w.push(O.toString()):(0,u.isString)(O)&&C.push((0,u.stringToPDFString)(O))}}catch(t){x.e(t)}finally{x.f()}o.resetForm={fields:C,refs:w,include:k};break;case"URI":(h=g.get("URI"))instanceof l.Name&&(h="/"+h.name);break;case"GoTo":d=g.get("D");break;case"Launch":case"GoToR":var T=g.get("F");(0,l.isDict)(T)?h=T.get("F")||null:(0,u.isString)(T)&&(h=T);var R=g.get("D");if(R){(0,l.isName)(R)&&(R=R.name);if((0,u.isString)(h)){var E=h.split("#")[0];(0,u.isString)(R)?h=E+"#"+R:Array.isArray(R)&&(h=E+"#"+JSON.stringify(R))}}var M=g.get("NewWindow");(0,u.isBool)(M)&&(o.newWindow=M);break;case"Named":var D=g.get("N");(0,l.isName)(D)&&(o.action=D.name);break;case"JavaScript":var j,L=g.get("JS");(0,l.isStream)(L)?j=L.getString():(0,u.isString)(L)&&(j=L);var N=j&&(0,c.recoverJsURL)((0,u.stringToPDFString)(j));if(N){h=N.url;o.newWindow=N.newWindow;break}default:if("JavaScript"===v||"SubmitForm"===v)break;(0,u.warn)('parseDestDictionary - unsupported action: "'.concat(v,'".'))}}else r.has("Dest")&&(d=r.get("Dest"));if((0,u.isString)(h)){var U=(0,u.createValidAbsoluteUrl)(h,m,{addDefaultProtocol:!0,tryConvertEncoding:!0});U&&(o.url=U.href);o.unsafeUrl=h}if(d){(0,l.isName)(d)&&(d=d.name);((0,u.isString)(d)||Array.isArray(d))&&(o.dest=d)}}else(0,u.warn)("parseDestDictionary: `resultObj` must be an object.")}else(0,u.warn)("parseDestDictionary: `destDict` must be a dictionary.")}}]);return Catalog}();r.Catalog=S},(t,r,o)=>{"use strict";function _typeof(t){_typeof="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function _typeof(t){return typeof t}:function _typeof(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t};return _typeof(t)}Object.defineProperty(r,"__esModule",{value:!0});r.NumberTree=r.NameTree=void 0;var l=o(4),c=o(118);function _inherits(t,r){if("function"!=typeof r&&null!==r)throw new TypeError("Super expression must either be null or a function");t.prototype=Object.create(r&&r.prototype,{constructor:{value:t,writable:!0,configurable:!0}});r&&_setPrototypeOf(t,r)}function _setPrototypeOf(t,r){_setPrototypeOf=Object.setPrototypeOf||function _setPrototypeOf(t,r){t.__proto__=r;return t};return _setPrototypeOf(t,r)}function _createSuper(t){var r=function _isNativeReflectConstruct(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){})));return!0}catch(t){return!1}}();return function _createSuperInternal(){var o,l=_getPrototypeOf(t);if(r){var c=_getPrototypeOf(this).constructor;o=Reflect.construct(l,arguments,c)}else o=l.apply(this,arguments);return _possibleConstructorReturn(this,o)}}function _possibleConstructorReturn(t,r){if(r&&("object"===_typeof(r)||"function"==typeof r))return r;if(void 0!==r)throw new TypeError("Derived constructors may only return object or undefined");return function _assertThisInitialized(t){if(void 0===t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return t}(t)}function _getPrototypeOf(t){_getPrototypeOf=Object.setPrototypeOf?Object.getPrototypeOf:function _getPrototypeOf(t){return t.__proto__||Object.getPrototypeOf(t)};return _getPrototypeOf(t)}function _classCallCheck(t,r){if(!(t instanceof r))throw new TypeError("Cannot call a class as a function")}function _defineProperties(t,r){for(var o=0;o<r.length;o++){var l=r[o];l.enumerable=l.enumerable||!1;l.configurable=!0;"value"in l&&(l.writable=!0);Object.defineProperty(t,l.key,l)}}var u=function(){function NameOrNumberTree(t,r,o){_classCallCheck(this,NameOrNumberTree);this.constructor===NameOrNumberTree&&(0,l.unreachable)("Cannot initialize NameOrNumberTree.");this.root=t;this.xref=r;this._type=o}!function _createClass(t,r,o){r&&_defineProperties(t.prototype,r);o&&_defineProperties(t,o);return t}(NameOrNumberTree,[{key:"getAll",value:function getAll(){var t=new Map;if(!this.root)return t;var r=this.xref,o=new c.RefSet;o.put(this.root);for(var u=[this.root];u.length>0;){var h=r.fetchIfRef(u.shift());if((0,c.isDict)(h))if(h.has("Kids"))for(var d=h.get("Kids"),m=0,g=d.length;m<g;m++){var y=d[m];if(o.has(y))throw new l.FormatError('Duplicate entry in "'.concat(this._type,'" tree.'));u.push(y);o.put(y)}else{var v=h.get(this._type);if(Array.isArray(v))for(var S=0,_=v.length;S<_;S+=2)t.set(r.fetchIfRef(v[S]),r.fetchIfRef(v[S+1]))}}return t}},{key:"get",value:function get(t){if(!this.root)return null;for(var r=this.xref,o=r.fetchIfRef(this.root),c=0;o.has("Kids");){if(++c>10){(0,l.warn)('Search depth limit reached for "'.concat(this._type,'" tree.'));return null}var u=o.get("Kids");if(!Array.isArray(u))return null;for(var h=0,d=u.length-1;h<=d;){var m=h+d>>1,g=r.fetchIfRef(u[m]).get("Limits");if(t<r.fetchIfRef(g[0]))d=m-1;else{if(!(t>r.fetchIfRef(g[1]))){o=r.fetchIfRef(u[m]);break}h=m+1}}if(h>d)return null}var y=o.get(this._type);if(Array.isArray(y))for(var v=0,S=y.length-2;v<=S;){var _=v+S>>1,k=_+(1&_),C=r.fetchIfRef(y[k]);if(t<C)S=k-2;else{if(!(t>C))return r.fetchIfRef(y[k+1]);v=k+2}}return null}}]);return NameOrNumberTree}(),h=function(t){_inherits(NameTree,t);var r=_createSuper(NameTree);function NameTree(t,o){_classCallCheck(this,NameTree);return r.call(this,t,o,"Names")}return NameTree}(u);r.NameTree=h;var d=function(t){_inherits(NumberTree,t);var r=_createSuper(NumberTree);function NumberTree(t,o){_classCallCheck(this,NumberTree);return r.call(this,t,o,"Nums")}return NumberTree}(u);r.NumberTree=d},(t,r,o)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});r.FileSpec=void 0;var l=o(118),c=o(4);function _defineProperties(t,r){for(var o=0;o<r.length;o++){var l=r[o];l.enumerable=l.enumerable||!1;l.configurable=!0;"value"in l&&(l.writable=!0);Object.defineProperty(t,l.key,l)}}function pickPlatformItem(t){return t.has("UF")?t.get("UF"):t.has("F")?t.get("F"):t.has("Unix")?t.get("Unix"):t.has("Mac")?t.get("Mac"):t.has("DOS")?t.get("DOS"):null}var u=function(){function FileSpec(t,r){!function _classCallCheck(t,r){if(!(t instanceof r))throw new TypeError("Cannot call a class as a function")}(this,FileSpec);if(t&&(0,l.isDict)(t)){this.xref=r;this.root=t;t.has("FS")&&(this.fs=t.get("FS"));this.description=t.has("Desc")?(0,c.stringToPDFString)(t.get("Desc")):"";t.has("RF")&&(0,c.warn)("Related file specifications are not supported");this.contentAvailable=!0;if(!t.has("EF")){this.contentAvailable=!1;(0,c.warn)("Non-embedded file specifications are not supported")}}}!function _createClass(t,r,o){r&&_defineProperties(t.prototype,r);o&&_defineProperties(t,o);return t}(FileSpec,[{key:"filename",get:function get(){if(!this._filename&&this.root){var t=pickPlatformItem(this.root)||"unnamed";this._filename=(0,c.stringToPDFString)(t).replace(/\\\\/g,"\\").replace(/\\\//g,"/").replace(/\\/g,"/")}return this._filename}},{key:"content",get:function get(){if(!this.contentAvailable)return null;!this.contentRef&&this.root&&(this.contentRef=pickPlatformItem(this.root.get("EF")));var t=null;if(this.contentRef){var r=this.xref.fetchIfRef(this.contentRef);r&&(0,l.isStream)(r)?t=r.getBytes():(0,c.warn)("Embedded file specification points to non-existing/invalid content")}else(0,c.warn)("Embedded file specification does not have a content");return t}},{key:"serializable",get:function get(){return{filename:this.filename,content:this.content}}}]);return FileSpec}();r.FileSpec=u},(t,r,o)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});r.MetadataParser=void 0;var l=o(181);function _createForOfIteratorHelper(t,r){var o="undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(!o){if(Array.isArray(t)||(o=_unsupportedIterableToArray(t))||r&&t&&"number"==typeof t.length){o&&(t=o);var l=0,c=function F(){};return{s:c,n:function n(){return l>=t.length?{done:!0}:{done:!1,value:t[l++]}},e:function e(t){throw t},f:c}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var u,h=!0,d=!1;return{s:function s(){o=o.call(t)},n:function n(){var t=o.next();h=t.done;return t},e:function e(t){d=!0;u=t},f:function f(){try{h||null==o.return||o.return()}finally{if(d)throw u}}}}function _slicedToArray(t,r){return function _arrayWithHoles(t){if(Array.isArray(t))return t}(t)||function _iterableToArrayLimit(t,r){var o=null==t?null:"undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(null==o)return;var l,c,u=[],h=!0,d=!1;try{for(o=o.call(t);!(h=(l=o.next()).done);h=!0){u.push(l.value);if(r&&u.length===r)break}}catch(t){d=!0;c=t}finally{try{h||null==o.return||o.return()}finally{if(d)throw c}}return u}(t,r)||_unsupportedIterableToArray(t,r)||function _nonIterableRest(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function _unsupportedIterableToArray(t,r){if(t){if("string"==typeof t)return _arrayLikeToArray(t,r);var o=Object.prototype.toString.call(t).slice(8,-1);"Object"===o&&t.constructor&&(o=t.constructor.name);return"Map"===o||"Set"===o?Array.from(t):"Arguments"===o||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(o)?_arrayLikeToArray(t,r):void 0}}function _arrayLikeToArray(t,r){(null==r||r>t.length)&&(r=t.length);for(var o=0,l=new Array(r);o<r;o++)l[o]=t[o];return l}function _defineProperties(t,r){for(var o=0;o<r.length;o++){var l=r[o];l.enumerable=l.enumerable||!1;l.configurable=!0;"value"in l&&(l.writable=!0);Object.defineProperty(t,l.key,l)}}var c=function(){function MetadataParser(t){!function _classCallCheck(t,r){if(!(t instanceof r))throw new TypeError("Cannot call a class as a function")}(this,MetadataParser);t=this._repair(t);var r=new l.SimpleXMLParser({lowerCaseName:!0}).parseFromString(t);this._metadataMap=new Map;this._data=t;r&&this._parse(r)}!function _createClass(t,r,o){r&&_defineProperties(t.prototype,r);o&&_defineProperties(t,o);return t}(MetadataParser,[{key:"_repair",value:function _repair(t){return t.replace(/^[^<]+/,"").replace(/>\\376\\377([^<]+)/g,(function(t,r){for(var o=r.replace(/\\([0-3])([0-7])([0-7])/g,(function(t,r,o,l){return String.fromCharCode(64*r+8*o+1*l)})).replace(/&(amp|apos|gt|lt|quot);/g,(function(t,r){switch(r){case"amp":return"&";case"apos":return"'";case"gt":return">";case"lt":return"<";case"quot":return'"'}throw new Error("_repair: ".concat(r," isn't defined."))})),l=[],c=0,u=o.length;c<u;c+=2){var h=256*o.charCodeAt(c)+o.charCodeAt(c+1);h>=32&&h<127&&60!==h&&62!==h&&38!==h?l.push(String.fromCharCode(h)):l.push("&#x"+(65536+h).toString(16).substring(1)+";")}return">"+l.join("")}))}},{key:"_getSequence",value:function _getSequence(t){var r=t.nodeName;return"rdf:bag"!==r&&"rdf:seq"!==r&&"rdf:alt"!==r?null:t.childNodes.filter((function(t){return"rdf:li"===t.nodeName}))}},{key:"_parseArray",value:function _parseArray(t){if(t.hasChildNodes()){var r=_slicedToArray(t.childNodes,1)[0],o=this._getSequence(r)||[];this._metadataMap.set(t.nodeName,o.map((function(t){return t.textContent.trim()})))}}},{key:"_parse",value:function _parse(t){var r=t.documentElement;if("rdf:rdf"!==r.nodeName){r=r.firstChild;for(;r&&"rdf:rdf"!==r.nodeName;)r=r.nextSibling}if(r&&"rdf:rdf"===r.nodeName&&r.hasChildNodes()){var o,l=_createForOfIteratorHelper(r.childNodes);try{for(l.s();!(o=l.n()).done;){var c=o.value;if("rdf:description"===c.nodeName){var u,h=_createForOfIteratorHelper(c.childNodes);try{for(h.s();!(u=h.n()).done;){var d=u.value,m=d.nodeName;switch(m){case"#text":continue;case"dc:creator":case"dc:subject":this._parseArray(d);continue}this._metadataMap.set(m,d.textContent.trim())}}catch(t){h.e(t)}finally{h.f()}}}}catch(t){l.e(t)}finally{l.f()}}}},{key:"serializable",get:function get(){return{parsedData:this._metadataMap,rawData:this._data}}}]);return MetadataParser}();r.MetadataParser=c},(t,r,o)=>{"use strict";function _typeof(t){_typeof="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function _typeof(t){return typeof t}:function _typeof(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t};return _typeof(t)}Object.defineProperty(r,"__esModule",{value:!0});r.XMLParserErrorCode=r.XMLParserBase=r.SimpleXMLParser=r.SimpleDOMNode=void 0;var l=o(122);function _setPrototypeOf(t,r){_setPrototypeOf=Object.setPrototypeOf||function _setPrototypeOf(t,r){t.__proto__=r;return t};return _setPrototypeOf(t,r)}function _createSuper(t){var r=function _isNativeReflectConstruct(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){})));return!0}catch(t){return!1}}();return function _createSuperInternal(){var o,l=_getPrototypeOf(t);if(r){var c=_getPrototypeOf(this).constructor;o=Reflect.construct(l,arguments,c)}else o=l.apply(this,arguments);return _possibleConstructorReturn(this,o)}}function _possibleConstructorReturn(t,r){if(r&&("object"===_typeof(r)||"function"==typeof r))return r;if(void 0!==r)throw new TypeError("Derived constructors may only return object or undefined");return function _assertThisInitialized(t){if(void 0===t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return t}(t)}function _getPrototypeOf(t){_getPrototypeOf=Object.setPrototypeOf?Object.getPrototypeOf:function _getPrototypeOf(t){return t.__proto__||Object.getPrototypeOf(t)};return _getPrototypeOf(t)}function _createForOfIteratorHelper(t,r){var o="undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(!o){if(Array.isArray(t)||(o=_unsupportedIterableToArray(t))||r&&t&&"number"==typeof t.length){o&&(t=o);var l=0,c=function F(){};return{s:c,n:function n(){return l>=t.length?{done:!0}:{done:!1,value:t[l++]}},e:function e(t){throw t},f:c}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var u,h=!0,d=!1;return{s:function s(){o=o.call(t)},n:function n(){var t=o.next();h=t.done;return t},e:function e(t){d=!0;u=t},f:function f(){try{h||null==o.return||o.return()}finally{if(d)throw u}}}}function _slicedToArray(t,r){return function _arrayWithHoles(t){if(Array.isArray(t))return t}(t)||function _iterableToArrayLimit(t,r){var o=null==t?null:"undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(null==o)return;var l,c,u=[],h=!0,d=!1;try{for(o=o.call(t);!(h=(l=o.next()).done);h=!0){u.push(l.value);if(r&&u.length===r)break}}catch(t){d=!0;c=t}finally{try{h||null==o.return||o.return()}finally{if(d)throw c}}return u}(t,r)||_unsupportedIterableToArray(t,r)||function _nonIterableRest(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function _unsupportedIterableToArray(t,r){if(t){if("string"==typeof t)return _arrayLikeToArray(t,r);var o=Object.prototype.toString.call(t).slice(8,-1);"Object"===o&&t.constructor&&(o=t.constructor.name);return"Map"===o||"Set"===o?Array.from(t):"Arguments"===o||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(o)?_arrayLikeToArray(t,r):void 0}}function _arrayLikeToArray(t,r){(null==r||r>t.length)&&(r=t.length);for(var o=0,l=new Array(r);o<r;o++)l[o]=t[o];return l}function _classCallCheck(t,r){if(!(t instanceof r))throw new TypeError("Cannot call a class as a function")}function _defineProperties(t,r){for(var o=0;o<r.length;o++){var l=r[o];l.enumerable=l.enumerable||!1;l.configurable=!0;"value"in l&&(l.writable=!0);Object.defineProperty(t,l.key,l)}}function _createClass(t,r,o){r&&_defineProperties(t.prototype,r);o&&_defineProperties(t,o);return t}var c={NoError:0,EndOfDocument:-1,UnterminatedCdat:-2,UnterminatedXmlDeclaration:-3,UnterminatedDoctypeDeclaration:-4,UnterminatedComment:-5,MalformedElement:-6,OutOfMemory:-7,UnterminatedAttributeValue:-8,UnterminatedElement:-9,ElementNeverBegun:-10};r.XMLParserErrorCode=c;function isWhitespace(t,r){var o=t[r];return" "===o||"\n"===o||"\r"===o||"\t"===o}var u=function(){function XMLParserBase(){_classCallCheck(this,XMLParserBase)}_createClass(XMLParserBase,[{key:"_resolveEntities",value:function _resolveEntities(t){var r=this;return t.replace(/&([^;]+);/g,(function(t,o){if("#x"===o.substring(0,2))return String.fromCodePoint(parseInt(o.substring(2),16));if("#"===o.substring(0,1))return String.fromCodePoint(parseInt(o.substring(1),10));switch(o){case"lt":return"<";case"gt":return">";case"amp":return"&";case"quot":return'"';case"apos":return"'"}return r.onResolveEntity(o)}))}},{key:"_parseContent",value:function _parseContent(t,r){var o=[],l=r;function skipWs(){for(;l<t.length&&isWhitespace(t,l);)++l}for(;l<t.length&&!isWhitespace(t,l)&&">"!==t[l]&&"/"!==t[l];)++l;var c=t.substring(r,l);skipWs();for(;l<t.length&&">"!==t[l]&&"/"!==t[l]&&"?"!==t[l];){skipWs();for(var u,h="";l<t.length&&!isWhitespace(t,l)&&"="!==t[l];){h+=t[l];++l}skipWs();if("="!==t[l])return null;++l;skipWs();var d=t[l];if('"'!==d&&"'"!==d)return null;var m=t.indexOf(d,++l);if(m<0)return null;u=t.substring(l,m);o.push({name:h,value:this._resolveEntities(u)});l=m+1;skipWs()}return{name:c,attributes:o,parsed:l-r}}},{key:"_parseProcessingInstruction",value:function _parseProcessingInstruction(t,r){var o=r;for(;o<t.length&&!isWhitespace(t,o)&&">"!==t[o]&&"?"!==t[o]&&"/"!==t[o];)++o;var l=t.substring(r,o);!function skipWs(){for(;o<t.length&&isWhitespace(t,o);)++o}();for(var c=o;o<t.length&&("?"!==t[o]||">"!==t[o+1]);)++o;return{name:l,value:t.substring(c,o),parsed:o-r}}},{key:"parseXml",value:function parseXml(t){for(var r=0;r<t.length;){var o=r;if("<"===t[r]){var l=void 0;switch(t[++o]){case"/":++o;if((l=t.indexOf(">",o))<0){this.onError(c.UnterminatedElement);return}this.onEndElement(t.substring(o,l));o=l+1;break;case"?":++o;var u=this._parseProcessingInstruction(t,o);if("?>"!==t.substring(o+u.parsed,o+u.parsed+2)){this.onError(c.UnterminatedXmlDeclaration);return}this.onPi(u.name,u.value);o+=u.parsed+2;break;case"!":if("--"===t.substring(o+1,o+3)){if((l=t.indexOf("--\x3e",o+3))<0){this.onError(c.UnterminatedComment);return}this.onComment(t.substring(o+3,l));o=l+3}else if("[CDATA["===t.substring(o+1,o+8)){if((l=t.indexOf("]]>",o+8))<0){this.onError(c.UnterminatedCdat);return}this.onCdata(t.substring(o+8,l));o=l+3}else{if("DOCTYPE"!==t.substring(o+1,o+8)){this.onError(c.MalformedElement);return}var h=t.indexOf("[",o+8),d=!1;if((l=t.indexOf(">",o+8))<0){this.onError(c.UnterminatedDoctypeDeclaration);return}if(h>0&&l>h){if((l=t.indexOf("]>",o+8))<0){this.onError(c.UnterminatedDoctypeDeclaration);return}d=!0}var m=t.substring(o+8,l+(d?1:0));this.onDoctype(m);o=l+(d?2:1)}break;default:var g=this._parseContent(t,o);if(null===g){this.onError(c.MalformedElement);return}var y=!1;if("/>"===t.substring(o+g.parsed,o+g.parsed+2))y=!0;else if(">"!==t.substring(o+g.parsed,o+g.parsed+1)){this.onError(c.UnterminatedElement);return}this.onBeginElement(g.name,g.attributes,y);o+=g.parsed+(y?2:1)}}else{for(;o<t.length&&"<"!==t[o];)o++;var v=t.substring(r,o);this.onText(this._resolveEntities(v))}r=o}}},{key:"onResolveEntity",value:function onResolveEntity(t){return"&".concat(t,";")}},{key:"onPi",value:function onPi(t,r){}},{key:"onComment",value:function onComment(t){}},{key:"onCdata",value:function onCdata(t){}},{key:"onDoctype",value:function onDoctype(t){}},{key:"onText",value:function onText(t){}},{key:"onBeginElement",value:function onBeginElement(t,r,o){}},{key:"onEndElement",value:function onEndElement(t){}},{key:"onError",value:function onError(t){}}]);return XMLParserBase}();r.XMLParserBase=u;var h=function(){function SimpleDOMNode(t,r){_classCallCheck(this,SimpleDOMNode);this.nodeName=t;this.nodeValue=r;Object.defineProperty(this,"parentNode",{value:null,writable:!0})}_createClass(SimpleDOMNode,[{key:"firstChild",get:function get(){return this.childNodes&&this.childNodes[0]}},{key:"nextSibling",get:function get(){var t=this.parentNode.childNodes;if(t){var r=t.indexOf(this);if(-1!==r)return t[r+1]}}},{key:"textContent",get:function get(){return this.childNodes?this.childNodes.map((function(t){return t.textContent})).join(""):this.nodeValue||""}},{key:"hasChildNodes",value:function hasChildNodes(){return this.childNodes&&this.childNodes.length>0}},{key:"searchNode",value:function searchNode(t,r){if(r>=t.length)return this;for(var o=t[r],l=[],c=this;;){if(o.name===c.nodeName){if(0!==o.pos){if(0===l.length)return null;var u,h=0,d=_createForOfIteratorHelper(_slicedToArray(l.pop(),1)[0].childNodes);try{for(d.s();!(u=d.n()).done;){var m=u.value;if(o.name===m.nodeName){if(h===o.pos)return m.searchNode(t,r+1);h++}}}catch(t){d.e(t)}finally{d.f()}return c.searchNode(t,r+1)}var g=c.searchNode(t,r+1);if(null!==g)return g}if(c.childNodes&&0!==c.childNodes.length){l.push([c,0]);c=c.childNodes[0]}else{if(0===l.length)return null;for(;0!==l.length;){var y=_slicedToArray(l.pop(),2),v=y[0],S=y[1]+1;if(S<v.childNodes.length){l.push([v,S]);c=v.childNodes[S];break}}if(0===l.length)return null}}}},{key:"dump",value:function dump(t){if("#text"!==this.nodeName){t.push("<".concat(this.nodeName));if(this.attributes){var r,o=_createForOfIteratorHelper(this.attributes);try{for(o.s();!(r=o.n()).done;){var c=r.value;t.push(" ".concat(c.name,'="').concat((0,l.encodeToXmlString)(c.value),'"'))}}catch(t){o.e(t)}finally{o.f()}}if(this.hasChildNodes()){t.push(">");var u,h=_createForOfIteratorHelper(this.childNodes);try{for(h.s();!(u=h.n()).done;){u.value.dump(t)}}catch(t){h.e(t)}finally{h.f()}t.push("</".concat(this.nodeName,">"))}else this.nodeValue?t.push(">".concat((0,l.encodeToXmlString)(this.nodeValue),"</").concat(this.nodeName,">")):t.push("/>")}else t.push((0,l.encodeToXmlString)(this.nodeValue))}}]);return SimpleDOMNode}();r.SimpleDOMNode=h;var d=function(t){!function _inherits(t,r){if("function"!=typeof r&&null!==r)throw new TypeError("Super expression must either be null or a function");t.prototype=Object.create(r&&r.prototype,{constructor:{value:t,writable:!0,configurable:!0}});r&&_setPrototypeOf(t,r)}(SimpleXMLParser,t);var r=_createSuper(SimpleXMLParser);function SimpleXMLParser(t){var o,l=t.hasAttributes,u=void 0!==l&&l,h=t.lowerCaseName,d=void 0!==h&&h;_classCallCheck(this,SimpleXMLParser);(o=r.call(this))._currentFragment=null;o._stack=null;o._errorCode=c.NoError;o._hasAttributes=u;o._lowerCaseName=d;return o}_createClass(SimpleXMLParser,[{key:"parseFromString",value:function parseFromString(t){this._currentFragment=[];this._stack=[];this._errorCode=c.NoError;this.parseXml(t);if(this._errorCode===c.NoError){var r=_slicedToArray(this._currentFragment,1)[0];if(r)return{documentElement:r}}}},{key:"onText",value:function onText(t){if(!function isWhitespaceString(t){for(var r=0,o=t.length;r<o;r++)if(!isWhitespace(t,r))return!1;return!0}(t)){var r=new h("#text",t);this._currentFragment.push(r)}}},{key:"onCdata",value:function onCdata(t){var r=new h("#text",t);this._currentFragment.push(r)}},{key:"onBeginElement",value:function onBeginElement(t,r,o){this._lowerCaseName&&(t=t.toLowerCase());var l=new h(t);l.childNodes=[];this._hasAttributes&&(l.attributes=r);this._currentFragment.push(l);if(!o){this._stack.push(this._currentFragment);this._currentFragment=l.childNodes}}},{key:"onEndElement",value:function onEndElement(t){this._currentFragment=this._stack.pop()||[];var r=this._currentFragment[this._currentFragment.length-1];if(r)for(var o=0,l=r.childNodes.length;o<l;o++)r.childNodes[o].parentNode=r}},{key:"onError",value:function onError(t){this._errorCode=t}}]);return SimpleXMLParser}(u);r.SimpleXMLParser=d},(t,r,o)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});r.StructTreeRoot=r.StructTreePage=void 0;var l=o(118),c=o(4),u=o(178);function _createForOfIteratorHelper(t,r){var o="undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(!o){if(Array.isArray(t)||(o=function _unsupportedIterableToArray(t,r){if(!t)return;if("string"==typeof t)return _arrayLikeToArray(t,r);var o=Object.prototype.toString.call(t).slice(8,-1);"Object"===o&&t.constructor&&(o=t.constructor.name);if("Map"===o||"Set"===o)return Array.from(t);if("Arguments"===o||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(o))return _arrayLikeToArray(t,r)}(t))||r&&t&&"number"==typeof t.length){o&&(t=o);var l=0,c=function F(){};return{s:c,n:function n(){return l>=t.length?{done:!0}:{done:!1,value:t[l++]}},e:function e(t){throw t},f:c}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var u,h=!0,d=!1;return{s:function s(){o=o.call(t)},n:function n(){var t=o.next();h=t.done;return t},e:function e(t){d=!0;u=t},f:function f(){try{h||null==o.return||o.return()}finally{if(d)throw u}}}}function _arrayLikeToArray(t,r){(null==r||r>t.length)&&(r=t.length);for(var o=0,l=new Array(r);o<r;o++)l[o]=t[o];return l}function _classCallCheck(t,r){if(!(t instanceof r))throw new TypeError("Cannot call a class as a function")}function _defineProperties(t,r){for(var o=0;o<r.length;o++){var l=r[o];l.enumerable=l.enumerable||!1;l.configurable=!0;"value"in l&&(l.writable=!0);Object.defineProperty(t,l.key,l)}}function _createClass(t,r,o){r&&_defineProperties(t.prototype,r);o&&_defineProperties(t,o);return t}var h="PAGE_CONTENT",d="STREAM_CONTENT",m="OBJECT",g="ELEMENT",y=function(){function StructTreeRoot(t){_classCallCheck(this,StructTreeRoot);this.dict=t;this.roleMap=new Map}_createClass(StructTreeRoot,[{key:"init",value:function init(){this.readRoleMap()}},{key:"readRoleMap",value:function readRoleMap(){var t=this,r=this.dict.get("RoleMap");(0,l.isDict)(r)&&r.forEach((function(r,o){(0,l.isName)(o)&&t.roleMap.set(r,o.name)}))}}]);return StructTreeRoot}();r.StructTreeRoot=y;var v=function(){function StructElementNode(t,r){_classCallCheck(this,StructElementNode);this.tree=t;this.dict=r;this.kids=[];this.parseKids()}_createClass(StructElementNode,[{key:"role",get:function get(){var t=this.dict.get("S"),r=(0,l.isName)(t)?t.name:"",o=this.tree.root;return o.roleMap.has(r)?o.roleMap.get(r):r}},{key:"parseKids",value:function parseKids(){var t=null,r=this.dict.getRaw("Pg");(0,l.isRef)(r)&&(t=r.toString());var o=this.dict.get("K");if(Array.isArray(o)){var c,u=_createForOfIteratorHelper(o);try{for(u.s();!(c=u.n()).done;){var h=c.value,d=this.parseKid(t,h);d&&this.kids.push(d)}}catch(t){u.e(t)}finally{u.f()}}else{var m=this.parseKid(t,o);m&&this.kids.push(m)}}},{key:"parseKid",value:function parseKid(t,r){if(Number.isInteger(r))return this.tree.pageDict.objId!==t?null:new S({type:h,mcid:r,pageObjId:t});var o=null;(0,l.isRef)(r)?o=this.dict.xref.fetch(r):(0,l.isDict)(r)&&(o=r);if(!o)return null;var c=o.getRaw("Pg");(0,l.isRef)(c)&&(t=c.toString());var u=(0,l.isName)(o.get("Type"))?o.get("Type").name:null;return"MCR"===u?this.tree.pageDict.objId!==t?null:new S({type:d,refObjId:(0,l.isRef)(o.getRaw("Stm"))?o.getRaw("Stm").toString():null,pageObjId:t,mcid:o.get("MCID")}):"OBJR"===u?this.tree.pageDict.objId!==t?null:new S({type:m,refObjId:(0,l.isRef)(o.getRaw("Obj"))?o.getRaw("Obj").toString():null,pageObjId:t}):new S({type:g,dict:o})}}]);return StructElementNode}(),S=function StructElement(t){var r=t.type,o=t.dict,l=void 0===o?null:o,c=t.mcid,u=void 0===c?null:c,h=t.pageObjId,d=void 0===h?null:h,m=t.refObjId,g=void 0===m?null:m;_classCallCheck(this,StructElement);this.type=r;this.dict=l;this.mcid=u;this.pageObjId=d;this.refObjId=g;this.parentNode=null},_=function(){function StructTreePage(t,r){_classCallCheck(this,StructTreePage);this.root=t;this.rootDict=t?t.dict:null;this.pageDict=r;this.nodes=[]}_createClass(StructTreePage,[{key:"parse",value:function parse(){if(this.root&&this.rootDict){var t=this.rootDict.get("ParentTree");if(t){var r=this.pageDict.get("StructParents");if(Number.isInteger(r)){var o=new u.NumberTree(t,this.rootDict.xref).get(r);if(Array.isArray(o)){var c,h=new Map,d=_createForOfIteratorHelper(o);try{for(d.s();!(c=d.n()).done;){var m=c.value;(0,l.isRef)(m)&&this.addNode(this.rootDict.xref.fetch(m),h)}}catch(t){d.e(t)}finally{d.f()}}}}}}},{key:"addNode",value:function addNode(t,r){var o=arguments.length>2&&void 0!==arguments[2]?arguments[2]:0;if(o>40){(0,c.warn)("StructTree MAX_DEPTH reached.");return null}if(r.has(t))return r.get(t);var u=new v(this,t);r.set(t,u);var h=t.get("P");if(!h||(0,l.isName)(h.get("Type"),"StructTreeRoot")){this.addTopLevelNode(t,u)||r.delete(t);return u}var d=this.addNode(h,r,o+1);if(!d)return u;var m,y=!1,S=_createForOfIteratorHelper(d.kids);try{for(S.s();!(m=S.n()).done;){var _=m.value;if(_.type===g&&_.dict===t){_.parentNode=u;y=!0}}}catch(t){S.e(t)}finally{S.f()}y||r.delete(t);return u}},{key:"addTopLevelNode",value:function addTopLevelNode(t,r){var o=this.rootDict.get("K");if(!o)return!1;if((0,l.isDict)(o)){if(o.objId!==t.objId)return!1;this.nodes[0]=r;return!0}if(!Array.isArray(o))return!0;for(var c=!1,u=0;u<o.length;u++){var h=o[u];if(h&&h.toString()===t.objId){this.nodes[u]=r;c=!0}}return c}},{key:"serializable",get:function get(){function nodeToSerializable(t,r){var o=arguments.length>2&&void 0!==arguments[2]?arguments[2]:0;if(o>40)(0,c.warn)("StructTree too deep to be fully serialized.");else{var l=Object.create(null);l.role=t.role;l.children=[];r.children.push(l);var u=t.dict.get("Alt");(0,c.isString)(u)&&(l.alt=(0,c.stringToPDFString)(u));var y,v=_createForOfIteratorHelper(t.kids);try{for(v.s();!(y=v.n()).done;){var S=y.value,_=S.type===g?S.parentNode:null;_?nodeToSerializable(_,l,o+1):S.type===h||S.type===d?l.children.push({type:"content",id:"page".concat(S.pageObjId,"_mcid").concat(S.mcid)}):S.type===m&&l.children.push({type:"object",id:S.refObjId})}}catch(t){v.e(t)}finally{v.f()}}}var t=Object.create(null);t.children=[];t.role="Root";var r,o=_createForOfIteratorHelper(this.nodes);try{for(o.s();!(r=o.n()).done;){var l=r.value;l&&nodeToSerializable(l,t)}}catch(t){o.e(t)}finally{o.f()}return t}}]);return StructTreePage}();r.StructTreePage=_},(t,r,o)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});r.ObjectLoader=void 0;var l=function _interopRequireDefault(t){return t&&t.__esModule?t:{default:t}}(o(2)),c=o(118),u=o(122),h=o(4);function asyncGeneratorStep(t,r,o,l,c,u,h){try{var d=t[u](h),m=d.value}catch(t){o(t);return}d.done?r(m):Promise.resolve(m).then(l,c)}function _asyncToGenerator(t){return function(){var r=this,o=arguments;return new Promise((function(l,c){var u=t.apply(r,o);function _next(t){asyncGeneratorStep(u,l,c,_next,_throw,"next",t)}function _throw(t){asyncGeneratorStep(u,l,c,_next,_throw,"throw",t)}_next(void 0)}))}}function _defineProperties(t,r){for(var o=0;o<r.length;o++){var l=r[o];l.enumerable=l.enumerable||!1;l.configurable=!0;"value"in l&&(l.writable=!0);Object.defineProperty(t,l.key,l)}}function _createForOfIteratorHelper(t,r){var o="undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(!o){if(Array.isArray(t)||(o=function _unsupportedIterableToArray(t,r){if(!t)return;if("string"==typeof t)return _arrayLikeToArray(t,r);var o=Object.prototype.toString.call(t).slice(8,-1);"Object"===o&&t.constructor&&(o=t.constructor.name);if("Map"===o||"Set"===o)return Array.from(t);if("Arguments"===o||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(o))return _arrayLikeToArray(t,r)}(t))||r&&t&&"number"==typeof t.length){o&&(t=o);var l=0,c=function F(){};return{s:c,n:function n(){return l>=t.length?{done:!0}:{done:!1,value:t[l++]}},e:function e(t){throw t},f:c}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var u,h=!0,d=!1;return{s:function s(){o=o.call(t)},n:function n(){var t=o.next();h=t.done;return t},e:function e(t){d=!0;u=t},f:function f(){try{h||null==o.return||o.return()}finally{if(d)throw u}}}}function _arrayLikeToArray(t,r){(null==r||r>t.length)&&(r=t.length);for(var o=0,l=new Array(r);o<r;o++)l[o]=t[o];return l}function addChildren(t,r){if(t instanceof c.Dict)t=t.getRawValues();else if((0,c.isStream)(t))t=t.dict.getRawValues();else if(!Array.isArray(t))return;var o,l,u=_createForOfIteratorHelper(t);try{for(u.s();!(o=u.n()).done;){var h=o.value;((l=h)instanceof c.Ref||l instanceof c.Dict||Array.isArray(l)||(0,c.isStream)(l))&&r.push(h)}}catch(t){u.e(t)}finally{u.f()}}var d=function(){function ObjectLoader(t,r,o){!function _classCallCheck(t,r){if(!(t instanceof r))throw new TypeError("Cannot call a class as a function")}(this,ObjectLoader);this.dict=t;this.keys=r;this.xref=o;this.refSet=null}!function _createClass(t,r,o){r&&_defineProperties(t.prototype,r);o&&_defineProperties(t,o);return t}(ObjectLoader,[{key:"load",value:(r=_asyncToGenerator(l.default.mark((function _callee(){var t,r,o,u,h,d;return l.default.wrap((function _callee$(l){for(;;)switch(l.prev=l.next){case 0:if(!this.xref.stream.isDataLoaded){l.next=2;break}return l.abrupt("return",void 0);case 2:t=this.keys,r=this.dict;this.refSet=new c.RefSet;o=[];for(u=0,h=t.length;u<h;u++)void 0!==(d=r.getRaw(t[u]))&&o.push(d);return l.abrupt("return",this._walk(o));case 7:case"end":return l.stop()}}),_callee,this)}))),function load(){return r.apply(this,arguments)})},{key:"_walk",value:(t=_asyncToGenerator(l.default.mark((function _callee2(t){var r,o,d,m,g,y,v,S,_,k,C,w;return l.default.wrap((function _callee2$(l){for(;;)switch(l.prev=l.next){case 0:r=[];o=[];case 2:if(!t.length){l.next=48;break}if(!((d=t.pop())instanceof c.Ref)){l.next=21;break}if(!this.refSet.has(d)){l.next=7;break}return l.abrupt("continue",2);case 7:l.prev=7;this.refSet.put(d);d=this.xref.fetch(d);l.next=21;break;case 12:l.prev=12;l.t0=l.catch(7);if(l.t0 instanceof u.MissingDataException){l.next=19;break}(0,h.warn)('ObjectLoader._walk - requesting all data: "'.concat(l.t0,'".'));this.refSet=null;m=this.xref.stream.manager;return l.abrupt("return",m.requestAllChunks());case 19:r.push(d);o.push({begin:l.t0.begin,end:l.t0.end});case 21:if(!(0,c.isStream)(d)){l.next=45;break}if(!(g=d.getBaseStreams())){l.next=45;break}y=!1;v=_createForOfIteratorHelper(g);l.prev=26;v.s();case 28:if((S=v.n()).done){l.next=36;break}if(!(_=S.value).isDataLoaded){l.next=32;break}return l.abrupt("continue",34);case 32:y=!0;o.push({begin:_.start,end:_.end});case 34:l.next=28;break;case 36:l.next=41;break;case 38:l.prev=38;l.t1=l.catch(26);v.e(l.t1);case 41:l.prev=41;v.f();return l.finish(41);case 44:y&&r.push(d);case 45:addChildren(d,t);l.next=2;break;case 48:if(!o.length){l.next=54;break}l.next=51;return this.xref.stream.manager.requestRanges(o);case 51:k=_createForOfIteratorHelper(r);try{for(k.s();!(C=k.n()).done;)(w=C.value)instanceof c.Ref&&this.refSet.remove(w)}catch(t){k.e(t)}finally{k.f()}return l.abrupt("return",this._walk(r));case 54:this.refSet=null;return l.abrupt("return",void 0);case 56:case"end":return l.stop()}}),_callee2,this,[[7,12],[26,38,41,44]])}))),function _walk(r){return t.apply(this,arguments)})}]);var t,r;return ObjectLoader}();r.ObjectLoader=d},(t,r,o)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});r.incrementalUpdate=function incrementalUpdate(t){var r=t.originalData,o=t.xrefInfo,m=t.newRefs,g=t.xref,y=void 0===g?null:g,v=t.hasXfa,S=void 0!==v&&v,_=t.xfaDatasetsRef,k=void 0===_?null:_,C=t.hasXfaDatasetsEntry,w=void 0!==C&&C,x=t.acroFormRef,O=void 0===x?null:x,T=t.acroForm,R=void 0===T?null:T,E=t.xfaData,M=void 0===E?null:E;S&&function updateXFA(t){var r=t.xfaData,o=t.xfaDatasetsRef,c=t.hasXfaDatasetsEntry,d=t.acroFormRef,m=t.acroForm,g=t.newRefs,y=t.xref;t.xrefInfo;if(null===y)return;if(!c){if(!d){(0,l.warn)("XFA - Cannot save it");return}var v=m.get("XFA"),S=v.slice();S.splice(2,0,"datasets");S.splice(3,0,o);m.set("XFA",S);var _=y.encrypt,k=null;_&&(k=_.createCipherTransform(d.num,d.gen));var C=["".concat(d.num," ").concat(d.gen," obj\n")];writeDict(m,C,k);C.push("\n");m.set("XFA",v);g.push({ref:d,data:C.join("")})}if(null===r){r=function writeXFADataForAcroform(t,r){var o,c=new h.SimpleXMLParser({hasAttributes:!0}).parseFromString(t),d=_createForOfIteratorHelper(r);try{for(d.s();!(o=d.n()).done;){var m=o.value.xfa;if(m){var g=m.path,y=m.value;if(g){var v=c.documentElement.searchNode((0,u.parseXFAPath)(g),0);v?v.childNodes=[new h.SimpleDOMNode("#text",y)]:(0,l.warn)("Node not found for path: ".concat(g))}}}}catch(t){d.e(t)}finally{d.f()}var S=[];c.documentElement.dump(S);return S.join("")}(y.fetchIfRef(o).getString(),g)}var w=y.encrypt;if(w){r=w.createCipherTransform(o.num,o.gen).encryptString(r)}var x="".concat(o.num," ").concat(o.gen," obj\n")+"<< /Type /EmbeddedFile /Length ".concat(r.length,">>\nstream\n")+r+"\nendstream\nendobj\n";g.push({ref:o,data:x})}({xfaData:M,xfaDatasetsRef:k,hasXfaDatasetsEntry:w,acroFormRef:O,acroForm:R,newRefs:m,xref:y,xrefInfo:o});var D,j,L=new c.Dict(null),N=o.newRef,U=r[r.length-1];if(10===U||13===U){D=[];j=r.length}else{D=["\n"];j=r.length+1}L.set("Size",N.num+1);L.set("Prev",o.startXRef);L.set("Type",c.Name.get("XRef"));null!==o.rootRef&&L.set("Root",o.rootRef);null!==o.infoRef&&L.set("Info",o.infoRef);null!==o.encryptRef&&L.set("Encrypt",o.encryptRef);m.push({ref:N,data:""});m=m.sort((function(t,r){return t.ref.num-r.ref.num}));var H,W=[[0,1,65535]],$=[0,1],q=0,X=_createForOfIteratorHelper(m);try{for(X.s();!(H=X.n()).done;){var z=H.value,G=z.ref,V=z.data;q=Math.max(q,j);W.push([1,j,Math.min(G.gen,65535)]);j+=V.length;$.push(G.num,1);D.push(V)}}catch(t){X.e(t)}finally{X.f()}L.set("Index",$);if(Array.isArray(o.fileIds)&&o.fileIds.length>0){var Y=function computeMD5(t,r){for(var o=Math.floor(Date.now()/1e3),c=r.filename||"",u=[o.toString(),c,t.toString()],h=u.reduce((function(t,r){return t+r.length}),0),m=0,g=Object.values(r.info);m<g.length;m++){var y=g[m];u.push(y);h+=y.length}for(var v=new Uint8Array(h),S=0,_=0,k=u;_<k.length;_++){var C=k[_];writeString(C,S,v);S+=C.length}return(0,l.bytesToString)((0,d.calculateMD5)(v))}(j,o);L.set("ID",[o.fileIds[0],Y])}var K=[1,Math.ceil(Math.log2(q)/8),2],J=(K[0]+K[1]+K[2])*W.length;L.set("W",K);L.set("Length",J);D.push("".concat(N.num," ").concat(N.gen," obj\n"));writeDict(L,D,null);D.push(" stream\n");var Q=D.reduce((function(t,r){return t+r.length}),0),Z="\nendstream\nendobj\nstartxref\n".concat(j,"\n%%EOF\n"),ee=new Uint8Array(r.length+Q+J+Z.length);ee.set(r);var te,re=r.length,ae=_createForOfIteratorHelper(D);try{for(ae.s();!(te=ae.n()).done;){var ne=te.value;writeString(ne,re,ee);re+=ne.length}}catch(t){ae.e(t)}finally{ae.f()}for(var ie=0,oe=W;ie<oe.length;ie++){var se=(fe=oe[ie],he=3,function _arrayWithHoles(t){if(Array.isArray(t))return t}(fe)||function _iterableToArrayLimit(t,r){var o=null==t?null:"undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(null==o)return;var l,c,u=[],h=!0,d=!1;try{for(o=o.call(t);!(h=(l=o.next()).done);h=!0){u.push(l.value);if(r&&u.length===r)break}}catch(t){d=!0;c=t}finally{try{h||null==o.return||o.return()}finally{if(d)throw c}}return u}(fe,he)||_unsupportedIterableToArray(fe,he)||function _nonIterableRest(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()),le=se[0],ce=se[1],ue=se[2];re=writeInt(le,K[0],re,ee);re=writeInt(ce,K[1],re,ee);re=writeInt(ue,K[2],re,ee)}var fe,he;writeString(Z,re,ee);return ee};r.writeDict=writeDict;var l=o(4),c=o(118),u=o(122),h=o(181),d=o(185);function _typeof(t){_typeof="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function _typeof(t){return typeof t}:function _typeof(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t};return _typeof(t)}function _createForOfIteratorHelper(t,r){var o="undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(!o){if(Array.isArray(t)||(o=_unsupportedIterableToArray(t))||r&&t&&"number"==typeof t.length){o&&(t=o);var l=0,c=function F(){};return{s:c,n:function n(){return l>=t.length?{done:!0}:{done:!1,value:t[l++]}},e:function e(t){throw t},f:c}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var u,h=!0,d=!1;return{s:function s(){o=o.call(t)},n:function n(){var t=o.next();h=t.done;return t},e:function e(t){d=!0;u=t},f:function f(){try{h||null==o.return||o.return()}finally{if(d)throw u}}}}function _unsupportedIterableToArray(t,r){if(t){if("string"==typeof t)return _arrayLikeToArray(t,r);var o=Object.prototype.toString.call(t).slice(8,-1);"Object"===o&&t.constructor&&(o=t.constructor.name);return"Map"===o||"Set"===o?Array.from(t):"Arguments"===o||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(o)?_arrayLikeToArray(t,r):void 0}}function _arrayLikeToArray(t,r){(null==r||r>t.length)&&(r=t.length);for(var o=0,l=new Array(r);o<r;o++)l[o]=t[o];return l}function writeDict(t,r,o){r.push("<<");var l,c=_createForOfIteratorHelper(t.getKeys());try{for(c.s();!(l=c.n()).done;){var h=l.value;r.push(" /".concat((0,u.escapePDFName)(h)," "));writeValue(t.getRaw(h),r,o)}}catch(t){c.e(t)}finally{c.f()}r.push(">>")}function writeValue(t,r,o){if((0,c.isName)(t))r.push("/".concat((0,u.escapePDFName)(t.name)));else if((0,c.isRef)(t))r.push("".concat(t.num," ").concat(t.gen," R"));else if(Array.isArray(t))!function writeArray(t,r,o){r.push("[");var l,c=!0,u=_createForOfIteratorHelper(t);try{for(u.s();!(l=u.n()).done;){var h=l.value;c?c=!1:r.push(" ");writeValue(h,r,o)}}catch(t){u.e(t)}finally{u.f()}r.push("]")}(t,r,o);else if("string"==typeof t){null!==o&&(t=o.encryptString(t));r.push("(".concat((0,l.escapeString)(t),")"))}else"number"==typeof t?r.push(function numberToString(t){if(Number.isInteger(t))return t.toString();var r=Math.round(100*t);return r%100==0?(r/100).toString():r%10==0?t.toFixed(1):t.toFixed(2)}(t)):"boolean"==typeof t?r.push(t.toString()):(0,c.isDict)(t)?writeDict(t,r,o):(0,c.isStream)(t)?function writeStream(t,r,o){writeDict(t.dict,r,o);r.push(" stream\n");var l=t.getString();null!==o&&(l=o.encryptString(l));r.push(l,"\nendstream\n")}(t,r,o):null===t?r.push("null"):(0,l.warn)("Unhandled value in writer: ".concat(_typeof(t),", please file a bug."))}function writeInt(t,r,o,l){for(var c=r+o-1;c>o-1;c--){l[c]=255&t;t>>=8}return o+r}function writeString(t,r,o){for(var l=0,c=t.length;l<c;l++)o[r+l]=255&t.charCodeAt(l)}},(t,r,o)=>{"use strict";function _typeof(t){_typeof="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function _typeof(t){return typeof t}:function _typeof(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t};return _typeof(t)}Object.defineProperty(r,"__esModule",{value:!0});r.calculateSHA384=calculateSHA384;r.PDF20=r.PDF17=r.CipherTransformFactory=r.calculateSHA512=r.calculateSHA256=r.calculateMD5=r.ARCFourCipher=r.AES256Cipher=r.AES128Cipher=void 0;var l=o(4),c=o(118),u=o(186);function _inherits(t,r){if("function"!=typeof r&&null!==r)throw new TypeError("Super expression must either be null or a function");t.prototype=Object.create(r&&r.prototype,{constructor:{value:t,writable:!0,configurable:!0}});r&&_setPrototypeOf(t,r)}function _setPrototypeOf(t,r){_setPrototypeOf=Object.setPrototypeOf||function _setPrototypeOf(t,r){t.__proto__=r;return t};return _setPrototypeOf(t,r)}function _createSuper(t){var r=function _isNativeReflectConstruct(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){})));return!0}catch(t){return!1}}();return function _createSuperInternal(){var o,l=_getPrototypeOf(t);if(r){var c=_getPrototypeOf(this).constructor;o=Reflect.construct(l,arguments,c)}else o=l.apply(this,arguments);return _possibleConstructorReturn(this,o)}}function _possibleConstructorReturn(t,r){if(r&&("object"===_typeof(r)||"function"==typeof r))return r;if(void 0!==r)throw new TypeError("Derived constructors may only return object or undefined");return function _assertThisInitialized(t){if(void 0===t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return t}(t)}function _getPrototypeOf(t){_getPrototypeOf=Object.setPrototypeOf?Object.getPrototypeOf:function _getPrototypeOf(t){return t.__proto__||Object.getPrototypeOf(t)};return _getPrototypeOf(t)}function _classCallCheck(t,r){if(!(t instanceof r))throw new TypeError("Cannot call a class as a function")}function _defineProperties(t,r){for(var o=0;o<r.length;o++){var l=r[o];l.enumerable=l.enumerable||!1;l.configurable=!0;"value"in l&&(l.writable=!0);Object.defineProperty(t,l.key,l)}}function _createClass(t,r,o){r&&_defineProperties(t.prototype,r);o&&_defineProperties(t,o);return t}var h=function(){function ARCFourCipher(t){_classCallCheck(this,ARCFourCipher);this.a=0;this.b=0;for(var r=new Uint8Array(256),o=t.length,l=0;l<256;++l)r[l]=l;for(var c=0,u=0;c<256;++c){var h=r[c];u=u+h+t[c%o]&255;r[c]=r[u];r[u]=h}this.s=r}_createClass(ARCFourCipher,[{key:"encryptBlock",value:function encryptBlock(t){for(var r=this.a,o=this.b,l=this.s,c=t.length,u=new Uint8Array(c),h=0;h<c;++h){var d=l[r=r+1&255],m=l[o=o+d&255];l[r]=m;l[o]=d;u[h]=t[h]^l[d+m&255]}this.a=r;this.b=o;return u}},{key:"decryptBlock",value:function decryptBlock(t){return this.encryptBlock(t)}},{key:"encrypt",value:function encrypt(t){return this.encryptBlock(t)}}]);return ARCFourCipher}();r.ARCFourCipher=h;var d=function calculateMD5Closure(){var t=new Uint8Array([7,12,17,22,7,12,17,22,7,12,17,22,7,12,17,22,5,9,14,20,5,9,14,20,5,9,14,20,5,9,14,20,4,11,16,23,4,11,16,23,4,11,16,23,4,11,16,23,6,10,15,21,6,10,15,21,6,10,15,21,6,10,15,21]),r=new Int32Array([-680876936,-389564586,606105819,-1044525330,-176418897,1200080426,-1473231341,-45705983,1770035416,-1958414417,-42063,-1990404162,1804603682,-40341101,-1502002290,1236535329,-165796510,-1069501632,643717713,-373897302,-701558691,38016083,-660478335,-405537848,568446438,-1019803690,-187363961,1163531501,-1444681467,-51403784,1735328473,-1926607734,-378558,-2022574463,1839030562,-35309556,-1530992060,1272893353,-155497632,-1094730640,681279174,-358537222,-722521979,76029189,-640364487,-421815835,530742520,-995338651,-198630844,1126891415,-1416354905,-57434055,1700485571,-1894986606,-1051523,-2054922799,1873313359,-30611744,-1560198380,1309151649,-145523070,-1120210379,718787259,-343485551]);return function hash(o,l,c){var u,h,d=1732584193,m=-271733879,g=-1732584194,y=271733878,v=c+72&-64,S=new Uint8Array(v);for(u=0;u<c;++u)S[u]=o[l++];S[u++]=128;for(var _=v-8;u<_;)S[u++]=0;S[u++]=c<<3&255;S[u++]=c>>5&255;S[u++]=c>>13&255;S[u++]=c>>21&255;S[u++]=c>>>29&255;S[u++]=0;S[u++]=0;S[u++]=0;var k=new Int32Array(16);for(u=0;u<v;){for(h=0;h<16;++h,u+=4)k[h]=S[u]|S[u+1]<<8|S[u+2]<<16|S[u+3]<<24;var C=d,w=m,x=g,O=y,T=void 0,R=void 0;for(h=0;h<64;++h){if(h<16){T=w&x|~w&O;R=h}else if(h<32){T=O&w|~O&x;R=5*h+1&15}else if(h<48){T=w^x^O;R=3*h+5&15}else{T=x^(w|~O);R=7*h&15}var E=O,M=C+T+r[h]+k[R]|0,D=t[h];O=x;x=w;w=w+(M<<D|M>>>32-D)|0;C=E}d=d+C|0;m=m+w|0;g=g+x|0;y=y+O|0}return new Uint8Array([255&d,d>>8&255,d>>16&255,d>>>24&255,255&m,m>>8&255,m>>16&255,m>>>24&255,255&g,g>>8&255,g>>16&255,g>>>24&255,255&y,y>>8&255,y>>16&255,y>>>24&255])}}();r.calculateMD5=d;var m=function(){function Word64(t,r){_classCallCheck(this,Word64);this.high=0|t;this.low=0|r}_createClass(Word64,[{key:"and",value:function and(t){this.high&=t.high;this.low&=t.low}},{key:"xor",value:function xor(t){this.high^=t.high;this.low^=t.low}},{key:"or",value:function or(t){this.high|=t.high;this.low|=t.low}},{key:"shiftRight",value:function shiftRight(t){if(t>=32){this.low=this.high>>>t-32|0;this.high=0}else{this.low=this.low>>>t|this.high<<32-t;this.high=this.high>>>t|0}}},{key:"shiftLeft",value:function shiftLeft(t){if(t>=32){this.high=this.low<<t-32;this.low=0}else{this.high=this.high<<t|this.low>>>32-t;this.low<<=t}}},{key:"rotateRight",value:function rotateRight(t){var r,o;if(32&t){o=this.low;r=this.high}else{r=this.low;o=this.high}t&=31;this.low=r>>>t|o<<32-t;this.high=o>>>t|r<<32-t}},{key:"not",value:function not(){this.high=~this.high;this.low=~this.low}},{key:"add",value:function add(t){var r=(this.low>>>0)+(t.low>>>0),o=(this.high>>>0)+(t.high>>>0);r>4294967295&&(o+=1);this.low=0|r;this.high=0|o}},{key:"copyTo",value:function copyTo(t,r){t[r]=this.high>>>24&255;t[r+1]=this.high>>16&255;t[r+2]=this.high>>8&255;t[r+3]=255&this.high;t[r+4]=this.low>>>24&255;t[r+5]=this.low>>16&255;t[r+6]=this.low>>8&255;t[r+7]=255&this.low}},{key:"assign",value:function assign(t){this.high=t.high;this.low=t.low}}]);return Word64}(),g=function calculateSHA256Closure(){function rotr(t,r){return t>>>r|t<<32-r}function ch(t,r,o){return t&r^~t&o}function maj(t,r,o){return t&r^t&o^r&o}function sigma(t){return rotr(t,2)^rotr(t,13)^rotr(t,22)}function sigmaPrime(t){return rotr(t,6)^rotr(t,11)^rotr(t,25)}function littleSigma(t){return rotr(t,7)^rotr(t,18)^t>>>3}var t=[1116352408,1899447441,3049323471,3921009573,961987163,1508970993,2453635748,2870763221,3624381080,310598401,607225278,1426881987,1925078388,2162078206,2614888103,3248222580,3835390401,4022224774,264347078,604807628,770255983,1249150122,1555081692,1996064986,2554220882,2821834349,2952996808,3210313671,3336571891,3584528711,113926993,338241895,666307205,773529912,1294757372,1396182291,1695183700,1986661051,2177026350,2456956037,2730485921,2820302411,3259730800,3345764771,3516065817,3600352804,4094571909,275423344,430227734,506948616,659060556,883997877,958139571,1322822218,1537002063,1747873779,1955562222,2024104815,2227730452,2361852424,2428436474,2756734187,3204031479,3329325298];return function hash(r,o,l){var c,u,h=1779033703,d=3144134277,m=1013904242,g=2773480762,y=1359893119,v=2600822924,S=528734635,_=1541459225,k=64*Math.ceil((l+9)/64),C=new Uint8Array(k);for(c=0;c<l;++c)C[c]=r[o++];C[c++]=128;for(var w=k-8;c<w;)C[c++]=0;C[c++]=0;C[c++]=0;C[c++]=0;C[c++]=l>>>29&255;C[c++]=l>>21&255;C[c++]=l>>13&255;C[c++]=l>>5&255;C[c++]=l<<3&255;var x,O=new Uint32Array(64);for(c=0;c<k;){for(u=0;u<16;++u){O[u]=C[c]<<24|C[c+1]<<16|C[c+2]<<8|C[c+3];c+=4}for(u=16;u<64;++u)O[u]=(rotr(x=O[u-2],17)^rotr(x,19)^x>>>10)+O[u-7]+littleSigma(O[u-15])+O[u-16]|0;var T=h,R=d,E=m,M=g,D=y,j=v,L=S,N=_,U=void 0,H=void 0;for(u=0;u<64;++u){U=N+sigmaPrime(D)+ch(D,j,L)+t[u]+O[u];H=sigma(T)+maj(T,R,E);N=L;L=j;j=D;D=M+U|0;M=E;E=R;R=T;T=U+H|0}h=h+T|0;d=d+R|0;m=m+E|0;g=g+M|0;y=y+D|0;v=v+j|0;S=S+L|0;_=_+N|0}return new Uint8Array([h>>24&255,h>>16&255,h>>8&255,255&h,d>>24&255,d>>16&255,d>>8&255,255&d,m>>24&255,m>>16&255,m>>8&255,255&m,g>>24&255,g>>16&255,g>>8&255,255&g,y>>24&255,y>>16&255,y>>8&255,255&y,v>>24&255,v>>16&255,v>>8&255,255&v,S>>24&255,S>>16&255,S>>8&255,255&S,_>>24&255,_>>16&255,_>>8&255,255&_])}}();r.calculateSHA256=g;var y=function calculateSHA512Closure(){function ch(t,r,o,l,c){t.assign(r);t.and(o);c.assign(r);c.not();c.and(l);t.xor(c)}function maj(t,r,o,l,c){t.assign(r);t.and(o);c.assign(r);c.and(l);t.xor(c);c.assign(o);c.and(l);t.xor(c)}function sigma(t,r,o){t.assign(r);t.rotateRight(28);o.assign(r);o.rotateRight(34);t.xor(o);o.assign(r);o.rotateRight(39);t.xor(o)}function sigmaPrime(t,r,o){t.assign(r);t.rotateRight(14);o.assign(r);o.rotateRight(18);t.xor(o);o.assign(r);o.rotateRight(41);t.xor(o)}function littleSigma(t,r,o){t.assign(r);t.rotateRight(1);o.assign(r);o.rotateRight(8);t.xor(o);o.assign(r);o.shiftRight(7);t.xor(o)}function littleSigmaPrime(t,r,o){t.assign(r);t.rotateRight(19);o.assign(r);o.rotateRight(61);t.xor(o);o.assign(r);o.shiftRight(6);t.xor(o)}var t=[new m(1116352408,3609767458),new m(1899447441,602891725),new m(3049323471,3964484399),new m(3921009573,2173295548),new m(961987163,4081628472),new m(1508970993,3053834265),new m(2453635748,2937671579),new m(2870763221,3664609560),new m(3624381080,2734883394),new m(310598401,1164996542),new m(607225278,1323610764),new m(1426881987,3590304994),new m(1925078388,4068182383),new m(2162078206,991336113),new m(2614888103,633803317),new m(3248222580,3479774868),new m(3835390401,2666613458),new m(4022224774,944711139),new m(264347078,2341262773),new m(604807628,2007800933),new m(770255983,1495990901),new m(1249150122,1856431235),new m(1555081692,3175218132),new m(1996064986,2198950837),new m(2554220882,3999719339),new m(2821834349,766784016),new m(2952996808,2566594879),new m(3210313671,3203337956),new m(3336571891,1034457026),new m(3584528711,2466948901),new m(113926993,3758326383),new m(338241895,168717936),new m(666307205,1188179964),new m(773529912,1546045734),new m(1294757372,1522805485),new m(1396182291,2643833823),new m(1695183700,2343527390),new m(1986661051,1014477480),new m(2177026350,1206759142),new m(2456956037,344077627),new m(2730485921,1290863460),new m(2820302411,3158454273),new m(3259730800,3505952657),new m(3345764771,106217008),new m(3516065817,3606008344),new m(3600352804,1432725776),new m(4094571909,1467031594),new m(275423344,851169720),new m(430227734,3100823752),new m(506948616,1363258195),new m(659060556,3750685593),new m(883997877,3785050280),new m(958139571,3318307427),new m(1322822218,3812723403),new m(1537002063,2003034995),new m(1747873779,3602036899),new m(1955562222,1575990012),new m(2024104815,1125592928),new m(2227730452,2716904306),new m(2361852424,442776044),new m(2428436474,593698344),new m(2756734187,3733110249),new m(3204031479,2999351573),new m(3329325298,3815920427),new m(3391569614,3928383900),new m(3515267271,566280711),new m(3940187606,3454069534),new m(4118630271,4000239992),new m(116418474,1914138554),new m(174292421,2731055270),new m(289380356,3203993006),new m(460393269,320620315),new m(685471733,587496836),new m(852142971,1086792851),new m(1017036298,365543100),new m(1126000580,2618297676),new m(1288033470,3409855158),new m(1501505948,4234509866),new m(1607167915,987167468),new m(1816402316,1246189591)];return function hash(r,o,l){var c,u,h,d,g,y,v,S,_=arguments.length>3&&void 0!==arguments[3]&&arguments[3];if(_){c=new m(3418070365,3238371032);u=new m(1654270250,914150663);h=new m(2438529370,812702999);d=new m(355462360,4144912697);g=new m(1731405415,4290775857);y=new m(2394180231,1750603025);v=new m(3675008525,1694076839);S=new m(1203062813,3204075428)}else{c=new m(1779033703,4089235720);u=new m(3144134277,2227873595);h=new m(1013904242,4271175723);d=new m(2773480762,1595750129);g=new m(1359893119,2917565137);y=new m(2600822924,725511199);v=new m(528734635,4215389547);S=new m(1541459225,327033209)}var k,C,w=128*Math.ceil((l+17)/128),x=new Uint8Array(w);for(k=0;k<l;++k)x[k]=r[o++];x[k++]=128;for(var O=w-16;k<O;)x[k++]=0;x[k++]=0;x[k++]=0;x[k++]=0;x[k++]=0;x[k++]=0;x[k++]=0;x[k++]=0;x[k++]=0;x[k++]=0;x[k++]=0;x[k++]=0;x[k++]=l>>>29&255;x[k++]=l>>21&255;x[k++]=l>>13&255;x[k++]=l>>5&255;x[k++]=l<<3&255;var T=new Array(80);for(k=0;k<80;k++)T[k]=new m(0,0);var R,E,M=new m(0,0),D=new m(0,0),j=new m(0,0),L=new m(0,0),N=new m(0,0),U=new m(0,0),H=new m(0,0),W=new m(0,0),$=new m(0,0),q=new m(0,0),X=new m(0,0),z=new m(0,0);for(k=0;k<w;){for(C=0;C<16;++C){T[C].high=x[k]<<24|x[k+1]<<16|x[k+2]<<8|x[k+3];T[C].low=x[k+4]<<24|x[k+5]<<16|x[k+6]<<8|x[k+7];k+=8}for(C=16;C<80;++C){littleSigmaPrime(R=T[C],T[C-2],z);R.add(T[C-7]);littleSigma(X,T[C-15],z);R.add(X);R.add(T[C-16])}M.assign(c);D.assign(u);j.assign(h);L.assign(d);N.assign(g);U.assign(y);H.assign(v);W.assign(S);for(C=0;C<80;++C){$.assign(W);sigmaPrime(X,N,z);$.add(X);ch(X,N,U,H,z);$.add(X);$.add(t[C]);$.add(T[C]);sigma(q,M,z);maj(X,M,D,j,z);q.add(X);R=W;W=H;H=U;U=N;L.add($);N=L;L=j;j=D;D=M;R.assign($);R.add(q);M=R}c.add(M);u.add(D);h.add(j);d.add(L);g.add(N);y.add(U);v.add(H);S.add(W)}if(_){E=new Uint8Array(48);c.copyTo(E,0);u.copyTo(E,8);h.copyTo(E,16);d.copyTo(E,24);g.copyTo(E,32);y.copyTo(E,40)}else{E=new Uint8Array(64);c.copyTo(E,0);u.copyTo(E,8);h.copyTo(E,16);d.copyTo(E,24);g.copyTo(E,32);y.copyTo(E,40);v.copyTo(E,48);S.copyTo(E,56)}return E}}();r.calculateSHA512=y;function calculateSHA384(t,r,o){return y(t,r,o,!0)}var v=function(){function NullCipher(){_classCallCheck(this,NullCipher)}_createClass(NullCipher,[{key:"decryptBlock",value:function decryptBlock(t){return t}},{key:"encrypt",value:function encrypt(t){return t}}]);return NullCipher}(),S=function(){function AESBaseCipher(){_classCallCheck(this,AESBaseCipher);this.constructor===AESBaseCipher&&(0,l.unreachable)("Cannot initialize AESBaseCipher.");this._s=new Uint8Array([99,124,119,123,242,107,111,197,48,1,103,43,254,215,171,118,202,130,201,125,250,89,71,240,173,212,162,175,156,164,114,192,183,253,147,38,54,63,247,204,52,165,229,241,113,216,49,21,4,199,35,195,24,150,5,154,7,18,128,226,235,39,178,117,9,131,44,26,27,110,90,160,82,59,214,179,41,227,47,132,83,209,0,237,32,252,177,91,106,203,190,57,74,76,88,207,208,239,170,251,67,77,51,133,69,249,2,127,80,60,159,168,81,163,64,143,146,157,56,245,188,182,218,33,16,255,243,210,205,12,19,236,95,151,68,23,196,167,126,61,100,93,25,115,96,129,79,220,34,42,144,136,70,238,184,20,222,94,11,219,224,50,58,10,73,6,36,92,194,211,172,98,145,149,228,121,231,200,55,109,141,213,78,169,108,86,244,234,101,122,174,8,186,120,37,46,28,166,180,198,232,221,116,31,75,189,139,138,112,62,181,102,72,3,246,14,97,53,87,185,134,193,29,158,225,248,152,17,105,217,142,148,155,30,135,233,206,85,40,223,140,161,137,13,191,230,66,104,65,153,45,15,176,84,187,22]);this._inv_s=new Uint8Array([82,9,106,213,48,54,165,56,191,64,163,158,129,243,215,251,124,227,57,130,155,47,255,135,52,142,67,68,196,222,233,203,84,123,148,50,166,194,35,61,238,76,149,11,66,250,195,78,8,46,161,102,40,217,36,178,118,91,162,73,109,139,209,37,114,248,246,100,134,104,152,22,212,164,92,204,93,101,182,146,108,112,72,80,253,237,185,218,94,21,70,87,167,141,157,132,144,216,171,0,140,188,211,10,247,228,88,5,184,179,69,6,208,44,30,143,202,63,15,2,193,175,189,3,1,19,138,107,58,145,17,65,79,103,220,234,151,242,207,206,240,180,230,115,150,172,116,34,231,173,53,133,226,249,55,232,28,117,223,110,71,241,26,113,29,41,197,137,111,183,98,14,170,24,190,27,252,86,62,75,198,210,121,32,154,219,192,254,120,205,90,244,31,221,168,51,136,7,199,49,177,18,16,89,39,128,236,95,96,81,127,169,25,181,74,13,45,229,122,159,147,201,156,239,160,224,59,77,174,42,245,176,200,235,187,60,131,83,153,97,23,43,4,126,186,119,214,38,225,105,20,99,85,33,12,125]);this._mix=new Uint32Array([0,235474187,470948374,303765277,941896748,908933415,607530554,708780849,1883793496,2118214995,1817866830,1649639237,1215061108,1181045119,1417561698,1517767529,3767586992,4003061179,4236429990,4069246893,3635733660,3602770327,3299278474,3400528769,2430122216,2664543715,2362090238,2193862645,2835123396,2801107407,3035535058,3135740889,3678124923,3576870512,3341394285,3374361702,3810496343,3977675356,4279080257,4043610186,2876494627,2776292904,3076639029,3110650942,2472011535,2640243204,2403728665,2169303058,1001089995,899835584,666464733,699432150,59727847,226906860,530400753,294930682,1273168787,1172967064,1475418501,1509430414,1942435775,2110667444,1876241833,1641816226,2910219766,2743034109,2976151520,3211623147,2505202138,2606453969,2302690252,2269728455,3711829422,3543599269,3240894392,3475313331,3843699074,3943906441,4178062228,4144047775,1306967366,1139781709,1374988112,1610459739,1975683434,2076935265,1775276924,1742315127,1034867998,866637845,566021896,800440835,92987698,193195065,429456164,395441711,1984812685,2017778566,1784663195,1683407248,1315562145,1080094634,1383856311,1551037884,101039829,135050206,437757123,337553864,1042385657,807962610,573804783,742039012,2531067453,2564033334,2328828971,2227573024,2935566865,2700099354,3001755655,3168937228,3868552805,3902563182,4203181171,4102977912,3736164937,3501741890,3265478751,3433712980,1106041591,1340463100,1576976609,1408749034,2043211483,2009195472,1708848333,1809054150,832877231,1068351396,766945465,599762354,159417987,126454664,361929877,463180190,2709260871,2943682380,3178106961,3009879386,2572697195,2538681184,2236228733,2336434550,3509871135,3745345300,3441850377,3274667266,3910161971,3877198648,4110568485,4211818798,2597806476,2497604743,2261089178,2295101073,2733856160,2902087851,3202437046,2968011453,3936291284,3835036895,4136440770,4169408201,3535486456,3702665459,3467192302,3231722213,2051518780,1951317047,1716890410,1750902305,1113818384,1282050075,1584504582,1350078989,168810852,67556463,371049330,404016761,841739592,1008918595,775550814,540080725,3969562369,3801332234,4035489047,4269907996,3569255213,3669462566,3366754619,3332740144,2631065433,2463879762,2160117071,2395588676,2767645557,2868897406,3102011747,3069049960,202008497,33778362,270040487,504459436,875451293,975658646,675039627,641025152,2084704233,1917518562,1615861247,1851332852,1147550661,1248802510,1484005843,1451044056,933301370,967311729,733156972,632953703,260388950,25965917,328671808,496906059,1206477858,1239443753,1543208500,1441952575,2144161806,1908694277,1675577880,1842759443,3610369226,3644379585,3408119516,3307916247,4011190502,3776767469,4077384432,4245618683,2809771154,2842737049,3144396420,3043140495,2673705150,2438237621,2203032232,2370213795]);this._mixCol=new Uint8Array(256);for(var t=0;t<256;t++)this._mixCol[t]=t<128?t<<1:t<<1^27;this.buffer=new Uint8Array(16);this.bufferPosition=0}_createClass(AESBaseCipher,[{key:"_expandKey",value:function _expandKey(t){(0,l.unreachable)("Cannot call `_expandKey` on the base class")}},{key:"_decrypt",value:function _decrypt(t,r){var o,l,c,u=new Uint8Array(16);u.set(t);for(var h=0,d=this._keySize;h<16;++h,++d)u[h]^=r[d];for(var m=this._cyclesOfRepetition-1;m>=1;--m){o=u[13];u[13]=u[9];u[9]=u[5];u[5]=u[1];u[1]=o;o=u[14];l=u[10];u[14]=u[6];u[10]=u[2];u[6]=o;u[2]=l;o=u[15];l=u[11];c=u[7];u[15]=u[3];u[11]=o;u[7]=l;u[3]=c;for(var g=0;g<16;++g)u[g]=this._inv_s[u[g]];for(var y=0,v=16*m;y<16;++y,++v)u[y]^=r[v];for(var S=0;S<16;S+=4){var _=this._mix[u[S]],k=this._mix[u[S+1]],C=this._mix[u[S+2]],w=this._mix[u[S+3]];o=_^k>>>8^k<<24^C>>>16^C<<16^w>>>24^w<<8;u[S]=o>>>24&255;u[S+1]=o>>16&255;u[S+2]=o>>8&255;u[S+3]=255&o}}o=u[13];u[13]=u[9];u[9]=u[5];u[5]=u[1];u[1]=o;o=u[14];l=u[10];u[14]=u[6];u[10]=u[2];u[6]=o;u[2]=l;o=u[15];l=u[11];c=u[7];u[15]=u[3];u[11]=o;u[7]=l;u[3]=c;for(var x=0;x<16;++x){u[x]=this._inv_s[u[x]];u[x]^=r[x]}return u}},{key:"_encrypt",value:function _encrypt(t,r){var o,l,c,u=this._s,h=new Uint8Array(16);h.set(t);for(var d=0;d<16;++d)h[d]^=r[d];for(var m=1;m<this._cyclesOfRepetition;m++){for(var g=0;g<16;++g)h[g]=u[h[g]];c=h[1];h[1]=h[5];h[5]=h[9];h[9]=h[13];h[13]=c;c=h[2];l=h[6];h[2]=h[10];h[6]=h[14];h[10]=c;h[14]=l;c=h[3];l=h[7];o=h[11];h[3]=h[15];h[7]=c;h[11]=l;h[15]=o;for(var y=0;y<16;y+=4){var v=h[y+0],S=h[y+1],_=h[y+2],k=h[y+3];o=v^S^_^k;h[y+0]^=o^this._mixCol[v^S];h[y+1]^=o^this._mixCol[S^_];h[y+2]^=o^this._mixCol[_^k];h[y+3]^=o^this._mixCol[k^v]}for(var C=0,w=16*m;C<16;++C,++w)h[C]^=r[w]}for(var x=0;x<16;++x)h[x]=u[h[x]];c=h[1];h[1]=h[5];h[5]=h[9];h[9]=h[13];h[13]=c;c=h[2];l=h[6];h[2]=h[10];h[6]=h[14];h[10]=c;h[14]=l;c=h[3];l=h[7];o=h[11];h[3]=h[15];h[7]=c;h[11]=l;h[15]=o;for(var O=0,T=this._keySize;O<16;++O,++T)h[O]^=r[T];return h}},{key:"_decryptBlock2",value:function _decryptBlock2(t,r){for(var o=t.length,l=this.buffer,c=this.bufferPosition,u=[],h=this.iv,d=0;d<o;++d){l[c]=t[d];if(!(++c<16)){for(var m=this._decrypt(l,this._key),g=0;g<16;++g)m[g]^=h[g];h=l;u.push(m);l=new Uint8Array(16);c=0}}this.buffer=l;this.bufferLength=c;this.iv=h;if(0===u.length)return new Uint8Array(0);var y=16*u.length;if(r){var v=u[u.length-1],S=v[15];if(S<=16){for(var _=15,k=16-S;_>=k;--_)if(v[_]!==S){S=0;break}y-=S;u[u.length-1]=v.subarray(0,16-S)}}for(var C=new Uint8Array(y),w=0,x=0,O=u.length;w<O;++w,x+=16)C.set(u[w],x);return C}},{key:"decryptBlock",value:function decryptBlock(t,r){var o=arguments.length>2&&void 0!==arguments[2]?arguments[2]:null,l=t.length,c=this.buffer,u=this.bufferPosition;if(o)this.iv=o;else{for(var h=0;u<16&&h<l;++h,++u)c[u]=t[h];if(u<16){this.bufferLength=u;return new Uint8Array(0)}this.iv=c;t=t.subarray(16)}this.buffer=new Uint8Array(16);this.bufferLength=0;this.decryptBlock=this._decryptBlock2;return this.decryptBlock(t,r)}},{key:"encrypt",value:function encrypt(t,r){var o=t.length,l=this.buffer,c=this.bufferPosition,u=[];r||(r=new Uint8Array(16));for(var h=0;h<o;++h){l[c]=t[h];if(!(++c<16)){for(var d=0;d<16;++d)l[d]^=r[d];var m=this._encrypt(l,this._key);r=m;u.push(m);l=new Uint8Array(16);c=0}}this.buffer=l;this.bufferLength=c;this.iv=r;if(0===u.length)return new Uint8Array(0);for(var g=16*u.length,y=new Uint8Array(g),v=0,S=0,_=u.length;v<_;++v,S+=16)y.set(u[v],S);return y}}]);return AESBaseCipher}(),_=function(t){_inherits(AES128Cipher,t);var r=_createSuper(AES128Cipher);function AES128Cipher(t){var o;_classCallCheck(this,AES128Cipher);(o=r.call(this))._cyclesOfRepetition=10;o._keySize=160;o._rcon=new Uint8Array([141,1,2,4,8,16,32,64,128,27,54,108,216,171,77,154,47,94,188,99,198,151,53,106,212,179,125,250,239,197,145,57,114,228,211,189,97,194,159,37,74,148,51,102,204,131,29,58,116,232,203,141,1,2,4,8,16,32,64,128,27,54,108,216,171,77,154,47,94,188,99,198,151,53,106,212,179,125,250,239,197,145,57,114,228,211,189,97,194,159,37,74,148,51,102,204,131,29,58,116,232,203,141,1,2,4,8,16,32,64,128,27,54,108,216,171,77,154,47,94,188,99,198,151,53,106,212,179,125,250,239,197,145,57,114,228,211,189,97,194,159,37,74,148,51,102,204,131,29,58,116,232,203,141,1,2,4,8,16,32,64,128,27,54,108,216,171,77,154,47,94,188,99,198,151,53,106,212,179,125,250,239,197,145,57,114,228,211,189,97,194,159,37,74,148,51,102,204,131,29,58,116,232,203,141,1,2,4,8,16,32,64,128,27,54,108,216,171,77,154,47,94,188,99,198,151,53,106,212,179,125,250,239,197,145,57,114,228,211,189,97,194,159,37,74,148,51,102,204,131,29,58,116,232,203,141]);o._key=o._expandKey(t);return o}_createClass(AES128Cipher,[{key:"_expandKey",value:function _expandKey(t){var r=this._s,o=this._rcon,l=new Uint8Array(176);l.set(t);for(var c=16,u=1;c<176;++u){var h=l[c-3],d=l[c-2],m=l[c-1],g=l[c-4];h=r[h];d=r[d];m=r[m];g=r[g];h^=o[u];for(var y=0;y<4;++y){l[c]=h^=l[c-16];l[++c]=d^=l[c-16];l[++c]=m^=l[c-16];l[++c]=g^=l[c-16];c++}}return l}}]);return AES128Cipher}(S);r.AES128Cipher=_;var k=function(t){_inherits(AES256Cipher,t);var r=_createSuper(AES256Cipher);function AES256Cipher(t){var o;_classCallCheck(this,AES256Cipher);(o=r.call(this))._cyclesOfRepetition=14;o._keySize=224;o._key=o._expandKey(t);return o}_createClass(AES256Cipher,[{key:"_expandKey",value:function _expandKey(t){var r=this._s,o=new Uint8Array(240);o.set(t);for(var l,c,u,h,d=1,m=32,g=1;m<240;++g){if(m%32==16){l=r[l];c=r[c];u=r[u];h=r[h]}else if(m%32==0){l=o[m-3];c=o[m-2];u=o[m-1];h=o[m-4];l=r[l];c=r[c];u=r[u];h=r[h];l^=d;(d<<=1)>=256&&(d=255&(27^d))}for(var y=0;y<4;++y){o[m]=l^=o[m-32];o[++m]=c^=o[m-32];o[++m]=u^=o[m-32];o[++m]=h^=o[m-32];m++}}return o}}]);return AES256Cipher}(S);r.AES256Cipher=k;var C=function(){function PDF17(){_classCallCheck(this,PDF17)}_createClass(PDF17,[{key:"checkOwnerPassword",value:function checkOwnerPassword(t,r,o,c){var u=new Uint8Array(t.length+56);u.set(t,0);u.set(r,t.length);u.set(o,t.length+r.length);var h=g(u,0,u.length);return(0,l.isArrayEqual)(h,c)}},{key:"checkUserPassword",value:function checkUserPassword(t,r,o){var c=new Uint8Array(t.length+8);c.set(t,0);c.set(r,t.length);var u=g(c,0,c.length);return(0,l.isArrayEqual)(u,o)}},{key:"getOwnerKey",value:function getOwnerKey(t,r,o,l){var c=new Uint8Array(t.length+56);c.set(t,0);c.set(r,t.length);c.set(o,t.length+r.length);var u=g(c,0,c.length);return new k(u).decryptBlock(l,!1,new Uint8Array(16))}},{key:"getUserKey",value:function getUserKey(t,r,o){var l=new Uint8Array(t.length+8);l.set(t,0);l.set(r,t.length);var c=g(l,0,l.length);return new k(c).decryptBlock(o,!1,new Uint8Array(16))}}]);return PDF17}();r.PDF17=C;var w=function PDF20Closure(){function calculatePDF20Hash(t,r,o){for(var l=g(r,0,r.length).subarray(0,32),c=[0],u=0;u<64||c[c.length-1]>u-32;){var h=t.length+l.length+o.length,d=new Uint8Array(h),m=0;d.set(t,m);m+=t.length;d.set(l,m);m+=l.length;d.set(o,m);for(var v=new Uint8Array(64*h),S=0,k=0;S<64;S++,k+=h)v.set(d,k);c=new _(l.subarray(0,16)).encrypt(v,l.subarray(16,32));for(var C=0,w=0;w<16;w++){C*=1;C%=3;C+=(c[w]>>>0)%3;C%=3}0===C?l=g(c,0,c.length):1===C?l=calculateSHA384(c,0,c.length):2===C&&(l=y(c,0,c.length));u++}return l.subarray(0,32)}return function(){function PDF20(){_classCallCheck(this,PDF20)}_createClass(PDF20,[{key:"hash",value:function hash(t,r,o){return calculatePDF20Hash(t,r,o)}},{key:"checkOwnerPassword",value:function checkOwnerPassword(t,r,o,c){var u=new Uint8Array(t.length+56);u.set(t,0);u.set(r,t.length);u.set(o,t.length+r.length);var h=calculatePDF20Hash(t,u,o);return(0,l.isArrayEqual)(h,c)}},{key:"checkUserPassword",value:function checkUserPassword(t,r,o){var c=new Uint8Array(t.length+8);c.set(t,0);c.set(r,t.length);var u=calculatePDF20Hash(t,c,[]);return(0,l.isArrayEqual)(u,o)}},{key:"getOwnerKey",value:function getOwnerKey(t,r,o,l){var c=new Uint8Array(t.length+56);c.set(t,0);c.set(r,t.length);c.set(o,t.length+r.length);var u=calculatePDF20Hash(t,c,o);return new k(u).decryptBlock(l,!1,new Uint8Array(16))}},{key:"getUserKey",value:function getUserKey(t,r,o){var l=new Uint8Array(t.length+8);l.set(t,0);l.set(r,t.length);var c=calculatePDF20Hash(t,l,[]);return new k(c).decryptBlock(o,!1,new Uint8Array(16))}}]);return PDF20}()}();r.PDF20=w;var x=function(){function CipherTransform(t,r){_classCallCheck(this,CipherTransform);this.StringCipherConstructor=t;this.StreamCipherConstructor=r}_createClass(CipherTransform,[{key:"createStream",value:function createStream(t,r){var o=new this.StreamCipherConstructor;return new u.DecryptStream(t,r,(function cipherTransformDecryptStream(t,r){return o.decryptBlock(t,r)}))}},{key:"decryptString",value:function decryptString(t){var r=new this.StringCipherConstructor,o=(0,l.stringToBytes)(t);o=r.decryptBlock(o,!0);return(0,l.bytesToString)(o)}},{key:"encryptString",value:function encryptString(t){var r=new this.StringCipherConstructor;if(r instanceof S){var o=16-t.length%16;t+=String.fromCharCode(o).repeat(o);var c=new Uint8Array(16);if("undefined"!=typeof crypto)crypto.getRandomValues(c);else for(var u=0;u<16;u++)c[u]=Math.floor(256*Math.random());var h=(0,l.stringToBytes)(t);h=r.encrypt(h,c);var d=new Uint8Array(16+h.length);d.set(c);d.set(h,16);return(0,l.bytesToString)(d)}var m=(0,l.stringToBytes)(t);m=r.encrypt(m);return(0,l.bytesToString)(m)}}]);return CipherTransform}(),O=function CipherTransformFactoryClosure(){var t=new Uint8Array([40,191,78,94,78,117,138,65,100,0,78,86,255,250,1,8,46,46,0,182,208,104,62,128,47,12,169,254,100,83,105,122]);function prepareKeyData(r,o,l,c,u,m,g,y){var v,S,_=40+l.length+r.length,k=new Uint8Array(_),C=0;if(o){S=Math.min(32,o.length);for(;C<S;++C)k[C]=o[C]}v=0;for(;C<32;)k[C++]=t[v++];for(v=0,S=l.length;v<S;++v)k[C++]=l[v];k[C++]=255&u;k[C++]=u>>8&255;k[C++]=u>>16&255;k[C++]=u>>>24&255;for(v=0,S=r.length;v<S;++v)k[C++]=r[v];if(m>=4&&!y){k[C++]=255;k[C++]=255;k[C++]=255;k[C++]=255}var w=d(k,0,C),x=g>>3;if(m>=3)for(v=0;v<50;++v)w=d(w,0,x);var O,T=w.subarray(0,x);if(m>=3){for(C=0;C<32;++C)k[C]=t[C];for(v=0,S=r.length;v<S;++v)k[C++]=r[v];O=new h(T).encryptBlock(d(k,0,C));S=T.length;var R=new Uint8Array(S);for(v=1;v<=19;++v){for(var E=0;E<S;++E)R[E]=T[E]^v;O=new h(R).encryptBlock(O)}for(v=0,S=O.length;v<S;++v)if(c[v]!==O[v])return null}else for(v=0,S=(O=new h(T).encryptBlock(t)).length;v<S;++v)if(c[v]!==O[v])return null;return T}var r=c.Name.get("Identity");function buildObjectKey(t,r,o){var l,c=arguments.length>3&&void 0!==arguments[3]&&arguments[3],u=new Uint8Array(o.length+9),h=o.length;for(l=0;l<h;++l)u[l]=o[l];u[l++]=255&t;u[l++]=t>>8&255;u[l++]=t>>16&255;u[l++]=255&r;u[l++]=r>>8&255;if(c){u[l++]=115;u[l++]=65;u[l++]=108;u[l++]=84}var m=d(u,0,l);return m.subarray(0,Math.min(o.length+5,16))}function buildCipherConstructor(t,r,o,u,d){if(!(0,c.isName)(r))throw new l.FormatError("Invalid crypt filter name.");var m,g=t.get(r.name);null!=g&&(m=g.get("CFM"));if(!m||"None"===m.name)return function cipherTransformFactoryBuildCipherConstructorNone(){return new v};if("V2"===m.name)return function cipherTransformFactoryBuildCipherConstructorV2(){return new h(buildObjectKey(o,u,d,!1))};if("AESV2"===m.name)return function cipherTransformFactoryBuildCipherConstructorAESV2(){return new _(buildObjectKey(o,u,d,!0))};if("AESV3"===m.name)return function cipherTransformFactoryBuildCipherConstructorAESV3(){return new k(d)};throw new l.FormatError("Unknown crypto method")}return function(){function CipherTransformFactory(o,u,m){_classCallCheck(this,CipherTransformFactory);var g=o.get("Filter");if(!(0,c.isName)(g,"Standard"))throw new l.FormatError("unknown encryption method");this.dict=o;var y=o.get("V");if(!Number.isInteger(y)||1!==y&&2!==y&&4!==y&&5!==y)throw new l.FormatError("unsupported encryption algorithm");this.algorithm=y;var v=o.get("Length");if(!v)if(y<=3)v=40;else{var S=o.get("CF"),_=o.get("StmF");if((0,c.isDict)(S)&&(0,c.isName)(_)){S.suppressEncryption=!0;var k=S.get(_.name);(v=k&&k.get("Length")||128)<40&&(v<<=3)}}if(!Number.isInteger(v)||v<40||v%8!=0)throw new l.FormatError("invalid key length");var x=(0,l.stringToBytes)(o.get("O")).subarray(0,32),O=(0,l.stringToBytes)(o.get("U")).subarray(0,32),T=o.get("P"),R=o.get("R"),E=(4===y||5===y)&&!1!==o.get("EncryptMetadata");this.encryptMetadata=E;var M,D,j=(0,l.stringToBytes)(u);if(m){if(6===R)try{m=(0,l.utf8StringToString)(m)}catch(t){(0,l.warn)("CipherTransformFactory: Unable to convert UTF8 encoded password.")}M=(0,l.stringToBytes)(m)}if(5!==y)D=prepareKeyData(j,M,x,O,T,R,v,E);else{var L=(0,l.stringToBytes)(o.get("O")).subarray(32,40),N=(0,l.stringToBytes)(o.get("O")).subarray(40,48),U=(0,l.stringToBytes)(o.get("U")).subarray(0,48),H=(0,l.stringToBytes)(o.get("U")).subarray(32,40),W=(0,l.stringToBytes)(o.get("U")).subarray(40,48),$=(0,l.stringToBytes)(o.get("OE")),q=(0,l.stringToBytes)(o.get("UE"));(0,l.stringToBytes)(o.get("Perms"));D=function createEncryptionKey20(t,r,o,l,c,u,h,d,m,g,y,v){if(r){var S=Math.min(127,r.length);r=r.subarray(0,S)}else r=[];var _;return(_=6===t?new w:new C).checkUserPassword(r,d,h)?_.getUserKey(r,m,y):r.length&&_.checkOwnerPassword(r,l,u,o)?_.getOwnerKey(r,c,u,g):null}(R,M,x,L,N,U,O,H,W,$,q)}if(!D&&!m)throw new l.PasswordException("No password given",l.PasswordResponses.NEED_PASSWORD);if(!D&&m){var X=function decodeUserPassword(r,o,l,c){for(var u=new Uint8Array(32),m=0,g=Math.min(32,r.length);m<g;++m)u[m]=r[m];for(var y=0;m<32;)u[m++]=t[y++];var v,S=d(u,0,m),_=c>>3;if(l>=3)for(y=0;y<50;++y)S=d(S,0,S.length);if(l>=3){v=o;var k=new Uint8Array(_);for(y=19;y>=0;y--){for(var C=0;C<_;++C)k[C]=S[C]^y;v=new h(k).encryptBlock(v)}}else v=new h(S.subarray(0,_)).encryptBlock(o);return v}(M,x,R,v);D=prepareKeyData(j,X,x,O,T,R,v,E)}if(!D)throw new l.PasswordException("Incorrect Password",l.PasswordResponses.INCORRECT_PASSWORD);this.encryptionKey=D;if(y>=4){var z=o.get("CF");(0,c.isDict)(z)&&(z.suppressEncryption=!0);this.cf=z;this.stmf=o.get("StmF")||r;this.strf=o.get("StrF")||r;this.eff=o.get("EFF")||this.stmf}}_createClass(CipherTransformFactory,[{key:"createCipherTransform",value:function createCipherTransform(t,r){if(4===this.algorithm||5===this.algorithm)return new x(buildCipherConstructor(this.cf,this.stmf,t,r,this.encryptionKey),buildCipherConstructor(this.cf,this.strf,t,r,this.encryptionKey));var o=buildObjectKey(t,r,this.encryptionKey,!1),l=function buildCipherCipherConstructor(){return new h(o)};return new x(l,l)}}]);return CipherTransformFactory}()}();r.CipherTransformFactory=O},(t,r,o)=>{"use strict";function _typeof(t){_typeof="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function _typeof(t){return typeof t}:function _typeof(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t};return _typeof(t)}Object.defineProperty(r,"__esModule",{value:!0});r.DecryptStream=void 0;var l=o(142);function _defineProperties(t,r){for(var o=0;o<r.length;o++){var l=r[o];l.enumerable=l.enumerable||!1;l.configurable=!0;"value"in l&&(l.writable=!0);Object.defineProperty(t,l.key,l)}}function _setPrototypeOf(t,r){_setPrototypeOf=Object.setPrototypeOf||function _setPrototypeOf(t,r){t.__proto__=r;return t};return _setPrototypeOf(t,r)}function _createSuper(t){var r=function _isNativeReflectConstruct(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){})));return!0}catch(t){return!1}}();return function _createSuperInternal(){var o,l=_getPrototypeOf(t);if(r){var c=_getPrototypeOf(this).constructor;o=Reflect.construct(l,arguments,c)}else o=l.apply(this,arguments);return _possibleConstructorReturn(this,o)}}function _possibleConstructorReturn(t,r){if(r&&("object"===_typeof(r)||"function"==typeof r))return r;if(void 0!==r)throw new TypeError("Derived constructors may only return object or undefined");return function _assertThisInitialized(t){if(void 0===t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return t}(t)}function _getPrototypeOf(t){_getPrototypeOf=Object.setPrototypeOf?Object.getPrototypeOf:function _getPrototypeOf(t){return t.__proto__||Object.getPrototypeOf(t)};return _getPrototypeOf(t)}var c=function(t){!function _inherits(t,r){if("function"!=typeof r&&null!==r)throw new TypeError("Super expression must either be null or a function");t.prototype=Object.create(r&&r.prototype,{constructor:{value:t,writable:!0,configurable:!0}});r&&_setPrototypeOf(t,r)}(DecryptStream,t);var r=_createSuper(DecryptStream);function DecryptStream(t,o,l){var c;!function _classCallCheck(t,r){if(!(t instanceof r))throw new TypeError("Cannot call a class as a function")}(this,DecryptStream);(c=r.call(this,o)).str=t;c.dict=t.dict;c.decrypt=l;c.nextChunk=null;c.initialized=!1;return c}!function _createClass(t,r,o){r&&_defineProperties(t.prototype,r);o&&_defineProperties(t,o);return t}(DecryptStream,[{key:"readBlock",value:function readBlock(){var t;if(this.initialized)t=this.nextChunk;else{t=this.str.getBytes(512);this.initialized=!0}if(t&&0!==t.length){this.nextChunk=this.str.getBytes(512);var r=this.nextChunk&&this.nextChunk.length>0;t=(0,this.decrypt)(t,!r);for(var o=this.bufferLength,l=t.length,c=this.ensureBuffer(o+l),u=0;u<l;u++)c[o++]=t[u];this.bufferLength=o}else this.eof=!0}}]);return DecryptStream}(l.DecodeStream);r.DecryptStream=c},(t,r,o)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});r.XFAFactory=void 0;var l=o(188),c=o(192),u=o(198),h=o(196),d=o(189),m=o(4),g=o(199);function _createForOfIteratorHelper(t,r){var o="undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(!o){if(Array.isArray(t)||(o=function _unsupportedIterableToArray(t,r){if(!t)return;if("string"==typeof t)return _arrayLikeToArray(t,r);var o=Object.prototype.toString.call(t).slice(8,-1);"Object"===o&&t.constructor&&(o=t.constructor.name);if("Map"===o||"Set"===o)return Array.from(t);if("Arguments"===o||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(o))return _arrayLikeToArray(t,r)}(t))||r&&t&&"number"==typeof t.length){o&&(t=o);var l=0,c=function F(){};return{s:c,n:function n(){return l>=t.length?{done:!0}:{done:!1,value:t[l++]}},e:function e(t){throw t},f:c}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var u,h=!0,d=!1;return{s:function s(){o=o.call(t)},n:function n(){var t=o.next();h=t.done;return t},e:function e(t){d=!0;u=t},f:function f(){try{h||null==o.return||o.return()}finally{if(d)throw u}}}}function _arrayLikeToArray(t,r){(null==r||r>t.length)&&(r=t.length);for(var o=0,l=new Array(r);o<r;o++)l[o]=t[o];return l}function _defineProperties(t,r){for(var o=0;o<r.length;o++){var l=r[o];l.enumerable=l.enumerable||!1;l.configurable=!0;"value"in l&&(l.writable=!0);Object.defineProperty(t,l.key,l)}}var y=function(){function XFAFactory(t){!function _classCallCheck(t,r){if(!(t instanceof r))throw new TypeError("Cannot call a class as a function")}(this,XFAFactory);try{this.root=(new g.XFAParser).parse(XFAFactory._createDocument(t));var r=new c.Binder(this.root);this.form=r.bind();this.dataHandler=new u.DataHandler(this.root,r.getData());this.form[l.$globalData].template=this.form}catch(t){(0,m.warn)("XFA - an error occurred during parsing and binding: ".concat(t))}}!function _createClass(t,r,o){r&&_defineProperties(t.prototype,r);o&&_defineProperties(t,o);return t}(XFAFactory,[{key:"isValid",value:function isValid(){return this.root&&this.form}},{key:"_createPages",value:function _createPages(){try{this.pages=this.form[l.$toHTML]();this.dims=this.pages.children.map((function(t){var r=t.attributes.style,o=r.width,l=r.height;return[0,0,parseInt(o),parseInt(l)]}))}catch(t){(0,m.warn)("XFA - an error occurred during layout: ".concat(t))}}},{key:"getBoundingBox",value:function getBoundingBox(t){return this.dims[t]}},{key:"numberPages",get:function get(){this.pages||this._createPages();return this.dims.length}},{key:"setImages",value:function setImages(t){this.form[l.$globalData].images=t}},{key:"setFonts",value:function setFonts(t){this.form[l.$globalData].fontFinder=new h.FontFinder(t);var r,o=[],c=_createForOfIteratorHelper(this.form[l.$globalData].usedTypefaces);try{for(c.s();!(r=c.n()).done;){var u=r.value;u=(0,d.stripQuotes)(u);this.form[l.$globalData].fontFinder.find(u)||o.push(u)}}catch(t){c.e(t)}finally{c.f()}return o.length>0?o:null}},{key:"appendFonts",value:function appendFonts(t,r){this.form[l.$globalData].fontFinder.add(t,r)}},{key:"getPages",value:function getPages(){this.pages||this._createPages();var t=this.pages;this.pages=null;return t}},{key:"serializeData",value:function serializeData(t){return this.dataHandler.serialize(t)}}],[{key:"_createDocument",value:function _createDocument(t){return t["/xdp:xdp"]?Object.values(t).join(""):t["xdp:xdp"]}}]);return XFAFactory}();r.XFAFactory=y},(t,r,o)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});r.XmlObject=r.XFAObjectArray=r.XFAObject=r.XFAAttribute=r.StringObject=r.OptionObject=r.Option10=r.Option01=r.IntegerObject=r.ContentObject=r.$uid=r.$toStyle=r.$toString=r.$toHTML=r.$text=r.$tabIndex=r.$setValue=r.$setSetAttributes=r.$setId=r.$searchNode=r.$root=r.$resolvePrototypes=r.$removeChild=r.$pushPara=r.$pushGlyphs=r.$popPara=r.$onText=r.$onChildCheck=r.$onChild=r.$nsAttributes=r.$nodeName=r.$namespaceId=r.$isUsable=r.$isTransparent=r.$isThereMoreWidth=r.$isSplittable=r.$isNsAgnostic=r.$isDescendent=r.$isDataValue=r.$isCDATAXml=r.$isBindable=r.$insertAt=r.$indexOf=r.$ids=r.$hasSettableValue=r.$globalData=r.$getTemplateRoot=r.$getSubformParent=r.$getRealChildrenByNameIt=r.$getParent=r.$getNextPage=r.$getExtra=r.$getDataValue=r.$getContainedChildren=r.$getChildrenByNameIt=r.$getChildrenByName=r.$getChildrenByClass=r.$getChildren=r.$getAvailableSpace=r.$getAttributes=r.$getAttributeIt=r.$flushHTML=r.$finalize=r.$extra=r.$dump=r.$data=r.$content=r.$consumed=r.$clone=r.$cleanup=r.$cleanPage=r.$clean=r.$childrenToHTML=r.$appendChild=r.$addHTML=r.$acceptWhitespace=void 0;var l=function _interopRequireDefault(t){return t&&t.__esModule?t:{default:t}}(o(2)),c=o(189),u=o(4),h=o(122),d=o(190),m=o(191);function _get(t,r,o){_get="undefined"!=typeof Reflect&&Reflect.get?Reflect.get:function _get(t,r,o){var l=function _superPropBase(t,r){for(;!Object.prototype.hasOwnProperty.call(t,r)&&null!==(t=_getPrototypeOf(t)););return t}(t,r);if(l){var c=Object.getOwnPropertyDescriptor(l,r);return c.get?c.get.call(o):c.value}};return _get(t,r,o||t)}function _slicedToArray(t,r){return function _arrayWithHoles(t){if(Array.isArray(t))return t}(t)||function _iterableToArrayLimit(t,r){var o=null==t?null:"undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(null==o)return;var l,c,u=[],h=!0,d=!1;try{for(o=o.call(t);!(h=(l=o.next()).done);h=!0){u.push(l.value);if(r&&u.length===r)break}}catch(t){d=!0;c=t}finally{try{h||null==o.return||o.return()}finally{if(d)throw c}}return u}(t,r)||_unsupportedIterableToArray(t,r)||function _nonIterableRest(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function _inherits(t,r){if("function"!=typeof r&&null!==r)throw new TypeError("Super expression must either be null or a function");t.prototype=Object.create(r&&r.prototype,{constructor:{value:t,writable:!0,configurable:!0}});r&&_setPrototypeOf(t,r)}function _setPrototypeOf(t,r){_setPrototypeOf=Object.setPrototypeOf||function _setPrototypeOf(t,r){t.__proto__=r;return t};return _setPrototypeOf(t,r)}function _createSuper(t){var r=function _isNativeReflectConstruct(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){})));return!0}catch(t){return!1}}();return function _createSuperInternal(){var o,l=_getPrototypeOf(t);if(r){var c=_getPrototypeOf(this).constructor;o=Reflect.construct(l,arguments,c)}else o=l.apply(this,arguments);return _possibleConstructorReturn(this,o)}}function _possibleConstructorReturn(t,r){if(r&&("object"===_typeof(r)||"function"==typeof r))return r;if(void 0!==r)throw new TypeError("Derived constructors may only return object or undefined");return _assertThisInitialized(t)}function _assertThisInitialized(t){if(void 0===t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return t}function _getPrototypeOf(t){_getPrototypeOf=Object.setPrototypeOf?Object.getPrototypeOf:function _getPrototypeOf(t){return t.__proto__||Object.getPrototypeOf(t)};return _getPrototypeOf(t)}function _typeof(t){_typeof="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function _typeof(t){return typeof t}:function _typeof(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t};return _typeof(t)}function _toConsumableArray(t){return function _arrayWithoutHoles(t){if(Array.isArray(t))return _arrayLikeToArray(t)}(t)||function _iterableToArray(t){if("undefined"!=typeof Symbol&&null!=t[Symbol.iterator]||null!=t["@@iterator"])return Array.from(t)}(t)||_unsupportedIterableToArray(t)||function _nonIterableSpread(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function _createForOfIteratorHelper(t,r){var o="undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(!o){if(Array.isArray(t)||(o=_unsupportedIterableToArray(t))||r&&t&&"number"==typeof t.length){o&&(t=o);var l=0,c=function F(){};return{s:c,n:function n(){return l>=t.length?{done:!0}:{done:!1,value:t[l++]}},e:function e(t){throw t},f:c}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var u,h=!0,d=!1;return{s:function s(){o=o.call(t)},n:function n(){var t=o.next();h=t.done;return t},e:function e(t){d=!0;u=t},f:function f(){try{h||null==o.return||o.return()}finally{if(d)throw u}}}}function _unsupportedIterableToArray(t,r){if(t){if("string"==typeof t)return _arrayLikeToArray(t,r);var o=Object.prototype.toString.call(t).slice(8,-1);"Object"===o&&t.constructor&&(o=t.constructor.name);return"Map"===o||"Set"===o?Array.from(t):"Arguments"===o||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(o)?_arrayLikeToArray(t,r):void 0}}function _arrayLikeToArray(t,r){(null==r||r>t.length)&&(r=t.length);for(var o=0,l=new Array(r);o<r;o++)l[o]=t[o];return l}function _classCallCheck(t,r){if(!(t instanceof r))throw new TypeError("Cannot call a class as a function")}function _defineProperties(t,r){for(var o=0;o<r.length;o++){var l=r[o];l.enumerable=l.enumerable||!1;l.configurable=!0;"value"in l&&(l.writable=!0);Object.defineProperty(t,l.key,l)}}function _createClass(t,r,o){r&&_defineProperties(t.prototype,r);o&&_defineProperties(t,o);return t}var g=Symbol();r.$acceptWhitespace=g;var y=Symbol();r.$addHTML=y;var v=Symbol();r.$appendChild=v;var S=Symbol();r.$childrenToHTML=S;var _=Symbol();r.$clean=_;var k=Symbol();r.$cleanPage=k;var C=Symbol();r.$cleanup=C;var w=Symbol();r.$clone=w;var x=Symbol();r.$consumed=x;var O=Symbol("content");r.$content=O;var T=Symbol("data");r.$data=T;var R=Symbol();r.$dump=R;var E=Symbol("extra");r.$extra=E;var M=Symbol();r.$finalize=M;var D=Symbol();r.$flushHTML=D;var j=Symbol();r.$getAttributeIt=j;var L=Symbol();r.$getAttributes=L;var N=Symbol();r.$getAvailableSpace=N;var U=Symbol();r.$getChildrenByClass=U;var H=Symbol();r.$getChildrenByName=H;var W=Symbol();r.$getChildrenByNameIt=W;var $=Symbol();r.$getDataValue=$;var q=Symbol();r.$getExtra=q;var X=Symbol();r.$getRealChildrenByNameIt=X;var z=Symbol();r.$getChildren=z;var G=Symbol();r.$getContainedChildren=G;var V=Symbol();r.$getNextPage=V;var Y=Symbol();r.$getSubformParent=Y;var K=Symbol();r.$getParent=K;var J=Symbol();r.$getTemplateRoot=J;var Q=Symbol();r.$globalData=Q;var Z=Symbol();r.$hasSettableValue=Z;var ee=Symbol();r.$ids=ee;var te=Symbol();r.$indexOf=te;var re=Symbol();r.$insertAt=re;var ae=Symbol();r.$isCDATAXml=ae;var ne=Symbol();r.$isBindable=ne;var ie=Symbol();r.$isDataValue=ie;var oe=Symbol();r.$isDescendent=oe;var se=Symbol();r.$isNsAgnostic=se;var le=Symbol();r.$isSplittable=le;var ce=Symbol();r.$isThereMoreWidth=ce;var ue=Symbol();r.$isTransparent=ue;var fe=Symbol();r.$isUsable=fe;var he=Symbol(),de=Symbol("namespaceId");r.$namespaceId=de;var pe=Symbol("nodeName");r.$nodeName=pe;var me=Symbol();r.$nsAttributes=me;var ge=Symbol();r.$onChild=ge;var ye=Symbol();r.$onChildCheck=ye;var ve=Symbol();r.$onText=ve;var be=Symbol();r.$pushGlyphs=be;var Se=Symbol();r.$popPara=Se;var _e=Symbol();r.$pushPara=_e;var ke=Symbol();r.$removeChild=ke;var Ce=Symbol("root");r.$root=Ce;var we=Symbol();r.$resolvePrototypes=we;var Ae=Symbol();r.$searchNode=Ae;var xe=Symbol();r.$setId=xe;var Oe=Symbol();r.$setSetAttributes=Oe;var Pe=Symbol();r.$setValue=Pe;var Te=Symbol();r.$tabIndex=Te;var Ie=Symbol();r.$text=Ie;var Fe=Symbol();r.$toHTML=Fe;var Re=Symbol();r.$toString=Re;var Ee=Symbol();r.$toStyle=Ee;var Me=Symbol("uid");r.$uid=Me;var Be=Symbol(),De=Symbol(),je=Symbol(),Le=Symbol("_children"),Ne=Symbol(),Ue=Symbol(),He=Symbol(),We=Symbol(),$e=Symbol(),qe=Symbol(),Xe=Symbol(),ze=Symbol(),Ge=Symbol(),Ve=Symbol("parent"),Ye=Symbol(),Ke=Symbol(),Je=Symbol(),Qe=0,Ze=d.NamespaceIds.datasets.id,et=function(){function XFAObject(t,r){var o=arguments.length>2&&void 0!==arguments[2]&&arguments[2];_classCallCheck(this,XFAObject);this[de]=t;this[pe]=r;this[Xe]=o;this[Ve]=null;this[Le]=[];this[Me]="".concat(r).concat(Qe++);this[Q]=null}_createClass(XFAObject,[{key:ge,value:function value(t){if(!this[Xe]||!this[ye](t))return!1;var r=t[pe],o=this[r];if(!(o instanceof tt)){null!==o&&this[ke](o);this[r]=t;this[v](t);return!0}if(o.push(t)){this[v](t);return!0}var l="";this.id?l=" (id: ".concat(this.id,")"):this.name&&(l=" (name: ".concat(this.name," ").concat(this.h.value,")"));(0,u.warn)('XFA - node "'.concat(this[pe],'"').concat(l,' has already enough "').concat(r,'"!'));return!1}},{key:ye,value:function value(t){return this.hasOwnProperty(t[pe])&&t[de]===this[de]}},{key:se,value:function value(){return!1}},{key:g,value:function value(){return!1}},{key:ae,value:function value(){return!1}},{key:ne,value:function value(){return!1}},{key:Se,value:function value(){this.para&&this[J]()[E].paraStack.pop()}},{key:_e,value:function value(){this[J]()[E].paraStack.push(this.para)}},{key:xe,value:function value(t){this.id&&this[de]===d.NamespaceIds.template.id&&t.set(this.id,this)}},{key:J,value:function value(){return this[Q].template}},{key:le,value:function value(){return!1}},{key:ce,value:function value(){return!1}},{key:v,value:function value(t){t[Ve]=this;this[Le].push(t);!t[Q]&&this[Q]&&(t[Q]=this[Q])}},{key:ke,value:function value(t){var r=this[Le].indexOf(t);this[Le].splice(r,1)}},{key:Z,value:function value(){return this.hasOwnProperty("value")}},{key:Pe,value:function value(t){}},{key:ve,value:function value(t){}},{key:M,value:function value(){}},{key:_,value:function value(t){delete this[Xe];if(this[C]){t.clean(this[C]);delete this[C]}}},{key:te,value:function value(t){return this[Le].indexOf(t)}},{key:re,value:function value(t,r){r[Ve]=this;this[Le].splice(t,0,r);!r[Q]&&this[Q]&&(r[Q]=this[Q])}},{key:ue,value:function value(){return!this.name}},{key:he,value:function value(){return""}},{key:Ie,value:function value(){return 0===this[Le].length?this[O]:this[Le].map((function(t){return t[Ie]()})).join("")}},{key:je,get:function get(){var t=Object.getPrototypeOf(this);if(!t._attributes){var r,o=t._attributes=new Set,l=_createForOfIteratorHelper(Object.getOwnPropertyNames(this));try{for(l.s();!(r=l.n()).done;){var c=r.value;if(null===this[c]||this[c]instanceof XFAObject||this[c]instanceof tt)break;o.add(c)}}catch(t){l.e(t)}finally{l.f()}}return(0,u.shadow)(this,je,t._attributes)}},{key:oe,value:function value(t){for(var r=this;r;){if(r===t)return!0;r=r[K]()}return!1}},{key:K,value:function value(){return this[Ve]}},{key:Y,value:function value(){return this[K]()}},{key:z,value:function value(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:null;return t?this[t]:this[Le]}},{key:R,value:function value(){var t=Object.create(null);this[O]&&(t.$content=this[O]);var r,o=_createForOfIteratorHelper(Object.getOwnPropertyNames(this));try{for(o.s();!(r=o.n()).done;){var l=r.value,value=this[l];null!==value&&(value instanceof XFAObject?t[l]=value[R]():value instanceof tt?value.isEmpty()||(t[l]=value.dump()):t[l]=value)}}catch(t){o.e(t)}finally{o.f()}return t}},{key:Ee,value:function value(){return null}},{key:Fe,value:function value(){return c.HTMLResult.EMPTY}},{key:G,value:l.default.mark((function value(){var t,r,o;return l.default.wrap((function value$(l){for(;;)switch(l.prev=l.next){case 0:t=_createForOfIteratorHelper(this[z]());l.prev=1;t.s();case 3:if((r=t.n()).done){l.next=9;break}o=r.value;l.next=7;return o;case 7:l.next=3;break;case 9:l.next=14;break;case 11:l.prev=11;l.t0=l.catch(1);t.e(l.t0);case 14:l.prev=14;t.f();return l.finish(14);case 17:case"end":return l.stop()}}),value,this,[[1,11,14,17]])}))},{key:We,value:l.default.mark((function value(t,r){var o,c,u,h,d;return l.default.wrap((function value$(l){for(;;)switch(l.prev=l.next){case 0:o=_createForOfIteratorHelper(this[G]());l.prev=1;o.s();case 3:if((c=o.n()).done){l.next=13;break}u=c.value;if(t&&r!==t.has(u[pe])){l.next=11;break}h=this[N]();(d=u[Fe](h)).success||(this[E].failingNode=u);l.next=11;return d;case 11:l.next=3;break;case 13:l.next=18;break;case 15:l.prev=15;l.t0=l.catch(1);o.e(l.t0);case 18:l.prev=18;o.f();return l.finish(18);case 21:case"end":return l.stop()}}),value,this,[[1,15,18,21]])}))},{key:D,value:function value(){return null}},{key:y,value:function value(t,r){this[E].children.push(t)}},{key:N,value:function value(){}},{key:S,value:function value(t){var r=t.filter,o=void 0===r?null:r,l=t.include,u=void 0===l||l;if(this[E].generator){var h=this[N](),d=this[E].failingNode[Fe](h);if(!d.success)return d;d.html&&this[y](d.html,d.bbox);delete this[E].failingNode}else this[E].generator=this[We](o,u);for(;;){var m=this[E].generator.next();if(m.done)break;var g=m.value;if(!g.success)return g;g.html&&this[y](g.html,g.bbox)}this[E].generator=null;return c.HTMLResult.EMPTY}},{key:Oe,value:function value(t){this[Ke]=new Set(Object.keys(t))}},{key:qe,value:function value(t){var r=this[je],o=this[Ke];return _toConsumableArray(t).filter((function(t){return r.has(t)&&!o.has(t)}))}},{key:we,value:function value(t){var r,o=arguments.length>1&&void 0!==arguments[1]?arguments[1]:new Set,l=_createForOfIteratorHelper(this[Le]);try{for(l.s();!(r=l.n()).done;){var c=r.value;c[Ye](t,o)}}catch(t){l.e(t)}finally{l.f()}}},{key:Ye,value:function value(t,r){var o=this[$e](t,r);o?this[Be](o,t,r):this[we](t,r)}},{key:$e,value:function value(t,r){var o=this.use,l=this.usehref;if(!o&&!l)return null;var c=null,h=null,d=null,g=o;if(l){g=l;l.startsWith("#som(")&&l.endsWith(")")?h=l.slice("#som(".length,l.length-1):l.startsWith(".#som(")&&l.endsWith(")")?h=l.slice(".#som(".length,l.length-1):l.startsWith("#")?d=l.slice(1):l.startsWith(".#")&&(d=l.slice(2))}else o.startsWith("#")?d=o.slice(1):h=o;this.use=this.usehref="";d?c=t.get(d):(c=(0,m.searchNode)(t.get(Ce),this,h,!0,!1))&&(c=c[0]);if(!c){(0,u.warn)("XFA - Invalid prototype reference: ".concat(g,"."));return null}if(c[pe]!==this[pe]){(0,u.warn)("XFA - Incompatible prototype: ".concat(c[pe]," !== ").concat(this[pe],"."));return null}if(r.has(c)){(0,u.warn)("XFA - Cycle detected in prototypes use.");return null}r.add(c);var y=c[$e](t,r);y&&c[Be](y,t,r);c[we](t,r);r.delete(c);return c}},{key:Be,value:function value(t,r,o){if(o.has(t))(0,u.warn)("XFA - Cycle detected in prototypes use.");else{!this[O]&&t[O]&&(this[O]=t[O]);new Set(o).add(t);var l,c=_createForOfIteratorHelper(this[qe](t[Ke]));try{for(c.s();!(l=c.n()).done;){var h=l.value;this[h]=t[h];this[Ke]&&this[Ke].add(h)}}catch(t){c.e(t)}finally{c.f()}var d,m=_createForOfIteratorHelper(Object.getOwnPropertyNames(this));try{for(m.s();!(d=m.n()).done;){var g=d.value;if(!this[je].has(g)){var y=this[g],v=t[g];if(y instanceof tt){var S,_=_createForOfIteratorHelper(y[Le]);try{for(_.s();!(S=_.n()).done;){S.value[Ye](r,o)}}catch(t){_.e(t)}finally{_.f()}for(var k=y[Le].length,C=v[Le].length;k<C;k++){var x=t[Le][k][w]();if(!y.push(x))break;x[Ve]=this;this[Le].push(x);x[Ye](r,o)}}else if(null===y){if(null!==v){var T=v[w]();T[Ve]=this;this[g]=T;this[Le].push(T);T[Ye](r,o)}}else{y[we](r,o);v&&y[Be](v,r,o)}}}}catch(t){m.e(t)}finally{m.f()}}}},{key:w,value:function value(){var t,r=Object.create(Object.getPrototypeOf(this)),o=_createForOfIteratorHelper(Object.getOwnPropertySymbols(this));try{for(o.s();!(t=o.n()).done;){var l=t.value;try{r[l]=this[l]}catch(t){(0,u.shadow)(r,l,this[l])}}}catch(t){o.e(t)}finally{o.f()}r[Me]="".concat(r[pe]).concat(Qe++);r[Le]=[];var c,h=_createForOfIteratorHelper(Object.getOwnPropertyNames(this));try{for(h.s();!(c=h.n()).done;){var d=c.value;if(this[je].has(d))r[d]=XFAObject[Ne](this[d]);else{var m=this[d];r[d]=m instanceof tt?new tt(m[ze]):null}}}catch(t){h.e(t)}finally{h.f()}var g,y=_createForOfIteratorHelper(this[Le]);try{for(y.s();!(g=y.n()).done;){var v=g.value,S=v[pe],_=v[w]();r[Le].push(_);_[Ve]=r;null===r[S]?r[S]=_:r[S][Le].push(_)}}catch(t){y.e(t)}finally{y.f()}return r}},{key:z,value:function value(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:null;return t?this[Le].filter((function(r){return r[pe]===t})):this[Le]}},{key:U,value:function value(t){return this[t]}},{key:H,value:function value(t,r){var o=!(arguments.length>2&&void 0!==arguments[2])||arguments[2];return Array.from(this[W](t,r,o))}},{key:W,value:l.default.mark((function value(t,r){var o,c,u,h,d=arguments;return l.default.wrap((function value$(l){for(;;)switch(l.prev=l.next){case 0:o=!(d.length>2&&void 0!==d[2])||d[2];if("parent"!==t){l.next=5;break}l.next=4;return this[Ve];case 4:return l.abrupt("return");case 5:c=_createForOfIteratorHelper(this[Le]);l.prev=6;c.s();case 8:if((u=c.n()).done){l.next=20;break}if((h=u.value)[pe]!==t){l.next=13;break}l.next=13;return h;case 13:if(h.name!==t){l.next=16;break}l.next=16;return h;case 16:if(!r&&!h[ue]()){l.next=18;break}return l.delegateYield(h[W](t,r,!1),"t0",18);case 18:l.next=8;break;case 20:l.next=25;break;case 22:l.prev=22;l.t1=l.catch(6);c.e(l.t1);case 25:l.prev=25;c.f();return l.finish(25);case 28:if(!o||!this[je].has(t)){l.next=31;break}l.next=31;return new rt(this,t,this[t]);case 31:case"end":return l.stop()}}),value,this,[[6,22,25,28]])}))}],[{key:Ne,value:function value(t){return Array.isArray(t)?t.map((function(t){return XFAObject[Ne](t)})):"object"===_typeof(t)&&null!==t?Object.assign({},t):t}}]);return XFAObject}();r.XFAObject=et;var tt=function(){function XFAObjectArray(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:1/0;_classCallCheck(this,XFAObjectArray);this[ze]=t;this[Le]=[]}_createClass(XFAObjectArray,[{key:"push",value:function push(t){if(this[Le].length<=this[ze]){this[Le].push(t);return!0}(0,u.warn)('XFA - node "'.concat(t[pe],'" accepts no more than ').concat(this[ze]," children"));return!1}},{key:"isEmpty",value:function isEmpty(){return 0===this[Le].length}},{key:"dump",value:function dump(){return 1===this[Le].length?this[Le][0][R]():this[Le].map((function(t){return t[R]()}))}},{key:w,value:function value(){var t=new XFAObjectArray(this[ze]);t[Le]=this[Le].map((function(t){return t[w]()}));return t}},{key:"children",get:function get(){return this[Le]}},{key:"clear",value:function clear(){this[Le].length=0}}]);return XFAObjectArray}();r.XFAObjectArray=tt;var rt=function(){function XFAAttribute(t,r,o){_classCallCheck(this,XFAAttribute);this[Ve]=t;this[pe]=r;this[O]=o;this[x]=!1;this[Me]="attribute".concat(Qe++)}_createClass(XFAAttribute,[{key:K,value:function value(){return this[Ve]}},{key:ie,value:function value(){return!0}},{key:$,value:function value(){return this[O].trim()}},{key:Pe,value:function(t){function value(r){return t.apply(this,arguments)}value.toString=function(){return t.toString()};return value}((function(t){t=t.value||"";this[O]=t.toString()}))},{key:Ie,value:function value(){return this[O]}},{key:oe,value:function value(t){return this[Ve]===t||this[Ve][oe](t)}}]);return XFAAttribute}();r.XFAAttribute=rt;var at=function(t){_inherits(XmlObject,t);var r=_createSuper(XmlObject);function XmlObject(t,o){var l,c=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};_classCallCheck(this,XmlObject);(l=r.call(this,t,o))[O]="";l[Ue]=null;if("#text"!==o){var u=new Map;l[De]=u;for(var h=0,d=Object.entries(c);h<d.length;h++){var m=_slicedToArray(d[h],2),g=m[0],y=m[1];u.set(g,new rt(_assertThisInitialized(l),g,y))}if(c.hasOwnProperty(me)){var v=c[me].xfa.dataNode;void 0!==v&&("dataGroup"===v?l[Ue]=!1:"dataValue"===v&&(l[Ue]=!0))}}l[x]=!1;return l}_createClass(XmlObject,[{key:Re,value:function value(t){var r=this[pe];if("#text"!==r){var o=this[de]===Ze?"xfa:":"";t.push("<".concat(o).concat(r));var l,c=_createForOfIteratorHelper(this[De].entries());try{for(c.s();!(l=c.n()).done;){var u=_slicedToArray(l.value,2),d=u[0],m=u[1];t.push(" ".concat(d,'="').concat((0,h.encodeToXmlString)(m[O]),'"'))}}catch(t){c.e(t)}finally{c.f()}null!==this[Ue]&&(this[Ue]?t.push(' xfa:dataNode="dataValue"'):t.push(' xfa:dataNode="dataGroup"'));if(this[O]||0!==this[Le].length){t.push(">");if(this[O])"string"==typeof this[O]?t.push((0,h.encodeToXmlString)(this[O])):this[O][Re](t);else{var g,y=_createForOfIteratorHelper(this[Le]);try{for(y.s();!(g=y.n()).done;){g.value[Re](t)}}catch(t){y.e(t)}finally{y.f()}}t.push("</".concat(o).concat(r,">"))}else t.push("/>")}else t.push((0,h.encodeToXmlString)(this[O]))}},{key:ge,value:function value(t){if(this[O]){var r=new XmlObject(this[de],"#text");this[v](r);r[O]=this[O];this[O]=""}this[v](t);return!0}},{key:ve,value:function value(t){this[O]+=t}},{key:M,value:function value(){if(this[O]&&this[Le].length>0){var t=new XmlObject(this[de],"#text");this[v](t);t[O]=this[O];delete this[O]}}},{key:Fe,value:function value(){return"#text"===this[pe]?c.HTMLResult.success({name:"#text",value:this[O]}):c.HTMLResult.EMPTY}},{key:z,value:function value(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:null;return t?this[Le].filter((function(r){return r[pe]===t})):this[Le]}},{key:L,value:function value(){return this[De]}},{key:U,value:function value(t){var value=this[De].get(t);return void 0!==value?value:this[z](t)}},{key:W,value:l.default.mark((function value(t,r){var value,o,c,u;return l.default.wrap((function value$(l){for(;;)switch(l.prev=l.next){case 0:value=this[De].get(t);if(!value){l.next=4;break}l.next=4;return value;case 4:o=_createForOfIteratorHelper(this[Le]);l.prev=5;o.s();case 7:if((c=o.n()).done){l.next=16;break}if((u=c.value)[pe]!==t){l.next=12;break}l.next=12;return u;case 12:if(!r){l.next=14;break}return l.delegateYield(u[W](t,r),"t0",14);case 14:l.next=7;break;case 16:l.next=21;break;case 18:l.prev=18;l.t1=l.catch(5);o.e(l.t1);case 21:l.prev=21;o.f();return l.finish(21);case 24:case"end":return l.stop()}}),value,this,[[5,18,21,24]])}))},{key:j,value:l.default.mark((function value(t,r){var value,o,c,u;return l.default.wrap((function value$(l){for(;;)switch(l.prev=l.next){case 0:value=this[De].get(t);if(!value||r&&value[x]){l.next=4;break}l.next=4;return value;case 4:o=_createForOfIteratorHelper(this[Le]);l.prev=5;o.s();case 7:if((c=o.n()).done){l.next=12;break}u=c.value;return l.delegateYield(u[j](t,r),"t0",10);case 10:l.next=7;break;case 12:l.next=17;break;case 14:l.prev=14;l.t1=l.catch(5);o.e(l.t1);case 17:l.prev=17;o.f();return l.finish(17);case 20:case"end":return l.stop()}}),value,this,[[5,14,17,20]])}))},{key:X,value:l.default.mark((function value(t,r,o){var c,u,h;return l.default.wrap((function value$(l){for(;;)switch(l.prev=l.next){case 0:c=_createForOfIteratorHelper(this[Le]);l.prev=1;c.s();case 3:if((u=c.n()).done){l.next=12;break}if((h=u.value)[pe]!==t||o&&h[x]){l.next=8;break}l.next=8;return h;case 8:if(!r){l.next=10;break}return l.delegateYield(h[X](t,r,o),"t0",10);case 10:l.next=3;break;case 12:l.next=17;break;case 14:l.prev=14;l.t1=l.catch(1);c.e(l.t1);case 17:l.prev=17;c.f();return l.finish(17);case 20:case"end":return l.stop()}}),value,this,[[1,14,17,20]])}))},{key:ie,value:function value(){return null===this[Ue]?0===this[Le].length||this[Le][0][de]===d.NamespaceIds.xhtml.id:this[Ue]}},{key:$,value:function value(){return null===this[Ue]?0===this[Le].length?this[O].trim():this[Le][0][de]===d.NamespaceIds.xhtml.id?this[Le][0][Ie]().trim():null:this[O].trim()}},{key:Pe,value:function(t){function value(r){return t.apply(this,arguments)}value.toString=function(){return t.toString()};return value}((function(t){t=t.value||"";this[O]=t.toString()}))},{key:R,value:function value(){var t=arguments.length>0&&void 0!==arguments[0]&&arguments[0],r=Object.create(null);t&&(r.$ns=this[de]);this[O]&&(r.$content=this[O]);r.$name=this[pe];r.children=[];var o,l=_createForOfIteratorHelper(this[Le]);try{for(l.s();!(o=l.n()).done;){var c=o.value;r.children.push(c[R](t))}}catch(t){l.e(t)}finally{l.f()}r.attributes=Object.create(null);var u,h=_createForOfIteratorHelper(this[De]);try{for(h.s();!(u=h.n()).done;){var d=_slicedToArray(u.value,2),m=d[0],g=d[1];r.attributes[m]=g[O]}}catch(t){h.e(t)}finally{h.f()}return r}}]);return XmlObject}(et);r.XmlObject=at;var nt=function(t){_inherits(ContentObject,t);var r=_createSuper(ContentObject);function ContentObject(t,o){var l;_classCallCheck(this,ContentObject);(l=r.call(this,t,o))[O]="";return l}_createClass(ContentObject,[{key:ve,value:function value(t){this[O]+=t}},{key:M,value:function value(){}}]);return ContentObject}(et);r.ContentObject=nt;var it=function(t){_inherits(OptionObject,t);var r=_createSuper(OptionObject);function OptionObject(t,o,l){var c;_classCallCheck(this,OptionObject);(c=r.call(this,t,o))[Ge]=l;return c}_createClass(OptionObject,[{key:M,value:function value(){var t=this;this[O]=(0,c.getKeyword)({data:this[O],defaultValue:this[Ge][0],validate:function validate(r){return t[Ge].includes(r)}})}},{key:_,value:function value(t){_get(_getPrototypeOf(OptionObject.prototype),_,this).call(this,t);delete this[Ge]}}]);return OptionObject}(nt);r.OptionObject=it;var ot=function(t){_inherits(StringObject,t);var r=_createSuper(StringObject);function StringObject(){_classCallCheck(this,StringObject);return r.apply(this,arguments)}_createClass(StringObject,[{key:M,value:function value(){this[O]=this[O].trim()}}]);return StringObject}(nt);r.StringObject=ot;var st=function(t){_inherits(IntegerObject,t);var r=_createSuper(IntegerObject);function IntegerObject(t,o,l,c){var u;_classCallCheck(this,IntegerObject);(u=r.call(this,t,o))[He]=l;u[Je]=c;return u}_createClass(IntegerObject,[{key:M,value:function value(){this[O]=(0,c.getInteger)({data:this[O],defaultValue:this[He],validate:this[Je]})}},{key:_,value:function value(t){_get(_getPrototypeOf(IntegerObject.prototype),_,this).call(this,t);delete this[He];delete this[Je]}}]);return IntegerObject}(nt);r.IntegerObject=st;var lt=function(t){_inherits(Option01,t);var r=_createSuper(Option01);function Option01(t,o){_classCallCheck(this,Option01);return r.call(this,t,o,0,(function(t){return 1===t}))}return Option01}(st);r.Option01=lt;var ct=function(t){_inherits(Option10,t);var r=_createSuper(Option10);function Option10(t,o){_classCallCheck(this,Option10);return r.call(this,t,o,1,(function(t){return 0===t}))}return Option10}(st);r.Option10=ct},(t,r,o)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});r.getBBox=function getBBox(t){var r=-1;if(!t)return{x:r,y:r,width:r,height:r};var o=t.trim().split(/\s*,\s*/).map((function(t){return getMeasurement(t,"-1")}));if(o.length<4||o[2]<0||o[3]<0)return{x:r,y:r,width:r,height:r};var l=_slicedToArray(o,4),c=l[0],u=l[1],h=l[2],d=l[3];return{x:c,y:u,width:h,height:d}};r.getColor=function getColor(t){var r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[0,0,0],o=_slicedToArray(r,3),l=o[0],c=o[1],u=o[2];if(!t)return{r:l,g:c,b:u};var h=t.trim().split(/\s*,\s*/).map((function(t){return Math.min(Math.max(0,parseInt(t.trim(),10)),255)})).map((function(t){return isNaN(t)?0:t}));if(h.length<3)return{r:l,g:c,b:u};var d=_slicedToArray(h,3);l=d[0];c=d[1];u=d[2];return{r:l,g:c,b:u}};r.getFloat=function getFloat(t){var r=t.data,o=t.defaultValue,l=t.validate;if(!r)return o;r=r.trim();var c=parseFloat(r);if(!isNaN(c)&&l(c))return c;return o};r.getInteger=function getInteger(t){var r=t.data,o=t.defaultValue,l=t.validate;if(!r)return o;r=r.trim();var c=parseInt(r,10);if(!isNaN(c)&&l(c))return c;return o};r.getKeyword=getKeyword;r.getMeasurement=getMeasurement;r.getRatio=function getRatio(t){if(!t)return{num:1,den:1};var r=t.trim().split(/\s*:\s*/).map((function(t){return parseFloat(t)})).filter((function(t){return!isNaN(t)}));1===r.length&&r.push(1);if(0===r.length)return{num:1,den:1};var o=_slicedToArray(r,2),l=o[0],c=o[1];return{num:l,den:c}};r.getRelevant=function getRelevant(t){if(!t)return[];return t.trim().split(/\s+/).map((function(t){return{excluded:"-"===t[0],viewname:t.substring(1)}}))};r.getStringOption=function getStringOption(t,r){return getKeyword({data:t,defaultValue:r[0],validate:function validate(t){return r.includes(t)}})};r.stripQuotes=function stripQuotes(t){if(t.startsWith("'")||t.startsWith('"'))return t.slice(1,t.length-1);return t};r.HTMLResult=void 0;var l=o(4);function _defineProperties(t,r){for(var o=0;o<r.length;o++){var l=r[o];l.enumerable=l.enumerable||!1;l.configurable=!0;"value"in l&&(l.writable=!0);Object.defineProperty(t,l.key,l)}}function _slicedToArray(t,r){return function _arrayWithHoles(t){if(Array.isArray(t))return t}(t)||function _iterableToArrayLimit(t,r){var o=null==t?null:"undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(null==o)return;var l,c,u=[],h=!0,d=!1;try{for(o=o.call(t);!(h=(l=o.next()).done);h=!0){u.push(l.value);if(r&&u.length===r)break}}catch(t){d=!0;c=t}finally{try{h||null==o.return||o.return()}finally{if(d)throw c}}return u}(t,r)||function _unsupportedIterableToArray(t,r){if(!t)return;if("string"==typeof t)return _arrayLikeToArray(t,r);var o=Object.prototype.toString.call(t).slice(8,-1);"Object"===o&&t.constructor&&(o=t.constructor.name);if("Map"===o||"Set"===o)return Array.from(t);if("Arguments"===o||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(o))return _arrayLikeToArray(t,r)}(t,r)||function _nonIterableRest(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function _arrayLikeToArray(t,r){(null==r||r>t.length)&&(r=t.length);for(var o=0,l=new Array(r);o<r;o++)l[o]=t[o];return l}var c={pt:function pt(t){return t},cm:function cm(t){return t/2.54*72},mm:function mm(t){return t/25.4*72},in:function _in(t){return 72*t},px:function px(t){return t}},u=/([+-]?\d+\.?\d*)(.*)/;function getKeyword(t){var r=t.data,o=t.defaultValue,l=t.validate;return r&&l(r=r.trim())?r:o}function getMeasurement(t){var r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"0";r=r||"0";if(!t)return getMeasurement(r);var o=t.trim().match(u);if(!o)return getMeasurement(r);var l=_slicedToArray(o,3),h=l[1],d=l[2],m=parseFloat(h);if(isNaN(m))return getMeasurement(r);if(0===m)return 0;var g=c[d];return g?g(m):m}var h=function(){function HTMLResult(t,r,o,l){!function _classCallCheck(t,r){if(!(t instanceof r))throw new TypeError("Cannot call a class as a function")}(this,HTMLResult);this.success=t;this.html=r;this.bbox=o;this.breakNode=l}!function _createClass(t,r,o){r&&_defineProperties(t.prototype,r);o&&_defineProperties(t,o);return t}(HTMLResult,[{key:"isBreak",value:function isBreak(){return!!this.breakNode}}],[{key:"FAILURE",get:function get(){return(0,l.shadow)(this,"FAILURE",new HTMLResult(!1,null,null,null))}},{key:"EMPTY",get:function get(){return(0,l.shadow)(this,"EMPTY",new HTMLResult(!0,null,null,null))}},{key:"breakNode",value:function breakNode(t){return new HTMLResult(!1,null,null,t)}},{key:"success",value:function success(t){var r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null;return new HTMLResult(!0,t,r,null)}}]);return HTMLResult}();r.HTMLResult=h},(t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});r.NamespaceIds=r.$buildXFAObject=void 0;var o=Symbol();r.$buildXFAObject=o;r.NamespaceIds={config:{id:0,check:function check(t){return t.startsWith("http://www.xfa.org/schema/xci/")}},connectionSet:{id:1,check:function check(t){return t.startsWith("http://www.xfa.org/schema/xfa-connection-set/")}},datasets:{id:2,check:function check(t){return t.startsWith("http://www.xfa.org/schema/xfa-data/")}},form:{id:3,check:function check(t){return t.startsWith("http://www.xfa.org/schema/xfa-form/")}},localeSet:{id:4,check:function check(t){return t.startsWith("http://www.xfa.org/schema/xfa-locale-set/")}},pdf:{id:5,check:function check(t){return"http://ns.adobe.com/xdp/pdf/"===t}},signature:{id:6,check:function check(t){return"http://www.w3.org/2000/09/xmldsig#"===t}},sourceSet:{id:7,check:function check(t){return t.startsWith("http://www.xfa.org/schema/xfa-source-set/")}},stylesheet:{id:8,check:function check(t){return"http://www.w3.org/1999/XSL/Transform"===t}},template:{id:9,check:function check(t){return t.startsWith("http://www.xfa.org/schema/xfa-template/")}},xdc:{id:10,check:function check(t){return t.startsWith("http://www.xfa.org/schema/xdc/")}},xdp:{id:11,check:function check(t){return"http://ns.adobe.com/xdp/"===t}},xfdf:{id:12,check:function check(t){return"http://ns.adobe.com/xfdf/"===t}},xhtml:{id:13,check:function check(t){return"http://www.w3.org/1999/xhtml"===t}},xmpmeta:{id:14,check:function check(t){return"http://ns.adobe.com/xmpmeta/"===t}}}},(t,r,o)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});r.createDataNode=function createDataNode(t,r,o){var c=parseExpression(o);if(!c)return null;if(c.some((function(t){return t.operator===g})))return null;var h=_.get(c[0].name),d=0;if(h){t=h(t,r);d=1}else t=r||t;for(var v=c.length;d<v;d++){var S=c[d],k=S.name,C=S.operator,w=S.index;if(!isFinite(w)){c[d].index=0;return createNodes(t,c.slice(d))}var x=void 0;switch(C){case m:x=t[l.$getChildrenByName](k,!1);break;case g:x=t[l.$getChildrenByName](k,!0);break;case y:x=(x=t[l.$getChildrenByClass](k))instanceof l.XFAObjectArray?x.children:[x]}if(0===x.length)return createNodes(t,c.slice(d));if(!(w<x.length)){c[d].index=w-x.length;return createNodes(t,c.slice(d))}var O=x[w];if(!(O instanceof l.XFAObject)){(0,u.warn)("XFA - Cannot create a node.");return null}t=O}return null};r.searchNode=function searchNode(t,r,o){var c=!(arguments.length>3&&void 0!==arguments[3])||arguments[3],u=!(arguments.length>4&&void 0!==arguments[4])||arguments[4],h=parseExpression(o,c);if(!h)return null;var d,v=_.get(h[0].name),S=0;if(v){d=!0;t=[v(t,r)];S=1}else{d=null===r;t=[r||t]}for(var C=function _loop(o){var c,v=h[S],_=v.name,C=v.cacheName,w=v.operator,x=v.index,O=[],T=_createForOfIteratorHelper(t);try{for(T.s();!(c=T.n()).done;){var R=c.value;if(R instanceof l.XFAObject){var E=void 0,M=void 0;if(u){if(!(M=k.get(R))){M=new Map;k.set(R,M)}E=M.get(C)}if(!E){switch(w){case m:E=R[l.$getChildrenByName](_,!1);break;case g:E=R[l.$getChildrenByName](_,!0);break;case y:E=(E=R[l.$getChildrenByClass](_))instanceof l.XFAObjectArray?E.children:[E]}u&&M.set(C,E)}E.length>0&&O.push(E)}}}catch(t){T.e(t)}finally{T.f()}if(0===O.length&&!d&&0===S){var D=r[l.$getParent]();if(!(r=D))return{v:null};S=-1;t=[r];return"continue"}t=isFinite(x)?O.filter((function(t){return x<t.length})).map((function(t){return t[x]})):O.reduce((function(t,r){return t.concat(r)}),[])},w=h.length;S<w;S++){var x=C(w);if("continue"!==x&&"object"===_typeof(x))return x.v}if(0===t.length)return null;return t};var l=o(188),c=o(190),u=o(4);function _createForOfIteratorHelper(t,r){var o="undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(!o){if(Array.isArray(t)||(o=_unsupportedIterableToArray(t))||r&&t&&"number"==typeof t.length){o&&(t=o);var l=0,c=function F(){};return{s:c,n:function n(){return l>=t.length?{done:!0}:{done:!1,value:t[l++]}},e:function e(t){throw t},f:c}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var u,h=!0,d=!1;return{s:function s(){o=o.call(t)},n:function n(){var t=o.next();h=t.done;return t},e:function e(t){d=!0;u=t},f:function f(){try{h||null==o.return||o.return()}finally{if(d)throw u}}}}function _typeof(t){_typeof="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function _typeof(t){return typeof t}:function _typeof(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t};return _typeof(t)}function _slicedToArray(t,r){return function _arrayWithHoles(t){if(Array.isArray(t))return t}(t)||function _iterableToArrayLimit(t,r){var o=null==t?null:"undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(null==o)return;var l,c,u=[],h=!0,d=!1;try{for(o=o.call(t);!(h=(l=o.next()).done);h=!0){u.push(l.value);if(r&&u.length===r)break}}catch(t){d=!0;c=t}finally{try{h||null==o.return||o.return()}finally{if(d)throw c}}return u}(t,r)||_unsupportedIterableToArray(t,r)||function _nonIterableRest(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function _unsupportedIterableToArray(t,r){if(t){if("string"==typeof t)return _arrayLikeToArray(t,r);var o=Object.prototype.toString.call(t).slice(8,-1);"Object"===o&&t.constructor&&(o=t.constructor.name);return"Map"===o||"Set"===o?Array.from(t):"Arguments"===o||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(o)?_arrayLikeToArray(t,r):void 0}}function _arrayLikeToArray(t,r){(null==r||r>t.length)&&(r=t.length);for(var o=0,l=new Array(r);o<r;o++)l[o]=t[o];return l}var h=/^[^.[]+/,d=/^[^\]]+/,m=0,g=1,y=2,v=3,S=4,_=new Map([["$data",function(t,r){return t.datasets?t.datasets.data:t}],["$record",function(t,r){return(t.datasets?t.datasets.data:t)[l.$getChildren]()[0]}],["$template",function(t,r){return t.template}],["$connectionSet",function(t,r){return t.connectionSet}],["$form",function(t,r){return t.form}],["$layout",function(t,r){return t.layout}],["$host",function(t,r){return t.host}],["$dataWindow",function(t,r){return t.dataWindow}],["$event",function(t,r){return t.event}],["!",function(t,r){return t.datasets}],["$xfa",function(t,r){return t}],["xfa",function(t,r){return t}],["$",function(t,r){return r}]]),k=new WeakMap,C=c.NamespaceIds.datasets.id;function parseIndex(t){return"*"===(t=t.trim())?1/0:parseInt(t,10)||0}function parseExpression(t,r){var o=!(arguments.length>2&&void 0!==arguments[2])||arguments[2],l=t.match(h);if(!l)return null;for(var c=l,_=_slicedToArray(c,1),k=_[0],C=[{name:k,cacheName:"."+k,index:0,js:null,formCalc:null,operator:m}],w=k.length;w<t.length;){var x=w,O=t.charAt(w++);if("["!==O){var T=void 0;switch(t.charAt(w)){case".":if(!r)return null;w++;T=g;break;case"#":w++;T=y;break;case"[":if(o){(0,u.warn)("XFA - SOM expression contains a FormCalc subexpression which is not supported for now.");return null}T=v;break;case"(":if(o){(0,u.warn)("XFA - SOM expression contains a JavaScript subexpression which is not supported for now.");return null}T=S;break;default:T=m}if(!(l=t.slice(w).match(h)))break;var R=l,E=_slicedToArray(R,1);w+=(k=E[0]).length;C.push({name:k,cacheName:t.slice(x,w),operator:T,index:0,js:null,formCalc:null})}else{if(!(l=t.slice(w).match(d))){(0,u.warn)("XFA - Invalid index in SOM expression");return null}C[C.length-1].index=parseIndex(l[0]);w+=l[0].length+1}}return C}function createNodes(t,r){var o,c=null,u=_createForOfIteratorHelper(r);try{for(u.s();!(o=u.n()).done;){for(var h=o.value,d=h.name,m=h.index,g=0,y=isFinite(m)?m:0;g<=y;g++){var v=t[l.$namespaceId]===C?-1:t[l.$namespaceId];c=new l.XmlObject(v,d);t[l.$appendChild](c)}t=c}}catch(t){u.e(t)}finally{u.f()}return c}},(t,r,o)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});r.Binder=void 0;var l=o(188),c=o(193),u=o(191),h=o(190),d=o(4);function _slicedToArray(t,r){return function _arrayWithHoles(t){if(Array.isArray(t))return t}(t)||function _iterableToArrayLimit(t,r){var o=null==t?null:"undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(null==o)return;var l,c,u=[],h=!0,d=!1;try{for(o=o.call(t);!(h=(l=o.next()).done);h=!0){u.push(l.value);if(r&&u.length===r)break}}catch(t){d=!0;c=t}finally{try{h||null==o.return||o.return()}finally{if(d)throw c}}return u}(t,r)||_unsupportedIterableToArray(t,r)||function _nonIterableRest(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function _createForOfIteratorHelper(t,r){var o="undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(!o){if(Array.isArray(t)||(o=_unsupportedIterableToArray(t))||r&&t&&"number"==typeof t.length){o&&(t=o);var l=0,c=function F(){};return{s:c,n:function n(){return l>=t.length?{done:!0}:{done:!1,value:t[l++]}},e:function e(t){throw t},f:c}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var u,h=!0,d=!1;return{s:function s(){o=o.call(t)},n:function n(){var t=o.next();h=t.done;return t},e:function e(t){d=!0;u=t},f:function f(){try{h||null==o.return||o.return()}finally{if(d)throw u}}}}function _unsupportedIterableToArray(t,r){if(t){if("string"==typeof t)return _arrayLikeToArray(t,r);var o=Object.prototype.toString.call(t).slice(8,-1);"Object"===o&&t.constructor&&(o=t.constructor.name);return"Map"===o||"Set"===o?Array.from(t):"Arguments"===o||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(o)?_arrayLikeToArray(t,r):void 0}}function _arrayLikeToArray(t,r){(null==r||r>t.length)&&(r=t.length);for(var o=0,l=new Array(r);o<r;o++)l[o]=t[o];return l}function _defineProperties(t,r){for(var o=0;o<r.length;o++){var l=r[o];l.enumerable=l.enumerable||!1;l.configurable=!0;"value"in l&&(l.writable=!0);Object.defineProperty(t,l.key,l)}}var m=h.NamespaceIds.datasets.id;function createText(t){var r=new c.Text({});r[l.$content]=t;return r}var g=function(){function Binder(t){!function _classCallCheck(t,r){if(!(t instanceof r))throw new TypeError("Cannot call a class as a function")}(this,Binder);this.root=t;this.datasets=t.datasets;t.datasets&&t.datasets.data?this.data=t.datasets.data:this.data=new l.XmlObject(h.NamespaceIds.datasets.id,"data");this.emptyMerge=0===this.data[l.$getChildren]().length;this.root.form=this.form=t.template[l.$clone]()}!function _createClass(t,r,o){r&&_defineProperties(t.prototype,r);o&&_defineProperties(t,o);return t}(Binder,[{key:"_isConsumeData",value:function _isConsumeData(){return!this.emptyMerge&&this._mergeMode}},{key:"_isMatchTemplate",value:function _isMatchTemplate(){return!this._isConsumeData()}},{key:"bind",value:function bind(){this._bindElement(this.form,this.data);return this.form}},{key:"getData",value:function getData(){return this.data}},{key:"_bindValue",value:function _bindValue(t,r,o){t[l.$data]=r;if(t[l.$hasSettableValue]())if(r[l.$isDataValue]()){var u=r[l.$getDataValue]();t[l.$setValue](createText(u))}else if(t instanceof c.Field&&t.ui&&t.ui.choiceList&&"multiSelect"===t.ui.choiceList.open){var h=r[l.$getChildren]().map((function(t){return t[l.$content].trim()})).join("\n");t[l.$setValue](createText(h))}else this._isConsumeData()&&(0,d.warn)("XFA - Nodes haven't the same type.");else!r[l.$isDataValue]()||this._isMatchTemplate()?this._bindElement(t,r):(0,d.warn)("XFA - Nodes haven't the same type.")}},{key:"_findDataByNameToConsume",value:function _findDataByNameToConsume(t,r,o,c){if(!t)return null;for(var u,d,m=0;m<3;m++){u=o[l.$getRealChildrenByNameIt](t,!1,!0);for(;d=u.next().value;)if(r===d[l.$isDataValue]())return d;if(o[l.$namespaceId]===h.NamespaceIds.datasets.id&&"data"===o[l.$nodeName])break;o=o[l.$getParent]()}return c&&((d=(u=this.data[l.$getRealChildrenByNameIt](t,!0,!1)).next().value)||(d=(u=this.data[l.$getAttributeIt](t,!0)).next().value)&&d[l.$isDataValue]())?d:null}},{key:"_setProperties",value:function _setProperties(t,r){if(t.hasOwnProperty("setProperty")){var o,h=_createForOfIteratorHelper(t.setProperty.children);try{for(h.s();!(o=h.n()).done;){var m=o.value,g=m.ref,y=m.target;if(!m.connection&&g){var v=(0,u.searchNode)(this.root,r,g,!1,!1);if(v){var S=_slicedToArray(v,1)[0];if(S[l.$isDescendent](this.data)){var _=(0,u.searchNode)(this.root,t,y,!1,!1);if(_){var k=_slicedToArray(_,1)[0];if(k[l.$isDescendent](t)){var C=k[l.$getParent]();if(k instanceof c.SetProperty||C instanceof c.SetProperty)(0,d.warn)("XFA - Invalid target: cannot be a setProperty or one of its properties.");else if(k instanceof c.BindItems||C instanceof c.BindItems)(0,d.warn)("XFA - Invalid target: cannot be a bindItems or one of its properties.");else{var w=S[l.$text](),x=k[l.$nodeName];if(k instanceof l.XFAAttribute){var O=Object.create(null);O[x]=w;var T=Reflect.construct(Object.getPrototypeOf(C).constructor,[O]);C[x]=T[x]}else if(k.hasOwnProperty(l.$content)){k[l.$data]=S;k[l.$content]=w;k[l.$finalize]()}else(0,d.warn)("XFA - Invalid node to use in setProperty")}}else(0,d.warn)("XFA - Invalid target: must be a property or subproperty.")}else(0,d.warn)("XFA - Invalid target: ".concat(y,"."))}else(0,d.warn)("XFA - Invalid node: must be a data node.")}else(0,d.warn)("XFA - Invalid reference: ".concat(g,"."))}}}catch(t){h.e(t)}finally{h.f()}}}},{key:"_bindItems",value:function _bindItems(t,r){if(t.hasOwnProperty("items")&&t.hasOwnProperty("bindItems")&&!t.bindItems.isEmpty()){var o,h=_createForOfIteratorHelper(t.items.children);try{for(h.s();!(o=h.n()).done;){var m=o.value;t[l.$removeChild](m)}}catch(t){h.e(t)}finally{h.f()}t.items.clear();var g=new c.Items({}),y=new c.Items({});t[l.$appendChild](g);t.items.push(g);t[l.$appendChild](y);t.items.push(y);var v,S=_createForOfIteratorHelper(t.bindItems.children);try{for(S.s();!(v=S.n()).done;){var _=v.value,k=_.ref,C=_.labelRef,w=_.valueRef;if(!_.connection&&k){var x=(0,u.searchNode)(this.root,r,k,!1,!1);if(x){var O,T=_createForOfIteratorHelper(x);try{for(T.s();!(O=T.n()).done;){var R=O.value;if(R[l.$isDescendent](this.datasets)){var E=(0,u.searchNode)(this.root,R,C,!0,!1);if(E){var M=_slicedToArray(E,1)[0];if(M[l.$isDescendent](this.datasets)){var D=(0,u.searchNode)(this.root,R,w,!0,!1);if(D){var j=_slicedToArray(D,1)[0];if(j[l.$isDescendent](this.datasets)){var L=createText(M[l.$text]()),N=createText(j[l.$text]());g[l.$appendChild](L);g.text.push(L);y[l.$appendChild](N);y.text.push(N)}else(0,d.warn)("XFA - Invalid value: must be a datasets child.")}else(0,d.warn)("XFA - Invalid value: ".concat(w,"."))}else(0,d.warn)("XFA - Invalid label: must be a datasets child.")}else(0,d.warn)("XFA - Invalid label: ".concat(C,"."))}else(0,d.warn)("XFA - Invalid ref (".concat(k,"): must be a datasets child."))}}catch(t){T.e(t)}finally{T.f()}}else(0,d.warn)("XFA - Invalid reference: ".concat(k,"."))}}}catch(t){S.e(t)}finally{S.f()}}}},{key:"_bindOccurrences",value:function _bindOccurrences(t,r,o){var c;if(r.length>1){(c=t[l.$clone]())[l.$removeChild](c.occur);c.occur=null}this._bindValue(t,r[0],o);this._setProperties(t,r[0]);this._bindItems(t,r[0]);if(1!==r.length)for(var u=t[l.$getParent](),h=t[l.$nodeName],d=u[l.$indexOf](t),m=1,g=r.length;m<g;m++){var y=r[m],v=c[l.$clone]();u[h].push(v);u[l.$insertAt](d+m,v);this._bindValue(v,y,o);this._setProperties(v,y);this._bindItems(v,y)}}},{key:"_createOccurrences",value:function _createOccurrences(t){if(this.emptyMerge){var r=t.occur;if(r&&!(r.initial<=1)){var o=t[l.$getParent](),c=t[l.$nodeName];if(o[c]instanceof l.XFAObjectArray){var u;u=t.name?o[c].children.filter((function(r){return r.name===t.name})).length:o[c].children.length;var h=o[l.$indexOf](t)+1,d=r.initial-u;if(d){var m=t[l.$clone]();m[l.$removeChild](m.occur);m.occur=null;o[c].push(m);o[l.$insertAt](h,m);for(var g=1;g<d;g++){var y=m[l.$clone]();o[c].push(y);o[l.$insertAt](h+g,y)}}}}}}},{key:"_getOccurInfo",value:function _getOccurInfo(t){var r=t.name,o=t.occur;if(!o||!r)return[1,1];var l=-1===o.max?1/0:o.max;return[o.min,l]}},{key:"_setAndBind",value:function _setAndBind(t,r){this._setProperties(t,r);this._bindItems(t,r);this._bindElement(t,r)}},{key:"_bindElement",value:function _bindElement(t,r){var o=[];this._createOccurrences(t);var c,h=_createForOfIteratorHelper(t[l.$getChildren]());try{for(h.s();!(c=h.n()).done;){var g=c.value;if(!g[l.$data])if(void 0!==this._mergeMode||"subform"!==g[l.$nodeName]){if(g[l.$isBindable]()){var y=!1,v=null,S=null,_=null;if(g.bind){switch(g.bind.match){case"none":this._setAndBind(g,r);continue;case"global":y=!0;break;case"dataRef":if(!g.bind.ref){(0,d.warn)("XFA - ref is empty in node ".concat(g[l.$nodeName],"."));this._setAndBind(g,r);continue}S=g.bind.ref}g.bind.picture&&(v=g.bind.picture[l.$content])}var k=_slicedToArray(this._getOccurInfo(g),2),C=k[0],w=k[1];if(S){if(null===(_=(0,u.searchNode)(this.root,r,S,!0,!1))){if(!(_=(0,u.createDataNode)(this.data,r,S)))continue;this._isConsumeData()&&(_[l.$consumed]=!0);this._setAndBind(g,_);continue}this._isConsumeData()&&(_=_.filter((function(t){return!t[l.$consumed]})));_.length>w?_=_.slice(0,w):0===_.length&&(_=null);_&&this._isConsumeData()&&_.forEach((function(t){t[l.$consumed]=!0}))}else{if(!g.name){this._setAndBind(g,r);continue}if(this._isConsumeData()){for(var x=[];x.length<w;){var O=this._findDataByNameToConsume(g.name,g[l.$hasSettableValue](),r,y);if(!O)break;O[l.$consumed]=!0;x.push(O)}_=x.length>0?x:null}else{if(!(_=r[l.$getRealChildrenByNameIt](g.name,!1,this.emptyMerge).next().value)){var T=r[l.$namespaceId]===m?-1:r[l.$namespaceId];_=g[l.$data]=new l.XmlObject(T,g.name);this.emptyMerge&&(_[l.$consumed]=!0);r[l.$appendChild](_);this._setAndBind(g,_);continue}this.emptyMerge&&(_[l.$consumed]=!0);_=[_]}}_?this._bindOccurrences(g,_,v):C>0?this._setAndBind(g,r):o.push(g)}}else{this._mergeMode="consumeData"===g.mergeMode;var R=r[l.$getChildren]();if(R.length>0)this._bindOccurrences(g,[R[0]],null);else if(this.emptyMerge){var E=r[l.$namespaceId]===m?-1:r[l.$namespaceId],M=g[l.$data]=new l.XmlObject(E,g.name||"root");r[l.$appendChild](M);this._bindElement(g,M)}}}}catch(t){h.e(t)}finally{h.f()}o.forEach((function(t){return t[l.$getParent]()[l.$removeChild](t)}))}}]);return Binder}();r.Binder=g},(t,r,o)=>{"use strict";var l=o(2);Object.defineProperty(r,"__esModule",{value:!0});r.Value=r.Text=r.TemplateNamespace=r.Template=r.SetProperty=r.Items=r.Field=r.BindItems=void 0;var c=function _interopRequireDefault(t){return t&&t.__esModule?t:{default:t}}(o(2)),u=o(188),h=o(190),d=o(194),m=o(195),g=o(189),y=o(4),v=o(196),S=o(122),_=o(191);function _typeof(t){_typeof="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function _typeof(t){return typeof t}:function _typeof(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t};return _typeof(t)}function _get(t,r,o){_get="undefined"!=typeof Reflect&&Reflect.get?Reflect.get:function _get(t,r,o){var l=function _superPropBase(t,r){for(;!Object.prototype.hasOwnProperty.call(t,r)&&null!==(t=_getPrototypeOf(t)););return t}(t,r);if(l){var c=Object.getOwnPropertyDescriptor(l,r);return c.get?c.get.call(o):c.value}};return _get(t,r,o||t)}function _slicedToArray(t,r){return function _arrayWithHoles(t){if(Array.isArray(t))return t}(t)||function _iterableToArrayLimit(t,r){var o=null==t?null:"undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(null==o)return;var l,c,u=[],h=!0,d=!1;try{for(o=o.call(t);!(h=(l=o.next()).done);h=!0){u.push(l.value);if(r&&u.length===r)break}}catch(t){d=!0;c=t}finally{try{h||null==o.return||o.return()}finally{if(d)throw c}}return u}(t,r)||_unsupportedIterableToArray(t,r)||function _nonIterableRest(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function _defineProperties(t,r){for(var o=0;o<r.length;o++){var l=r[o];l.enumerable=l.enumerable||!1;l.configurable=!0;"value"in l&&(l.writable=!0);Object.defineProperty(t,l.key,l)}}function _createClass(t,r,o){r&&_defineProperties(t.prototype,r);o&&_defineProperties(t,o);return t}function _classCallCheck(t,r){if(!(t instanceof r))throw new TypeError("Cannot call a class as a function")}function _inherits(t,r){if("function"!=typeof r&&null!==r)throw new TypeError("Super expression must either be null or a function");t.prototype=Object.create(r&&r.prototype,{constructor:{value:t,writable:!0,configurable:!0}});r&&_setPrototypeOf(t,r)}function _setPrototypeOf(t,r){_setPrototypeOf=Object.setPrototypeOf||function _setPrototypeOf(t,r){t.__proto__=r;return t};return _setPrototypeOf(t,r)}function _createSuper(t){var r=function _isNativeReflectConstruct(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){})));return!0}catch(t){return!1}}();return function _createSuperInternal(){var o,l=_getPrototypeOf(t);if(r){var c=_getPrototypeOf(this).constructor;o=Reflect.construct(l,arguments,c)}else o=l.apply(this,arguments);return _possibleConstructorReturn(this,o)}}function _possibleConstructorReturn(t,r){if(r&&("object"===_typeof(r)||"function"==typeof r))return r;if(void 0!==r)throw new TypeError("Derived constructors may only return object or undefined");return function _assertThisInitialized(t){if(void 0===t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return t}(t)}function _getPrototypeOf(t){_getPrototypeOf=Object.setPrototypeOf?Object.getPrototypeOf:function _getPrototypeOf(t){return t.__proto__||Object.getPrototypeOf(t)};return _getPrototypeOf(t)}var k=l.mark(getContainedChildren);function _createForOfIteratorHelper(t,r){var o="undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(!o){if(Array.isArray(t)||(o=_unsupportedIterableToArray(t))||r&&t&&"number"==typeof t.length){o&&(t=o);var l=0,c=function F(){};return{s:c,n:function n(){return l>=t.length?{done:!0}:{done:!1,value:t[l++]}},e:function e(t){throw t},f:c}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var u,h=!0,d=!1;return{s:function s(){o=o.call(t)},n:function n(){var t=o.next();h=t.done;return t},e:function e(t){d=!0;u=t},f:function f(){try{h||null==o.return||o.return()}finally{if(d)throw u}}}}function _unsupportedIterableToArray(t,r){if(t){if("string"==typeof t)return _arrayLikeToArray(t,r);var o=Object.prototype.toString.call(t).slice(8,-1);"Object"===o&&t.constructor&&(o=t.constructor.name);return"Map"===o||"Set"===o?Array.from(t):"Arguments"===o||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(o)?_arrayLikeToArray(t,r):void 0}}function _arrayLikeToArray(t,r){(null==r||r>t.length)&&(r=t.length);for(var o=0,l=new Array(r);o<r;o++)l[o]=t[o];return l}var C=h.NamespaceIds.template.id,w="http://www.w3.org/2000/svg",x=/^H(\d+)$/,O=new Set(["image/gif","image/jpeg","image/jpg","image/pjpeg","image/png","image/apng","image/x-png","image/bmp","image/x-ms-bmp","image/tiff","image/tif"]),T=[[[66,77],"image/bmp"],[[255,216,255],"image/jpeg"],[[73,73,42,0],"image/tiff"],[[77,77,0,42],"image/tiff"],[[71,73,70,56,57,97],"image/gif"],[[137,80,78,71,13,10,26,10],"image/png"]];function getBorderDims(t){if(!t||!t.border)return{w:0,h:0};var r=t.border[u.$getExtra]();return r?{w:r.widths[0]+r.widths[2]+r.insets[0]+r.insets[2],h:r.widths[1]+r.widths[3]+r.insets[1]+r.insets[3]}:{w:0,h:0}}function hasMargin(t){return t.margin&&(t.margin.topInset||t.margin.rightInset||t.margin.bottomInset||t.margin.leftInset)}function _setValue(t,r){if(!t.value){var o=new jt({});t[u.$appendChild](o);t.value=o}t.value[u.$setValue](r)}function getContainedChildren(t){var r,o,l;return c.default.wrap((function getContainedChildren$(c){for(;;)switch(c.prev=c.next){case 0:r=_createForOfIteratorHelper(t[u.$getChildren]());c.prev=1;r.s();case 3:if((o=r.n()).done){c.next=12;break}if(!((l=o.value)instanceof Ct)){c.next=8;break}return c.delegateYield(l[u.$getContainedChildren](),"t0",7);case 7:return c.abrupt("continue",10);case 8:c.next=10;return l;case 10:c.next=3;break;case 12:c.next=17;break;case 14:c.prev=14;c.t1=c.catch(1);r.e(c.t1);case 17:c.prev=17;r.f();return c.finish(17);case 20:case"end":return c.stop()}}),k,null,[[1,14,17,20]])}function setTabIndex(t){for(;t;){if(!t.traversal){t[u.$tabIndex]=t[u.$getParent]()[u.$tabIndex];return}if(t[u.$tabIndex])return;var r,o=null,l=_createForOfIteratorHelper(t.traversal[u.$getChildren]());try{for(l.s();!(r=l.n()).done;){var c=r.value;if("next"===c.operation){o=c;break}}}catch(t){l.e(t)}finally{l.f()}if(!o||!o.ref){t[u.$tabIndex]=t[u.$getParent]()[u.$tabIndex];return}var h=t[u.$getTemplateRoot]();t[u.$tabIndex]=++h[u.$tabIndex];var d=h[u.$searchNode](o.ref,t);if(!d)return;t=d[0]}}function applyAssist(t,r){var o=t.assist;if(o){var l=o[u.$toHTML]();l&&(r.title=l);var c=o.role.match(x);if(c){var h=c[1];r.role="heading";r["aria-level"]=h}}if("table"===t.layout)r.role="table";else if("row"===t.layout)r.role="row";else{var d=t[u.$getParent]();"row"===d.layout&&(d.assist&&"TH"===d.assist.role?r.role="columnheader":r.role="cell")}}function ariaLabel(t){if(!t.assist)return null;var r=t.assist;return r.speak&&""!==r.speak[u.$content]?r.speak[u.$content]:r.toolTip?r.toolTip[u.$content]:null}function valueToHtml(t){return g.HTMLResult.success({name:"div",attributes:{class:["xfaRich"],style:Object.create(null)},children:[{name:"span",attributes:{style:Object.create(null)},value:t}]})}function setFirstUnsplittable(t){var r=t[u.$getTemplateRoot]();if(null===r[u.$extra].firstUnsplittable){r[u.$extra].firstUnsplittable=t;r[u.$extra].noLayoutFailure=!0}}function unsetFirstUnsplittable(t){var r=t[u.$getTemplateRoot]();r[u.$extra].firstUnsplittable===t&&(r[u.$extra].noLayoutFailure=!1)}function handleBreak(t){if(t[u.$extra])return!1;t[u.$extra]=Object.create(null);if("auto"===t.targetType)return!1;var r=t[u.$getTemplateRoot](),o=null;if(t.target){if(!(o=r[u.$searchNode](t.target,t[u.$getParent]())))return!1;o=o[0]}var l=r[u.$extra],c=l.currentPageArea,h=l.currentContentArea;if("pageArea"===t.targetType){o instanceof tt||(o=null);if(t.startNew){t[u.$extra].target=o||c;return!0}if(o&&o!==c){t[u.$extra].target=o;return!0}return!1}o instanceof re||(o=null);var d,m=o&&o[u.$getParent]();if(t.startNew)if(o){d=m.contentArea.children.findIndex((function(t){return t===o}))-1}else d=c.contentArea.children.findIndex((function(t){return t===h}));else{if(!o||o===h)return!1;d=m.contentArea.children.findIndex((function(t){return t===o}))-1}t[u.$extra].target=m===c?null:m;t[u.$extra].index=d;return!0}function handleOverflow(t,r,o){var l=t[u.$getTemplateRoot](),c=l[u.$extra].noLayoutFailure,h=r[u.$getSubformParent];r[u.$getSubformParent]=function(){return t};l[u.$extra].noLayoutFailure=!0;var d=r[u.$toHTML](o);t[u.$addHTML](d.html,d.bbox);l[u.$extra].noLayoutFailure=c;r[u.$getSubformParent]=h}var R=function(t){_inherits(AppearanceFilter,t);var r=_createSuper(AppearanceFilter);function AppearanceFilter(t){var o;_classCallCheck(this,AppearanceFilter);(o=r.call(this,C,"appearanceFilter")).id=t.id||"";o.type=(0,g.getStringOption)(t.type,["optional","required"]);o.use=t.use||"";o.usehref=t.usehref||"";return o}return AppearanceFilter}(u.StringObject),E=function(t){_inherits(Arc,t);var r=_createSuper(Arc);function Arc(t){var o;_classCallCheck(this,Arc);(o=r.call(this,C,"arc",!0)).circular=(0,g.getInteger)({data:t.circular,defaultValue:0,validate:function validate(t){return 1===t}});o.hand=(0,g.getStringOption)(t.hand,["even","left","right"]);o.id=t.id||"";o.startAngle=(0,g.getFloat)({data:t.startAngle,defaultValue:0,validate:function validate(t){return!0}});o.sweepAngle=(0,g.getFloat)({data:t.sweepAngle,defaultValue:360,validate:function validate(t){return!0}});o.use=t.use||"";o.usehref=t.usehref||"";o.edge=null;o.fill=null;return o}_createClass(Arc,[{key:u.$toHTML,value:function value(){var t,r=this.edge?this.edge:new de({}),o=r[u.$toStyle](),l=Object.create(null);this.fill&&"visible"===this.fill.presence?Object.assign(l,this.fill[u.$toStyle]()):l.fill="transparent";l.strokeWidth=(0,m.measureToString)("visible"===r.presence?r.thickness:0);l.stroke=o.color;var c={xmlns:w,style:{width:"100%",height:"100%",overflow:"visible"}};if(0===this.startAngle&&360===this.sweepAngle)t={name:"ellipse",attributes:{xmlns:w,cx:"50%",cy:"50%",rx:"50%",ry:"50%",style:l}};else{var h=this.startAngle*Math.PI/180,d=this.sweepAngle*Math.PI/180,y=this.sweepAngle-this.startAngle>180?1:0,v=50*(1+Math.cos(h)),S=50*(1-Math.sin(h)),_=50*(1+Math.cos(d)),k=50*(1-Math.sin(d));t={name:"path",attributes:{xmlns:w,d:"M ".concat(v," ").concat(S," A 50 50 0 ").concat(y," 0 ").concat(_," ").concat(k),vectorEffect:"non-scaling-stroke",style:l}};Object.assign(c,{viewBox:"0 0 100 100",preserveAspectRatio:"none"})}var C={name:"svg",children:[t],attributes:c};if(hasMargin(this[u.$getParent]()[u.$getParent]()))return g.HTMLResult.success({name:"div",attributes:{style:{display:"inline",width:"100%",height:"100%"}},children:[C]});C.attributes.style.position="absolute";return g.HTMLResult.success(C)}}]);return Arc}(u.XFAObject),M=function(t){_inherits(Area,t);var r=_createSuper(Area);function Area(t){var o;_classCallCheck(this,Area);(o=r.call(this,C,"area",!0)).colSpan=(0,g.getInteger)({data:t.colSpan,defaultValue:1,validate:function validate(t){return t>=1||-1===t}});o.id=t.id||"";o.name=t.name||"";o.relevant=(0,g.getRelevant)(t.relevant);o.use=t.use||"";o.usehref=t.usehref||"";o.x=(0,g.getMeasurement)(t.x,"0pt");o.y=(0,g.getMeasurement)(t.y,"0pt");o.desc=null;o.extras=null;o.area=new u.XFAObjectArray;o.draw=new u.XFAObjectArray;o.exObject=new u.XFAObjectArray;o.exclGroup=new u.XFAObjectArray;o.field=new u.XFAObjectArray;o.subform=new u.XFAObjectArray;o.subformSet=new u.XFAObjectArray;return o}_createClass(Area,[{key:u.$getContainedChildren,value:c.default.mark((function value(){return c.default.wrap((function value$(t){for(;;)switch(t.prev=t.next){case 0:return t.delegateYield(getContainedChildren(this),"t0",1);case 1:case"end":return t.stop()}}),value,this)}))},{key:u.$isTransparent,value:function value(){return!0}},{key:u.$isBindable,value:function value(){return!0}},{key:u.$addHTML,value:function value(t,r){var o=_slicedToArray(r,4),l=o[0],c=o[1],h=o[2],d=o[3];this[u.$extra].width=Math.max(this[u.$extra].width,l+h);this[u.$extra].height=Math.max(this[u.$extra].height,c+d);this[u.$extra].children.push(t)}},{key:u.$getAvailableSpace,value:function value(){return this[u.$extra].availableSpace}},{key:u.$toHTML,value:function value(t){var r=(0,m.toStyle)(this,"position"),o={style:r,id:this[u.$uid],class:["xfaArea"]};(0,m.isPrintOnly)(this)&&o.class.push("xfaPrintOnly");this.name&&(o.xfaName=this.name);var l=[];this[u.$extra]={children:l,width:0,height:0,availableSpace:t};var c=this[u.$childrenToHTML]({filter:new Set(["area","draw","field","exclGroup","subform","subformSet"]),include:!0});if(!c.success){if(c.isBreak())return c;delete this[u.$extra];return g.HTMLResult.FAILURE}r.width=(0,m.measureToString)(this[u.$extra].width);r.height=(0,m.measureToString)(this[u.$extra].height);var h={name:"div",attributes:o,children:l},d=[this.x,this.y,this[u.$extra].width,this[u.$extra].height];delete this[u.$extra];return g.HTMLResult.success(h,d)}}]);return Area}(u.XFAObject),D=function(t){_inherits(Assist,t);var r=_createSuper(Assist);function Assist(t){var o;_classCallCheck(this,Assist);(o=r.call(this,C,"assist",!0)).id=t.id||"";o.role=t.role||"";o.use=t.use||"";o.usehref=t.usehref||"";o.speak=null;o.toolTip=null;return o}_createClass(Assist,[{key:u.$toHTML,value:function value(){return this.toolTip&&this.toolTip[u.$content]?this.toolTip[u.$content]:null}}]);return Assist}(u.XFAObject),j=function(t){_inherits(Barcode,t);var r=_createSuper(Barcode);function Barcode(t){var o;_classCallCheck(this,Barcode);(o=r.call(this,C,"barcode",!0)).charEncoding=(0,g.getKeyword)({data:t.charEncoding?t.charEncoding.toLowerCase():"",defaultValue:"",validate:function validate(t){return["utf-8","big-five","fontspecific","gbk","gb-18030","gb-2312","ksc-5601","none","shift-jis","ucs-2","utf-16"].includes(t)||t.match(/iso-8859-\d{2}/)}});o.checksum=(0,g.getStringOption)(t.checksum,["none","1mod10","1mod10_1mod11","2mod10","auto"]);o.dataColumnCount=(0,g.getInteger)({data:t.dataColumnCount,defaultValue:-1,validate:function validate(t){return t>=0}});o.dataLength=(0,g.getInteger)({data:t.dataLength,defaultValue:-1,validate:function validate(t){return t>=0}});o.dataPrep=(0,g.getStringOption)(t.dataPrep,["none","flateCompress"]);o.dataRowCount=(0,g.getInteger)({data:t.dataRowCount,defaultValue:-1,validate:function validate(t){return t>=0}});o.endChar=t.endChar||"";o.errorCorrectionLevel=(0,g.getInteger)({data:t.errorCorrectionLevel,defaultValue:-1,validate:function validate(t){return t>=0&&t<=8}});o.id=t.id||"";o.moduleHeight=(0,g.getMeasurement)(t.moduleHeight,"5mm");o.moduleWidth=(0,g.getMeasurement)(t.moduleWidth,"0.25mm");o.printCheckDigit=(0,g.getInteger)({data:t.printCheckDigit,defaultValue:0,validate:function validate(t){return 1===t}});o.rowColumnRatio=(0,g.getRatio)(t.rowColumnRatio);o.startChar=t.startChar||"";o.textLocation=(0,g.getStringOption)(t.textLocation,["below","above","aboveEmbedded","belowEmbedded","none"]);o.truncate=(0,g.getInteger)({data:t.truncate,defaultValue:0,validate:function validate(t){return 1===t}});o.type=(0,g.getStringOption)(t.type?t.type.toLowerCase():"",["aztec","codabar","code2of5industrial","code2of5interleaved","code2of5matrix","code2of5standard","code3of9","code3of9extended","code11","code49","code93","code128","code128a","code128b","code128c","code128sscc","datamatrix","ean8","ean8add2","ean8add5","ean13","ean13add2","ean13add5","ean13pwcd","fim","logmars","maxicode","msi","pdf417","pdf417macro","plessey","postauscust2","postauscust3","postausreplypaid","postausstandard","postukrm4scc","postusdpbc","postusimb","postusstandard","postus5zip","qrcode","rfid","rss14","rss14expanded","rss14limited","rss14stacked","rss14stackedomni","rss14truncated","telepen","ucc128","ucc128random","ucc128sscc","upca","upcaadd2","upcaadd5","upcapwcd","upce","upceadd2","upceadd5","upcean2","upcean5","upsmaxicode"]);o.upsMode=(0,g.getStringOption)(t.upsMode,["usCarrier","internationalCarrier","secureSymbol","standardSymbol"]);o.use=t.use||"";o.usehref=t.usehref||"";o.wideNarrowRatio=(0,g.getRatio)(t.wideNarrowRatio);o.encrypt=null;o.extras=null;return o}return Barcode}(u.XFAObject),L=function(t){_inherits(Bind,t);var r=_createSuper(Bind);function Bind(t){var o;_classCallCheck(this,Bind);(o=r.call(this,C,"bind",!0)).match=(0,g.getStringOption)(t.match,["once","dataRef","global","none"]);o.ref=t.ref||"";o.picture=null;return o}return Bind}(u.XFAObject),N=function(t){_inherits(BindItems,t);var r=_createSuper(BindItems);function BindItems(t){var o;_classCallCheck(this,BindItems);(o=r.call(this,C,"bindItems")).connection=t.connection||"";o.labelRef=t.labelRef||"";o.ref=t.ref||"";o.valueRef=t.valueRef||"";return o}return BindItems}(u.XFAObject);r.BindItems=N;var U=function(t){_inherits(Bookend,t);var r=_createSuper(Bookend);function Bookend(t){var o;_classCallCheck(this,Bookend);(o=r.call(this,C,"bookend")).id=t.id||"";o.leader=t.leader||"";o.trailer=t.trailer||"";o.use=t.use||"";o.usehref=t.usehref||"";return o}return Bookend}(u.XFAObject),H=function(t){_inherits(BooleanElement,t);var r=_createSuper(BooleanElement);function BooleanElement(t){var o;_classCallCheck(this,BooleanElement);(o=r.call(this,C,"boolean")).id=t.id||"";o.name=t.name||"";o.use=t.use||"";o.usehref=t.usehref||"";return o}_createClass(BooleanElement,[{key:u.$toHTML,value:function value(t){return valueToHtml(1===this[u.$content]?"1":"0")}}]);return BooleanElement}(u.Option01),W=function(t){_inherits(Border,t);var r=_createSuper(Border);function Border(t){var o;_classCallCheck(this,Border);(o=r.call(this,C,"border",!0)).break=(0,g.getStringOption)(t.break,["close","open"]);o.hand=(0,g.getStringOption)(t.hand,["even","left","right"]);o.id=t.id||"";o.presence=(0,g.getStringOption)(t.presence,["visible","hidden","inactive","invisible"]);o.relevant=(0,g.getRelevant)(t.relevant);o.use=t.use||"";o.usehref=t.usehref||"";o.corner=new u.XFAObjectArray(4);o.edge=new u.XFAObjectArray(4);o.extras=null;o.fill=null;o.margin=null;return o}_createClass(Border,[{key:u.$getExtra,value:function value(){if(!this[u.$extra]){var t=this.edge.children.slice();if(t.length<4)for(var r=t[t.length-1]||new de({}),o=t.length;o<4;o++)t.push(r);var l=t.map((function(t){return t.thickness})),c=[0,0,0,0];if(this.margin){c[0]=this.margin.topInset;c[1]=this.margin.rightInset;c[2]=this.margin.bottomInset;c[3]=this.margin.leftInset}this[u.$extra]={widths:l,insets:c,edges:t}}return this[u.$extra]}},{key:u.$toStyle,value:function value(){var t=this[u.$getExtra]().edges.map((function(t){var r=t[u.$toStyle]();r.color=r.color||"#000000";return r})),r=Object.create(null);this.margin&&Object.assign(r,this.margin[u.$toStyle]());this.fill&&"visible"===this.fill.presence&&Object.assign(r,this.fill[u.$toStyle]());if(this.corner.children.some((function(t){return 0!==t.radius}))){var o=this.corner.children.map((function(t){return t[u.$toStyle]()}));if(2===o.length||3===o.length)for(var l=o[o.length-1],c=o.length;c<4;c++)o.push(l);r.borderRadius=o.map((function(t){return t.radius})).join(" ")}switch(this.presence){case"invisible":case"hidden":r.borderStyle="";break;case"inactive":r.borderStyle="none";break;default:r.borderStyle=t.map((function(t){return t.style})).join(" ")}r.borderWidth=t.map((function(t){return t.width})).join(" ");r.borderColor=t.map((function(t){return t.color})).join(" ");return r}}]);return Border}(u.XFAObject),$=function(t){_inherits(Break,t);var r=_createSuper(Break);function Break(t){var o;_classCallCheck(this,Break);(o=r.call(this,C,"break",!0)).after=(0,g.getStringOption)(t.after,["auto","contentArea","pageArea","pageEven","pageOdd"]);o.afterTarget=t.afterTarget||"";o.before=(0,g.getStringOption)(t.before,["auto","contentArea","pageArea","pageEven","pageOdd"]);o.beforeTarget=t.beforeTarget||"";o.bookendLeader=t.bookendLeader||"";o.bookendTrailer=t.bookendTrailer||"";o.id=t.id||"";o.overflowLeader=t.overflowLeader||"";o.overflowTarget=t.overflowTarget||"";o.overflowTrailer=t.overflowTrailer||"";o.startNew=(0,g.getInteger)({data:t.startNew,defaultValue:0,validate:function validate(t){return 1===t}});o.use=t.use||"";o.usehref=t.usehref||"";o.extras=null;return o}return Break}(u.XFAObject),q=function(t){_inherits(BreakAfter,t);var r=_createSuper(BreakAfter);function BreakAfter(t){var o;_classCallCheck(this,BreakAfter);(o=r.call(this,C,"breakAfter",!0)).id=t.id||"";o.leader=t.leader||"";o.startNew=(0,g.getInteger)({data:t.startNew,defaultValue:0,validate:function validate(t){return 1===t}});o.target=t.target||"";o.targetType=(0,g.getStringOption)(t.targetType,["auto","contentArea","pageArea"]);o.trailer=t.trailer||"";o.use=t.use||"";o.usehref=t.usehref||"";o.script=null;return o}return BreakAfter}(u.XFAObject),X=function(t){_inherits(BreakBefore,t);var r=_createSuper(BreakBefore);function BreakBefore(t){var o;_classCallCheck(this,BreakBefore);(o=r.call(this,C,"breakBefore",!0)).id=t.id||"";o.leader=t.leader||"";o.startNew=(0,g.getInteger)({data:t.startNew,defaultValue:0,validate:function validate(t){return 1===t}});o.target=t.target||"";o.targetType=(0,g.getStringOption)(t.targetType,["auto","contentArea","pageArea"]);o.trailer=t.trailer||"";o.use=t.use||"";o.usehref=t.usehref||"";o.script=null;return o}_createClass(BreakBefore,[{key:u.$toHTML,value:function value(t){this[u.$extra]={};return g.HTMLResult.FAILURE}}]);return BreakBefore}(u.XFAObject),z=function(t){_inherits(Button,t);var r=_createSuper(Button);function Button(t){var o;_classCallCheck(this,Button);(o=r.call(this,C,"button",!0)).highlight=(0,g.getStringOption)(t.highlight,["inverted","none","outline","push"]);o.id=t.id||"";o.use=t.use||"";o.usehref=t.usehref||"";o.extras=null;return o}_createClass(Button,[{key:u.$toHTML,value:function value(t){var r,o=this[u.$getParent]()[u.$getParent](),l={name:"button",attributes:{id:this[u.$uid],class:["xfaButton"],style:{}},children:[]},c=_createForOfIteratorHelper(o.event.children);try{for(c.s();!(r=c.n()).done;){var h=r.value;if("click"===h.activity&&h.script){var d=(0,S.recoverJsURL)(h.script[u.$content]);if(d){var y=(0,m.fixURL)(d.url);y&&l.children.push({name:"a",attributes:{id:"link"+this[u.$uid],href:y,newWindow:d.newWindow,class:["xfaLink"],style:{}},children:[]})}}}}catch(t){c.e(t)}finally{c.f()}return g.HTMLResult.success(l)}}]);return Button}(u.XFAObject),G=function(t){_inherits(Calculate,t);var r=_createSuper(Calculate);function Calculate(t){var o;_classCallCheck(this,Calculate);(o=r.call(this,C,"calculate",!0)).id=t.id||"";o.override=(0,g.getStringOption)(t.override,["disabled","error","ignore","warning"]);o.use=t.use||"";o.usehref=t.usehref||"";o.extras=null;o.message=null;o.script=null;return o}return Calculate}(u.XFAObject),V=function(t){_inherits(Caption,t);var r=_createSuper(Caption);function Caption(t){var o;_classCallCheck(this,Caption);(o=r.call(this,C,"caption",!0)).id=t.id||"";o.placement=(0,g.getStringOption)(t.placement,["left","bottom","inline","right","top"]);o.presence=(0,g.getStringOption)(t.presence,["visible","hidden","inactive","invisible"]);o.reserve=Math.ceil((0,g.getMeasurement)(t.reserve));o.use=t.use||"";o.usehref=t.usehref||"";o.extras=null;o.font=null;o.margin=null;o.para=null;o.value=null;return o}_createClass(Caption,[{key:u.$setValue,value:function(t){function value(r){return t.apply(this,arguments)}value.toString=function(){return t.toString()};return value}((function(t){_setValue(this,t)}))},{key:u.$getExtra,value:function value(t){if(!this[u.$extra]){var r=t.width,o=t.height;switch(this.placement){case"left":case"right":case"inline":r=this.reserve<=0?r:this.reserve;break;case"top":case"bottom":o=this.reserve<=0?o:this.reserve}this[u.$extra]=(0,m.layoutNode)(this,{width:r,height:o})}return this[u.$extra]}},{key:u.$toHTML,value:function value(t){if(!this.value)return g.HTMLResult.EMPTY;this[u.$pushPara]();var value=this.value[u.$toHTML](t).html;if(!value){this[u.$popPara]();return g.HTMLResult.EMPTY}var r=this.reserve;if(this.reserve<=0){var o=this[u.$getExtra](t),l=o.w,c=o.h;switch(this.placement){case"left":case"right":case"inline":this.reserve=l;break;case"top":case"bottom":this.reserve=c}}var h=[];"string"==typeof value?h.push({name:"#text",value:value}):h.push(value);var d=(0,m.toStyle)(this,"font","margin","visibility");switch(this.placement){case"left":case"right":this.reserve>0&&(d.width=(0,m.measureToString)(this.reserve));break;case"top":case"bottom":this.reserve>0&&(d.height=(0,m.measureToString)(this.reserve))}(0,m.setPara)(this,null,value);this[u.$popPara]();this.reserve=r;return g.HTMLResult.success({name:"div",attributes:{style:d,class:["xfaCaption"]},children:h})}}]);return Caption}(u.XFAObject),Y=function(t){_inherits(Certificate,t);var r=_createSuper(Certificate);function Certificate(t){var o;_classCallCheck(this,Certificate);(o=r.call(this,C,"certificate")).id=t.id||"";o.name=t.name||"";o.use=t.use||"";o.usehref=t.usehref||"";return o}return Certificate}(u.StringObject),K=function(t){_inherits(Certificates,t);var r=_createSuper(Certificates);function Certificates(t){var o;_classCallCheck(this,Certificates);(o=r.call(this,C,"certificates",!0)).credentialServerPolicy=(0,g.getStringOption)(t.credentialServerPolicy,["optional","required"]);o.id=t.id||"";o.url=t.url||"";o.urlPolicy=t.urlPolicy||"";o.use=t.use||"";o.usehref=t.usehref||"";o.encryption=null;o.issuers=null;o.keyUsage=null;o.oids=null;o.signing=null;o.subjectDNs=null;return o}return Certificates}(u.XFAObject),J=function(t){_inherits(CheckButton,t);var r=_createSuper(CheckButton);function CheckButton(t){var o;_classCallCheck(this,CheckButton);(o=r.call(this,C,"checkButton",!0)).id=t.id||"";o.mark=(0,g.getStringOption)(t.mark,["default","check","circle","cross","diamond","square","star"]);o.shape=(0,g.getStringOption)(t.shape,["square","round"]);o.size=(0,g.getMeasurement)(t.size,"10pt");o.use=t.use||"";o.usehref=t.usehref||"";o.border=null;o.extras=null;o.margin=null;return o}_createClass(CheckButton,[{key:u.$toHTML,value:function value(t){var r,o,l,c=(0,m.toStyle)("margin"),h=(0,m.measureToString)(this.size);c.width=c.height=h;var d,y=this[u.$getParent]()[u.$getParent](),v=y.items.children.length&&y.items.children[0][u.$toHTML]().html||[],S={on:(void 0!==v[0]?v[0]:"on").toString(),off:(void 0!==v[1]?v[1]:"off").toString()},value=y.value&&y.value[u.$text]()||"off",_=value===S.on||void 0,k=y[u.$getSubformParent](),C=y[u.$uid];if(k instanceof we){l=k[u.$uid];r="radio";o="xfaRadio";d=k[u.$data]&&k[u.$data][u.$uid]||k[u.$uid]}else{r="checkbox";o="xfaCheckbox";d=y[u.$data]&&y[u.$data][u.$uid]||y[u.$uid]}var w={name:"input",attributes:{class:[o],style:c,fieldId:C,dataId:d,type:r,checked:_,xfaOn:S.on,xfaOff:S.off,"aria-label":ariaLabel(y)}};l&&(w.attributes.name=l);return g.HTMLResult.success({name:"label",attributes:{class:["xfaLabel"]},children:[w]})}}]);return CheckButton}(u.XFAObject),Q=function(t){_inherits(ChoiceList,t);var r=_createSuper(ChoiceList);function ChoiceList(t){var o;_classCallCheck(this,ChoiceList);(o=r.call(this,C,"choiceList",!0)).commitOn=(0,g.getStringOption)(t.commitOn,["select","exit"]);o.id=t.id||"";o.open=(0,g.getStringOption)(t.open,["userControl","always","multiSelect","onEntry"]);o.textEntry=(0,g.getInteger)({data:t.textEntry,defaultValue:0,validate:function validate(t){return 1===t}});o.use=t.use||"";o.usehref=t.usehref||"";o.border=null;o.extras=null;o.margin=null;return o}_createClass(ChoiceList,[{key:u.$toHTML,value:function value(t){var r=(0,m.toStyle)(this,"border","margin"),o=this[u.$getParent]()[u.$getParent](),l=o.font&&o.font.size||10,c={fontSize:"calc(".concat(l,"px * var(--zoom-factor))")},h=[];if(o.items.children.length>0){var d=o.items,y=0,v=0;2===d.children.length&&(v=1-(y=d.children[0].save));for(var S=d.children[y][u.$toHTML]().html,_=d.children[v][u.$toHTML]().html,k=!1,C=o.value&&o.value[u.$text]()||"",w=0,x=S.length;w<x;w++){var O={name:"option",attributes:{value:_[w]||S[w],style:c},value:S[w]};_[w]===C&&(O.attributes.selected=k=!0);h.push(O)}k||h.splice(0,0,{name:"option",attributes:{hidden:!0,selected:!0},value:" "})}var T={class:["xfaSelect"],fieldId:o[u.$uid],dataId:o[u.$data]&&o[u.$data][u.$uid]||o[u.$uid],style:r,"aria-label":ariaLabel(o)};"multiSelect"===this.open&&(T.multiple=!0);return g.HTMLResult.success({name:"label",attributes:{class:["xfaLabel"]},children:[{name:"select",children:h,attributes:T}]})}}]);return ChoiceList}(u.XFAObject),Z=function(t){_inherits(Color,t);var r=_createSuper(Color);function Color(t){var o;_classCallCheck(this,Color);(o=r.call(this,C,"color",!0)).cSpace=(0,g.getStringOption)(t.cSpace,["SRGB"]);o.id=t.id||"";o.use=t.use||"";o.usehref=t.usehref||"";o.value=t.value?(0,g.getColor)(t.value):"";o.extras=null;return o}_createClass(Color,[{key:u.$hasSettableValue,value:function value(){return!1}},{key:u.$toStyle,value:function value(){return this.value?y.Util.makeHexColor(this.value.r,this.value.g,this.value.b):null}}]);return Color}(u.XFAObject),ee=function(t){_inherits(Comb,t);var r=_createSuper(Comb);function Comb(t){var o;_classCallCheck(this,Comb);(o=r.call(this,C,"comb")).id=t.id||"";o.numberOfCells=(0,g.getInteger)({data:t.numberOfCells,defaultValue:0,validate:function validate(t){return t>=0}});o.use=t.use||"";o.usehref=t.usehref||"";return o}return Comb}(u.XFAObject),te=function(t){_inherits(Connect,t);var r=_createSuper(Connect);function Connect(t){var o;_classCallCheck(this,Connect);(o=r.call(this,C,"connect",!0)).connection=t.connection||"";o.id=t.id||"";o.ref=t.ref||"";o.usage=(0,g.getStringOption)(t.usage,["exportAndImport","exportOnly","importOnly"]);o.use=t.use||"";o.usehref=t.usehref||"";o.picture=null;return o}return Connect}(u.XFAObject),re=function(t){_inherits(ContentArea,t);var r=_createSuper(ContentArea);function ContentArea(t){var o;_classCallCheck(this,ContentArea);(o=r.call(this,C,"contentArea",!0)).h=(0,g.getMeasurement)(t.h);o.id=t.id||"";o.name=t.name||"";o.relevant=(0,g.getRelevant)(t.relevant);o.use=t.use||"";o.usehref=t.usehref||"";o.w=(0,g.getMeasurement)(t.w);o.x=(0,g.getMeasurement)(t.x,"0pt");o.y=(0,g.getMeasurement)(t.y,"0pt");o.desc=null;o.extras=null;return o}_createClass(ContentArea,[{key:u.$toHTML,value:function value(t){var r={left:(0,m.measureToString)(this.x),top:(0,m.measureToString)(this.y),width:(0,m.measureToString)(this.w),height:(0,m.measureToString)(this.h)},o=["xfaContentarea"];(0,m.isPrintOnly)(this)&&o.push("xfaPrintOnly");return g.HTMLResult.success({name:"div",children:[],attributes:{style:r,class:o,id:this[u.$uid]}})}}]);return ContentArea}(u.XFAObject),ae=function(t){_inherits(Corner,t);var r=_createSuper(Corner);function Corner(t){var o;_classCallCheck(this,Corner);(o=r.call(this,C,"corner",!0)).id=t.id||"";o.inverted=(0,g.getInteger)({data:t.inverted,defaultValue:0,validate:function validate(t){return 1===t}});o.join=(0,g.getStringOption)(t.join,["square","round"]);o.presence=(0,g.getStringOption)(t.presence,["visible","hidden","inactive","invisible"]);o.radius=(0,g.getMeasurement)(t.radius);o.stroke=(0,g.getStringOption)(t.stroke,["solid","dashDot","dashDotDot","dashed","dotted","embossed","etched","lowered","raised"]);o.thickness=(0,g.getMeasurement)(t.thickness,"0.5pt");o.use=t.use||"";o.usehref=t.usehref||"";o.color=null;o.extras=null;return o}_createClass(Corner,[{key:u.$toStyle,value:function value(){var t=(0,m.toStyle)(this,"visibility");t.radius=(0,m.measureToString)("square"===this.join?0:this.radius);return t}}]);return Corner}(u.XFAObject),ne=function(t){_inherits(DateElement,t);var r=_createSuper(DateElement);function DateElement(t){var o;_classCallCheck(this,DateElement);(o=r.call(this,C,"date")).id=t.id||"";o.name=t.name||"";o.use=t.use||"";o.usehref=t.usehref||"";return o}_createClass(DateElement,[{key:u.$finalize,value:function value(){var t=this[u.$content].trim();this[u.$content]=t?new Date(t):null}},{key:u.$toHTML,value:function value(t){return valueToHtml(this[u.$content]?this[u.$content].toString():"")}}]);return DateElement}(u.ContentObject),ie=function(t){_inherits(DateTime,t);var r=_createSuper(DateTime);function DateTime(t){var o;_classCallCheck(this,DateTime);(o=r.call(this,C,"dateTime")).id=t.id||"";o.name=t.name||"";o.use=t.use||"";o.usehref=t.usehref||"";return o}_createClass(DateTime,[{key:u.$finalize,value:function value(){var t=this[u.$content].trim();this[u.$content]=t?new Date(t):null}},{key:u.$toHTML,value:function value(t){return valueToHtml(this[u.$content]?this[u.$content].toString():"")}}]);return DateTime}(u.ContentObject),oe=function(t){_inherits(DateTimeEdit,t);var r=_createSuper(DateTimeEdit);function DateTimeEdit(t){var o;_classCallCheck(this,DateTimeEdit);(o=r.call(this,C,"dateTimeEdit",!0)).hScrollPolicy=(0,g.getStringOption)(t.hScrollPolicy,["auto","off","on"]);o.id=t.id||"";o.picker=(0,g.getStringOption)(t.picker,["host","none"]);o.use=t.use||"";o.usehref=t.usehref||"";o.border=null;o.comb=null;o.extras=null;o.margin=null;return o}_createClass(DateTimeEdit,[{key:u.$toHTML,value:function value(t){var r=(0,m.toStyle)(this,"border","font","margin"),o=this[u.$getParent]()[u.$getParent](),l={name:"input",attributes:{type:"text",fieldId:o[u.$uid],dataId:o[u.$data]&&o[u.$data][u.$uid]||o[u.$uid],class:["xfaTextfield"],style:r,"aria-label":ariaLabel(o)}};return g.HTMLResult.success({name:"label",attributes:{class:["xfaLabel"]},children:[l]})}}]);return DateTimeEdit}(u.XFAObject),se=function(t){_inherits(Decimal,t);var r=_createSuper(Decimal);function Decimal(t){var o;_classCallCheck(this,Decimal);(o=r.call(this,C,"decimal")).fracDigits=(0,g.getInteger)({data:t.fracDigits,defaultValue:2,validate:function validate(t){return!0}});o.id=t.id||"";o.leadDigits=(0,g.getInteger)({data:t.leadDigits,defaultValue:-1,validate:function validate(t){return!0}});o.name=t.name||"";o.use=t.use||"";o.usehref=t.usehref||"";return o}_createClass(Decimal,[{key:u.$finalize,value:function value(){var t=parseFloat(this[u.$content].trim());this[u.$content]=isNaN(t)?null:t}},{key:u.$toHTML,value:function value(t){return valueToHtml(null!==this[u.$content]?this[u.$content].toString():"")}}]);return Decimal}(u.ContentObject),le=function(t){_inherits(DefaultUi,t);var r=_createSuper(DefaultUi);function DefaultUi(t){var o;_classCallCheck(this,DefaultUi);(o=r.call(this,C,"defaultUi",!0)).id=t.id||"";o.use=t.use||"";o.usehref=t.usehref||"";o.extras=null;return o}return DefaultUi}(u.XFAObject),ce=function(t){_inherits(Desc,t);var r=_createSuper(Desc);function Desc(t){var o;_classCallCheck(this,Desc);(o=r.call(this,C,"desc",!0)).id=t.id||"";o.use=t.use||"";o.usehref=t.usehref||"";o.boolean=new u.XFAObjectArray;o.date=new u.XFAObjectArray;o.dateTime=new u.XFAObjectArray;o.decimal=new u.XFAObjectArray;o.exData=new u.XFAObjectArray;o.float=new u.XFAObjectArray;o.image=new u.XFAObjectArray;o.integer=new u.XFAObjectArray;o.text=new u.XFAObjectArray;o.time=new u.XFAObjectArray;return o}return Desc}(u.XFAObject),ue=function(t){_inherits(DigestMethod,t);var r=_createSuper(DigestMethod);function DigestMethod(t){var o;_classCallCheck(this,DigestMethod);(o=r.call(this,C,"digestMethod",["","SHA1","SHA256","SHA512","RIPEMD160"])).id=t.id||"";o.use=t.use||"";o.usehref=t.usehref||"";return o}return DigestMethod}(u.OptionObject),fe=function(t){_inherits(DigestMethods,t);var r=_createSuper(DigestMethods);function DigestMethods(t){var o;_classCallCheck(this,DigestMethods);(o=r.call(this,C,"digestMethods",!0)).id=t.id||"";o.type=(0,g.getStringOption)(t.type,["optional","required"]);o.use=t.use||"";o.usehref=t.usehref||"";o.digestMethod=new u.XFAObjectArray;return o}return DigestMethods}(u.XFAObject),he=function(t){_inherits(Draw,t);var r=_createSuper(Draw);function Draw(t){var o;_classCallCheck(this,Draw);(o=r.call(this,C,"draw",!0)).anchorType=(0,g.getStringOption)(t.anchorType,["topLeft","bottomCenter","bottomLeft","bottomRight","middleCenter","middleLeft","middleRight","topCenter","topRight"]);o.colSpan=(0,g.getInteger)({data:t.colSpan,defaultValue:1,validate:function validate(t){return t>=1||-1===t}});o.h=t.h?(0,g.getMeasurement)(t.h):"";o.hAlign=(0,g.getStringOption)(t.hAlign,["left","center","justify","justifyAll","radix","right"]);o.id=t.id||"";o.locale=t.locale||"";o.maxH=(0,g.getMeasurement)(t.maxH,"0pt");o.maxW=(0,g.getMeasurement)(t.maxW,"0pt");o.minH=(0,g.getMeasurement)(t.minH,"0pt");o.minW=(0,g.getMeasurement)(t.minW,"0pt");o.name=t.name||"";o.presence=(0,g.getStringOption)(t.presence,["visible","hidden","inactive","invisible"]);o.relevant=(0,g.getRelevant)(t.relevant);o.rotate=(0,g.getInteger)({data:t.rotate,defaultValue:0,validate:function validate(t){return t%90==0}});o.use=t.use||"";o.usehref=t.usehref||"";o.w=t.w?(0,g.getMeasurement)(t.w):"";o.x=(0,g.getMeasurement)(t.x,"0pt");o.y=(0,g.getMeasurement)(t.y,"0pt");o.assist=null;o.border=null;o.caption=null;o.desc=null;o.extras=null;o.font=null;o.keep=null;o.margin=null;o.para=null;o.traversal=null;o.ui=null;o.value=null;o.setProperty=new u.XFAObjectArray;return o}_createClass(Draw,[{key:u.$setValue,value:function(t){function value(r){return t.apply(this,arguments)}value.toString=function(){return t.toString()};return value}((function(t){_setValue(this,t)}))},{key:u.$toHTML,value:function value(t){setTabIndex(this);if("hidden"===this.presence||"inactive"===this.presence)return g.HTMLResult.EMPTY;(0,m.fixDimensions)(this);this[u.$pushPara]();var r=this.w,o=this.h,l=(0,m.layoutNode)(this,t),c=l.w,h=l.h,y=l.isBroken;if(c&&""===this.w){if(y&&this[u.$getSubformParent]()[u.$isThereMoreWidth]()){this[u.$popPara]();return g.HTMLResult.FAILURE}this.w=c}h&&""===this.h&&(this.h=h);setFirstUnsplittable(this);if(!(0,d.checkDimensions)(this,t)){this.w=r;this.h=o;this[u.$popPara]();return g.HTMLResult.FAILURE}unsetFirstUnsplittable(this);var v=(0,m.toStyle)(this,"font","hAlign","dimensions","position","presence","rotate","anchorType","border","margin");(0,m.setMinMaxDimensions)(this,v);if(v.margin){v.padding=v.margin;delete v.margin}var S=["xfaDraw"];this.font&&S.push("xfaFont");(0,m.isPrintOnly)(this)&&S.push("xfaPrintOnly");var _={style:v,id:this[u.$uid],class:S};this.name&&(_.xfaName=this.name);var k={name:"div",attributes:_,children:[]};applyAssist(this,_);var C=(0,m.computeBbox)(this,k,t),value=this.value?this.value[u.$toHTML](t).html:null;if(null===value){this.w=r;this.h=o;this[u.$popPara]();return g.HTMLResult.success((0,m.createWrapper)(this,k),C)}k.children.push(value);(0,m.setPara)(this,v,value);this.w=r;this.h=o;this[u.$popPara]();return g.HTMLResult.success((0,m.createWrapper)(this,k),C)}}]);return Draw}(u.XFAObject),de=function(t){_inherits(Edge,t);var r=_createSuper(Edge);function Edge(t){var o;_classCallCheck(this,Edge);(o=r.call(this,C,"edge",!0)).cap=(0,g.getStringOption)(t.cap,["square","butt","round"]);o.id=t.id||"";o.presence=(0,g.getStringOption)(t.presence,["visible","hidden","inactive","invisible"]);o.stroke=(0,g.getStringOption)(t.stroke,["solid","dashDot","dashDotDot","dashed","dotted","embossed","etched","lowered","raised"]);o.thickness=(0,g.getMeasurement)(t.thickness,"0.5pt");o.use=t.use||"";o.usehref=t.usehref||"";o.color=null;o.extras=null;return o}_createClass(Edge,[{key:u.$toStyle,value:function value(){var t=(0,m.toStyle)(this,"visibility");Object.assign(t,{linecap:this.cap,width:(0,m.measureToString)(this.thickness),color:this.color?this.color[u.$toStyle]():"#000000",style:""});if("visible"!==this.presence)t.style="none";else switch(this.stroke){case"solid":t.style="solid";break;case"dashDot":case"dashDotDot":case"dashed":t.style="dashed";break;case"dotted":t.style="dotted";break;case"embossed":t.style="ridge";break;case"etched":t.style="groove";break;case"lowered":t.style="inset";break;case"raised":t.style="outset"}return t}}]);return Edge}(u.XFAObject),pe=function(t){_inherits(Encoding,t);var r=_createSuper(Encoding);function Encoding(t){var o;_classCallCheck(this,Encoding);(o=r.call(this,C,"encoding",["adbe.x509.rsa_sha1","adbe.pkcs7.detached","adbe.pkcs7.sha1"])).id=t.id||"";o.use=t.use||"";o.usehref=t.usehref||"";return o}return Encoding}(u.OptionObject),me=function(t){_inherits(Encodings,t);var r=_createSuper(Encodings);function Encodings(t){var o;_classCallCheck(this,Encodings);(o=r.call(this,C,"encodings",!0)).id=t.id||"";o.type=(0,g.getStringOption)(t.type,["optional","required"]);o.use=t.use||"";o.usehref=t.usehref||"";o.encoding=new u.XFAObjectArray;return o}return Encodings}(u.XFAObject),ge=function(t){_inherits(Encrypt,t);var r=_createSuper(Encrypt);function Encrypt(t){var o;_classCallCheck(this,Encrypt);(o=r.call(this,C,"encrypt",!0)).id=t.id||"";o.use=t.use||"";o.usehref=t.usehref||"";o.certificate=null;return o}return Encrypt}(u.XFAObject),ye=function(t){_inherits(EncryptData,t);var r=_createSuper(EncryptData);function EncryptData(t){var o;_classCallCheck(this,EncryptData);(o=r.call(this,C,"encryptData",!0)).id=t.id||"";o.operation=(0,g.getStringOption)(t.operation,["encrypt","decrypt"]);o.target=t.target||"";o.use=t.use||"";o.usehref=t.usehref||"";o.filter=null;o.manifest=null;return o}return EncryptData}(u.XFAObject),ve=function(t){_inherits(Encryption,t);var r=_createSuper(Encryption);function Encryption(t){var o;_classCallCheck(this,Encryption);(o=r.call(this,C,"encryption",!0)).id=t.id||"";o.type=(0,g.getStringOption)(t.type,["optional","required"]);o.use=t.use||"";o.usehref=t.usehref||"";o.certificate=new u.XFAObjectArray;return o}return Encryption}(u.XFAObject),be=function(t){_inherits(EncryptionMethod,t);var r=_createSuper(EncryptionMethod);function EncryptionMethod(t){var o;_classCallCheck(this,EncryptionMethod);(o=r.call(this,C,"encryptionMethod",["","AES256-CBC","TRIPLEDES-CBC","AES128-CBC","AES192-CBC"])).id=t.id||"";o.use=t.use||"";o.usehref=t.usehref||"";return o}return EncryptionMethod}(u.OptionObject),Se=function(t){_inherits(EncryptionMethods,t);var r=_createSuper(EncryptionMethods);function EncryptionMethods(t){var o;_classCallCheck(this,EncryptionMethods);(o=r.call(this,C,"encryptionMethods",!0)).id=t.id||"";o.type=(0,g.getStringOption)(t.type,["optional","required"]);o.use=t.use||"";o.usehref=t.usehref||"";o.encryptionMethod=new u.XFAObjectArray;return o}return EncryptionMethods}(u.XFAObject),_e=function(t){_inherits(Event,t);var r=_createSuper(Event);function Event(t){var o;_classCallCheck(this,Event);(o=r.call(this,C,"event",!0)).activity=(0,g.getStringOption)(t.activity,["click","change","docClose","docReady","enter","exit","full","indexChange","initialize","mouseDown","mouseEnter","mouseExit","mouseUp","postExecute","postOpen","postPrint","postSave","postSign","postSubmit","preExecute","preOpen","prePrint","preSave","preSign","preSubmit","ready","validationState"]);o.id=t.id||"";o.listen=(0,g.getStringOption)(t.listen,["refOnly","refAndDescendents"]);o.name=t.name||"";o.ref=t.ref||"";o.use=t.use||"";o.usehref=t.usehref||"";o.extras=null;o.encryptData=null;o.execute=null;o.script=null;o.signData=null;o.submit=null;return o}return Event}(u.XFAObject),ke=function(t){_inherits(ExData,t);var r=_createSuper(ExData);function ExData(t){var o;_classCallCheck(this,ExData);(o=r.call(this,C,"exData")).contentType=t.contentType||"";o.href=t.href||"";o.id=t.id||"";o.maxLength=(0,g.getInteger)({data:t.maxLength,defaultValue:-1,validate:function validate(t){return t>=-1}});o.name=t.name||"";o.rid=t.rid||"";o.transferEncoding=(0,g.getStringOption)(t.transferEncoding,["none","base64","package"]);o.use=t.use||"";o.usehref=t.usehref||"";return o}_createClass(ExData,[{key:u.$isCDATAXml,value:function value(){return"text/html"===this.contentType}},{key:u.$onChild,value:function value(t){if("text/html"===this.contentType&&t[u.$namespaceId]===h.NamespaceIds.xhtml.id){this[u.$content]=t;return!0}if("text/xml"===this.contentType){this[u.$content]=t;return!0}return!1}},{key:u.$toHTML,value:function value(t){return"text/html"===this.contentType&&this[u.$content]?this[u.$content][u.$toHTML](t):g.HTMLResult.EMPTY}}]);return ExData}(u.ContentObject),Ce=function(t){_inherits(ExObject,t);var r=_createSuper(ExObject);function ExObject(t){var o;_classCallCheck(this,ExObject);(o=r.call(this,C,"exObject",!0)).archive=t.archive||"";o.classId=t.classId||"";o.codeBase=t.codeBase||"";o.codeType=t.codeType||"";o.id=t.id||"";o.name=t.name||"";o.use=t.use||"";o.usehref=t.usehref||"";o.extras=null;o.boolean=new u.XFAObjectArray;o.date=new u.XFAObjectArray;o.dateTime=new u.XFAObjectArray;o.decimal=new u.XFAObjectArray;o.exData=new u.XFAObjectArray;o.exObject=new u.XFAObjectArray;o.float=new u.XFAObjectArray;o.image=new u.XFAObjectArray;o.integer=new u.XFAObjectArray;o.text=new u.XFAObjectArray;o.time=new u.XFAObjectArray;return o}return ExObject}(u.XFAObject),we=function(t){_inherits(ExclGroup,t);var r=_createSuper(ExclGroup);function ExclGroup(t){var o;_classCallCheck(this,ExclGroup);(o=r.call(this,C,"exclGroup",!0)).access=(0,g.getStringOption)(t.access,["open","nonInteractive","protected","readOnly"]);o.accessKey=t.accessKey||"";o.anchorType=(0,g.getStringOption)(t.anchorType,["topLeft","bottomCenter","bottomLeft","bottomRight","middleCenter","middleLeft","middleRight","topCenter","topRight"]);o.colSpan=(0,g.getInteger)({data:t.colSpan,defaultValue:1,validate:function validate(t){return t>=1||-1===t}});o.h=t.h?(0,g.getMeasurement)(t.h):"";o.hAlign=(0,g.getStringOption)(t.hAlign,["left","center","justify","justifyAll","radix","right"]);o.id=t.id||"";o.layout=(0,g.getStringOption)(t.layout,["position","lr-tb","rl-row","rl-tb","row","table","tb"]);o.maxH=(0,g.getMeasurement)(t.maxH,"0pt");o.maxW=(0,g.getMeasurement)(t.maxW,"0pt");o.minH=(0,g.getMeasurement)(t.minH,"0pt");o.minW=(0,g.getMeasurement)(t.minW,"0pt");o.name=t.name||"";o.presence=(0,g.getStringOption)(t.presence,["visible","hidden","inactive","invisible"]);o.relevant=(0,g.getRelevant)(t.relevant);o.use=t.use||"";o.usehref=t.usehref||"";o.w=t.w?(0,g.getMeasurement)(t.w):"";o.x=(0,g.getMeasurement)(t.x,"0pt");o.y=(0,g.getMeasurement)(t.y,"0pt");o.assist=null;o.bind=null;o.border=null;o.calculate=null;o.caption=null;o.desc=null;o.extras=null;o.margin=null;o.para=null;o.traversal=null;o.validate=null;o.connect=new u.XFAObjectArray;o.event=new u.XFAObjectArray;o.field=new u.XFAObjectArray;o.setProperty=new u.XFAObjectArray;return o}_createClass(ExclGroup,[{key:u.$isBindable,value:function value(){return!0}},{key:u.$hasSettableValue,value:function value(){return!0}},{key:u.$setValue,value:function(t){function value(r){return t.apply(this,arguments)}value.toString=function(){return t.toString()};return value}((function(t){var r,o=_createForOfIteratorHelper(this.field.children);try{for(o.s();!(r=o.n()).done;){var l=r.value;if(!l.value){var c=new jt({});l[u.$appendChild](c);l.value=c}l.value[u.$setValue](t)}}catch(t){o.e(t)}finally{o.f()}}))},{key:u.$isThereMoreWidth,value:function value(){return this.layout.endsWith("-tb")&&0===this[u.$extra].attempt&&this[u.$extra].numberInLine>0||this[u.$getParent]()[u.$isThereMoreWidth]()}},{key:u.$isSplittable,value:function value(){var t=this[u.$getSubformParent]();if(!t[u.$isSplittable]())return!1;if(void 0!==this[u.$extra]._isSplittable)return this[u.$extra]._isSplittable;if("position"===this.layout||this.layout.includes("row")){this[u.$extra]._isSplittable=!1;return!1}if(t.layout&&t.layout.endsWith("-tb")&&0!==t[u.$extra].numberInLine)return!1;this[u.$extra]._isSplittable=!0;return!0}},{key:u.$flushHTML,value:function value(){return(0,d.flushHTML)(this)}},{key:u.$addHTML,value:function value(t,r){(0,d.addHTML)(this,t,r)}},{key:u.$getAvailableSpace,value:function value(){return(0,d.getAvailableSpace)(this)}},{key:u.$toHTML,value:function value(t){setTabIndex(this);if("hidden"===this.presence||"inactive"===this.presence||0===this.h||0===this.w)return g.HTMLResult.EMPTY;(0,m.fixDimensions)(this);var r=[],o={id:this[u.$uid],class:[]};(0,m.setAccess)(this,o.class);this[u.$extra]||(this[u.$extra]=Object.create(null));Object.assign(this[u.$extra],{children:r,attributes:o,attempt:0,line:null,numberInLine:0,availableSpace:{width:Math.min(this.w||1/0,t.width),height:Math.min(this.h||1/0,t.height)},width:0,height:0,prevHeight:0,currentWidth:0});var l=this[u.$isSplittable]();l||setFirstUnsplittable(this);if(!(0,d.checkDimensions)(this,t))return g.HTMLResult.FAILURE;var c=new Set(["field"]);if(this.layout.includes("row")){var h=this[u.$getSubformParent]().columnWidths;if(Array.isArray(h)&&h.length>0){this[u.$extra].columnWidths=h;this[u.$extra].currentColumn=0}}var y=(0,m.toStyle)(this,"anchorType","dimensions","position","presence","border","margin","hAlign"),v=["xfaExclgroup"],S=(0,m.layoutClass)(this);S&&v.push(S);(0,m.isPrintOnly)(this)&&v.push("xfaPrintOnly");o.style=y;o.class=v;this.name&&(o.xfaName=this.name);this[u.$pushPara]();for(var _="lr-tb"===this.layout||"rl-tb"===this.layout,k=_?2:1;this[u.$extra].attempt<k;this[u.$extra].attempt++){_&&1===this[u.$extra].attempt&&(this[u.$extra].numberInLine=0);var C=this[u.$childrenToHTML]({filter:c,include:!0});if(C.success)break;if(C.isBreak()){this[u.$popPara]();return C}if(_&&0===this[u.$extra].attempt&&0===this[u.$extra].numberInLine&&!this[u.$getTemplateRoot]()[u.$extra].noLayoutFailure){this[u.$extra].attempt=k;break}}this[u.$popPara]();l||unsetFirstUnsplittable(this);if(this[u.$extra].attempt===k){l||delete this[u.$extra];return g.HTMLResult.FAILURE}var w=0,x=0;if(this.margin){w=this.margin.leftInset+this.margin.rightInset;x=this.margin.topInset+this.margin.bottomInset}var O=Math.max(this[u.$extra].width+w,this.w||0),T=Math.max(this[u.$extra].height+x,this.h||0),R=[this.x,this.y,O,T];""===this.w&&(y.width=(0,m.measureToString)(O));""===this.h&&(y.height=(0,m.measureToString)(T));var E={name:"div",attributes:o,children:r};applyAssist(this,o);delete this[u.$extra];return g.HTMLResult.success((0,m.createWrapper)(this,E),R)}}]);return ExclGroup}(u.XFAObject),Ae=function(t){_inherits(Execute,t);var r=_createSuper(Execute);function Execute(t){var o;_classCallCheck(this,Execute);(o=r.call(this,C,"execute")).connection=t.connection||"";o.executeType=(0,g.getStringOption)(t.executeType,["import","remerge"]);o.id=t.id||"";o.runAt=(0,g.getStringOption)(t.runAt,["client","both","server"]);o.use=t.use||"";o.usehref=t.usehref||"";return o}return Execute}(u.XFAObject),xe=function(t){_inherits(Extras,t);var r=_createSuper(Extras);function Extras(t){var o;_classCallCheck(this,Extras);(o=r.call(this,C,"extras",!0)).id=t.id||"";o.name=t.name||"";o.use=t.use||"";o.usehref=t.usehref||"";o.boolean=new u.XFAObjectArray;o.date=new u.XFAObjectArray;o.dateTime=new u.XFAObjectArray;o.decimal=new u.XFAObjectArray;o.exData=new u.XFAObjectArray;o.extras=new u.XFAObjectArray;o.float=new u.XFAObjectArray;o.image=new u.XFAObjectArray;o.integer=new u.XFAObjectArray;o.text=new u.XFAObjectArray;o.time=new u.XFAObjectArray;return o}return Extras}(u.XFAObject),Oe=function(t){_inherits(Field,t);var r=_createSuper(Field);function Field(t){var o;_classCallCheck(this,Field);(o=r.call(this,C,"field",!0)).access=(0,g.getStringOption)(t.access,["open","nonInteractive","protected","readOnly"]);o.accessKey=t.accessKey||"";o.anchorType=(0,g.getStringOption)(t.anchorType,["topLeft","bottomCenter","bottomLeft","bottomRight","middleCenter","middleLeft","middleRight","topCenter","topRight"]);o.colSpan=(0,g.getInteger)({data:t.colSpan,defaultValue:1,validate:function validate(t){return t>=1||-1===t}});o.h=t.h?(0,g.getMeasurement)(t.h):"";o.hAlign=(0,g.getStringOption)(t.hAlign,["left","center","justify","justifyAll","radix","right"]);o.id=t.id||"";o.locale=t.locale||"";o.maxH=(0,g.getMeasurement)(t.maxH,"0pt");o.maxW=(0,g.getMeasurement)(t.maxW,"0pt");o.minH=(0,g.getMeasurement)(t.minH,"0pt");o.minW=(0,g.getMeasurement)(t.minW,"0pt");o.name=t.name||"";o.presence=(0,g.getStringOption)(t.presence,["visible","hidden","inactive","invisible"]);o.relevant=(0,g.getRelevant)(t.relevant);o.rotate=(0,g.getInteger)({data:t.rotate,defaultValue:0,validate:function validate(t){return t%90==0}});o.use=t.use||"";o.usehref=t.usehref||"";o.w=t.w?(0,g.getMeasurement)(t.w):"";o.x=(0,g.getMeasurement)(t.x,"0pt");o.y=(0,g.getMeasurement)(t.y,"0pt");o.assist=null;o.bind=null;o.border=null;o.calculate=null;o.caption=null;o.desc=null;o.extras=null;o.font=null;o.format=null;o.items=new u.XFAObjectArray(2);o.keep=null;o.margin=null;o.para=null;o.traversal=null;o.ui=null;o.validate=null;o.value=null;o.bindItems=new u.XFAObjectArray;o.connect=new u.XFAObjectArray;o.event=new u.XFAObjectArray;o.setProperty=new u.XFAObjectArray;return o}_createClass(Field,[{key:u.$isBindable,value:function value(){return!0}},{key:u.$setValue,value:function(t){function value(r){return t.apply(this,arguments)}value.toString=function(){return t.toString()};return value}((function(t){_setValue(this,t)}))},{key:u.$toHTML,value:function value(t){setTabIndex(this);if(!this.ui){this.ui=new Bt({});this.ui[u.$globalData]=this[u.$globalData];this[u.$appendChild](this.ui);var r;switch(this.items.children.length){case 0:r=new Tt({});this.ui.textEdit=r;break;case 1:r=new J({});this.ui.checkButton=r;break;case 2:r=new Q({});this.ui.choiceList=r}this.ui[u.$appendChild](r)}if(!this.ui||"hidden"===this.presence||"inactive"===this.presence||0===this.h||0===this.w)return g.HTMLResult.EMPTY;this.caption&&delete this.caption[u.$extra];this[u.$pushPara]();var o=this.caption?this.caption[u.$toHTML](t).html:null,l=this.w,c=this.h,h=0,y=0;if(this.margin){h=this.margin.leftInset+this.margin.rightInset;y=this.margin.topInset+this.margin.bottomInset}var S=null;if(""===this.w||""===this.h){var _=null,k=null,C=0,w=0;if(this.ui.checkButton)C=w=this.ui.checkButton.size;else{var x=(0,m.layoutNode)(this,t),O=x.w,T=x.h;if(null!==O){C=O;w=T}else w=(0,v.getMetrics)(this.font,!0).lineNoGap}C+=(S=getBorderDims(this.ui[u.$getExtra]())).w;w+=S.h;if(this.caption){var R=this.caption[u.$getExtra](t),E=R.w,M=R.h;if(R.isBroken&&this[u.$getSubformParent]()[u.$isThereMoreWidth]()){this[u.$popPara]();return g.HTMLResult.FAILURE}_=E;k=M;switch(this.caption.placement){case"left":case"right":case"inline":_+=C;break;case"top":case"bottom":k+=w}}else{_=C;k=w}if(_&&""===this.w){_+=h;this.w=Math.min(this.maxW<=0?1/0:this.maxW,this.minW+1<_?_:this.minW)}if(k&&""===this.h){k+=y;this.h=Math.min(this.maxH<=0?1/0:this.maxH,this.minH+1<k?k:this.minH)}}this[u.$popPara]();(0,m.fixDimensions)(this);setFirstUnsplittable(this);if(!(0,d.checkDimensions)(this,t)){this.w=l;this.h=c;this[u.$popPara]();return g.HTMLResult.FAILURE}unsetFirstUnsplittable(this);var D=(0,m.toStyle)(this,"font","dimensions","position","rotate","anchorType","presence","margin","hAlign");(0,m.setMinMaxDimensions)(this,D);var j=["xfaField"];this.font&&j.push("xfaFont");(0,m.isPrintOnly)(this)&&j.push("xfaPrintOnly");var L={style:D,id:this[u.$uid],class:j};if(D.margin){D.padding=D.margin;delete D.margin}(0,m.setAccess)(this,j);this.name&&(L.xfaName=this.name);var N=[],U={name:"div",attributes:L,children:N};applyAssist(this,L);var H=this.border?this.border[u.$toStyle]():null,W=(0,m.computeBbox)(this,U,t),$=this.ui[u.$toHTML]().html;if(!$){Object.assign(D,H);return g.HTMLResult.success((0,m.createWrapper)(this,U),W)}this[u.$tabIndex]&&($.children&&$.children[0]?$.children[0].attributes.tabindex=this[u.$tabIndex]:$.attributes.tabindex=this[u.$tabIndex]);$.attributes.style||($.attributes.style=Object.create(null));var q=null;if(this.ui.button){if(1===$.children.length){q=_slicedToArray($.children.splice(0,1),1)[0]}Object.assign($.attributes.style,H)}else Object.assign(D,H);N.push($);if(this.value)if(this.ui.imageEdit)$.children.push(this.value[u.$toHTML]().html);else if(!this.ui.button){var X="";if(this.value.exData)X=this.value.exData[u.$text]();else if(this.value.text)X=this.value.text[u.$getExtra]();else{var z=this.value[u.$toHTML]().html;null!==z&&(X=z.children[0].value)}this.ui.textEdit&&this.value.text&&this.value.text.maxChars&&($.children[0].attributes.maxLength=this.value.text.maxChars);if(X){if(this.ui.numericEdit){X=parseFloat(X);X=isNaN(X)?"":X.toString()}"textarea"===$.children[0].name?$.children[0].attributes.textContent=X:$.children[0].attributes.value=X}}if(!this.ui.imageEdit&&$.children&&$.children[0]&&this.h){S=S||getBorderDims(this.ui[u.$getExtra]());var G=0;if(this.caption&&["top","bottom"].includes(this.caption.placement)){(G=this.caption.reserve)<=0&&(G=this.caption[u.$getExtra](t).h);var V=this.h-G-y-S.h;$.children[0].attributes.style.height=(0,m.measureToString)(V)}else $.children[0].attributes.style.height="100%"}q&&$.children.push(q);if(!o){$.attributes.class&&$.attributes.class.push("xfaLeft");this.w=l;this.h=c;return g.HTMLResult.success((0,m.createWrapper)(this,U),W)}if(this.ui.button){D.padding&&delete D.padding;"div"===o.name&&(o.name="span");$.children.push(o);return g.HTMLResult.success(U,W)}this.ui.checkButton&&(o.attributes.class[0]="xfaCaptionForCheckButton");$.attributes.class||($.attributes.class=[]);$.children.splice(0,0,o);switch(this.caption.placement){case"left":$.attributes.class.push("xfaLeft");break;case"right":$.attributes.class.push("xfaRight");break;case"top":$.attributes.class.push("xfaTop");break;case"bottom":$.attributes.class.push("xfaBottom");break;case"inline":$.attributes.class.push("xfaLeft")}this.w=l;this.h=c;return g.HTMLResult.success((0,m.createWrapper)(this,U),W)}}]);return Field}(u.XFAObject);r.Field=Oe;var Pe=function(t){_inherits(Fill,t);var r=_createSuper(Fill);function Fill(t){var o;_classCallCheck(this,Fill);(o=r.call(this,C,"fill",!0)).id=t.id||"";o.presence=(0,g.getStringOption)(t.presence,["visible","hidden","inactive","invisible"]);o.use=t.use||"";o.usehref=t.usehref||"";o.color=null;o.extras=null;o.linear=null;o.pattern=null;o.radial=null;o.solid=null;o.stipple=null;return o}_createClass(Fill,[{key:u.$toStyle,value:function value(){var t=this[u.$getParent](),r=t[u.$getParent]()[u.$getParent](),o=Object.create(null),l="color",c=l;if(t instanceof W){l="background-color";c="background";r instanceof Bt&&(o.backgroundColor="white")}if(t instanceof ft||t instanceof E){l=c="fill";o.fill="white"}var h,d=_createForOfIteratorHelper(Object.getOwnPropertyNames(this));try{for(d.s();!(h=d.n()).done;){var m=h.value;if("extras"!==m&&"color"!==m){var g=this[m];if(g instanceof u.XFAObject){var y=g[u.$toStyle](this.color);y&&(o[y.startsWith("#")?l:c]=y);return o}}}}catch(t){d.e(t)}finally{d.f()}if(this.color&&this.color.value){var v=this.color[u.$toStyle]();o[v.startsWith("#")?l:c]=v}return o}}]);return Fill}(u.XFAObject),Te=function(t){_inherits(Filter,t);var r=_createSuper(Filter);function Filter(t){var o;_classCallCheck(this,Filter);(o=r.call(this,C,"filter",!0)).addRevocationInfo=(0,g.getStringOption)(t.addRevocationInfo,["","required","optional","none"]);o.id=t.id||"";o.name=t.name||"";o.use=t.use||"";o.usehref=t.usehref||"";o.version=(0,g.getInteger)({data:o.version,defaultValue:5,validate:function validate(t){return t>=1&&t<=5}});o.appearanceFilter=null;o.certificates=null;o.digestMethods=null;o.encodings=null;o.encryptionMethods=null;o.handler=null;o.lockDocument=null;o.mdp=null;o.reasons=null;o.timeStamp=null;return o}return Filter}(u.XFAObject),Ie=function(t){_inherits(Float,t);var r=_createSuper(Float);function Float(t){var o;_classCallCheck(this,Float);(o=r.call(this,C,"float")).id=t.id||"";o.name=t.name||"";o.use=t.use||"";o.usehref=t.usehref||"";return o}_createClass(Float,[{key:u.$finalize,value:function value(){var t=parseFloat(this[u.$content].trim());this[u.$content]=isNaN(t)?null:t}},{key:u.$toHTML,value:function value(t){return valueToHtml(null!==this[u.$content]?this[u.$content].toString():"")}}]);return Float}(u.ContentObject),Fe=function(t){_inherits(Font,t);var r=_createSuper(Font);function Font(t){var o;_classCallCheck(this,Font);(o=r.call(this,C,"font",!0)).baselineShift=(0,g.getMeasurement)(t.baselineShift);o.fontHorizontalScale=(0,g.getFloat)({data:t.fontHorizontalScale,defaultValue:100,validate:function validate(t){return t>=0}});o.fontVerticalScale=(0,g.getFloat)({data:t.fontVerticalScale,defaultValue:100,validate:function validate(t){return t>=0}});o.id=t.id||"";o.kerningMode=(0,g.getStringOption)(t.kerningMode,["none","pair"]);o.letterSpacing=(0,g.getMeasurement)(t.letterSpacing,"0");o.lineThrough=(0,g.getInteger)({data:t.lineThrough,defaultValue:0,validate:function validate(t){return 1===t||2===t}});o.lineThroughPeriod=(0,g.getStringOption)(t.lineThroughPeriod,["all","word"]);o.overline=(0,g.getInteger)({data:t.overline,defaultValue:0,validate:function validate(t){return 1===t||2===t}});o.overlinePeriod=(0,g.getStringOption)(t.overlinePeriod,["all","word"]);o.posture=(0,g.getStringOption)(t.posture,["normal","italic"]);o.size=(0,g.getMeasurement)(t.size,"10pt");o.typeface=t.typeface||"Courier";o.underline=(0,g.getInteger)({data:t.underline,defaultValue:0,validate:function validate(t){return 1===t||2===t}});o.underlinePeriod=(0,g.getStringOption)(t.underlinePeriod,["all","word"]);o.use=t.use||"";o.usehref=t.usehref||"";o.weight=(0,g.getStringOption)(t.weight,["normal","bold"]);o.extras=null;o.fill=null;return o}_createClass(Font,[{key:u.$clean,value:function value(t){_get(_getPrototypeOf(Font.prototype),u.$clean,this).call(this,t);this[u.$globalData].usedTypefaces.add(this.typeface)}},{key:u.$toStyle,value:function value(){var t=(0,m.toStyle)(this,"fill"),r=t.color;if(r)if("#000000"===r)delete t.color;else if(!r.startsWith("#")){t.background=r;t.backgroundClip="text";t.color="transparent"}this.baselineShift&&(t.verticalAlign=(0,m.measureToString)(this.baselineShift));t.fontKerning="none"===this.kerningMode?"none":"normal";t.letterSpacing=(0,m.measureToString)(this.letterSpacing);if(0!==this.lineThrough){t.textDecoration="line-through";2===this.lineThrough&&(t.textDecorationStyle="double")}if(0!==this.overline){t.textDecoration="overline";2===this.overline&&(t.textDecorationStyle="double")}t.fontStyle=this.posture;t.fontSize=(0,m.measureToString)(.99*this.size);(0,m.setFontFamily)(this,this,this[u.$globalData].fontFinder,t);if(0!==this.underline){t.textDecoration="underline";2===this.underline&&(t.textDecorationStyle="double")}t.fontWeight=this.weight;return t}}]);return Font}(u.XFAObject),Re=function(t){_inherits(Format,t);var r=_createSuper(Format);function Format(t){var o;_classCallCheck(this,Format);(o=r.call(this,C,"format",!0)).id=t.id||"";o.use=t.use||"";o.usehref=t.usehref||"";o.extras=null;o.picture=null;return o}return Format}(u.XFAObject),Ee=function(t){_inherits(Handler,t);var r=_createSuper(Handler);function Handler(t){var o;_classCallCheck(this,Handler);(o=r.call(this,C,"handler")).id=t.id||"";o.type=(0,g.getStringOption)(t.type,["optional","required"]);o.use=t.use||"";o.usehref=t.usehref||"";return o}return Handler}(u.StringObject),Me=function(t){_inherits(Hyphenation,t);var r=_createSuper(Hyphenation);function Hyphenation(t){var o;_classCallCheck(this,Hyphenation);(o=r.call(this,C,"hyphenation")).excludeAllCaps=(0,g.getInteger)({data:t.excludeAllCaps,defaultValue:0,validate:function validate(t){return 1===t}});o.excludeInitialCap=(0,g.getInteger)({data:t.excludeInitialCap,defaultValue:0,validate:function validate(t){return 1===t}});o.hyphenate=(0,g.getInteger)({data:t.hyphenate,defaultValue:0,validate:function validate(t){return 1===t}});o.id=t.id||"";o.pushCharacterCount=(0,g.getInteger)({data:t.pushCharacterCount,defaultValue:3,validate:function validate(t){return t>=0}});o.remainCharacterCount=(0,g.getInteger)({data:t.remainCharacterCount,defaultValue:3,validate:function validate(t){return t>=0}});o.use=t.use||"";o.usehref=t.usehref||"";o.wordCharacterCount=(0,g.getInteger)({data:t.wordCharacterCount,defaultValue:7,validate:function validate(t){return t>=0}});return o}return Hyphenation}(u.XFAObject),Be=function(t){_inherits(Image,t);var r=_createSuper(Image);function Image(t){var o;_classCallCheck(this,Image);(o=r.call(this,C,"image")).aspect=(0,g.getStringOption)(t.aspect,["fit","actual","height","none","width"]);o.contentType=t.contentType||"";o.href=t.href||"";o.id=t.id||"";o.name=t.name||"";o.transferEncoding=(0,g.getStringOption)(t.transferEncoding,["base64","none","package"]);o.use=t.use||"";o.usehref=t.usehref||"";return o}_createClass(Image,[{key:u.$toHTML,value:function value(){if(this.contentType&&!O.has(this.contentType.toLowerCase()))return g.HTMLResult.EMPTY;var t=this[u.$globalData].images&&this[u.$globalData].images.get(this.href);if(!t&&(this.href||!this[u.$content]))return g.HTMLResult.EMPTY;t||"base64"!==this.transferEncoding||(t=(0,y.stringToBytes)(atob(this[u.$content])));if(!t)return g.HTMLResult.EMPTY;if(!this.contentType){var r,o=_createForOfIteratorHelper(T);try{for(o.s();!(r=o.n()).done;){var l=_slicedToArray(r.value,2),c=l[0],h=l[1];if(t.length>c.length&&c.every((function(r,o){return r===t[o]}))){this.contentType=h;break}}}catch(t){o.e(t)}finally{o.f()}if(!this.contentType)return g.HTMLResult.EMPTY}var d,m=new Blob([t],{type:this.contentType});switch(this.aspect){case"fit":case"actual":break;case"height":d={height:"100%",objectFit:"fill"};break;case"none":d={width:"100%",height:"100%",objectFit:"fill"};break;case"width":d={width:"100%",objectFit:"fill"}}var v=this[u.$getParent]();return g.HTMLResult.success({name:"img",attributes:{class:["xfaImage"],style:d,src:URL.createObjectURL(m),alt:v?ariaLabel(v[u.$getParent]()):null}})}}]);return Image}(u.StringObject),De=function(t){_inherits(ImageEdit,t);var r=_createSuper(ImageEdit);function ImageEdit(t){var o;_classCallCheck(this,ImageEdit);(o=r.call(this,C,"imageEdit",!0)).data=(0,g.getStringOption)(t.data,["link","embed"]);o.id=t.id||"";o.use=t.use||"";o.usehref=t.usehref||"";o.border=null;o.extras=null;o.margin=null;return o}_createClass(ImageEdit,[{key:u.$toHTML,value:function value(t){return"embed"===this.data?g.HTMLResult.success({name:"div",children:[],attributes:{}}):g.HTMLResult.EMPTY}}]);return ImageEdit}(u.XFAObject),je=function(t){_inherits(Integer,t);var r=_createSuper(Integer);function Integer(t){var o;_classCallCheck(this,Integer);(o=r.call(this,C,"integer")).id=t.id||"";o.name=t.name||"";o.use=t.use||"";o.usehref=t.usehref||"";return o}_createClass(Integer,[{key:u.$finalize,value:function value(){var t=parseInt(this[u.$content].trim(),10);this[u.$content]=isNaN(t)?null:t}},{key:u.$toHTML,value:function value(t){return valueToHtml(null!==this[u.$content]?this[u.$content].toString():"")}}]);return Integer}(u.ContentObject),Le=function(t){_inherits(Issuers,t);var r=_createSuper(Issuers);function Issuers(t){var o;_classCallCheck(this,Issuers);(o=r.call(this,C,"issuers",!0)).id=t.id||"";o.type=(0,g.getStringOption)(t.type,["optional","required"]);o.use=t.use||"";o.usehref=t.usehref||"";o.certificate=new u.XFAObjectArray;return o}return Issuers}(u.XFAObject),Ne=function(t){_inherits(Items,t);var r=_createSuper(Items);function Items(t){var o;_classCallCheck(this,Items);(o=r.call(this,C,"items",!0)).id=t.id||"";o.name=t.name||"";o.presence=(0,g.getStringOption)(t.presence,["visible","hidden","inactive","invisible"]);o.ref=t.ref||"";o.save=(0,g.getInteger)({data:t.save,defaultValue:0,validate:function validate(t){return 1===t}});o.use=t.use||"";o.usehref=t.usehref||"";o.boolean=new u.XFAObjectArray;o.date=new u.XFAObjectArray;o.dateTime=new u.XFAObjectArray;o.decimal=new u.XFAObjectArray;o.exData=new u.XFAObjectArray;o.float=new u.XFAObjectArray;o.image=new u.XFAObjectArray;o.integer=new u.XFAObjectArray;o.text=new u.XFAObjectArray;o.time=new u.XFAObjectArray;return o}_createClass(Items,[{key:u.$toHTML,value:function value(){var t,r=[],o=_createForOfIteratorHelper(this[u.$getChildren]());try{for(o.s();!(t=o.n()).done;){var l=t.value;r.push(l[u.$text]())}}catch(t){o.e(t)}finally{o.f()}return g.HTMLResult.success(r)}}]);return Items}(u.XFAObject);r.Items=Ne;var Ue=function(t){_inherits(Keep,t);var r=_createSuper(Keep);function Keep(t){var o;_classCallCheck(this,Keep);(o=r.call(this,C,"keep",!0)).id=t.id||"";var l=["none","contentArea","pageArea"];o.intact=(0,g.getStringOption)(t.intact,l);o.next=(0,g.getStringOption)(t.next,l);o.previous=(0,g.getStringOption)(t.previous,l);o.use=t.use||"";o.usehref=t.usehref||"";o.extras=null;return o}return Keep}(u.XFAObject),He=function(t){_inherits(KeyUsage,t);var r=_createSuper(KeyUsage);function KeyUsage(t){var o;_classCallCheck(this,KeyUsage);var l=["","yes","no"];(o=r.call(this,C,"keyUsage")).crlSign=(0,g.getStringOption)(t.crlSign,l);o.dataEncipherment=(0,g.getStringOption)(t.dataEncipherment,l);o.decipherOnly=(0,g.getStringOption)(t.decipherOnly,l);o.digitalSignature=(0,g.getStringOption)(t.digitalSignature,l);o.encipherOnly=(0,g.getStringOption)(t.encipherOnly,l);o.id=t.id||"";o.keyAgreement=(0,g.getStringOption)(t.keyAgreement,l);o.keyCertSign=(0,g.getStringOption)(t.keyCertSign,l);o.keyEncipherment=(0,g.getStringOption)(t.keyEncipherment,l);o.nonRepudiation=(0,g.getStringOption)(t.nonRepudiation,l);o.type=(0,g.getStringOption)(t.type,["optional","required"]);o.use=t.use||"";o.usehref=t.usehref||"";return o}return KeyUsage}(u.XFAObject),We=function(t){_inherits(Line,t);var r=_createSuper(Line);function Line(t){var o;_classCallCheck(this,Line);(o=r.call(this,C,"line",!0)).hand=(0,g.getStringOption)(t.hand,["even","left","right"]);o.id=t.id||"";o.slope=(0,g.getStringOption)(t.slope,["\\","/"]);o.use=t.use||"";o.usehref=t.usehref||"";o.edge=null;return o}_createClass(Line,[{key:u.$toHTML,value:function value(){var t,r,o,l,c=this[u.$getParent]()[u.$getParent](),h=this.edge?this.edge:new de({}),d=h[u.$toStyle](),y=Object.create(null),v="visible"===h.presence?h.thickness:0;y.strokeWidth=(0,m.measureToString)(v);y.stroke=d.color;var S="100%",_="100%";if(c.w<=v){t="50%";r=0;o="50%";l="100%";S=y.strokeWidth}else if(c.h<=v){t=0;r="50%";o="100%";l="50%";_=y.strokeWidth}else if("\\"===this.slope){t=0;r=0;o="100%";l="100%"}else{t=0;r="100%";o="100%";l=0}var k={name:"svg",children:[{name:"line",attributes:{xmlns:w,x1:t,y1:r,x2:o,y2:l,style:y}}],attributes:{xmlns:w,width:S,height:_,style:{overflow:"visible"}}};if(hasMargin(c))return g.HTMLResult.success({name:"div",attributes:{style:{display:"inline",width:"100%",height:"100%"}},children:[k]});k.attributes.style.position="absolute";return g.HTMLResult.success(k)}}]);return Line}(u.XFAObject),$e=function(t){_inherits(Linear,t);var r=_createSuper(Linear);function Linear(t){var o;_classCallCheck(this,Linear);(o=r.call(this,C,"linear",!0)).id=t.id||"";o.type=(0,g.getStringOption)(t.type,["toRight","toBottom","toLeft","toTop"]);o.use=t.use||"";o.usehref=t.usehref||"";o.color=null;o.extras=null;return o}_createClass(Linear,[{key:u.$toStyle,value:function value(t){t=t?t[u.$toStyle]():"#FFFFFF";var r=this.type.replace(/([RBLT])/," $1").toLowerCase(),o=this.color?this.color[u.$toStyle]():"#000000";return"linear-gradient(".concat(r,", ").concat(t,", ").concat(o,")")}}]);return Linear}(u.XFAObject),qe=function(t){_inherits(LockDocument,t);var r=_createSuper(LockDocument);function LockDocument(t){var o;_classCallCheck(this,LockDocument);(o=r.call(this,C,"lockDocument")).id=t.id||"";o.type=(0,g.getStringOption)(t.type,["optional","required"]);o.use=t.use||"";o.usehref=t.usehref||"";return o}_createClass(LockDocument,[{key:u.$finalize,value:function value(){this[u.$content]=(0,g.getStringOption)(this[u.$content],["auto","0","1"])}}]);return LockDocument}(u.ContentObject),Xe=function(t){_inherits(Manifest,t);var r=_createSuper(Manifest);function Manifest(t){var o;_classCallCheck(this,Manifest);(o=r.call(this,C,"manifest",!0)).action=(0,g.getStringOption)(t.action,["include","all","exclude"]);o.id=t.id||"";o.name=t.name||"";o.use=t.use||"";o.usehref=t.usehref||"";o.extras=null;o.ref=new u.XFAObjectArray;return o}return Manifest}(u.XFAObject),ze=function(t){_inherits(Margin,t);var r=_createSuper(Margin);function Margin(t){var o;_classCallCheck(this,Margin);(o=r.call(this,C,"margin",!0)).bottomInset=(0,g.getMeasurement)(t.bottomInset,"0");o.id=t.id||"";o.leftInset=(0,g.getMeasurement)(t.leftInset,"0");o.rightInset=(0,g.getMeasurement)(t.rightInset,"0");o.topInset=(0,g.getMeasurement)(t.topInset,"0");o.use=t.use||"";o.usehref=t.usehref||"";o.extras=null;return o}_createClass(Margin,[{key:u.$toStyle,value:function value(){return{margin:(0,m.measureToString)(this.topInset)+" "+(0,m.measureToString)(this.rightInset)+" "+(0,m.measureToString)(this.bottomInset)+" "+(0,m.measureToString)(this.leftInset)}}}]);return Margin}(u.XFAObject),Ge=function(t){_inherits(Mdp,t);var r=_createSuper(Mdp);function Mdp(t){var o;_classCallCheck(this,Mdp);(o=r.call(this,C,"mdp")).id=t.id||"";o.permissions=(0,g.getInteger)({data:t.permissions,defaultValue:2,validate:function validate(t){return 1===t||3===t}});o.signatureType=(0,g.getStringOption)(t.signatureType,["filler","author"]);o.use=t.use||"";o.usehref=t.usehref||"";return o}return Mdp}(u.XFAObject),Ve=function(t){_inherits(Medium,t);var r=_createSuper(Medium);function Medium(t){var o;_classCallCheck(this,Medium);(o=r.call(this,C,"medium")).id=t.id||"";o.imagingBBox=(0,g.getBBox)(t.imagingBBox);o.long=(0,g.getMeasurement)(t.long);o.orientation=(0,g.getStringOption)(t.orientation,["portrait","landscape"]);o.short=(0,g.getMeasurement)(t.short);o.stock=t.stock||"";o.trayIn=(0,g.getStringOption)(t.trayIn,["auto","delegate","pageFront"]);o.trayOut=(0,g.getStringOption)(t.trayOut,["auto","delegate"]);o.use=t.use||"";o.usehref=t.usehref||"";return o}return Medium}(u.XFAObject),Ye=function(t){_inherits(Message,t);var r=_createSuper(Message);function Message(t){var o;_classCallCheck(this,Message);(o=r.call(this,C,"message",!0)).id=t.id||"";o.use=t.use||"";o.usehref=t.usehref||"";o.text=new u.XFAObjectArray;return o}return Message}(u.XFAObject),Ke=function(t){_inherits(NumericEdit,t);var r=_createSuper(NumericEdit);function NumericEdit(t){var o;_classCallCheck(this,NumericEdit);(o=r.call(this,C,"numericEdit",!0)).hScrollPolicy=(0,g.getStringOption)(t.hScrollPolicy,["auto","off","on"]);o.id=t.id||"";o.use=t.use||"";o.usehref=t.usehref||"";o.border=null;o.comb=null;o.extras=null;o.margin=null;return o}_createClass(NumericEdit,[{key:u.$toHTML,value:function value(t){var r=(0,m.toStyle)(this,"border","font","margin"),o=this[u.$getParent]()[u.$getParent](),l={name:"input",attributes:{type:"text",fieldId:o[u.$uid],dataId:o[u.$data]&&o[u.$data][u.$uid]||o[u.$uid],class:["xfaTextfield"],style:r,"aria-label":ariaLabel(o)}};return g.HTMLResult.success({name:"label",attributes:{class:["xfaLabel"]},children:[l]})}}]);return NumericEdit}(u.XFAObject),Je=function(t){_inherits(Occur,t);var r=_createSuper(Occur);function Occur(t){var o;_classCallCheck(this,Occur);(o=r.call(this,C,"occur",!0)).id=t.id||"";o.initial=""!==t.initial?(0,g.getInteger)({data:t.initial,defaultValue:"",validate:function validate(t){return!0}}):"";o.max=""!==t.max?(0,g.getInteger)({data:t.max,defaultValue:1,validate:function validate(t){return!0}}):"";o.min=""!==t.min?(0,g.getInteger)({data:t.min,defaultValue:1,validate:function validate(t){return!0}}):"";o.use=t.use||"";o.usehref=t.usehref||"";o.extras=null;return o}_createClass(Occur,[{key:u.$clean,value:function value(){var t=this[u.$getParent](),r=this.min;""===this.min&&(this.min=t instanceof tt||t instanceof rt?0:1);""===this.max&&(this.max=""===r?t instanceof tt||t instanceof rt?-1:1:this.min);-1!==this.max&&this.max<this.min&&(this.max=this.min);""===this.initial&&(this.initial=t instanceof Ot?1:this.min)}}]);return Occur}(u.XFAObject),Qe=function(t){_inherits(Oid,t);var r=_createSuper(Oid);function Oid(t){var o;_classCallCheck(this,Oid);(o=r.call(this,C,"oid")).id=t.id||"";o.name=t.name||"";o.use=t.use||"";o.usehref=t.usehref||"";return o}return Oid}(u.StringObject),Ze=function(t){_inherits(Oids,t);var r=_createSuper(Oids);function Oids(t){var o;_classCallCheck(this,Oids);(o=r.call(this,C,"oids",!0)).id=t.id||"";o.type=(0,g.getStringOption)(t.type,["optional","required"]);o.use=t.use||"";o.usehref=t.usehref||"";o.oid=new u.XFAObjectArray;return o}return Oids}(u.XFAObject),et=function(t){_inherits(Overflow,t);var r=_createSuper(Overflow);function Overflow(t){var o;_classCallCheck(this,Overflow);(o=r.call(this,C,"overflow")).id=t.id||"";o.leader=t.leader||"";o.target=t.target||"";o.trailer=t.trailer||"";o.use=t.use||"";o.usehref=t.usehref||"";return o}_createClass(Overflow,[{key:u.$getExtra,value:function value(){if(!this[u.$extra]){var t=this[u.$getParent](),r=this[u.$getTemplateRoot](),o=r[u.$searchNode](this.target,t),l=r[u.$searchNode](this.leader,t),c=r[u.$searchNode](this.trailer,t);this[u.$extra]={target:o&&o[0]||null,leader:l&&l[0]||null,trailer:c&&c[0]||null,addLeader:!1,addTrailer:!1}}return this[u.$extra]}}]);return Overflow}(u.XFAObject),tt=function(t){_inherits(PageArea,t);var r=_createSuper(PageArea);function PageArea(t){var o;_classCallCheck(this,PageArea);(o=r.call(this,C,"pageArea",!0)).blankOrNotBlank=(0,g.getStringOption)(t.blankOrNotBlank,["any","blank","notBlank"]);o.id=t.id||"";o.initialNumber=(0,g.getInteger)({data:t.initialNumber,defaultValue:1,validate:function validate(t){return!0}});o.name=t.name||"";o.numbered=(0,g.getInteger)({data:t.numbered,defaultValue:1,validate:function validate(t){return!0}});o.oddOrEven=(0,g.getStringOption)(t.oddOrEven,["any","even","odd"]);o.pagePosition=(0,g.getStringOption)(t.pagePosition,["any","first","last","only","rest"]);o.relevant=(0,g.getRelevant)(t.relevant);o.use=t.use||"";o.usehref=t.usehref||"";o.desc=null;o.extras=null;o.medium=null;o.occur=null;o.area=new u.XFAObjectArray;o.contentArea=new u.XFAObjectArray;o.draw=new u.XFAObjectArray;o.exclGroup=new u.XFAObjectArray;o.field=new u.XFAObjectArray;o.subform=new u.XFAObjectArray;return o}_createClass(PageArea,[{key:u.$isUsable,value:function value(){if(!this[u.$extra]){this[u.$extra]={numberOfUse:0};return!0}return!this.occur||-1===this.occur.max||this[u.$extra].numberOfUse<this.occur.max}},{key:u.$cleanPage,value:function value(){delete this[u.$extra]}},{key:u.$getNextPage,value:function value(){this[u.$extra]||(this[u.$extra]={numberOfUse:0});var t=this[u.$getParent]();if("orderedOccurrence"===t.relation&&this[u.$isUsable]()){this[u.$extra].numberOfUse+=1;return this}return t[u.$getNextPage]()}},{key:u.$getAvailableSpace,value:function value(){return this[u.$extra].space||{width:0,height:0}}},{key:u.$toHTML,value:function value(){this[u.$extra]||(this[u.$extra]={numberOfUse:1});var t=[];this[u.$extra].children=t;var r=Object.create(null);if(this.medium&&this.medium.short&&this.medium.long){r.width=(0,m.measureToString)(this.medium.short);r.height=(0,m.measureToString)(this.medium.long);this[u.$extra].space={width:this.medium.short,height:this.medium.long};if("landscape"===this.medium.orientation){var o=r.width;r.width=r.height;r.height=o;this[u.$extra].space={width:this.medium.long,height:this.medium.short}}}else(0,y.warn)("XFA - No medium specified in pageArea: please file a bug.");this[u.$childrenToHTML]({filter:new Set(["area","draw","field","subform"]),include:!0});this[u.$childrenToHTML]({filter:new Set(["contentArea"]),include:!0});return g.HTMLResult.success({name:"div",children:t,attributes:{class:["xfaPage"],id:this[u.$uid],style:r,xfaName:this.name}})}}]);return PageArea}(u.XFAObject),rt=function(t){_inherits(PageSet,t);var r=_createSuper(PageSet);function PageSet(t){var o;_classCallCheck(this,PageSet);(o=r.call(this,C,"pageSet",!0)).duplexImposition=(0,g.getStringOption)(t.duplexImposition,["longEdge","shortEdge"]);o.id=t.id||"";o.name=t.name||"";o.relation=(0,g.getStringOption)(t.relation,["orderedOccurrence","duplexPaginated","simplexPaginated"]);o.relevant=(0,g.getRelevant)(t.relevant);o.use=t.use||"";o.usehref=t.usehref||"";o.extras=null;o.occur=null;o.pageArea=new u.XFAObjectArray;o.pageSet=new u.XFAObjectArray;return o}_createClass(PageSet,[{key:u.$cleanPage,value:function value(){var t,r=_createForOfIteratorHelper(this.pageArea.children);try{for(r.s();!(t=r.n()).done;){t.value[u.$cleanPage]()}}catch(t){r.e(t)}finally{r.f()}var o,l=_createForOfIteratorHelper(this.pageSet.children);try{for(l.s();!(o=l.n()).done;){o.value[u.$cleanPage]()}}catch(t){l.e(t)}finally{l.f()}}},{key:u.$isUsable,value:function value(){return!this.occur||-1===this.occur.max||this[u.$extra].numberOfUse<this.occur.max}},{key:u.$getNextPage,value:function value(){this[u.$extra]||(this[u.$extra]={numberOfUse:1,pageIndex:-1,pageSetIndex:-1});if("orderedOccurrence"===this.relation){if(this[u.$extra].pageIndex+1<this.pageArea.children.length){this[u.$extra].pageIndex+=1;return this.pageArea.children[this[u.$extra].pageIndex][u.$getNextPage]()}if(this[u.$extra].pageSetIndex+1<this.pageSet.children.length){this[u.$extra].pageSetIndex+=1;return this.pageSet.children[this[u.$extra].pageSetIndex][u.$getNextPage]()}if(this[u.$isUsable]()){this[u.$extra].numberOfUse+=1;this[u.$extra].pageIndex=-1;this[u.$extra].pageSetIndex=-1;return this[u.$getNextPage]()}var t=this[u.$getParent]();if(t instanceof PageSet)return t[u.$getNextPage]();this[u.$cleanPage]();return this[u.$getNextPage]()}var r=this[u.$getTemplateRoot]()[u.$extra].pageNumber,o=r%2==0?"even":"odd",l=0===r?"first":"rest",c=this.pageArea.children.find((function(t){return t.oddOrEven===o&&t.pagePosition===l}));return c||((c=this.pageArea.children.find((function(t){return"any"===t.oddOrEven&&t.pagePosition===l})))?c:(c=this.pageArea.children.find((function(t){return"any"===t.oddOrEven&&"any"===t.pagePosition})))||this.pageArea.children[0])}}]);return PageSet}(u.XFAObject),at=function(t){_inherits(Para,t);var r=_createSuper(Para);function Para(t){var o;_classCallCheck(this,Para);(o=r.call(this,C,"para",!0)).hAlign=(0,g.getStringOption)(t.hAlign,["left","center","justify","justifyAll","radix","right"]);o.id=t.id||"";o.lineHeight=t.lineHeight?(0,g.getMeasurement)(t.lineHeight,"0pt"):"";o.marginLeft=t.marginLeft?(0,g.getMeasurement)(t.marginLeft,"0pt"):"";o.marginRight=t.marginRight?(0,g.getMeasurement)(t.marginRight,"0pt"):"";o.orphans=(0,g.getInteger)({data:t.orphans,defaultValue:0,validate:function validate(t){return t>=0}});o.preserve=t.preserve||"";o.radixOffset=t.radixOffset?(0,g.getMeasurement)(t.radixOffset,"0pt"):"";o.spaceAbove=t.spaceAbove?(0,g.getMeasurement)(t.spaceAbove,"0pt"):"";o.spaceBelow=t.spaceBelow?(0,g.getMeasurement)(t.spaceBelow,"0pt"):"";o.tabDefault=t.tabDefault?(0,g.getMeasurement)(o.tabDefault):"";o.tabStops=(t.tabStops||"").trim().split(/\s+/).map((function(t,r){return r%2==1?(0,g.getMeasurement)(t):t}));o.textIndent=t.textIndent?(0,g.getMeasurement)(t.textIndent,"0pt"):"";o.use=t.use||"";o.usehref=t.usehref||"";o.vAlign=(0,g.getStringOption)(t.vAlign,["top","bottom","middle"]);o.widows=(0,g.getInteger)({data:t.widows,defaultValue:0,validate:function validate(t){return t>=0}});o.hyphenation=null;return o}_createClass(Para,[{key:u.$toStyle,value:function value(){var t=(0,m.toStyle)(this,"hAlign");""!==this.marginLeft&&(t.paddingLeft=(0,m.measureToString)(this.marginLeft));""!==this.marginRight&&(t.paddingight=(0,m.measureToString)(this.marginRight));""!==this.spaceAbove&&(t.paddingTop=(0,m.measureToString)(this.spaceAbove));""!==this.spaceBelow&&(t.paddingBottom=(0,m.measureToString)(this.spaceBelow));if(""!==this.textIndent){t.textIndent=(0,m.measureToString)(this.textIndent);(0,m.fixTextIndent)(t)}this.lineHeight>0&&(t.lineHeight=(0,m.measureToString)(this.lineHeight));""!==this.tabDefault&&(t.tabSize=(0,m.measureToString)(this.tabDefault));this.tabStops.length;this.hyphenatation&&Object.assign(t,this.hyphenatation[u.$toStyle]());return t}}]);return Para}(u.XFAObject),nt=function(t){_inherits(PasswordEdit,t);var r=_createSuper(PasswordEdit);function PasswordEdit(t){var o;_classCallCheck(this,PasswordEdit);(o=r.call(this,C,"passwordEdit",!0)).hScrollPolicy=(0,g.getStringOption)(t.hScrollPolicy,["auto","off","on"]);o.id=t.id||"";o.passwordChar=t.passwordChar||"*";o.use=t.use||"";o.usehref=t.usehref||"";o.border=null;o.extras=null;o.margin=null;return o}return PasswordEdit}(u.XFAObject),it=function(t){_inherits(Pattern,t);var r=_createSuper(Pattern);function Pattern(t){var o;_classCallCheck(this,Pattern);(o=r.call(this,C,"pattern",!0)).id=t.id||"";o.type=(0,g.getStringOption)(t.type,["crossHatch","crossDiagonal","diagonalLeft","diagonalRight","horizontal","vertical"]);o.use=t.use||"";o.usehref=t.usehref||"";o.color=null;o.extras=null;return o}_createClass(Pattern,[{key:u.$toStyle,value:function value(t){t=t?t[u.$toStyle]():"#FFFFFF";var r=this.color?this.color[u.$toStyle]():"#000000",o="repeating-linear-gradient",l="".concat(t,",").concat(t," ").concat(5,"px,").concat(r," ").concat(5,"px,").concat(r," ").concat(10,"px");switch(this.type){case"crossHatch":return"".concat(o,"(to top,").concat(l,") ").concat(o,"(to right,").concat(l,")");case"crossDiagonal":return"".concat(o,"(45deg,").concat(l,") ").concat(o,"(-45deg,").concat(l,")");case"diagonalLeft":return"".concat(o,"(45deg,").concat(l,")");case"diagonalRight":return"".concat(o,"(-45deg,").concat(l,")");case"horizontal":return"".concat(o,"(to top,").concat(l,")");case"vertical":return"".concat(o,"(to right,").concat(l,")")}return""}}]);return Pattern}(u.XFAObject),ot=function(t){_inherits(Picture,t);var r=_createSuper(Picture);function Picture(t){var o;_classCallCheck(this,Picture);(o=r.call(this,C,"picture")).id=t.id||"";o.use=t.use||"";o.usehref=t.usehref||"";return o}return Picture}(u.StringObject),st=function(t){_inherits(Proto,t);var r=_createSuper(Proto);function Proto(t){var o;_classCallCheck(this,Proto);(o=r.call(this,C,"proto",!0)).appearanceFilter=new u.XFAObjectArray;o.arc=new u.XFAObjectArray;o.area=new u.XFAObjectArray;o.assist=new u.XFAObjectArray;o.barcode=new u.XFAObjectArray;o.bindItems=new u.XFAObjectArray;o.bookend=new u.XFAObjectArray;o.boolean=new u.XFAObjectArray;o.border=new u.XFAObjectArray;o.break=new u.XFAObjectArray;o.breakAfter=new u.XFAObjectArray;o.breakBefore=new u.XFAObjectArray;o.button=new u.XFAObjectArray;o.calculate=new u.XFAObjectArray;o.caption=new u.XFAObjectArray;o.certificate=new u.XFAObjectArray;o.certificates=new u.XFAObjectArray;o.checkButton=new u.XFAObjectArray;o.choiceList=new u.XFAObjectArray;o.color=new u.XFAObjectArray;o.comb=new u.XFAObjectArray;o.connect=new u.XFAObjectArray;o.contentArea=new u.XFAObjectArray;o.corner=new u.XFAObjectArray;o.date=new u.XFAObjectArray;o.dateTime=new u.XFAObjectArray;o.dateTimeEdit=new u.XFAObjectArray;o.decimal=new u.XFAObjectArray;o.defaultUi=new u.XFAObjectArray;o.desc=new u.XFAObjectArray;o.digestMethod=new u.XFAObjectArray;o.digestMethods=new u.XFAObjectArray;o.draw=new u.XFAObjectArray;o.edge=new u.XFAObjectArray;o.encoding=new u.XFAObjectArray;o.encodings=new u.XFAObjectArray;o.encrypt=new u.XFAObjectArray;o.encryptData=new u.XFAObjectArray;o.encryption=new u.XFAObjectArray;o.encryptionMethod=new u.XFAObjectArray;o.encryptionMethods=new u.XFAObjectArray;o.event=new u.XFAObjectArray;o.exData=new u.XFAObjectArray;o.exObject=new u.XFAObjectArray;o.exclGroup=new u.XFAObjectArray;o.execute=new u.XFAObjectArray;o.extras=new u.XFAObjectArray;o.field=new u.XFAObjectArray;o.fill=new u.XFAObjectArray;o.filter=new u.XFAObjectArray;o.float=new u.XFAObjectArray;o.font=new u.XFAObjectArray;o.format=new u.XFAObjectArray;o.handler=new u.XFAObjectArray;o.hyphenation=new u.XFAObjectArray;o.image=new u.XFAObjectArray;o.imageEdit=new u.XFAObjectArray;o.integer=new u.XFAObjectArray;o.issuers=new u.XFAObjectArray;o.items=new u.XFAObjectArray;o.keep=new u.XFAObjectArray;o.keyUsage=new u.XFAObjectArray;o.line=new u.XFAObjectArray;o.linear=new u.XFAObjectArray;o.lockDocument=new u.XFAObjectArray;o.manifest=new u.XFAObjectArray;o.margin=new u.XFAObjectArray;o.mdp=new u.XFAObjectArray;o.medium=new u.XFAObjectArray;o.message=new u.XFAObjectArray;o.numericEdit=new u.XFAObjectArray;o.occur=new u.XFAObjectArray;o.oid=new u.XFAObjectArray;o.oids=new u.XFAObjectArray;o.overflow=new u.XFAObjectArray;o.pageArea=new u.XFAObjectArray;o.pageSet=new u.XFAObjectArray;o.para=new u.XFAObjectArray;o.passwordEdit=new u.XFAObjectArray;o.pattern=new u.XFAObjectArray;o.picture=new u.XFAObjectArray;o.radial=new u.XFAObjectArray;o.reason=new u.XFAObjectArray;o.reasons=new u.XFAObjectArray;o.rectangle=new u.XFAObjectArray;o.ref=new u.XFAObjectArray;o.script=new u.XFAObjectArray;o.setProperty=new u.XFAObjectArray;o.signData=new u.XFAObjectArray;o.signature=new u.XFAObjectArray;o.signing=new u.XFAObjectArray;o.solid=new u.XFAObjectArray;o.speak=new u.XFAObjectArray;o.stipple=new u.XFAObjectArray;o.subform=new u.XFAObjectArray;o.subformSet=new u.XFAObjectArray;o.subjectDN=new u.XFAObjectArray;o.subjectDNs=new u.XFAObjectArray;o.submit=new u.XFAObjectArray;o.text=new u.XFAObjectArray;o.textEdit=new u.XFAObjectArray;o.time=new u.XFAObjectArray;o.timeStamp=new u.XFAObjectArray;o.toolTip=new u.XFAObjectArray;o.traversal=new u.XFAObjectArray;o.traverse=new u.XFAObjectArray;o.ui=new u.XFAObjectArray;o.validate=new u.XFAObjectArray;o.value=new u.XFAObjectArray;o.variables=new u.XFAObjectArray;return o}return Proto}(u.XFAObject),lt=function(t){_inherits(Radial,t);var r=_createSuper(Radial);function Radial(t){var o;_classCallCheck(this,Radial);(o=r.call(this,C,"radial",!0)).id=t.id||"";o.type=(0,g.getStringOption)(t.type,["toEdge","toCenter"]);o.use=t.use||"";o.usehref=t.usehref||"";o.color=null;o.extras=null;return o}_createClass(Radial,[{key:u.$toStyle,value:function value(t){t=t?t[u.$toStyle]():"#FFFFFF";var r=this.color?this.color[u.$toStyle]():"#000000",o="toEdge"===this.type?"".concat(t,",").concat(r):"".concat(r,",").concat(t);return"radial-gradient(circle at center, ".concat(o,")")}}]);return Radial}(u.XFAObject),ct=function(t){_inherits(Reason,t);var r=_createSuper(Reason);function Reason(t){var o;_classCallCheck(this,Reason);(o=r.call(this,C,"reason")).id=t.id||"";o.name=t.name||"";o.use=t.use||"";o.usehref=t.usehref||"";return o}return Reason}(u.StringObject),ut=function(t){_inherits(Reasons,t);var r=_createSuper(Reasons);function Reasons(t){var o;_classCallCheck(this,Reasons);(o=r.call(this,C,"reasons",!0)).id=t.id||"";o.type=(0,g.getStringOption)(t.type,["optional","required"]);o.use=t.use||"";o.usehref=t.usehref||"";o.reason=new u.XFAObjectArray;return o}return Reasons}(u.XFAObject),ft=function(t){_inherits(Rectangle,t);var r=_createSuper(Rectangle);function Rectangle(t){var o;_classCallCheck(this,Rectangle);(o=r.call(this,C,"rectangle",!0)).hand=(0,g.getStringOption)(t.hand,["even","left","right"]);o.id=t.id||"";o.use=t.use||"";o.usehref=t.usehref||"";o.corner=new u.XFAObjectArray(4);o.edge=new u.XFAObjectArray(4);o.fill=null;return o}_createClass(Rectangle,[{key:u.$toHTML,value:function value(){var t=this.edge.children.length?this.edge.children[0]:new de({}),r=t[u.$toStyle](),o=Object.create(null);this.fill&&"visible"===this.fill.presence?Object.assign(o,this.fill[u.$toStyle]()):o.fill="transparent";o.strokeWidth=(0,m.measureToString)("visible"===t.presence?t.thickness:0);o.stroke=r.color;var l=(this.corner.children.length?this.corner.children[0]:new ae({}))[u.$toStyle](),c={name:"svg",children:[{name:"rect",attributes:{xmlns:w,width:"100%",height:"100%",x:0,y:0,rx:l.radius,ry:l.radius,style:o}}],attributes:{xmlns:w,style:{overflow:"visible"},width:"100%",height:"100%"}};if(hasMargin(this[u.$getParent]()[u.$getParent]()))return g.HTMLResult.success({name:"div",attributes:{style:{display:"inline",width:"100%",height:"100%"}},children:[c]});c.attributes.style.position="absolute";return g.HTMLResult.success(c)}}]);return Rectangle}(u.XFAObject),ht=function(t){_inherits(RefElement,t);var r=_createSuper(RefElement);function RefElement(t){var o;_classCallCheck(this,RefElement);(o=r.call(this,C,"ref")).id=t.id||"";o.use=t.use||"";o.usehref=t.usehref||"";return o}return RefElement}(u.StringObject),dt=function(t){_inherits(Script,t);var r=_createSuper(Script);function Script(t){var o;_classCallCheck(this,Script);(o=r.call(this,C,"script")).binding=t.binding||"";o.contentType=t.contentType||"";o.id=t.id||"";o.name=t.name||"";o.runAt=(0,g.getStringOption)(t.runAt,["client","both","server"]);o.use=t.use||"";o.usehref=t.usehref||"";return o}return Script}(u.StringObject),mt=function(t){_inherits(SetProperty,t);var r=_createSuper(SetProperty);function SetProperty(t){var o;_classCallCheck(this,SetProperty);(o=r.call(this,C,"setProperty")).connection=t.connection||"";o.ref=t.ref||"";o.target=t.target||"";return o}return SetProperty}(u.XFAObject);r.SetProperty=mt;var gt=function(t){_inherits(SignData,t);var r=_createSuper(SignData);function SignData(t){var o;_classCallCheck(this,SignData);(o=r.call(this,C,"signData",!0)).id=t.id||"";o.operation=(0,g.getStringOption)(t.operation,["sign","clear","verify"]);o.ref=t.ref||"";o.target=t.target||"";o.use=t.use||"";o.usehref=t.usehref||"";o.filter=null;o.manifest=null;return o}return SignData}(u.XFAObject),yt=function(t){_inherits(Signature,t);var r=_createSuper(Signature);function Signature(t){var o;_classCallCheck(this,Signature);(o=r.call(this,C,"signature",!0)).id=t.id||"";o.type=(0,g.getStringOption)(t.type,["PDF1.3","PDF1.6"]);o.use=t.use||"";o.usehref=t.usehref||"";o.border=null;o.extras=null;o.filter=null;o.manifest=null;o.margin=null;return o}return Signature}(u.XFAObject),vt=function(t){_inherits(Signing,t);var r=_createSuper(Signing);function Signing(t){var o;_classCallCheck(this,Signing);(o=r.call(this,C,"signing",!0)).id=t.id||"";o.type=(0,g.getStringOption)(t.type,["optional","required"]);o.use=t.use||"";o.usehref=t.usehref||"";o.certificate=new u.XFAObjectArray;return o}return Signing}(u.XFAObject),bt=function(t){_inherits(Solid,t);var r=_createSuper(Solid);function Solid(t){var o;_classCallCheck(this,Solid);(o=r.call(this,C,"solid",!0)).id=t.id||"";o.use=t.use||"";o.usehref=t.usehref||"";o.extras=null;return o}_createClass(Solid,[{key:u.$toStyle,value:function value(t){return t?t[u.$toStyle]():"#FFFFFF"}}]);return Solid}(u.XFAObject),St=function(t){_inherits(Speak,t);var r=_createSuper(Speak);function Speak(t){var o;_classCallCheck(this,Speak);(o=r.call(this,C,"speak")).disable=(0,g.getInteger)({data:t.disable,defaultValue:0,validate:function validate(t){return 1===t}});o.id=t.id||"";o.priority=(0,g.getStringOption)(t.priority,["custom","caption","name","toolTip"]);o.rid=t.rid||"";o.use=t.use||"";o.usehref=t.usehref||"";return o}return Speak}(u.StringObject),_t=function(t){_inherits(Stipple,t);var r=_createSuper(Stipple);function Stipple(t){var o;_classCallCheck(this,Stipple);(o=r.call(this,C,"stipple",!0)).id=t.id||"";o.rate=(0,g.getInteger)({data:t.rate,defaultValue:50,validate:function validate(t){return t>=0&&t<=100}});o.use=t.use||"";o.usehref=t.usehref||"";o.color=null;o.extras=null;return o}_createClass(Stipple,[{key:u.$toStyle,value:function value(t){var r=this.rate/100;return y.Util.makeHexColor(Math.round(t.value.r*(1-r)+this.value.r*r),Math.round(t.value.g*(1-r)+this.value.g*r),Math.round(t.value.b*(1-r)+this.value.b*r))}}]);return Stipple}(u.XFAObject),kt=function(t){_inherits(Subform,t);var r=_createSuper(Subform);function Subform(t){var o;_classCallCheck(this,Subform);(o=r.call(this,C,"subform",!0)).access=(0,g.getStringOption)(t.access,["open","nonInteractive","protected","readOnly"]);o.allowMacro=(0,g.getInteger)({data:t.allowMacro,defaultValue:0,validate:function validate(t){return 1===t}});o.anchorType=(0,g.getStringOption)(t.anchorType,["topLeft","bottomCenter","bottomLeft","bottomRight","middleCenter","middleLeft","middleRight","topCenter","topRight"]);o.colSpan=(0,g.getInteger)({data:t.colSpan,defaultValue:1,validate:function validate(t){return t>=1||-1===t}});o.columnWidths=(t.columnWidths||"").trim().split(/\s+/).map((function(t){return"-1"===t?-1:(0,g.getMeasurement)(t)}));o.h=t.h?(0,g.getMeasurement)(t.h):"";o.hAlign=(0,g.getStringOption)(t.hAlign,["left","center","justify","justifyAll","radix","right"]);o.id=t.id||"";o.layout=(0,g.getStringOption)(t.layout,["position","lr-tb","rl-row","rl-tb","row","table","tb"]);o.locale=t.locale||"";o.maxH=(0,g.getMeasurement)(t.maxH,"0pt");o.maxW=(0,g.getMeasurement)(t.maxW,"0pt");o.mergeMode=(0,g.getStringOption)(t.mergeMode,["consumeData","matchTemplate"]);o.minH=(0,g.getMeasurement)(t.minH,"0pt");o.minW=(0,g.getMeasurement)(t.minW,"0pt");o.name=t.name||"";o.presence=(0,g.getStringOption)(t.presence,["visible","hidden","inactive","invisible"]);o.relevant=(0,g.getRelevant)(t.relevant);o.restoreState=(0,g.getStringOption)(t.restoreState,["manual","auto"]);o.scope=(0,g.getStringOption)(t.scope,["name","none"]);o.use=t.use||"";o.usehref=t.usehref||"";o.w=t.w?(0,g.getMeasurement)(t.w):"";o.x=(0,g.getMeasurement)(t.x,"0pt");o.y=(0,g.getMeasurement)(t.y,"0pt");o.assist=null;o.bind=null;o.bookend=null;o.border=null;o.break=null;o.calculate=null;o.desc=null;o.extras=null;o.keep=null;o.margin=null;o.occur=null;o.overflow=null;o.pageSet=null;o.para=null;o.traversal=null;o.validate=null;o.variables=null;o.area=new u.XFAObjectArray;o.breakAfter=new u.XFAObjectArray;o.breakBefore=new u.XFAObjectArray;o.connect=new u.XFAObjectArray;o.draw=new u.XFAObjectArray;o.event=new u.XFAObjectArray;o.exObject=new u.XFAObjectArray;o.exclGroup=new u.XFAObjectArray;o.field=new u.XFAObjectArray;o.proto=new u.XFAObjectArray;o.setProperty=new u.XFAObjectArray;o.subform=new u.XFAObjectArray;o.subformSet=new u.XFAObjectArray;return o}_createClass(Subform,[{key:u.$getSubformParent,value:function value(){var t=this[u.$getParent]();return t instanceof Ct?t[u.$getSubformParent]():t}},{key:u.$isBindable,value:function value(){return!0}},{key:u.$isThereMoreWidth,value:function value(){return this.layout.endsWith("-tb")&&0===this[u.$extra].attempt&&this[u.$extra].numberInLine>0||this[u.$getParent]()[u.$isThereMoreWidth]()}},{key:u.$getContainedChildren,value:c.default.mark((function value(){return c.default.wrap((function value$(t){for(;;)switch(t.prev=t.next){case 0:return t.delegateYield(getContainedChildren(this),"t0",1);case 1:case"end":return t.stop()}}),value,this)}))},{key:u.$flushHTML,value:function value(){return(0,d.flushHTML)(this)}},{key:u.$addHTML,value:function value(t,r){(0,d.addHTML)(this,t,r)}},{key:u.$getAvailableSpace,value:function value(){return(0,d.getAvailableSpace)(this)}},{key:u.$isSplittable,value:function value(){var t=this[u.$getSubformParent]();if(!t[u.$isSplittable]())return!1;if(void 0!==this[u.$extra]._isSplittable)return this[u.$extra]._isSplittable;if("position"===this.layout||this.layout.includes("row")){this[u.$extra]._isSplittable=!1;return!1}if(this.keep&&"none"!==this.keep.intact){this[u.$extra]._isSplittable=!1;return!1}if(t.layout&&t.layout.endsWith("-tb")&&0!==t[u.$extra].numberInLine)return!1;this[u.$extra]._isSplittable=!0;return!0}},{key:u.$toHTML,value:function value(t){setTabIndex(this);if(this.break){if("auto"!==this.break.after||""!==this.break.afterTarget){var r=new q({targetType:this.break.after,target:this.break.afterTarget,startNew:this.break.startNew.toString()});r[u.$globalData]=this[u.$globalData];this[u.$appendChild](r);this.breakAfter.push(r)}if("auto"!==this.break.before||""!==this.break.beforeTarget){var o=new X({targetType:this.break.before,target:this.break.beforeTarget,startNew:this.break.startNew.toString()});o[u.$globalData]=this[u.$globalData];this[u.$appendChild](o);this.breakBefore.push(o)}if(""!==this.break.overflowTarget){var l=new et({target:this.break.overflowTarget,leader:this.break.overflowLeader,trailer:this.break.overflowTrailer});l[u.$globalData]=this[u.$globalData];this[u.$appendChild](l);this.overflow.push(l)}this[u.$removeChild](this.break);this.break=null}if("hidden"===this.presence||"inactive"===this.presence)return g.HTMLResult.EMPTY;(this.breakBefore.children.length>1||this.breakAfter.children.length>1)&&(0,y.warn)("XFA - Several breakBefore or breakAfter in subforms: please file a bug.");if(this.breakBefore.children.length>=1){var c=this.breakBefore.children[0];if(handleBreak(c))return g.HTMLResult.breakNode(c)}if(this[u.$extra]&&this[u.$extra].afterBreakAfter)return g.HTMLResult.EMPTY;(0,m.fixDimensions)(this);var h=[],v={id:this[u.$uid],class:[]};(0,m.setAccess)(this,v.class);this[u.$extra]||(this[u.$extra]=Object.create(null));Object.assign(this[u.$extra],{children:h,line:null,attributes:v,attempt:0,numberInLine:0,availableSpace:{width:Math.min(this.w||1/0,t.width),height:Math.min(this.h||1/0,t.height)},width:0,height:0,prevHeight:0,currentWidth:0});var S=this[u.$getTemplateRoot](),_=S[u.$extra].noLayoutFailure,k=this[u.$isSplittable]();k||setFirstUnsplittable(this);if(!(0,d.checkDimensions)(this,t))return g.HTMLResult.FAILURE;var C=new Set(["area","draw","exclGroup","field","subform","subformSet"]);if(this.layout.includes("row")){var w=this[u.$getSubformParent]().columnWidths;if(Array.isArray(w)&&w.length>0){this[u.$extra].columnWidths=w;this[u.$extra].currentColumn=0}}var x=(0,m.toStyle)(this,"anchorType","dimensions","position","presence","border","margin","hAlign"),O=["xfaSubform"],T=(0,m.layoutClass)(this);T&&O.push(T);v.style=x;v.class=O;this.name&&(v.xfaName=this.name);if(this.overflow){var R=this.overflow[u.$getExtra]();if(R.addLeader){R.addLeader=!1;handleOverflow(this,R.leader,t)}}this[u.$pushPara]();for(var E="lr-tb"===this.layout||"rl-tb"===this.layout,M=E?2:1;this[u.$extra].attempt<M;this[u.$extra].attempt++){E&&1===this[u.$extra].attempt&&(this[u.$extra].numberInLine=0);var D=this[u.$childrenToHTML]({filter:C,include:!0});if(D.success)break;if(D.isBreak()){this[u.$popPara]();return D}if(E&&0===this[u.$extra].attempt&&0===this[u.$extra].numberInLine&&!S[u.$extra].noLayoutFailure){this[u.$extra].attempt=M;break}}this[u.$popPara]();k||unsetFirstUnsplittable(this);S[u.$extra].noLayoutFailure=_;if(this[u.$extra].attempt===M){this.overflow&&(this[u.$getTemplateRoot]()[u.$extra].overflowNode=this.overflow);k||delete this[u.$extra];return g.HTMLResult.FAILURE}if(this.overflow){var j=this.overflow[u.$getExtra]();if(j.addTrailer){j.addTrailer=!1;handleOverflow(this,j.trailer,t)}}var L=0,N=0;if(this.margin){L=this.margin.leftInset+this.margin.rightInset;N=this.margin.topInset+this.margin.bottomInset}var U=Math.max(this[u.$extra].width+L,this.w||0),H=Math.max(this[u.$extra].height+N,this.h||0),W=[this.x,this.y,U,H];""===this.w&&(x.width=(0,m.measureToString)(U));""===this.h&&(x.height=(0,m.measureToString)(H));var $={name:"div",attributes:v,children:h};applyAssist(this,v);var z=g.HTMLResult.success((0,m.createWrapper)(this,$),W);if(this.breakAfter.children.length>=1){var G=this.breakAfter.children[0];if(handleBreak(G)){this[u.$extra].afterBreakAfter=z;return g.HTMLResult.breakNode(G)}}delete this[u.$extra];return z}}]);return Subform}(u.XFAObject),Ct=function(t){_inherits(SubformSet,t);var r=_createSuper(SubformSet);function SubformSet(t){var o;_classCallCheck(this,SubformSet);(o=r.call(this,C,"subformSet",!0)).id=t.id||"";o.name=t.name||"";o.relation=(0,g.getStringOption)(t.relation,["ordered","choice","unordered"]);o.relevant=(0,g.getRelevant)(t.relevant);o.use=t.use||"";o.usehref=t.usehref||"";o.bookend=null;o.break=null;o.desc=null;o.extras=null;o.occur=null;o.overflow=null;o.breakAfter=new u.XFAObjectArray;o.breakBefore=new u.XFAObjectArray;o.subform=new u.XFAObjectArray;o.subformSet=new u.XFAObjectArray;return o}_createClass(SubformSet,[{key:u.$getContainedChildren,value:c.default.mark((function value(){return c.default.wrap((function value$(t){for(;;)switch(t.prev=t.next){case 0:return t.delegateYield(getContainedChildren(this),"t0",1);case 1:case"end":return t.stop()}}),value,this)}))},{key:u.$getSubformParent,value:function value(){for(var t=this[u.$getParent]();!(t instanceof kt);)t=t[u.$getParent]();return t}},{key:u.$isBindable,value:function value(){return!0}}]);return SubformSet}(u.XFAObject),wt=function(t){_inherits(SubjectDN,t);var r=_createSuper(SubjectDN);function SubjectDN(t){var o;_classCallCheck(this,SubjectDN);(o=r.call(this,C,"subjectDN")).delimiter=t.delimiter||",";o.id=t.id||"";o.name=t.name||"";o.use=t.use||"";o.usehref=t.usehref||"";return o}_createClass(SubjectDN,[{key:u.$finalize,value:function value(){this[u.$content]=new Map(this[u.$content].split(this.delimiter).map((function(t){(t=t.split("=",2))[0]=t[0].trim();return t})))}}]);return SubjectDN}(u.ContentObject),At=function(t){_inherits(SubjectDNs,t);var r=_createSuper(SubjectDNs);function SubjectDNs(t){var o;_classCallCheck(this,SubjectDNs);(o=r.call(this,C,"subjectDNs",!0)).id=t.id||"";o.type=(0,g.getStringOption)(t.type,["optional","required"]);o.use=t.use||"";o.usehref=t.usehref||"";o.subjectDN=new u.XFAObjectArray;return o}return SubjectDNs}(u.XFAObject),xt=function(t){_inherits(Submit,t);var r=_createSuper(Submit);function Submit(t){var o;_classCallCheck(this,Submit);(o=r.call(this,C,"submit",!0)).embedPDF=(0,g.getInteger)({data:t.embedPDF,defaultValue:0,validate:function validate(t){return 1===t}});o.format=(0,g.getStringOption)(t.format,["xdp","formdata","pdf","urlencoded","xfd","xml"]);o.id=t.id||"";o.target=t.target||"";o.textEncoding=(0,g.getKeyword)({data:t.textEncoding?t.textEncoding.toLowerCase():"",defaultValue:"",validate:function validate(t){return["utf-8","big-five","fontspecific","gbk","gb-18030","gb-2312","ksc-5601","none","shift-jis","ucs-2","utf-16"].includes(t)||t.match(/iso-8859-\d{2}/)}});o.use=t.use||"";o.usehref=t.usehref||"";o.xdpContent=t.xdpContent||"";o.encrypt=null;o.encryptData=new u.XFAObjectArray;o.signData=new u.XFAObjectArray;return o}return Submit}(u.XFAObject),Ot=function(t){_inherits(Template,t);var r=_createSuper(Template);function Template(t){var o;_classCallCheck(this,Template);(o=r.call(this,C,"template",!0)).baseProfile=(0,g.getStringOption)(t.baseProfile,["full","interactiveForms"]);o.extras=null;o.subform=new u.XFAObjectArray;return o}_createClass(Template,[{key:u.$finalize,value:function value(){0===this.subform.children.length&&(0,y.warn)("XFA - No subforms in template node.");this.subform.children.length>=2&&(0,y.warn)("XFA - Several subforms in template node: please file a bug.");this[u.$tabIndex]=5e3}},{key:u.$isSplittable,value:function value(){return!0}},{key:u.$searchNode,value:function value(t,r){return t.startsWith("#")?[this[u.$ids].get(t.slice(1))]:(0,_.searchNode)(this,r,t,!0,!0)}},{key:u.$toHTML,value:function value(){var t=this;if(!this.subform.children.length)return g.HTMLResult.success({name:"div",children:[]});this[u.$extra]={overflowNode:null,firstUnsplittable:null,currentContentArea:null,currentPageArea:null,noLayoutFailure:!1,pageNumber:1,pagePosition:"first",oddOrEven:"odd",blankOrNotBlank:"nonBlank",paraStack:[]};var r=this.subform.children[0];r.pageSet[u.$cleanPage]();var o=r.pageSet.pageArea.children,l={name:"div",children:[]},c=null,h=null,d=null;r.breakBefore.children.length>=1?d=(h=r.breakBefore.children[0]).target:r.subform.children.length>=1&&r.subform.children[0].breakBefore.children.length>=1?d=(h=r.subform.children[0].breakBefore.children[0]).target:r.break&&r.break.beforeTarget?d=(h=r.break).beforeTarget:r.subform.children.length>=1&&r.subform.children[0].break&&r.subform.children[0].break.beforeTarget&&(d=(h=r.subform.children[0].break).beforeTarget);if(h){var m=this[u.$searchNode](d,h[u.$getParent]());if(m instanceof tt){c=m;h[u.$extra]={}}}c||(c=o[0]);c[u.$extra]={numberOfUse:1};var v,S=c[u.$getParent]();S[u.$extra]={numberOfUse:1,pageIndex:S.pageArea.children.indexOf(c),pageSetIndex:0};for(var _=null,k=null,C=!0,w=0,x=0,O=function _loop(){if(C)w=0;else{l.children.pop();if(3==++w){(0,y.warn)("XFA - Something goes wrong: please file a bug.");return{v:l}}}v=null;t[u.$extra].currentPageArea=c;var o=c[u.$toHTML]().html;l.children.push(o);if(_){t[u.$extra].noLayoutFailure=!0;o.children.push(_[u.$toHTML](c[u.$extra].space).html);_=null}if(k){t[u.$extra].noLayoutFailure=!0;o.children.push(k[u.$toHTML](c[u.$extra].space).html);k=null}var h=c.contentArea.children,d=o.children.filter((function(t){return t.attributes.class.includes("xfaContentarea")}));C=!1;t[u.$extra].firstUnsplittable=null;t[u.$extra].noLayoutFailure=!1;for(var m=function flush(t){var o=r[u.$flushHTML]();if(o){C=C||o.children&&0!==o.children.length;d[t].children.push(o)}},g=x,S=h.length;g<S;g++){var O=t[u.$extra].currentContentArea=h[g],T={width:O.w,height:O.h};x=0;if(_){d[g].children.push(_[u.$toHTML](T).html);_=null}if(k){d[g].children.push(k[u.$toHTML](T).html);k=null}var R=r[u.$toHTML](T);if(R.success){if(R.html){C=C||R.html.children&&0!==R.html.children.length;d[g].children.push(R.html)}else C||l.children.pop();return{v:l}}if(R.isBreak()){var E=R.breakNode;m(g);if("auto"===E.targetType)continue;E.leader&&(_=(_=t[u.$searchNode](E.leader,E[u.$getParent]()))?_[0]:null);E.trailer&&(k=(k=t[u.$searchNode](E.trailer,E[u.$getParent]()))?k[0]:null);if("pageArea"===E.targetType){v=E[u.$extra].target;g=1/0}else if(E[u.$extra].target){v=E[u.$extra].target;x=E[u.$extra].index+1;g=1/0}else g=E[u.$extra].index}else{if(t[u.$extra].overflowNode){var M=function(){var r=t[u.$extra].overflowNode;t[u.$extra].overflowNode=null;var o=r[u.$getExtra](),l=o.target;o.addLeader=null!==o.leader;o.addTrailer=null!==o.trailer;m(g);var c=g;g=1/0;if(l instanceof tt)v=l;else if(l instanceof re){var d=h.findIndex((function(t){return t===l}));if(-1!==d)d>c?g=d-1:x=d;else{v=l[u.$getParent]();x=v.contentArea.children.findIndex((function(t){return t===l}))}}return"continue"}();if("continue"===M)continue}m(g)}}t[u.$extra].pageNumber+=1;v&&(v[u.$isUsable]()?v[u.$extra].numberOfUse+=1:v=null);c=v||c[u.$getNextPage]()};;){var T=O();if("object"===_typeof(T))return T.v}}}]);return Template}(u.XFAObject);r.Template=Ot;var Pt=function(t){_inherits(Text,t);var r=_createSuper(Text);function Text(t){var o;_classCallCheck(this,Text);(o=r.call(this,C,"text")).id=t.id||"";o.maxChars=(0,g.getInteger)({data:t.maxChars,defaultValue:0,validate:function validate(t){return t>=0}});o.name=t.name||"";o.rid=t.rid||"";o.use=t.use||"";o.usehref=t.usehref||"";return o}_createClass(Text,[{key:u.$acceptWhitespace,value:function value(){return!0}},{key:u.$onChild,value:function value(t){if(t[u.$namespaceId]===h.NamespaceIds.xhtml.id){this[u.$content]=t;return!0}(0,y.warn)("XFA - Invalid content in Text: ".concat(t[u.$nodeName],"."));return!1}},{key:u.$onText,value:function value(t){this[u.$content]instanceof u.XFAObject||_get(_getPrototypeOf(Text.prototype),u.$onText,this).call(this,t)}},{key:u.$finalize,value:function value(){"string"==typeof this[u.$content]&&(this[u.$content]=this[u.$content].replace(/\r\n/g,"\n"))}},{key:u.$getExtra,value:function value(){return"string"==typeof this[u.$content]?this[u.$content].split(/[\u2029\u2028\n]/).reduce((function(t,r){r&&t.push(r);return t}),[]).join("\n"):this[u.$content][u.$text]()}},{key:u.$toHTML,value:function value(t){if("string"==typeof this[u.$content]){var r=valueToHtml(this[u.$content]).html;if(this[u.$content].includes("\u2029")){r.name="div";r.children=[];this[u.$content].split("\u2029").map((function(t){return t.split(/[\u2028\n]/).reduce((function(t,r){t.push({name:"span",value:r},{name:"br"});return t}),[])})).forEach((function(t){r.children.push({name:"p",children:t})}))}else if(/[\u2028\n]/.test(this[u.$content])){r.name="div";r.children=[];this[u.$content].split(/[\u2028\n]/).forEach((function(t){r.children.push({name:"span",value:t},{name:"br"})}))}return g.HTMLResult.success(r)}return this[u.$content][u.$toHTML](t)}}]);return Text}(u.ContentObject);r.Text=Pt;var Tt=function(t){_inherits(TextEdit,t);var r=_createSuper(TextEdit);function TextEdit(t){var o;_classCallCheck(this,TextEdit);(o=r.call(this,C,"textEdit",!0)).allowRichText=(0,g.getInteger)({data:t.allowRichText,defaultValue:0,validate:function validate(t){return 1===t}});o.hScrollPolicy=(0,g.getStringOption)(t.hScrollPolicy,["auto","off","on"]);o.id=t.id||"";o.multiLine=(0,g.getInteger)({data:t.multiLine,defaultValue:"",validate:function validate(t){return 0===t||1===t}});o.use=t.use||"";o.usehref=t.usehref||"";o.vScrollPolicy=(0,g.getStringOption)(t.vScrollPolicy,["auto","off","on"]);o.border=null;o.comb=null;o.extras=null;o.margin=null;return o}_createClass(TextEdit,[{key:u.$toHTML,value:function value(t){var r,o=(0,m.toStyle)(this,"border","font","margin"),l=this[u.$getParent]()[u.$getParent]();""===this.multiLine&&(this.multiLine=l instanceof he?1:0);r=1===this.multiLine?{name:"textarea",attributes:{dataId:l[u.$data]&&l[u.$data][u.$uid]||l[u.$uid],fieldId:l[u.$uid],class:["xfaTextfield"],style:o,"aria-label":ariaLabel(l)}}:{name:"input",attributes:{type:"text",dataId:l[u.$data]&&l[u.$data][u.$uid]||l[u.$uid],fieldId:l[u.$uid],class:["xfaTextfield"],style:o,"aria-label":ariaLabel(l)}};return g.HTMLResult.success({name:"label",attributes:{class:["xfaLabel"]},children:[r]})}}]);return TextEdit}(u.XFAObject),It=function(t){_inherits(Time,t);var r=_createSuper(Time);function Time(t){var o;_classCallCheck(this,Time);(o=r.call(this,C,"time")).id=t.id||"";o.name=t.name||"";o.use=t.use||"";o.usehref=t.usehref||"";return o}_createClass(Time,[{key:u.$finalize,value:function value(){var t=this[u.$content].trim();this[u.$content]=t?new Date(t):null}},{key:u.$toHTML,value:function value(t){return valueToHtml(this[u.$content]?this[u.$content].toString():"")}}]);return Time}(u.StringObject),Ft=function(t){_inherits(TimeStamp,t);var r=_createSuper(TimeStamp);function TimeStamp(t){var o;_classCallCheck(this,TimeStamp);(o=r.call(this,C,"timeStamp")).id=t.id||"";o.server=t.server||"";o.type=(0,g.getStringOption)(t.type,["optional","required"]);o.use=t.use||"";o.usehref=t.usehref||"";return o}return TimeStamp}(u.XFAObject),Rt=function(t){_inherits(ToolTip,t);var r=_createSuper(ToolTip);function ToolTip(t){var o;_classCallCheck(this,ToolTip);(o=r.call(this,C,"toolTip")).id=t.id||"";o.rid=t.rid||"";o.use=t.use||"";o.usehref=t.usehref||"";return o}return ToolTip}(u.StringObject),Et=function(t){_inherits(Traversal,t);var r=_createSuper(Traversal);function Traversal(t){var o;_classCallCheck(this,Traversal);(o=r.call(this,C,"traversal",!0)).id=t.id||"";o.use=t.use||"";o.usehref=t.usehref||"";o.extras=null;o.traverse=new u.XFAObjectArray;return o}return Traversal}(u.XFAObject),Mt=function(t){_inherits(Traverse,t);var r=_createSuper(Traverse);function Traverse(t){var o;_classCallCheck(this,Traverse);(o=r.call(this,C,"traverse",!0)).id=t.id||"";o.operation=(0,g.getStringOption)(t.operation,["next","back","down","first","left","right","up"]);o.ref=t.ref||"";o.use=t.use||"";o.usehref=t.usehref||"";o.extras=null;o.script=null;return o}_createClass(Traverse,[{key:"name",get:function get(){return this.operation}},{key:u.$isTransparent,value:function value(){return!1}}]);return Traverse}(u.XFAObject),Bt=function(t){_inherits(Ui,t);var r=_createSuper(Ui);function Ui(t){var o;_classCallCheck(this,Ui);(o=r.call(this,C,"ui",!0)).id=t.id||"";o.use=t.use||"";o.usehref=t.usehref||"";o.extras=null;o.picture=null;o.barcode=null;o.button=null;o.checkButton=null;o.choiceList=null;o.dateTimeEdit=null;o.defaultUi=null;o.imageEdit=null;o.numericEdit=null;o.passwordEdit=null;o.signature=null;o.textEdit=null;return o}_createClass(Ui,[{key:u.$getExtra,value:function value(){if(void 0===this[u.$extra]){var t,r=_createForOfIteratorHelper(Object.getOwnPropertyNames(this));try{for(r.s();!(t=r.n()).done;){var o=t.value;if("extras"!==o&&"picture"!==o){var l=this[o];if(l instanceof u.XFAObject){this[u.$extra]=l;return l}}}}catch(t){r.e(t)}finally{r.f()}this[u.$extra]=null}return this[u.$extra]}},{key:u.$toHTML,value:function value(t){var r=this[u.$getExtra]();return r?r[u.$toHTML](t):g.HTMLResult.EMPTY}}]);return Ui}(u.XFAObject),Dt=function(t){_inherits(Validate,t);var r=_createSuper(Validate);function Validate(t){var o;_classCallCheck(this,Validate);(o=r.call(this,C,"validate",!0)).formatTest=(0,g.getStringOption)(t.formatTest,["warning","disabled","error"]);o.id=t.id||"";o.nullTest=(0,g.getStringOption)(t.nullTest,["disabled","error","warning"]);o.scriptTest=(0,g.getStringOption)(t.scriptTest,["error","disabled","warning"]);o.use=t.use||"";o.usehref=t.usehref||"";o.extras=null;o.message=null;o.picture=null;o.script=null;return o}return Validate}(u.XFAObject),jt=function(t){_inherits(Value,t);var r=_createSuper(Value);function Value(t){var o;_classCallCheck(this,Value);(o=r.call(this,C,"value",!0)).id=t.id||"";o.override=(0,g.getInteger)({data:t.override,defaultValue:0,validate:function validate(t){return 1===t}});o.relevant=(0,g.getRelevant)(t.relevant);o.use=t.use||"";o.usehref=t.usehref||"";o.arc=null;o.boolean=null;o.date=null;o.dateTime=null;o.decimal=null;o.exData=null;o.float=null;o.image=null;o.integer=null;o.line=null;o.rectangle=null;o.text=null;o.time=null;return o}_createClass(Value,[{key:u.$setValue,value:function(t){function value(r){return t.apply(this,arguments)}value.toString=function(){return t.toString()};return value}((function(t){var r=this[u.$getParent]();if(r instanceof Oe&&r.ui&&r.ui.imageEdit){if(!this.image){this.image=new Be({});this[u.$appendChild](this.image)}this.image[u.$content]=t[u.$content]}else{var o=t[u.$nodeName];if(null===this[o]){var l,c=_createForOfIteratorHelper(Object.getOwnPropertyNames(this));try{for(c.s();!(l=c.n()).done;){var h=l.value,d=this[h];if(d instanceof u.XFAObject){this[h]=null;this[u.$removeChild](d)}}}catch(t){c.e(t)}finally{c.f()}this[t[u.$nodeName]]=t;this[u.$appendChild](t)}else this[o][u.$content]=t[u.$content]}}))},{key:u.$text,value:function value(){if(this.exData)return"string"==typeof this.exData[u.$content]?this.exData[u.$content].trim():this.exData[u.$content][u.$text]().trim();var t,r=_createForOfIteratorHelper(Object.getOwnPropertyNames(this));try{for(r.s();!(t=r.n()).done;){var o=t.value;if("image"!==o){var l=this[o];if(l instanceof u.XFAObject)return(l[u.$content]||"").toString().trim()}}}catch(t){r.e(t)}finally{r.f()}return null}},{key:u.$toHTML,value:function value(t){var r,o=_createForOfIteratorHelper(Object.getOwnPropertyNames(this));try{for(o.s();!(r=o.n()).done;){var l=this[r.value];if(l instanceof u.XFAObject)return l[u.$toHTML](t)}}catch(t){o.e(t)}finally{o.f()}return g.HTMLResult.EMPTY}}]);return Value}(u.XFAObject);r.Value=jt;var Lt=function(t){_inherits(Variables,t);var r=_createSuper(Variables);function Variables(t){var o;_classCallCheck(this,Variables);(o=r.call(this,C,"variables",!0)).id=t.id||"";o.use=t.use||"";o.usehref=t.usehref||"";o.boolean=new u.XFAObjectArray;o.date=new u.XFAObjectArray;o.dateTime=new u.XFAObjectArray;o.decimal=new u.XFAObjectArray;o.exData=new u.XFAObjectArray;o.float=new u.XFAObjectArray;o.image=new u.XFAObjectArray;o.integer=new u.XFAObjectArray;o.manifest=new u.XFAObjectArray;o.script=new u.XFAObjectArray;o.text=new u.XFAObjectArray;o.time=new u.XFAObjectArray;return o}_createClass(Variables,[{key:u.$isTransparent,value:function value(){return!0}}]);return Variables}(u.XFAObject),Nt=function(){function TemplateNamespace(){_classCallCheck(this,TemplateNamespace)}_createClass(TemplateNamespace,null,[{key:h.$buildXFAObject,value:function value(t,r){if(TemplateNamespace.hasOwnProperty(t)){var o=TemplateNamespace[t](r);o[u.$setSetAttributes](r);return o}}},{key:"appearanceFilter",value:function appearanceFilter(t){return new R(t)}},{key:"arc",value:function arc(t){return new E(t)}},{key:"area",value:function area(t){return new M(t)}},{key:"assist",value:function assist(t){return new D(t)}},{key:"barcode",value:function barcode(t){return new j(t)}},{key:"bind",value:function bind(t){return new L(t)}},{key:"bindItems",value:function bindItems(t){return new N(t)}},{key:"bookend",value:function bookend(t){return new U(t)}},{key:"boolean",value:function boolean(t){return new H(t)}},{key:"border",value:function border(t){return new W(t)}},{key:"break",value:function _break(t){return new $(t)}},{key:"breakAfter",value:function breakAfter(t){return new q(t)}},{key:"breakBefore",value:function breakBefore(t){return new X(t)}},{key:"button",value:function button(t){return new z(t)}},{key:"calculate",value:function calculate(t){return new G(t)}},{key:"caption",value:function caption(t){return new V(t)}},{key:"certificate",value:function certificate(t){return new Y(t)}},{key:"certificates",value:function certificates(t){return new K(t)}},{key:"checkButton",value:function checkButton(t){return new J(t)}},{key:"choiceList",value:function choiceList(t){return new Q(t)}},{key:"color",value:function color(t){return new Z(t)}},{key:"comb",value:function comb(t){return new ee(t)}},{key:"connect",value:function connect(t){return new te(t)}},{key:"contentArea",value:function contentArea(t){return new re(t)}},{key:"corner",value:function corner(t){return new ae(t)}},{key:"date",value:function date(t){return new ne(t)}},{key:"dateTime",value:function dateTime(t){return new ie(t)}},{key:"dateTimeEdit",value:function dateTimeEdit(t){return new oe(t)}},{key:"decimal",value:function decimal(t){return new se(t)}},{key:"defaultUi",value:function defaultUi(t){return new le(t)}},{key:"desc",value:function desc(t){return new ce(t)}},{key:"digestMethod",value:function digestMethod(t){return new ue(t)}},{key:"digestMethods",value:function digestMethods(t){return new fe(t)}},{key:"draw",value:function draw(t){return new he(t)}},{key:"edge",value:function edge(t){return new de(t)}},{key:"encoding",value:function encoding(t){return new pe(t)}},{key:"encodings",value:function encodings(t){return new me(t)}},{key:"encrypt",value:function encrypt(t){return new ge(t)}},{key:"encryptData",value:function encryptData(t){return new ye(t)}},{key:"encryption",value:function encryption(t){return new ve(t)}},{key:"encryptionMethod",value:function encryptionMethod(t){return new be(t)}},{key:"encryptionMethods",value:function encryptionMethods(t){return new Se(t)}},{key:"event",value:function event(t){return new _e(t)}},{key:"exData",value:function exData(t){return new ke(t)}},{key:"exObject",value:function exObject(t){return new Ce(t)}},{key:"exclGroup",value:function exclGroup(t){return new we(t)}},{key:"execute",value:function execute(t){return new Ae(t)}},{key:"extras",value:function extras(t){return new xe(t)}},{key:"field",value:function field(t){return new Oe(t)}},{key:"fill",value:function fill(t){return new Pe(t)}},{key:"filter",value:function filter(t){return new Te(t)}},{key:"float",value:function float(t){return new Ie(t)}},{key:"font",value:function font(t){return new Fe(t)}},{key:"format",value:function format(t){return new Re(t)}},{key:"handler",value:function handler(t){return new Ee(t)}},{key:"hyphenation",value:function hyphenation(t){return new Me(t)}},{key:"image",value:function image(t){return new Be(t)}},{key:"imageEdit",value:function imageEdit(t){return new De(t)}},{key:"integer",value:function integer(t){return new je(t)}},{key:"issuers",value:function issuers(t){return new Le(t)}},{key:"items",value:function items(t){return new Ne(t)}},{key:"keep",value:function keep(t){return new Ue(t)}},{key:"keyUsage",value:function keyUsage(t){return new He(t)}},{key:"line",value:function line(t){return new We(t)}},{key:"linear",value:function linear(t){return new $e(t)}},{key:"lockDocument",value:function lockDocument(t){return new qe(t)}},{key:"manifest",value:function manifest(t){return new Xe(t)}},{key:"margin",value:function margin(t){return new ze(t)}},{key:"mdp",value:function mdp(t){return new Ge(t)}},{key:"medium",value:function medium(t){return new Ve(t)}},{key:"message",value:function message(t){return new Ye(t)}},{key:"numericEdit",value:function numericEdit(t){return new Ke(t)}},{key:"occur",value:function occur(t){return new Je(t)}},{key:"oid",value:function oid(t){return new Qe(t)}},{key:"oids",value:function oids(t){return new Ze(t)}},{key:"overflow",value:function overflow(t){return new et(t)}},{key:"pageArea",value:function pageArea(t){return new tt(t)}},{key:"pageSet",value:function pageSet(t){return new rt(t)}},{key:"para",value:function para(t){return new at(t)}},{key:"passwordEdit",value:function passwordEdit(t){return new nt(t)}},{key:"pattern",value:function pattern(t){return new it(t)}},{key:"picture",value:function picture(t){return new ot(t)}},{key:"proto",value:function proto(t){return new st(t)}},{key:"radial",value:function radial(t){return new lt(t)}},{key:"reason",value:function reason(t){return new ct(t)}},{key:"reasons",value:function reasons(t){return new ut(t)}},{key:"rectangle",value:function rectangle(t){return new ft(t)}},{key:"ref",value:function ref(t){return new ht(t)}},{key:"script",value:function script(t){return new dt(t)}},{key:"setProperty",value:function setProperty(t){return new mt(t)}},{key:"signData",value:function signData(t){return new gt(t)}},{key:"signature",value:function signature(t){return new yt(t)}},{key:"signing",value:function signing(t){return new vt(t)}},{key:"solid",value:function solid(t){return new bt(t)}},{key:"speak",value:function speak(t){return new St(t)}},{key:"stipple",value:function stipple(t){return new _t(t)}},{key:"subform",value:function subform(t){return new kt(t)}},{key:"subformSet",value:function subformSet(t){return new Ct(t)}},{key:"subjectDN",value:function subjectDN(t){return new wt(t)}},{key:"subjectDNs",value:function subjectDNs(t){return new At(t)}},{key:"submit",value:function submit(t){return new xt(t)}},{key:"template",value:function template(t){return new Ot(t)}},{key:"text",value:function text(t){return new Pt(t)}},{key:"textEdit",value:function textEdit(t){return new Tt(t)}},{key:"time",value:function time(t){return new It(t)}},{key:"timeStamp",value:function timeStamp(t){return new Ft(t)}},{key:"toolTip",value:function toolTip(t){return new Rt(t)}},{key:"traversal",value:function traversal(t){return new Et(t)}},{key:"traverse",value:function traverse(t){return new Mt(t)}},{key:"ui",value:function ui(t){return new Bt(t)}},{key:"validate",value:function validate(t){return new Dt(t)}},{key:"value",value:function value(t){return new jt(t)}},{key:"variables",value:function variables(t){return new Lt(t)}}]);return TemplateNamespace}();r.TemplateNamespace=Nt},(t,r,o)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});r.addHTML=function addHTML(t,r,o){var u=t[l.$extra],h=u.availableSpace,d=_slicedToArray(o,4),m=d[0],g=d[1],y=d[2],v=d[3];switch(t.layout){case"position":u.width=Math.max(u.width,m+y);u.height=Math.max(u.height,g+v);u.children.push(r);break;case"lr-tb":case"rl-tb":if(!u.line||1===u.attempt){u.line=createLine(t,[]);u.children.push(u.line);u.numberInLine=0}u.numberInLine+=1;u.line.children.push(r);if(0===u.attempt){u.currentWidth+=y;u.height=Math.max(u.height,u.prevHeight+v)}else{u.currentWidth=y;u.prevHeight=u.height;u.height+=v;u.attempt=0}u.width=Math.max(u.width,u.currentWidth);break;case"rl-row":case"row":u.children.push(r);u.width+=y;u.height=Math.max(u.height,v);var S,_=(0,c.measureToString)(u.height),k=function _createForOfIteratorHelper(t,r){var o="undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(!o){if(Array.isArray(t)||(o=_unsupportedIterableToArray(t))||r&&t&&"number"==typeof t.length){o&&(t=o);var l=0,c=function F(){};return{s:c,n:function n(){return l>=t.length?{done:!0}:{done:!1,value:t[l++]}},e:function e(t){throw t},f:c}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var u,h=!0,d=!1;return{s:function s(){o=o.call(t)},n:function n(){var t=o.next();h=t.done;return t},e:function e(t){d=!0;u=t},f:function f(){try{h||null==o.return||o.return()}finally{if(d)throw u}}}}(u.children);try{for(k.s();!(S=k.n()).done;){S.value.attributes.style.height=_}}catch(t){k.e(t)}finally{k.f()}break;case"table":u.width=Math.min(h.width,Math.max(u.width,y));u.height+=v;u.children.push(r);break;case"tb":u.width=h.width;u.height+=v;u.children.push(r)}};r.checkDimensions=function checkDimensions(t,r){if(null===t[l.$getTemplateRoot]()[l.$extra].firstUnsplittable)return!0;if(0===t.w||0===t.h)return!0;var o=t[l.$getSubformParent](),c=o[l.$extra]&&o[l.$extra].attempt||0,u=_slicedToArray(function getTransformedBBox(t){var r,o,l=""===t.w?NaN:t.w,c=""===t.h?NaN:t.h,u=0,h=0;switch(t.anchorType||""){case"bottomCenter":u=l/2;h=c;break;case"bottomLeft":u=0;h=c;break;case"bottomRight":u=l;h=c;break;case"middleCenter":u=l/2;h=c/2;break;case"middleLeft":u=0;h=c/2;break;case"middleRight":u=l;h=c/2;break;case"topCenter":u=l/2;h=0;break;case"topRight":u=l;h=0}switch(t.rotate||0){case 0:r=-u;o=-h;break;case 90:r=-h;o=u;var d=[c,-l];l=d[0];c=d[1];break;case 180:r=u;o=h;var m=[-l,-c];l=m[0];c=m[1];break;case 270:r=h;o=-u;var g=[-c,l];l=g[0];c=g[1]}return[t.x+r+Math.min(0,l),t.y+o+Math.min(0,c),Math.abs(l),Math.abs(c)]}(t),4),h=u[1],d=u[2],m=u[3];switch(o.layout){case"lr-tb":case"rl-tb":return 0===c?t[l.$getTemplateRoot]()[l.$extra].noLayoutFailure?""!==t.w?Math.round(d-r.width)<=2:r.width>2:!(""!==t.h&&Math.round(m-r.height)>2)&&(""!==t.w?Math.round(d-r.width)<=2||0===o[l.$extra].numberInLine&&r.height>2:r.width>2):!!t[l.$getTemplateRoot]()[l.$extra].noLayoutFailure||!(""!==t.h&&Math.round(m-r.height)>2)&&((""===t.w||Math.round(d-r.width)<=2||!o[l.$isThereMoreWidth]())&&r.height>2);case"table":case"tb":return!!t[l.$getTemplateRoot]()[l.$extra].noLayoutFailure||(""===t.h||t[l.$isSplittable]()?(""===t.w||Math.round(d-r.width)<=2||!o[l.$isThereMoreWidth]())&&r.height>2:Math.round(m-r.height)<=2);case"position":if(t[l.$getTemplateRoot]()[l.$extra].noLayoutFailure)return!0;if(""===t.h||Math.round(m+h-r.height)<=2)return!0;var g=t[l.$getTemplateRoot]()[l.$extra].currentContentArea;return m+h>g.h;case"rl-row":case"row":return!!t[l.$getTemplateRoot]()[l.$extra].noLayoutFailure||(""===t.h||Math.round(m-r.height)<=2);default:return!0}};r.flushHTML=function flushHTML(t){if(!t[l.$extra])return null;var r={name:"div",attributes:t[l.$extra].attributes,children:t[l.$extra].children};if(t[l.$extra].failingNode){var o=t[l.$extra].failingNode[l.$flushHTML]();o&&(t.layout.endsWith("-tb")?r.children.push(createLine(t,[o])):r.children.push(o))}if(0===r.children.length)return null;return r};r.getAvailableSpace=function getAvailableSpace(t){var r=t[l.$extra].availableSpace,o=t.margin?t.margin.topInset+t.margin.bottomInset:0,c=t.margin?t.margin.leftInset+t.margin.rightInset:0;switch(t.layout){case"lr-tb":case"rl-tb":return 0===t[l.$extra].attempt?{width:r.width-c-t[l.$extra].currentWidth,height:r.height-o-t[l.$extra].prevHeight}:{width:r.width-c,height:r.height-o-t[l.$extra].height};case"rl-row":case"row":return{width:t[l.$extra].columnWidths.slice(t[l.$extra].currentColumn).reduce((function(t,r){return t+r})),height:r.height-c};case"table":case"tb":return{width:r.width-c,height:r.height-o-t[l.$extra].height};default:return r}};var l=o(188),c=o(195);function _slicedToArray(t,r){return function _arrayWithHoles(t){if(Array.isArray(t))return t}(t)||function _iterableToArrayLimit(t,r){var o=null==t?null:"undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(null==o)return;var l,c,u=[],h=!0,d=!1;try{for(o=o.call(t);!(h=(l=o.next()).done);h=!0){u.push(l.value);if(r&&u.length===r)break}}catch(t){d=!0;c=t}finally{try{h||null==o.return||o.return()}finally{if(d)throw c}}return u}(t,r)||_unsupportedIterableToArray(t,r)||function _nonIterableRest(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function _unsupportedIterableToArray(t,r){if(t){if("string"==typeof t)return _arrayLikeToArray(t,r);var o=Object.prototype.toString.call(t).slice(8,-1);"Object"===o&&t.constructor&&(o=t.constructor.name);return"Map"===o||"Set"===o?Array.from(t):"Arguments"===o||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(o)?_arrayLikeToArray(t,r):void 0}}function _arrayLikeToArray(t,r){(null==r||r>t.length)&&(r=t.length);for(var o=0,l=new Array(r);o<r;o++)l[o]=t[o];return l}function createLine(t,r){return{name:"div",attributes:{class:["lr-tb"===t.layout?"xfaLr":"xfaRl"]},children:r}}},(t,r,o)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});r.computeBbox=function computeBbox(t,r,o){var c;if(""!==t.w&&""!==t.h)c=[t.x,t.y,t.w,t.h];else{if(!o)return null;var u=t.w;if(""===u){if(0===t.maxW){var h=t[l.$getSubformParent]();u="position"===h.layout&&""!==h.w?0:t.minW}else u=Math.min(t.maxW,o.width);r.attributes.style.width=measureToString(u)}var d=t.h;if(""===d){if(0===t.maxH){var m=t[l.$getSubformParent]();d="position"===m.layout&&""!==m.h?0:t.minH}else d=Math.min(t.maxH,o.height);r.attributes.style.height=measureToString(d)}c=[t.x,t.y,u,d]}return c};r.createWrapper=function createWrapper(t,r){var o=r.attributes,c=o.style,u={name:"div",attributes:{class:["xfaWrapper"],style:Object.create(null)},children:[]};o.class.push("xfaWrapped");if(t.border){var h,d,m=t.border[l.$extra],g=m.widths,y=m.insets,v=y[0],S=y[3],_=y[0]+y[2],k=y[1]+y[3];switch(t.border.hand){case"even":v-=g[0]/2;S-=g[3]/2;h="calc(100% + ".concat((g[1]+g[3])/2-k,"px)");d="calc(100% + ".concat((g[0]+g[2])/2-_,"px)");break;case"left":v-=g[0];S-=g[3];h="calc(100% + ".concat(g[1]+g[3]-k,"px)");d="calc(100% + ".concat(g[0]+g[2]-_,"px)");break;case"right":h=k?"calc(100% - ".concat(k,"px)"):"100%";d=_?"calc(100% - ".concat(_,"px)"):"100%"}var C=["xfaBorder"];isPrintOnly(t.border)&&C.push("xfaPrintOnly");for(var w={name:"div",attributes:{class:C,style:{top:"".concat(v,"px"),left:"".concat(S,"px"),width:h,height:d}},children:[]},x=0,O=["border","borderWidth","borderColor","borderRadius","borderStyle"];x<O.length;x++){var T=O[x];if(void 0!==c[T]){w.attributes.style[T]=c[T];delete c[T]}}u.children.push(w,r)}else u.children.push(r);for(var R=0,E=["background","backgroundClip","top","left","width","height","minWidth","minHeight","maxWidth","maxHeight","transform","transformOrigin","visibility"];R<E.length;R++){var M=E[R];if(void 0!==c[M]){u.attributes.style[M]=c[M];delete c[M]}}"absolute"===c.position?u.attributes.style.position="absolute":u.attributes.style.position="relative";delete c.position;if(c.alignSelf){u.attributes.style.alignSelf=c.alignSelf;delete c.alignSelf}return u};r.fixDimensions=function fixDimensions(t){var r=t[l.$getSubformParent]();if(r.layout&&r.layout.includes("row")){var o,c=r[l.$extra],u=t.colSpan;o=-1===u?c.columnWidths.slice(c.currentColumn).reduce((function(t,r){return t+r}),0):c.columnWidths.slice(c.currentColumn,c.currentColumn+u).reduce((function(t,r){return t+r}),0);isNaN(o)||(t.w=o)}r.layout&&"position"!==r.layout&&(t.x=t.y=0);"table"===t.layout&&""===t.w&&Array.isArray(t.columnWidths)&&(t.w=t.columnWidths.reduce((function(t,r){return t+r}),0))};r.fixTextIndent=function fixTextIndent(t){var r=(0,u.getMeasurement)(t.textIndent,"0px");if(r>=0)return;var o="padding"+("left"==("right"===t.textAlign?"right":"left")?"Left":"Right"),l=(0,u.getMeasurement)(t[o],"0px");t[o]="".concat(l-r,"px")};r.fixURL=function fixURL(t){var r=(0,c.createValidAbsoluteUrl)(t,null,{addDefaultProtocol:!0,tryConvertEncoding:!0});return r?r.href:null};r.isPrintOnly=isPrintOnly;r.layoutClass=function layoutClass(t){switch(t.layout){case"position":return"xfaPosition";case"lr-tb":return"xfaLrTb";case"rl-row":return"xfaRlRow";case"rl-tb":return"xfaRlTb";case"row":return"xfaRow";case"table":return"xfaTable";case"tb":return"xfaTb";default:return"xfaPosition"}};r.layoutNode=function layoutNode(t,r){var o=null,c=null,u=!1;if((!t.w||!t.h)&&t.value){var h=0,d=0;if(t.margin){h=t.margin.leftInset+t.margin.rightInset;d=t.margin.topInset+t.margin.bottomInset}var m=null,g=null;if(t.para){g=Object.create(null);m=""===t.para.lineHeight?null:t.para.lineHeight;g.top=""===t.para.spaceAbove?0:t.para.spaceAbove;g.bottom=""===t.para.spaceBelow?0:t.para.spaceBelow;g.left=""===t.para.marginLeft?0:t.para.marginLeft;g.right=""===t.para.marginRight?0:t.para.marginRight}var y=t.font;if(!y)for(var v=t[l.$getTemplateRoot](),S=t[l.$getParent]();S!==v;){if(S.font){y=S.font;break}S=S[l.$getParent]()}var _=(t.w?t.w:r.width)-h,k=t[l.$globalData].fontFinder;if(t.value.exData&&t.value.exData[l.$content]&&"text/html"===t.value.exData.contentType){var C=layoutText(t.value.exData[l.$content],y,g,m,k,_);c=C.width;o=C.height;u=C.isBroken}else{var w=t.value[l.$text]();if(w){var x=layoutText(w,y,g,m,k,_);c=x.width;o=x.height;u=x.isBroken}}null===c||t.w||(c+=h);null===o||t.h||(o+=d)}return{w:c,h:o,isBroken:u}};r.measureToString=measureToString;r.setAccess=function setAccess(t,r){switch(t.access){case"nonInteractive":r.push("xfaNonInteractive");break;case"readOnly":r.push("xfaReadOnly");break;case"protected":r.push("xfaDisabled")}};r.setFontFamily=function setFontFamily(t,r,o,l){var c=(0,u.stripQuotes)(t.typeface),d=o.find(c);l.fontFamily='"'.concat(c,'"');if(d){var m=d.regular.cssFontInfo.fontFamily;m!==c&&(l.fontFamily='"'.concat(m,'"'));var g=getCurrentPara(r);if(g&&""!==g.lineHeight)return;if(l.lineHeight)return;var y=(0,h.selectFont)(t,d);y&&(l.lineHeight=Math.max(1.2,y.lineHeight))}};r.setMinMaxDimensions=function setMinMaxDimensions(t,r){if("position"===t[l.$getSubformParent]().layout){t.minW>0&&(r.minWidth=measureToString(t.minW));t.maxW>0&&(r.maxWidth=measureToString(t.maxW));t.minH>0&&(r.minHeight=measureToString(t.minH));t.maxH>0&&(r.maxHeight=measureToString(t.maxH))}};r.setPara=function setPara(t,r,o){if(o.attributes.class&&o.attributes.class.includes("xfaRich")){if(r){""===t.h&&(r.height="auto");""===t.w&&(r.width="auto")}var c=getCurrentPara(t);if(c){var u=o.attributes.style;u.display="flex";u.flexDirection="column";switch(c.vAlign){case"top":u.justifyContent="start";break;case"bottom":u.justifyContent="end";break;case"middle":u.justifyContent="center"}for(var h=c[l.$toStyle](),d=0,m=Object.entries(h);d<m.length;d++){var g=(S=m[d],_=2,function _arrayWithHoles(t){if(Array.isArray(t))return t}(S)||function _iterableToArrayLimit(t,r){var o=null==t?null:"undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(null==o)return;var l,c,u=[],h=!0,d=!1;try{for(o=o.call(t);!(h=(l=o.next()).done);h=!0){u.push(l.value);if(r&&u.length===r)break}}catch(t){d=!0;c=t}finally{try{h||null==o.return||o.return()}finally{if(d)throw c}}return u}(S,_)||function _unsupportedIterableToArray(t,r){if(!t)return;if("string"==typeof t)return _arrayLikeToArray(t,r);var o=Object.prototype.toString.call(t).slice(8,-1);"Object"===o&&t.constructor&&(o=t.constructor.name);if("Map"===o||"Set"===o)return Array.from(t);if("Arguments"===o||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(o))return _arrayLikeToArray(t,r)}(S,_)||function _nonIterableRest(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()),y=g[0],v=g[1];y in u||(u[y]=v)}}}var S,_};r.toStyle=function toStyle(t){for(var r=Object.create(null),o=arguments.length,u=new Array(o>1?o-1:0),h=1;h<o;h++)u[h-1]=arguments[h];for(var d=0,g=u;d<g.length;d++){var y=g[d],v=t[y];if(null!==v)if(m.hasOwnProperty(y))m[y](t,r);else if(v instanceof l.XFAObject){var S=v[l.$toStyle]();S?Object.assign(r,S):(0,c.warn)("(DEBUG) - XFA - style for ".concat(y," not implemented yet"))}}return r};var l=o(188),c=o(4),u=o(189),h=o(196),d=o(197);function _arrayLikeToArray(t,r){(null==r||r>t.length)&&(r=t.length);for(var o=0,l=new Array(r);o<r;o++)l[o]=t[o];return l}function measureToString(t){return"string"==typeof t?"0px":Number.isInteger(t)?"".concat(t,"px"):"".concat(t.toFixed(2),"px")}var m={anchorType:function anchorType(t,r){var o=t[l.$getSubformParent]();if(o&&(!o.layout||"position"===o.layout)){"transform"in r||(r.transform="");switch(t.anchorType){case"bottomCenter":r.transform+="translate(-50%, -100%)";break;case"bottomLeft":r.transform+="translate(0,-100%)";break;case"bottomRight":r.transform+="translate(-100%,-100%)";break;case"middleCenter":r.transform+="translate(-50%,-50%)";break;case"middleLeft":r.transform+="translate(0,-50%)";break;case"middleRight":r.transform+="translate(-100%,-50%)";break;case"topCenter":r.transform+="translate(-50%,0)";break;case"topRight":r.transform+="translate(-100%,0)"}}},dimensions:function dimensions(t,r){var o=t[l.$getSubformParent](),c=t.w,u=t.h;if(o.layout&&o.layout.includes("row")){var h,d=o[l.$extra],m=t.colSpan;if(-1===m){h=d.columnWidths.slice(d.currentColumn).reduce((function(t,r){return t+r}),0);d.currentColumn=0}else{h=d.columnWidths.slice(d.currentColumn,d.currentColumn+m).reduce((function(t,r){return t+r}),0);d.currentColumn=(d.currentColumn+t.colSpan)%d.columnWidths.length}isNaN(h)||(c=t.w=h)}r.width=""!==c?measureToString(c):"auto";r.height=""!==u?measureToString(u):"auto"},position:function position(t,r){var o=t[l.$getSubformParent]();if(!o||!o.layout||"position"===o.layout){r.position="absolute";r.left=measureToString(t.x);r.top=measureToString(t.y)}},rotate:function rotate(t,r){if(t.rotate){"transform"in r||(r.transform="");r.transform+="rotate(-".concat(t.rotate,"deg)");r.transformOrigin="top left"}},presence:function presence(t,r){switch(t.presence){case"invisible":r.visibility="hidden";break;case"hidden":case"inactive":r.display="none"}},hAlign:function hAlign(t,r){if("para"===t[l.$nodeName])switch(t.hAlign){case"justifyAll":r.textAlign="justify-all";break;case"radix":r.textAlign="left";break;default:r.textAlign=t.hAlign}else switch(t.hAlign){case"left":r.alignSelf="start";break;case"center":r.alignSelf="center";break;case"right":r.alignSelf="end"}},margin:function margin(t,r){t.margin&&(r.margin=t.margin[l.$toStyle]().margin)}};function layoutText(t,r,o,c,u,h){var m=new d.TextMeasure(r,o,c,u);"string"==typeof t?m.addString(t):t[l.$pushGlyphs](m);return m.compute(h)}function isPrintOnly(t){return t.relevant.length>0&&!t.relevant[0].excluded&&"print"===t.relevant[0].viewname}function getCurrentPara(t){var r=t[l.$getTemplateRoot]()[l.$extra].paraStack;return r.length?r[r.length-1]:null}},(t,r,o)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});r.getMetrics=function getMetrics(t){var r=arguments.length>1&&void 0!==arguments[1]&&arguments[1],o=null;if(t){var u=(0,c.stripQuotes)(t.typeface),h=t[l.$globalData].fontFinder.find(u);o=selectFont(t,h)}if(!o)return{lineHeight:12,lineGap:2,lineNoGap:10};var d=t.size||10,m=o.lineHeight?Math.max(r?0:1.2,o.lineHeight):1.2,g=void 0===o.lineGap?.2:o.lineGap;return{lineHeight:m*d,lineGap:g*d,lineNoGap:Math.max(1,m-g)*d}};r.selectFont=selectFont;r.FontFinder=void 0;var l=o(188),c=o(189),u=o(4);function _slicedToArray(t,r){return function _arrayWithHoles(t){if(Array.isArray(t))return t}(t)||function _iterableToArrayLimit(t,r){var o=null==t?null:"undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(null==o)return;var l,c,u=[],h=!0,d=!1;try{for(o=o.call(t);!(h=(l=o.next()).done);h=!0){u.push(l.value);if(r&&u.length===r)break}}catch(t){d=!0;c=t}finally{try{h||null==o.return||o.return()}finally{if(d)throw c}}return u}(t,r)||_unsupportedIterableToArray(t,r)||function _nonIterableRest(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function _createForOfIteratorHelper(t,r){var o="undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(!o){if(Array.isArray(t)||(o=_unsupportedIterableToArray(t))||r&&t&&"number"==typeof t.length){o&&(t=o);var l=0,c=function F(){};return{s:c,n:function n(){return l>=t.length?{done:!0}:{done:!1,value:t[l++]}},e:function e(t){throw t},f:c}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var u,h=!0,d=!1;return{s:function s(){o=o.call(t)},n:function n(){var t=o.next();h=t.done;return t},e:function e(t){d=!0;u=t},f:function f(){try{h||null==o.return||o.return()}finally{if(d)throw u}}}}function _unsupportedIterableToArray(t,r){if(t){if("string"==typeof t)return _arrayLikeToArray(t,r);var o=Object.prototype.toString.call(t).slice(8,-1);"Object"===o&&t.constructor&&(o=t.constructor.name);return"Map"===o||"Set"===o?Array.from(t):"Arguments"===o||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(o)?_arrayLikeToArray(t,r):void 0}}function _arrayLikeToArray(t,r){(null==r||r>t.length)&&(r=t.length);for(var o=0,l=new Array(r);o<r;o++)l[o]=t[o];return l}function _defineProperties(t,r){for(var o=0;o<r.length;o++){var l=r[o];l.enumerable=l.enumerable||!1;l.configurable=!0;"value"in l&&(l.writable=!0);Object.defineProperty(t,l.key,l)}}var h=function(){function FontFinder(t){!function _classCallCheck(t,r){if(!(t instanceof r))throw new TypeError("Cannot call a class as a function")}(this,FontFinder);this.fonts=new Map;this.cache=new Map;this.warned=new Set;this.defaultFont=null;this.add(t)}!function _createClass(t,r,o){r&&_defineProperties(t.prototype,r);o&&_defineProperties(t,o);return t}(FontFinder,[{key:"add",value:function add(t){var r,o=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null,l=_createForOfIteratorHelper(t);try{for(l.s();!(r=l.n()).done;){var c=r.value;this.addPdfFont(c)}}catch(t){l.e(t)}finally{l.f()}var u,h=_createForOfIteratorHelper(this.fonts.values());try{for(h.s();!(u=h.n()).done;){var d=u.value;d.regular||(d.regular=d.italic||d.bold||d.bolditalic)}}catch(t){h.e(t)}finally{h.f()}if(o&&0!==o.size){var m,g=this.fonts.get("PdfJS-Fallback-PdfJS-XFA"),y=_createForOfIteratorHelper(o);try{for(y.s();!(m=y.n()).done;){var v=m.value;this.fonts.set(v,g)}}catch(t){y.e(t)}finally{y.f()}}}},{key:"addPdfFont",value:function addPdfFont(t){var r=t.cssFontInfo,o=r.fontFamily,l=this.fonts.get(o);if(!l){l=Object.create(null);this.fonts.set(o,l);this.defaultFont||(this.defaultFont=l)}var c="",u=parseFloat(r.fontWeight);0!==parseFloat(r.italicAngle)?c=u>=700?"bolditalic":"italic":u>=700&&(c="bold");if(!c){(t.name.includes("Bold")||t.psName&&t.psName.includes("Bold"))&&(c="bold");(t.name.includes("Italic")||t.name.endsWith("It")||t.psName&&(t.psName.includes("Italic")||t.psName.endsWith("It")))&&(c+="italic")}c||(c="regular");l[c]=t}},{key:"getDefault",value:function getDefault(){return this.defaultFont}},{key:"find",value:function find(t){var r=!(arguments.length>1&&void 0!==arguments[1])||arguments[1],o=this.fonts.get(t)||this.cache.get(t);if(o)return o;var l=/,|-|_| |bolditalic|bold|italic|regular|it/gi,c=t.replace(l,"");if(o=this.fonts.get(c)){this.cache.set(t,o);return o}c=c.toLowerCase();var h,d=[],m=_createForOfIteratorHelper(this.fonts.entries());try{for(m.s();!(h=m.n()).done;){var g=_slicedToArray(h.value,2),y=g[0],v=g[1];y.replace(l,"").toLowerCase().startsWith(c)&&d.push(v)}}catch(t){m.e(t)}finally{m.f()}if(0===d.length){var S,_=_createForOfIteratorHelper(this.fonts.entries());try{for(_.s();!(S=_.n()).done;){var k=_slicedToArray(S.value,2),C=k[1];C.regular.name&&C.regular.name.replace(l,"").toLowerCase().startsWith(c)&&d.push(C)}}catch(t){_.e(t)}finally{_.f()}}if(0===d.length){c=c.replace(/psmt|mt/gi,"");var w,x=_createForOfIteratorHelper(this.fonts.entries());try{for(x.s();!(w=x.n()).done;){var O=_slicedToArray(w.value,2),T=O[0],R=O[1];T.replace(l,"").toLowerCase().startsWith(c)&&d.push(R)}}catch(t){x.e(t)}finally{x.f()}}if(0===d.length){var E,M=_createForOfIteratorHelper(this.fonts.values());try{for(M.s();!(E=M.n()).done;){var D=E.value;D.regular.name&&D.regular.name.replace(l,"").toLowerCase().startsWith(c)&&d.push(D)}}catch(t){M.e(t)}finally{M.f()}}if(d.length>=1){1!==d.length&&r&&(0,u.warn)("XFA - Too many choices to guess the correct font: ".concat(t));this.cache.set(t,d[0]);return d[0]}if(r&&!this.warned.has(t)){this.warned.add(t);(0,u.warn)("XFA - Cannot find the font: ".concat(t))}return null}}]);return FontFinder}();r.FontFinder=h;function selectFont(t,r){return"italic"===t.posture?"bold"===t.weight?r.bolditalic:r.italic:"bold"===t.weight?r.bold:r.regular}},(t,r,o)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});r.TextMeasure=void 0;var l=o(196);function _createForOfIteratorHelper(t,r){var o="undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(!o){if(Array.isArray(t)||(o=_unsupportedIterableToArray(t))||r&&t&&"number"==typeof t.length){o&&(t=o);var l=0,c=function F(){};return{s:c,n:function n(){return l>=t.length?{done:!0}:{done:!1,value:t[l++]}},e:function e(t){throw t},f:c}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var u,h=!0,d=!1;return{s:function s(){o=o.call(t)},n:function n(){var t=o.next();h=t.done;return t},e:function e(t){d=!0;u=t},f:function f(){try{h||null==o.return||o.return()}finally{if(d)throw u}}}}function _slicedToArray(t,r){return function _arrayWithHoles(t){if(Array.isArray(t))return t}(t)||function _iterableToArrayLimit(t,r){var o=null==t?null:"undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(null==o)return;var l,c,u=[],h=!0,d=!1;try{for(o=o.call(t);!(h=(l=o.next()).done);h=!0){u.push(l.value);if(r&&u.length===r)break}}catch(t){d=!0;c=t}finally{try{h||null==o.return||o.return()}finally{if(d)throw c}}return u}(t,r)||_unsupportedIterableToArray(t,r)||function _nonIterableRest(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function _unsupportedIterableToArray(t,r){if(t){if("string"==typeof t)return _arrayLikeToArray(t,r);var o=Object.prototype.toString.call(t).slice(8,-1);"Object"===o&&t.constructor&&(o=t.constructor.name);return"Map"===o||"Set"===o?Array.from(t):"Arguments"===o||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(o)?_arrayLikeToArray(t,r):void 0}}function _arrayLikeToArray(t,r){(null==r||r>t.length)&&(r=t.length);for(var o=0,l=new Array(r);o<r;o++)l[o]=t[o];return l}function _classCallCheck(t,r){if(!(t instanceof r))throw new TypeError("Cannot call a class as a function")}function _defineProperties(t,r){for(var o=0;o<r.length;o++){var l=r[o];l.enumerable=l.enumerable||!1;l.configurable=!0;"value"in l&&(l.writable=!0);Object.defineProperty(t,l.key,l)}}function _createClass(t,r,o){r&&_defineProperties(t.prototype,r);o&&_defineProperties(t,o);return t}var c=function(){function FontInfo(t,r,o,c){_classCallCheck(this,FontInfo);this.lineHeight=o;this.paraMargin=r||{top:0,bottom:0,left:0,right:0};if(t){this.xfaFont={typeface:t.typeface,posture:t.posture,weight:t.weight,size:t.size,letterSpacing:t.letterSpacing};var u=c.find(t.typeface);if(u){this.pdfFont=(0,l.selectFont)(t,u);if(!this.pdfFont){var h=_slicedToArray(this.defaultFont(c),2);this.pdfFont=h[0];this.xfaFont=h[1]}}else{var d=_slicedToArray(this.defaultFont(c),2);this.pdfFont=d[0];this.xfaFont=d[1]}}else{var m=_slicedToArray(this.defaultFont(c),2);this.pdfFont=m[0];this.xfaFont=m[1]}}_createClass(FontInfo,[{key:"defaultFont",value:function defaultFont(t){var r=t.find("Helvetica",!1)||t.find("Myriad Pro",!1)||t.find("Arial",!1)||t.getDefault();if(r&&r.regular){var o=r.regular;return[o,{typeface:o.cssFontInfo.fontFamily,posture:"normal",weight:"normal",size:10,letterSpacing:0}]}return[null,{typeface:"Courier",posture:"normal",weight:"normal",size:10,letterSpacing:0}]}}]);return FontInfo}(),u=function(){function FontSelector(t,r,o,l){_classCallCheck(this,FontSelector);this.fontFinder=l;this.stack=[new c(t,r,o,l)]}_createClass(FontSelector,[{key:"pushData",value:function pushData(t,r,o){for(var l=this.stack[this.stack.length-1],u=0,h=["typeface","posture","weight","size","letterSpacing"];u<h.length;u++){var d=h[u];t[d]||(t[d]=l.xfaFont[d])}for(var m=0,g=["top","bottom","left","right"];m<g.length;m++){var y=g[m];isNaN(r[y])&&(r[y]=l.paraMargin[y])}var v=new c(t,r,o||l.lineHeight,this.fontFinder);v.pdfFont||(v.pdfFont=l.pdfFont);this.stack.push(v)}},{key:"popFont",value:function popFont(){this.stack.pop()}},{key:"topFont",value:function topFont(){return this.stack[this.stack.length-1]}}]);return FontSelector}(),h=function(){function TextMeasure(t,r,o,l){_classCallCheck(this,TextMeasure);this.glyphs=[];this.fontSelector=new u(t,r,o,l);this.extraHeight=0}_createClass(TextMeasure,[{key:"pushData",value:function pushData(t,r,o){this.fontSelector.pushData(t,r,o)}},{key:"popFont",value:function popFont(t){return this.fontSelector.popFont()}},{key:"addPara",value:function addPara(){var t=this.fontSelector.topFont();this.extraHeight+=t.paraMargin.top+t.paraMargin.bottom}},{key:"addString",value:function addString(t){if(t){var r=this.fontSelector.topFont(),o=r.xfaFont.size;if(r.pdfFont){var l,c=r.xfaFont.letterSpacing,u=r.pdfFont,h=u.lineHeight||1.2,d=r.lineHeight||Math.max(1.2,h)*o,m=h-(void 0===u.lineGap?.2:u.lineGap),g=Math.max(1,m)*o,y=o/1e3,v=u.defaultWidth||u.charsToGlyphs(" ")[0].width,S=_createForOfIteratorHelper(t.split(/[\u2029\n]/));try{for(S.s();!(l=S.n()).done;){var _,k=l.value,C=u.encodeString(k).join(""),w=_createForOfIteratorHelper(u.charsToGlyphs(C));try{for(w.s();!(_=w.n()).done;){var x=_.value,O=x.width||v;this.glyphs.push([O*y+c,d,g,x.unicode,!1])}}catch(t){w.e(t)}finally{w.f()}this.glyphs.push([0,0,0,"\n",!0])}}catch(t){S.e(t)}finally{S.f()}this.glyphs.pop()}else{var T,R=_createForOfIteratorHelper(t.split(/[\u2029\n]/));try{for(R.s();!(T=R.n()).done;){var E,M=_createForOfIteratorHelper(T.value.split(""));try{for(M.s();!(E=M.n()).done;){var D=E.value;this.glyphs.push([o,1.2*o,o,D,!1])}}catch(t){M.e(t)}finally{M.f()}this.glyphs.push([0,0,0,"\n",!0])}}catch(t){R.e(t)}finally{R.f()}this.glyphs.pop()}}}},{key:"compute",value:function compute(t){for(var r=-1,o=0,l=0,c=0,u=0,h=0,d=!1,m=!0,g=0,y=this.glyphs.length;g<y;g++){var v=_slicedToArray(this.glyphs[g],5),S=v[0],_=v[1],k=v[2],C=" "===v[3],w=m?k:_;if(v[4]){l=Math.max(l,u);u=0;c+=h;h=w;r=-1;o=0;m=!1}else if(C)if(u+S>t){l=Math.max(l,u);u=0;c+=h;h=w;r=-1;o=0;d=!0;m=!1}else{h=Math.max(w,h);o=u;u+=S;r=g}else if(u+S>t){c+=h;h=w;if(-1!==r){g=r;l=Math.max(l,o);u=0;r=-1;o=0}else{l=Math.max(l,u);u=S}d=!0;m=!1}else{u+=S;h=Math.max(w,h)}}return{width:1.02*(l=Math.max(l,u)),height:c+=h+this.extraHeight,isBroken:d}}}]);return TextMeasure}();r.TextMeasure=h},(t,r,o)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});r.DataHandler=void 0;var l=o(188);function _createForOfIteratorHelper(t,r){var o="undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(!o){if(Array.isArray(t)||(o=_unsupportedIterableToArray(t))||r&&t&&"number"==typeof t.length){o&&(t=o);var l=0,c=function F(){};return{s:c,n:function n(){return l>=t.length?{done:!0}:{done:!1,value:t[l++]}},e:function e(t){throw t},f:c}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var u,h=!0,d=!1;return{s:function s(){o=o.call(t)},n:function n(){var t=o.next();h=t.done;return t},e:function e(t){d=!0;u=t},f:function f(){try{h||null==o.return||o.return()}finally{if(d)throw u}}}}function _slicedToArray(t,r){return function _arrayWithHoles(t){if(Array.isArray(t))return t}(t)||function _iterableToArrayLimit(t,r){var o=null==t?null:"undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(null==o)return;var l,c,u=[],h=!0,d=!1;try{for(o=o.call(t);!(h=(l=o.next()).done);h=!0){u.push(l.value);if(r&&u.length===r)break}}catch(t){d=!0;c=t}finally{try{h||null==o.return||o.return()}finally{if(d)throw c}}return u}(t,r)||_unsupportedIterableToArray(t,r)||function _nonIterableRest(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function _unsupportedIterableToArray(t,r){if(t){if("string"==typeof t)return _arrayLikeToArray(t,r);var o=Object.prototype.toString.call(t).slice(8,-1);"Object"===o&&t.constructor&&(o=t.constructor.name);return"Map"===o||"Set"===o?Array.from(t):"Arguments"===o||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(o)?_arrayLikeToArray(t,r):void 0}}function _arrayLikeToArray(t,r){(null==r||r>t.length)&&(r=t.length);for(var o=0,l=new Array(r);o<r;o++)l[o]=t[o];return l}function _defineProperties(t,r){for(var o=0;o<r.length;o++){var l=r[o];l.enumerable=l.enumerable||!1;l.configurable=!0;"value"in l&&(l.writable=!0);Object.defineProperty(t,l.key,l)}}var c=function(){function DataHandler(t,r){!function _classCallCheck(t,r){if(!(t instanceof r))throw new TypeError("Cannot call a class as a function")}(this,DataHandler);this.data=r;this.dataset=t.datasets||null}!function _createClass(t,r,o){r&&_defineProperties(t.prototype,r);o&&_defineProperties(t,o);return t}(DataHandler,[{key:"serialize",value:function serialize(t){for(var r=[[-1,this.data[l.$getChildren]()]];r.length>0;){var o=r[r.length-1],c=_slicedToArray(o,2),u=c[0],h=c[1];if(u+1!==h.length){var d=h[++o[0]],m=t.get(d[l.$uid]);if(m)d[l.$setValue](m);else{var g,y=_createForOfIteratorHelper(d[l.$getAttributes]().values());try{for(y.s();!(g=y.n()).done;){var v=g.value,S=t.get(v[l.$uid]);if(S){v[l.$setValue](S);break}}}catch(t){y.e(t)}finally{y.f()}}var _=d[l.$getChildren]();_.length>0&&r.push([-1,_])}else r.pop()}var k=['<xfa:datasets xmlns:xfa="http://www.xfa.org/schema/xfa-data/1.0/">'];if(this.dataset){var C,w=_createForOfIteratorHelper(this.dataset[l.$getChildren]());try{for(w.s();!(C=w.n()).done;){var x=C.value;"data"!==x[l.$nodeName]&&x[l.$toString](k)}}catch(t){w.e(t)}finally{w.f()}}this.data[l.$toString](k);k.push("</xfa:datasets>");return k.join("")}}]);return DataHandler}();r.DataHandler=c},(t,r,o)=>{"use strict";function _typeof(t){_typeof="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function _typeof(t){return typeof t}:function _typeof(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t};return _typeof(t)}Object.defineProperty(r,"__esModule",{value:!0});r.XFAParser=void 0;var l=o(188),c=o(181),u=o(200),h=o(4);function _slicedToArray(t,r){return function _arrayWithHoles(t){if(Array.isArray(t))return t}(t)||function _iterableToArrayLimit(t,r){var o=null==t?null:"undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(null==o)return;var l,c,u=[],h=!0,d=!1;try{for(o=o.call(t);!(h=(l=o.next()).done);h=!0){u.push(l.value);if(r&&u.length===r)break}}catch(t){d=!0;c=t}finally{try{h||null==o.return||o.return()}finally{if(d)throw c}}return u}(t,r)||_unsupportedIterableToArray(t,r)||function _nonIterableRest(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function _unsupportedIterableToArray(t,r){if(t){if("string"==typeof t)return _arrayLikeToArray(t,r);var o=Object.prototype.toString.call(t).slice(8,-1);"Object"===o&&t.constructor&&(o=t.constructor.name);return"Map"===o||"Set"===o?Array.from(t):"Arguments"===o||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(o)?_arrayLikeToArray(t,r):void 0}}function _arrayLikeToArray(t,r){(null==r||r>t.length)&&(r=t.length);for(var o=0,l=new Array(r);o<r;o++)l[o]=t[o];return l}function _defineProperties(t,r){for(var o=0;o<r.length;o++){var l=r[o];l.enumerable=l.enumerable||!1;l.configurable=!0;"value"in l&&(l.writable=!0);Object.defineProperty(t,l.key,l)}}function _setPrototypeOf(t,r){_setPrototypeOf=Object.setPrototypeOf||function _setPrototypeOf(t,r){t.__proto__=r;return t};return _setPrototypeOf(t,r)}function _createSuper(t){var r=function _isNativeReflectConstruct(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){})));return!0}catch(t){return!1}}();return function _createSuperInternal(){var o,l=_getPrototypeOf(t);if(r){var c=_getPrototypeOf(this).constructor;o=Reflect.construct(l,arguments,c)}else o=l.apply(this,arguments);return _possibleConstructorReturn(this,o)}}function _possibleConstructorReturn(t,r){if(r&&("object"===_typeof(r)||"function"==typeof r))return r;if(void 0!==r)throw new TypeError("Derived constructors may only return object or undefined");return function _assertThisInitialized(t){if(void 0===t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return t}(t)}function _getPrototypeOf(t){_getPrototypeOf=Object.setPrototypeOf?Object.getPrototypeOf:function _getPrototypeOf(t){return t.__proto__||Object.getPrototypeOf(t)};return _getPrototypeOf(t)}var d=function(t){!function _inherits(t,r){if("function"!=typeof r&&null!==r)throw new TypeError("Super expression must either be null or a function");t.prototype=Object.create(r&&r.prototype,{constructor:{value:t,writable:!0,configurable:!0}});r&&_setPrototypeOf(t,r)}(XFAParser,t);var r=_createSuper(XFAParser);function XFAParser(){var t;!function _classCallCheck(t,r){if(!(t instanceof r))throw new TypeError("Cannot call a class as a function")}(this,XFAParser);(t=r.call(this))._builder=new u.Builder;t._stack=[];t._globalData={usedTypefaces:new Set};t._ids=new Map;t._current=t._builder.buildRoot(t._ids);t._errorCode=c.XMLParserErrorCode.NoError;t._whiteRegex=/^\s+$/;t._nbsps=/\xa0+/g;return t}!function _createClass(t,r,o){r&&_defineProperties(t.prototype,r);o&&_defineProperties(t,o);return t}(XFAParser,[{key:"parse",value:function parse(t){this.parseXml(t);if(this._errorCode===c.XMLParserErrorCode.NoError){this._current[l.$finalize]();return this._current.element}}},{key:"onText",value:function onText(t){t=t.replace(this._nbsps,(function(t){return t.slice(1)+" "}));this._current[l.$acceptWhitespace]()?this._current[l.$onText](t):this._whiteRegex.test(t)||this._current[l.$onText](t.trim())}},{key:"onCdata",value:function onCdata(t){this._current[l.$onText](t)}},{key:"_mkAttributes",value:function _mkAttributes(t,r){var o,c=null,u=null,d=Object.create({}),m=function _createForOfIteratorHelper(t,r){var o="undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(!o){if(Array.isArray(t)||(o=_unsupportedIterableToArray(t))||r&&t&&"number"==typeof t.length){o&&(t=o);var l=0,c=function F(){};return{s:c,n:function n(){return l>=t.length?{done:!0}:{done:!1,value:t[l++]}},e:function e(t){throw t},f:c}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var u,h=!0,d=!1;return{s:function s(){o=o.call(t)},n:function n(){var t=o.next();h=t.done;return t},e:function e(t){d=!0;u=t},f:function f(){try{h||null==o.return||o.return()}finally{if(d)throw u}}}}(t);try{for(m.s();!(o=m.n()).done;){var g=o.value,y=g.name,v=g.value;if("xmlns"===y)c?(0,h.warn)("XFA - multiple namespace definition in <".concat(r,">")):c=v;else if(y.startsWith("xmlns:")){var S=y.substring("xmlns:".length);u||(u=[]);u.push({prefix:S,value:v})}else{var _=y.indexOf(":");if(-1===_)d[y]=v;else{var k=d[l.$nsAttributes];k||(k=d[l.$nsAttributes]=Object.create(null));var C=[y.slice(0,_),y.slice(_+1)],w=C[0],x=C[1],O=k[w];O||(O=k[w]=Object.create(null));O[x]=v}}}}catch(t){m.e(t)}finally{m.f()}return[c,u,d]}},{key:"_getNameAndPrefix",value:function _getNameAndPrefix(t,r){var o=t.indexOf(":");return-1===o?[t,null]:[t.substring(o+1),r?"":t.substring(0,o)]}},{key:"onBeginElement",value:function onBeginElement(t,r,o){var c=_slicedToArray(this._mkAttributes(r,t),3),u=c[0],h=c[1],d=c[2],m=_slicedToArray(this._getNameAndPrefix(t,this._builder.isNsAgnostic()),2),g=m[0],y=m[1],v=this._builder.build({nsPrefix:y,name:g,attributes:d,namespace:u,prefixes:h});v[l.$globalData]=this._globalData;if(o){v[l.$finalize]();this._current[l.$onChild](v)&&v[l.$setId](this._ids);v[l.$clean](this._builder)}else{this._stack.push(this._current);this._current=v}}},{key:"onEndElement",value:function onEndElement(t){var r=this._current;if(r[l.$isCDATAXml]()&&"string"==typeof r[l.$content]){var o=new XFAParser;o._globalData=this._globalData;var c=o.parse(r[l.$content]);r[l.$content]=null;r[l.$onChild](c)}r[l.$finalize]();this._current=this._stack.pop();this._current[l.$onChild](r)&&r[l.$setId](this._ids);r[l.$clean](this._builder)}},{key:"onError",value:function onError(t){this._errorCode=t}}]);return XFAParser}(c.XMLParserBase);r.XFAParser=d},(t,r,o)=>{"use strict";function _typeof(t){_typeof="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function _typeof(t){return typeof t}:function _typeof(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t};return _typeof(t)}Object.defineProperty(r,"__esModule",{value:!0});r.Builder=void 0;var l=o(190),c=o(188),u=o(201),h=o(193),d=o(210),m=o(4);function _slicedToArray(t,r){return function _arrayWithHoles(t){if(Array.isArray(t))return t}(t)||function _iterableToArrayLimit(t,r){var o=null==t?null:"undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(null==o)return;var l,c,u=[],h=!0,d=!1;try{for(o=o.call(t);!(h=(l=o.next()).done);h=!0){u.push(l.value);if(r&&u.length===r)break}}catch(t){d=!0;c=t}finally{try{h||null==o.return||o.return()}finally{if(d)throw c}}return u}(t,r)||_unsupportedIterableToArray(t,r)||function _nonIterableRest(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function _toConsumableArray(t){return function _arrayWithoutHoles(t){if(Array.isArray(t))return _arrayLikeToArray(t)}(t)||function _iterableToArray(t){if("undefined"!=typeof Symbol&&null!=t[Symbol.iterator]||null!=t["@@iterator"])return Array.from(t)}(t)||_unsupportedIterableToArray(t)||function _nonIterableSpread(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function _unsupportedIterableToArray(t,r){if(t){if("string"==typeof t)return _arrayLikeToArray(t,r);var o=Object.prototype.toString.call(t).slice(8,-1);"Object"===o&&t.constructor&&(o=t.constructor.name);return"Map"===o||"Set"===o?Array.from(t):"Arguments"===o||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(o)?_arrayLikeToArray(t,r):void 0}}function _arrayLikeToArray(t,r){(null==r||r>t.length)&&(r=t.length);for(var o=0,l=new Array(r);o<r;o++)l[o]=t[o];return l}function _classCallCheck(t,r){if(!(t instanceof r))throw new TypeError("Cannot call a class as a function")}function _defineProperties(t,r){for(var o=0;o<r.length;o++){var l=r[o];l.enumerable=l.enumerable||!1;l.configurable=!0;"value"in l&&(l.writable=!0);Object.defineProperty(t,l.key,l)}}function _createClass(t,r,o){r&&_defineProperties(t.prototype,r);o&&_defineProperties(t,o);return t}function _get(t,r,o){_get="undefined"!=typeof Reflect&&Reflect.get?Reflect.get:function _get(t,r,o){var l=function _superPropBase(t,r){for(;!Object.prototype.hasOwnProperty.call(t,r)&&null!==(t=_getPrototypeOf(t)););return t}(t,r);if(l){var c=Object.getOwnPropertyDescriptor(l,r);return c.get?c.get.call(o):c.value}};return _get(t,r,o||t)}function _inherits(t,r){if("function"!=typeof r&&null!==r)throw new TypeError("Super expression must either be null or a function");t.prototype=Object.create(r&&r.prototype,{constructor:{value:t,writable:!0,configurable:!0}});r&&_setPrototypeOf(t,r)}function _setPrototypeOf(t,r){_setPrototypeOf=Object.setPrototypeOf||function _setPrototypeOf(t,r){t.__proto__=r;return t};return _setPrototypeOf(t,r)}function _createSuper(t){var r=function _isNativeReflectConstruct(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){})));return!0}catch(t){return!1}}();return function _createSuperInternal(){var o,l=_getPrototypeOf(t);if(r){var c=_getPrototypeOf(this).constructor;o=Reflect.construct(l,arguments,c)}else o=l.apply(this,arguments);return _possibleConstructorReturn(this,o)}}function _possibleConstructorReturn(t,r){if(r&&("object"===_typeof(r)||"function"==typeof r))return r;if(void 0!==r)throw new TypeError("Derived constructors may only return object or undefined");return function _assertThisInitialized(t){if(void 0===t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return t}(t)}function _getPrototypeOf(t){_getPrototypeOf=Object.setPrototypeOf?Object.getPrototypeOf:function _getPrototypeOf(t){return t.__proto__||Object.getPrototypeOf(t)};return _getPrototypeOf(t)}var g=function(t){_inherits(Root,t);var r=_createSuper(Root);function Root(t){var o;_classCallCheck(this,Root);(o=r.call(this,-1,"root",Object.create(null))).element=null;o[c.$ids]=t;return o}_createClass(Root,[{key:c.$onChild,value:function value(t){this.element=t;return!0}},{key:c.$finalize,value:function value(){_get(_getPrototypeOf(Root.prototype),c.$finalize,this).call(this);if(this.element.template instanceof h.Template){this[c.$ids].set(c.$root,this.element);this.element.template[c.$resolvePrototypes](this[c.$ids]);this.element.template[c.$ids]=this[c.$ids]}}}]);return Root}(c.XFAObject),y=function(t){_inherits(Empty,t);var r=_createSuper(Empty);function Empty(){_classCallCheck(this,Empty);return r.call(this,-1,"",Object.create(null))}_createClass(Empty,[{key:c.$onChild,value:function value(t){return!1}}]);return Empty}(c.XFAObject),v=function(){function Builder(){_classCallCheck(this,Builder);this._namespaceStack=[];this._nsAgnosticLevel=0;this._namespacePrefixes=new Map;this._namespaces=new Map;this._nextNsId=Math.max.apply(Math,_toConsumableArray(Object.values(l.NamespaceIds).map((function(t){return t.id}))));this._currentNamespace=new d.UnknownNamespace(++this._nextNsId)}_createClass(Builder,[{key:"buildRoot",value:function buildRoot(t){return new g(t)}},{key:"build",value:function build(t){var r=t.nsPrefix,o=t.name,h=t.attributes,d=t.namespace,m=t.prefixes,g=null!==d;if(g){this._namespaceStack.push(this._currentNamespace);this._currentNamespace=this._searchNamespace(d)}m&&this._addNamespacePrefix(m);if(h.hasOwnProperty(c.$nsAttributes)){for(var v=u.NamespaceSetUp.datasets,S=h[c.$nsAttributes],_=null,k=0,C=Object.entries(S);k<C.length;k++){var w=_slicedToArray(C[k],2),x=w[0],O=w[1];if(this._getNamespaceToUse(x)===v){_={xfa:O};break}}_?h[c.$nsAttributes]=_:delete h[c.$nsAttributes]}var T=this._getNamespaceToUse(r),R=T&&T[l.$buildXFAObject](o,h)||new y;R[c.$isNsAgnostic]()&&this._nsAgnosticLevel++;(g||m||R[c.$isNsAgnostic]())&&(R[c.$cleanup]={hasNamespace:g,prefixes:m,nsAgnostic:R[c.$isNsAgnostic]()});return R}},{key:"isNsAgnostic",value:function isNsAgnostic(){return this._nsAgnosticLevel>0}},{key:"_searchNamespace",value:function _searchNamespace(t){var r=this._namespaces.get(t);if(r)return r;for(var o=0,c=Object.entries(l.NamespaceIds);o<c.length;o++){var h=_slicedToArray(c[o],2),m=h[0];if((0,h[1].check)(t)){if(r=u.NamespaceSetUp[m]){this._namespaces.set(t,r);return r}break}}r=new d.UnknownNamespace(++this._nextNsId);this._namespaces.set(t,r);return r}},{key:"_addNamespacePrefix",value:function _addNamespacePrefix(t){var r,o=function _createForOfIteratorHelper(t,r){var o="undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(!o){if(Array.isArray(t)||(o=_unsupportedIterableToArray(t))||r&&t&&"number"==typeof t.length){o&&(t=o);var l=0,c=function F(){};return{s:c,n:function n(){return l>=t.length?{done:!0}:{done:!1,value:t[l++]}},e:function e(t){throw t},f:c}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var u,h=!0,d=!1;return{s:function s(){o=o.call(t)},n:function n(){var t=o.next();h=t.done;return t},e:function e(t){d=!0;u=t},f:function f(){try{h||null==o.return||o.return()}finally{if(d)throw u}}}}(t);try{for(o.s();!(r=o.n()).done;){var l=r.value,c=l.prefix,u=l.value,h=this._searchNamespace(u),d=this._namespacePrefixes.get(c);if(!d){d=[];this._namespacePrefixes.set(c,d)}d.push(h)}}catch(t){o.e(t)}finally{o.f()}}},{key:"_getNamespaceToUse",value:function _getNamespaceToUse(t){if(!t)return this._currentNamespace;var r=this._namespacePrefixes.get(t);if(r&&r.length>0)return r[r.length-1];(0,m.warn)("Unknown namespace prefix: ".concat(t,"."));return null}},{key:"clean",value:function clean(t){var r=this,o=t.hasNamespace,l=t.prefixes,c=t.nsAgnostic;o&&(this._currentNamespace=this._namespaceStack.pop());l&&l.forEach((function(t){var o=t.prefix;r._namespacePrefixes.get(o).pop()}));c&&this._nsAgnosticLevel--}}]);return Builder}();r.Builder=v},(t,r,o)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});r.NamespaceSetUp=void 0;var l=o(202),c=o(203),u=o(204),h=o(205),d=o(206),m=o(207),g=o(193),y=o(208),v=o(209),S={config:l.ConfigNamespace,connection:c.ConnectionSetNamespace,datasets:u.DatasetsNamespace,localeSet:h.LocaleSetNamespace,signature:d.SignatureNamespace,stylesheet:m.StylesheetNamespace,template:g.TemplateNamespace,xdp:y.XdpNamespace,xhtml:v.XhtmlNamespace};r.NamespaceSetUp=S},(t,r,o)=>{"use strict";function _typeof(t){_typeof="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function _typeof(t){return typeof t}:function _typeof(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t};return _typeof(t)}Object.defineProperty(r,"__esModule",{value:!0});r.ConfigNamespace=void 0;var l=o(190),c=o(188),u=o(189),h=o(4);function _createForOfIteratorHelper(t,r){var o="undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(!o){if(Array.isArray(t)||(o=function _unsupportedIterableToArray(t,r){if(!t)return;if("string"==typeof t)return _arrayLikeToArray(t,r);var o=Object.prototype.toString.call(t).slice(8,-1);"Object"===o&&t.constructor&&(o=t.constructor.name);if("Map"===o||"Set"===o)return Array.from(t);if("Arguments"===o||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(o))return _arrayLikeToArray(t,r)}(t))||r&&t&&"number"==typeof t.length){o&&(t=o);var l=0,c=function F(){};return{s:c,n:function n(){return l>=t.length?{done:!0}:{done:!1,value:t[l++]}},e:function e(t){throw t},f:c}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var u,h=!0,d=!1;return{s:function s(){o=o.call(t)},n:function n(){var t=o.next();h=t.done;return t},e:function e(t){d=!0;u=t},f:function f(){try{h||null==o.return||o.return()}finally{if(d)throw u}}}}function _arrayLikeToArray(t,r){(null==r||r>t.length)&&(r=t.length);for(var o=0,l=new Array(r);o<r;o++)l[o]=t[o];return l}function _defineProperties(t,r){for(var o=0;o<r.length;o++){var l=r[o];l.enumerable=l.enumerable||!1;l.configurable=!0;"value"in l&&(l.writable=!0);Object.defineProperty(t,l.key,l)}}function _createClass(t,r,o){r&&_defineProperties(t.prototype,r);o&&_defineProperties(t,o);return t}function _classCallCheck(t,r){if(!(t instanceof r))throw new TypeError("Cannot call a class as a function")}function _inherits(t,r){if("function"!=typeof r&&null!==r)throw new TypeError("Super expression must either be null or a function");t.prototype=Object.create(r&&r.prototype,{constructor:{value:t,writable:!0,configurable:!0}});r&&_setPrototypeOf(t,r)}function _setPrototypeOf(t,r){_setPrototypeOf=Object.setPrototypeOf||function _setPrototypeOf(t,r){t.__proto__=r;return t};return _setPrototypeOf(t,r)}function _createSuper(t){var r=function _isNativeReflectConstruct(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){})));return!0}catch(t){return!1}}();return function _createSuperInternal(){var o,l=_getPrototypeOf(t);if(r){var c=_getPrototypeOf(this).constructor;o=Reflect.construct(l,arguments,c)}else o=l.apply(this,arguments);return _possibleConstructorReturn(this,o)}}function _possibleConstructorReturn(t,r){if(r&&("object"===_typeof(r)||"function"==typeof r))return r;if(void 0!==r)throw new TypeError("Derived constructors may only return object or undefined");return function _assertThisInitialized(t){if(void 0===t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return t}(t)}function _getPrototypeOf(t){_getPrototypeOf=Object.setPrototypeOf?Object.getPrototypeOf:function _getPrototypeOf(t){return t.__proto__||Object.getPrototypeOf(t)};return _getPrototypeOf(t)}var d=l.NamespaceIds.config.id,m=function(t){_inherits(Acrobat,t);var r=_createSuper(Acrobat);function Acrobat(t){var o;_classCallCheck(this,Acrobat);(o=r.call(this,d,"acrobat",!0)).acrobat7=null;o.autoSave=null;o.common=null;o.validate=null;o.validateApprovalSignatures=null;o.submitUrl=new c.XFAObjectArray;return o}return Acrobat}(c.XFAObject),g=function(t){_inherits(Acrobat7,t);var r=_createSuper(Acrobat7);function Acrobat7(t){var o;_classCallCheck(this,Acrobat7);(o=r.call(this,d,"acrobat7",!0)).dynamicRender=null;return o}return Acrobat7}(c.XFAObject),y=function(t){_inherits(ADBE_JSConsole,t);var r=_createSuper(ADBE_JSConsole);function ADBE_JSConsole(t){_classCallCheck(this,ADBE_JSConsole);return r.call(this,d,"ADBE_JSConsole",["delegate","Enable","Disable"])}return ADBE_JSConsole}(c.OptionObject),v=function(t){_inherits(ADBE_JSDebugger,t);var r=_createSuper(ADBE_JSDebugger);function ADBE_JSDebugger(t){_classCallCheck(this,ADBE_JSDebugger);return r.call(this,d,"ADBE_JSDebugger",["delegate","Enable","Disable"])}return ADBE_JSDebugger}(c.OptionObject),S=function(t){_inherits(AddSilentPrint,t);var r=_createSuper(AddSilentPrint);function AddSilentPrint(t){_classCallCheck(this,AddSilentPrint);return r.call(this,d,"addSilentPrint")}return AddSilentPrint}(c.Option01),_=function(t){_inherits(AddViewerPreferences,t);var r=_createSuper(AddViewerPreferences);function AddViewerPreferences(t){_classCallCheck(this,AddViewerPreferences);return r.call(this,d,"addViewerPreferences")}return AddViewerPreferences}(c.Option01),k=function(t){_inherits(AdjustData,t);var r=_createSuper(AdjustData);function AdjustData(t){_classCallCheck(this,AdjustData);return r.call(this,d,"adjustData")}return AdjustData}(c.Option10),C=function(t){_inherits(AdobeExtensionLevel,t);var r=_createSuper(AdobeExtensionLevel);function AdobeExtensionLevel(t){_classCallCheck(this,AdobeExtensionLevel);return r.call(this,d,"adobeExtensionLevel",0,(function(t){return t>=1&&t<=8}))}return AdobeExtensionLevel}(c.IntegerObject),w=function(t){_inherits(Agent,t);var r=_createSuper(Agent);function Agent(t){var o;_classCallCheck(this,Agent);(o=r.call(this,d,"agent",!0)).name=t.name?t.name.trim():"";o.common=new c.XFAObjectArray;return o}return Agent}(c.XFAObject),x=function(t){_inherits(AlwaysEmbed,t);var r=_createSuper(AlwaysEmbed);function AlwaysEmbed(t){_classCallCheck(this,AlwaysEmbed);return r.call(this,d,"alwaysEmbed")}return AlwaysEmbed}(c.ContentObject),O=function(t){_inherits(Amd,t);var r=_createSuper(Amd);function Amd(t){_classCallCheck(this,Amd);return r.call(this,d,"amd")}return Amd}(c.StringObject),T=function(t){_inherits(Area,t);var r=_createSuper(Area);function Area(t){var o;_classCallCheck(this,Area);(o=r.call(this,d,"area")).level=(0,u.getInteger)({data:t.level,defaultValue:0,validate:function validate(t){return t>=1&&t<=3}});o.name=(0,u.getStringOption)(t.name,["","barcode","coreinit","deviceDriver","font","general","layout","merge","script","signature","sourceSet","templateCache"]);return o}return Area}(c.XFAObject),R=function(t){_inherits(Attributes,t);var r=_createSuper(Attributes);function Attributes(t){_classCallCheck(this,Attributes);return r.call(this,d,"attributes",["preserve","delegate","ignore"])}return Attributes}(c.OptionObject),E=function(t){_inherits(AutoSave,t);var r=_createSuper(AutoSave);function AutoSave(t){_classCallCheck(this,AutoSave);return r.call(this,d,"autoSave",["disabled","enabled"])}return AutoSave}(c.OptionObject),M=function(t){_inherits(Base,t);var r=_createSuper(Base);function Base(t){_classCallCheck(this,Base);return r.call(this,d,"base")}return Base}(c.StringObject),D=function(t){_inherits(BatchOutput,t);var r=_createSuper(BatchOutput);function BatchOutput(t){var o;_classCallCheck(this,BatchOutput);(o=r.call(this,d,"batchOutput")).format=(0,u.getStringOption)(t.format,["none","concat","zip","zipCompress"]);return o}return BatchOutput}(c.XFAObject),j=function(t){_inherits(BehaviorOverride,t);var r=_createSuper(BehaviorOverride);function BehaviorOverride(t){_classCallCheck(this,BehaviorOverride);return r.call(this,d,"behaviorOverride")}_createClass(BehaviorOverride,[{key:c.$finalize,value:function value(){this[c.$content]=new Map(this[c.$content].trim().split(/\s+/).filter((function(t){return t.includes(":")})).map((function(t){return t.split(":",2)})))}}]);return BehaviorOverride}(c.ContentObject),L=function(t){_inherits(Cache,t);var r=_createSuper(Cache);function Cache(t){var o;_classCallCheck(this,Cache);(o=r.call(this,d,"cache",!0)).templateCache=null;return o}return Cache}(c.XFAObject),N=function(t){_inherits(Change,t);var r=_createSuper(Change);function Change(t){_classCallCheck(this,Change);return r.call(this,d,"change")}return Change}(c.Option01),U=function(t){_inherits(Common,t);var r=_createSuper(Common);function Common(t){var o;_classCallCheck(this,Common);(o=r.call(this,d,"common",!0)).data=null;o.locale=null;o.localeSet=null;o.messaging=null;o.suppressBanner=null;o.template=null;o.validationMessaging=null;o.versionControl=null;o.log=new c.XFAObjectArray;return o}return Common}(c.XFAObject),H=function(t){_inherits(Compress,t);var r=_createSuper(Compress);function Compress(t){var o;_classCallCheck(this,Compress);(o=r.call(this,d,"compress")).scope=(0,u.getStringOption)(t.scope,["imageOnly","document"]);return o}return Compress}(c.XFAObject),W=function(t){_inherits(CompressLogicalStructure,t);var r=_createSuper(CompressLogicalStructure);function CompressLogicalStructure(t){_classCallCheck(this,CompressLogicalStructure);return r.call(this,d,"compressLogicalStructure")}return CompressLogicalStructure}(c.Option01),$=function(t){_inherits(CompressObjectStream,t);var r=_createSuper(CompressObjectStream);function CompressObjectStream(t){_classCallCheck(this,CompressObjectStream);return r.call(this,d,"compressObjectStream")}return CompressObjectStream}(c.Option10),q=function(t){_inherits(Compression,t);var r=_createSuper(Compression);function Compression(t){var o;_classCallCheck(this,Compression);(o=r.call(this,d,"compression",!0)).compressLogicalStructure=null;o.compressObjectStream=null;o.level=null;o.type=null;return o}return Compression}(c.XFAObject),X=function(t){_inherits(Config,t);var r=_createSuper(Config);function Config(t){var o;_classCallCheck(this,Config);(o=r.call(this,d,"config",!0)).acrobat=null;o.present=null;o.trace=null;o.agent=new c.XFAObjectArray;return o}return Config}(c.XFAObject),z=function(t){_inherits(Conformance,t);var r=_createSuper(Conformance);function Conformance(t){_classCallCheck(this,Conformance);return r.call(this,d,"conformance",["A","B"])}return Conformance}(c.OptionObject),G=function(t){_inherits(ContentCopy,t);var r=_createSuper(ContentCopy);function ContentCopy(t){_classCallCheck(this,ContentCopy);return r.call(this,d,"contentCopy")}return ContentCopy}(c.Option01),V=function(t){_inherits(Copies,t);var r=_createSuper(Copies);function Copies(t){_classCallCheck(this,Copies);return r.call(this,d,"copies",1,(function(t){return t>=1}))}return Copies}(c.IntegerObject),Y=function(t){_inherits(Creator,t);var r=_createSuper(Creator);function Creator(t){_classCallCheck(this,Creator);return r.call(this,d,"creator")}return Creator}(c.StringObject),K=function(t){_inherits(CurrentPage,t);var r=_createSuper(CurrentPage);function CurrentPage(t){_classCallCheck(this,CurrentPage);return r.call(this,d,"currentPage",0,(function(t){return t>=0}))}return CurrentPage}(c.IntegerObject),J=function(t){_inherits(Data,t);var r=_createSuper(Data);function Data(t){var o;_classCallCheck(this,Data);(o=r.call(this,d,"data",!0)).adjustData=null;o.attributes=null;o.incrementalLoad=null;o.outputXSL=null;o.range=null;o.record=null;o.startNode=null;o.uri=null;o.window=null;o.xsl=null;o.excludeNS=new c.XFAObjectArray;o.transform=new c.XFAObjectArray;return o}return Data}(c.XFAObject),Q=function(t){_inherits(Debug,t);var r=_createSuper(Debug);function Debug(t){var o;_classCallCheck(this,Debug);(o=r.call(this,d,"debug",!0)).uri=null;return o}return Debug}(c.XFAObject),Z=function(t){_inherits(DefaultTypeface,t);var r=_createSuper(DefaultTypeface);function DefaultTypeface(t){var o;_classCallCheck(this,DefaultTypeface);(o=r.call(this,d,"defaultTypeface")).writingScript=(0,u.getStringOption)(t.writingScript,["*","Arabic","Cyrillic","EastEuropeanRoman","Greek","Hebrew","Japanese","Korean","Roman","SimplifiedChinese","Thai","TraditionalChinese","Vietnamese"]);return o}return DefaultTypeface}(c.ContentObject),ee=function(t){_inherits(Destination,t);var r=_createSuper(Destination);function Destination(t){_classCallCheck(this,Destination);return r.call(this,d,"destination",["pdf","pcl","ps","webClient","zpl"])}return Destination}(c.OptionObject),te=function(t){_inherits(DocumentAssembly,t);var r=_createSuper(DocumentAssembly);function DocumentAssembly(t){_classCallCheck(this,DocumentAssembly);return r.call(this,d,"documentAssembly")}return DocumentAssembly}(c.Option01),re=function(t){_inherits(Driver,t);var r=_createSuper(Driver);function Driver(t){var o;_classCallCheck(this,Driver);(o=r.call(this,d,"driver",!0)).name=t.name?t.name.trim():"";o.fontInfo=null;o.xdc=null;return o}return Driver}(c.XFAObject),ae=function(t){_inherits(DuplexOption,t);var r=_createSuper(DuplexOption);function DuplexOption(t){_classCallCheck(this,DuplexOption);return r.call(this,d,"duplexOption",["simplex","duplexFlipLongEdge","duplexFlipShortEdge"])}return DuplexOption}(c.OptionObject),ne=function(t){_inherits(DynamicRender,t);var r=_createSuper(DynamicRender);function DynamicRender(t){_classCallCheck(this,DynamicRender);return r.call(this,d,"dynamicRender",["forbidden","required"])}return DynamicRender}(c.OptionObject),ie=function(t){_inherits(Embed,t);var r=_createSuper(Embed);function Embed(t){_classCallCheck(this,Embed);return r.call(this,d,"embed")}return Embed}(c.Option01),oe=function(t){_inherits(Encrypt,t);var r=_createSuper(Encrypt);function Encrypt(t){_classCallCheck(this,Encrypt);return r.call(this,d,"encrypt")}return Encrypt}(c.Option01),se=function(t){_inherits(Encryption,t);var r=_createSuper(Encryption);function Encryption(t){var o;_classCallCheck(this,Encryption);(o=r.call(this,d,"encryption",!0)).encrypt=null;o.encryptionLevel=null;o.permissions=null;return o}return Encryption}(c.XFAObject),le=function(t){_inherits(EncryptionLevel,t);var r=_createSuper(EncryptionLevel);function EncryptionLevel(t){_classCallCheck(this,EncryptionLevel);return r.call(this,d,"encryptionLevel",["40bit","128bit"])}return EncryptionLevel}(c.OptionObject),ce=function(t){_inherits(Enforce,t);var r=_createSuper(Enforce);function Enforce(t){_classCallCheck(this,Enforce);return r.call(this,d,"enforce")}return Enforce}(c.StringObject),ue=function(t){_inherits(Equate,t);var r=_createSuper(Equate);function Equate(t){var o;_classCallCheck(this,Equate);(o=r.call(this,d,"equate")).force=(0,u.getInteger)({data:t.force,defaultValue:1,validate:function validate(t){return 0===t}});o.from=t.from||"";o.to=t.to||"";return o}return Equate}(c.XFAObject),fe=function(t){_inherits(EquateRange,t);var r=_createSuper(EquateRange);function EquateRange(t){var o;_classCallCheck(this,EquateRange);(o=r.call(this,d,"equateRange")).from=t.from||"";o.to=t.to||"";o._unicodeRange=t.unicodeRange||"";return o}_createClass(EquateRange,[{key:"unicodeRange",get:function get(){var t,r=[],o=/U\+([0-9a-fA-F]+)/,l=_createForOfIteratorHelper(this._unicodeRange.split(",").map((function(t){return t.trim()})).filter((function(t){return!!t})));try{for(l.s();!(t=l.n()).done;){var c=t.value;1===(c=c.split("-",2).map((function(t){var r=t.match(o);return r?parseInt(r[1],16):0}))).length&&c.push(c[0]);r.push(c)}}catch(t){l.e(t)}finally{l.f()}return(0,h.shadow)(this,"unicodeRange",r)}}]);return EquateRange}(c.XFAObject),he=function(t){_inherits(Exclude,t);var r=_createSuper(Exclude);function Exclude(t){_classCallCheck(this,Exclude);return r.call(this,d,"exclude")}_createClass(Exclude,[{key:c.$finalize,value:function value(){this[c.$content]=this[c.$content].trim().split(/\s+/).filter((function(t){return t&&["calculate","close","enter","exit","initialize","ready","validate"].includes(t)}))}}]);return Exclude}(c.ContentObject),de=function(t){_inherits(ExcludeNS,t);var r=_createSuper(ExcludeNS);function ExcludeNS(t){_classCallCheck(this,ExcludeNS);return r.call(this,d,"excludeNS")}return ExcludeNS}(c.StringObject),pe=function(t){_inherits(FlipLabel,t);var r=_createSuper(FlipLabel);function FlipLabel(t){_classCallCheck(this,FlipLabel);return r.call(this,d,"flipLabel",["usePrinterSetting","on","off"])}return FlipLabel}(c.OptionObject),me=function(t){_inherits(FontInfo,t);var r=_createSuper(FontInfo);function FontInfo(t){var o;_classCallCheck(this,FontInfo);(o=r.call(this,d,"fontInfo",!0)).embed=null;o.map=null;o.subsetBelow=null;o.alwaysEmbed=new c.XFAObjectArray;o.defaultTypeface=new c.XFAObjectArray;o.neverEmbed=new c.XFAObjectArray;return o}return FontInfo}(c.XFAObject),ge=function(t){_inherits(FormFieldFilling,t);var r=_createSuper(FormFieldFilling);function FormFieldFilling(t){_classCallCheck(this,FormFieldFilling);return r.call(this,d,"formFieldFilling")}return FormFieldFilling}(c.Option01),ye=function(t){_inherits(GroupParent,t);var r=_createSuper(GroupParent);function GroupParent(t){_classCallCheck(this,GroupParent);return r.call(this,d,"groupParent")}return GroupParent}(c.StringObject),ve=function(t){_inherits(IfEmpty,t);var r=_createSuper(IfEmpty);function IfEmpty(t){_classCallCheck(this,IfEmpty);return r.call(this,d,"ifEmpty",["dataValue","dataGroup","ignore","remove"])}return IfEmpty}(c.OptionObject),be=function(t){_inherits(IncludeXDPContent,t);var r=_createSuper(IncludeXDPContent);function IncludeXDPContent(t){_classCallCheck(this,IncludeXDPContent);return r.call(this,d,"includeXDPContent")}return IncludeXDPContent}(c.StringObject),Se=function(t){_inherits(IncrementalLoad,t);var r=_createSuper(IncrementalLoad);function IncrementalLoad(t){_classCallCheck(this,IncrementalLoad);return r.call(this,d,"incrementalLoad",["none","forwardOnly"])}return IncrementalLoad}(c.OptionObject),_e=function(t){_inherits(IncrementalMerge,t);var r=_createSuper(IncrementalMerge);function IncrementalMerge(t){_classCallCheck(this,IncrementalMerge);return r.call(this,d,"incrementalMerge")}return IncrementalMerge}(c.Option01),ke=function(t){_inherits(Interactive,t);var r=_createSuper(Interactive);function Interactive(t){_classCallCheck(this,Interactive);return r.call(this,d,"interactive")}return Interactive}(c.Option01),Ce=function(t){_inherits(Jog,t);var r=_createSuper(Jog);function Jog(t){_classCallCheck(this,Jog);return r.call(this,d,"jog",["usePrinterSetting","none","pageSet"])}return Jog}(c.OptionObject),we=function(t){_inherits(LabelPrinter,t);var r=_createSuper(LabelPrinter);function LabelPrinter(t){var o;_classCallCheck(this,LabelPrinter);(o=r.call(this,d,"labelPrinter",!0)).name=(0,u.getStringOption)(t.name,["zpl","dpl","ipl","tcpl"]);o.batchOutput=null;o.flipLabel=null;o.fontInfo=null;o.xdc=null;return o}return LabelPrinter}(c.XFAObject),Ae=function(t){_inherits(Layout,t);var r=_createSuper(Layout);function Layout(t){_classCallCheck(this,Layout);return r.call(this,d,"layout",["paginate","panel"])}return Layout}(c.OptionObject),xe=function(t){_inherits(Level,t);var r=_createSuper(Level);function Level(t){_classCallCheck(this,Level);return r.call(this,d,"level",0,(function(t){return t>0}))}return Level}(c.IntegerObject),Oe=function(t){_inherits(Linearized,t);var r=_createSuper(Linearized);function Linearized(t){_classCallCheck(this,Linearized);return r.call(this,d,"linearized")}return Linearized}(c.Option01),Pe=function(t){_inherits(Locale,t);var r=_createSuper(Locale);function Locale(t){_classCallCheck(this,Locale);return r.call(this,d,"locale")}return Locale}(c.StringObject),Te=function(t){_inherits(LocaleSet,t);var r=_createSuper(LocaleSet);function LocaleSet(t){_classCallCheck(this,LocaleSet);return r.call(this,d,"localeSet")}return LocaleSet}(c.StringObject),Ie=function(t){_inherits(Log,t);var r=_createSuper(Log);function Log(t){var o;_classCallCheck(this,Log);(o=r.call(this,d,"log",!0)).mode=null;o.threshold=null;o.to=null;o.uri=null;return o}return Log}(c.XFAObject),Fe=function(t){_inherits(MapElement,t);var r=_createSuper(MapElement);function MapElement(t){var o;_classCallCheck(this,MapElement);(o=r.call(this,d,"map",!0)).equate=new c.XFAObjectArray;o.equateRange=new c.XFAObjectArray;return o}return MapElement}(c.XFAObject),Re=function(t){_inherits(MediumInfo,t);var r=_createSuper(MediumInfo);function MediumInfo(t){var o;_classCallCheck(this,MediumInfo);(o=r.call(this,d,"mediumInfo",!0)).map=null;return o}return MediumInfo}(c.XFAObject),Ee=function(t){_inherits(Message,t);var r=_createSuper(Message);function Message(t){var o;_classCallCheck(this,Message);(o=r.call(this,d,"message",!0)).msgId=null;o.severity=null;return o}return Message}(c.XFAObject),Me=function(t){_inherits(Messaging,t);var r=_createSuper(Messaging);function Messaging(t){var o;_classCallCheck(this,Messaging);(o=r.call(this,d,"messaging",!0)).message=new c.XFAObjectArray;return o}return Messaging}(c.XFAObject),Be=function(t){_inherits(Mode,t);var r=_createSuper(Mode);function Mode(t){_classCallCheck(this,Mode);return r.call(this,d,"mode",["append","overwrite"])}return Mode}(c.OptionObject),De=function(t){_inherits(ModifyAnnots,t);var r=_createSuper(ModifyAnnots);function ModifyAnnots(t){_classCallCheck(this,ModifyAnnots);return r.call(this,d,"modifyAnnots")}return ModifyAnnots}(c.Option01),je=function(t){_inherits(MsgId,t);var r=_createSuper(MsgId);function MsgId(t){_classCallCheck(this,MsgId);return r.call(this,d,"msgId",1,(function(t){return t>=1}))}return MsgId}(c.IntegerObject),Le=function(t){_inherits(NameAttr,t);var r=_createSuper(NameAttr);function NameAttr(t){_classCallCheck(this,NameAttr);return r.call(this,d,"nameAttr")}return NameAttr}(c.StringObject),Ne=function(t){_inherits(NeverEmbed,t);var r=_createSuper(NeverEmbed);function NeverEmbed(t){_classCallCheck(this,NeverEmbed);return r.call(this,d,"neverEmbed")}return NeverEmbed}(c.ContentObject),Ue=function(t){_inherits(NumberOfCopies,t);var r=_createSuper(NumberOfCopies);function NumberOfCopies(t){_classCallCheck(this,NumberOfCopies);return r.call(this,d,"numberOfCopies",null,(function(t){return t>=2&&t<=5}))}return NumberOfCopies}(c.IntegerObject),He=function(t){_inherits(OpenAction,t);var r=_createSuper(OpenAction);function OpenAction(t){var o;_classCallCheck(this,OpenAction);(o=r.call(this,d,"openAction",!0)).destination=null;return o}return OpenAction}(c.XFAObject),We=function(t){_inherits(Output,t);var r=_createSuper(Output);function Output(t){var o;_classCallCheck(this,Output);(o=r.call(this,d,"output",!0)).to=null;o.type=null;o.uri=null;return o}return Output}(c.XFAObject),$e=function(t){_inherits(OutputBin,t);var r=_createSuper(OutputBin);function OutputBin(t){_classCallCheck(this,OutputBin);return r.call(this,d,"outputBin")}return OutputBin}(c.StringObject),qe=function(t){_inherits(OutputXSL,t);var r=_createSuper(OutputXSL);function OutputXSL(t){var o;_classCallCheck(this,OutputXSL);(o=r.call(this,d,"outputXSL",!0)).uri=null;return o}return OutputXSL}(c.XFAObject),Xe=function(t){_inherits(Overprint,t);var r=_createSuper(Overprint);function Overprint(t){_classCallCheck(this,Overprint);return r.call(this,d,"overprint",["none","both","draw","field"])}return Overprint}(c.OptionObject),ze=function(t){_inherits(Packets,t);var r=_createSuper(Packets);function Packets(t){_classCallCheck(this,Packets);return r.call(this,d,"packets")}_createClass(Packets,[{key:c.$finalize,value:function value(){"*"!==this[c.$content]&&(this[c.$content]=this[c.$content].trim().split(/\s+/).filter((function(t){return["config","datasets","template","xfdf","xslt"].includes(t)})))}}]);return Packets}(c.StringObject),Ge=function(t){_inherits(PageOffset,t);var r=_createSuper(PageOffset);function PageOffset(t){var o;_classCallCheck(this,PageOffset);(o=r.call(this,d,"pageOffset")).x=(0,u.getInteger)({data:t.x,defaultValue:"useXDCSetting",validate:function validate(t){return!0}});o.y=(0,u.getInteger)({data:t.y,defaultValue:"useXDCSetting",validate:function validate(t){return!0}});return o}return PageOffset}(c.XFAObject),Ve=function(t){_inherits(PageRange,t);var r=_createSuper(PageRange);function PageRange(t){_classCallCheck(this,PageRange);return r.call(this,d,"pageRange")}_createClass(PageRange,[{key:c.$finalize,value:function value(){for(var t=this[c.$content].trim().split(/\s+/).map((function(t){return parseInt(t,10)})),r=[],o=0,l=t.length;o<l;o+=2)r.push(t.slice(o,o+2));this[c.$content]=r}}]);return PageRange}(c.StringObject),Ye=function(t){_inherits(Pagination,t);var r=_createSuper(Pagination);function Pagination(t){_classCallCheck(this,Pagination);return r.call(this,d,"pagination",["simplex","duplexShortEdge","duplexLongEdge"])}return Pagination}(c.OptionObject),Ke=function(t){_inherits(PaginationOverride,t);var r=_createSuper(PaginationOverride);function PaginationOverride(t){_classCallCheck(this,PaginationOverride);return r.call(this,d,"paginationOverride",["none","forceDuplex","forceDuplexLongEdge","forceDuplexShortEdge","forceSimplex"])}return PaginationOverride}(c.OptionObject),Je=function(t){_inherits(Part,t);var r=_createSuper(Part);function Part(t){_classCallCheck(this,Part);return r.call(this,d,"part",1,(function(t){return!1}))}return Part}(c.IntegerObject),Qe=function(t){_inherits(Pcl,t);var r=_createSuper(Pcl);function Pcl(t){var o;_classCallCheck(this,Pcl);(o=r.call(this,d,"pcl",!0)).name=t.name||"";o.batchOutput=null;o.fontInfo=null;o.jog=null;o.mediumInfo=null;o.outputBin=null;o.pageOffset=null;o.staple=null;o.xdc=null;return o}return Pcl}(c.XFAObject),Ze=function(t){_inherits(Pdf,t);var r=_createSuper(Pdf);function Pdf(t){var o;_classCallCheck(this,Pdf);(o=r.call(this,d,"pdf",!0)).name=t.name||"";o.adobeExtensionLevel=null;o.batchOutput=null;o.compression=null;o.creator=null;o.encryption=null;o.fontInfo=null;o.interactive=null;o.linearized=null;o.openAction=null;o.pdfa=null;o.producer=null;o.renderPolicy=null;o.scriptModel=null;o.silentPrint=null;o.submitFormat=null;o.tagged=null;o.version=null;o.viewerPreferences=null;o.xdc=null;return o}return Pdf}(c.XFAObject),et=function(t){_inherits(Pdfa,t);var r=_createSuper(Pdfa);function Pdfa(t){var o;_classCallCheck(this,Pdfa);(o=r.call(this,d,"pdfa",!0)).amd=null;o.conformance=null;o.includeXDPContent=null;o.part=null;return o}return Pdfa}(c.XFAObject),tt=function(t){_inherits(Permissions,t);var r=_createSuper(Permissions);function Permissions(t){var o;_classCallCheck(this,Permissions);(o=r.call(this,d,"permissions",!0)).accessibleContent=null;o.change=null;o.contentCopy=null;o.documentAssembly=null;o.formFieldFilling=null;o.modifyAnnots=null;o.plaintextMetadata=null;o.print=null;o.printHighQuality=null;return o}return Permissions}(c.XFAObject),rt=function(t){_inherits(PickTrayByPDFSize,t);var r=_createSuper(PickTrayByPDFSize);function PickTrayByPDFSize(t){_classCallCheck(this,PickTrayByPDFSize);return r.call(this,d,"pickTrayByPDFSize")}return PickTrayByPDFSize}(c.Option01),at=function(t){_inherits(Picture,t);var r=_createSuper(Picture);function Picture(t){_classCallCheck(this,Picture);return r.call(this,d,"picture")}return Picture}(c.StringObject),nt=function(t){_inherits(PlaintextMetadata,t);var r=_createSuper(PlaintextMetadata);function PlaintextMetadata(t){_classCallCheck(this,PlaintextMetadata);return r.call(this,d,"plaintextMetadata")}return PlaintextMetadata}(c.Option01),it=function(t){_inherits(Presence,t);var r=_createSuper(Presence);function Presence(t){_classCallCheck(this,Presence);return r.call(this,d,"presence",["preserve","dissolve","dissolveStructure","ignore","remove"])}return Presence}(c.OptionObject),ot=function(t){_inherits(Present,t);var r=_createSuper(Present);function Present(t){var o;_classCallCheck(this,Present);(o=r.call(this,d,"present",!0)).behaviorOverride=null;o.cache=null;o.common=null;o.copies=null;o.destination=null;o.incrementalMerge=null;o.layout=null;o.output=null;o.overprint=null;o.pagination=null;o.paginationOverride=null;o.script=null;o.validate=null;o.xdp=null;o.driver=new c.XFAObjectArray;o.labelPrinter=new c.XFAObjectArray;o.pcl=new c.XFAObjectArray;o.pdf=new c.XFAObjectArray;o.ps=new c.XFAObjectArray;o.submitUrl=new c.XFAObjectArray;o.webClient=new c.XFAObjectArray;o.zpl=new c.XFAObjectArray;return o}return Present}(c.XFAObject),st=function(t){_inherits(Print,t);var r=_createSuper(Print);function Print(t){_classCallCheck(this,Print);return r.call(this,d,"print")}return Print}(c.Option01),lt=function(t){_inherits(PrintHighQuality,t);var r=_createSuper(PrintHighQuality);function PrintHighQuality(t){_classCallCheck(this,PrintHighQuality);return r.call(this,d,"printHighQuality")}return PrintHighQuality}(c.Option01),ct=function(t){_inherits(PrintScaling,t);var r=_createSuper(PrintScaling);function PrintScaling(t){_classCallCheck(this,PrintScaling);return r.call(this,d,"printScaling",["appdefault","noScaling"])}return PrintScaling}(c.OptionObject),ut=function(t){_inherits(PrinterName,t);var r=_createSuper(PrinterName);function PrinterName(t){_classCallCheck(this,PrinterName);return r.call(this,d,"printerName")}return PrinterName}(c.StringObject),ft=function(t){_inherits(Producer,t);var r=_createSuper(Producer);function Producer(t){_classCallCheck(this,Producer);return r.call(this,d,"producer")}return Producer}(c.StringObject),ht=function(t){_inherits(Ps,t);var r=_createSuper(Ps);function Ps(t){var o;_classCallCheck(this,Ps);(o=r.call(this,d,"ps",!0)).name=t.name||"";o.batchOutput=null;o.fontInfo=null;o.jog=null;o.mediumInfo=null;o.outputBin=null;o.staple=null;o.xdc=null;return o}return Ps}(c.XFAObject),dt=function(t){_inherits(Range,t);var r=_createSuper(Range);function Range(t){_classCallCheck(this,Range);return r.call(this,d,"range")}_createClass(Range,[{key:c.$finalize,value:function value(){this[c.$content]=this[c.$content].trim().split(/\s*,\s*/,2).map((function(t){return t.split("-").map((function(t){return parseInt(t.trim(),10)}))})).filter((function(t){return t.every((function(t){return!isNaN(t)}))})).map((function(t){1===t.length&&t.push(t[0]);return t}))}}]);return Range}(c.ContentObject),mt=function(t){_inherits(Record,t);var r=_createSuper(Record);function Record(t){_classCallCheck(this,Record);return r.call(this,d,"record")}_createClass(Record,[{key:c.$finalize,value:function value(){this[c.$content]=this[c.$content].trim();var t=parseInt(this[c.$content],10);!isNaN(t)&&t>=0&&(this[c.$content]=t)}}]);return Record}(c.ContentObject),gt=function(t){_inherits(Relevant,t);var r=_createSuper(Relevant);function Relevant(t){_classCallCheck(this,Relevant);return r.call(this,d,"relevant")}_createClass(Relevant,[{key:c.$finalize,value:function value(){this[c.$content]=this[c.$content].trim().split(/\s+/)}}]);return Relevant}(c.ContentObject),yt=function(t){_inherits(Rename,t);var r=_createSuper(Rename);function Rename(t){_classCallCheck(this,Rename);return r.call(this,d,"rename")}_createClass(Rename,[{key:c.$finalize,value:function value(){this[c.$content]=this[c.$content].trim();(this[c.$content].toLowerCase().startsWith("xml")||this[c.$content].match(new RegExp("[\\p{L}_][\\p{L}\\d._\\p{M}-]*","u")))&&(0,h.warn)("XFA - Rename: invalid XFA name")}}]);return Rename}(c.ContentObject),vt=function(t){_inherits(RenderPolicy,t);var r=_createSuper(RenderPolicy);function RenderPolicy(t){_classCallCheck(this,RenderPolicy);return r.call(this,d,"renderPolicy",["server","client"])}return RenderPolicy}(c.OptionObject),bt=function(t){_inherits(RunScripts,t);var r=_createSuper(RunScripts);function RunScripts(t){_classCallCheck(this,RunScripts);return r.call(this,d,"runScripts",["both","client","none","server"])}return RunScripts}(c.OptionObject),St=function(t){_inherits(Script,t);var r=_createSuper(Script);function Script(t){var o;_classCallCheck(this,Script);(o=r.call(this,d,"script",!0)).currentPage=null;o.exclude=null;o.runScripts=null;return o}return Script}(c.XFAObject),_t=function(t){_inherits(ScriptModel,t);var r=_createSuper(ScriptModel);function ScriptModel(t){_classCallCheck(this,ScriptModel);return r.call(this,d,"scriptModel",["XFA","none"])}return ScriptModel}(c.OptionObject),kt=function(t){_inherits(Severity,t);var r=_createSuper(Severity);function Severity(t){_classCallCheck(this,Severity);return r.call(this,d,"severity",["ignore","error","information","trace","warning"])}return Severity}(c.OptionObject),Ct=function(t){_inherits(SilentPrint,t);var r=_createSuper(SilentPrint);function SilentPrint(t){var o;_classCallCheck(this,SilentPrint);(o=r.call(this,d,"silentPrint",!0)).addSilentPrint=null;o.printerName=null;return o}return SilentPrint}(c.XFAObject),wt=function(t){_inherits(Staple,t);var r=_createSuper(Staple);function Staple(t){var o;_classCallCheck(this,Staple);(o=r.call(this,d,"staple")).mode=(0,u.getStringOption)(t.mode,["usePrinterSetting","on","off"]);return o}return Staple}(c.XFAObject),At=function(t){_inherits(StartNode,t);var r=_createSuper(StartNode);function StartNode(t){_classCallCheck(this,StartNode);return r.call(this,d,"startNode")}return StartNode}(c.StringObject),xt=function(t){_inherits(StartPage,t);var r=_createSuper(StartPage);function StartPage(t){_classCallCheck(this,StartPage);return r.call(this,d,"startPage",0,(function(t){return!0}))}return StartPage}(c.IntegerObject),Ot=function(t){_inherits(SubmitFormat,t);var r=_createSuper(SubmitFormat);function SubmitFormat(t){_classCallCheck(this,SubmitFormat);return r.call(this,d,"submitFormat",["html","delegate","fdf","xml","pdf"])}return SubmitFormat}(c.OptionObject),Pt=function(t){_inherits(SubmitUrl,t);var r=_createSuper(SubmitUrl);function SubmitUrl(t){_classCallCheck(this,SubmitUrl);return r.call(this,d,"submitUrl")}return SubmitUrl}(c.StringObject),Tt=function(t){_inherits(SubsetBelow,t);var r=_createSuper(SubsetBelow);function SubsetBelow(t){_classCallCheck(this,SubsetBelow);return r.call(this,d,"subsetBelow",100,(function(t){return t>=0&&t<=100}))}return SubsetBelow}(c.IntegerObject),It=function(t){_inherits(SuppressBanner,t);var r=_createSuper(SuppressBanner);function SuppressBanner(t){_classCallCheck(this,SuppressBanner);return r.call(this,d,"suppressBanner")}return SuppressBanner}(c.Option01),Ft=function(t){_inherits(Tagged,t);var r=_createSuper(Tagged);function Tagged(t){_classCallCheck(this,Tagged);return r.call(this,d,"tagged")}return Tagged}(c.Option01),Rt=function(t){_inherits(Template,t);var r=_createSuper(Template);function Template(t){var o;_classCallCheck(this,Template);(o=r.call(this,d,"template",!0)).base=null;o.relevant=null;o.startPage=null;o.uri=null;o.xsl=null;return o}return Template}(c.XFAObject),Et=function(t){_inherits(Threshold,t);var r=_createSuper(Threshold);function Threshold(t){_classCallCheck(this,Threshold);return r.call(this,d,"threshold",["trace","error","information","warning"])}return Threshold}(c.OptionObject),Mt=function(t){_inherits(To,t);var r=_createSuper(To);function To(t){_classCallCheck(this,To);return r.call(this,d,"to",["null","memory","stderr","stdout","system","uri"])}return To}(c.OptionObject),Bt=function(t){_inherits(TemplateCache,t);var r=_createSuper(TemplateCache);function TemplateCache(t){var o;_classCallCheck(this,TemplateCache);(o=r.call(this,d,"templateCache")).maxEntries=(0,u.getInteger)({data:t.maxEntries,defaultValue:5,validate:function validate(t){return t>=0}});return o}return TemplateCache}(c.XFAObject),Dt=function(t){_inherits(Trace,t);var r=_createSuper(Trace);function Trace(t){var o;_classCallCheck(this,Trace);(o=r.call(this,d,"trace",!0)).area=new c.XFAObjectArray;return o}return Trace}(c.XFAObject),jt=function(t){_inherits(Transform,t);var r=_createSuper(Transform);function Transform(t){var o;_classCallCheck(this,Transform);(o=r.call(this,d,"transform",!0)).groupParent=null;o.ifEmpty=null;o.nameAttr=null;o.picture=null;o.presence=null;o.rename=null;o.whitespace=null;return o}return Transform}(c.XFAObject),Lt=function(t){_inherits(Type,t);var r=_createSuper(Type);function Type(t){_classCallCheck(this,Type);return r.call(this,d,"type",["none","ascii85","asciiHex","ccittfax","flate","lzw","runLength","native","xdp","mergedXDP"])}return Type}(c.OptionObject),Nt=function(t){_inherits(Uri,t);var r=_createSuper(Uri);function Uri(t){_classCallCheck(this,Uri);return r.call(this,d,"uri")}return Uri}(c.StringObject),Ut=function(t){_inherits(Validate,t);var r=_createSuper(Validate);function Validate(t){_classCallCheck(this,Validate);return r.call(this,d,"validate",["preSubmit","prePrint","preExecute","preSave"])}return Validate}(c.OptionObject),Ht=function(t){_inherits(ValidateApprovalSignatures,t);var r=_createSuper(ValidateApprovalSignatures);function ValidateApprovalSignatures(t){_classCallCheck(this,ValidateApprovalSignatures);return r.call(this,d,"validateApprovalSignatures")}_createClass(ValidateApprovalSignatures,[{key:c.$finalize,value:function value(){this[c.$content]=this[c.$content].trim().split(/\s+/).filter((function(t){return["docReady","postSign"].includes(t)}))}}]);return ValidateApprovalSignatures}(c.ContentObject),Wt=function(t){_inherits(ValidationMessaging,t);var r=_createSuper(ValidationMessaging);function ValidationMessaging(t){_classCallCheck(this,ValidationMessaging);return r.call(this,d,"validationMessaging",["allMessagesIndividually","allMessagesTogether","firstMessageOnly","noMessages"])}return ValidationMessaging}(c.OptionObject),$t=function(t){_inherits(Version,t);var r=_createSuper(Version);function Version(t){_classCallCheck(this,Version);return r.call(this,d,"version",["1.7","1.6","1.5","1.4","1.3","1.2"])}return Version}(c.OptionObject),qt=function(t){_inherits(VersionControl,t);var r=_createSuper(VersionControl);function VersionControl(t){var o;_classCallCheck(this,VersionControl);(o=r.call(this,d,"VersionControl")).outputBelow=(0,u.getStringOption)(t.outputBelow,["warn","error","update"]);o.sourceAbove=(0,u.getStringOption)(t.sourceAbove,["warn","error"]);o.sourceBelow=(0,u.getStringOption)(t.sourceBelow,["update","maintain"]);return o}return VersionControl}(c.XFAObject),Xt=function(t){_inherits(ViewerPreferences,t);var r=_createSuper(ViewerPreferences);function ViewerPreferences(t){var o;_classCallCheck(this,ViewerPreferences);(o=r.call(this,d,"viewerPreferences",!0)).ADBE_JSConsole=null;o.ADBE_JSDebugger=null;o.addViewerPreferences=null;o.duplexOption=null;o.enforce=null;o.numberOfCopies=null;o.pageRange=null;o.pickTrayByPDFSize=null;o.printScaling=null;return o}return ViewerPreferences}(c.XFAObject),zt=function(t){_inherits(WebClient,t);var r=_createSuper(WebClient);function WebClient(t){var o;_classCallCheck(this,WebClient);(o=r.call(this,d,"webClient",!0)).name=t.name?t.name.trim():"";o.fontInfo=null;o.xdc=null;return o}return WebClient}(c.XFAObject),Gt=function(t){_inherits(Whitespace,t);var r=_createSuper(Whitespace);function Whitespace(t){_classCallCheck(this,Whitespace);return r.call(this,d,"whitespace",["preserve","ltrim","normalize","rtrim","trim"])}return Whitespace}(c.OptionObject),Vt=function(t){_inherits(Window,t);var r=_createSuper(Window);function Window(t){_classCallCheck(this,Window);return r.call(this,d,"window")}_createClass(Window,[{key:c.$finalize,value:function value(){var t=this[c.$content].trim().split(/\s*,\s*/,2).map((function(t){return parseInt(t,10)}));if(t.some((function(t){return isNaN(t)})))this[c.$content]=[0,0];else{1===t.length&&t.push(t[0]);this[c.$content]=t}}}]);return Window}(c.ContentObject),Yt=function(t){_inherits(Xdc,t);var r=_createSuper(Xdc);function Xdc(t){var o;_classCallCheck(this,Xdc);(o=r.call(this,d,"xdc",!0)).uri=new c.XFAObjectArray;o.xsl=new c.XFAObjectArray;return o}return Xdc}(c.XFAObject),Kt=function(t){_inherits(Xdp,t);var r=_createSuper(Xdp);function Xdp(t){var o;_classCallCheck(this,Xdp);(o=r.call(this,d,"xdp",!0)).packets=null;return o}return Xdp}(c.XFAObject),Jt=function(t){_inherits(Xsl,t);var r=_createSuper(Xsl);function Xsl(t){var o;_classCallCheck(this,Xsl);(o=r.call(this,d,"xsl",!0)).debug=null;o.uri=null;return o}return Xsl}(c.XFAObject),Qt=function(t){_inherits(Zpl,t);var r=_createSuper(Zpl);function Zpl(t){var o;_classCallCheck(this,Zpl);(o=r.call(this,d,"zpl",!0)).name=t.name?t.name.trim():"";o.batchOutput=null;o.flipLabel=null;o.fontInfo=null;o.xdc=null;return o}return Zpl}(c.XFAObject),Zt=function(){function ConfigNamespace(){_classCallCheck(this,ConfigNamespace)}_createClass(ConfigNamespace,null,[{key:l.$buildXFAObject,value:function value(t,r){if(ConfigNamespace.hasOwnProperty(t))return ConfigNamespace[t](r)}},{key:"acrobat",value:function acrobat(t){return new m(t)}},{key:"acrobat7",value:function acrobat7(t){return new g(t)}},{key:"ADBE_JSConsole",value:function ADBE_JSConsole(t){return new y(t)}},{key:"ADBE_JSDebugger",value:function ADBE_JSDebugger(t){return new v(t)}},{key:"addSilentPrint",value:function addSilentPrint(t){return new S(t)}},{key:"addViewerPreferences",value:function addViewerPreferences(t){return new _(t)}},{key:"adjustData",value:function adjustData(t){return new k(t)}},{key:"adobeExtensionLevel",value:function adobeExtensionLevel(t){return new C(t)}},{key:"agent",value:function agent(t){return new w(t)}},{key:"alwaysEmbed",value:function alwaysEmbed(t){return new x(t)}},{key:"amd",value:function amd(t){return new O(t)}},{key:"area",value:function area(t){return new T(t)}},{key:"attributes",value:function attributes(t){return new R(t)}},{key:"autoSave",value:function autoSave(t){return new E(t)}},{key:"base",value:function base(t){return new M(t)}},{key:"batchOutput",value:function batchOutput(t){return new D(t)}},{key:"behaviorOverride",value:function behaviorOverride(t){return new j(t)}},{key:"cache",value:function cache(t){return new L(t)}},{key:"change",value:function change(t){return new N(t)}},{key:"common",value:function common(t){return new U(t)}},{key:"compress",value:function compress(t){return new H(t)}},{key:"compressLogicalStructure",value:function compressLogicalStructure(t){return new W(t)}},{key:"compressObjectStream",value:function compressObjectStream(t){return new $(t)}},{key:"compression",value:function compression(t){return new q(t)}},{key:"config",value:function config(t){return new X(t)}},{key:"conformance",value:function conformance(t){return new z(t)}},{key:"contentCopy",value:function contentCopy(t){return new G(t)}},{key:"copies",value:function copies(t){return new V(t)}},{key:"creator",value:function creator(t){return new Y(t)}},{key:"currentPage",value:function currentPage(t){return new K(t)}},{key:"data",value:function data(t){return new J(t)}},{key:"debug",value:function debug(t){return new Q(t)}},{key:"defaultTypeface",value:function defaultTypeface(t){return new Z(t)}},{key:"destination",value:function destination(t){return new ee(t)}},{key:"documentAssembly",value:function documentAssembly(t){return new te(t)}},{key:"driver",value:function driver(t){return new re(t)}},{key:"duplexOption",value:function duplexOption(t){return new ae(t)}},{key:"dynamicRender",value:function dynamicRender(t){return new ne(t)}},{key:"embed",value:function embed(t){return new ie(t)}},{key:"encrypt",value:function encrypt(t){return new oe(t)}},{key:"encryption",value:function encryption(t){return new se(t)}},{key:"encryptionLevel",value:function encryptionLevel(t){return new le(t)}},{key:"enforce",value:function enforce(t){return new ce(t)}},{key:"equate",value:function equate(t){return new ue(t)}},{key:"equateRange",value:function equateRange(t){return new fe(t)}},{key:"exclude",value:function exclude(t){return new he(t)}},{key:"excludeNS",value:function excludeNS(t){return new de(t)}},{key:"flipLabel",value:function flipLabel(t){return new pe(t)}},{key:"fontInfo",value:function fontInfo(t){return new me(t)}},{key:"formFieldFilling",value:function formFieldFilling(t){return new ge(t)}},{key:"groupParent",value:function groupParent(t){return new ye(t)}},{key:"ifEmpty",value:function ifEmpty(t){return new ve(t)}},{key:"includeXDPContent",value:function includeXDPContent(t){return new be(t)}},{key:"incrementalLoad",value:function incrementalLoad(t){return new Se(t)}},{key:"incrementalMerge",value:function incrementalMerge(t){return new _e(t)}},{key:"interactive",value:function interactive(t){return new ke(t)}},{key:"jog",value:function jog(t){return new Ce(t)}},{key:"labelPrinter",value:function labelPrinter(t){return new we(t)}},{key:"layout",value:function layout(t){return new Ae(t)}},{key:"level",value:function level(t){return new xe(t)}},{key:"linearized",value:function linearized(t){return new Oe(t)}},{key:"locale",value:function locale(t){return new Pe(t)}},{key:"localeSet",value:function localeSet(t){return new Te(t)}},{key:"log",value:function log(t){return new Ie(t)}},{key:"map",value:function map(t){return new Fe(t)}},{key:"mediumInfo",value:function mediumInfo(t){return new Re(t)}},{key:"message",value:function message(t){return new Ee(t)}},{key:"messaging",value:function messaging(t){return new Me(t)}},{key:"mode",value:function mode(t){return new Be(t)}},{key:"modifyAnnots",value:function modifyAnnots(t){return new De(t)}},{key:"msgId",value:function msgId(t){return new je(t)}},{key:"nameAttr",value:function nameAttr(t){return new Le(t)}},{key:"neverEmbed",value:function neverEmbed(t){return new Ne(t)}},{key:"numberOfCopies",value:function numberOfCopies(t){return new Ue(t)}},{key:"openAction",value:function openAction(t){return new He(t)}},{key:"output",value:function output(t){return new We(t)}},{key:"outputBin",value:function outputBin(t){return new $e(t)}},{key:"outputXSL",value:function outputXSL(t){return new qe(t)}},{key:"overprint",value:function overprint(t){return new Xe(t)}},{key:"packets",value:function packets(t){return new ze(t)}},{key:"pageOffset",value:function pageOffset(t){return new Ge(t)}},{key:"pageRange",value:function pageRange(t){return new Ve(t)}},{key:"pagination",value:function pagination(t){return new Ye(t)}},{key:"paginationOverride",value:function paginationOverride(t){return new Ke(t)}},{key:"part",value:function part(t){return new Je(t)}},{key:"pcl",value:function pcl(t){return new Qe(t)}},{key:"pdf",value:function pdf(t){return new Ze(t)}},{key:"pdfa",value:function pdfa(t){return new et(t)}},{key:"permissions",value:function permissions(t){return new tt(t)}},{key:"pickTrayByPDFSize",value:function pickTrayByPDFSize(t){return new rt(t)}},{key:"picture",value:function picture(t){return new at(t)}},{key:"plaintextMetadata",value:function plaintextMetadata(t){return new nt(t)}},{key:"presence",value:function presence(t){return new it(t)}},{key:"present",value:function present(t){return new ot(t)}},{key:"print",value:function print(t){return new st(t)}},{key:"printHighQuality",value:function printHighQuality(t){return new lt(t)}},{key:"printScaling",value:function printScaling(t){return new ct(t)}},{key:"printerName",value:function printerName(t){return new ut(t)}},{key:"producer",value:function producer(t){return new ft(t)}},{key:"ps",value:function ps(t){return new ht(t)}},{key:"range",value:function range(t){return new dt(t)}},{key:"record",value:function record(t){return new mt(t)}},{key:"relevant",value:function relevant(t){return new gt(t)}},{key:"rename",value:function rename(t){return new yt(t)}},{key:"renderPolicy",value:function renderPolicy(t){return new vt(t)}},{key:"runScripts",value:function runScripts(t){return new bt(t)}},{key:"script",value:function script(t){return new St(t)}},{key:"scriptModel",value:function scriptModel(t){return new _t(t)}},{key:"severity",value:function severity(t){return new kt(t)}},{key:"silentPrint",value:function silentPrint(t){return new Ct(t)}},{key:"staple",value:function staple(t){return new wt(t)}},{key:"startNode",value:function startNode(t){return new At(t)}},{key:"startPage",value:function startPage(t){return new xt(t)}},{key:"submitFormat",value:function submitFormat(t){return new Ot(t)}},{key:"submitUrl",value:function submitUrl(t){return new Pt(t)}},{key:"subsetBelow",value:function subsetBelow(t){return new Tt(t)}},{key:"suppressBanner",value:function suppressBanner(t){return new It(t)}},{key:"tagged",value:function tagged(t){return new Ft(t)}},{key:"template",value:function template(t){return new Rt(t)}},{key:"templateCache",value:function templateCache(t){return new Bt(t)}},{key:"threshold",value:function threshold(t){return new Et(t)}},{key:"to",value:function to(t){return new Mt(t)}},{key:"trace",value:function trace(t){return new Dt(t)}},{key:"transform",value:function transform(t){return new jt(t)}},{key:"type",value:function type(t){return new Lt(t)}},{key:"uri",value:function uri(t){return new Nt(t)}},{key:"validate",value:function validate(t){return new Ut(t)}},{key:"validateApprovalSignatures",value:function validateApprovalSignatures(t){return new Ht(t)}},{key:"validationMessaging",value:function validationMessaging(t){return new Wt(t)}},{key:"version",value:function version(t){return new $t(t)}},{key:"versionControl",value:function versionControl(t){return new qt(t)}},{key:"viewerPreferences",value:function viewerPreferences(t){return new Xt(t)}},{key:"webClient",value:function webClient(t){return new zt(t)}},{key:"whitespace",value:function whitespace(t){return new Gt(t)}},{key:"window",value:function window(t){return new Vt(t)}},{key:"xdc",value:function xdc(t){return new Yt(t)}},{key:"xdp",value:function xdp(t){return new Kt(t)}},{key:"xsl",value:function xsl(t){return new Jt(t)}},{key:"zpl",value:function zpl(t){return new Qt(t)}}]);return ConfigNamespace}();r.ConfigNamespace=Zt},(t,r,o)=>{"use strict";function _typeof(t){_typeof="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function _typeof(t){return typeof t}:function _typeof(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t};return _typeof(t)}Object.defineProperty(r,"__esModule",{value:!0});r.ConnectionSetNamespace=void 0;var l=o(190),c=o(188);function _defineProperties(t,r){for(var o=0;o<r.length;o++){var l=r[o];l.enumerable=l.enumerable||!1;l.configurable=!0;"value"in l&&(l.writable=!0);Object.defineProperty(t,l.key,l)}}function _classCallCheck(t,r){if(!(t instanceof r))throw new TypeError("Cannot call a class as a function")}function _inherits(t,r){if("function"!=typeof r&&null!==r)throw new TypeError("Super expression must either be null or a function");t.prototype=Object.create(r&&r.prototype,{constructor:{value:t,writable:!0,configurable:!0}});r&&_setPrototypeOf(t,r)}function _setPrototypeOf(t,r){_setPrototypeOf=Object.setPrototypeOf||function _setPrototypeOf(t,r){t.__proto__=r;return t};return _setPrototypeOf(t,r)}function _createSuper(t){var r=function _isNativeReflectConstruct(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){})));return!0}catch(t){return!1}}();return function _createSuperInternal(){var o,l=_getPrototypeOf(t);if(r){var c=_getPrototypeOf(this).constructor;o=Reflect.construct(l,arguments,c)}else o=l.apply(this,arguments);return _possibleConstructorReturn(this,o)}}function _possibleConstructorReturn(t,r){if(r&&("object"===_typeof(r)||"function"==typeof r))return r;if(void 0!==r)throw new TypeError("Derived constructors may only return object or undefined");return function _assertThisInitialized(t){if(void 0===t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return t}(t)}function _getPrototypeOf(t){_getPrototypeOf=Object.setPrototypeOf?Object.getPrototypeOf:function _getPrototypeOf(t){return t.__proto__||Object.getPrototypeOf(t)};return _getPrototypeOf(t)}var u=l.NamespaceIds.connectionSet.id,h=function(t){_inherits(ConnectionSet,t);var r=_createSuper(ConnectionSet);function ConnectionSet(t){var o;_classCallCheck(this,ConnectionSet);(o=r.call(this,u,"connectionSet",!0)).wsdlConnection=new c.XFAObjectArray;o.xmlConnection=new c.XFAObjectArray;o.xsdConnection=new c.XFAObjectArray;return o}return ConnectionSet}(c.XFAObject),d=function(t){_inherits(EffectiveInputPolicy,t);var r=_createSuper(EffectiveInputPolicy);function EffectiveInputPolicy(t){var o;_classCallCheck(this,EffectiveInputPolicy);(o=r.call(this,u,"effectiveInputPolicy")).id=t.id||"";o.name=t.name||"";o.use=t.use||"";o.usehref=t.usehref||"";return o}return EffectiveInputPolicy}(c.XFAObject),m=function(t){_inherits(EffectiveOutputPolicy,t);var r=_createSuper(EffectiveOutputPolicy);function EffectiveOutputPolicy(t){var o;_classCallCheck(this,EffectiveOutputPolicy);(o=r.call(this,u,"effectiveOutputPolicy")).id=t.id||"";o.name=t.name||"";o.use=t.use||"";o.usehref=t.usehref||"";return o}return EffectiveOutputPolicy}(c.XFAObject),g=function(t){_inherits(Operation,t);var r=_createSuper(Operation);function Operation(t){var o;_classCallCheck(this,Operation);(o=r.call(this,u,"operation")).id=t.id||"";o.input=t.input||"";o.name=t.name||"";o.output=t.output||"";o.use=t.use||"";o.usehref=t.usehref||"";return o}return Operation}(c.StringObject),y=function(t){_inherits(RootElement,t);var r=_createSuper(RootElement);function RootElement(t){var o;_classCallCheck(this,RootElement);(o=r.call(this,u,"rootElement")).id=t.id||"";o.name=t.name||"";o.use=t.use||"";o.usehref=t.usehref||"";return o}return RootElement}(c.StringObject),v=function(t){_inherits(SoapAction,t);var r=_createSuper(SoapAction);function SoapAction(t){var o;_classCallCheck(this,SoapAction);(o=r.call(this,u,"soapAction")).id=t.id||"";o.name=t.name||"";o.use=t.use||"";o.usehref=t.usehref||"";return o}return SoapAction}(c.StringObject),S=function(t){_inherits(SoapAddress,t);var r=_createSuper(SoapAddress);function SoapAddress(t){var o;_classCallCheck(this,SoapAddress);(o=r.call(this,u,"soapAddress")).id=t.id||"";o.name=t.name||"";o.use=t.use||"";o.usehref=t.usehref||"";return o}return SoapAddress}(c.StringObject),_=function(t){_inherits(Uri,t);var r=_createSuper(Uri);function Uri(t){var o;_classCallCheck(this,Uri);(o=r.call(this,u,"uri")).id=t.id||"";o.name=t.name||"";o.use=t.use||"";o.usehref=t.usehref||"";return o}return Uri}(c.StringObject),k=function(t){_inherits(WsdlAddress,t);var r=_createSuper(WsdlAddress);function WsdlAddress(t){var o;_classCallCheck(this,WsdlAddress);(o=r.call(this,u,"wsdlAddress")).id=t.id||"";o.name=t.name||"";o.use=t.use||"";o.usehref=t.usehref||"";return o}return WsdlAddress}(c.StringObject),C=function(t){_inherits(WsdlConnection,t);var r=_createSuper(WsdlConnection);function WsdlConnection(t){var o;_classCallCheck(this,WsdlConnection);(o=r.call(this,u,"wsdlConnection",!0)).dataDescription=t.dataDescription||"";o.name=t.name||"";o.effectiveInputPolicy=null;o.effectiveOutputPolicy=null;o.operation=null;o.soapAction=null;o.soapAddress=null;o.wsdlAddress=null;return o}return WsdlConnection}(c.XFAObject),w=function(t){_inherits(XmlConnection,t);var r=_createSuper(XmlConnection);function XmlConnection(t){var o;_classCallCheck(this,XmlConnection);(o=r.call(this,u,"xmlConnection",!0)).dataDescription=t.dataDescription||"";o.name=t.name||"";o.uri=null;return o}return XmlConnection}(c.XFAObject),x=function(t){_inherits(XsdConnection,t);var r=_createSuper(XsdConnection);function XsdConnection(t){var o;_classCallCheck(this,XsdConnection);(o=r.call(this,u,"xsdConnection",!0)).dataDescription=t.dataDescription||"";o.name=t.name||"";o.rootElement=null;o.uri=null;return o}return XsdConnection}(c.XFAObject),O=function(){function ConnectionSetNamespace(){_classCallCheck(this,ConnectionSetNamespace)}!function _createClass(t,r,o){r&&_defineProperties(t.prototype,r);o&&_defineProperties(t,o);return t}(ConnectionSetNamespace,null,[{key:l.$buildXFAObject,value:function value(t,r){if(ConnectionSetNamespace.hasOwnProperty(t))return ConnectionSetNamespace[t](r)}},{key:"connectionSet",value:function connectionSet(t){return new h(t)}},{key:"effectiveInputPolicy",value:function effectiveInputPolicy(t){return new d(t)}},{key:"effectiveOutputPolicy",value:function effectiveOutputPolicy(t){return new m(t)}},{key:"operation",value:function operation(t){return new g(t)}},{key:"rootElement",value:function rootElement(t){return new y(t)}},{key:"soapAction",value:function soapAction(t){return new v(t)}},{key:"soapAddress",value:function soapAddress(t){return new S(t)}},{key:"uri",value:function uri(t){return new _(t)}},{key:"wsdlAddress",value:function wsdlAddress(t){return new k(t)}},{key:"wsdlConnection",value:function wsdlConnection(t){return new C(t)}},{key:"xmlConnection",value:function xmlConnection(t){return new w(t)}},{key:"xsdConnection",value:function xsdConnection(t){return new x(t)}}]);return ConnectionSetNamespace}();r.ConnectionSetNamespace=O},(t,r,o)=>{"use strict";function _typeof(t){_typeof="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function _typeof(t){return typeof t}:function _typeof(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t};return _typeof(t)}Object.defineProperty(r,"__esModule",{value:!0});r.DatasetsNamespace=void 0;var l=o(188),c=o(190);function _classCallCheck(t,r){if(!(t instanceof r))throw new TypeError("Cannot call a class as a function")}function _defineProperties(t,r){for(var o=0;o<r.length;o++){var l=r[o];l.enumerable=l.enumerable||!1;l.configurable=!0;"value"in l&&(l.writable=!0);Object.defineProperty(t,l.key,l)}}function _createClass(t,r,o){r&&_defineProperties(t.prototype,r);o&&_defineProperties(t,o);return t}function _inherits(t,r){if("function"!=typeof r&&null!==r)throw new TypeError("Super expression must either be null or a function");t.prototype=Object.create(r&&r.prototype,{constructor:{value:t,writable:!0,configurable:!0}});r&&_setPrototypeOf(t,r)}function _setPrototypeOf(t,r){_setPrototypeOf=Object.setPrototypeOf||function _setPrototypeOf(t,r){t.__proto__=r;return t};return _setPrototypeOf(t,r)}function _createSuper(t){var r=function _isNativeReflectConstruct(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){})));return!0}catch(t){return!1}}();return function _createSuperInternal(){var o,l=_getPrototypeOf(t);if(r){var c=_getPrototypeOf(this).constructor;o=Reflect.construct(l,arguments,c)}else o=l.apply(this,arguments);return _possibleConstructorReturn(this,o)}}function _possibleConstructorReturn(t,r){if(r&&("object"===_typeof(r)||"function"==typeof r))return r;if(void 0!==r)throw new TypeError("Derived constructors may only return object or undefined");return function _assertThisInitialized(t){if(void 0===t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return t}(t)}function _getPrototypeOf(t){_getPrototypeOf=Object.setPrototypeOf?Object.getPrototypeOf:function _getPrototypeOf(t){return t.__proto__||Object.getPrototypeOf(t)};return _getPrototypeOf(t)}var u=c.NamespaceIds.datasets.id,h=function(t){_inherits(Data,t);var r=_createSuper(Data);function Data(t){_classCallCheck(this,Data);return r.call(this,u,"data",t)}_createClass(Data,[{key:l.$isNsAgnostic,value:function value(){return!0}}]);return Data}(l.XmlObject),d=function(t){_inherits(Datasets,t);var r=_createSuper(Datasets);function Datasets(t){var o;_classCallCheck(this,Datasets);(o=r.call(this,u,"datasets",!0)).data=null;o.Signature=null;return o}_createClass(Datasets,[{key:l.$onChild,value:function value(t){var r=t[l.$nodeName];("data"===r&&t[l.$namespaceId]===u||"Signature"===r&&t[l.$namespaceId]===c.NamespaceIds.signature.id)&&(this[r]=t);this[l.$appendChild](t)}}]);return Datasets}(l.XFAObject),m=function(){function DatasetsNamespace(){_classCallCheck(this,DatasetsNamespace)}_createClass(DatasetsNamespace,null,[{key:c.$buildXFAObject,value:function value(t,r){if(DatasetsNamespace.hasOwnProperty(t))return DatasetsNamespace[t](r)}},{key:"datasets",value:function datasets(t){return new d(t)}},{key:"data",value:function data(t){return new h(t)}}]);return DatasetsNamespace}();r.DatasetsNamespace=m},(t,r,o)=>{"use strict";function _typeof(t){_typeof="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function _typeof(t){return typeof t}:function _typeof(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t};return _typeof(t)}Object.defineProperty(r,"__esModule",{value:!0});r.LocaleSetNamespace=void 0;var l=o(190),c=o(188),u=o(189);function _defineProperties(t,r){for(var o=0;o<r.length;o++){var l=r[o];l.enumerable=l.enumerable||!1;l.configurable=!0;"value"in l&&(l.writable=!0);Object.defineProperty(t,l.key,l)}}function _classCallCheck(t,r){if(!(t instanceof r))throw new TypeError("Cannot call a class as a function")}function _inherits(t,r){if("function"!=typeof r&&null!==r)throw new TypeError("Super expression must either be null or a function");t.prototype=Object.create(r&&r.prototype,{constructor:{value:t,writable:!0,configurable:!0}});r&&_setPrototypeOf(t,r)}function _setPrototypeOf(t,r){_setPrototypeOf=Object.setPrototypeOf||function _setPrototypeOf(t,r){t.__proto__=r;return t};return _setPrototypeOf(t,r)}function _createSuper(t){var r=function _isNativeReflectConstruct(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){})));return!0}catch(t){return!1}}();return function _createSuperInternal(){var o,l=_getPrototypeOf(t);if(r){var c=_getPrototypeOf(this).constructor;o=Reflect.construct(l,arguments,c)}else o=l.apply(this,arguments);return _possibleConstructorReturn(this,o)}}function _possibleConstructorReturn(t,r){if(r&&("object"===_typeof(r)||"function"==typeof r))return r;if(void 0!==r)throw new TypeError("Derived constructors may only return object or undefined");return function _assertThisInitialized(t){if(void 0===t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return t}(t)}function _getPrototypeOf(t){_getPrototypeOf=Object.setPrototypeOf?Object.getPrototypeOf:function _getPrototypeOf(t){return t.__proto__||Object.getPrototypeOf(t)};return _getPrototypeOf(t)}var h=l.NamespaceIds.localeSet.id,d=function(t){_inherits(CalendarSymbols,t);var r=_createSuper(CalendarSymbols);function CalendarSymbols(t){var o;_classCallCheck(this,CalendarSymbols);(o=r.call(this,h,"calendarSymbols",!0)).name="gregorian";o.dayNames=new c.XFAObjectArray(2);o.eraNames=null;o.meridiemNames=null;o.monthNames=new c.XFAObjectArray(2);return o}return CalendarSymbols}(c.XFAObject),m=function(t){_inherits(CurrencySymbol,t);var r=_createSuper(CurrencySymbol);function CurrencySymbol(t){var o;_classCallCheck(this,CurrencySymbol);(o=r.call(this,h,"currencySymbol")).name=(0,u.getStringOption)(t.name,["symbol","isoname","decimal"]);return o}return CurrencySymbol}(c.StringObject),g=function(t){_inherits(CurrencySymbols,t);var r=_createSuper(CurrencySymbols);function CurrencySymbols(t){var o;_classCallCheck(this,CurrencySymbols);(o=r.call(this,h,"currencySymbols",!0)).currencySymbol=new c.XFAObjectArray(3);return o}return CurrencySymbols}(c.XFAObject),y=function(t){_inherits(DatePattern,t);var r=_createSuper(DatePattern);function DatePattern(t){var o;_classCallCheck(this,DatePattern);(o=r.call(this,h,"datePattern")).name=(0,u.getStringOption)(t.name,["full","long","med","short"]);return o}return DatePattern}(c.StringObject),v=function(t){_inherits(DatePatterns,t);var r=_createSuper(DatePatterns);function DatePatterns(t){var o;_classCallCheck(this,DatePatterns);(o=r.call(this,h,"datePatterns",!0)).datePattern=new c.XFAObjectArray(4);return o}return DatePatterns}(c.XFAObject),S=function(t){_inherits(DateTimeSymbols,t);var r=_createSuper(DateTimeSymbols);function DateTimeSymbols(t){_classCallCheck(this,DateTimeSymbols);return r.call(this,h,"dateTimeSymbols")}return DateTimeSymbols}(c.ContentObject),_=function(t){_inherits(Day,t);var r=_createSuper(Day);function Day(t){_classCallCheck(this,Day);return r.call(this,h,"day")}return Day}(c.StringObject),k=function(t){_inherits(DayNames,t);var r=_createSuper(DayNames);function DayNames(t){var o;_classCallCheck(this,DayNames);(o=r.call(this,h,"dayNames",!0)).abbr=(0,u.getInteger)({data:t.abbr,defaultValue:0,validate:function validate(t){return 1===t}});o.day=new c.XFAObjectArray(7);return o}return DayNames}(c.XFAObject),C=function(t){_inherits(Era,t);var r=_createSuper(Era);function Era(t){_classCallCheck(this,Era);return r.call(this,h,"era")}return Era}(c.StringObject),w=function(t){_inherits(EraNames,t);var r=_createSuper(EraNames);function EraNames(t){var o;_classCallCheck(this,EraNames);(o=r.call(this,h,"eraNames",!0)).era=new c.XFAObjectArray(2);return o}return EraNames}(c.XFAObject),x=function(t){_inherits(Locale,t);var r=_createSuper(Locale);function Locale(t){var o;_classCallCheck(this,Locale);(o=r.call(this,h,"locale",!0)).desc=t.desc||"";o.name="isoname";o.calendarSymbols=null;o.currencySymbols=null;o.datePatterns=null;o.dateTimeSymbols=null;o.numberPatterns=null;o.numberSymbols=null;o.timePatterns=null;o.typeFaces=null;return o}return Locale}(c.XFAObject),O=function(t){_inherits(LocaleSet,t);var r=_createSuper(LocaleSet);function LocaleSet(t){var o;_classCallCheck(this,LocaleSet);(o=r.call(this,h,"localeSet",!0)).locale=new c.XFAObjectArray;return o}return LocaleSet}(c.XFAObject),T=function(t){_inherits(Meridiem,t);var r=_createSuper(Meridiem);function Meridiem(t){_classCallCheck(this,Meridiem);return r.call(this,h,"meridiem")}return Meridiem}(c.StringObject),R=function(t){_inherits(MeridiemNames,t);var r=_createSuper(MeridiemNames);function MeridiemNames(t){var o;_classCallCheck(this,MeridiemNames);(o=r.call(this,h,"meridiemNames",!0)).meridiem=new c.XFAObjectArray(2);return o}return MeridiemNames}(c.XFAObject),E=function(t){_inherits(Month,t);var r=_createSuper(Month);function Month(t){_classCallCheck(this,Month);return r.call(this,h,"month")}return Month}(c.StringObject),M=function(t){_inherits(MonthNames,t);var r=_createSuper(MonthNames);function MonthNames(t){var o;_classCallCheck(this,MonthNames);(o=r.call(this,h,"monthNames",!0)).abbr=(0,u.getInteger)({data:t.abbr,defaultValue:0,validate:function validate(t){return 1===t}});o.month=new c.XFAObjectArray(12);return o}return MonthNames}(c.XFAObject),D=function(t){_inherits(NumberPattern,t);var r=_createSuper(NumberPattern);function NumberPattern(t){var o;_classCallCheck(this,NumberPattern);(o=r.call(this,h,"numberPattern")).name=(0,u.getStringOption)(t.name,["full","long","med","short"]);return o}return NumberPattern}(c.StringObject),j=function(t){_inherits(NumberPatterns,t);var r=_createSuper(NumberPatterns);function NumberPatterns(t){var o;_classCallCheck(this,NumberPatterns);(o=r.call(this,h,"numberPatterns",!0)).numberPattern=new c.XFAObjectArray(4);return o}return NumberPatterns}(c.XFAObject),L=function(t){_inherits(NumberSymbol,t);var r=_createSuper(NumberSymbol);function NumberSymbol(t){var o;_classCallCheck(this,NumberSymbol);(o=r.call(this,h,"numberSymbol")).name=(0,u.getStringOption)(t.name,["decimal","grouping","percent","minus","zero"]);return o}return NumberSymbol}(c.StringObject),N=function(t){_inherits(NumberSymbols,t);var r=_createSuper(NumberSymbols);function NumberSymbols(t){var o;_classCallCheck(this,NumberSymbols);(o=r.call(this,h,"numberSymbols",!0)).numberSymbol=new c.XFAObjectArray(5);return o}return NumberSymbols}(c.XFAObject),U=function(t){_inherits(TimePattern,t);var r=_createSuper(TimePattern);function TimePattern(t){var o;_classCallCheck(this,TimePattern);(o=r.call(this,h,"timePattern")).name=(0,u.getStringOption)(t.name,["full","long","med","short"]);return o}return TimePattern}(c.StringObject),H=function(t){_inherits(TimePatterns,t);var r=_createSuper(TimePatterns);function TimePatterns(t){var o;_classCallCheck(this,TimePatterns);(o=r.call(this,h,"timePatterns",!0)).timePattern=new c.XFAObjectArray(4);return o}return TimePatterns}(c.XFAObject),W=function(t){_inherits(TypeFace,t);var r=_createSuper(TypeFace);function TypeFace(t){var o;_classCallCheck(this,TypeFace);(o=r.call(this,h,"typeFace",!0)).name=""|t.name;return o}return TypeFace}(c.XFAObject),$=function(t){_inherits(TypeFaces,t);var r=_createSuper(TypeFaces);function TypeFaces(t){var o;_classCallCheck(this,TypeFaces);(o=r.call(this,h,"typeFaces",!0)).typeFace=new c.XFAObjectArray;return o}return TypeFaces}(c.XFAObject),q=function(){function LocaleSetNamespace(){_classCallCheck(this,LocaleSetNamespace)}!function _createClass(t,r,o){r&&_defineProperties(t.prototype,r);o&&_defineProperties(t,o);return t}(LocaleSetNamespace,null,[{key:l.$buildXFAObject,value:function value(t,r){if(LocaleSetNamespace.hasOwnProperty(t))return LocaleSetNamespace[t](r)}},{key:"calendarSymbols",value:function calendarSymbols(t){return new d(t)}},{key:"currencySymbol",value:function currencySymbol(t){return new m(t)}},{key:"currencySymbols",value:function currencySymbols(t){return new g(t)}},{key:"datePattern",value:function datePattern(t){return new y(t)}},{key:"datePatterns",value:function datePatterns(t){return new v(t)}},{key:"dateTimeSymbols",value:function dateTimeSymbols(t){return new S(t)}},{key:"day",value:function day(t){return new _(t)}},{key:"dayNames",value:function dayNames(t){return new k(t)}},{key:"era",value:function era(t){return new C(t)}},{key:"eraNames",value:function eraNames(t){return new w(t)}},{key:"locale",value:function locale(t){return new x(t)}},{key:"localeSet",value:function localeSet(t){return new O(t)}},{key:"meridiem",value:function meridiem(t){return new T(t)}},{key:"meridiemNames",value:function meridiemNames(t){return new R(t)}},{key:"month",value:function month(t){return new E(t)}},{key:"monthNames",value:function monthNames(t){return new M(t)}},{key:"numberPattern",value:function numberPattern(t){return new D(t)}},{key:"numberPatterns",value:function numberPatterns(t){return new j(t)}},{key:"numberSymbol",value:function numberSymbol(t){return new L(t)}},{key:"numberSymbols",value:function numberSymbols(t){return new N(t)}},{key:"timePattern",value:function timePattern(t){return new U(t)}},{key:"timePatterns",value:function timePatterns(t){return new H(t)}},{key:"typeFace",value:function typeFace(t){return new W(t)}},{key:"typeFaces",value:function typeFaces(t){return new $(t)}}]);return LocaleSetNamespace}();r.LocaleSetNamespace=q},(t,r,o)=>{"use strict";function _typeof(t){_typeof="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function _typeof(t){return typeof t}:function _typeof(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t};return _typeof(t)}Object.defineProperty(r,"__esModule",{value:!0});r.SignatureNamespace=void 0;var l=o(190),c=o(188);function _defineProperties(t,r){for(var o=0;o<r.length;o++){var l=r[o];l.enumerable=l.enumerable||!1;l.configurable=!0;"value"in l&&(l.writable=!0);Object.defineProperty(t,l.key,l)}}function _classCallCheck(t,r){if(!(t instanceof r))throw new TypeError("Cannot call a class as a function")}function _setPrototypeOf(t,r){_setPrototypeOf=Object.setPrototypeOf||function _setPrototypeOf(t,r){t.__proto__=r;return t};return _setPrototypeOf(t,r)}function _createSuper(t){var r=function _isNativeReflectConstruct(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){})));return!0}catch(t){return!1}}();return function _createSuperInternal(){var o,l=_getPrototypeOf(t);if(r){var c=_getPrototypeOf(this).constructor;o=Reflect.construct(l,arguments,c)}else o=l.apply(this,arguments);return _possibleConstructorReturn(this,o)}}function _possibleConstructorReturn(t,r){if(r&&("object"===_typeof(r)||"function"==typeof r))return r;if(void 0!==r)throw new TypeError("Derived constructors may only return object or undefined");return function _assertThisInitialized(t){if(void 0===t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return t}(t)}function _getPrototypeOf(t){_getPrototypeOf=Object.setPrototypeOf?Object.getPrototypeOf:function _getPrototypeOf(t){return t.__proto__||Object.getPrototypeOf(t)};return _getPrototypeOf(t)}var u=l.NamespaceIds.signature.id,h=function(t){!function _inherits(t,r){if("function"!=typeof r&&null!==r)throw new TypeError("Super expression must either be null or a function");t.prototype=Object.create(r&&r.prototype,{constructor:{value:t,writable:!0,configurable:!0}});r&&_setPrototypeOf(t,r)}(Signature,t);var r=_createSuper(Signature);function Signature(t){_classCallCheck(this,Signature);return r.call(this,u,"signature",!0)}return Signature}(c.XFAObject),d=function(){function SignatureNamespace(){_classCallCheck(this,SignatureNamespace)}!function _createClass(t,r,o){r&&_defineProperties(t.prototype,r);o&&_defineProperties(t,o);return t}(SignatureNamespace,null,[{key:l.$buildXFAObject,value:function value(t,r){if(SignatureNamespace.hasOwnProperty(t))return SignatureNamespace[t](r)}},{key:"signature",value:function signature(t){return new h(t)}}]);return SignatureNamespace}();r.SignatureNamespace=d},(t,r,o)=>{"use strict";function _typeof(t){_typeof="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function _typeof(t){return typeof t}:function _typeof(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t};return _typeof(t)}Object.defineProperty(r,"__esModule",{value:!0});r.StylesheetNamespace=void 0;var l=o(190),c=o(188);function _defineProperties(t,r){for(var o=0;o<r.length;o++){var l=r[o];l.enumerable=l.enumerable||!1;l.configurable=!0;"value"in l&&(l.writable=!0);Object.defineProperty(t,l.key,l)}}function _classCallCheck(t,r){if(!(t instanceof r))throw new TypeError("Cannot call a class as a function")}function _setPrototypeOf(t,r){_setPrototypeOf=Object.setPrototypeOf||function _setPrototypeOf(t,r){t.__proto__=r;return t};return _setPrototypeOf(t,r)}function _createSuper(t){var r=function _isNativeReflectConstruct(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){})));return!0}catch(t){return!1}}();return function _createSuperInternal(){var o,l=_getPrototypeOf(t);if(r){var c=_getPrototypeOf(this).constructor;o=Reflect.construct(l,arguments,c)}else o=l.apply(this,arguments);return _possibleConstructorReturn(this,o)}}function _possibleConstructorReturn(t,r){if(r&&("object"===_typeof(r)||"function"==typeof r))return r;if(void 0!==r)throw new TypeError("Derived constructors may only return object or undefined");return function _assertThisInitialized(t){if(void 0===t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return t}(t)}function _getPrototypeOf(t){_getPrototypeOf=Object.setPrototypeOf?Object.getPrototypeOf:function _getPrototypeOf(t){return t.__proto__||Object.getPrototypeOf(t)};return _getPrototypeOf(t)}var u=l.NamespaceIds.stylesheet.id,h=function(t){!function _inherits(t,r){if("function"!=typeof r&&null!==r)throw new TypeError("Super expression must either be null or a function");t.prototype=Object.create(r&&r.prototype,{constructor:{value:t,writable:!0,configurable:!0}});r&&_setPrototypeOf(t,r)}(Stylesheet,t);var r=_createSuper(Stylesheet);function Stylesheet(t){_classCallCheck(this,Stylesheet);return r.call(this,u,"stylesheet",!0)}return Stylesheet}(c.XFAObject),d=function(){function StylesheetNamespace(){_classCallCheck(this,StylesheetNamespace)}!function _createClass(t,r,o){r&&_defineProperties(t.prototype,r);o&&_defineProperties(t,o);return t}(StylesheetNamespace,null,[{key:l.$buildXFAObject,value:function value(t,r){if(StylesheetNamespace.hasOwnProperty(t))return StylesheetNamespace[t](r)}},{key:"stylesheet",value:function stylesheet(t){return new h(t)}}]);return StylesheetNamespace}();r.StylesheetNamespace=d},(t,r,o)=>{"use strict";function _typeof(t){_typeof="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function _typeof(t){return typeof t}:function _typeof(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t};return _typeof(t)}Object.defineProperty(r,"__esModule",{value:!0});r.XdpNamespace=void 0;var l=o(190),c=o(188);function _classCallCheck(t,r){if(!(t instanceof r))throw new TypeError("Cannot call a class as a function")}function _defineProperties(t,r){for(var o=0;o<r.length;o++){var l=r[o];l.enumerable=l.enumerable||!1;l.configurable=!0;"value"in l&&(l.writable=!0);Object.defineProperty(t,l.key,l)}}function _createClass(t,r,o){r&&_defineProperties(t.prototype,r);o&&_defineProperties(t,o);return t}function _setPrototypeOf(t,r){_setPrototypeOf=Object.setPrototypeOf||function _setPrototypeOf(t,r){t.__proto__=r;return t};return _setPrototypeOf(t,r)}function _createSuper(t){var r=function _isNativeReflectConstruct(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){})));return!0}catch(t){return!1}}();return function _createSuperInternal(){var o,l=_getPrototypeOf(t);if(r){var c=_getPrototypeOf(this).constructor;o=Reflect.construct(l,arguments,c)}else o=l.apply(this,arguments);return _possibleConstructorReturn(this,o)}}function _possibleConstructorReturn(t,r){if(r&&("object"===_typeof(r)||"function"==typeof r))return r;if(void 0!==r)throw new TypeError("Derived constructors may only return object or undefined");return function _assertThisInitialized(t){if(void 0===t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return t}(t)}function _getPrototypeOf(t){_getPrototypeOf=Object.setPrototypeOf?Object.getPrototypeOf:function _getPrototypeOf(t){return t.__proto__||Object.getPrototypeOf(t)};return _getPrototypeOf(t)}var u=l.NamespaceIds.xdp.id,h=function(t){!function _inherits(t,r){if("function"!=typeof r&&null!==r)throw new TypeError("Super expression must either be null or a function");t.prototype=Object.create(r&&r.prototype,{constructor:{value:t,writable:!0,configurable:!0}});r&&_setPrototypeOf(t,r)}(Xdp,t);var r=_createSuper(Xdp);function Xdp(t){var o;_classCallCheck(this,Xdp);(o=r.call(this,u,"xdp",!0)).uuid=t.uuid||"";o.timeStamp=t.timeStamp||"";o.config=null;o.connectionSet=null;o.datasets=null;o.localeSet=null;o.stylesheet=new c.XFAObjectArray;o.template=null;return o}_createClass(Xdp,[{key:c.$onChildCheck,value:function value(t){var r=l.NamespaceIds[t[c.$nodeName]];return r&&t[c.$namespaceId]===r.id}}]);return Xdp}(c.XFAObject),d=function(){function XdpNamespace(){_classCallCheck(this,XdpNamespace)}_createClass(XdpNamespace,null,[{key:l.$buildXFAObject,value:function value(t,r){if(XdpNamespace.hasOwnProperty(t))return XdpNamespace[t](r)}},{key:"xdp",value:function xdp(t){return new h(t)}}]);return XdpNamespace}();r.XdpNamespace=d},(t,r,o)=>{"use strict";function _typeof(t){_typeof="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function _typeof(t){return typeof t}:function _typeof(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t};return _typeof(t)}Object.defineProperty(r,"__esModule",{value:!0});r.XhtmlNamespace=void 0;var l=o(188),c=o(190),u=o(195),h=o(189);function _classCallCheck(t,r){if(!(t instanceof r))throw new TypeError("Cannot call a class as a function")}function _defineProperties(t,r){for(var o=0;o<r.length;o++){var l=r[o];l.enumerable=l.enumerable||!1;l.configurable=!0;"value"in l&&(l.writable=!0);Object.defineProperty(t,l.key,l)}}function _createClass(t,r,o){r&&_defineProperties(t.prototype,r);o&&_defineProperties(t,o);return t}function _get(t,r,o){_get="undefined"!=typeof Reflect&&Reflect.get?Reflect.get:function _get(t,r,o){var l=function _superPropBase(t,r){for(;!Object.prototype.hasOwnProperty.call(t,r)&&null!==(t=_getPrototypeOf(t)););return t}(t,r);if(l){var c=Object.getOwnPropertyDescriptor(l,r);return c.get?c.get.call(o):c.value}};return _get(t,r,o||t)}function _inherits(t,r){if("function"!=typeof r&&null!==r)throw new TypeError("Super expression must either be null or a function");t.prototype=Object.create(r&&r.prototype,{constructor:{value:t,writable:!0,configurable:!0}});r&&_setPrototypeOf(t,r)}function _setPrototypeOf(t,r){_setPrototypeOf=Object.setPrototypeOf||function _setPrototypeOf(t,r){t.__proto__=r;return t};return _setPrototypeOf(t,r)}function _createSuper(t){var r=function _isNativeReflectConstruct(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){})));return!0}catch(t){return!1}}();return function _createSuperInternal(){var o,l=_getPrototypeOf(t);if(r){var c=_getPrototypeOf(this).constructor;o=Reflect.construct(l,arguments,c)}else o=l.apply(this,arguments);return _possibleConstructorReturn(this,o)}}function _possibleConstructorReturn(t,r){if(r&&("object"===_typeof(r)||"function"==typeof r))return r;if(void 0!==r)throw new TypeError("Derived constructors may only return object or undefined");return function _assertThisInitialized(t){if(void 0===t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return t}(t)}function _getPrototypeOf(t){_getPrototypeOf=Object.setPrototypeOf?Object.getPrototypeOf:function _getPrototypeOf(t){return t.__proto__||Object.getPrototypeOf(t)};return _getPrototypeOf(t)}function _slicedToArray(t,r){return function _arrayWithHoles(t){if(Array.isArray(t))return t}(t)||function _iterableToArrayLimit(t,r){var o=null==t?null:"undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(null==o)return;var l,c,u=[],h=!0,d=!1;try{for(o=o.call(t);!(h=(l=o.next()).done);h=!0){u.push(l.value);if(r&&u.length===r)break}}catch(t){d=!0;c=t}finally{try{h||null==o.return||o.return()}finally{if(d)throw c}}return u}(t,r)||_unsupportedIterableToArray(t,r)||function _nonIterableRest(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function _createForOfIteratorHelper(t,r){var o="undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(!o){if(Array.isArray(t)||(o=_unsupportedIterableToArray(t))||r&&t&&"number"==typeof t.length){o&&(t=o);var l=0,c=function F(){};return{s:c,n:function n(){return l>=t.length?{done:!0}:{done:!1,value:t[l++]}},e:function e(t){throw t},f:c}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var u,h=!0,d=!1;return{s:function s(){o=o.call(t)},n:function n(){var t=o.next();h=t.done;return t},e:function e(t){d=!0;u=t},f:function f(){try{h||null==o.return||o.return()}finally{if(d)throw u}}}}function _unsupportedIterableToArray(t,r){if(t){if("string"==typeof t)return _arrayLikeToArray(t,r);var o=Object.prototype.toString.call(t).slice(8,-1);"Object"===o&&t.constructor&&(o=t.constructor.name);return"Map"===o||"Set"===o?Array.from(t):"Arguments"===o||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(o)?_arrayLikeToArray(t,r):void 0}}function _arrayLikeToArray(t,r){(null==r||r>t.length)&&(r=t.length);for(var o=0,l=new Array(r);o<r;o++)l[o]=t[o];return l}var d=c.NamespaceIds.xhtml.id,m=new Set(["color","font","font-family","font-size","font-stretch","font-style","font-weight","margin","margin-bottom","margin-left","margin-right","margin-top","letter-spacing","line-height","orphans","page-break-after","page-break-before","page-break-inside","tab-interval","tab-stop","text-align","text-decoration","text-indent","vertical-align","widows","kerning-mode","xfa-font-horizontal-scale","xfa-font-vertical-scale","xfa-spacerun","xfa-tab-stops"]),g=new Map([["page-break-after","breakAfter"],["page-break-before","breakBefore"],["page-break-inside","breakInside"],["kerning-mode",function(t){return"none"===t?"none":"normal"}],["xfa-font-horizontal-scale",function(t){return"scaleX(".concat(Math.max(0,Math.min(parseInt(t)/100)).toFixed(2),")")}],["xfa-font-vertical-scale",function(t){return"scaleY(".concat(Math.max(0,Math.min(parseInt(t)/100)).toFixed(2),")")}],["xfa-spacerun",""],["xfa-tab-stops",""],["font-size",function(t,r){t=r.fontSize=(0,h.getMeasurement)(t);return(0,u.measureToString)(.99*t)}],["letter-spacing",function(t){return(0,u.measureToString)((0,h.getMeasurement)(t))}],["line-height",function(t){return(0,u.measureToString)((0,h.getMeasurement)(t))}],["margin",function(t){return(0,u.measureToString)((0,h.getMeasurement)(t))}],["margin-bottom",function(t){return(0,u.measureToString)((0,h.getMeasurement)(t))}],["margin-left",function(t){return(0,u.measureToString)((0,h.getMeasurement)(t))}],["margin-right",function(t){return(0,u.measureToString)((0,h.getMeasurement)(t))}],["margin-top",function(t){return(0,u.measureToString)((0,h.getMeasurement)(t))}],["text-indent",function(t){return(0,u.measureToString)((0,h.getMeasurement)(t))}],["font-family",function(t){return t}]]),y=/\s+/g,v=/[\r\n]+/g;function mapStyle(t,r){var o=Object.create(null);if(!t)return o;var c,h=Object.create(null),d=_createForOfIteratorHelper(t.split(";").map((function(t){return t.split(":",2)})));try{for(d.s();!(c=d.n()).done;){var m=_slicedToArray(c.value,2),y=m[0],v=m[1],S=g.get(y);if(""!==S){var _=v;S&&(_="string"==typeof S?S:S(v,h));y.endsWith("scale")?o.transform?o.transform="".concat(o[y]," ").concat(_):o.transform=_:o[y.replaceAll(/-([a-zA-Z])/g,(function(t,r){return r.toUpperCase()}))]=_}}}catch(t){d.e(t)}finally{d.f()}o.fontFamily&&(0,u.setFontFamily)({typeface:o.fontFamily,weight:o.fontWeight||"normal",posture:o.fontStyle||"normal",size:h.fontSize||0},r,r[l.$globalData].fontFinder,o);(0,u.fixTextIndent)(o);return o}var S=new Set(["body","html"]),_=function(t){_inherits(XhtmlObject,t);var r=_createSuper(XhtmlObject);function XhtmlObject(t,o){var l;_classCallCheck(this,XhtmlObject);(l=r.call(this,d,o)).style=t.style||"";return l}_createClass(XhtmlObject,[{key:l.$clean,value:function value(t){_get(_getPrototypeOf(XhtmlObject.prototype),l.$clean,this).call(this,t);this.style=function checkStyle(t){return t.style?t.style.trim().split(/\s*;\s*/).filter((function(t){return!!t})).map((function(t){return t.split(/\s*:\s*/,2)})).filter((function(r){var o=_slicedToArray(r,2),c=o[0],u=o[1];"font-family"===c&&t[l.$globalData].usedTypefaces.add(u);return m.has(c)})).map((function(t){return t.join(":")})).join(";"):""}(this)}},{key:l.$acceptWhitespace,value:function value(){return!S.has(this[l.$nodeName])}},{key:l.$onText,value:function value(t){t=t.replace(v,"");this.style.includes("xfa-spacerun:yes")||(t=t.replace(y," "));t&&(this[l.$content]+=t)}},{key:l.$pushGlyphs,value:function value(t){var r,o=!(arguments.length>1&&void 0!==arguments[1])||arguments[1],c=Object.create(null),u={top:NaN,bottom:NaN,left:NaN,right:NaN},d=null,m=_createForOfIteratorHelper(this.style.split(";").map((function(t){return t.split(":",2)})));try{for(m.s();!(r=m.n()).done;){var g=_slicedToArray(r.value,2),y=g[0],value=g[1];switch(y){case"font-family":c.typeface=(0,h.stripQuotes)(value);break;case"font-size":c.size=(0,h.getMeasurement)(value);break;case"font-weight":c.weight=value;break;case"font-style":c.posture=value;break;case"letter-spacing":c.letterSpacing=(0,h.getMeasurement)(value);break;case"margin":var v=value.split(/ \t/).map((function(t){return(0,h.getMeasurement)(t)}));switch(v.length){case 1:u.top=u.bottom=u.left=u.right=v[0];break;case 2:u.top=u.bottom=v[0];u.left=u.right=v[1];break;case 3:u.top=v[0];u.bottom=v[2];u.left=u.right=v[1];break;case 4:u.top=v[0];u.left=v[1];u.bottom=v[2];u.right=v[3]}break;case"margin-top":u.top=(0,h.getMeasurement)(value);break;case"margin-bottom":u.bottom=(0,h.getMeasurement)(value);break;case"margin-left":u.left=(0,h.getMeasurement)(value);break;case"margin-right":u.right=(0,h.getMeasurement)(value);break;case"line-height":d=(0,h.getMeasurement)(value)}}}catch(t){m.e(t)}finally{m.f()}t.pushData(c,u,d);if(this[l.$content])t.addString(this[l.$content]);else{var S,_=_createForOfIteratorHelper(this[l.$getChildren]());try{for(_.s();!(S=_.n()).done;){var k=S.value;"#text"!==k[l.$nodeName]?k[l.$pushGlyphs](t):t.addString(k[l.$content])}}catch(t){_.e(t)}finally{_.f()}}o&&t.popFont()}},{key:l.$toHTML,value:function value(t){var r=[];this[l.$extra]={children:r};this[l.$childrenToHTML]({});return 0!==r.length||this[l.$content]?h.HTMLResult.success({name:this[l.$nodeName],attributes:{href:this.href,style:mapStyle(this.style,this)},children:r,value:this[l.$content]||""}):h.HTMLResult.EMPTY}}]);return XhtmlObject}(l.XmlObject),k=function(t){_inherits(A,t);var r=_createSuper(A);function A(t){var o;_classCallCheck(this,A);(o=r.call(this,t,"a")).href=(0,u.fixURL)(t.href)||"";return o}return A}(_),C=function(t){_inherits(B,t);var r=_createSuper(B);function B(t){_classCallCheck(this,B);return r.call(this,t,"b")}_createClass(B,[{key:l.$pushGlyphs,value:function value(t){t.pushFont({weight:"bold"});_get(_getPrototypeOf(B.prototype),l.$pushGlyphs,this).call(this,t);t.popFont()}}]);return B}(_),w=function(t){_inherits(Body,t);var r=_createSuper(Body);function Body(t){_classCallCheck(this,Body);return r.call(this,t,"body")}_createClass(Body,[{key:l.$toHTML,value:function value(t){var r=_get(_getPrototypeOf(Body.prototype),l.$toHTML,this).call(this,t),o=r.html;if(!o)return h.HTMLResult.EMPTY;o.name="div";o.attributes.class=["xfaRich"];return r}}]);return Body}(_),x=function(t){_inherits(Br,t);var r=_createSuper(Br);function Br(t){_classCallCheck(this,Br);return r.call(this,t,"br")}_createClass(Br,[{key:l.$text,value:function value(){return"\n"}},{key:l.$pushGlyphs,value:function value(t){t.addString("\n")}},{key:l.$toHTML,value:function value(t){return h.HTMLResult.success({name:"br"})}}]);return Br}(_),O=function(t){_inherits(Html,t);var r=_createSuper(Html);function Html(t){_classCallCheck(this,Html);return r.call(this,t,"html")}_createClass(Html,[{key:l.$toHTML,value:function value(t){var r=[];this[l.$extra]={children:r};this[l.$childrenToHTML]({});if(0===r.length)return h.HTMLResult.success({name:"div",attributes:{class:["xfaRich"],style:{}},value:this[l.$content]||""});if(1===r.length){var o=r[0];if(o.attributes&&o.attributes.class.includes("xfaRich"))return h.HTMLResult.success(o)}return h.HTMLResult.success({name:"div",attributes:{class:["xfaRich"],style:{}},children:r})}}]);return Html}(_),T=function(t){_inherits(I,t);var r=_createSuper(I);function I(t){_classCallCheck(this,I);return r.call(this,t,"i")}_createClass(I,[{key:l.$pushGlyphs,value:function value(t){t.pushFont({posture:"italic"});_get(_getPrototypeOf(I.prototype),l.$pushGlyphs,this).call(this,t);t.popFont()}}]);return I}(_),R=function(t){_inherits(Li,t);var r=_createSuper(Li);function Li(t){_classCallCheck(this,Li);return r.call(this,t,"li")}return Li}(_),E=function(t){_inherits(Ol,t);var r=_createSuper(Ol);function Ol(t){_classCallCheck(this,Ol);return r.call(this,t,"ol")}return Ol}(_),M=function(t){_inherits(P,t);var r=_createSuper(P);function P(t){_classCallCheck(this,P);return r.call(this,t,"p")}_createClass(P,[{key:l.$pushGlyphs,value:function value(t){_get(_getPrototypeOf(P.prototype),l.$pushGlyphs,this).call(this,t,!1);t.addString("\n");t.addPara();t.popFont()}},{key:l.$text,value:function value(){return _get(_getPrototypeOf(P.prototype),l.$text,this).call(this)+"\n"}}]);return P}(_),D=function(t){_inherits(Span,t);var r=_createSuper(Span);function Span(t){_classCallCheck(this,Span);return r.call(this,t,"span")}return Span}(_),j=function(t){_inherits(Sub,t);var r=_createSuper(Sub);function Sub(t){_classCallCheck(this,Sub);return r.call(this,t,"sub")}return Sub}(_),L=function(t){_inherits(Sup,t);var r=_createSuper(Sup);function Sup(t){_classCallCheck(this,Sup);return r.call(this,t,"sup")}return Sup}(_),N=function(t){_inherits(Ul,t);var r=_createSuper(Ul);function Ul(t){_classCallCheck(this,Ul);return r.call(this,t,"ul")}return Ul}(_),U=function(){function XhtmlNamespace(){_classCallCheck(this,XhtmlNamespace)}_createClass(XhtmlNamespace,null,[{key:c.$buildXFAObject,value:function value(t,r){if(XhtmlNamespace.hasOwnProperty(t))return XhtmlNamespace[t](r)}},{key:"a",value:function a(t){return new k(t)}},{key:"b",value:function b(t){return new C(t)}},{key:"body",value:function body(t){return new w(t)}},{key:"br",value:function br(t){return new x(t)}},{key:"html",value:function html(t){return new O(t)}},{key:"i",value:function i(t){return new T(t)}},{key:"li",value:function li(t){return new R(t)}},{key:"ol",value:function ol(t){return new E(t)}},{key:"p",value:function p(t){return new M(t)}},{key:"span",value:function span(t){return new D(t)}},{key:"sub",value:function sub(t){return new j(t)}},{key:"sup",value:function sup(t){return new L(t)}},{key:"ul",value:function ul(t){return new N(t)}}]);return XhtmlNamespace}();r.XhtmlNamespace=U},(t,r,o)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});r.UnknownNamespace=void 0;var l=o(190),c=o(188);function _defineProperties(t,r){for(var o=0;o<r.length;o++){var l=r[o];l.enumerable=l.enumerable||!1;l.configurable=!0;"value"in l&&(l.writable=!0);Object.defineProperty(t,l.key,l)}}var u=function(){function UnknownNamespace(t){!function _classCallCheck(t,r){if(!(t instanceof r))throw new TypeError("Cannot call a class as a function")}(this,UnknownNamespace);this.namespaceId=t}!function _createClass(t,r,o){r&&_defineProperties(t.prototype,r);o&&_defineProperties(t,o);return t}(UnknownNamespace,[{key:l.$buildXFAObject,value:function value(t,r){return new c.XmlObject(this.namespaceId,t,r)}}]);return UnknownNamespace}();r.UnknownNamespace=u},(t,r,o)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});r.XRef=void 0;var l=function _interopRequireDefault(t){return t&&t.__esModule?t:{default:t}}(o(2)),c=o(4),u=o(118),h=o(140),d=o(122),m=o(185);function asyncGeneratorStep(t,r,o,l,c,u,h){try{var d=t[u](h),m=d.value}catch(t){o(t);return}d.done?r(m):Promise.resolve(m).then(l,c)}function _asyncToGenerator(t){return function(){var r=this,o=arguments;return new Promise((function(l,c){var u=t.apply(r,o);function _next(t){asyncGeneratorStep(u,l,c,_next,_throw,"next",t)}function _throw(t){asyncGeneratorStep(u,l,c,_next,_throw,"throw",t)}_next(void 0)}))}}function _defineProperties(t,r){for(var o=0;o<r.length;o++){var l=r[o];l.enumerable=l.enumerable||!1;l.configurable=!0;"value"in l&&(l.writable=!0);Object.defineProperty(t,l.key,l)}}var g=function(){function XRef(t,r){!function _classCallCheck(t,r){if(!(t instanceof r))throw new TypeError("Cannot call a class as a function")}(this,XRef);this.stream=t;this.pdfManager=r;this.entries=[];this.xrefstms=Object.create(null);this._cacheMap=new Map;this.stats={streamTypes:Object.create(null),fontTypes:Object.create(null)};this._newRefNum=null}!function _createClass(t,r,o){r&&_defineProperties(t.prototype,r);o&&_defineProperties(t,o);return t}(XRef,[{key:"getNewRef",value:function getNewRef(){null===this._newRefNum&&(this._newRefNum=this.entries.length);return u.Ref.get(this._newRefNum++,0)}},{key:"resetNewRef",value:function resetNewRef(){this._newRefNum=null}},{key:"setStartXRef",value:function setStartXRef(t){this.startXRefQueue=[t]}},{key:"parse",value:function parse(){var t,r,o,l=arguments.length>0&&void 0!==arguments[0]&&arguments[0];if(l){(0,c.warn)("Indexing all PDF objects");t=this.indexObjects()}else t=this.readXRef();t.assignXref(this);this.trailer=t;try{r=t.get("Encrypt")}catch(t){if(t instanceof d.MissingDataException)throw t;(0,c.warn)('XRef.parse - Invalid "Encrypt" reference: "'.concat(t,'".'))}if((0,u.isDict)(r)){var h=t.get("ID"),g=h&&h.length?h[0]:"";r.suppressEncryption=!0;this.encrypt=new m.CipherTransformFactory(r,g,this.pdfManager.password)}try{o=t.get("Root")}catch(t){if(t instanceof d.MissingDataException)throw t;(0,c.warn)('XRef.parse - Invalid "Root" reference: "'.concat(t,'".'))}if(!(0,u.isDict)(o)||!o.has("Pages")){if(!l)throw new d.XRefParseException;throw new c.FormatError("Invalid root reference")}this.root=o}},{key:"processXRefTable",value:function processXRefTable(t){"tableState"in this||(this.tableState={entryNum:0,streamPos:t.lexer.stream.pos,parserBuf1:t.buf1,parserBuf2:t.buf2});var r=this.readXRefTable(t);if(!(0,u.isCmd)(r,"trailer"))throw new c.FormatError("Invalid XRef table: could not find trailer dictionary");var o=t.getObj();!(0,u.isDict)(o)&&o.dict&&(o=o.dict);if(!(0,u.isDict)(o))throw new c.FormatError("Invalid XRef table: could not parse trailer dictionary");delete this.tableState;return o}},{key:"readXRefTable",value:function readXRefTable(t){var r,o=t.lexer.stream,l=this.tableState;o.pos=l.streamPos;t.buf1=l.parserBuf1;t.buf2=l.parserBuf2;for(;;){if(!("firstEntryNum"in l)||!("entryCount"in l)){if((0,u.isCmd)(r=t.getObj(),"trailer"))break;l.firstEntryNum=r;l.entryCount=t.getObj()}var h=l.firstEntryNum,d=l.entryCount;if(!Number.isInteger(h)||!Number.isInteger(d))throw new c.FormatError("Invalid XRef table: wrong types in subsection header");for(var m=l.entryNum;m<d;m++){l.streamPos=o.pos;l.entryNum=m;l.parserBuf1=t.buf1;l.parserBuf2=t.buf2;var g={};g.offset=t.getObj();g.gen=t.getObj();var y=t.getObj();if(y instanceof u.Cmd)switch(y.cmd){case"f":g.free=!0;break;case"n":g.uncompressed=!0}if(!Number.isInteger(g.offset)||!Number.isInteger(g.gen)||!g.free&&!g.uncompressed)throw new c.FormatError("Invalid entry in XRef subsection: ".concat(h,", ").concat(d));0===m&&g.free&&1===h&&(h=0);this.entries[m+h]||(this.entries[m+h]=g)}l.entryNum=0;l.streamPos=o.pos;l.parserBuf1=t.buf1;l.parserBuf2=t.buf2;delete l.firstEntryNum;delete l.entryCount}if(this.entries[0]&&!this.entries[0].free)throw new c.FormatError("Invalid XRef table: unexpected first object");return r}},{key:"processXRefStream",value:function processXRefStream(t){if(!("streamState"in this)){var r=t.dict,o=r.get("W"),l=r.get("Index");l||(l=[0,r.get("Size")]);this.streamState={entryRanges:l,byteWidths:o,entryNum:0,streamPos:t.pos}}this.readXRefStream(t);delete this.streamState;return t.dict}},{key:"readXRefStream",value:function readXRefStream(t){var r,o,l=this.streamState;t.pos=l.streamPos;for(var u=l.byteWidths,h=u[0],d=u[1],m=u[2],g=l.entryRanges;g.length>0;){var y=g[0],v=g[1];if(!Number.isInteger(y)||!Number.isInteger(v))throw new c.FormatError("Invalid XRef range fields: ".concat(y,", ").concat(v));if(!Number.isInteger(h)||!Number.isInteger(d)||!Number.isInteger(m))throw new c.FormatError("Invalid XRef entry fields length: ".concat(y,", ").concat(v));for(r=l.entryNum;r<v;++r){l.entryNum=r;l.streamPos=t.pos;var S=0,_=0,k=0;for(o=0;o<h;++o)S=S<<8|t.getByte();0===h&&(S=1);for(o=0;o<d;++o)_=_<<8|t.getByte();for(o=0;o<m;++o)k=k<<8|t.getByte();var C={};C.offset=_;C.gen=k;switch(S){case 0:C.free=!0;break;case 1:C.uncompressed=!0;break;case 2:break;default:throw new c.FormatError("Invalid XRef entry type: ".concat(S))}this.entries[y+r]||(this.entries[y+r]=C)}l.entryNum=0;l.streamPos=t.pos;g.splice(0,2)}}},{key:"indexObjects",value:function indexObjects(){function readToken(t,r){for(var o="",l=t[r];10!==l&&13!==l&&60!==l&&!(++r>=t.length);){o+=String.fromCharCode(l);l=t[r]}return o}function skipUntil(t,r,o){for(var l=o.length,c=t.length,u=0;r<c;){for(var h=0;h<l&&t[r+h]===o[h];)++h;if(h>=l)break;r++;u++}return u}var t=/^(\d+)\s+(\d+)\s+obj\b/,r=/\bendobj[\b\s]$/,o=/\s+(\d+\s+\d+\s+obj[\b\s<])$/,l=new Uint8Array([116,114,97,105,108,101,114]),m=new Uint8Array([115,116,97,114,116,120,114,101,102]),g=new Uint8Array([111,98,106]),y=new Uint8Array([47,88,82,101,102]);this.entries.length=0;var v=this.stream;v.pos=0;for(var S,_=v.getBytes(),k=_.length,C=v.start,w=[],x=[];C<k;){var O=_[C];if(9!==O&&10!==O&&13!==O&&32!==O)if(37!==O){var T=readToken(_,C),R=void 0;if(T.startsWith("xref")&&(4===T.length||/\s/.test(T[4]))){C+=skipUntil(_,C,l);w.push(C);C+=skipUntil(_,C,m)}else if(R=t.exec(T)){var E=0|R[1],M=0|R[2],D=void 0,j=C+T.length,L=!1;if(this.entries[E]){if(this.entries[E].gen===M)try{new h.Parser({lexer:new h.Lexer(v.makeSubStream(j))}).getObj();L=!0}catch(t){t instanceof d.ParserEOFException?(0,c.warn)("indexObjects -- checking object (".concat(T,'): "').concat(t,'".')):L=!0}}else L=!0;L&&(this.entries[E]={offset:C-v.start,gen:M,uncompressed:!0});for(;j<_.length;){var N=j+skipUntil(_,j,g)+4;D=N-C;var U=Math.max(N-25,j),H=(0,c.bytesToString)(_.subarray(U,N));if(r.test(H))break;var W=o.exec(H);if(W&&W[1]){(0,c.warn)('indexObjects: Found new "obj" inside of another "obj", caused by missing "endobj" -- trying to recover.');D-=W[1].length;break}j=N}var $=_.subarray(C,C+D),q=skipUntil($,0,y);if(q<D&&$[q+5]<64){x.push(C-v.start);this.xrefstms[C-v.start]=1}C+=D}else if(T.startsWith("trailer")&&(7===T.length||/\s/.test(T[7]))){w.push(C);C+=skipUntil(_,C,m)}else C+=T.length+1}else do{if(++C>=k)break;O=_[C]}while(10!==O&&13!==O);else++C}for(var X=0,z=x.length;X<z;++X){this.startXRefQueue.push(x[X]);this.readXRef(!0)}for(var G=0,V=w.length;G<V;++G){v.pos=w[G];var Y=new h.Parser({lexer:new h.Lexer(v),xref:this,allowStreams:!0,recoveryMode:!0}),K=Y.getObj();if((0,u.isCmd)(K,"trailer")){var J=Y.getObj();if((0,u.isDict)(J)){try{var Q=J.get("Root");if(!(Q instanceof u.Dict))continue;var Z=Q.get("Pages");if(!(Z instanceof u.Dict))continue;var ee=Z.get("Count");if(!Number.isInteger(ee))continue}catch(t){continue}if(J.has("ID"))return J;S=J}}}if(S)return S;throw new c.InvalidPDFException("Invalid PDF structure.")}},{key:"readXRef",value:function readXRef(){var t=arguments.length>0&&void 0!==arguments[0]&&arguments[0],r=this.stream,o=new Set;try{for(;this.startXRefQueue.length;){var l=this.startXRefQueue[0];if(o.has(l)){(0,c.warn)("readXRef - skipping XRef table since it was already parsed.");this.startXRefQueue.shift()}else{o.add(l);r.pos=l+r.start;var m=new h.Parser({lexer:new h.Lexer(r),xref:this,allowStreams:!0}),g=m.getObj(),y=void 0;if((0,u.isCmd)(g,"xref")){y=this.processXRefTable(m);this.topDict||(this.topDict=y);g=y.get("XRefStm");if(Number.isInteger(g)){var v=g;if(!(v in this.xrefstms)){this.xrefstms[v]=1;this.startXRefQueue.push(v)}}}else{if(!Number.isInteger(g))throw new c.FormatError("Invalid XRef stream header");if(!Number.isInteger(m.getObj())||!(0,u.isCmd)(m.getObj(),"obj")||!(0,u.isStream)(g=m.getObj()))throw new c.FormatError("Invalid XRef stream");y=this.processXRefStream(g);this.topDict||(this.topDict=y);if(!y)throw new c.FormatError("Failed to read XRef stream")}g=y.get("Prev");Number.isInteger(g)?this.startXRefQueue.push(g):(0,u.isRef)(g)&&this.startXRefQueue.push(g.num);this.startXRefQueue.shift()}}return this.topDict}catch(t){if(t instanceof d.MissingDataException)throw t;(0,c.info)("(while reading XRef): "+t)}if(!t)throw new d.XRefParseException}},{key:"getEntry",value:function getEntry(t){var r=this.entries[t];return r&&!r.free&&r.offset?r:null}},{key:"fetchIfRef",value:function fetchIfRef(t){var r=arguments.length>1&&void 0!==arguments[1]&&arguments[1];return t instanceof u.Ref?this.fetch(t,r):t}},{key:"fetch",value:function fetch(t){var r=arguments.length>1&&void 0!==arguments[1]&&arguments[1];if(!(t instanceof u.Ref))throw new Error("ref object is not a reference");var o=t.num,l=this._cacheMap.get(o);if(void 0!==l){l instanceof u.Dict&&!l.objId&&(l.objId=t.toString());return l}var c=this.getEntry(o);if(null===c){this._cacheMap.set(o,c);return c}c=c.uncompressed?this.fetchUncompressed(t,c,r):this.fetchCompressed(t,c,r);(0,u.isDict)(c)?c.objId=t.toString():(0,u.isStream)(c)&&(c.dict.objId=t.toString());return c}},{key:"fetchUncompressed",value:function fetchUncompressed(t,r){var o=arguments.length>2&&void 0!==arguments[2]&&arguments[2],l=t.gen,c=t.num;if(r.gen!==l)throw new d.XRefEntryException("Inconsistent generation in XRef: ".concat(t));var m=this.stream.makeSubStream(r.offset+this.stream.start),g=new h.Parser({lexer:new h.Lexer(m),xref:this,allowStreams:!0}),y=g.getObj(),v=g.getObj(),S=g.getObj();if(y!==c||v!==l||!(S instanceof u.Cmd))throw new d.XRefEntryException("Bad (uncompressed) XRef entry: ".concat(t));if("obj"!==S.cmd){if(S.cmd.startsWith("obj")){c=parseInt(S.cmd.substring(3),10);if(!Number.isNaN(c))return c}throw new d.XRefEntryException("Bad (uncompressed) XRef entry: ".concat(t))}r=this.encrypt&&!o?g.getObj(this.encrypt.createCipherTransform(c,l)):g.getObj();(0,u.isStream)(r)||this._cacheMap.set(c,r);return r}},{key:"fetchCompressed",value:function fetchCompressed(t,r){var o=r.offset,l=this.fetch(u.Ref.get(o,0));if(!(0,u.isStream)(l))throw new c.FormatError("bad ObjStm stream");var m=l.dict.get("First"),g=l.dict.get("N");if(!Number.isInteger(m)||!Number.isInteger(g))throw new c.FormatError("invalid first and n parameters for ObjStm stream");for(var y=new h.Parser({lexer:new h.Lexer(l),xref:this,allowStreams:!0}),v=new Array(g),S=new Array(g),_=0;_<g;++_){var k=y.getObj();if(!Number.isInteger(k))throw new c.FormatError("invalid object number in the ObjStm stream: ".concat(k));var C=y.getObj();if(!Number.isInteger(C))throw new c.FormatError("invalid object offset in the ObjStm stream: ".concat(C));v[_]=k;S[_]=C}for(var w=(l.start||0)+m,x=new Array(g),O=0;O<g;++O){var T=O<g-1?S[O+1]-S[O]:void 0;if(T<0)throw new c.FormatError("Invalid offset in the ObjStm stream.");var R=(y=new h.Parser({lexer:new h.Lexer(l.makeSubStream(w+S[O],T,l.dict)),xref:this,allowStreams:!0})).getObj();x[O]=R;if(!(0,u.isStream)(R)){var E=v[O],M=this.entries[E];M&&M.offset===o&&M.gen===O&&this._cacheMap.set(E,R)}}if(void 0===(r=x[r.gen]))throw new d.XRefEntryException("Bad (compressed) XRef entry: ".concat(t));return r}},{key:"fetchIfRefAsync",value:(r=_asyncToGenerator(l.default.mark((function _callee(t,r){return l.default.wrap((function _callee$(o){for(;;)switch(o.prev=o.next){case 0:if(!(t instanceof u.Ref)){o.next=2;break}return o.abrupt("return",this.fetchAsync(t,r));case 2:return o.abrupt("return",t);case 3:case"end":return o.stop()}}),_callee,this)}))),function fetchIfRefAsync(t,o){return r.apply(this,arguments)})},{key:"fetchAsync",value:(t=_asyncToGenerator(l.default.mark((function _callee2(t,r){return l.default.wrap((function _callee2$(o){for(;;)switch(o.prev=o.next){case 0:o.prev=0;return o.abrupt("return",this.fetch(t,r));case 4:o.prev=4;o.t0=o.catch(0);if(o.t0 instanceof d.MissingDataException){o.next=8;break}throw o.t0;case 8:o.next=10;return this.pdfManager.requestRange(o.t0.begin,o.t0.end);case 10:return o.abrupt("return",this.fetchAsync(t,r));case 11:case"end":return o.stop()}}),_callee2,this,[[0,4]])}))),function fetchAsync(r,o){return t.apply(this,arguments)})},{key:"getCatalogObj",value:function getCatalogObj(){return this.root}}]);var t,r;return XRef}();r.XRef=g},(t,r,o)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});r.MessageHandler=void 0;var l=function _interopRequireDefault(t){return t&&t.__esModule?t:{default:t}}(o(2)),c=o(4);function asyncGeneratorStep(t,r,o,l,c,u,h){try{var d=t[u](h),m=d.value}catch(t){o(t);return}d.done?r(m):Promise.resolve(m).then(l,c)}function _defineProperties(t,r){for(var o=0;o<r.length;o++){var l=r[o];l.enumerable=l.enumerable||!1;l.configurable=!0;"value"in l&&(l.writable=!0);Object.defineProperty(t,l.key,l)}}function _typeof(t){_typeof="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function _typeof(t){return typeof t}:function _typeof(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t};return _typeof(t)}var u=1,h=2,d=1,m=2,g=3,y=4,v=5,S=6,_=7,k=8;function wrapReason(t){if(!(t instanceof Error||"object"===_typeof(t)&&null!==t)){(0,c.warn)('wrapReason: Expected "reason" to be a (possibly cloned) Error.');return t}switch(t.name){case"AbortException":return new c.AbortException(t.message);case"MissingPDFException":return new c.MissingPDFException(t.message);case"PasswordException":return new c.PasswordException(t.message,t.code);case"UnexpectedResponseException":return new c.UnexpectedResponseException(t.message,t.status);case"UnknownErrorException":return new c.UnknownErrorException(t.message,t.details);default:return new c.UnknownErrorException(t.message,t.toString())}}var C=function(){function MessageHandler(t,r,o){var l=this;!function _classCallCheck(t,r){if(!(t instanceof r))throw new TypeError("Cannot call a class as a function")}(this,MessageHandler);this.sourceName=t;this.targetName=r;this.comObj=o;this.callbackId=1;this.streamId=1;this.postMessageTransfers=!0;this.streamSinks=Object.create(null);this.streamControllers=Object.create(null);this.callbackCapabilities=Object.create(null);this.actionHandler=Object.create(null);this._onComObjOnMessage=function(t){var r=t.data;if(r.targetName===l.sourceName)if(r.stream)l._processStreamMessage(r);else if(r.callback){var c=r.callbackId,d=l.callbackCapabilities[c];if(!d)throw new Error("Cannot resolve callback ".concat(c));delete l.callbackCapabilities[c];if(r.callback===u)d.resolve(r.data);else{if(r.callback!==h)throw new Error("Unexpected callback case");d.reject(wrapReason(r.reason))}}else{var m=l.actionHandler[r.action];if(!m)throw new Error("Unknown action from worker: ".concat(r.action));if(r.callbackId){var g=l.sourceName,y=r.sourceName;new Promise((function(t){t(m(r.data))})).then((function(t){o.postMessage({sourceName:g,targetName:y,callback:u,callbackId:r.callbackId,data:t})}),(function(t){o.postMessage({sourceName:g,targetName:y,callback:h,callbackId:r.callbackId,reason:wrapReason(t)})}))}else r.streamId?l._createStreamSink(r):m(r.data)}};o.addEventListener("message",this._onComObjOnMessage)}!function _createClass(t,r,o){r&&_defineProperties(t.prototype,r);o&&_defineProperties(t,o);return t}(MessageHandler,[{key:"on",value:function on(t,r){var o=this.actionHandler;if(o[t])throw new Error('There is already an actionName called "'.concat(t,'"'));o[t]=r}},{key:"send",value:function send(t,r,o){this._postMessage({sourceName:this.sourceName,targetName:this.targetName,action:t,data:r},o)}},{key:"sendWithPromise",value:function sendWithPromise(t,r,o){var l=this.callbackId++,u=(0,c.createPromiseCapability)();this.callbackCapabilities[l]=u;try{this._postMessage({sourceName:this.sourceName,targetName:this.targetName,action:t,callbackId:l,data:r},o)}catch(t){u.reject(t)}return u.promise}},{key:"sendWithStream",value:function sendWithStream(t,r,o,l){var u=this,h=this.streamId++,m=this.sourceName,g=this.targetName,y=this.comObj;return new ReadableStream({start:function start(o){var d=(0,c.createPromiseCapability)();u.streamControllers[h]={controller:o,startCall:d,pullCall:null,cancelCall:null,isClosed:!1};u._postMessage({sourceName:m,targetName:g,action:t,streamId:h,data:r,desiredSize:o.desiredSize},l);return d.promise},pull:function pull(t){var r=(0,c.createPromiseCapability)();u.streamControllers[h].pullCall=r;y.postMessage({sourceName:m,targetName:g,stream:S,streamId:h,desiredSize:t.desiredSize});return r.promise},cancel:function cancel(t){(0,c.assert)(t instanceof Error,"cancel must have a valid reason");var r=(0,c.createPromiseCapability)();u.streamControllers[h].cancelCall=r;u.streamControllers[h].isClosed=!0;y.postMessage({sourceName:m,targetName:g,stream:d,streamId:h,reason:wrapReason(t)});return r.promise}},o)}},{key:"_createStreamSink",value:function _createStreamSink(t){var r=t.streamId,o=this.sourceName,l=t.sourceName,u=this.comObj,h=this,d=this.actionHandler[t.action],m={enqueue:function enqueue(t){var u=arguments.length>1&&void 0!==arguments[1]?arguments[1]:1,d=arguments.length>2?arguments[2]:void 0;if(!this.isCancelled){var m=this.desiredSize;this.desiredSize-=u;if(m>0&&this.desiredSize<=0){this.sinkCapability=(0,c.createPromiseCapability)();this.ready=this.sinkCapability.promise}h._postMessage({sourceName:o,targetName:l,stream:y,streamId:r,chunk:t},d)}},close:function close(){if(!this.isCancelled){this.isCancelled=!0;u.postMessage({sourceName:o,targetName:l,stream:g,streamId:r});delete h.streamSinks[r]}},error:function error(t){(0,c.assert)(t instanceof Error,"error must have a valid reason");if(!this.isCancelled){this.isCancelled=!0;u.postMessage({sourceName:o,targetName:l,stream:v,streamId:r,reason:wrapReason(t)})}},sinkCapability:(0,c.createPromiseCapability)(),onPull:null,onCancel:null,isCancelled:!1,desiredSize:t.desiredSize,ready:null};m.sinkCapability.resolve();m.ready=m.sinkCapability.promise;this.streamSinks[r]=m;new Promise((function(r){r(d(t.data,m))})).then((function(){u.postMessage({sourceName:o,targetName:l,stream:k,streamId:r,success:!0})}),(function(t){u.postMessage({sourceName:o,targetName:l,stream:k,streamId:r,reason:wrapReason(t)})}))}},{key:"_processStreamMessage",value:function _processStreamMessage(t){var r=t.streamId,o=this.sourceName,l=t.sourceName,u=this.comObj,h=this.streamControllers[r],C=this.streamSinks[r];switch(t.stream){case k:t.success?h.startCall.resolve():h.startCall.reject(wrapReason(t.reason));break;case _:t.success?h.pullCall.resolve():h.pullCall.reject(wrapReason(t.reason));break;case S:if(!C){u.postMessage({sourceName:o,targetName:l,stream:_,streamId:r,success:!0});break}C.desiredSize<=0&&t.desiredSize>0&&C.sinkCapability.resolve();C.desiredSize=t.desiredSize;new Promise((function(t){t(C.onPull&&C.onPull())})).then((function(){u.postMessage({sourceName:o,targetName:l,stream:_,streamId:r,success:!0})}),(function(t){u.postMessage({sourceName:o,targetName:l,stream:_,streamId:r,reason:wrapReason(t)})}));break;case y:(0,c.assert)(h,"enqueue should have stream controller");if(h.isClosed)break;h.controller.enqueue(t.chunk);break;case g:(0,c.assert)(h,"close should have stream controller");if(h.isClosed)break;h.isClosed=!0;h.controller.close();this._deleteStreamController(h,r);break;case v:(0,c.assert)(h,"error should have stream controller");h.controller.error(wrapReason(t.reason));this._deleteStreamController(h,r);break;case m:t.success?h.cancelCall.resolve():h.cancelCall.reject(wrapReason(t.reason));this._deleteStreamController(h,r);break;case d:if(!C)break;new Promise((function(r){r(C.onCancel&&C.onCancel(wrapReason(t.reason)))})).then((function(){u.postMessage({sourceName:o,targetName:l,stream:m,streamId:r,success:!0})}),(function(t){u.postMessage({sourceName:o,targetName:l,stream:m,streamId:r,reason:wrapReason(t)})}));C.sinkCapability.reject(wrapReason(t.reason));C.isCancelled=!0;delete this.streamSinks[r];break;default:throw new Error("Unexpected stream case")}}},{key:"_deleteStreamController",value:(t=function _asyncToGenerator(t){return function(){var r=this,o=arguments;return new Promise((function(l,c){var u=t.apply(r,o);function _next(t){asyncGeneratorStep(u,l,c,_next,_throw,"next",t)}function _throw(t){asyncGeneratorStep(u,l,c,_next,_throw,"throw",t)}_next(void 0)}))}}(l.default.mark((function _callee(t,r){return l.default.wrap((function _callee$(o){for(;;)switch(o.prev=o.next){case 0:o.next=2;return Promise.allSettled([t.startCall&&t.startCall.promise,t.pullCall&&t.pullCall.promise,t.cancelCall&&t.cancelCall.promise]);case 2:delete this.streamControllers[r];case 3:case"end":return o.stop()}}),_callee,this)}))),function _deleteStreamController(r,o){return t.apply(this,arguments)})},{key:"_postMessage",value:function _postMessage(t,r){r&&this.postMessageTransfers?this.comObj.postMessage(t,r):this.comObj.postMessage(t)}},{key:"destroy",value:function destroy(){this.comObj.removeEventListener("message",this._onComObjOnMessage)}}]);var t;return MessageHandler}();r.MessageHandler=C},(t,r,o)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});r.PDFWorkerStream=void 0;var l=function _interopRequireDefault(t){return t&&t.__esModule?t:{default:t}}(o(2)),c=o(4);function asyncGeneratorStep(t,r,o,l,c,u,h){try{var d=t[u](h),m=d.value}catch(t){o(t);return}d.done?r(m):Promise.resolve(m).then(l,c)}function _asyncToGenerator(t){return function(){var r=this,o=arguments;return new Promise((function(l,c){var u=t.apply(r,o);function _next(t){asyncGeneratorStep(u,l,c,_next,_throw,"next",t)}function _throw(t){asyncGeneratorStep(u,l,c,_next,_throw,"throw",t)}_next(void 0)}))}}function _createForOfIteratorHelper(t,r){var o="undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(!o){if(Array.isArray(t)||(o=function _unsupportedIterableToArray(t,r){if(!t)return;if("string"==typeof t)return _arrayLikeToArray(t,r);var o=Object.prototype.toString.call(t).slice(8,-1);"Object"===o&&t.constructor&&(o=t.constructor.name);if("Map"===o||"Set"===o)return Array.from(t);if("Arguments"===o||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(o))return _arrayLikeToArray(t,r)}(t))||r&&t&&"number"==typeof t.length){o&&(t=o);var l=0,c=function F(){};return{s:c,n:function n(){return l>=t.length?{done:!0}:{done:!1,value:t[l++]}},e:function e(t){throw t},f:c}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var u,h=!0,d=!1;return{s:function s(){o=o.call(t)},n:function n(){var t=o.next();h=t.done;return t},e:function e(t){d=!0;u=t},f:function f(){try{h||null==o.return||o.return()}finally{if(d)throw u}}}}function _arrayLikeToArray(t,r){(null==r||r>t.length)&&(r=t.length);for(var o=0,l=new Array(r);o<r;o++)l[o]=t[o];return l}function _classCallCheck(t,r){if(!(t instanceof r))throw new TypeError("Cannot call a class as a function")}function _defineProperties(t,r){for(var o=0;o<r.length;o++){var l=r[o];l.enumerable=l.enumerable||!1;l.configurable=!0;"value"in l&&(l.writable=!0);Object.defineProperty(t,l.key,l)}}function _createClass(t,r,o){r&&_defineProperties(t.prototype,r);o&&_defineProperties(t,o);return t}var u=function(){function PDFWorkerStream(t){_classCallCheck(this,PDFWorkerStream);this._msgHandler=t;this._contentLength=null;this._fullRequestReader=null;this._rangeRequestReaders=[]}_createClass(PDFWorkerStream,[{key:"getFullReader",value:function getFullReader(){(0,c.assert)(!this._fullRequestReader,"PDFWorkerStream.getFullReader can only be called once.");this._fullRequestReader=new h(this._msgHandler);return this._fullRequestReader}},{key:"getRangeReader",value:function getRangeReader(t,r){var o=new d(t,r,this._msgHandler);this._rangeRequestReaders.push(o);return o}},{key:"cancelAllRequests",value:function cancelAllRequests(t){this._fullRequestReader&&this._fullRequestReader.cancel(t);var r,o=_createForOfIteratorHelper(this._rangeRequestReaders.slice(0));try{for(o.s();!(r=o.n()).done;){r.value.cancel(t)}}catch(t){o.e(t)}finally{o.f()}}}]);return PDFWorkerStream}();r.PDFWorkerStream=u;var h=function(){function PDFWorkerStreamReader(t){var r=this;_classCallCheck(this,PDFWorkerStreamReader);this._msgHandler=t;this.onProgress=null;this._contentLength=null;this._isRangeSupported=!1;this._isStreamingSupported=!1;var o=this._msgHandler.sendWithStream("GetReader");this._reader=o.getReader();this._headersReady=this._msgHandler.sendWithPromise("ReaderHeadersReady").then((function(t){r._isStreamingSupported=t.isStreamingSupported;r._isRangeSupported=t.isRangeSupported;r._contentLength=t.contentLength}))}_createClass(PDFWorkerStreamReader,[{key:"headersReady",get:function get(){return this._headersReady}},{key:"contentLength",get:function get(){return this._contentLength}},{key:"isStreamingSupported",get:function get(){return this._isStreamingSupported}},{key:"isRangeSupported",get:function get(){return this._isRangeSupported}},{key:"read",value:(t=_asyncToGenerator(l.default.mark((function _callee(){var t,r;return l.default.wrap((function _callee$(o){for(;;)switch(o.prev=o.next){case 0:o.next=2;return this._reader.read();case 2:t=o.sent;r=t.value;if(!t.done){o.next=7;break}return o.abrupt("return",{value:void 0,done:!0});case 7:return o.abrupt("return",{value:r.buffer,done:!1});case 8:case"end":return o.stop()}}),_callee,this)}))),function read(){return t.apply(this,arguments)})},{key:"cancel",value:function cancel(t){this._reader.cancel(t)}}]);var t;return PDFWorkerStreamReader}(),d=function(){function PDFWorkerStreamRangeReader(t,r,o){_classCallCheck(this,PDFWorkerStreamRangeReader);this._msgHandler=o;this.onProgress=null;var l=this._msgHandler.sendWithStream("GetRangeReader",{begin:t,end:r});this._reader=l.getReader()}_createClass(PDFWorkerStreamRangeReader,[{key:"isStreamingSupported",get:function get(){return!1}},{key:"read",value:(t=_asyncToGenerator(l.default.mark((function _callee2(){var t,r;return l.default.wrap((function _callee2$(o){for(;;)switch(o.prev=o.next){case 0:o.next=2;return this._reader.read();case 2:t=o.sent;r=t.value;if(!t.done){o.next=7;break}return o.abrupt("return",{value:void 0,done:!0});case 7:return o.abrupt("return",{value:r.buffer,done:!1});case 8:case"end":return o.stop()}}),_callee2,this)}))),function read(){return t.apply(this,arguments)})},{key:"cancel",value:function cancel(t){this._reader.cancel(t)}}]);var t;return PDFWorkerStreamRangeReader}()}],r={};function __w_pdfjs_require__(o){var l=r[o];if(void 0!==l)return l.exports;var c=r[o]={id:o,loaded:!1,exports:{}};t[o].call(c.exports,c,c.exports,__w_pdfjs_require__);c.loaded=!0;return c.exports}__w_pdfjs_require__.d=(t,r)=>{for(var o in r)__w_pdfjs_require__.o(r,o)&&!__w_pdfjs_require__.o(t,o)&&Object.defineProperty(t,o,{enumerable:!0,get:r[o]})};__w_pdfjs_require__.o=(t,r)=>Object.prototype.hasOwnProperty.call(t,r);__w_pdfjs_require__.r=t=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});Object.defineProperty(t,"__esModule",{value:!0})};__w_pdfjs_require__.nmd=t=>{t.paths=[];t.children||(t.children=[]);return t};var o={};(()=>{"use strict";var t=o;Object.defineProperty(t,"__esModule",{value:!0});Object.defineProperty(t,"WorkerMessageHandler",{enumerable:!0,get:function get(){return r.WorkerMessageHandler}});var r=__w_pdfjs_require__(1)})();return o})()}));
\ No newline at end of file
diff --git a/node_modules/pdfh5/js/pdfh5.js b/node_modules/pdfh5/js/pdfh5.js
new file mode 100644
index 0000000..7ffda81
--- /dev/null
+++ b/node_modules/pdfh5/js/pdfh5.js
@@ -0,0 +1,2164 @@
+;
+(function (g, fn) {
+ var version = "1.4.9",
+ pdfjsVersion = "2.11.338";
+ console.log("pdfh5.js v" + version + " && pdf.js v" + pdfjsVersion + " https://pdfh5.gjtool.cn");
+ if (typeof require !== 'undefined') {
+ if (g.$ === undefined) {
+ g.$ = require('./jquery-3.6.0.min.js');
+ }
+ if (g["pdfjs-dist/build/pdf.worker"]) {
+ g.pdfjsWorker = g["pdfjs-dist/build/pdf.worker"];
+ } else {
+ g.pdfjsWorker = require("./pdf.worker.js");
+ }
+ if (g["pdfjs-dist/build/pdf"]) {
+ g.pdfjsLib = g["pdfjs-dist/build/pdf"];
+ } else {
+ g.pdfjsLib = require("./pdf.js");
+ }
+ }
+ var pdfjsLib = g.pdfjsLib,
+ $ = g.$,
+ pdfjsWorker = g.pdfjsWorker;
+ if (typeof define === 'function' && define.amd) {
+ define(function () {
+ return fn(g, pdfjsWorker, pdfjsLib, $, version);
+ });
+ } else if (typeof module !== 'undefined' && module.exports) {
+ module.exports = fn(g, pdfjsWorker, pdfjsLib, $, version);
+ } else {
+ g.Pdfh5 = fn(g, pdfjsWorker, pdfjsLib, $, version);
+ }
+})(typeof window !== 'undefined' ? window : this, function (g, pdfjsWorker, pdfjsLib, $, version) {
+ 'use strict';
+
+ var _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;
+ };
+ }();
+
+ function _classCallCheck(instance, Constructor) {
+ if (!(instance instanceof Constructor)) {
+ throw new TypeError("Cannot call a class as a function");
+ }
+ }
+
+ var renderTextLayer = pdfjsLib.renderTextLayer;
+ var EXPAND_DIVS_TIMEOUT = 300; // ms
+
+ var TextLayerBuilder = function () {
+ function TextLayerBuilder(_ref) {
+ var textLayerDiv = _ref.textLayerDiv;
+ var eventBus = _ref.eventBus;
+ var pageIndex = _ref.pageIndex;
+ var viewport = _ref.viewport;
+ var _ref$findController = _ref.findController;
+ var findController = _ref$findController === undefined ? null : _ref$findController;
+ var _ref$enhanceTextSelec = _ref.enhanceTextSelection;
+ var enhanceTextSelection = _ref$enhanceTextSelec === undefined ? false : _ref$enhanceTextSelec;
+
+ _classCallCheck(this, TextLayerBuilder);
+
+ this.textLayerDiv = textLayerDiv;
+ this.eventBus = eventBus;
+ this.textContent = null;
+ this.textContentItemsStr = [];
+ this.textContentStream = null;
+ this.renderingDone = false;
+ this.pageIdx = pageIndex;
+ this.pageNumber = this.pageIdx + 1;
+ this.matches = [];
+ this.viewport = viewport;
+ this.textDivs = [];
+ this.findController = findController;
+ this.textLayerRenderTask = null;
+ this.enhanceTextSelection = enhanceTextSelection;
+
+ this._onUpdateTextLayerMatches = null;
+ this._bindMouse();
+ }
+
+ /**
+ * @private
+ */
+ _createClass(TextLayerBuilder, [{
+ key: "_finishRendering",
+ value: function _finishRendering() {
+ this.renderingDone = true;
+
+ if (!this.enhanceTextSelection) {
+ var endOfContent = document.createElement("div");
+ endOfContent.className = "endOfContent";
+ this.textLayerDiv.appendChild(endOfContent);
+ }
+ if (this.eventBus) {
+ this.eventBus.dispatch("textlayerrendered", {
+ source: this,
+ pageNumber: this.pageNumber,
+ numTextDivs: this.textDivs.length
+ });
+ }
+ }
+
+ /**
+ * Renders the text layer.
+ *
+ * @param {number} [timeout] - Wait for a specified amount of milliseconds
+ * before rendering.
+ */
+
+ }, {
+ key: "render",
+ value: function render() {
+ var _this = this;
+
+ var timeout = arguments.length <= 0 || arguments[0] === undefined ? 0 :
+ arguments[0];
+
+ if (!(this.textContent || this.textContentStream) || this.renderingDone) {
+ return;
+ }
+ this.cancel();
+
+ this.textDivs = [];
+ var textLayerFrag = document.createDocumentFragment();
+ this.textLayerRenderTask = renderTextLayer({
+ textContent: this.textContent,
+ textContentStream: this.textContentStream,
+ container: textLayerFrag,
+ viewport: this.viewport,
+ textDivs: this.textDivs,
+ textContentItemsStr: this.textContentItemsStr,
+ timeout: timeout,
+ enhanceTextSelection: this.enhanceTextSelection
+ });
+ this.textLayerRenderTask.promise.then(function () {
+ _this.textLayerDiv.appendChild(textLayerFrag);
+ _this._finishRendering();
+ _this._updateMatches();
+ }, function (reason) {
+ // Cancelled or failed to render text layer; skipping errors.
+ });
+
+ if (!this._onUpdateTextLayerMatches) {
+ this._onUpdateTextLayerMatches = function (evt) {
+ if (evt.pageIndex === _this.pageIdx || evt.pageIndex === -1) {
+ _this._updateMatches();
+ }
+ };
+ if (this.eventBus) {
+ this.eventBus._on("updatetextlayermatches", this
+ ._onUpdateTextLayerMatches);
+ }
+ }
+ }
+
+ /**
+ * Cancel rendering of the text layer.
+ */
+
+ }, {
+ key: "cancel",
+ value: function cancel() {
+ if (this.textLayerRenderTask) {
+ this.textLayerRenderTask.cancel();
+ this.textLayerRenderTask = null;
+ }
+ if (this._onUpdateTextLayerMatches) {
+ this.eventBus._off("updatetextlayermatches", this
+ ._onUpdateTextLayerMatches);
+ this._onUpdateTextLayerMatches = null;
+ }
+ }
+ }, {
+ key: "setTextContentStream",
+ value: function setTextContentStream(readableStream) {
+ this.cancel();
+ this.textContentStream = readableStream;
+ }
+ }, {
+ key: "setTextContent",
+ value: function setTextContent(textContent) {
+ this.cancel();
+ this.textContent = textContent;
+ }
+ }, {
+ key: "_convertMatches",
+ value: function _convertMatches(matches, matchesLength) {
+ // Early exit if there is nothing to convert.
+ if (!matches) {
+ return [];
+ }
+ var findController = this.findController;
+ var textContentItemsStr = this.textContentItemsStr;
+
+
+ var i = 0,
+ iIndex = 0;
+ var end = textContentItemsStr.length - 1;
+ var queryLen = findController.state.query.length;
+ var result = [];
+
+ for (var m = 0, mm = matches.length; m < mm; m++) {
+ // Calculate the start position.
+ var matchIdx = matches[m];
+
+ // Loop over the divIdxs.
+ while (i !== end && matchIdx >= iIndex + textContentItemsStr[i].length) {
+ iIndex += textContentItemsStr[i].length;
+ i++;
+ }
+
+ if (i === textContentItemsStr.length) {
+ console.error("Could not find a matching mapping");
+ }
+
+ var match = {
+ begin: {
+ divIdx: i,
+ offset: matchIdx - iIndex
+ }
+ };
+
+ // Calculate the end position.
+ if (matchesLength) {
+ // Multiterm search.
+ matchIdx += matchesLength[m];
+ } else {
+ // Phrase search.
+ matchIdx += queryLen;
+ }
+
+ // Somewhat the same array as above, but use > instead of >= to get
+ // the end position right.
+ while (i !== end && matchIdx > iIndex + textContentItemsStr[i].length) {
+ iIndex += textContentItemsStr[i].length;
+ i++;
+ }
+
+ match.end = {
+ divIdx: i,
+ offset: matchIdx - iIndex
+ };
+ result.push(match);
+ }
+ return result;
+ }
+ }, {
+ key: "_renderMatches",
+ value: function _renderMatches(matches) {
+ // Early exit if there is nothing to render.
+ if (matches.length === 0) {
+ return;
+ }
+ var findController = this.findController;
+ var pageIdx = this.pageIdx;
+ var textContentItemsStr = this.textContentItemsStr;
+ var textDivs = this.textDivs;
+
+
+ var isSelectedPage = pageIdx === findController.selected.pageIdx;
+ var selectedMatchIdx = findController.selected.matchIdx;
+ var highlightAll = findController.state.highlightAll;
+ var prevEnd = null;
+ var infinity = {
+ divIdx: -1,
+ offset: undefined
+ };
+
+ function beginText(begin, className) {
+ var divIdx = begin.divIdx;
+ textDivs[divIdx].textContent = "";
+ appendTextToDiv(divIdx, 0, begin.offset, className);
+ }
+
+ function appendTextToDiv(divIdx, fromOffset, toOffset, className) {
+ var div = textDivs[divIdx];
+ var content = textContentItemsStr[divIdx].substring(fromOffset, toOffset);
+ var node = document.createTextNode(content);
+ if (className) {
+ var span = document.createElement("span");
+ span.className = className;
+ span.appendChild(node);
+ div.appendChild(span);
+ return;
+ }
+ div.appendChild(node);
+ }
+
+ var i0 = selectedMatchIdx,
+ i1 = i0 + 1;
+ if (highlightAll) {
+ i0 = 0;
+ i1 = matches.length;
+ } else if (!isSelectedPage) {
+ // Not highlighting all and this isn't the selected page, so do nothing.
+ return;
+ }
+
+ for (var i = i0; i < i1; i++) {
+ var match = matches[i];
+ var begin = match.begin;
+ var end = match.end;
+ var isSelected = isSelectedPage && i === selectedMatchIdx;
+ var highlightSuffix = isSelected ? " selected" : "";
+
+ if (isSelected) {
+ // Attempt to scroll the selected match into view.
+ findController.scrollMatchIntoView({
+ element: textDivs[begin.divIdx],
+ pageIndex: pageIdx,
+ matchIndex: selectedMatchIdx
+ });
+ }
+
+ // Match inside new div.
+ if (!prevEnd || begin.divIdx !== prevEnd.divIdx) {
+ // If there was a previous div, then add the text at the end.
+ if (prevEnd !== null) {
+ appendTextToDiv(prevEnd.divIdx, prevEnd.offset, infinity.offset);
+ }
+ // Clear the divs and set the content until the starting point.
+ beginText(begin);
+ } else {
+ appendTextToDiv(prevEnd.divIdx, prevEnd.offset, begin.offset);
+ }
+
+ if (begin.divIdx === end.divIdx) {
+ appendTextToDiv(begin.divIdx, begin.offset, end.offset, "highlight" +
+ highlightSuffix);
+ } else {
+ appendTextToDiv(begin.divIdx, begin.offset, infinity.offset,
+ "highlight begin" + highlightSuffix);
+ for (var n0 = begin.divIdx + 1, n1 = end.divIdx; n0 < n1; n0++) {
+ textDivs[n0].className = "highlight middle" + highlightSuffix;
+ }
+ beginText(end, "highlight end" + highlightSuffix);
+ }
+ prevEnd = end;
+ }
+
+ if (prevEnd) {
+ appendTextToDiv(prevEnd.divIdx, prevEnd.offset, infinity.offset);
+ }
+ }
+ }, {
+ key: "_updateMatches",
+ value: function _updateMatches() {
+ // Only show matches when all rendering is done.
+ if (!this.renderingDone) {
+ return;
+ }
+ var findController = this.findController;
+ var matches = this.matches;
+ var pageIdx = this.pageIdx;
+ var textContentItemsStr = this.textContentItemsStr;
+ var textDivs = this.textDivs;
+
+ var clearedUntilDivIdx = -1;
+
+ // Clear all current matches.
+ for (var i = 0, ii = matches.length; i < ii; i++) {
+ var match = matches[i];
+ var begin = Math.max(clearedUntilDivIdx, match.begin.divIdx);
+ for (var n = begin, end = match.end.divIdx; n <= end; n++) {
+ var div = textDivs[n];
+ div.textContent = textContentItemsStr[n];
+ div.className = "";
+ }
+ clearedUntilDivIdx = match.end.divIdx + 1;
+ }
+
+ if (!findController || !findController.highlightMatches) {
+ return;
+ }
+ // Convert the matches on the `findController` into the match format
+ // used for the textLayer.
+ var pageMatches = findController.pageMatches[pageIdx] || null;
+ var pageMatchesLength = findController.pageMatchesLength[pageIdx] || null;
+
+ this.matches = this._convertMatches(pageMatches, pageMatchesLength);
+ this._renderMatches(this.matches);
+ }
+
+ /**
+ * Improves text selection by adding an additional div where the mouse was
+ * clicked. This reduces flickering of the content if the mouse is slowly
+ * dragged up or down.
+ *
+ * @private
+ */
+
+ }, {
+ key: "_bindMouse",
+ value: function _bindMouse() {
+ var _this2 = this;
+
+ var div = this.textLayerDiv;
+ var expandDivsTimer = null;
+
+ div.addEventListener("mousedown", function (evt) {
+ if (_this2.enhanceTextSelection && _this2.textLayerRenderTask) {
+ _this2.textLayerRenderTask.expandTextDivs(true);
+ if ((typeof PDFJSDev === "undefined" || !PDFJSDev.test(
+ "MOZCENTRAL")) && expandDivsTimer) {
+ clearTimeout(expandDivsTimer);
+ expandDivsTimer = null;
+ }
+ return;
+ }
+
+ var end = div.querySelector(".endOfContent");
+ if (!end) {
+ return;
+ }
+ if (typeof PDFJSDev === "undefined" || !PDFJSDev.test(
+ "MOZCENTRAL")) {
+ // On non-Firefox browsers, the selection will feel better if the height
+ // of the `endOfContent` div is adjusted to start at mouse click
+ // location. This avoids flickering when the selection moves up.
+ // However it does not work when selection is started on empty space.
+ var adjustTop = evt.target !== div;
+ if (typeof PDFJSDev === "undefined" || PDFJSDev.test(
+ "GENERIC")) {
+ adjustTop = adjustTop && window.getComputedStyle(end)
+ .getPropertyValue("-moz-user-select") !== "none";
+ }
+ if (adjustTop) {
+ var divBounds = div.getBoundingClientRect();
+ var r = Math.max(0, (evt.pageY - divBounds.top) / divBounds
+ .height);
+ end.style.top = (r * 100).toFixed(2) + "%";
+ }
+ }
+ end.classList.add("active");
+ });
+
+ div.addEventListener("mouseup", function () {
+ if (_this2.enhanceTextSelection && _this2.textLayerRenderTask) {
+ if (typeof PDFJSDev === "undefined" || !PDFJSDev.test(
+ "MOZCENTRAL")) {
+ expandDivsTimer = setTimeout(function () {
+ if (_this2.textLayerRenderTask) {
+ _this2.textLayerRenderTask.expandTextDivs(
+ false);
+ }
+ expandDivsTimer = null;
+ }, EXPAND_DIVS_TIMEOUT);
+ } else {
+ _this2.textLayerRenderTask.expandTextDivs(false);
+ }
+ return;
+ }
+
+ var end = div.querySelector(".endOfContent");
+ if (!end) {
+ return;
+ }
+ if (typeof PDFJSDev === "undefined" || !PDFJSDev.test(
+ "MOZCENTRAL")) {
+ end.style.top = "";
+ }
+ end.classList.remove("active");
+ });
+ }
+ }]);
+
+ return TextLayerBuilder;
+ }();
+
+ /**
+ * @implements IPDFTextLayerFactory
+ */
+
+
+ var DefaultTextLayerFactory = function () {
+ function DefaultTextLayerFactory() {
+ _classCallCheck(this, DefaultTextLayerFactory);
+ }
+
+ _createClass(DefaultTextLayerFactory, [{
+ key: "createTextLayerBuilder",
+
+ /**
+ * @param {HTMLDivElement} textLayerDiv
+ * @param {number} pageIndex
+ * @param {PageViewport} viewport
+ * @param {boolean} enhanceTextSelection
+ * @param {EventBus} eventBus
+ * @returns {TextLayerBuilder}
+ */
+ value: function createTextLayerBuilder(textLayerDiv, pageIndex, viewport) {
+ var enhanceTextSelection = arguments.length <= 3 || arguments[3] === undefined ?
+ false : arguments[3];
+ var eventBus = arguments[4];
+
+ return new TextLayerBuilder({
+ textLayerDiv: textLayerDiv,
+ pageIndex: pageIndex,
+ viewport: viewport,
+ enhanceTextSelection: enhanceTextSelection,
+ eventBus: eventBus
+ });
+ }
+ }]);
+
+ return DefaultTextLayerFactory;
+ }();
+
+ g.TextLayerBuilder = TextLayerBuilder;
+ g.DefaultTextLayerFactory = DefaultTextLayerFactory;
+
+ var definePinchZoom = function ($) {
+ var PinchZoom = function (el, options, viewerContainer) {
+ this.el = $(el);
+ this.viewerContainer = viewerContainer;
+ this.zoomFactor = 1;
+ this.lastScale = 1;
+ this.offset = {
+ x: 0,
+ y: 0
+ };
+ this.options = $.extend({}, this.defaults, options);
+ this.options.zoomOutFactor = isNaN(options.zoomOutFactor) ? 1.2 : options.zoomOutFactor;
+ this.options.animationDuration = isNaN(options.animationDuration) ? 300 : options
+ .animationDuration;
+ this.options.maxZoom = isNaN(options.maxZoom) ? 3 : options.maxZoom;
+ this.options.minZoom = isNaN(options.minZoom) ? 0.8 : options.minZoom;
+ this.setupMarkup();
+ this.bindEvents();
+ this.update();
+ this.enable();
+ this.height = 0;
+ this.load = false;
+ this.direction = null;
+ this.clientY = null;
+ this.lastclientY = null;
+ },
+ sum = function (a, b) {
+ return a + b;
+ },
+ isCloseTo = function (value, expected) {
+ return value > expected - 0.01 && value < expected + 0.01;
+ };
+
+ PinchZoom.prototype = {
+ defaults: {
+ tapZoomFactor: 3,
+ zoomOutFactor: 1.2,
+ animationDuration: 300,
+ maxZoom: 5,
+ minZoom: 0.8,
+ lockDragAxis: false,
+ use2d: true,
+ zoomStartEventName: 'pz_zoomstart',
+ zoomEndEventName: 'pz_zoomend',
+ dragStartEventName: 'pz_dragstart',
+ dragEndEventName: 'pz_dragend',
+ doubleTapEventName: 'pz_doubletap'
+ },
+ handleDragStart: function (event) {
+ this.el.trigger(this.options.dragStartEventName);
+ this.stopAnimation();
+ this.lastDragPosition = false;
+ this.hasInteraction = true;
+ this.handleDrag(event);
+ },
+ handleDrag: function (event) {
+
+ if (this.zoomFactor > 1.0) {
+ var touch = this.getTouches(event)[0];
+ this.drag(touch, this.lastDragPosition, event);
+ this.offset = this.sanitizeOffset(this.offset);
+ this.lastDragPosition = touch;
+ }
+ },
+
+ handleDragEnd: function () {
+ this.el.trigger(this.options.dragEndEventName);
+ this.end();
+ },
+ handleZoomStart: function (event) {
+ this.el.trigger(this.options.zoomStartEventName);
+ this.stopAnimation();
+ this.lastScale = 1;
+ this.nthZoom = 0;
+ this.lastZoomCenter = false;
+ this.hasInteraction = true;
+ },
+ handleZoom: function (event, newScale) {
+ var touchCenter = this.getTouchCenter(this.getTouches(event)),
+ scale = newScale / this.lastScale;
+ this.lastScale = newScale;
+ this.nthZoom += 1;
+ if (this.nthZoom > 3) {
+
+ this.scale(scale, touchCenter);
+ this.drag(touchCenter, this.lastZoomCenter);
+ }
+ this.lastZoomCenter = touchCenter;
+ },
+
+ handleZoomEnd: function () {
+ this.el.trigger(this.options.zoomEndEventName);
+ this.end();
+ },
+ handleDoubleTap: function (event) {
+ var center = this.getTouches(event)[0],
+ zoomFactor = this.zoomFactor > 1 ? 1 : this.options.tapZoomFactor,
+ startZoomFactor = this.zoomFactor,
+ updateProgress = (function (progress) {
+ this.scaleTo(startZoomFactor + progress * (zoomFactor - startZoomFactor),
+ center);
+ }).bind(this);
+
+ if (this.hasInteraction) {
+ return;
+ }
+ if (startZoomFactor > zoomFactor) {
+ center = this.getCurrentZoomCenter();
+ }
+
+ this.animate(this.options.animationDuration, updateProgress, this.swing);
+ this.el.trigger(this.options.doubleTapEventName);
+ },
+ sanitizeOffset: function (offset) {
+ var maxX = (this.zoomFactor - 1) * this.getContainerX(),
+ maxY = (this.zoomFactor - 1) * this.getContainerY(),
+ maxOffsetX = Math.max(maxX, 0),
+ maxOffsetY = Math.max(maxY, 0),
+ minOffsetX = Math.min(maxX, 0),
+ minOffsetY = Math.min(maxY, 0);
+
+ var x = Math.min(Math.max(offset.x, minOffsetX), maxOffsetX),
+ y = Math.min(Math.max(offset.y, minOffsetY), maxOffsetY);
+
+
+ return {
+ x: x,
+ y: y
+ };
+ },
+ scaleTo: function (zoomFactor, center) {
+ this.scale(zoomFactor / this.zoomFactor, center);
+ },
+ scale: function (scale, center) {
+ scale = this.scaleZoomFactor(scale);
+ this.addOffset({
+ x: (scale - 1) * (center.x + this.offset.x),
+ y: (scale - 1) * (center.y + this.offset.y)
+ });
+ this.done && this.done.call(this, this.getInitialZoomFactor() * this.zoomFactor);
+ },
+ scaleZoomFactor: function (scale) {
+ var originalZoomFactor = this.zoomFactor;
+ this.zoomFactor *= scale;
+ this.zoomFactor = Math.min(this.options.maxZoom, Math.max(this.zoomFactor, this.options
+ .minZoom));
+ return this.zoomFactor / originalZoomFactor;
+ },
+ drag: function (center, lastCenter, event) {
+ if (lastCenter) {
+ if (this.options.lockDragAxis) {
+ if (Math.abs(center.x - lastCenter.x) > Math.abs(center.y - lastCenter.y)) {
+ this.addOffset({
+ x: -(center.x - lastCenter.x),
+ y: 0
+ });
+ } else {
+ this.addOffset({
+ y: -(center.y - lastCenter.y),
+ x: 0
+ });
+ }
+ } else {
+ if (center.y - lastCenter.y < 0) {
+ this.direction = "down";
+ } else if (center.y - lastCenter.y > 10) {
+ this.direction = "up";
+ }
+ this.addOffset({
+ y: -(center.y - lastCenter.y),
+ x: -(center.x - lastCenter.x)
+ });
+ }
+ }
+ },
+ getTouchCenter: function (touches) {
+ return this.getVectorAvg(touches);
+ },
+ getVectorAvg: function (vectors) {
+ return {
+ x: vectors.map(function (v) {
+ return v.x;
+ }).reduce(sum) / vectors.length,
+ y: vectors.map(function (v) {
+ return v.y;
+ }).reduce(sum) / vectors.length
+ };
+ },
+ addOffset: function (offset) {
+ this.offset = {
+ x: this.offset.x + offset.x,
+ y: this.offset.y + offset.y
+ };
+ },
+
+ sanitize: function () {
+ if (this.zoomFactor < this.options.zoomOutFactor) {
+ this.zoomOutAnimation();
+ } else if (this.isInsaneOffset(this.offset)) {
+ this.sanitizeOffsetAnimation();
+ }
+ },
+ isInsaneOffset: function (offset) {
+ var sanitizedOffset = this.sanitizeOffset(offset);
+ return sanitizedOffset.x !== offset.x ||
+ sanitizedOffset.y !== offset.y;
+ },
+ sanitizeOffsetAnimation: function () {
+ var targetOffset = this.sanitizeOffset(this.offset),
+ startOffset = {
+ x: this.offset.x,
+ y: this.offset.y
+ },
+ updateProgress = (function (progress) {
+ this.offset.x = startOffset.x + progress * (targetOffset.x - startOffset.x);
+ this.offset.y = startOffset.y + progress * (targetOffset.y - startOffset.y);
+ this.update();
+ }).bind(this);
+
+ this.animate(
+ this.options.animationDuration,
+ updateProgress,
+ this.swing
+ );
+ },
+ zoomOutAnimation: function () {
+ var startZoomFactor = this.zoomFactor,
+ zoomFactor = 1,
+ center = this.getCurrentZoomCenter(),
+ updateProgress = (function (progress) {
+ this.scaleTo(startZoomFactor + progress * (zoomFactor - startZoomFactor),
+ center);
+ }).bind(this);
+
+ this.animate(
+ this.options.animationDuration,
+ updateProgress,
+ this.swing
+ );
+ },
+ updateAspectRatio: function () {
+ this.setContainerY(this.getContainerX() / this.getAspectRatio());
+ },
+ getInitialZoomFactor: function () {
+ if (this.container[0] && this.el[0]) {
+ return this.container[0].offsetWidth / this.el[0].offsetWidth;
+ } else {
+ return 0;
+ }
+ },
+ getAspectRatio: function () {
+ if (this.el[0]) {
+ var offsetHeight = this.el[0].offsetHeight;
+ return this.container[0].offsetWidth / offsetHeight;
+ } else {
+ return 0;
+ }
+
+ },
+ getCurrentZoomCenter: function () {
+ var length = this.container[0].offsetWidth * this.zoomFactor,
+ offsetLeft = this.offset.x,
+ offsetRight = length - offsetLeft - this.container[0].offsetWidth,
+ widthOffsetRatio = offsetLeft / offsetRight,
+ centerX = widthOffsetRatio * this.container[0].offsetWidth / (widthOffsetRatio + 1),
+
+ height = this.container[0].offsetHeight * this.zoomFactor,
+ offsetTop = this.offset.y,
+ offsetBottom = height - offsetTop - this.container[0].offsetHeight,
+ heightOffsetRatio = offsetTop / offsetBottom,
+ centerY = heightOffsetRatio * this.container[0].offsetHeight / (heightOffsetRatio +
+ 1);
+
+ if (offsetRight === 0) {
+ centerX = this.container[0].offsetWidth;
+ }
+ if (offsetBottom === 0) {
+ centerY = this.container[0].offsetHeight;
+ }
+
+ return {
+ x: centerX,
+ y: centerY
+ };
+ },
+
+ canDrag: function () {
+ return !isCloseTo(this.zoomFactor, 1);
+ },
+
+ getTouches: function (event) {
+ var position = this.container.offset();
+ return Array.prototype.slice.call(event.touches).map(function (touch) {
+ return {
+ x: touch.pageX - position.left,
+ y: touch.pageY - position.top
+ };
+ });
+ },
+ animate: function (duration, framefn, timefn, callback) {
+ var startTime = new Date().getTime(),
+ renderFrame = (function () {
+ if (!this.inAnimation) {
+ return;
+ }
+ var frameTime = new Date().getTime() - startTime,
+ progress = frameTime / duration;
+ if (frameTime >= duration) {
+ framefn(1);
+ if (callback) {
+ callback();
+ }
+ this.update();
+ this.stopAnimation();
+ } else {
+ if (timefn) {
+ progress = timefn(progress);
+ }
+ framefn(progress);
+ this.update();
+ requestAnimationFrame(renderFrame);
+ }
+ }).bind(this);
+ this.inAnimation = true;
+ requestAnimationFrame(renderFrame);
+ },
+ stopAnimation: function () {
+ this.inAnimation = false;
+
+ },
+ swing: function (p) {
+ return -Math.cos(p * Math.PI) / 2 + 0.5;
+ },
+
+ getContainerX: function () {
+ if (this.el[0]) {
+ return this.el[0].offsetWidth;
+ } else {
+ return 0;
+ }
+ },
+
+ getContainerY: function () {
+ return this.el[0].offsetHeight;
+ },
+ setContainerY: function (y) {
+ y = y.toFixed(2);
+ return this.container.height(y);
+ },
+ setupMarkup: function () {
+ this.container = $('<div class="pinch-zoom-container"></div>');
+ this.el.before(this.container);
+ this.container.append(this.el);
+
+ this.container.css({
+ 'position': 'relative',
+ });
+
+ this.el.css({
+ '-webkit-transform-origin': '0% 0%',
+ '-moz-transform-origin': '0% 0%',
+ '-ms-transform-origin': '0% 0%',
+ '-o-transform-origin': '0% 0%',
+ 'transform-origin': '0% 0%',
+ 'position': 'relative'
+ });
+
+ },
+
+ end: function () {
+ this.hasInteraction = false;
+ this.sanitize();
+ this.update();
+
+ },
+ bindEvents: function () {
+ detectGestures(this.container.eq(0), this, this.viewerContainer);
+ $(g).on('resize', this.update.bind(this));
+ $(this.el).find('img').on('load', this.update.bind(this));
+
+ },
+ update: function () {
+
+ if (this.updatePlaned) {
+ return;
+ }
+ this.updatePlaned = true;
+ setTimeout((function () {
+ this.updatePlaned = false;
+ this.updateAspectRatio();
+ var zoomFactor = this.getInitialZoomFactor() * this.zoomFactor,
+ offsetX = (-this.offset.x / zoomFactor).toFixed(3),
+ offsetY = (-this.offset.y / zoomFactor).toFixed(3);
+ this.lastclientY = offsetY;
+
+ var transform3d = 'scale3d(' + zoomFactor + ', ' + zoomFactor + ',1) ' +
+ 'translate3d(' + offsetX + 'px,' + offsetY + 'px,0px)',
+ transform2d = 'scale(' + zoomFactor + ', ' + zoomFactor + ') ' +
+ 'translate(' + offsetX + 'px,' + offsetY + 'px)',
+ removeClone = (function () {
+ if (this.clone) {
+ this.clone.remove();
+ delete this.clone;
+ }
+ }).bind(this);
+ if (!this.options.use2d || this.hasInteraction || this.inAnimation) {
+ this.is3d = true;
+ this.el.css({
+ '-webkit-transform': transform3d,
+ '-o-transform': transform2d,
+ '-ms-transform': transform2d,
+ '-moz-transform': transform2d,
+ 'transform': transform3d
+ });
+ } else {
+ this.el.css({
+ '-webkit-transform': transform2d,
+ '-o-transform': transform2d,
+ '-ms-transform': transform2d,
+ '-moz-transform': transform2d,
+ 'transform': transform2d
+ });
+ this.is3d = false;
+ }
+ }).bind(this), 0);
+ },
+ enable: function () {
+ this.enabled = true;
+ },
+ disable: function () {
+ this.enabled = false;
+ },
+ destroy: function () {
+ var dom = this.el.clone();
+ var p = this.container.parent();
+ this.container.remove();
+ dom.removeAttr('style');
+ p.append(dom);
+ }
+ };
+
+ var detectGestures = function (el, target, viewerContainer) {
+ var interaction = null,
+ fingers = 0,
+ lastTouchStart = null,
+ startTouches = null,
+ lastTouchY = null,
+ clientY = null,
+ lastclientY = 0,
+ lastTop = 0,
+ setInteraction = function (newInteraction, event) {
+ if (interaction !== newInteraction) {
+
+ if (interaction && !newInteraction) {
+ switch (interaction) {
+ case "zoom":
+ target.handleZoomEnd(event);
+ break;
+ case 'drag':
+ target.handleDragEnd(event);
+ break;
+ }
+ }
+
+ switch (newInteraction) {
+ case 'zoom':
+ target.handleZoomStart(event);
+ break;
+ case 'drag':
+ target.handleDragStart(event);
+ break;
+ }
+ }
+ interaction = newInteraction;
+ },
+
+ updateInteraction = function (event) {
+ if (fingers === 2) {
+ setInteraction('zoom');
+ } else if (fingers === 1 && target.canDrag()) {
+ setInteraction('drag', event);
+ } else {
+ setInteraction(null, event);
+ }
+ },
+
+ targetTouches = function (touches) {
+ return Array.prototype.slice.call(touches).map(function (touch) {
+ return {
+ x: touch.pageX,
+ y: touch.pageY
+ };
+ });
+ },
+
+ getDistance = function (a, b) {
+ var x, y;
+ x = a.x - b.x;
+ y = a.y - b.y;
+ return Math.sqrt(x * x + y * y);
+ },
+
+ calculateScale = function (startTouches, endTouches) {
+ var startDistance = getDistance(startTouches[0], startTouches[1]),
+ endDistance = getDistance(endTouches[0], endTouches[1]);
+ return endDistance / startDistance;
+ },
+
+ cancelEvent = function (event) {
+ event.stopPropagation();
+ event.preventDefault();
+ },
+
+ detectDoubleTap = function (event) {
+ var time = (new Date()).getTime();
+ var pageY = event.changedTouches[0].pageY;
+ var top = parentNode.scrollTop || 0;
+ if (fingers > 1) {
+ lastTouchStart = null;
+ lastTouchY = null;
+ cancelEvent(event);
+ }
+
+ if (time - lastTouchStart < 300 && Math.abs(pageY - lastTouchY) < 10 && Math.abs(
+ lastTop - top) < 10) {
+ cancelEvent(event);
+ target.handleDoubleTap(event);
+ switch (interaction) {
+ case "zoom":
+ target.handleZoomEnd(event);
+ break;
+ case 'drag':
+ target.handleDragEnd(event);
+ break;
+ }
+ }
+
+ if (fingers === 1) {
+ lastTouchStart = time;
+ lastTouchY = pageY;
+ lastTop = top;
+ }
+ },
+ firstMove = true;
+ if (viewerContainer) {
+ var parentNode = viewerContainer[0];
+ }
+ if (parentNode) {
+ parentNode.addEventListener('touchstart', function (event) {
+ if (target.enabled) {
+ firstMove = true;
+ fingers = event.touches.length;
+ detectDoubleTap(event);
+ clientY = event.changedTouches[0].clientY;
+ if (fingers > 1) {
+ cancelEvent(event);
+ }
+ }
+ });
+
+ parentNode.addEventListener('touchmove', function (event) {
+ if (target.enabled) {
+ lastclientY = event.changedTouches[0].clientY;
+ if (firstMove) {
+ updateInteraction(event);
+ startTouches = targetTouches(event.touches);
+ } else {
+ switch (interaction) {
+ case 'zoom':
+ target.handleZoom(event, calculateScale(startTouches,
+ targetTouches(event.touches)));
+ break;
+ case 'drag':
+ target.handleDrag(event);
+ break;
+ }
+ if (interaction) {
+ target.update(lastclientY);
+ }
+ }
+ if (fingers > 1) {
+ cancelEvent(event);
+ }
+ firstMove = false;
+ }
+ });
+
+ parentNode.addEventListener('touchend', function (event) {
+ if (target.enabled) {
+ fingers = event.touches.length;
+ if (fingers > 1) {
+ cancelEvent(event);
+ }
+ updateInteraction(event);
+ }
+ });
+ }
+
+ };
+ return PinchZoom;
+ };
+ var PinchZoom = definePinchZoom($);
+ var Pdfh5 = function (dom, options) {
+ this.version = version;
+ this.container = $(dom);
+ this.options = options;
+ this.thePDF = null;
+ this.totalNum = null;
+ this.pages = null;
+ this.initTime = 0;
+ this.scale = 1.5;
+ this.currentNum = 1;
+ this.loadedCount = 0;
+ this.endTime = 0;
+ this.pinchZoom = null;
+ this.timer = null;
+ this.docWidth = document.documentElement.clientWidth;
+ this.winWidth = $(window).width();
+ this.cache = {};
+ this.eventType = {};
+ this.cacheNum = 1;
+ this.resizeEvent = false;
+ this.cacheData = null;
+ this.pdfjsLibPromise = null;
+ this.init(options);
+ };
+ Pdfh5.prototype = {
+ init: function (options) {
+ var self = this;
+ if (this.container[0].pdfLoaded) {
+ this.destroy();
+ }
+ pdfjsLib.cMapPacked = true;
+ pdfjsLib.rangeChunkSize = 65536;
+ this.container[0].pdfLoaded = false;
+ this.container.addClass("pdfjs");
+ this.initTime = new Date().getTime();
+ setTimeout(function () {
+ var arr1 = self.eventType["scroll"];
+ if (arr1 && arr1 instanceof Array) {
+ for (var i = 0; i < arr1.length; i++) {
+ arr1[i] && arr1[i].call(self, self.initTime);
+ }
+ }
+ }, 0);
+ this.options = this.options ? this.options : {};
+ this.options.pdfurl = this.options.pdfurl ? this.options.pdfurl : null;
+ this.options.data = this.options.data ? this.options.data : null;
+ this.options.scale = this.options.scale ? this.options.scale : this.scale;
+ this.options.zoomEnable = this.options.zoomEnable === false ? false : true;
+ this.options.scrollEnable = this.options.scrollEnable === false ? false : true;
+ this.options.loadingBar = this.options.loadingBar === false ? false : true;
+ this.options.pageNum = this.options.pageNum === false ? false : true;
+ this.options.backTop = this.options.backTop === false ? false : true;
+ this.options.URIenable = this.options.URIenable === true ? true : false;
+ this.options.fullscreen = this.options.fullscreen === false ? false : true;
+ this.options.renderType = this.options.renderType === "svg" ? "svg" : "canvas";
+ this.options.resize = this.options.resize === false ? false : true;
+ this.options.textLayer = this.options.textLayer === true ? true : false;
+ this.options.goto = isNaN(this.options.goto) ? 0 : this.options.goto;
+ if (this.options.logo && Object.prototype.toString.call(this.options.logo) ===
+ '[object Object]' && this.options.logo
+ .src) {
+ this.options.logo.img = new Image();
+ this.options.logo.img.src = this.options.logo.src;
+ this.options.logo.img.style.display = "none";
+ document.body.appendChild(this.options.logo.img);
+ } else {
+ this.options.logo = false;
+ }
+ if (!(this.options.background && (this.options.background.color || this.options.background
+ .image))) {
+ this.options.background = false;
+ }
+ if (this.options.limit) {
+ var n = parseFloat(this.options.limit);
+ this.options.limit = isNaN(n) ? 0 : n < 0 ? 0 : n;
+ } else {
+ this.options.limit = 0;
+ }
+ this.options.type = this.options.type === "fetch" ? "fetch" : "ajax";
+ var html = '<div class="loadingBar">' +
+ '<div class="progress">' +
+ ' <div class="glimmer">' +
+ '</div>' +
+ ' </div>' +
+ '</div>' +
+ '<div class="pageNum">' +
+ '<div class="pageNum-bg"></div>' +
+ ' <div class="pageNum-num">' +
+ ' <span class="pageNow">1</span>/' +
+ '<span class="pageTotal">1</span>' +
+ '</div>' +
+ ' </div>' +
+ '<div class="backTop">' +
+ '</div>' +
+ '<div class="loadEffect loading"></div>';
+ if (!this.container.find('.pageNum')[0]) {
+ this.container.append(html);
+ }
+ var viewer = document.createElement("div");
+ viewer.className = 'pdfViewer';
+ var viewerContainer = document.createElement("div");
+ viewerContainer.className = 'viewerContainer';
+ viewerContainer.appendChild(viewer);
+ this.container.append(viewerContainer);
+ this.viewer = $(viewer);
+ this.viewerContainer = $(viewerContainer);
+ this.pageNum = this.container.find('.pageNum');
+ this.pageNow = this.pageNum.find('.pageNow');
+ this.pageTotal = this.pageNum.find('.pageTotal');
+ this.loadingBar = this.container.find('.loadingBar');
+ this.progress = this.loadingBar.find('.progress');
+ this.progressDom = this.progress[0];
+ this.backTop = this.container.find('.backTop');
+ this.loading = this.container.find('.loading');
+ if (!this.options.loadingBar) {
+ this.loadingBar.hide();
+ }
+ var containerH = this.container.height(),
+ height = containerH * (1 / 3);
+
+ if (!this.options.scrollEnable) {
+ this.viewerContainer.css({
+ "overflow": "hidden"
+ });
+ } else {
+ this.viewerContainer.css({
+ "overflow": "auto"
+ });
+ }
+ // console.log("add event listener scroll >>> ",viewerContainer);
+ viewerContainer.addEventListener("click",function(){
+ console.log("Test click ");
+ })
+
+ //FIXME svg scroll 无效, uniapp使用 onPageScroll onReachBottom
+ viewerContainer.addEventListener('scroll', function () {
+ var scrollTop = viewerContainer.scrollTop;
+ console.log(`scroll event ${scrollTop}`);
+ if (scrollTop >= 150) {
+ if (self.options.backTop) {
+ self.backTop.show();
+ }
+ } else {
+ if (self.options.backTop) {
+ self.backTop.fadeOut(200);
+ }
+ }
+ if (self.viewerContainer) {
+ self.pages = self.viewerContainer.find('.pageContainer');
+ }
+ clearTimeout(self.timer);
+ if (self.options.pageNum && self.pageNum) {
+ self.pageNum.show();
+ }
+ var h = containerH;
+ if (self.pages) {
+ self.pages.each(function (index, obj) {
+ var top = obj.getBoundingClientRect().top;
+ var bottom = obj.getBoundingClientRect().bottom;
+ if (top <= height && bottom > height) {
+ if (self.options.pageNum) {
+ self.pageNow.text(index + 1);
+ }
+ self.currentNum = index + 1;
+ }
+ if (top <= h && bottom > h) {
+ self.cacheNum = index + 1;
+ }
+ });
+ }
+ if (scrollTop + self.container.height() >= self.viewer[0].offsetHeight) {
+ self.pageNow.text(self.totalNum);
+ }
+ if (scrollTop === 0) {
+ self.pageNow.text(1);
+ }
+ self.timer = setTimeout(function () {
+ if (self.options.pageNum && self.pageNum) {
+ self.pageNum.fadeOut(200);
+ }
+ }, 1500);
+ var arr1 = self.eventType["scroll"];
+ if (arr1 && arr1 instanceof Array) {
+ for (var i = 0; i < arr1.length; i++) {
+ arr1[i] && arr1[i].call(self, scrollTop, self.currentNum);
+ }
+ }
+ });
+
+ this.backTop.on('click tap', function () {
+ var mart = self.viewer.css('transform');
+ var arr = mart.replace(/[a-z\(\)\s]/g, '').split(',');
+ var s1 = arr[0];
+ var s2 = arr[3];
+ var x = arr[4] / 2;
+ var left = self.viewer[0].getBoundingClientRect().left;
+ if (left <= -self.docWidth * 2) {
+ x = -self.docWidth / 2;
+ }
+ self.viewer.css({
+ transform: 'scale(' + s1 + ', ' + s2 + ') translate(' + x + 'px, 0px)'
+ });
+ if (self.pinchZoom) {
+ self.pinchZoom.offset.y = 0;
+ self.pinchZoom.lastclientY = 0;
+ }
+ self.viewerContainer.animate({
+ scrollTop: 0
+ }, 300);
+ var arr1 = self.eventType["backTop"];
+ if (arr1 && arr1 instanceof Array) {
+ for (var i = 0; i < arr1.length; i++) {
+ arr1[i] && arr1[i].call(self);
+ }
+ }
+ });
+
+ function GetQueryString(name) {
+ var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)");
+ var r = g.location.search.substr(1).match(reg);
+ if (r != null) return decodeURIComponent(r[2]);
+ return "";
+ }
+ var pdfurl = GetQueryString("file"),
+ url = "";
+ if (pdfurl && self.options.URIenable) {
+ url = pdfurl;
+ } else if (self.options.pdfurl) {
+ url = self.options.pdfurl;
+ }
+ if (self.options.loadingBar) {
+ self.loadingBar.show();
+ self.progress.css({
+ width: "3%"
+ });
+ }
+
+ if (url) {
+ if (self.options.type === "ajax") {
+ var xhr = new XMLHttpRequest();
+ xhr.open("GET", url, true);
+ xhr.responseType = self.options.responseType ? self.options.responseType : "blob";// blob arraybuffer
+ xhr.onload = function (oEvent) {
+ if (xhr.status === 200) {
+ if (xhr.responseType === "arraybuffer") {
+ var data = this.response;
+ self.cacheData = data;
+ self.renderPdf(self.options, {
+ data: data
+ });
+ } else {
+ var blob = this.response;
+ var reader = new FileReader();
+ reader.readAsDataURL(blob);
+ reader.onload = function (e) {
+ self.cacheData = e.target.result;
+ self.renderPdf(self.options, {
+ url: e.target.result
+ });
+ };
+ }
+ }
+ };
+ xhr.onerror = function (err) {
+ self.loading.hide();
+ var time = new Date().getTime();
+ self.endTime = time - self.initTime;
+ var arr1 = self.eventType["complete"];
+ if (arr1 && arr1 instanceof Array) {
+ for (var i = 0; i < arr1.length; i++) {
+ arr1[i] && arr1[i].call(self, "error", err.statusText, self
+ .endTime);
+ }
+ }
+ var arr2 = self.eventType["error"];
+ if (arr2 && arr2 instanceof Array) {
+ for (var i = 0; i < arr2.length; i++) {
+ arr2[i] && arr2[i].call(self, err.statusText, self.endTime);
+ }
+ }
+ throw Error(err.statusText);
+ };
+ xhr.send();
+ } else {
+ self.renderPdf(self.options, {
+ url: url
+ });
+ }
+ } else if (self.options.data) {
+ var data = self.options.data;
+ if (typeof data === "string" && data != "") {
+ var rawLength = data.length;
+ var array = [];
+ for (i = 0; i < rawLength; i++) {
+ array.push(data.charCodeAt(i) & 0xff);
+ }
+ self.cacheData = array;
+ self.renderPdf(self.options, {
+ data: array
+ });
+ } else if (typeof data === "object") {
+ if (data.length == 0) {
+ var time = new Date().getTime();
+ self.endTime = time - self.initTime;
+ var arr1 = self.eventType["complete"];
+ if (arr1 && arr1 instanceof Array) {
+ for (var i = 0; i < arr1.length; i++) {
+ arr1[i] && arr1[i].call(self, "error", "options.data is empty Array", self
+ .endTime);
+ }
+ }
+ var arr2 = self.eventType["error"];
+ if (arr2 && arr2 instanceof Array) {
+ for (var i = 0; i < arr2.length; i++) {
+ arr2[i] && arr2[i].call(self, "options.data is empty Array", self.endTime);
+ }
+ }
+ throw Error("options.data is empty Array");
+ } else {
+ self.cacheData = data;
+ self.renderPdf(self.options, {
+ data: data
+ });
+ }
+ }
+
+ } else {
+ var time = new Date().getTime();
+ self.endTime = time - self.initTime;
+ var arr1 = self.eventType["complete"];
+ if (arr1 && arr1 instanceof Array) {
+ for (var i = 0; i < arr1.length; i++) {
+ arr1[i] && arr1[i].call(self, "error", "Expect options.pdfurl or options.data!",
+ self.endTime);
+ }
+ }
+ var arr2 = self.eventType["error"];
+ if (arr2 && arr2 instanceof Array) {
+ for (var i = 0; i < arr2.length; i++) {
+ arr2[i] && arr2[i].call(self, "Expect options.pdfurl or options.data!", self
+ .endTime);
+ }
+ }
+ throw Error("Expect options.pdfurl or options.data!");
+ }
+ },
+ renderPdf: function (options, obj) {
+ this.container[0].pdfLoaded = true;
+ var self = this;
+ if (options.cMapUrl) {
+ obj.cMapUrl = options.cMapUrl;
+ } else {
+ obj.cMapUrl = 'https://unpkg.com/browse/pdfjs-dist@2.11.338/cmaps/';
+ }
+ if (options.httpHeaders) {
+ obj.httpHeaders = options.httpHeaders;
+ }
+ if (options.withCredentials) {
+ obj.withCredentials = true;
+ }
+ if (options.password) {
+ obj.password = options.password;
+ }
+ if (options.stopAtErrors) {
+ obj.stopAtErrors = true;
+ }
+ if (options.disableFontFace) {
+ obj.disableFontFace = true;
+ }
+ if (options.disableRange) {
+ obj.disableRange = true;
+ }
+ if (options.disableStream) {
+ obj.disableStream = true;
+ }
+ if (options.disableAutoFetch) {
+ obj.disableAutoFetch = true;
+ }
+ obj.cMapPacked = true;
+ obj.rangeChunkSize = 65536;
+ this.pdfjsLibPromise = pdfjsLib.getDocument(obj).promise.then(function (pdf) {
+ self.loading.hide();
+ self.thePDF = pdf;
+ self.totalNum = pdf.numPages;
+ if (options.limit > 0) {
+ self.totalNum = options.limit;
+ }
+ self.pageTotal.text(self.totalNum);
+ if (!self.pinchZoom) {
+ var arr1 = self.eventType["ready"];
+ if (arr1 && arr1 instanceof Array) {
+ for (var i = 0; i < arr1.length; i++) {
+ arr1[i] && arr1[i].call(self, self.totalNum);
+ }
+ }
+ self.pinchZoom = new PinchZoom(self.viewer, {
+ tapZoomFactor: options.tapZoomFactor,
+ zoomOutFactor: options.zoomOutFactor,
+ animationDuration: options.animationDuration,
+ maxZoom: options.maxZoom,
+ minZoom: options.minZoom
+ }, self.viewerContainer);
+ var timeout, firstZoom = true;
+ self.pinchZoom.done = function (scale) {
+ clearTimeout(timeout);
+ timeout = setTimeout(function () {
+ if (self.options.renderType === "svg") {
+ return;
+ }
+ if (scale <= 1 || self.options.scale == 5) {
+ return;
+ }
+ if (self.thePDF) {
+ self.thePDF.destroy();
+ self.thePDF = null;
+ }
+ self.options.scale = scale;
+ self.renderPdf(self.options, {
+ data: self.cacheData
+ });
+ }, 310);
+ if (scale == 1) {
+ if (self.viewerContainer) {
+ self.viewerContainer.css({
+ '-webkit-overflow-scrolling': 'touch'
+ });
+ }
+
+ } else {
+ if (self.viewerContainer) {
+ self.viewerContainer.css({
+ '-webkit-overflow-scrolling': 'auto'
+ });
+ }
+ }
+ var arr1 = self.eventType["zoom"];
+ if (arr1 && arr1 instanceof Array) {
+ for (var i = 0; i < arr1.length; i++) {
+ arr1[i] && arr1[i].call(self, scale);
+ }
+ }
+ };
+ if (options.zoomEnable) {
+ self.pinchZoom.enable();
+ } else {
+ self.pinchZoom.disable();
+ }
+ }
+
+ var promise = Promise.resolve();
+ var num = Math.floor(100 / self.totalNum).toFixed(2);
+ var i = 1;
+ for (i = 1; i <= self.totalNum; i++) {
+ self.cache[i + ""] = {
+ page: null,
+ loaded: false,
+ container: null,
+ scaledViewport: null
+ };
+ promise = promise.then(function (pageNum) {
+ return self.thePDF.getPage(pageNum).then(function (page) {
+ setTimeout(function () {
+ if (self.options.goto) {
+ if (pageNum == self.options.goto) {
+ self.goto(pageNum);
+ }
+ }
+ }, 0);
+ self.cache[pageNum + ""].page = page;
+ var viewport = page.getViewport(
+ {
+ scale: options.scale
+ });
+ var w1 = viewport.width;
+ var h1 = viewport.height;
+ var whobj1 = changeWH(w1, h1);
+ viewport.width = whobj1.w;
+ viewport.height = whobj1.h;
+ var scale = (self.docWidth / viewport.width).toFixed(2);
+ var scaledViewport = page.getViewport(
+ {
+ scale: parseFloat(scale)
+ });
+ var w = scaledViewport.width;
+ var h = scaledViewport.height;
+ var whobj = changeWH(w, h);
+ scaledViewport.width = whobj.w;
+ scaledViewport.height = whobj.h;
+ var div = self.container.find('.pageContainer' +
+ pageNum)[0];
+ var container;
+ if (!div) {
+ container = document.createElement('div');
+ container.className =
+ 'pageContainer pageContainer' + pageNum;
+ container.setAttribute('name', 'page=' + pageNum);
+ container.setAttribute('title', 'Page ' + pageNum);
+ var loadEffect = document.createElement('div');
+ loadEffect.className = 'loadEffect';
+ container.appendChild(loadEffect);
+ self.viewer[0].appendChild(container);
+ if (window.ActiveXObject || "ActiveXObject" in
+ window) {
+ $(container).css({
+ 'width': viewport.width + 'px',
+ "height": viewport.height + 'px'
+ }).attr("data-scale", viewport.width /
+ viewport.height);
+ } else {
+ var h = $(container).width() / (viewport
+ .viewBox[2] / viewport.viewBox[3]);
+ if (h > viewport.height) {
+ h = viewport.height;
+ }
+ $(container).css({
+ 'max-width': viewport.width,
+ "max-height": viewport.height,
+ // "min-height": h + 'px'
+ }).attr("data-scale", viewport.width /
+ viewport.height);
+ }
+ } else {
+ container = div;
+ }
+ if (options.background) {
+ /*背景颜色*/
+ if (options.background.color) {
+ container.style["background-color"] = options
+ .background.color;
+ }
+ /*背景图片*/
+ if (options.background.image) {
+ container.style["background-image"] = options
+ .background.image;
+ }
+ /*平铺与否*/
+ if (options.background.repeat) {
+ container.style["background-repeat"] = options
+ .background.repeat;
+ }
+ /*背景图片位置*/
+ if (options.background.position) {
+ container.style["background-position"] = options
+ .background.position;
+ }
+ /*背景图像的尺寸*/
+ if (options.background.size) {
+ container.style["background-size"] = options
+ .background.size;
+ }
+ }
+ self.cache[pageNum + ""].container = container;
+ self.cache[pageNum + ""].scaledViewport =
+ scaledViewport;
+ var sum = 0,
+ containerH = self.container.height();
+ self.pages = self.viewerContainer.find(
+ '.pageContainer');
+ if (options.resize) {
+ self.resize();
+ }
+ if (options.renderType === "svg") {
+ return self.renderSvg(page, scaledViewport, pageNum,
+ num, container, options, viewport);
+ }
+ return self.renderCanvas(page, scaledViewport, pageNum,
+ num, container, options);
+ });
+ }.bind(null, i));
+ }
+ }).catch(function (err) {
+ self.loading.hide();
+ var time = new Date().getTime();
+ self.endTime = time - self.initTime;
+ var arr1 = self.eventType["complete"];
+ if (arr1 && arr1 instanceof Array) {
+ for (var i = 0; i < arr1.length; i++) {
+ arr1[i] && arr1[i].call(self, "error", err.message, self.endTime);
+ }
+ }
+ var arr2 = self.eventType["error"];
+ if (arr2 && arr2 instanceof Array) {
+ for (var i = 0; i < arr2.length; i++) {
+ arr2[i] && arr2[i].call(self, err.message, self.endTime);
+ }
+ }
+ });
+ },
+ renderSvg: function (page, scaledViewport, pageNum, num, container, options, viewport) {
+ var self = this;
+ var viewport = page.getViewport(options.scale);
+ var w = viewport.width;
+ var h = viewport.height;
+ var whobj = changeWH(w, h);
+ viewport.width = whobj.w;
+ viewport.height = whobj.h;
+ var scale = (self.docWidth / viewport.width).toFixed(2);
+ return page.getOperatorList().then(function (opList) {
+ var svgGfx = new pdfjsLib.SVGGraphics(page.commonObjs, page.objs);
+ return svgGfx.getSVG(opList, scaledViewport).then(function (svg) {
+ self.loadedCount++;
+ container.children[0].style.display = "none";
+ container.appendChild(svg);
+ svg.style.width = "100%";
+ svg.style.height = "100%";
+ if (self.options.loadingBar) {
+ self.progress.css({
+ width: num * self.loadedCount + "%"
+ });
+ }
+ var time = new Date().getTime();
+ var arr1 = self.eventType["render"];
+ if (arr1 && arr1 instanceof Array) {
+ for (var i = 0; i < arr1.length; i++) {
+ arr1[i] && arr1[i].call(self, pageNum, time - self.initTime,
+ container);
+ }
+ }
+ if (self.loadedCount === self.totalNum) {
+ self.finalRender(options);
+ }
+ });
+ }).then(function () {
+ return page.getTextContent();
+ }).then(function (textContent) {
+ if (!self.options.textLayer) {
+ return;
+ }
+ if ($(container).find(".textLayer")[0]) {
+ return;
+ }
+ var textLayerDiv = document.createElement('div');
+ textLayerDiv.setAttribute('class', 'textLayer');
+ container.appendChild(textLayerDiv);
+ viewport.width = viewport.width * scale;
+ viewport.height = viewport.height * scale;
+ var textLayer = new TextLayerBuilder({
+ textLayerDiv: textLayerDiv,
+ pageIndex: page.pageIndex,
+ viewport: viewport
+ });
+
+ textLayer.setTextContent(textContent);
+
+ textLayer.render();
+ });;
+ },
+ renderCanvas: function (page, viewport, pageNum, num, container, options) {
+ var self = this;
+ var viewport = page.getViewport(
+ {
+ scale: options.scale,
+ });
+ var w = viewport.width;
+ var h = viewport.height;
+ var whobj = changeWH(w, h);
+ viewport.width = whobj.w;
+ viewport.height = whobj.h;
+ var scale = (self.docWidth / viewport.width).toFixed(2);
+ var canvas = document.createElement("canvas");
+ var obj2 = {
+ 'Cheight': viewport.height * scale,
+ 'width': viewport.width,
+ 'height': viewport.height,
+ 'canvas': canvas,
+ 'index': self.loadedCount
+ };
+ var context = canvas.getContext('2d');
+ if (options.logo) {
+ context.drawImage(self.options.logo.img, self.options.logo.x * self.options.scale,
+ self.options.logo.y * self.options.scale, self.options.logo.width * self.options.scale, self.options.logo.height * self.options.scale
+ );
+ }
+ canvas.height = viewport.height;
+ canvas.width = viewport.width;
+ if (self.options.loadingBar) {
+ self.progress.css({
+ width: num * self.loadedCount + "%"
+ });
+ }
+ obj2.src = obj2.canvas.toDataURL("image/png");
+ var renderObj = {
+ canvasContext: context,
+ viewport: viewport
+ };
+ if (options.background) {
+ renderObj.background = "rgba(255, 255, 255, 0)";
+ }
+ return page.render(renderObj).promise.then(function () {
+ if (options.logo) {
+ context.drawImage(self.options.logo.img, self.options.logo.x * self.options
+ .scale,
+ self.options.logo.y * self.options.scale, self.options.logo.width * self
+ .options.scale, self.options.logo.height *
+ self.options.scale
+ );
+ }
+ self.loadedCount++;
+ var img = new Image();
+ var time = new Date().getTime();
+ var time2 = 0;
+ if (self.renderTime == 0) {
+ time2 = time - self.startTime;
+ } else {
+ time2 = time - self.renderTime;
+ }
+ obj2.src = obj2.canvas.toDataURL("image/png");
+
+ img.src = obj2.src;
+ img.className = "canvasImg" + pageNum;
+ var img0 = self.container.find(".pageContainer" + pageNum).find(".canvasImg" +
+ pageNum)[0];
+ if (container && !img0) {
+ container.appendChild(img);
+ } else if (img0) {
+ img0.src = obj2.src;
+ }
+ container.children[0].style.display = "none";
+ var time = new Date().getTime();
+ var arr1 = self.eventType["render"];
+ if (arr1 && arr1 instanceof Array) {
+ for (var i = 0; i < arr1.length; i++) {
+ arr1[i] && arr1[i].call(self, pageNum, time - self.initTime, container);
+ }
+ }
+ if (self.loadedCount === self.totalNum) {
+ self.finalRender(options);
+ }
+ }).then(function () {
+ return page.getTextContent();
+ }).then(function (textContent) {
+ if (!self.options.textLayer) {
+ return;
+ }
+ if ($(container).find(".textLayer")[0]) {
+ return;
+ }
+ var textLayerDiv = document.createElement('div');
+ textLayerDiv.setAttribute('class', 'textLayer');
+ container.appendChild(textLayerDiv);
+ viewport.width = viewport.width * scale;
+ viewport.height = viewport.height * scale;
+ var textLayer = new TextLayerBuilder({
+ textLayerDiv: textLayerDiv,
+ pageIndex: page.pageIndex,
+ viewport: viewport
+ });
+
+ textLayer.setTextContent(textContent);
+
+ textLayer.render();
+ });
+ },
+ finalRender: function (options) {
+ var time = new Date().getTime();
+ var self = this;
+ if (self.options.loadingBar) {
+ self.progress.css({
+ width: "100%"
+ });
+ }
+ setTimeout(function () {
+ self.loadingBar.hide();
+ }, 300);
+ self.endTime = time - self.initTime;
+ if (options.renderType === "svg") {
+ if (self.totalNum !== 1) {
+ self.cache[(self.totalNum - 1) + ""].loaded = true;
+ } else {
+ self.cache["1"].loaded = true;
+ }
+ }
+ if (options.zoomEnable) {
+ if (self.pinchZoom) {
+ self.pinchZoom.enable();
+ }
+ } else {
+ if (self.pinchZoom) {
+ self.pinchZoom.disable();
+ }
+ }
+ var arr1 = self.eventType["complete"];
+ if (arr1 && arr1 instanceof Array) {
+ for (var i = 0; i < arr1.length; i++) {
+ arr1[i] && arr1[i].call(self, "success", "pdf加载完成", self.endTime);
+ }
+ }
+ var arr2 = self.eventType["success"];
+ if (arr2 && arr2 instanceof Array) {
+ for (var i = 0; i < arr2.length; i++) {
+ arr2[i] && arr2[i].call(self, self.endTime);
+ }
+ }
+ },
+ resize: function () {
+ var self = this;
+ if (self.resizeEvent) {
+ return;
+ }
+ self.resizeEvent = true;
+ var timer;
+ if (self.pages) {
+ $(window).on("resize", function () {
+ self.pages.each(function (i, item) {
+ $(item).css("min-height", "auto");
+ });
+ });
+ }
+ },
+ show: function (callback) {
+ this.container.show();
+ callback && callback.call(this);
+ var arr = this.eventType["show"];
+ if (arr && arr instanceof Array) {
+ for (var i = 0; i < arr.length; i++) {
+ arr[i] && arr[i].call(this);
+ }
+ }
+ },
+ hide: function (callback) {
+ this.container.hide();
+ callback && callback.call(this);
+ var arr = this.eventType["hide"];
+ if (arr && arr instanceof Array) {
+ for (var i = 0; i < arr.length; i++) {
+ arr[i] && arr[i].call(this);
+ }
+ }
+ },
+ on: function (type, callback) {
+ if (this.eventType[type] && this.eventType[type] instanceof Array) {
+ this.eventType[type].push(callback);
+ }
+ this.eventType[type] = [callback];
+ },
+ off: function (type) {
+ if (type !== undefined) {
+ this.eventType[type] = [null];
+ } else {
+ for (var i in this.eventType) {
+ this.eventType[i] = [null];
+ }
+ }
+ },
+ goto: function (num) {
+ var self = this;
+
+ if (!isNaN(num)) {
+ if (self.viewerContainer) {
+ self.pages = self.viewerContainer.find('.pageContainer');
+
+ if (self.pages) {
+ var h = 0;
+ var signHeight = 0;
+ if (num - 1 > 0) {
+ signHeight = self.pages[0].getBoundingClientRect().height;
+ }
+ self.viewerContainer.animate({
+ scrollTop: signHeight * (num - 1) + 8 * num
+ }, 300);
+ }
+ }
+ }
+ },
+ scrollEnable: function (flag) {
+ if (flag === false) {
+ this.viewerContainer.css({
+ "overflow": "hidden"
+ });
+ } else {
+ this.viewerContainer.css({
+ "overflow": "auto"
+ });
+ }
+ var arr = this.eventType["scrollEnable"];
+ if (arr && arr instanceof Array) {
+ for (var i = 0; i < arr.length; i++) {
+ arr[i] && arr[i].call(this, flag);
+ }
+ }
+ },
+ zoomEnable: function (flag) {
+ if (!this.pinchZoom) {
+ return;
+ }
+ if (flag === false) {
+ this.pinchZoom.disable();
+ } else {
+ this.pinchZoom.enable();
+ }
+ var arr = this.eventType["zoomEnable"];
+ if (arr && arr instanceof Array) {
+ for (var i = 0; i < arr.length; i++) {
+ arr[i] && arr[i].call(this, flag);
+ }
+ }
+ },
+ download: function (name, callback) {
+ if (this.options.pdfurl) {
+ download(this.options.pdfurl, name, callback);
+ } else if (this.options.data) {
+ fileDownLoad(this.options.data, name, callback);
+ }
+ },
+ reset: function (callback) {
+ if (this.pinchZoom) {
+ this.pinchZoom.offset.y = 0;
+ this.pinchZoom.offset.x = 0;
+ this.pinchZoom.lastclientY = 0;
+ this.pinchZoom.zoomFactor = 1;
+ this.pinchZoom.update();
+ }
+ if (this.viewerContainer) {
+ this.viewerContainer.scrollTop(0);
+ }
+ callback && callback.call(this);
+ var arr = this.eventType["reset"];
+ if (arr && arr instanceof Array) {
+ for (var i = 0; i < arr.length; i++) {
+ arr[i] && arr[i].call(this);
+ }
+ }
+ },
+ destroy: function (callback) {
+ this.reset();
+ this.off();
+ if (this.thePDF) {
+ this.thePDF.destroy();
+ this.thePDF = null;
+ }
+ if (this.viewerContainer) {
+ this.viewerContainer.remove();
+ this.viewerContainer = null;
+ }
+ if (this.container) {
+ this.container.html('');
+ }
+ this.totalNum = null;
+ this.pages = null;
+ this.initTime = 0;
+ this.endTime = 0;
+ this.viewer = null;
+ this.pageNum = null;
+ this.pageNow = null;
+ this.pageTotal = null;
+ this.loadingBar = null;
+ this.progress = null;
+ this.loadedCount = 0;
+ this.timer = null;
+ callback && callback.call(this);
+ var arr = this.eventType["destroy"];
+ if (arr && arr instanceof Array) {
+ for (var i = 0; i < arr.length; i++) {
+ arr[i] && arr[i].call(this);
+ }
+ }
+ }
+ };
+ return Pdfh5;
+
+ function download(url, name, callback) {
+ var xhr = new XMLHttpRequest();
+ xhr.open('GET', url, true);
+ xhr.responseType = "blob";
+ if (Object.prototype.toString.call(name) === "[object Function]") {
+ callback = name;
+ name = undefined;
+ }
+ name = name ? name : "download.pdf";
+ if (name.indexOf(".pdf") == -1) {
+ name += ".pdf";
+ }
+ xhr.onload = function () {
+ if (this.status === 200) {
+ var blob = this.response;
+ var reader = new FileReader();
+ reader.readAsDataURL(blob);
+ reader.onload = function (e) {
+ var a = document.createElement('a');
+ a.download = name;
+ a.href = e.target.result;
+ $("body").append(a);
+ a.click();
+ $(a).remove();
+ callback && callback();
+ };
+ }
+ };
+ xhr.send();
+ }
+
+ function fileDownLoad(data, name, callback) {
+ if (Object.prototype.toString.call(name) === "[object Function]") {
+ callback = name;
+ name = undefined;
+ }
+ name = name ? name : "download.pdf";
+ if (name.indexOf(".pdf") == -1) {
+ name += ".pdf";
+ }
+ var array = null;
+ try {
+ var enc = new TextDecoder('utf-8');
+ array = JSON.parse(enc.decode(new Uint8Array(data)));
+ } catch (err) {
+ if (Object.prototype.toString.call(data) === "[object ArrayBuffer]") {
+ array = data;
+ } else {
+ if (Object.prototype.toString.call(data) === "[object Array]") {
+ array = new Uint8Array(data);
+ } else {
+ var rawLength = data.length;
+ array = new Uint8Array(new ArrayBuffer(rawLength));
+ }
+ for (var i = 0; i < rawLength; i++) {
+ array[i] = data.charCodeAt(i) & 0xff;
+ }
+ }
+ var blob = new Blob([array]);
+ var a = document.createElement('a');
+ var url = window.URL.createObjectURL(blob);
+ a.download = name;
+ a.href = url;
+ $("body").append(a);
+ a.click();
+ $(a).remove();
+ callback && callback();
+ }
+
+ }
+ function changeWH(w, h) {
+ while (w * h > 16777216) {
+ w = 0.8 * w;
+ h = 0.8 * h;
+ }
+ return { w: w, h: h };
+ }
+});
diff --git a/uni_modules/uview-ui/components/u-scroll-list/other.js b/node_modules/pdfh5/js/pdfh5.worker.js
similarity index 100%
rename from uni_modules/uview-ui/components/u-scroll-list/other.js
rename to node_modules/pdfh5/js/pdfh5.worker.js
diff --git a/node_modules/pdfh5/js/pinch-zoom.js b/node_modules/pdfh5/js/pinch-zoom.js
new file mode 100644
index 0000000..4c59a6c
--- /dev/null
+++ b/node_modules/pdfh5/js/pinch-zoom.js
@@ -0,0 +1,927 @@
+/*
+
+ PinchZoom.js
+ Copyright (c) Manuel Stofer 2013 - today
+
+ Author: Manuel Stofer (mst@rtp.ch)
+ Version: 2.3.5
+
+ Permission is hereby granted, free of charge, to any person obtaining a copy
+ of this software and associated documentation files (the "Software"), to deal
+ in the Software without restriction, including without limitation the rights
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+ copies of the Software, and to permit persons to whom the Software is
+ furnished to do so, subject to the following conditions:
+
+ The above copyright notice and this permission notice shall be included in
+ all copies or substantial portions of the Software.
+
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+ THE SOFTWARE.
+
+*/
+
+// polyfills
+if (typeof Object.assign != 'function') {
+ // Must be writable: true, enumerable: false, configurable: true
+ Object.defineProperty(Object, "assign", {
+ value: function assign(target, varArgs) { // .length of function is 2
+ if (target == null) { // TypeError if undefined or null
+ throw new TypeError('Cannot convert undefined or null to object');
+ }
+
+ var to = Object(target);
+
+ for (var index = 1; index < arguments.length; index++) {
+ var nextSource = arguments[index];
+
+ if (nextSource != null) { // Skip over if undefined or null
+ for (var nextKey in nextSource) {
+ // Avoid bugs when hasOwnProperty is shadowed
+ if (Object.prototype.hasOwnProperty.call(nextSource, nextKey)) {
+ to[nextKey] = nextSource[nextKey];
+ }
+ }
+ }
+ }
+ return to;
+ },
+ writable: true,
+ configurable: true
+ });
+}
+
+if (typeof Array.from != 'function') {
+ Array.from = function (object) {
+ return [].slice.call(object);
+ };
+}
+
+// utils
+var buildElement = function(str) {
+ // empty string as title argument required by IE and Edge
+ var tmp = document.implementation.createHTMLDocument('');
+ tmp.body.innerHTML = str;
+ return Array.from(tmp.body.children)[0];
+};
+
+var triggerEvent = function(el, name) {
+ var event = document.createEvent('HTMLEvents');
+ event.initEvent(name, true, false);
+ el.dispatchEvent(event);
+};
+
+var definePinchZoom = function () {
+
+ /**
+ * Pinch zoom
+ * @param el
+ * @param options
+ * @constructor
+ */
+ var PinchZoom = function (el, options) {
+ this.el = el;
+ this.zoomFactor = 1;
+ this.lastScale = 1;
+ this.offset = {
+ x: 0,
+ y: 0
+ };
+ this.initialOffset = {
+ x: 0,
+ y: 0,
+ };
+ this.options = Object.assign({}, this.defaults, options);
+ this.setupMarkup();
+ this.bindEvents();
+ this.update();
+
+ // The image may already be loaded when PinchZoom is initialized,
+ // and then the load event (which trigger update) will never fire.
+ if (this.isImageLoaded(this.el)) {
+ this.updateAspectRatio();
+ this.setupOffsets();
+ }
+
+ this.enable();
+
+ },
+ sum = function (a, b) {
+ return a + b;
+ },
+ isCloseTo = function (value, expected) {
+ return value > expected - 0.01 && value < expected + 0.01;
+ };
+
+ PinchZoom.prototype = {
+
+ defaults: {
+ tapZoomFactor: 2,
+ zoomOutFactor: 1.3,
+ animationDuration: 300,
+ maxZoom: 4,
+ minZoom: 0.5,
+ draggableUnzoomed: true,
+ lockDragAxis: false,
+ setOffsetsOnce: false,
+ use2d: true,
+ zoomStartEventName: 'pz_zoomstart',
+ zoomUpdateEventName: 'pz_zoomupdate',
+ zoomEndEventName: 'pz_zoomend',
+ dragStartEventName: 'pz_dragstart',
+ dragUpdateEventName: 'pz_dragupdate',
+ dragEndEventName: 'pz_dragend',
+ doubleTapEventName: 'pz_doubletap',
+ verticalPadding: 0,
+ horizontalPadding: 0,
+ onZoomStart: null,
+ onZoomEnd: null,
+ onZoomUpdate: null,
+ onDragStart: null,
+ onDragEnd: null,
+ onDragUpdate: null,
+ onDoubleTap: null
+ },
+
+ /**
+ * Event handler for 'dragstart'
+ * @param event
+ */
+ handleDragStart: function (event) {
+ triggerEvent(this.el, this.options.dragStartEventName);
+ if(typeof this.options.onDragStart == "function"){
+ this.options.onDragStart(this, event)
+ }
+ this.stopAnimation();
+ this.lastDragPosition = false;
+ this.hasInteraction = true;
+ this.handleDrag(event);
+ },
+
+ /**
+ * Event handler for 'drag'
+ * @param event
+ */
+ handleDrag: function (event) {
+ var touch = this.getTouches(event)[0];
+ this.drag(touch, this.lastDragPosition);
+ this.offset = this.sanitizeOffset(this.offset);
+ this.lastDragPosition = touch;
+ },
+
+ handleDragEnd: function () {
+ triggerEvent(this.el, this.options.dragEndEventName);
+ if(typeof this.options.onDragEnd == "function"){
+ this.options.onDragEnd(this, event)
+ }
+ this.end();
+ },
+
+ /**
+ * Event handler for 'zoomstart'
+ * @param event
+ */
+ handleZoomStart: function (event) {
+ triggerEvent(this.el, this.options.zoomStartEventName);
+ if(typeof this.options.onZoomStart == "function"){
+ this.options.onZoomStart(this, event)
+ }
+ this.stopAnimation();
+ this.lastScale = 1;
+ this.nthZoom = 0;
+ this.lastZoomCenter = false;
+ this.hasInteraction = true;
+ },
+
+ /**
+ * Event handler for 'zoom'
+ * @param event
+ */
+ handleZoom: function (event, newScale) {
+ // a relative scale factor is used
+ var touchCenter = this.getTouchCenter(this.getTouches(event)),
+ scale = newScale / this.lastScale;
+ this.lastScale = newScale;
+
+ // the first touch events are thrown away since they are not precise
+ this.nthZoom += 1;
+ if (this.nthZoom > 3) {
+
+ this.scale(scale, touchCenter);
+ this.drag(touchCenter, this.lastZoomCenter);
+ }
+ this.lastZoomCenter = touchCenter;
+ },
+
+ handleZoomEnd: function () {
+ triggerEvent(this.el, this.options.zoomEndEventName);
+ if(typeof this.options.onZoomEnd == "function"){
+ this.options.onZoomEnd(this, event)
+ }
+ this.end();
+ },
+
+ /**
+ * Event handler for 'doubletap'
+ * @param event
+ */
+ handleDoubleTap: function (event) {
+ var center = this.getTouches(event)[0],
+ zoomFactor = this.zoomFactor > 1 ? 1 : this.options.tapZoomFactor,
+ startZoomFactor = this.zoomFactor,
+ updateProgress = (function (progress) {
+ this.scaleTo(startZoomFactor + progress * (zoomFactor - startZoomFactor), center);
+ }).bind(this);
+
+ if (this.hasInteraction) {
+ return;
+ }
+
+ this.isDoubleTap = true;
+
+ if (startZoomFactor > zoomFactor) {
+ center = this.getCurrentZoomCenter();
+ }
+
+ this.animate(this.options.animationDuration, updateProgress, this.swing);
+ triggerEvent(this.el, this.options.doubleTapEventName);
+ if(typeof this.options.onDoubleTap == "function"){
+ this.options.onDoubleTap(this, event)
+ }
+ },
+
+ /**
+ * Compute the initial offset
+ *
+ * the element should be centered in the container upon initialization
+ */
+ computeInitialOffset: function () {
+ this.initialOffset = {
+ x: -Math.abs(this.el.offsetWidth * this.getInitialZoomFactor() - this.container.offsetWidth) / 2,
+ y: -Math.abs(this.el.offsetHeight * this.getInitialZoomFactor() - this.container.offsetHeight) / 2,
+ };
+ },
+
+ /**
+ * Reset current image offset to that of the initial offset
+ */
+ resetOffset: function() {
+ this.offset.x = this.initialOffset.x;
+ this.offset.y = this.initialOffset.y;
+ },
+
+ /**
+ * Determine if image is loaded
+ */
+ isImageLoaded: function (el) {
+ if (el.nodeName === 'IMG') {
+ return el.complete && el.naturalHeight !== 0;
+ } else {
+ return Array.from(el.querySelectorAll('img')).every(this.isImageLoaded);
+ }
+ },
+
+ setupOffsets: function() {
+ if (this.options.setOffsetsOnce && this._isOffsetsSet) {
+ return;
+ }
+
+ this._isOffsetsSet = true;
+
+ this.computeInitialOffset();
+ this.resetOffset();
+ },
+
+ /**
+ * Max / min values for the offset
+ * @param offset
+ * @return {Object} the sanitized offset
+ */
+ sanitizeOffset: function (offset) {
+ var elWidth = this.el.offsetWidth * this.getInitialZoomFactor() * this.zoomFactor;
+ var elHeight = this.el.offsetHeight * this.getInitialZoomFactor() * this.zoomFactor;
+ var maxX = elWidth - this.getContainerX() + this.options.horizontalPadding,
+ maxY = elHeight - this.getContainerY() + this.options.verticalPadding,
+ maxOffsetX = Math.max(maxX, 0),
+ maxOffsetY = Math.max(maxY, 0),
+ minOffsetX = Math.min(maxX, 0) - this.options.horizontalPadding,
+ minOffsetY = Math.min(maxY, 0) - this.options.verticalPadding;
+
+ return {
+ x: Math.min(Math.max(offset.x, minOffsetX), maxOffsetX),
+ y: Math.min(Math.max(offset.y, minOffsetY), maxOffsetY)
+ };
+ },
+
+ /**
+ * Scale to a specific zoom factor (not relative)
+ * @param zoomFactor
+ * @param center
+ */
+ scaleTo: function (zoomFactor, center) {
+ this.scale(zoomFactor / this.zoomFactor, center);
+ },
+
+ /**
+ * Scales the element from specified center
+ * @param scale
+ * @param center
+ */
+ scale: function (scale, center) {
+ scale = this.scaleZoomFactor(scale);
+ this.addOffset({
+ x: (scale - 1) * (center.x + this.offset.x),
+ y: (scale - 1) * (center.y + this.offset.y)
+ });
+ triggerEvent(this.el, this.options.zoomUpdateEventName);
+ if(typeof this.options.onZoomUpdate == "function"){
+ this.options.onZoomUpdate(this, event)
+ }
+ },
+
+ /**
+ * Scales the zoom factor relative to current state
+ * @param scale
+ * @return the actual scale (can differ because of max min zoom factor)
+ */
+ scaleZoomFactor: function (scale) {
+ var originalZoomFactor = this.zoomFactor;
+ this.zoomFactor *= scale;
+ this.zoomFactor = Math.min(this.options.maxZoom, Math.max(this.zoomFactor, this.options.minZoom));
+ return this.zoomFactor / originalZoomFactor;
+ },
+
+ /**
+ * Determine if the image is in a draggable state
+ *
+ * When the image can be dragged, the drag event is acted upon and cancelled.
+ * When not draggable, the drag event bubbles through this component.
+ *
+ * @return {Boolean}
+ */
+ canDrag: function () {
+ return this.options.draggableUnzoomed || !isCloseTo(this.zoomFactor, 1);
+ },
+
+ /**
+ * Drags the element
+ * @param center
+ * @param lastCenter
+ */
+ drag: function (center, lastCenter) {
+ if (lastCenter) {
+ if(this.options.lockDragAxis) {
+ // lock scroll to position that was changed the most
+ if(Math.abs(center.x - lastCenter.x) > Math.abs(center.y - lastCenter.y)) {
+ this.addOffset({
+ x: -(center.x - lastCenter.x),
+ y: 0
+ });
+ }
+ else {
+ this.addOffset({
+ y: -(center.y - lastCenter.y),
+ x: 0
+ });
+ }
+ }
+ else {
+ this.addOffset({
+ y: -(center.y - lastCenter.y),
+ x: -(center.x - lastCenter.x)
+ });
+ }
+ triggerEvent(this.el, this.options.dragUpdateEventName);
+ if(typeof this.options.onDragUpdate == "function"){
+ this.options.onDragUpdate(this, event)
+ }
+ }
+ },
+
+ /**
+ * Calculates the touch center of multiple touches
+ * @param touches
+ * @return {Object}
+ */
+ getTouchCenter: function (touches) {
+ return this.getVectorAvg(touches);
+ },
+
+ /**
+ * Calculates the average of multiple vectors (x, y values)
+ */
+ getVectorAvg: function (vectors) {
+ return {
+ x: vectors.map(function (v) { return v.x; }).reduce(sum) / vectors.length,
+ y: vectors.map(function (v) { return v.y; }).reduce(sum) / vectors.length
+ };
+ },
+
+ /**
+ * Adds an offset
+ * @param offset the offset to add
+ * @return return true when the offset change was accepted
+ */
+ addOffset: function (offset) {
+ this.offset = {
+ x: this.offset.x + offset.x,
+ y: this.offset.y + offset.y
+ };
+ },
+
+ sanitize: function () {
+ if (this.zoomFactor < this.options.zoomOutFactor) {
+ this.zoomOutAnimation();
+ } else if (this.isInsaneOffset(this.offset)) {
+ this.sanitizeOffsetAnimation();
+ }
+ },
+
+ /**
+ * Checks if the offset is ok with the current zoom factor
+ * @param offset
+ * @return {Boolean}
+ */
+ isInsaneOffset: function (offset) {
+ var sanitizedOffset = this.sanitizeOffset(offset);
+ return sanitizedOffset.x !== offset.x ||
+ sanitizedOffset.y !== offset.y;
+ },
+
+ /**
+ * Creates an animation moving to a sane offset
+ */
+ sanitizeOffsetAnimation: function () {
+ var targetOffset = this.sanitizeOffset(this.offset),
+ startOffset = {
+ x: this.offset.x,
+ y: this.offset.y
+ },
+ updateProgress = (function (progress) {
+ this.offset.x = startOffset.x + progress * (targetOffset.x - startOffset.x);
+ this.offset.y = startOffset.y + progress * (targetOffset.y - startOffset.y);
+ this.update();
+ }).bind(this);
+
+ this.animate(
+ this.options.animationDuration,
+ updateProgress,
+ this.swing
+ );
+ },
+
+ /**
+ * Zooms back to the original position,
+ * (no offset and zoom factor 1)
+ */
+ zoomOutAnimation: function () {
+ if (this.zoomFactor === 1) {
+ return;
+ }
+
+ var startZoomFactor = this.zoomFactor,
+ zoomFactor = 1,
+ center = this.getCurrentZoomCenter(),
+ updateProgress = (function (progress) {
+ this.scaleTo(startZoomFactor + progress * (zoomFactor - startZoomFactor), center);
+ }).bind(this);
+
+ this.animate(
+ this.options.animationDuration,
+ updateProgress,
+ this.swing
+ );
+ },
+
+ /**
+ * Updates the container aspect ratio
+ *
+ * Any previous container height must be cleared before re-measuring the
+ * parent height, since it depends implicitly on the height of any of its children
+ */
+ updateAspectRatio: function () {
+ this.unsetContainerY();
+ this.setContainerY(this.container.parentElement.offsetHeight);
+ },
+
+ /**
+ * Calculates the initial zoom factor (for the element to fit into the container)
+ * @return {number} the initial zoom factor
+ */
+ getInitialZoomFactor: function () {
+ var xZoomFactor = this.container.offsetWidth / this.el.offsetWidth;
+ var yZoomFactor = this.container.offsetHeight / this.el.offsetHeight;
+
+ return Math.min(xZoomFactor, yZoomFactor);
+ },
+
+ /**
+ * Calculates the aspect ratio of the element
+ * @return the aspect ratio
+ */
+ getAspectRatio: function () {
+ return this.el.offsetWidth / this.el.offsetHeight;
+ },
+
+ /**
+ * Calculates the virtual zoom center for the current offset and zoom factor
+ * (used for reverse zoom)
+ * @return {Object} the current zoom center
+ */
+ getCurrentZoomCenter: function () {
+ var offsetLeft = this.offset.x - this.initialOffset.x;
+ var centerX = -1 * this.offset.x - offsetLeft / (1 / this.zoomFactor - 1);
+
+ var offsetTop = this.offset.y - this.initialOffset.y;
+ var centerY = -1 * this.offset.y - offsetTop / (1 / this.zoomFactor - 1);
+
+ return {
+ x: centerX,
+ y: centerY
+ };
+ },
+
+ /**
+ * Returns the touches of an event relative to the container offset
+ * @param event
+ * @return array touches
+ */
+ getTouches: function (event) {
+ var rect = this.container.getBoundingClientRect();
+ var scrollTop = document.documentElement.scrollTop || document.body.scrollTop;
+ var scrollLeft = document.documentElement.scrollLeft || document.body.scrollLeft;
+ var posTop = rect.top + scrollTop;
+ var posLeft = rect.left + scrollLeft;
+
+ return Array.prototype.slice.call(event.touches).map(function (touch) {
+ return {
+ x: touch.pageX - posLeft,
+ y: touch.pageY - posTop,
+ };
+ });
+ },
+
+ /**
+ * Animation loop
+ * does not support simultaneous animations
+ * @param duration
+ * @param framefn
+ * @param timefn
+ * @param callback
+ */
+ animate: function (duration, framefn, timefn, callback) {
+ var startTime = new Date().getTime(),
+ renderFrame = (function () {
+ if (!this.inAnimation) { return; }
+ var frameTime = new Date().getTime() - startTime,
+ progress = frameTime / duration;
+ if (frameTime >= duration) {
+ framefn(1);
+ if (callback) {
+ callback();
+ }
+ this.update();
+ this.stopAnimation();
+ this.update();
+ } else {
+ if (timefn) {
+ progress = timefn(progress);
+ }
+ framefn(progress);
+ this.update();
+ requestAnimationFrame(renderFrame);
+ }
+ }).bind(this);
+ this.inAnimation = true;
+ requestAnimationFrame(renderFrame);
+ },
+
+ /**
+ * Stops the animation
+ */
+ stopAnimation: function () {
+ this.inAnimation = false;
+ },
+
+ /**
+ * Swing timing function for animations
+ * @param p
+ * @return {Number}
+ */
+ swing: function (p) {
+ return -Math.cos(p * Math.PI) / 2 + 0.5;
+ },
+
+ getContainerX: function () {
+ return this.container.offsetWidth;
+ },
+
+ getContainerY: function () {
+ return this.container.offsetHeight;
+ },
+
+ setContainerY: function (y) {
+ return this.container.style.height = y + 'px';
+ },
+
+ unsetContainerY: function () {
+ this.container.style.height = null;
+ },
+
+ /**
+ * Creates the expected html structure
+ */
+ setupMarkup: function () {
+ this.container = buildElement('<div class="pinch-zoom-container"></div>');
+ this.el.parentNode.insertBefore(this.container, this.el);
+ this.container.appendChild(this.el);
+
+ this.container.style.overflow = 'hidden';
+ this.container.style.position = 'relative';
+
+ this.el.style.webkitTransformOrigin = '0% 0%';
+ this.el.style.mozTransformOrigin = '0% 0%';
+ this.el.style.msTransformOrigin = '0% 0%';
+ this.el.style.oTransformOrigin = '0% 0%';
+ this.el.style.transformOrigin = '0% 0%';
+
+ this.el.style.position = 'absolute';
+ },
+
+ end: function () {
+ this.hasInteraction = false;
+ this.sanitize();
+ this.update();
+ },
+
+ /**
+ * Binds all required event listeners
+ */
+ bindEvents: function () {
+ var self = this;
+ detectGestures(this.container, this);
+
+ this.resizeHandler = this.update.bind(this)
+ window.addEventListener('resize', this.resizeHandler);
+ Array.from(this.el.querySelectorAll('img')).forEach(function(imgEl) {
+ imgEl.addEventListener('load', self.update.bind(self));
+ });
+
+ if (this.el.nodeName === 'IMG') {
+ this.el.addEventListener('load', this.update.bind(this));
+ }
+ },
+
+ /**
+ * Updates the css values according to the current zoom factor and offset
+ */
+ update: function (event) {
+ if (event && event.type === 'resize') {
+ this.updateAspectRatio();
+ this.setupOffsets();
+ }
+
+ if (event && event.type === 'load') {
+ this.updateAspectRatio();
+ this.setupOffsets();
+ }
+
+ if (this.updatePlanned) {
+ return;
+ }
+ this.updatePlanned = true;
+
+ window.setTimeout((function () {
+ this.updatePlanned = false;
+
+ var zoomFactor = this.getInitialZoomFactor() * this.zoomFactor,
+ offsetX = -this.offset.x / zoomFactor,
+ offsetY = -this.offset.y / zoomFactor,
+ transform3d = 'scale3d(' + zoomFactor + ', ' + zoomFactor + ',1) ' +
+ 'translate3d(' + offsetX + 'px,' + offsetY + 'px,0px)',
+ transform2d = 'scale(' + zoomFactor + ', ' + zoomFactor + ') ' +
+ 'translate(' + offsetX + 'px,' + offsetY + 'px)',
+ removeClone = (function () {
+ if (this.clone) {
+ this.clone.parentNode.removeChild(this.clone);
+ delete this.clone;
+ }
+ }).bind(this);
+
+ // Scale 3d and translate3d are faster (at least on ios)
+ // but they also reduce the quality.
+ // PinchZoom uses the 3d transformations during interactions
+ // after interactions it falls back to 2d transformations
+ if (!this.options.use2d || this.hasInteraction || this.inAnimation) {
+ this.is3d = true;
+ removeClone();
+
+ this.el.style.webkitTransform = transform3d;
+ this.el.style.mozTransform = transform2d;
+ this.el.style.msTransform = transform2d;
+ this.el.style.oTransform = transform2d;
+ this.el.style.transform = transform3d;
+ } else {
+ // When changing from 3d to 2d transform webkit has some glitches.
+ // To avoid this, a copy of the 3d transformed element is displayed in the
+ // foreground while the element is converted from 3d to 2d transform
+ if (this.is3d) {
+ this.clone = this.el.cloneNode(true);
+ this.clone.style.pointerEvents = 'none';
+ this.container.appendChild(this.clone);
+ window.setTimeout(removeClone, 200);
+ }
+
+ this.el.style.webkitTransform = transform2d;
+ this.el.style.mozTransform = transform2d;
+ this.el.style.msTransform = transform2d;
+ this.el.style.oTransform = transform2d;
+ this.el.style.transform = transform2d;
+
+ this.is3d = false;
+ }
+ }).bind(this), 0);
+ },
+
+ /**
+ * Enables event handling for gestures
+ */
+ enable: function() {
+ this.enabled = true;
+ },
+
+ /**
+ * Disables event handling for gestures
+ */
+ disable: function() {
+ this.enabled = false;
+ },
+
+ /**
+ * Unmounts the zooming container and global event listeners
+ */
+ destroy: function () {
+ window.removeEventListener('resize', this.resizeHandler);
+
+ if (this.container) {
+ this.container.remove();
+ this.container = null;
+ }
+ }
+
+ };
+
+ var detectGestures = function (el, target) {
+ var interaction = null,
+ fingers = 0,
+ lastTouchStart = null,
+ startTouches = null,
+
+ setInteraction = function (newInteraction, event) {
+ if (interaction !== newInteraction) {
+
+ if (interaction && !newInteraction) {
+ switch (interaction) {
+ case "zoom":
+ target.handleZoomEnd(event);
+ break;
+ case 'drag':
+ target.handleDragEnd(event);
+ break;
+ }
+ }
+
+ switch (newInteraction) {
+ case 'zoom':
+ target.handleZoomStart(event);
+ break;
+ case 'drag':
+ target.handleDragStart(event);
+ break;
+ }
+ }
+ interaction = newInteraction;
+ },
+
+ updateInteraction = function (event) {
+ if (fingers === 2) {
+ setInteraction('zoom');
+ } else if (fingers === 1 && target.canDrag()) {
+ setInteraction('drag', event);
+ } else {
+ setInteraction(null, event);
+ }
+ },
+
+ targetTouches = function (touches) {
+ return Array.from(touches).map(function (touch) {
+ return {
+ x: touch.pageX,
+ y: touch.pageY
+ };
+ });
+ },
+
+ getDistance = function (a, b) {
+ var x, y;
+ x = a.x - b.x;
+ y = a.y - b.y;
+ return Math.sqrt(x * x + y * y);
+ },
+
+ calculateScale = function (startTouches, endTouches) {
+ var startDistance = getDistance(startTouches[0], startTouches[1]),
+ endDistance = getDistance(endTouches[0], endTouches[1]);
+ return endDistance / startDistance;
+ },
+
+ cancelEvent = function (event) {
+ event.stopPropagation();
+ event.preventDefault();
+ },
+
+ detectDoubleTap = function (event) {
+ var time = (new Date()).getTime();
+
+ if (fingers > 1) {
+ lastTouchStart = null;
+ }
+
+ if (time - lastTouchStart < 300) {
+ cancelEvent(event);
+
+ target.handleDoubleTap(event);
+ switch (interaction) {
+ case "zoom":
+ target.handleZoomEnd(event);
+ break;
+ case 'drag':
+ target.handleDragEnd(event);
+ break;
+ }
+ } else {
+ target.isDoubleTap = false;
+ }
+
+ if (fingers === 1) {
+ lastTouchStart = time;
+ }
+ },
+ firstMove = true;
+
+ el.addEventListener('touchstart', function (event) {
+ if(target.enabled) {
+ firstMove = true;
+ fingers = event.touches.length;
+ detectDoubleTap(event);
+ }
+ }, { passive: false });
+
+ el.addEventListener('touchmove', function (event) {
+ if(target.enabled && !target.isDoubleTap) {
+ if (firstMove) {
+ updateInteraction(event);
+ if (interaction) {
+ cancelEvent(event);
+ }
+ startTouches = targetTouches(event.touches);
+ } else {
+ switch (interaction) {
+ case 'zoom':
+ if (startTouches.length == 2 && event.touches.length == 2) {
+ target.handleZoom(event, calculateScale(startTouches, targetTouches(event.touches)));
+ }
+ break;
+ case 'drag':
+ target.handleDrag(event);
+ break;
+ }
+ if (interaction) {
+ cancelEvent(event);
+ target.update();
+ }
+ }
+
+ firstMove = false;
+ }
+ }, { passive: false });
+
+ el.addEventListener('touchend', function (event) {
+ if(target.enabled) {
+ fingers = event.touches.length;
+ updateInteraction(event);
+ }
+ });
+ };
+
+ return PinchZoom;
+};
+
+var PinchZoom = definePinchZoom();
+
+export default PinchZoom;
diff --git a/node_modules/pdfh5/js/pinch-zoom.min.js b/node_modules/pdfh5/js/pinch-zoom.min.js
new file mode 100644
index 0000000..cf85199
--- /dev/null
+++ b/node_modules/pdfh5/js/pinch-zoom.min.js
@@ -0,0 +1 @@
+"function"!=typeof Object.assign&&Object.defineProperty(Object,"assign",{value:function(a){if(null==a)throw new TypeError("Cannot convert undefined or null to object");for(var b,c=Object(a),d=1;d<arguments.length;d++)if(b=arguments[d],null!=b)for(var e in b)Object.prototype.hasOwnProperty.call(b,e)&&(c[e]=b[e]);return c},writable:!0,configurable:!0}),"function"!=typeof Array.from&&(Array.from=function(a){return[].slice.call(a)});var buildElement=function(a){var b=document.implementation.createHTMLDocument("");return b.body.innerHTML=a,Array.from(b.body.children)[0]},triggerEvent=function(a,b){var c=document.createEvent("HTMLEvents");c.initEvent(b,!0,!1),a.dispatchEvent(c)},definePinchZoom=function(){var a=Math.min,b=Math.max,c=Math.abs,d=function(a,b){this.el=a,this.zoomFactor=1,this.lastScale=1,this.offset={x:0,y:0},this.initialOffset={x:0,y:0},this.options=Object.assign({},this.defaults,b),this.setupMarkup(),this.bindEvents(),this.update(),this.isImageLoaded(this.el)&&(this.updateAspectRatio(),this.setupOffsets()),this.enable()},e=function(c,a){return c+a},f=function(a,b){return a>b-.01&&a<b+.01};d.prototype={defaults:{tapZoomFactor:2,zoomOutFactor:1.3,animationDuration:300,maxZoom:4,minZoom:.5,draggableUnzoomed:!0,lockDragAxis:!1,setOffsetsOnce:!1,use2d:!0,zoomStartEventName:"pz_zoomstart",zoomUpdateEventName:"pz_zoomupdate",zoomEndEventName:"pz_zoomend",dragStartEventName:"pz_dragstart",dragUpdateEventName:"pz_dragupdate",dragEndEventName:"pz_dragend",doubleTapEventName:"pz_doubletap",verticalPadding:0,horizontalPadding:0,onZoomStart:null,onZoomEnd:null,onZoomUpdate:null,onDragStart:null,onDragEnd:null,onDragUpdate:null,onDoubleTap:null},handleDragStart:function(a){triggerEvent(this.el,this.options.dragStartEventName),"function"==typeof this.options.onDragStart&&this.options.onDragStart(this,a),this.stopAnimation(),this.lastDragPosition=!1,this.hasInteraction=!0,this.handleDrag(a)},handleDrag:function(a){var b=this.getTouches(a)[0];this.drag(b,this.lastDragPosition),this.offset=this.sanitizeOffset(this.offset),this.lastDragPosition=b},handleDragEnd:function(){triggerEvent(this.el,this.options.dragEndEventName),"function"==typeof this.options.onDragEnd&&this.options.onDragEnd(this,event),this.end()},handleZoomStart:function(a){triggerEvent(this.el,this.options.zoomStartEventName),"function"==typeof this.options.onZoomStart&&this.options.onZoomStart(this,a),this.stopAnimation(),this.lastScale=1,this.nthZoom=0,this.lastZoomCenter=!1,this.hasInteraction=!0},handleZoom:function(a,b){var c=this.getTouchCenter(this.getTouches(a)),d=b/this.lastScale;this.lastScale=b,this.nthZoom+=1,3<this.nthZoom&&(this.scale(d,c),this.drag(c,this.lastZoomCenter)),this.lastZoomCenter=c},handleZoomEnd:function(){triggerEvent(this.el,this.options.zoomEndEventName),"function"==typeof this.options.onZoomEnd&&this.options.onZoomEnd(this,event),this.end()},handleDoubleTap:function(a){var b=this.getTouches(a)[0],c=1<this.zoomFactor?1:this.options.tapZoomFactor,d=this.zoomFactor,e=function(a){this.scaleTo(d+a*(c-d),b)}.bind(this);this.hasInteraction||(this.isDoubleTap=!0,d>c&&(b=this.getCurrentZoomCenter()),this.animate(this.options.animationDuration,e,this.swing),triggerEvent(this.el,this.options.doubleTapEventName),"function"==typeof this.options.onDoubleTap&&this.options.onDoubleTap(this,a))},computeInitialOffset:function(){this.initialOffset={x:-c(this.el.offsetWidth*this.getInitialZoomFactor()-this.container.offsetWidth)/2,y:-c(this.el.offsetHeight*this.getInitialZoomFactor()-this.container.offsetHeight)/2}},resetOffset:function(){this.offset.x=this.initialOffset.x,this.offset.y=this.initialOffset.y},isImageLoaded:function(a){return"IMG"===a.nodeName?a.complete&&0!==a.naturalHeight:Array.from(a.querySelectorAll("img")).every(this.isImageLoaded)},setupOffsets:function(){this.options.setOffsetsOnce&&this._isOffsetsSet||(this._isOffsetsSet=!0,this.computeInitialOffset(),this.resetOffset())},sanitizeOffset:function(c){var d=this.el.offsetWidth*this.getInitialZoomFactor()*this.zoomFactor,e=this.el.offsetHeight*this.getInitialZoomFactor()*this.zoomFactor,f=d-this.getContainerX()+this.options.horizontalPadding,g=e-this.getContainerY()+this.options.verticalPadding,h=b(f,0),i=b(g,0),j=a(f,0)-this.options.horizontalPadding,k=a(g,0)-this.options.verticalPadding;return{x:a(b(c.x,j),h),y:a(b(c.y,k),i)}},scaleTo:function(a,b){this.scale(a/this.zoomFactor,b)},scale:function(a,b){a=this.scaleZoomFactor(a),this.addOffset({x:(a-1)*(b.x+this.offset.x),y:(a-1)*(b.y+this.offset.y)}),triggerEvent(this.el,this.options.zoomUpdateEventName),"function"==typeof this.options.onZoomUpdate&&this.options.onZoomUpdate(this,event)},scaleZoomFactor:function(c){var d=this.zoomFactor;return this.zoomFactor*=c,this.zoomFactor=a(this.options.maxZoom,b(this.zoomFactor,this.options.minZoom)),this.zoomFactor/d},canDrag:function(){return this.options.draggableUnzoomed||!f(this.zoomFactor,1)},drag:function(a,b){b&&(this.options.lockDragAxis?c(a.x-b.x)>c(a.y-b.y)?this.addOffset({x:-(a.x-b.x),y:0}):this.addOffset({y:-(a.y-b.y),x:0}):this.addOffset({y:-(a.y-b.y),x:-(a.x-b.x)}),triggerEvent(this.el,this.options.dragUpdateEventName),"function"==typeof this.options.onDragUpdate&&this.options.onDragUpdate(this,event))},getTouchCenter:function(a){return this.getVectorAvg(a)},getVectorAvg:function(a){return{x:a.map(function(a){return a.x}).reduce(e)/a.length,y:a.map(function(a){return a.y}).reduce(e)/a.length}},addOffset:function(a){this.offset={x:this.offset.x+a.x,y:this.offset.y+a.y}},sanitize:function(){this.zoomFactor<this.options.zoomOutFactor?this.zoomOutAnimation():this.isInsaneOffset(this.offset)&&this.sanitizeOffsetAnimation()},isInsaneOffset:function(a){var b=this.sanitizeOffset(a);return b.x!==a.x||b.y!==a.y},sanitizeOffsetAnimation:function(){var a=this.sanitizeOffset(this.offset),b={x:this.offset.x,y:this.offset.y},c=function(c){this.offset.x=b.x+c*(a.x-b.x),this.offset.y=b.y+c*(a.y-b.y),this.update()}.bind(this);this.animate(this.options.animationDuration,c,this.swing)},zoomOutAnimation:function(){if(1!==this.zoomFactor){var a=this.zoomFactor,b=this.getCurrentZoomCenter(),c=function(c){this.scaleTo(a+c*(1-a),b)}.bind(this);this.animate(this.options.animationDuration,c,this.swing)}},updateAspectRatio:function(){this.unsetContainerY(),this.setContainerY(this.container.parentElement.offsetHeight)},getInitialZoomFactor:function(){var b=this.container.offsetWidth/this.el.offsetWidth,c=this.container.offsetHeight/this.el.offsetHeight;return a(b,c)},getAspectRatio:function(){return this.el.offsetWidth/this.el.offsetHeight},getCurrentZoomCenter:function(){var a=this.offset.x-this.initialOffset.x,b=-1*this.offset.x-a/(1/this.zoomFactor-1),c=this.offset.y-this.initialOffset.y,d=-1*this.offset.y-c/(1/this.zoomFactor-1);return{x:b,y:d}},getTouches:function(a){var b=this.container.getBoundingClientRect(),c=document.documentElement.scrollTop||document.body.scrollTop,d=document.documentElement.scrollLeft||document.body.scrollLeft,e=b.top+c,f=b.left+d;return Array.prototype.slice.call(a.touches).map(function(a){return{x:a.pageX-f,y:a.pageY-e}})},animate:function(a,b,c,d){var e=new Date().getTime(),f=function(){if(this.inAnimation){var g=new Date().getTime()-e,h=g/a;g>=a?(b(1),d&&d(),this.update(),this.stopAnimation(),this.update()):(c&&(h=c(h)),b(h),this.update(),requestAnimationFrame(f))}}.bind(this);this.inAnimation=!0,requestAnimationFrame(f)},stopAnimation:function(){this.inAnimation=!1},swing:function(a){return-Math.cos(a*Math.PI)/2+.5},getContainerX:function(){return this.container.offsetWidth},getContainerY:function(){return this.container.offsetHeight},setContainerY:function(a){return this.container.style.height=a+"px"},unsetContainerY:function(){this.container.style.height=null},setupMarkup:function(){this.container=buildElement("<div class=\"pinch-zoom-container\"></div>"),this.el.parentNode.insertBefore(this.container,this.el),this.container.appendChild(this.el),this.container.style.overflow="hidden",this.container.style.position="relative",this.el.style.webkitTransformOrigin="0% 0%",this.el.style.mozTransformOrigin="0% 0%",this.el.style.msTransformOrigin="0% 0%",this.el.style.oTransformOrigin="0% 0%",this.el.style.transformOrigin="0% 0%",this.el.style.position="absolute"},end:function(){this.hasInteraction=!1,this.sanitize(),this.update()},bindEvents:function(){var a=this;g(this.container,this),this.resizeHandler=this.update.bind(this),window.addEventListener("resize",this.resizeHandler),Array.from(this.el.querySelectorAll("img")).forEach(function(b){b.addEventListener("load",a.update.bind(a))}),"IMG"===this.el.nodeName&&this.el.addEventListener("load",this.update.bind(this))},update:function(a){a&&"resize"===a.type&&(this.updateAspectRatio(),this.setupOffsets()),a&&"load"===a.type&&(this.updateAspectRatio(),this.setupOffsets());this.updatePlanned||(this.updatePlanned=!0,window.setTimeout(function(){this.updatePlanned=!1;var a=this.getInitialZoomFactor()*this.zoomFactor,b=-this.offset.x/a,c=-this.offset.y/a,d="scale3d("+a+", "+a+",1) translate3d("+b+"px,"+c+"px,0px)",e="scale("+a+", "+a+") translate("+b+"px,"+c+"px)",f=function(){this.clone&&(this.clone.parentNode.removeChild(this.clone),delete this.clone)}.bind(this);!this.options.use2d||this.hasInteraction||this.inAnimation?(this.is3d=!0,f(),this.el.style.webkitTransform=d,this.el.style.mozTransform=e,this.el.style.msTransform=e,this.el.style.oTransform=e,this.el.style.transform=d):(this.is3d&&(this.clone=this.el.cloneNode(!0),this.clone.style.pointerEvents="none",this.container.appendChild(this.clone),window.setTimeout(f,200)),this.el.style.webkitTransform=e,this.el.style.mozTransform=e,this.el.style.msTransform=e,this.el.style.oTransform=e,this.el.style.transform=e,this.is3d=!1)}.bind(this),0))},enable:function(){this.enabled=!0},disable:function(){this.enabled=!1},destroy:function(){window.removeEventListener("resize",this.resizeHandler),this.container&&(this.container.remove(),this.container=null)}};var g=function(a,b){var c=null,d=0,e=null,f=null,g=function(a,d){c!==a&&(c&&!a&&("zoom"===c?b.handleZoomEnd(d):"drag"===c?b.handleDragEnd(d):void 0),"zoom"===a?b.handleZoomStart(d):"drag"===a?b.handleDragStart(d):void 0);c=a},h=function(a){2===d?g("zoom"):1===d&&b.canDrag()?g("drag",a):g(null,a)},i=function(a){return Array.from(a).map(function(a){return{x:a.pageX,y:a.pageY}})},j=function(c,a){var d,e,b=Math.sqrt;return d=c.x-a.x,e=c.y-a.y,b(d*d+e*e)},k=function(a,b){var c=j(a[0],a[1]),d=j(b[0],b[1]);return d/c},l=function(a){a.stopPropagation(),a.preventDefault()},m=function(a){var f=new Date().getTime();1<d&&(e=null);300>f-e?(l(a),b.handleDoubleTap(a),"zoom"===c?b.handleZoomEnd(a):"drag"===c?b.handleDragEnd(a):void 0):b.isDoubleTap=!1;1===d&&(e=f)},n=!0;a.addEventListener("touchstart",function(a){b.enabled&&(n=!0,d=a.touches.length,m(a))},{passive:!1}),a.addEventListener("touchmove",function(a){b.enabled&&!b.isDoubleTap&&(n?(h(a),c&&l(a),f=i(a.touches)):("zoom"===c?2==f.length&&2==a.touches.length&&b.handleZoom(a,k(f,i(a.touches))):"drag"===c?b.handleDrag(a):void 0,c&&(l(a),b.update())),n=!1)},{passive:!1}),a.addEventListener("touchend",function(a){b.enabled&&(d=a.touches.length,h(a))})};return d},PinchZoom=definePinchZoom();export default PinchZoom;
\ No newline at end of file
diff --git a/node_modules/pdfh5/package.json b/node_modules/pdfh5/package.json
new file mode 100644
index 0000000..fbc518c
--- /dev/null
+++ b/node_modules/pdfh5/package.json
@@ -0,0 +1,61 @@
+{
+ "_from": "pdfh5",
+ "_id": "pdfh5@1.4.9",
+ "_inBundle": false,
+ "_integrity": "sha512-9I0AcoEdefvFJZqwv/1Q5ht4QGzmieoVqkd0uehp+62H0KrWtnXYfnHjlwQcfiStdynpCYYJu3A6F1AVUBbqbQ==",
+ "_location": "/pdfh5",
+ "_phantomChildren": {},
+ "_requested": {
+ "type": "tag",
+ "registry": true,
+ "raw": "pdfh5",
+ "name": "pdfh5",
+ "escapedName": "pdfh5",
+ "rawSpec": "",
+ "saveSpec": null,
+ "fetchSpec": "latest"
+ },
+ "_requiredBy": [
+ "#USER",
+ "/"
+ ],
+ "_resolved": "https://registry.npmjs.org/pdfh5/-/pdfh5-1.4.9.tgz",
+ "_shasum": "c5e1a233c4baa346727bb968e7a68e2c3453b5aa",
+ "_spec": "pdfh5",
+ "_where": "/Users/gaojin/npm-pdfh5",
+ "author": {
+ "name": "Gao Jin"
+ },
+ "bugs": {
+ "url": "https://github.com/gjTool/pdfh5/issues"
+ },
+ "bundleDependencies": false,
+ "dependencies": {},
+ "deprecated": false,
+ "description": " JS plugin of preview PDF for mobile. web/h5/移动端PDF预览手势缩放插件",
+ "devDependencies": {},
+ "directories": {
+ "example": "example"
+ },
+ "homepage": "https://github.com/gjTool/pdfh5#readme",
+ "keywords": [
+ "pdf",
+ "pdf.js",
+ "pdfjs",
+ "pdfh5",
+ "pdfh5.js",
+ "javascript",
+ "plugin",
+ "library",
+ "mobile"
+ ],
+ "license": "MIT",
+ "main": "js/pdfh5.js",
+ "name": "pdfh5",
+ "repository": {
+ "type": "git",
+ "url": "git+https://github.com/gjTool/pdfh5.git"
+ },
+ "scripts": {},
+ "version": "1.4.9"
+}
diff --git a/node_modules/pdfh5/pdf.html b/node_modules/pdfh5/pdf.html
new file mode 100644
index 0000000..df80266
--- /dev/null
+++ b/node_modules/pdfh5/pdf.html
@@ -0,0 +1,166 @@
+<!DOCTYPE html>
+<html>
+
+<head>
+ <meta charset="UTF-8">
+ <meta name="apple-mobile-web-app-capable" content="yes">
+ <meta name="apple-mobile-web-app-status-bar-style" content="black">
+ <meta name="format-detection" content="telephone=no" />
+ <meta name="msapplication-tap-highlight" content="no" />
+ <meta name="viewport" content="width=device-width,initial-scale=1,user-scalable=no">
+ <meta http-equiv="pragma" content="no-cache">
+ <meta http-equiv="cache-control" content="no-cache">
+ <meta http-equiv="expires" content="0">
+ <title>PDFH5</title>
+ <link rel="stylesheet" href="css/style.css" />
+ <link rel="stylesheet" href="css/pdfh5.css" />
+ <link href="https://www.gjtool.cn/download/pdfh5.png" type="image/x-icon" rel="shortcut icon" />
+ <style>
+ html,
+ body {
+ width: 100%;
+ height: 100%;
+ }
+
+ #demo {
+ display: none;
+ /* height: 33%; */
+ }
+
+ #demo2 {
+ /* display: none; */
+ height: 33%;
+ }
+
+ #demo3 {
+ /* display: none; */
+ height: 33%;
+ }
+ </style>
+</head>
+
+<body>
+ <div id="app">
+ <div class="text-wrapper">
+ <div class="text part1">
+ <div>
+ <span class="letter">
+ <div class="character">L</div> <span></span>
+ </span>
+ <span class="letter">
+ <div class="character">o</div> <span></span>
+ </span>
+ <span class="letter">
+ <div class="character">a</div> <span></span>
+ </span>
+ <span class="letter">
+ <div class="character">d</div> <span></span>
+ </span>
+ <span class="letter">
+ <div class="character">i</div> <span></span>
+ </span>
+ <span class="letter">
+ <div class="character">n</div> <span></span>
+ </span>
+ <span class="letter">
+ <div class="character">g</div> <span></span>
+ </span>
+ </div>
+ </div>
+ <div class="how-to"><span>正在加载中,请您耐心等待...</span></div>
+ </div>
+
+ </div>
+ <div id="demo"></div>
+ <script src="js/pdf.js"></script>
+ <script src="js/pdf.worker.js"></script>
+ <script src="js/jquery-3.6.0.min.js" type="text/javascript" charset="utf-8"></script>
+ <script src="js/pdfh5.js" type="text/javascript" charset="utf-8"></script>
+ <script src="./vconsole.min.js"></script>
+ <script src="https://unpkg.com/axios/dist/axios.min.js"></script>
+ <script type="text/javascript">
+ var vConsole = new VConsole();
+ console.log('Hello world');
+ var pdfh5;
+ $("#app").remove();
+ $("#demo").show();
+ pdfh5 = new Pdfh5('#demo', {
+ pdfurl: "git.pdf",
+ // renderType: "svg",
+ // cMapUrl:"https://unpkg.com/pdfjs-dist@2.7.570/cmaps/",
+ // responseType: "blob" // blob arraybuffer
+ });
+ pdfh5.on("complete", function (status, msg, time) {
+ console.log("状态:" + status + ",总耗时:" + time + "毫秒,总页数:" + this.totalNum, msg);
+ });
+ // pdfh5.on("scroll", function (scrollTop, currentNum) {
+ // console.log("scrollTop:"+scrollTop,"currentNum:"+currentNum);
+ // });
+ //配置项参数 renderType:"svg" 渲染模式为svg,默认canvas
+ // var pdfh5 = new Pdfh5('#demo', {
+ // pdfurl: "./default.pdf",
+ // renderType:"svg"
+ // });
+
+ //配置项参数 URIenable:true 开启获取地址栏file参数,获取地址栏pdf路径?file=xxx.pdf,默认false不开启
+ // var pdfh5 = new Pdfh5('#demo', {
+ // URIenable:false,
+ // pdfurl: "./default.pdf"
+ // });
+
+ //配置项参数 是否显示小部件 顶部绿色加载进度条loadingBar 左上角页码显示pageNum 右下角回到顶部按钮backTop 默认显示
+ // var pdfh5 = new Pdfh5('#demo', {
+ // loadingBar: false,
+ // pageNum:false,
+ // backTop:false
+ // });
+
+ //配置项参数data,文件流形式传入 pdfurl和data二选一
+ // var pdfh5 = new Pdfh5('#demo', {
+ // data: data
+ // });
+
+ //配置项参数scrollEnable:false不允许pdf滚动,true允许pdf滚动 默认允许
+ // var pdfh5 = new Pdfh5('#demo', {
+ // scrollEnable:false,//是否允许pdf滚动
+ // pdfurl: url
+ // });
+ //pdfh5.scrollEnable(true)允许pdf滚动,pdfh5.scrollEnable(false)不允许pdf滚动
+
+ //配置项参数zoomEnable:false不允许pdf手势缩放,true允许pdf手势缩放 默认允许
+ // var pdfh5 = new Pdfh5('#demo', {
+ // zoomEnable:false,//是否允许pdf手势缩放
+ // pdfurl: url
+ // });
+
+ //pdfh5还原、销毁(附带回调函数): pdfh5.reset pdfh5.destroy
+ //pdfh5显示、隐藏(附带回调函数): pdfh5.show pdfh5.hide
+
+ //pdf准备开始渲染,此时可以拿到pdf总页数
+ // pdfh5.on("ready", function() {
+ // console.log("pdf准备开始渲染,总页数:" + this.totalNum)
+ // })
+
+ //监听pdf渲染失败
+ // pdfh5.on("error", function (time) {
+ // console.log("渲染失败,总耗时" + time + "毫秒")
+ // })
+ //监听完成事件,加载失败、渲染成功都会触发
+ // pdfh5.on("complete", function(status, msg, time) {
+ // console.log("状态:" + status + ",总耗时:" + time + "毫秒,总页数:" + this.totalNum, msg)
+ // })
+
+ //监听渲染中事件
+ // pdfh5.on("render", function(currentNum, time, currentPageDom) {
+ // // currentPageDom.append("<span class='name-logo'>张三</span>")
+ // console.log("当前页码:" + currentNum)
+ // })
+ //on方法,监听事件: 开始初始化 init 准备渲染pdf ready 加载完成 complete 加载失败 error 加载成功 success 渲染pdf中 render
+ // 缩放zoom 滚动scroll 显示show 隐藏hide 还原reset 销毁destroy 允许缩放zoomEnable 允许滚动scrollEnable
+
+ //pdfh5支持在线预览
+ //http://www.gjtool.cn/pdfh5/pdf.html?file=http://www.gjtool.cn/pdfh5/default.pdf
+ </script>
+</body>
+
+</html>
\ No newline at end of file
diff --git a/node_modules/pdfh5/pdfh5.png b/node_modules/pdfh5/pdfh5.png
new file mode 100644
index 0000000..b139dfe
--- /dev/null
+++ b/node_modules/pdfh5/pdfh5.png
Binary files differ
diff --git a/node_modules/pdfh5/test.pdf b/node_modules/pdfh5/test.pdf
new file mode 100644
index 0000000..08348cf
--- /dev/null
+++ b/node_modules/pdfh5/test.pdf
Binary files differ
diff --git a/node_modules/pdfh5/vconsole.min.js b/node_modules/pdfh5/vconsole.min.js
new file mode 100644
index 0000000..fe00a39
--- /dev/null
+++ b/node_modules/pdfh5/vconsole.min.js
@@ -0,0 +1,10 @@
+/*!
+ * vConsole v3.15.0 (https://github.com/Tencent/vConsole)
+ *
+ * Tencent is pleased to support the open source community by making vConsole available.
+ * Copyright (C) 2017 THL A29 Limited, a Tencent company. All rights reserved.
+ * Licensed under the MIT License (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at
+ * http://opensource.org/licenses/MIT
+ * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.
+ */
+!function(t,n){"object"==typeof exports&&"object"==typeof module?module.exports=n():"function"==typeof define&&define.amd?define("VConsole",[],n):"object"==typeof exports?exports.VConsole=n():t.VConsole=n()}(this||self,(function(){return function(){var __webpack_modules__={4264:function(t,n,e){t.exports=e(7588)},5036:function(t,n,e){e(1719),e(5677),e(6394),e(5334),e(6969),e(2021),e(8328),e(2129);var o=e(1287);t.exports=o.Promise},2582:function(t,n,e){e(1646),e(6394),e(2004),e(462),e(8407),e(2429),e(1172),e(8288),e(1274),e(8201),e(6626),e(3211),e(9952),e(15),e(9831),e(7521),e(2972),e(6956),e(5222),e(2257);var o=e(1287);t.exports=o.Symbol},8257:function(t,n,e){var o=e(7583),r=e(9212),i=e(5637),a=o.TypeError;t.exports=function(t){if(r(t))return t;throw a(i(t)+" is not a function")}},1186:function(t,n,e){var o=e(7583),r=e(2097),i=e(5637),a=o.TypeError;t.exports=function(t){if(r(t))return t;throw a(i(t)+" is not a constructor")}},9882:function(t,n,e){var o=e(7583),r=e(9212),i=o.String,a=o.TypeError;t.exports=function(t){if("object"==typeof t||r(t))return t;throw a("Can't set "+i(t)+" as a prototype")}},6288:function(t,n,e){var o=e(3649),r=e(3590),i=e(4615),a=o("unscopables"),c=Array.prototype;null==c[a]&&i.f(c,a,{configurable:!0,value:r(null)}),t.exports=function(t){c[a][t]=!0}},4761:function(t,n,e){var o=e(7583),r=e(2447),i=o.TypeError;t.exports=function(t,n){if(r(n,t))return t;throw i("Incorrect invocation")}},2569:function(t,n,e){var o=e(7583),r=e(794),i=o.String,a=o.TypeError;t.exports=function(t){if(r(t))return t;throw a(i(t)+" is not an object")}},5766:function(t,n,e){var o=e(2977),r=e(6782),i=e(1825),a=function(t){return function(n,e,a){var c,u=o(n),s=i(u),l=r(a,s);if(t&&e!=e){for(;s>l;)if((c=u[l++])!=c)return!0}else for(;s>l;l++)if((t||l in u)&&u[l]===e)return t||l||0;return!t&&-1}};t.exports={includes:a(!0),indexOf:a(!1)}},4805:function(t,n,e){var o=e(2938),r=e(7386),i=e(5044),a=e(1324),c=e(1825),u=e(4822),s=r([].push),l=function(t){var n=1==t,e=2==t,r=3==t,l=4==t,f=6==t,d=7==t,v=5==t||f;return function(h,p,g,m){for(var _,b,y=a(h),w=i(y),E=o(p,g),L=c(w),T=0,x=m||u,C=n?x(h,L):e||d?x(h,0):void 0;L>T;T++)if((v||T in w)&&(b=E(_=w[T],T,y),t))if(n)C[T]=b;else if(b)switch(t){case 3:return!0;case 5:return _;case 6:return T;case 2:s(C,_)}else switch(t){case 4:return!1;case 7:s(C,_)}return f?-1:r||l?l:C}};t.exports={forEach:l(0),map:l(1),filter:l(2),some:l(3),every:l(4),find:l(5),findIndex:l(6),filterReject:l(7)}},9269:function(t,n,e){var o=e(6544),r=e(3649),i=e(4061),a=r("species");t.exports=function(t){return i>=51||!o((function(){var n=[];return(n.constructor={})[a]=function(){return{foo:1}},1!==n[t](Boolean).foo}))}},4546:function(t,n,e){var o=e(7583),r=e(6782),i=e(1825),a=e(5999),c=o.Array,u=Math.max;t.exports=function(t,n,e){for(var o=i(t),s=r(n,o),l=r(void 0===e?o:e,o),f=c(u(l-s,0)),d=0;s<l;s++,d++)a(f,d,t[s]);return f.length=d,f}},6917:function(t,n,e){var o=e(7386);t.exports=o([].slice)},5289:function(t,n,e){var o=e(7583),r=e(4521),i=e(2097),a=e(794),c=e(3649)("species"),u=o.Array;t.exports=function(t){var n;return r(t)&&(n=t.constructor,(i(n)&&(n===u||r(n.prototype))||a(n)&&null===(n=n[c]))&&(n=void 0)),void 0===n?u:n}},4822:function(t,n,e){var o=e(5289);t.exports=function(t,n){return new(o(t))(0===n?0:n)}},3616:function(t,n,e){var o=e(3649)("iterator"),r=!1;try{var i=0,a={next:function(){return{done:!!i++}},return:function(){r=!0}};a[o]=function(){return this},Array.from(a,(function(){throw 2}))}catch(t){}t.exports=function(t,n){if(!n&&!r)return!1;var e=!1;try{var i={};i[o]=function(){return{next:function(){return{done:e=!0}}}},t(i)}catch(t){}return e}},9624:function(t,n,e){var o=e(7386),r=o({}.toString),i=o("".slice);t.exports=function(t){return i(r(t),8,-1)}},3058:function(t,n,e){var o=e(7583),r=e(8191),i=e(9212),a=e(9624),c=e(3649)("toStringTag"),u=o.Object,s="Arguments"==a(function(){return arguments}());t.exports=r?a:function(t){var n,e,o;return void 0===t?"Undefined":null===t?"Null":"string"==typeof(e=function(t,n){try{return t[n]}catch(t){}}(n=u(t),c))?e:s?a(n):"Object"==(o=a(n))&&i(n.callee)?"Arguments":o}},1509:function(t,n,e){var o=e(7386)("".replace),r=String(Error("zxcasd").stack),i=/\n\s*at [^:]*:[^\n]*/,a=i.test(r);t.exports=function(t,n){if(a&&"string"==typeof t)for(;n--;)t=o(t,i,"");return t}},3478:function(t,n,e){var o=e(2870),r=e(929),i=e(6683),a=e(4615);t.exports=function(t,n,e){for(var c=r(n),u=a.f,s=i.f,l=0;l<c.length;l++){var f=c[l];o(t,f)||e&&o(e,f)||u(t,f,s(n,f))}}},926:function(t,n,e){var o=e(6544);t.exports=!o((function(){function t(){}return t.prototype.constructor=null,Object.getPrototypeOf(new t)!==t.prototype}))},4683:function(t,n,e){"use strict";var o=e(2365).IteratorPrototype,r=e(3590),i=e(4677),a=e(8821),c=e(339),u=function(){return this};t.exports=function(t,n,e,s){var l=n+" Iterator";return t.prototype=r(o,{next:i(+!s,e)}),a(t,l,!1,!0),c[l]=u,t}},57:function(t,n,e){var o=e(8494),r=e(4615),i=e(4677);t.exports=o?function(t,n,e){return r.f(t,n,i(1,e))}:function(t,n,e){return t[n]=e,t}},4677:function(t){t.exports=function(t,n){return{enumerable:!(1&t),configurable:!(2&t),writable:!(4&t),value:n}}},5999:function(t,n,e){"use strict";var o=e(8734),r=e(4615),i=e(4677);t.exports=function(t,n,e){var a=o(n);a in t?r.f(t,a,i(0,e)):t[a]=e}},9012:function(t,n,e){"use strict";var o=e(7263),r=e(8262),i=e(6268),a=e(4340),c=e(9212),u=e(4683),s=e(729),l=e(7496),f=e(8821),d=e(57),v=e(1270),h=e(3649),p=e(339),g=e(2365),m=a.PROPER,_=a.CONFIGURABLE,b=g.IteratorPrototype,y=g.BUGGY_SAFARI_ITERATORS,w=h("iterator"),E="keys",L="values",T="entries",x=function(){return this};t.exports=function(t,n,e,a,h,g,C){u(e,n,a);var O,I,D,R=function(t){if(t===h&&S)return S;if(!y&&t in P)return P[t];switch(t){case E:case L:case T:return function(){return new e(this,t)}}return function(){return new e(this)}},$=n+" Iterator",k=!1,P=t.prototype,M=P[w]||P["@@iterator"]||h&&P[h],S=!y&&M||R(h),j="Array"==n&&P.entries||M;if(j&&(O=s(j.call(new t)))!==Object.prototype&&O.next&&(i||s(O)===b||(l?l(O,b):c(O[w])||v(O,w,x)),f(O,$,!0,!0),i&&(p[$]=x)),m&&h==L&&M&&M.name!==L&&(!i&&_?d(P,"name",L):(k=!0,S=function(){return r(M,this)})),h)if(I={values:R(L),keys:g?S:R(E),entries:R(T)},C)for(D in I)(y||k||!(D in P))&&v(P,D,I[D]);else o({target:n,proto:!0,forced:y||k},I);return i&&!C||P[w]===S||v(P,w,S,{name:h}),p[n]=S,I}},2219:function(t,n,e){var o=e(1287),r=e(2870),i=e(491),a=e(4615).f;t.exports=function(t){var n=o.Symbol||(o.Symbol={});r(n,t)||a(n,t,{value:i.f(t)})}},8494:function(t,n,e){var o=e(6544);t.exports=!o((function(){return 7!=Object.defineProperty({},1,{get:function(){return 7}})[1]}))},6668:function(t,n,e){var o=e(7583),r=e(794),i=o.document,a=r(i)&&r(i.createElement);t.exports=function(t){return a?i.createElement(t):{}}},6778:function(t){t.exports={CSSRuleList:0,CSSStyleDeclaration:0,CSSValueList:0,ClientRectList:0,DOMRectList:0,DOMStringList:0,DOMTokenList:1,DataTransferItemList:0,FileList:0,HTMLAllCollection:0,HTMLCollection:0,HTMLFormElement:0,HTMLSelectElement:0,MediaList:0,MimeTypeArray:0,NamedNodeMap:0,NodeList:1,PaintRequestList:0,Plugin:0,PluginArray:0,SVGLengthList:0,SVGNumberList:0,SVGPathSegList:0,SVGPointList:0,SVGStringList:0,SVGTransformList:0,SourceBufferList:0,StyleSheetList:0,TextTrackCueList:0,TextTrackList:0,TouchList:0}},9307:function(t,n,e){var o=e(6668)("span").classList,r=o&&o.constructor&&o.constructor.prototype;t.exports=r===Object.prototype?void 0:r},2274:function(t){t.exports="object"==typeof window},3256:function(t,n,e){var o=e(6918),r=e(7583);t.exports=/ipad|iphone|ipod/i.test(o)&&void 0!==r.Pebble},7020:function(t,n,e){var o=e(6918);t.exports=/(?:ipad|iphone|ipod).*applewebkit/i.test(o)},5354:function(t,n,e){var o=e(9624),r=e(7583);t.exports="process"==o(r.process)},6846:function(t,n,e){var o=e(6918);t.exports=/web0s(?!.*chrome)/i.test(o)},6918:function(t,n,e){var o=e(5897);t.exports=o("navigator","userAgent")||""},4061:function(t,n,e){var o,r,i=e(7583),a=e(6918),c=i.process,u=i.Deno,s=c&&c.versions||u&&u.version,l=s&&s.v8;l&&(r=(o=l.split("."))[0]>0&&o[0]<4?1:+(o[0]+o[1])),!r&&a&&(!(o=a.match(/Edge\/(\d+)/))||o[1]>=74)&&(o=a.match(/Chrome\/(\d+)/))&&(r=+o[1]),t.exports=r},5690:function(t){t.exports=["constructor","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","toLocaleString","toString","valueOf"]},1178:function(t,n,e){var o=e(6544),r=e(4677);t.exports=!o((function(){var t=Error("a");return!("stack"in t)||(Object.defineProperty(t,"stack",r(1,7)),7!==t.stack)}))},7263:function(t,n,e){var o=e(7583),r=e(6683).f,i=e(57),a=e(1270),c=e(460),u=e(3478),s=e(4451);t.exports=function(t,n){var e,l,f,d,v,h=t.target,p=t.global,g=t.stat;if(e=p?o:g?o[h]||c(h,{}):(o[h]||{}).prototype)for(l in n){if(d=n[l],f=t.noTargetGet?(v=r(e,l))&&v.value:e[l],!s(p?l:h+(g?".":"#")+l,t.forced)&&void 0!==f){if(typeof d==typeof f)continue;u(d,f)}(t.sham||f&&f.sham)&&i(d,"sham",!0),a(e,l,d,t)}}},6544:function(t){t.exports=function(t){try{return!!t()}catch(t){return!0}}},1611:function(t,n,e){var o=e(8987),r=Function.prototype,i=r.apply,a=r.call;t.exports="object"==typeof Reflect&&Reflect.apply||(o?a.bind(i):function(){return a.apply(i,arguments)})},2938:function(t,n,e){var o=e(7386),r=e(8257),i=e(8987),a=o(o.bind);t.exports=function(t,n){return r(t),void 0===n?t:i?a(t,n):function(){return t.apply(n,arguments)}}},8987:function(t,n,e){var o=e(6544);t.exports=!o((function(){var t=function(){}.bind();return"function"!=typeof t||t.hasOwnProperty("prototype")}))},8262:function(t,n,e){var o=e(8987),r=Function.prototype.call;t.exports=o?r.bind(r):function(){return r.apply(r,arguments)}},4340:function(t,n,e){var o=e(8494),r=e(2870),i=Function.prototype,a=o&&Object.getOwnPropertyDescriptor,c=r(i,"name"),u=c&&"something"===function(){}.name,s=c&&(!o||o&&a(i,"name").configurable);t.exports={EXISTS:c,PROPER:u,CONFIGURABLE:s}},7386:function(t,n,e){var o=e(8987),r=Function.prototype,i=r.bind,a=r.call,c=o&&i.bind(a,a);t.exports=o?function(t){return t&&c(t)}:function(t){return t&&function(){return a.apply(t,arguments)}}},5897:function(t,n,e){var o=e(7583),r=e(9212),i=function(t){return r(t)?t:void 0};t.exports=function(t,n){return arguments.length<2?i(o[t]):o[t]&&o[t][n]}},8272:function(t,n,e){var o=e(3058),r=e(911),i=e(339),a=e(3649)("iterator");t.exports=function(t){if(null!=t)return r(t,a)||r(t,"@@iterator")||i[o(t)]}},6307:function(t,n,e){var o=e(7583),r=e(8262),i=e(8257),a=e(2569),c=e(5637),u=e(8272),s=o.TypeError;t.exports=function(t,n){var e=arguments.length<2?u(t):n;if(i(e))return a(r(e,t));throw s(c(t)+" is not iterable")}},911:function(t,n,e){var o=e(8257);t.exports=function(t,n){var e=t[n];return null==e?void 0:o(e)}},7583:function(t,n,e){var o=function(t){return t&&t.Math==Math&&t};t.exports=o("object"==typeof globalThis&&globalThis)||o("object"==typeof window&&window)||o("object"==typeof self&&self)||o("object"==typeof e.g&&e.g)||function(){return this}()||Function("return this")()},2870:function(t,n,e){var o=e(7386),r=e(1324),i=o({}.hasOwnProperty);t.exports=Object.hasOwn||function(t,n){return i(r(t),n)}},4639:function(t){t.exports={}},2716:function(t,n,e){var o=e(7583);t.exports=function(t,n){var e=o.console;e&&e.error&&(1==arguments.length?e.error(t):e.error(t,n))}},482:function(t,n,e){var o=e(5897);t.exports=o("document","documentElement")},275:function(t,n,e){var o=e(8494),r=e(6544),i=e(6668);t.exports=!o&&!r((function(){return 7!=Object.defineProperty(i("div"),"a",{get:function(){return 7}}).a}))},5044:function(t,n,e){var o=e(7583),r=e(7386),i=e(6544),a=e(9624),c=o.Object,u=r("".split);t.exports=i((function(){return!c("z").propertyIsEnumerable(0)}))?function(t){return"String"==a(t)?u(t,""):c(t)}:c},9734:function(t,n,e){var o=e(7386),r=e(9212),i=e(1314),a=o(Function.toString);r(i.inspectSource)||(i.inspectSource=function(t){return a(t)}),t.exports=i.inspectSource},4402:function(t,n,e){var o=e(794),r=e(57);t.exports=function(t,n){o(n)&&"cause"in n&&r(t,"cause",n.cause)}},2743:function(t,n,e){var o,r,i,a=e(9491),c=e(7583),u=e(7386),s=e(794),l=e(57),f=e(2870),d=e(1314),v=e(9137),h=e(4639),p="Object already initialized",g=c.TypeError,m=c.WeakMap;if(a||d.state){var _=d.state||(d.state=new m),b=u(_.get),y=u(_.has),w=u(_.set);o=function(t,n){if(y(_,t))throw new g(p);return n.facade=t,w(_,t,n),n},r=function(t){return b(_,t)||{}},i=function(t){return y(_,t)}}else{var E=v("state");h[E]=!0,o=function(t,n){if(f(t,E))throw new g(p);return n.facade=t,l(t,E,n),n},r=function(t){return f(t,E)?t[E]:{}},i=function(t){return f(t,E)}}t.exports={set:o,get:r,has:i,enforce:function(t){return i(t)?r(t):o(t,{})},getterFor:function(t){return function(n){var e;if(!s(n)||(e=r(n)).type!==t)throw g("Incompatible receiver, "+t+" required");return e}}}},114:function(t,n,e){var o=e(3649),r=e(339),i=o("iterator"),a=Array.prototype;t.exports=function(t){return void 0!==t&&(r.Array===t||a[i]===t)}},4521:function(t,n,e){var o=e(9624);t.exports=Array.isArray||function(t){return"Array"==o(t)}},9212:function(t){t.exports=function(t){return"function"==typeof t}},2097:function(t,n,e){var o=e(7386),r=e(6544),i=e(9212),a=e(3058),c=e(5897),u=e(9734),s=function(){},l=[],f=c("Reflect","construct"),d=/^\s*(?:class|function)\b/,v=o(d.exec),h=!d.exec(s),p=function(t){if(!i(t))return!1;try{return f(s,l,t),!0}catch(t){return!1}},g=function(t){if(!i(t))return!1;switch(a(t)){case"AsyncFunction":case"GeneratorFunction":case"AsyncGeneratorFunction":return!1}try{return h||!!v(d,u(t))}catch(t){return!0}};g.sham=!0,t.exports=!f||r((function(){var t;return p(p.call)||!p(Object)||!p((function(){t=!0}))||t}))?g:p},4451:function(t,n,e){var o=e(6544),r=e(9212),i=/#|\.prototype\./,a=function(t,n){var e=u[c(t)];return e==l||e!=s&&(r(n)?o(n):!!n)},c=a.normalize=function(t){return String(t).replace(i,".").toLowerCase()},u=a.data={},s=a.NATIVE="N",l=a.POLYFILL="P";t.exports=a},794:function(t,n,e){var o=e(9212);t.exports=function(t){return"object"==typeof t?null!==t:o(t)}},6268:function(t){t.exports=!1},5871:function(t,n,e){var o=e(7583),r=e(5897),i=e(9212),a=e(2447),c=e(7786),u=o.Object;t.exports=c?function(t){return"symbol"==typeof t}:function(t){var n=r("Symbol");return i(n)&&a(n.prototype,u(t))}},4026:function(t,n,e){var o=e(7583),r=e(2938),i=e(8262),a=e(2569),c=e(5637),u=e(114),s=e(1825),l=e(2447),f=e(6307),d=e(8272),v=e(7093),h=o.TypeError,p=function(t,n){this.stopped=t,this.result=n},g=p.prototype;t.exports=function(t,n,e){var o,m,_,b,y,w,E,L=e&&e.that,T=!(!e||!e.AS_ENTRIES),x=!(!e||!e.IS_ITERATOR),C=!(!e||!e.INTERRUPTED),O=r(n,L),I=function(t){return o&&v(o,"normal",t),new p(!0,t)},D=function(t){return T?(a(t),C?O(t[0],t[1],I):O(t[0],t[1])):C?O(t,I):O(t)};if(x)o=t;else{if(!(m=d(t)))throw h(c(t)+" is not iterable");if(u(m)){for(_=0,b=s(t);b>_;_++)if((y=D(t[_]))&&l(g,y))return y;return new p(!1)}o=f(t,m)}for(w=o.next;!(E=i(w,o)).done;){try{y=D(E.value)}catch(t){v(o,"throw",t)}if("object"==typeof y&&y&&l(g,y))return y}return new p(!1)}},7093:function(t,n,e){var o=e(8262),r=e(2569),i=e(911);t.exports=function(t,n,e){var a,c;r(t);try{if(!(a=i(t,"return"))){if("throw"===n)throw e;return e}a=o(a,t)}catch(t){c=!0,a=t}if("throw"===n)throw e;if(c)throw a;return r(a),e}},2365:function(t,n,e){"use strict";var o,r,i,a=e(6544),c=e(9212),u=e(3590),s=e(729),l=e(1270),f=e(3649),d=e(6268),v=f("iterator"),h=!1;[].keys&&("next"in(i=[].keys())?(r=s(s(i)))!==Object.prototype&&(o=r):h=!0),null==o||a((function(){var t={};return o[v].call(t)!==t}))?o={}:d&&(o=u(o)),c(o[v])||l(o,v,(function(){return this})),t.exports={IteratorPrototype:o,BUGGY_SAFARI_ITERATORS:h}},339:function(t){t.exports={}},1825:function(t,n,e){var o=e(97);t.exports=function(t){return o(t.length)}},2095:function(t,n,e){var o,r,i,a,c,u,s,l,f=e(7583),d=e(2938),v=e(6683).f,h=e(8117).set,p=e(7020),g=e(3256),m=e(6846),_=e(5354),b=f.MutationObserver||f.WebKitMutationObserver,y=f.document,w=f.process,E=f.Promise,L=v(f,"queueMicrotask"),T=L&&L.value;T||(o=function(){var t,n;for(_&&(t=w.domain)&&t.exit();r;){n=r.fn,r=r.next;try{n()}catch(t){throw r?a():i=void 0,t}}i=void 0,t&&t.enter()},p||_||m||!b||!y?!g&&E&&E.resolve?((s=E.resolve(void 0)).constructor=E,l=d(s.then,s),a=function(){l(o)}):_?a=function(){w.nextTick(o)}:(h=d(h,f),a=function(){h(o)}):(c=!0,u=y.createTextNode(""),new b(o).observe(u,{characterData:!0}),a=function(){u.data=c=!c})),t.exports=T||function(t){var n={fn:t,next:void 0};i&&(i.next=n),r||(r=n,a()),i=n}},783:function(t,n,e){var o=e(7583);t.exports=o.Promise},8640:function(t,n,e){var o=e(4061),r=e(6544);t.exports=!!Object.getOwnPropertySymbols&&!r((function(){var t=Symbol();return!String(t)||!(Object(t)instanceof Symbol)||!Symbol.sham&&o&&o<41}))},9491:function(t,n,e){var o=e(7583),r=e(9212),i=e(9734),a=o.WeakMap;t.exports=r(a)&&/native code/.test(i(a))},5084:function(t,n,e){"use strict";var o=e(8257),r=function(t){var n,e;this.promise=new t((function(t,o){if(void 0!==n||void 0!==e)throw TypeError("Bad Promise constructor");n=t,e=o})),this.resolve=o(n),this.reject=o(e)};t.exports.f=function(t){return new r(t)}},2764:function(t,n,e){var o=e(8320);t.exports=function(t,n){return void 0===t?arguments.length<2?"":n:o(t)}},3590:function(t,n,e){var o,r=e(2569),i=e(8728),a=e(5690),c=e(4639),u=e(482),s=e(6668),l=e(9137),f=l("IE_PROTO"),d=function(){},v=function(t){return"<script>"+t+"</"+"script>"},h=function(t){t.write(v("")),t.close();var n=t.parentWindow.Object;return t=null,n},p=function(){try{o=new ActiveXObject("htmlfile")}catch(t){}var t,n;p="undefined"!=typeof document?document.domain&&o?h(o):((n=s("iframe")).style.display="none",u.appendChild(n),n.src=String("javascript:"),(t=n.contentWindow.document).open(),t.write(v("document.F=Object")),t.close(),t.F):h(o);for(var e=a.length;e--;)delete p.prototype[a[e]];return p()};c[f]=!0,t.exports=Object.create||function(t,n){var e;return null!==t?(d.prototype=r(t),e=new d,d.prototype=null,e[f]=t):e=p(),void 0===n?e:i.f(e,n)}},8728:function(t,n,e){var o=e(8494),r=e(7670),i=e(4615),a=e(2569),c=e(2977),u=e(5432);n.f=o&&!r?Object.defineProperties:function(t,n){a(t);for(var e,o=c(n),r=u(n),s=r.length,l=0;s>l;)i.f(t,e=r[l++],o[e]);return t}},4615:function(t,n,e){var o=e(7583),r=e(8494),i=e(275),a=e(7670),c=e(2569),u=e(8734),s=o.TypeError,l=Object.defineProperty,f=Object.getOwnPropertyDescriptor,d="enumerable",v="configurable",h="writable";n.f=r?a?function(t,n,e){if(c(t),n=u(n),c(e),"function"==typeof t&&"prototype"===n&&"value"in e&&h in e&&!e.writable){var o=f(t,n);o&&o.writable&&(t[n]=e.value,e={configurable:v in e?e.configurable:o.configurable,enumerable:d in e?e.enumerable:o.enumerable,writable:!1})}return l(t,n,e)}:l:function(t,n,e){if(c(t),n=u(n),c(e),i)try{return l(t,n,e)}catch(t){}if("get"in e||"set"in e)throw s("Accessors not supported");return"value"in e&&(t[n]=e.value),t}},6683:function(t,n,e){var o=e(8494),r=e(8262),i=e(112),a=e(4677),c=e(2977),u=e(8734),s=e(2870),l=e(275),f=Object.getOwnPropertyDescriptor;n.f=o?f:function(t,n){if(t=c(t),n=u(n),l)try{return f(t,n)}catch(t){}if(s(t,n))return a(!r(i.f,t,n),t[n])}},3130:function(t,n,e){var o=e(9624),r=e(2977),i=e(9275).f,a=e(4546),c="object"==typeof window&&window&&Object.getOwnPropertyNames?Object.getOwnPropertyNames(window):[];t.exports.f=function(t){return c&&"Window"==o(t)?function(t){try{return i(t)}catch(t){return a(c)}}(t):i(r(t))}},9275:function(t,n,e){var o=e(8356),r=e(5690).concat("length","prototype");n.f=Object.getOwnPropertyNames||function(t){return o(t,r)}},4012:function(t,n){n.f=Object.getOwnPropertySymbols},729:function(t,n,e){var o=e(7583),r=e(2870),i=e(9212),a=e(1324),c=e(9137),u=e(926),s=c("IE_PROTO"),l=o.Object,f=l.prototype;t.exports=u?l.getPrototypeOf:function(t){var n=a(t);if(r(n,s))return n[s];var e=n.constructor;return i(e)&&n instanceof e?e.prototype:n instanceof l?f:null}},2447:function(t,n,e){var o=e(7386);t.exports=o({}.isPrototypeOf)},8356:function(t,n,e){var o=e(7386),r=e(2870),i=e(2977),a=e(5766).indexOf,c=e(4639),u=o([].push);t.exports=function(t,n){var e,o=i(t),s=0,l=[];for(e in o)!r(c,e)&&r(o,e)&&u(l,e);for(;n.length>s;)r(o,e=n[s++])&&(~a(l,e)||u(l,e));return l}},5432:function(t,n,e){var o=e(8356),r=e(5690);t.exports=Object.keys||function(t){return o(t,r)}},112:function(t,n){"use strict";var e={}.propertyIsEnumerable,o=Object.getOwnPropertyDescriptor,r=o&&!e.call({1:2},1);n.f=r?function(t){var n=o(this,t);return!!n&&n.enumerable}:e},7496:function(t,n,e){var o=e(7386),r=e(2569),i=e(9882);t.exports=Object.setPrototypeOf||("__proto__"in{}?function(){var t,n=!1,e={};try{(t=o(Object.getOwnPropertyDescriptor(Object.prototype,"__proto__").set))(e,[]),n=e instanceof Array}catch(t){}return function(e,o){return r(e),i(o),n?t(e,o):e.__proto__=o,e}}():void 0)},3060:function(t,n,e){"use strict";var o=e(8191),r=e(3058);t.exports=o?{}.toString:function(){return"[object "+r(this)+"]"}},6252:function(t,n,e){var o=e(7583),r=e(8262),i=e(9212),a=e(794),c=o.TypeError;t.exports=function(t,n){var e,o;if("string"===n&&i(e=t.toString)&&!a(o=r(e,t)))return o;if(i(e=t.valueOf)&&!a(o=r(e,t)))return o;if("string"!==n&&i(e=t.toString)&&!a(o=r(e,t)))return o;throw c("Can't convert object to primitive value")}},929:function(t,n,e){var o=e(5897),r=e(7386),i=e(9275),a=e(4012),c=e(2569),u=r([].concat);t.exports=o("Reflect","ownKeys")||function(t){var n=i.f(c(t)),e=a.f;return e?u(n,e(t)):n}},1287:function(t,n,e){var o=e(7583);t.exports=o},544:function(t){t.exports=function(t){try{return{error:!1,value:t()}}catch(t){return{error:!0,value:t}}}},5732:function(t,n,e){var o=e(2569),r=e(794),i=e(5084);t.exports=function(t,n){if(o(t),r(n)&&n.constructor===t)return n;var e=i.f(t);return(0,e.resolve)(n),e.promise}},2723:function(t){var n=function(){this.head=null,this.tail=null};n.prototype={add:function(t){var n={item:t,next:null};this.head?this.tail.next=n:this.head=n,this.tail=n},get:function(){var t=this.head;if(t)return this.head=t.next,this.tail===t&&(this.tail=null),t.item}},t.exports=n},6893:function(t,n,e){var o=e(1270);t.exports=function(t,n,e){for(var r in n)o(t,r,n[r],e);return t}},1270:function(t,n,e){var o=e(7583),r=e(9212),i=e(2870),a=e(57),c=e(460),u=e(9734),s=e(2743),l=e(4340).CONFIGURABLE,f=s.get,d=s.enforce,v=String(String).split("String");(t.exports=function(t,n,e,u){var s,f=!!u&&!!u.unsafe,h=!!u&&!!u.enumerable,p=!!u&&!!u.noTargetGet,g=u&&void 0!==u.name?u.name:n;r(e)&&("Symbol("===String(g).slice(0,7)&&(g="["+String(g).replace(/^Symbol\(([^)]*)\)/,"$1")+"]"),(!i(e,"name")||l&&e.name!==g)&&a(e,"name",g),(s=d(e)).source||(s.source=v.join("string"==typeof g?g:""))),t!==o?(f?!p&&t[n]&&(h=!0):delete t[n],h?t[n]=e:a(t,n,e)):h?t[n]=e:c(n,e)})(Function.prototype,"toString",(function(){return r(this)&&f(this).source||u(this)}))},3955:function(t,n,e){var o=e(7583).TypeError;t.exports=function(t){if(null==t)throw o("Can't call method on "+t);return t}},460:function(t,n,e){var o=e(7583),r=Object.defineProperty;t.exports=function(t,n){try{r(o,t,{value:n,configurable:!0,writable:!0})}catch(e){o[t]=n}return n}},7730:function(t,n,e){"use strict";var o=e(5897),r=e(4615),i=e(3649),a=e(8494),c=i("species");t.exports=function(t){var n=o(t),e=r.f;a&&n&&!n[c]&&e(n,c,{configurable:!0,get:function(){return this}})}},8821:function(t,n,e){var o=e(4615).f,r=e(2870),i=e(3649)("toStringTag");t.exports=function(t,n,e){t&&!e&&(t=t.prototype),t&&!r(t,i)&&o(t,i,{configurable:!0,value:n})}},9137:function(t,n,e){var o=e(7836),r=e(8284),i=o("keys");t.exports=function(t){return i[t]||(i[t]=r(t))}},1314:function(t,n,e){var o=e(7583),r=e(460),i="__core-js_shared__",a=o[i]||r(i,{});t.exports=a},7836:function(t,n,e){var o=e(6268),r=e(1314);(t.exports=function(t,n){return r[t]||(r[t]=void 0!==n?n:{})})("versions",[]).push({version:"3.21.1",mode:o?"pure":"global",copyright:"© 2014-2022 Denis Pushkarev (zloirock.ru)",license:"https://github.com/zloirock/core-js/blob/v3.21.1/LICENSE",source:"https://github.com/zloirock/core-js"})},564:function(t,n,e){var o=e(2569),r=e(1186),i=e(3649)("species");t.exports=function(t,n){var e,a=o(t).constructor;return void 0===a||null==(e=o(a)[i])?n:r(e)}},6389:function(t,n,e){var o=e(7386),r=e(7486),i=e(8320),a=e(3955),c=o("".charAt),u=o("".charCodeAt),s=o("".slice),l=function(t){return function(n,e){var o,l,f=i(a(n)),d=r(e),v=f.length;return d<0||d>=v?t?"":void 0:(o=u(f,d))<55296||o>56319||d+1===v||(l=u(f,d+1))<56320||l>57343?t?c(f,d):o:t?s(f,d,d+2):l-56320+(o-55296<<10)+65536}};t.exports={codeAt:l(!1),charAt:l(!0)}},8117:function(t,n,e){var o,r,i,a,c=e(7583),u=e(1611),s=e(2938),l=e(9212),f=e(2870),d=e(6544),v=e(482),h=e(6917),p=e(6668),g=e(7520),m=e(7020),_=e(5354),b=c.setImmediate,y=c.clearImmediate,w=c.process,E=c.Dispatch,L=c.Function,T=c.MessageChannel,x=c.String,C=0,O={},I="onreadystatechange";try{o=c.location}catch(t){}var D=function(t){if(f(O,t)){var n=O[t];delete O[t],n()}},R=function(t){return function(){D(t)}},$=function(t){D(t.data)},k=function(t){c.postMessage(x(t),o.protocol+"//"+o.host)};b&&y||(b=function(t){g(arguments.length,1);var n=l(t)?t:L(t),e=h(arguments,1);return O[++C]=function(){u(n,void 0,e)},r(C),C},y=function(t){delete O[t]},_?r=function(t){w.nextTick(R(t))}:E&&E.now?r=function(t){E.now(R(t))}:T&&!m?(a=(i=new T).port2,i.port1.onmessage=$,r=s(a.postMessage,a)):c.addEventListener&&l(c.postMessage)&&!c.importScripts&&o&&"file:"!==o.protocol&&!d(k)?(r=k,c.addEventListener("message",$,!1)):r=I in p("script")?function(t){v.appendChild(p("script")).onreadystatechange=function(){v.removeChild(this),D(t)}}:function(t){setTimeout(R(t),0)}),t.exports={set:b,clear:y}},6782:function(t,n,e){var o=e(7486),r=Math.max,i=Math.min;t.exports=function(t,n){var e=o(t);return e<0?r(e+n,0):i(e,n)}},2977:function(t,n,e){var o=e(5044),r=e(3955);t.exports=function(t){return o(r(t))}},7486:function(t){var n=Math.ceil,e=Math.floor;t.exports=function(t){var o=+t;return o!=o||0===o?0:(o>0?e:n)(o)}},97:function(t,n,e){var o=e(7486),r=Math.min;t.exports=function(t){return t>0?r(o(t),9007199254740991):0}},1324:function(t,n,e){var o=e(7583),r=e(3955),i=o.Object;t.exports=function(t){return i(r(t))}},2670:function(t,n,e){var o=e(7583),r=e(8262),i=e(794),a=e(5871),c=e(911),u=e(6252),s=e(3649),l=o.TypeError,f=s("toPrimitive");t.exports=function(t,n){if(!i(t)||a(t))return t;var e,o=c(t,f);if(o){if(void 0===n&&(n="default"),e=r(o,t,n),!i(e)||a(e))return e;throw l("Can't convert object to primitive value")}return void 0===n&&(n="number"),u(t,n)}},8734:function(t,n,e){var o=e(2670),r=e(5871);t.exports=function(t){var n=o(t,"string");return r(n)?n:n+""}},8191:function(t,n,e){var o={};o[e(3649)("toStringTag")]="z",t.exports="[object z]"===String(o)},8320:function(t,n,e){var o=e(7583),r=e(3058),i=o.String;t.exports=function(t){if("Symbol"===r(t))throw TypeError("Cannot convert a Symbol value to a string");return i(t)}},5637:function(t,n,e){var o=e(7583).String;t.exports=function(t){try{return o(t)}catch(t){return"Object"}}},8284:function(t,n,e){var o=e(7386),r=0,i=Math.random(),a=o(1..toString);t.exports=function(t){return"Symbol("+(void 0===t?"":t)+")_"+a(++r+i,36)}},7786:function(t,n,e){var o=e(8640);t.exports=o&&!Symbol.sham&&"symbol"==typeof Symbol.iterator},7670:function(t,n,e){var o=e(8494),r=e(6544);t.exports=o&&r((function(){return 42!=Object.defineProperty((function(){}),"prototype",{value:42,writable:!1}).prototype}))},7520:function(t,n,e){var o=e(7583).TypeError;t.exports=function(t,n){if(t<n)throw o("Not enough arguments");return t}},491:function(t,n,e){var o=e(3649);n.f=o},3649:function(t,n,e){var o=e(7583),r=e(7836),i=e(2870),a=e(8284),c=e(8640),u=e(7786),s=r("wks"),l=o.Symbol,f=l&&l.for,d=u?l:l&&l.withoutSetter||a;t.exports=function(t){if(!i(s,t)||!c&&"string"!=typeof s[t]){var n="Symbol."+t;c&&i(l,t)?s[t]=l[t]:s[t]=u&&f?f(n):d(n)}return s[t]}},1719:function(t,n,e){"use strict";var o=e(7263),r=e(7583),i=e(2447),a=e(729),c=e(7496),u=e(3478),s=e(3590),l=e(57),f=e(4677),d=e(1509),v=e(4402),h=e(4026),p=e(2764),g=e(3649),m=e(1178),_=g("toStringTag"),b=r.Error,y=[].push,w=function(t,n){var e,o=arguments.length>2?arguments[2]:void 0,r=i(E,this);c?e=c(new b,r?a(this):E):(e=r?this:s(E),l(e,_,"Error")),void 0!==n&&l(e,"message",p(n)),m&&l(e,"stack",d(e.stack,1)),v(e,o);var u=[];return h(t,y,{that:u}),l(e,"errors",u),e};c?c(w,b):u(w,b,{name:!0});var E=w.prototype=s(b.prototype,{constructor:f(1,w),message:f(1,""),name:f(1,"AggregateError")});o({global:!0},{AggregateError:w})},1646:function(t,n,e){"use strict";var o=e(7263),r=e(7583),i=e(6544),a=e(4521),c=e(794),u=e(1324),s=e(1825),l=e(5999),f=e(4822),d=e(9269),v=e(3649),h=e(4061),p=v("isConcatSpreadable"),g=9007199254740991,m="Maximum allowed index exceeded",_=r.TypeError,b=h>=51||!i((function(){var t=[];return t[p]=!1,t.concat()[0]!==t})),y=d("concat"),w=function(t){if(!c(t))return!1;var n=t[p];return void 0!==n?!!n:a(t)};o({target:"Array",proto:!0,forced:!b||!y},{concat:function(t){var n,e,o,r,i,a=u(this),c=f(a,0),d=0;for(n=-1,o=arguments.length;n<o;n++)if(w(i=-1===n?a:arguments[n])){if(d+(r=s(i))>g)throw _(m);for(e=0;e<r;e++,d++)e in i&&l(c,d,i[e])}else{if(d>=g)throw _(m);l(c,d++,i)}return c.length=d,c}})},5677:function(t,n,e){"use strict";var o=e(2977),r=e(6288),i=e(339),a=e(2743),c=e(4615).f,u=e(9012),s=e(6268),l=e(8494),f="Array Iterator",d=a.set,v=a.getterFor(f);t.exports=u(Array,"Array",(function(t,n){d(this,{type:f,target:o(t),index:0,kind:n})}),(function(){var t=v(this),n=t.target,e=t.kind,o=t.index++;return!n||o>=n.length?(t.target=void 0,{value:void 0,done:!0}):"keys"==e?{value:o,done:!1}:"values"==e?{value:n[o],done:!1}:{value:[o,n[o]],done:!1}}),"values");var h=i.Arguments=i.Array;if(r("keys"),r("values"),r("entries"),!s&&l&&"values"!==h.name)try{c(h,"name",{value:"values"})}catch(t){}},6956:function(t,n,e){var o=e(7583);e(8821)(o.JSON,"JSON",!0)},5222:function(t,n,e){e(8821)(Math,"Math",!0)},6394:function(t,n,e){var o=e(8191),r=e(1270),i=e(3060);o||r(Object.prototype,"toString",i,{unsafe:!0})},6969:function(t,n,e){"use strict";var o=e(7263),r=e(8262),i=e(8257),a=e(5084),c=e(544),u=e(4026);o({target:"Promise",stat:!0},{allSettled:function(t){var n=this,e=a.f(n),o=e.resolve,s=e.reject,l=c((function(){var e=i(n.resolve),a=[],c=0,s=1;u(t,(function(t){var i=c++,u=!1;s++,r(e,n,t).then((function(t){u||(u=!0,a[i]={status:"fulfilled",value:t},--s||o(a))}),(function(t){u||(u=!0,a[i]={status:"rejected",reason:t},--s||o(a))}))})),--s||o(a)}));return l.error&&s(l.value),e.promise}})},2021:function(t,n,e){"use strict";var o=e(7263),r=e(8257),i=e(5897),a=e(8262),c=e(5084),u=e(544),s=e(4026),l="No one promise resolved";o({target:"Promise",stat:!0},{any:function(t){var n=this,e=i("AggregateError"),o=c.f(n),f=o.resolve,d=o.reject,v=u((function(){var o=r(n.resolve),i=[],c=0,u=1,v=!1;s(t,(function(t){var r=c++,s=!1;u++,a(o,n,t).then((function(t){s||v||(v=!0,f(t))}),(function(t){s||v||(s=!0,i[r]=t,--u||d(new e(i,l)))}))})),--u||d(new e(i,l))}));return v.error&&d(v.value),o.promise}})},8328:function(t,n,e){"use strict";var o=e(7263),r=e(6268),i=e(783),a=e(6544),c=e(5897),u=e(9212),s=e(564),l=e(5732),f=e(1270);if(o({target:"Promise",proto:!0,real:!0,forced:!!i&&a((function(){i.prototype.finally.call({then:function(){}},(function(){}))}))},{finally:function(t){var n=s(this,c("Promise")),e=u(t);return this.then(e?function(e){return l(n,t()).then((function(){return e}))}:t,e?function(e){return l(n,t()).then((function(){throw e}))}:t)}}),!r&&u(i)){var d=c("Promise").prototype.finally;i.prototype.finally!==d&&f(i.prototype,"finally",d,{unsafe:!0})}},5334:function(t,n,e){"use strict";var o,r,i,a,c=e(7263),u=e(6268),s=e(7583),l=e(5897),f=e(8262),d=e(783),v=e(1270),h=e(6893),p=e(7496),g=e(8821),m=e(7730),_=e(8257),b=e(9212),y=e(794),w=e(4761),E=e(9734),L=e(4026),T=e(3616),x=e(564),C=e(8117).set,O=e(2095),I=e(5732),D=e(2716),R=e(5084),$=e(544),k=e(2723),P=e(2743),M=e(4451),S=e(3649),j=e(2274),B=e(5354),A=e(4061),U=S("species"),G="Promise",N=P.getterFor(G),V=P.set,W=P.getterFor(G),K=d&&d.prototype,H=d,F=K,q=s.TypeError,Z=s.document,X=s.process,z=R.f,Y=z,J=!!(Z&&Z.createEvent&&s.dispatchEvent),Q=b(s.PromiseRejectionEvent),tt="unhandledrejection",nt=!1,et=M(G,(function(){var t=E(H),n=t!==String(H);if(!n&&66===A)return!0;if(u&&!F.finally)return!0;if(A>=51&&/native code/.test(t))return!1;var e=new H((function(t){t(1)})),o=function(t){t((function(){}),(function(){}))};return(e.constructor={})[U]=o,!(nt=e.then((function(){}))instanceof o)||!n&&j&&!Q})),ot=et||!T((function(t){H.all(t).catch((function(){}))})),rt=function(t){var n;return!(!y(t)||!b(n=t.then))&&n},it=function(t,n){var e,o,r,i=n.value,a=1==n.state,c=a?t.ok:t.fail,u=t.resolve,s=t.reject,l=t.domain;try{c?(a||(2===n.rejection&<(n),n.rejection=1),!0===c?e=i:(l&&l.enter(),e=c(i),l&&(l.exit(),r=!0)),e===t.promise?s(q("Promise-chain cycle")):(o=rt(e))?f(o,e,u,s):u(e)):s(i)}catch(t){l&&!r&&l.exit(),s(t)}},at=function(t,n){t.notified||(t.notified=!0,O((function(){for(var e,o=t.reactions;e=o.get();)it(e,t);t.notified=!1,n&&!t.rejection&&ut(t)})))},ct=function(t,n,e){var o,r;J?((o=Z.createEvent("Event")).promise=n,o.reason=e,o.initEvent(t,!1,!0),s.dispatchEvent(o)):o={promise:n,reason:e},!Q&&(r=s["on"+t])?r(o):t===tt&&D("Unhandled promise rejection",e)},ut=function(t){f(C,s,(function(){var n,e=t.facade,o=t.value;if(st(t)&&(n=$((function(){B?X.emit("unhandledRejection",o,e):ct(tt,e,o)})),t.rejection=B||st(t)?2:1,n.error))throw n.value}))},st=function(t){return 1!==t.rejection&&!t.parent},lt=function(t){f(C,s,(function(){var n=t.facade;B?X.emit("rejectionHandled",n):ct("rejectionhandled",n,t.value)}))},ft=function(t,n,e){return function(o){t(n,o,e)}},dt=function(t,n,e){t.done||(t.done=!0,e&&(t=e),t.value=n,t.state=2,at(t,!0))},vt=function t(n,e,o){if(!n.done){n.done=!0,o&&(n=o);try{if(n.facade===e)throw q("Promise can't be resolved itself");var r=rt(e);r?O((function(){var o={done:!1};try{f(r,e,ft(t,o,n),ft(dt,o,n))}catch(t){dt(o,t,n)}})):(n.value=e,n.state=1,at(n,!1))}catch(t){dt({done:!1},t,n)}}};if(et&&(F=(H=function(t){w(this,F),_(t),f(o,this);var n=N(this);try{t(ft(vt,n),ft(dt,n))}catch(t){dt(n,t)}}).prototype,(o=function(t){V(this,{type:G,done:!1,notified:!1,parent:!1,reactions:new k,rejection:!1,state:0,value:void 0})}).prototype=h(F,{then:function(t,n){var e=W(this),o=z(x(this,H));return e.parent=!0,o.ok=!b(t)||t,o.fail=b(n)&&n,o.domain=B?X.domain:void 0,0==e.state?e.reactions.add(o):O((function(){it(o,e)})),o.promise},catch:function(t){return this.then(void 0,t)}}),r=function(){var t=new o,n=N(t);this.promise=t,this.resolve=ft(vt,n),this.reject=ft(dt,n)},R.f=z=function(t){return t===H||t===i?new r(t):Y(t)},!u&&b(d)&&K!==Object.prototype)){a=K.then,nt||(v(K,"then",(function(t,n){var e=this;return new H((function(t,n){f(a,e,t,n)})).then(t,n)}),{unsafe:!0}),v(K,"catch",F.catch,{unsafe:!0}));try{delete K.constructor}catch(t){}p&&p(K,F)}c({global:!0,wrap:!0,forced:et},{Promise:H}),g(H,G,!1,!0),m(G),i=l(G),c({target:G,stat:!0,forced:et},{reject:function(t){var n=z(this);return f(n.reject,void 0,t),n.promise}}),c({target:G,stat:!0,forced:u||et},{resolve:function(t){return I(u&&this===i?H:this,t)}}),c({target:G,stat:!0,forced:ot},{all:function(t){var n=this,e=z(n),o=e.resolve,r=e.reject,i=$((function(){var e=_(n.resolve),i=[],a=0,c=1;L(t,(function(t){var u=a++,s=!1;c++,f(e,n,t).then((function(t){s||(s=!0,i[u]=t,--c||o(i))}),r)})),--c||o(i)}));return i.error&&r(i.value),e.promise},race:function(t){var n=this,e=z(n),o=e.reject,r=$((function(){var r=_(n.resolve);L(t,(function(t){f(r,n,t).then(e.resolve,o)}))}));return r.error&&o(r.value),e.promise}})},2257:function(t,n,e){var o=e(7263),r=e(7583),i=e(8821);o({global:!0},{Reflect:{}}),i(r.Reflect,"Reflect",!0)},2129:function(t,n,e){"use strict";var o=e(6389).charAt,r=e(8320),i=e(2743),a=e(9012),c="String Iterator",u=i.set,s=i.getterFor(c);a(String,"String",(function(t){u(this,{type:c,string:r(t),index:0})}),(function(){var t,n=s(this),e=n.string,r=n.index;return r>=e.length?{value:void 0,done:!0}:(t=o(e,r),n.index+=t.length,{value:t,done:!1})}))},462:function(t,n,e){e(2219)("asyncIterator")},8407:function(t,n,e){"use strict";var o=e(7263),r=e(8494),i=e(7583),a=e(7386),c=e(2870),u=e(9212),s=e(2447),l=e(8320),f=e(4615).f,d=e(3478),v=i.Symbol,h=v&&v.prototype;if(r&&u(v)&&(!("description"in h)||void 0!==v().description)){var p={},g=function(){var t=arguments.length<1||void 0===arguments[0]?void 0:l(arguments[0]),n=s(h,this)?new v(t):void 0===t?v():v(t);return""===t&&(p[n]=!0),n};d(g,v),g.prototype=h,h.constructor=g;var m="Symbol(test)"==String(v("test")),_=a(h.toString),b=a(h.valueOf),y=/^Symbol\((.*)\)[^)]+$/,w=a("".replace),E=a("".slice);f(h,"description",{configurable:!0,get:function(){var t=b(this),n=_(t);if(c(p,t))return"";var e=m?E(n,7,-1):w(n,y,"$1");return""===e?void 0:e}}),o({global:!0,forced:!0},{Symbol:g})}},2429:function(t,n,e){e(2219)("hasInstance")},1172:function(t,n,e){e(2219)("isConcatSpreadable")},8288:function(t,n,e){e(2219)("iterator")},2004:function(t,n,e){"use strict";var o=e(7263),r=e(7583),i=e(5897),a=e(1611),c=e(8262),u=e(7386),s=e(6268),l=e(8494),f=e(8640),d=e(6544),v=e(2870),h=e(4521),p=e(9212),g=e(794),m=e(2447),_=e(5871),b=e(2569),y=e(1324),w=e(2977),E=e(8734),L=e(8320),T=e(4677),x=e(3590),C=e(5432),O=e(9275),I=e(3130),D=e(4012),R=e(6683),$=e(4615),k=e(8728),P=e(112),M=e(6917),S=e(1270),j=e(7836),B=e(9137),A=e(4639),U=e(8284),G=e(3649),N=e(491),V=e(2219),W=e(8821),K=e(2743),H=e(4805).forEach,F=B("hidden"),q="Symbol",Z=G("toPrimitive"),X=K.set,z=K.getterFor(q),Y=Object.prototype,J=r.Symbol,Q=J&&J.prototype,tt=r.TypeError,nt=r.QObject,et=i("JSON","stringify"),ot=R.f,rt=$.f,it=I.f,at=P.f,ct=u([].push),ut=j("symbols"),st=j("op-symbols"),lt=j("string-to-symbol-registry"),ft=j("symbol-to-string-registry"),dt=j("wks"),vt=!nt||!nt.prototype||!nt.prototype.findChild,ht=l&&d((function(){return 7!=x(rt({},"a",{get:function(){return rt(this,"a",{value:7}).a}})).a}))?function(t,n,e){var o=ot(Y,n);o&&delete Y[n],rt(t,n,e),o&&t!==Y&&rt(Y,n,o)}:rt,pt=function(t,n){var e=ut[t]=x(Q);return X(e,{type:q,tag:t,description:n}),l||(e.description=n),e},gt=function(t,n,e){t===Y&>(st,n,e),b(t);var o=E(n);return b(e),v(ut,o)?(e.enumerable?(v(t,F)&&t[F][o]&&(t[F][o]=!1),e=x(e,{enumerable:T(0,!1)})):(v(t,F)||rt(t,F,T(1,{})),t[F][o]=!0),ht(t,o,e)):rt(t,o,e)},mt=function(t,n){b(t);var e=w(n),o=C(e).concat(wt(e));return H(o,(function(n){l&&!c(_t,e,n)||gt(t,n,e[n])})),t},_t=function(t){var n=E(t),e=c(at,this,n);return!(this===Y&&v(ut,n)&&!v(st,n))&&(!(e||!v(this,n)||!v(ut,n)||v(this,F)&&this[F][n])||e)},bt=function(t,n){var e=w(t),o=E(n);if(e!==Y||!v(ut,o)||v(st,o)){var r=ot(e,o);return!r||!v(ut,o)||v(e,F)&&e[F][o]||(r.enumerable=!0),r}},yt=function(t){var n=it(w(t)),e=[];return H(n,(function(t){v(ut,t)||v(A,t)||ct(e,t)})),e},wt=function(t){var n=t===Y,e=it(n?st:w(t)),o=[];return H(e,(function(t){!v(ut,t)||n&&!v(Y,t)||ct(o,ut[t])})),o};(f||(J=function(){if(m(Q,this))throw tt("Symbol is not a constructor");var t=arguments.length&&void 0!==arguments[0]?L(arguments[0]):void 0,n=U(t),e=function t(e){this===Y&&c(t,st,e),v(this,F)&&v(this[F],n)&&(this[F][n]=!1),ht(this,n,T(1,e))};return l&&vt&&ht(Y,n,{configurable:!0,set:e}),pt(n,t)},S(Q=J.prototype,"toString",(function(){return z(this).tag})),S(J,"withoutSetter",(function(t){return pt(U(t),t)})),P.f=_t,$.f=gt,k.f=mt,R.f=bt,O.f=I.f=yt,D.f=wt,N.f=function(t){return pt(G(t),t)},l&&(rt(Q,"description",{configurable:!0,get:function(){return z(this).description}}),s||S(Y,"propertyIsEnumerable",_t,{unsafe:!0}))),o({global:!0,wrap:!0,forced:!f,sham:!f},{Symbol:J}),H(C(dt),(function(t){V(t)})),o({target:q,stat:!0,forced:!f},{for:function(t){var n=L(t);if(v(lt,n))return lt[n];var e=J(n);return lt[n]=e,ft[e]=n,e},keyFor:function(t){if(!_(t))throw tt(t+" is not a symbol");if(v(ft,t))return ft[t]},useSetter:function(){vt=!0},useSimple:function(){vt=!1}}),o({target:"Object",stat:!0,forced:!f,sham:!l},{create:function(t,n){return void 0===n?x(t):mt(x(t),n)},defineProperty:gt,defineProperties:mt,getOwnPropertyDescriptor:bt}),o({target:"Object",stat:!0,forced:!f},{getOwnPropertyNames:yt,getOwnPropertySymbols:wt}),o({target:"Object",stat:!0,forced:d((function(){D.f(1)}))},{getOwnPropertySymbols:function(t){return D.f(y(t))}}),et)&&o({target:"JSON",stat:!0,forced:!f||d((function(){var t=J();return"[null]"!=et([t])||"{}"!=et({a:t})||"{}"!=et(Object(t))}))},{stringify:function(t,n,e){var o=M(arguments),r=n;if((g(n)||void 0!==t)&&!_(t))return h(n)||(n=function(t,n){if(p(r)&&(n=c(r,this,t,n)),!_(n))return n}),o[1]=n,a(et,null,o)}});if(!Q[Z]){var Et=Q.valueOf;S(Q,Z,(function(t){return c(Et,this)}))}W(J,q),A[F]=!0},8201:function(t,n,e){e(2219)("matchAll")},1274:function(t,n,e){e(2219)("match")},6626:function(t,n,e){e(2219)("replace")},3211:function(t,n,e){e(2219)("search")},9952:function(t,n,e){e(2219)("species")},15:function(t,n,e){e(2219)("split")},9831:function(t,n,e){e(2219)("toPrimitive")},7521:function(t,n,e){e(2219)("toStringTag")},2972:function(t,n,e){e(2219)("unscopables")},4655:function(t,n,e){var o=e(7583),r=e(6778),i=e(9307),a=e(5677),c=e(57),u=e(3649),s=u("iterator"),l=u("toStringTag"),f=a.values,d=function(t,n){if(t){if(t[s]!==f)try{c(t,s,f)}catch(n){t[s]=f}if(t[l]||c(t,l,n),r[n])for(var e in a)if(t[e]!==a[e])try{c(t,e,a[e])}catch(n){t[e]=a[e]}}};for(var v in r)d(o[v]&&o[v].prototype,v);d(i,"DOMTokenList")},8765:function(t,n,e){var o=e(5036);e(4655),t.exports=o},5441:function(t,n,e){var o=e(2582);e(4655),t.exports=o},7705:function(t){"use strict";t.exports=function(t){var n=[];return n.toString=function(){return this.map((function(n){var e="",o=void 0!==n[5];return n[4]&&(e+="@supports (".concat(n[4],") {")),n[2]&&(e+="@media ".concat(n[2]," {")),o&&(e+="@layer".concat(n[5].length>0?" ".concat(n[5]):""," {")),e+=t(n),o&&(e+="}"),n[2]&&(e+="}"),n[4]&&(e+="}"),e})).join("")},n.i=function(t,e,o,r,i){"string"==typeof t&&(t=[[null,t,void 0]]);var a={};if(o)for(var c=0;c<this.length;c++){var u=this[c][0];null!=u&&(a[u]=!0)}for(var s=0;s<t.length;s++){var l=[].concat(t[s]);o&&a[l[0]]||(void 0!==i&&(void 0===l[5]||(l[1]="@layer".concat(l[5].length>0?" ".concat(l[5]):""," {").concat(l[1],"}")),l[5]=i),e&&(l[2]?(l[1]="@media ".concat(l[2]," {").concat(l[1],"}"),l[2]=e):l[2]=e),r&&(l[4]?(l[1]="@supports (".concat(l[4],") {").concat(l[1],"}"),l[4]=r):l[4]="".concat(r)),n.push(l))}},n}},6738:function(t){"use strict";t.exports=function(t){return t[1]}},8679:function(t){var n=window.MutationObserver||window.WebKitMutationObserver||window.MozMutationObserver,e=window.WeakMap;if(void 0===e){var o=Object.defineProperty,r=Date.now()%1e9;(e=function(){this.name="__st"+(1e9*Math.random()>>>0)+r+++"__"}).prototype={set:function(t,n){var e=t[this.name];return e&&e[0]===t?e[1]=n:o(t,this.name,{value:[t,n],writable:!0}),this},get:function(t){var n;return(n=t[this.name])&&n[0]===t?n[1]:void 0},delete:function(t){var n=t[this.name];if(!n)return!1;var e=n[0]===t;return n[0]=n[1]=void 0,e},has:function(t){var n=t[this.name];return!!n&&n[0]===t}}}var i=new e,a=window.msSetImmediate;if(!a){var c=[],u=String(Math.random());window.addEventListener("message",(function(t){if(t.data===u){var n=c;c=[],n.forEach((function(t){t()}))}})),a=function(t){c.push(t),window.postMessage(u,"*")}}var s=!1,l=[];function f(){s=!1;var t=l;l=[],t.sort((function(t,n){return t.uid_-n.uid_}));var n=!1;t.forEach((function(t){var e=t.takeRecords();!function(t){t.nodes_.forEach((function(n){var e=i.get(n);e&&e.forEach((function(n){n.observer===t&&n.removeTransientObservers()}))}))}(t),e.length&&(t.callback_(e,t),n=!0)})),n&&f()}function d(t,n){for(var e=t;e;e=e.parentNode){var o=i.get(e);if(o)for(var r=0;r<o.length;r++){var a=o[r],c=a.options;if(e===t||c.subtree){var u=n(c);u&&a.enqueue(u)}}}}var v,h,p=0;function g(t){this.callback_=t,this.nodes_=[],this.records_=[],this.uid_=++p}function m(t,n){this.type=t,this.target=n,this.addedNodes=[],this.removedNodes=[],this.previousSibling=null,this.nextSibling=null,this.attributeName=null,this.attributeNamespace=null,this.oldValue=null}function _(t,n){return v=new m(t,n)}function b(t){return h||((e=new m((n=v).type,n.target)).addedNodes=n.addedNodes.slice(),e.removedNodes=n.removedNodes.slice(),e.previousSibling=n.previousSibling,e.nextSibling=n.nextSibling,e.attributeName=n.attributeName,e.attributeNamespace=n.attributeNamespace,e.oldValue=n.oldValue,(h=e).oldValue=t,h);var n,e}function y(t,n){return t===n?t:h&&((e=t)===h||e===v)?h:null;var e}function w(t,n,e){this.observer=t,this.target=n,this.options=e,this.transientObservedNodes=[]}g.prototype={observe:function(t,n){var e;if(e=t,t=window.ShadowDOMPolyfill&&window.ShadowDOMPolyfill.wrapIfNeeded(e)||e,!n.childList&&!n.attributes&&!n.characterData||n.attributeOldValue&&!n.attributes||n.attributeFilter&&n.attributeFilter.length&&!n.attributes||n.characterDataOldValue&&!n.characterData)throw new SyntaxError;var o,r=i.get(t);r||i.set(t,r=[]);for(var a=0;a<r.length;a++)if(r[a].observer===this){(o=r[a]).removeListeners(),o.options=n;break}o||(o=new w(this,t,n),r.push(o),this.nodes_.push(t)),o.addListeners()},disconnect:function(){this.nodes_.forEach((function(t){for(var n=i.get(t),e=0;e<n.length;e++){var o=n[e];if(o.observer===this){o.removeListeners(),n.splice(e,1);break}}}),this),this.records_=[]},takeRecords:function(){var t=this.records_;return this.records_=[],t}},w.prototype={enqueue:function(t){var n,e=this.observer.records_,o=e.length;if(e.length>0){var r=y(e[o-1],t);if(r)return void(e[o-1]=r)}else n=this.observer,l.push(n),s||(s=!0,a(f));e[o]=t},addListeners:function(){this.addListeners_(this.target)},addListeners_:function(t){var n=this.options;n.attributes&&t.addEventListener("DOMAttrModified",this,!0),n.characterData&&t.addEventListener("DOMCharacterDataModified",this,!0),n.childList&&t.addEventListener("DOMNodeInserted",this,!0),(n.childList||n.subtree)&&t.addEventListener("DOMNodeRemoved",this,!0)},removeListeners:function(){this.removeListeners_(this.target)},removeListeners_:function(t){var n=this.options;n.attributes&&t.removeEventListener("DOMAttrModified",this,!0),n.characterData&&t.removeEventListener("DOMCharacterDataModified",this,!0),n.childList&&t.removeEventListener("DOMNodeInserted",this,!0),(n.childList||n.subtree)&&t.removeEventListener("DOMNodeRemoved",this,!0)},addTransientObserver:function(t){if(t!==this.target){this.addListeners_(t),this.transientObservedNodes.push(t);var n=i.get(t);n||i.set(t,n=[]),n.push(this)}},removeTransientObservers:function(){var t=this.transientObservedNodes;this.transientObservedNodes=[],t.forEach((function(t){this.removeListeners_(t);for(var n=i.get(t),e=0;e<n.length;e++)if(n[e]===this){n.splice(e,1);break}}),this)},handleEvent:function(t){switch(t.stopImmediatePropagation(),t.type){case"DOMAttrModified":var n=t.attrName,e=t.relatedNode.namespaceURI,o=t.target;(i=new _("attributes",o)).attributeName=n,i.attributeNamespace=e;var r=null;"undefined"!=typeof MutationEvent&&t.attrChange===MutationEvent.ADDITION||(r=t.prevValue),d(o,(function(t){if(t.attributes&&(!t.attributeFilter||!t.attributeFilter.length||-1!==t.attributeFilter.indexOf(n)||-1!==t.attributeFilter.indexOf(e)))return t.attributeOldValue?b(r):i}));break;case"DOMCharacterDataModified":var i=_("characterData",o=t.target);r=t.prevValue;d(o,(function(t){if(t.characterData)return t.characterDataOldValue?b(r):i}));break;case"DOMNodeRemoved":this.addTransientObserver(t.target);case"DOMNodeInserted":o=t.relatedNode;var a,c,u=t.target;"DOMNodeInserted"===t.type?(a=[u],c=[]):(a=[],c=[u]);var s=u.previousSibling,l=u.nextSibling;(i=_("childList",o)).addedNodes=a,i.removedNodes=c,i.previousSibling=s,i.nextSibling=l,d(o,(function(t){if(t.childList)return i}))}v=h=void 0}},n||(n=g),t.exports=n},7588:function(t){var n=function(t){"use strict";var n,e=Object.prototype,o=e.hasOwnProperty,r="function"==typeof Symbol?Symbol:{},i=r.iterator||"@@iterator",a=r.asyncIterator||"@@asyncIterator",c=r.toStringTag||"@@toStringTag";function u(t,n,e){return Object.defineProperty(t,n,{value:e,enumerable:!0,configurable:!0,writable:!0}),t[n]}try{u({},"")}catch(t){u=function(t,n,e){return t[n]=e}}function s(t,n,e,o){var r=n&&n.prototype instanceof g?n:g,i=Object.create(r.prototype),a=new I(o||[]);return i._invoke=function(t,n,e){var o=f;return function(r,i){if(o===v)throw new Error("Generator is already running");if(o===h){if("throw"===r)throw i;return R()}for(e.method=r,e.arg=i;;){var a=e.delegate;if(a){var c=x(a,e);if(c){if(c===p)continue;return c}}if("next"===e.method)e.sent=e._sent=e.arg;else if("throw"===e.method){if(o===f)throw o=h,e.arg;e.dispatchException(e.arg)}else"return"===e.method&&e.abrupt("return",e.arg);o=v;var u=l(t,n,e);if("normal"===u.type){if(o=e.done?h:d,u.arg===p)continue;return{value:u.arg,done:e.done}}"throw"===u.type&&(o=h,e.method="throw",e.arg=u.arg)}}}(t,e,a),i}function l(t,n,e){try{return{type:"normal",arg:t.call(n,e)}}catch(t){return{type:"throw",arg:t}}}t.wrap=s;var f="suspendedStart",d="suspendedYield",v="executing",h="completed",p={};function g(){}function m(){}function _(){}var b={};u(b,i,(function(){return this}));var y=Object.getPrototypeOf,w=y&&y(y(D([])));w&&w!==e&&o.call(w,i)&&(b=w);var E=_.prototype=g.prototype=Object.create(b);function L(t){["next","throw","return"].forEach((function(n){u(t,n,(function(t){return this._invoke(n,t)}))}))}function T(t,n){function e(r,i,a,c){var u=l(t[r],t,i);if("throw"!==u.type){var s=u.arg,f=s.value;return f&&"object"==typeof f&&o.call(f,"__await")?n.resolve(f.__await).then((function(t){e("next",t,a,c)}),(function(t){e("throw",t,a,c)})):n.resolve(f).then((function(t){s.value=t,a(s)}),(function(t){return e("throw",t,a,c)}))}c(u.arg)}var r;this._invoke=function(t,o){function i(){return new n((function(n,r){e(t,o,n,r)}))}return r=r?r.then(i,i):i()}}function x(t,e){var o=t.iterator[e.method];if(o===n){if(e.delegate=null,"throw"===e.method){if(t.iterator.return&&(e.method="return",e.arg=n,x(t,e),"throw"===e.method))return p;e.method="throw",e.arg=new TypeError("The iterator does not provide a 'throw' method")}return p}var r=l(o,t.iterator,e.arg);if("throw"===r.type)return e.method="throw",e.arg=r.arg,e.delegate=null,p;var i=r.arg;return i?i.done?(e[t.resultName]=i.value,e.next=t.nextLoc,"return"!==e.method&&(e.method="next",e.arg=n),e.delegate=null,p):i:(e.method="throw",e.arg=new TypeError("iterator result is not an object"),e.delegate=null,p)}function C(t){var n={tryLoc:t[0]};1 in t&&(n.catchLoc=t[1]),2 in t&&(n.finallyLoc=t[2],n.afterLoc=t[3]),this.tryEntries.push(n)}function O(t){var n=t.completion||{};n.type="normal",delete n.arg,t.completion=n}function I(t){this.tryEntries=[{tryLoc:"root"}],t.forEach(C,this),this.reset(!0)}function D(t){if(t){var e=t[i];if(e)return e.call(t);if("function"==typeof t.next)return t;if(!isNaN(t.length)){var r=-1,a=function e(){for(;++r<t.length;)if(o.call(t,r))return e.value=t[r],e.done=!1,e;return e.value=n,e.done=!0,e};return a.next=a}}return{next:R}}function R(){return{value:n,done:!0}}return m.prototype=_,u(E,"constructor",_),u(_,"constructor",m),m.displayName=u(_,c,"GeneratorFunction"),t.isGeneratorFunction=function(t){var n="function"==typeof t&&t.constructor;return!!n&&(n===m||"GeneratorFunction"===(n.displayName||n.name))},t.mark=function(t){return Object.setPrototypeOf?Object.setPrototypeOf(t,_):(t.__proto__=_,u(t,c,"GeneratorFunction")),t.prototype=Object.create(E),t},t.awrap=function(t){return{__await:t}},L(T.prototype),u(T.prototype,a,(function(){return this})),t.AsyncIterator=T,t.async=function(n,e,o,r,i){void 0===i&&(i=Promise);var a=new T(s(n,e,o,r),i);return t.isGeneratorFunction(e)?a:a.next().then((function(t){return t.done?t.value:a.next()}))},L(E),u(E,c,"Generator"),u(E,i,(function(){return this})),u(E,"toString",(function(){return"[object Generator]"})),t.keys=function(t){var n=[];for(var e in t)n.push(e);return n.reverse(),function e(){for(;n.length;){var o=n.pop();if(o in t)return e.value=o,e.done=!1,e}return e.done=!0,e}},t.values=D,I.prototype={constructor:I,reset:function(t){if(this.prev=0,this.next=0,this.sent=this._sent=n,this.done=!1,this.delegate=null,this.method="next",this.arg=n,this.tryEntries.forEach(O),!t)for(var e in this)"t"===e.charAt(0)&&o.call(this,e)&&!isNaN(+e.slice(1))&&(this[e]=n)},stop:function(){this.done=!0;var t=this.tryEntries[0].completion;if("throw"===t.type)throw t.arg;return this.rval},dispatchException:function(t){if(this.done)throw t;var e=this;function r(o,r){return c.type="throw",c.arg=t,e.next=o,r&&(e.method="next",e.arg=n),!!r}for(var i=this.tryEntries.length-1;i>=0;--i){var a=this.tryEntries[i],c=a.completion;if("root"===a.tryLoc)return r("end");if(a.tryLoc<=this.prev){var u=o.call(a,"catchLoc"),s=o.call(a,"finallyLoc");if(u&&s){if(this.prev<a.catchLoc)return r(a.catchLoc,!0);if(this.prev<a.finallyLoc)return r(a.finallyLoc)}else if(u){if(this.prev<a.catchLoc)return r(a.catchLoc,!0)}else{if(!s)throw new Error("try statement without catch or finally");if(this.prev<a.finallyLoc)return r(a.finallyLoc)}}}},abrupt:function(t,n){for(var e=this.tryEntries.length-1;e>=0;--e){var r=this.tryEntries[e];if(r.tryLoc<=this.prev&&o.call(r,"finallyLoc")&&this.prev<r.finallyLoc){var i=r;break}}i&&("break"===t||"continue"===t)&&i.tryLoc<=n&&n<=i.finallyLoc&&(i=null);var a=i?i.completion:{};return a.type=t,a.arg=n,i?(this.method="next",this.next=i.finallyLoc,p):this.complete(a)},complete:function(t,n){if("throw"===t.type)throw t.arg;return"break"===t.type||"continue"===t.type?this.next=t.arg:"return"===t.type?(this.rval=this.arg=t.arg,this.method="return",this.next="end"):"normal"===t.type&&n&&(this.next=n),p},finish:function(t){for(var n=this.tryEntries.length-1;n>=0;--n){var e=this.tryEntries[n];if(e.finallyLoc===t)return this.complete(e.completion,e.afterLoc),O(e),p}},catch:function(t){for(var n=this.tryEntries.length-1;n>=0;--n){var e=this.tryEntries[n];if(e.tryLoc===t){var o=e.completion;if("throw"===o.type){var r=o.arg;O(e)}return r}}throw new Error("illegal catch attempt")},delegateYield:function(t,e,o){return this.delegate={iterator:D(t),resultName:e,nextLoc:o},"next"===this.method&&(this.arg=n),p}},t}(t.exports);try{regeneratorRuntime=n}catch(t){"object"==typeof globalThis?globalThis.regeneratorRuntime=n:Function("r","regeneratorRuntime = r")(n)}},8702:function(t,n,e){"use strict";e.d(n,{Z:function(){return j}});var o=e(4296),r=e(6464),i=e(6881),a=e(2942),c=e(7003),u=e(3379),s=e.n(u),l=e(7795),f=e.n(l),d=e(569),v=e.n(d),h=e(3565),p=e.n(h),g=e(9216),m=e.n(g),_=e(4589),b=e.n(_),y=e(5313),w={};y.Z&&y.Z.locals&&(w.locals=y.Z.locals);var E,L=0,T={};T.styleTagTransform=b(),T.setAttributes=p(),T.insert=v().bind(null,"head"),T.domAPI=f(),T.insertStyleElement=m(),w.use=function(t){return T.options=t||{},L++||(E=s()(y.Z,T)),w},w.unuse=function(){L>0&&!--L&&(E(),E=null)};var x=w;function C(t){var n,e;return{c:function(){n=(0,a.bi5)("svg"),e=(0,a.bi5)("path"),(0,a.Ljt)(e,"d","M599.99999 832.000004h47.999999a24 24 0 0 0 23.999999-24V376.000013a24 24 0 0 0-23.999999-24h-47.999999a24 24 0 0 0-24 24v431.999991a24 24 0 0 0 24 24zM927.999983 160.000017h-164.819997l-67.999998-113.399998A95.999998 95.999998 0 0 0 612.819989 0.00002H411.179993a95.999998 95.999998 0 0 0-82.319998 46.599999L260.819996 160.000017H95.999999A31.999999 31.999999 0 0 0 64 192.000016v32a31.999999 31.999999 0 0 0 31.999999 31.999999h32v671.999987a95.999998 95.999998 0 0 0 95.999998 95.999998h575.999989a95.999998 95.999998 0 0 0 95.999998-95.999998V256.000015h31.999999a31.999999 31.999999 0 0 0 32-31.999999V192.000016a31.999999 31.999999 0 0 0-32-31.999999zM407.679993 101.820018A12 12 0 0 1 417.999993 96.000018h187.999996a12 12 0 0 1 10.3 5.82L651.219989 160.000017H372.779994zM799.999986 928.000002H223.999997V256.000015h575.999989z m-423.999992-95.999998h47.999999a24 24 0 0 0 24-24V376.000013a24 24 0 0 0-24-24h-47.999999a24 24 0 0 0-24 24v431.999991a24 24 0 0 0 24 24z"),(0,a.Ljt)(n,"class","vc-icon-delete"),(0,a.Ljt)(n,"viewBox","0 0 1024 1024"),(0,a.Ljt)(n,"width","200"),(0,a.Ljt)(n,"height","200")},m:function(t,o){(0,a.$Tr)(t,n,o),(0,a.R3I)(n,e)},d:function(t){t&&(0,a.ogt)(n)}}}function O(t){var n,e,o;return{c:function(){n=(0,a.bi5)("svg"),e=(0,a.bi5)("path"),o=(0,a.bi5)("path"),(0,a.Ljt)(e,"d","M874.154197 150.116875A511.970373 511.970373 0 1 0 1023.993986 511.991687a511.927744 511.927744 0 0 0-149.839789-361.874812z m-75.324866 648.382129A405.398688 405.398688 0 1 1 917.422301 511.991687a405.313431 405.313431 0 0 1-118.59297 286.507317z"),(0,a.Ljt)(o,"d","M725.039096 299.274605a54.351559 54.351559 0 0 0-76.731613 0l-135.431297 135.431297L377.274375 299.274605a54.436817 54.436817 0 0 0-76.944756 76.987385l135.388668 135.431297-135.388668 135.473925a54.436817 54.436817 0 0 0 76.944756 76.987385l135.388668-135.431297 135.431297 135.473926a54.436817 54.436817 0 0 0 76.731613-76.987385l-135.388668-135.473926 135.388668-135.431296a54.479445 54.479445 0 0 0 0.213143-77.030014z"),(0,a.Ljt)(n,"viewBox","0 0 1024 1024"),(0,a.Ljt)(n,"width","200"),(0,a.Ljt)(n,"height","200")},m:function(t,r){(0,a.$Tr)(t,n,r),(0,a.R3I)(n,e),(0,a.R3I)(n,o)},d:function(t){t&&(0,a.ogt)(n)}}}function I(t){var n,e;return{c:function(){n=(0,a.bi5)("svg"),e=(0,a.bi5)("path"),(0,a.Ljt)(e,"fill-rule","evenodd"),(0,a.Ljt)(e,"d","M5.75 1a.75.75 0 00-.75.75v3c0 .414.336.75.75.75h4.5a.75.75 0 00.75-.75v-3a.75.75 0 00-.75-.75h-4.5zm.75 3V2.5h3V4h-3zm-2.874-.467a.75.75 0 00-.752-1.298A1.75 1.75 0 002 3.75v9.5c0 .966.784 1.75 1.75 1.75h8.5A1.75 1.75 0 0014 13.25v-9.5a1.75 1.75 0 00-.874-1.515.75.75 0 10-.752 1.298.25.25 0 01.126.217v9.5a.25.25 0 01-.25.25h-8.5a.25.25 0 01-.25-.25v-9.5a.25.25 0 01.126-.217z"),(0,a.Ljt)(n,"class","vc-icon-copy"),(0,a.Ljt)(n,"viewBox","0 0 16 16")},m:function(t,o){(0,a.$Tr)(t,n,o),(0,a.R3I)(n,e)},d:function(t){t&&(0,a.ogt)(n)}}}function D(t){var n,e;return{c:function(){n=(0,a.bi5)("svg"),e=(0,a.bi5)("path"),(0,a.Ljt)(e,"fill-rule","evenodd"),(0,a.Ljt)(e,"d","M13.78 4.22a.75.75 0 010 1.06l-7.25 7.25a.75.75 0 01-1.06 0L2.22 9.28a.75.75 0 011.06-1.06L6 10.94l6.72-6.72a.75.75 0 011.06 0z"),(0,a.Ljt)(n,"class","vc-icon-suc"),(0,a.Ljt)(n,"viewBox","0 0 16 16")},m:function(t,o){(0,a.$Tr)(t,n,o),(0,a.R3I)(n,e)},d:function(t){t&&(0,a.ogt)(n)}}}function R(t){var n,e,o;return{c:function(){n=(0,a.bi5)("svg"),e=(0,a.bi5)("path"),o=(0,a.bi5)("path"),(0,a.Ljt)(e,"d","M776.533333 1024 162.133333 1024C72.533333 1024 0 951.466667 0 861.866667L0 247.466667C0 157.866667 72.533333 85.333333 162.133333 85.333333L469.333333 85.333333c25.6 0 42.666667 17.066667 42.666667 42.666667s-17.066667 42.666667-42.666667 42.666667L162.133333 170.666667C119.466667 170.666667 85.333333 204.8 85.333333 247.466667l0 610.133333c0 42.666667 34.133333 76.8 76.8 76.8l610.133333 0c42.666667 0 76.8-34.133333 76.8-76.8L849.066667 554.666667c0-25.6 17.066667-42.666667 42.666667-42.666667s42.666667 17.066667 42.666667 42.666667l0 307.2C938.666667 951.466667 866.133333 1024 776.533333 1024z"),(0,a.Ljt)(o,"d","M256 810.666667c-12.8 0-21.333333-4.266667-29.866667-12.8C217.6 789.333333 213.333333 772.266667 213.333333 759.466667l42.666667-213.333333c0-8.533333 4.266667-17.066667 12.8-21.333333l512-512c17.066667-17.066667 42.666667-17.066667 59.733333 0l170.666667 170.666667c17.066667 17.066667 17.066667 42.666667 0 59.733333l-512 512c-4.266667 4.266667-12.8 8.533333-21.333333 12.8l-213.333333 42.666667C260.266667 810.666667 260.266667 810.666667 256 810.666667zM337.066667 576l-25.6 136.533333 136.533333-25.6L921.6 213.333333 810.666667 102.4 337.066667 576z"),(0,a.Ljt)(n,"class","vc-icon-edit"),(0,a.Ljt)(n,"viewBox","0 0 1024 1024"),(0,a.Ljt)(n,"width","200"),(0,a.Ljt)(n,"height","200")},m:function(t,r){(0,a.$Tr)(t,n,r),(0,a.R3I)(n,e),(0,a.R3I)(n,o)},d:function(t){t&&(0,a.ogt)(n)}}}function $(t){var n,e;return{c:function(){n=(0,a.bi5)("svg"),e=(0,a.bi5)("path"),(0,a.Ljt)(e,"d","M581.338005 987.646578c-2.867097 4.095853-4.573702 8.669555-8.191705 12.287558a83.214071 83.214071 0 0 1-60.959939 24.029001 83.214071 83.214071 0 0 1-61.028203-24.029001c-3.618003-3.618003-5.324608-8.191705-8.123441-12.15103L24.370323 569.050448a83.418864 83.418864 0 0 1 117.892289-117.89229l369.923749 369.92375L1308.829682 24.438587A83.418864 83.418864 0 0 1 1426.721971 142.194348L581.338005 987.646578z"),(0,a.Ljt)(n,"class","vc-icon-don"),(0,a.Ljt)(n,"viewBox","0 0 1501 1024"),(0,a.Ljt)(n,"width","200"),(0,a.Ljt)(n,"height","200")},m:function(t,o){(0,a.$Tr)(t,n,o),(0,a.R3I)(n,e)},d:function(t){t&&(0,a.ogt)(n)}}}function k(t){var n,e;return{c:function(){n=(0,a.bi5)("svg"),e=(0,a.bi5)("path"),(0,a.Ljt)(e,"d","M894.976 574.464q0 78.848-29.696 148.48t-81.408 123.392-121.856 88.064-151.04 41.472q-5.12 1.024-9.216 1.536t-9.216 0.512l-177.152 0q-17.408 0-34.304-6.144t-30.208-16.896-22.016-25.088-8.704-29.696 8.192-29.696 21.504-24.576 29.696-16.384 33.792-6.144l158.72 1.024q54.272 0 102.4-19.968t83.968-53.76 56.32-79.36 20.48-97.792q0-49.152-18.432-92.16t-50.688-76.8-75.264-54.784-93.184-26.112q-2.048 0-2.56 0.512t-2.56 0.512l-162.816 0 0 80.896q0 17.408-13.824 25.6t-44.544-10.24q-8.192-5.12-26.112-17.92t-41.984-30.208-50.688-36.864l-51.2-38.912q-15.36-12.288-26.624-22.016t-11.264-24.064q0-12.288 12.8-25.6t29.184-26.624q18.432-15.36 44.032-35.84t50.688-39.936 45.056-35.328 28.16-22.016q24.576-17.408 39.936-7.168t16.384 30.72l0 81.92 162.816 0q5.12 0 10.752 1.024t10.752 2.048q79.872 8.192 149.504 41.984t121.344 87.552 80.896 123.392 29.184 147.456z"),(0,a.Ljt)(n,"class","vc-icon-cancel"),(0,a.Ljt)(n,"viewBox","0 0 1024 1024"),(0,a.Ljt)(n,"width","200"),(0,a.Ljt)(n,"height","200")},m:function(t,o){(0,a.$Tr)(t,n,o),(0,a.R3I)(n,e)},d:function(t){t&&(0,a.ogt)(n)}}}function P(t){var n,e,o,r,i,c,u,s,l,f="delete"===t[0]&&C(),d="clear"===t[0]&&O(),v="copy"===t[0]&&I(),h="success"===t[0]&&D(),p="edit"===t[0]&&R(),g="done"===t[0]&&$(),m="cancel"===t[0]&&k();return{c:function(){n=(0,a.bGB)("i"),f&&f.c(),e=(0,a.DhX)(),d&&d.c(),o=(0,a.DhX)(),v&&v.c(),r=(0,a.DhX)(),h&&h.c(),i=(0,a.DhX)(),p&&p.c(),c=(0,a.DhX)(),g&&g.c(),u=(0,a.DhX)(),m&&m.c(),(0,a.Ljt)(n,"class","vc-icon")},m:function(_,b){(0,a.$Tr)(_,n,b),f&&f.m(n,null),(0,a.R3I)(n,e),d&&d.m(n,null),(0,a.R3I)(n,o),v&&v.m(n,null),(0,a.R3I)(n,r),h&&h.m(n,null),(0,a.R3I)(n,i),p&&p.m(n,null),(0,a.R3I)(n,c),g&&g.m(n,null),(0,a.R3I)(n,u),m&&m.m(n,null),s||(l=(0,a.oLt)(n,"click",t[1]),s=!0)},p:function(t,a){a[0];"delete"===t[0]?f||((f=C()).c(),f.m(n,e)):f&&(f.d(1),f=null),"clear"===t[0]?d||((d=O()).c(),d.m(n,o)):d&&(d.d(1),d=null),"copy"===t[0]?v||((v=I()).c(),v.m(n,r)):v&&(v.d(1),v=null),"success"===t[0]?h||((h=D()).c(),h.m(n,i)):h&&(h.d(1),h=null),"edit"===t[0]?p||((p=R()).c(),p.m(n,c)):p&&(p.d(1),p=null),"done"===t[0]?g||((g=$()).c(),g.m(n,u)):g&&(g.d(1),g=null),"cancel"===t[0]?m||((m=k()).c(),m.m(n,null)):m&&(m.d(1),m=null)},i:a.ZTd,o:a.ZTd,d:function(t){t&&(0,a.ogt)(n),f&&f.d(),d&&d.d(),v&&v.d(),h&&h.d(),p&&p.d(),g&&g.d(),m&&m.d(),s=!1,l()}}}function M(t,n,e){var o=n.name;return(0,c.H3)((function(){x.use()})),(0,c.ev)((function(){x.unuse()})),t.$$set=function(t){"name"in t&&e(0,o=t.name)},[o,function(n){a.cKT.call(this,t,n)}]}var S=function(t){function n(n){var e;return e=t.call(this)||this,(0,a.S1n)((0,r.Z)(e),n,M,P,a.N8,{name:0}),e}return(0,i.Z)(n,t),(0,o.Z)(n,[{key:"name",get:function(){return this.$$.ctx[0]},set:function(t){this.$$set({name:t}),(0,a.yl1)()}}]),n}(a.f_C),j=S},3903:function(__unused_webpack_module,__webpack_exports__,__webpack_require__){"use strict";var _babel_runtime_helpers_assertThisInitialized__WEBPACK_IMPORTED_MODULE_7__=__webpack_require__(6464),_babel_runtime_helpers_inheritsLoose__WEBPACK_IMPORTED_MODULE_6__=__webpack_require__(6881),svelte_internal__WEBPACK_IMPORTED_MODULE_0__=__webpack_require__(2942),svelte__WEBPACK_IMPORTED_MODULE_1__=__webpack_require__(7003),_component_icon_icon_svelte__WEBPACK_IMPORTED_MODULE_2__=__webpack_require__(8702),_logTool__WEBPACK_IMPORTED_MODULE_5__=__webpack_require__(8665),_log_model__WEBPACK_IMPORTED_MODULE_3__=__webpack_require__(5629),_logCommand_less__WEBPACK_IMPORTED_MODULE_4__=__webpack_require__(3411);function get_each_context(t,n,e){var o=t.slice();return o[28]=n[e],o}function create_if_block_2(t){var n,e,o;return{c:function(){(n=(0,svelte_internal__WEBPACK_IMPORTED_MODULE_0__.bGB)("li")).textContent="Close",(0,svelte_internal__WEBPACK_IMPORTED_MODULE_0__.Ljt)(n,"class","vc-cmd-prompted-hide")},m:function(r,i){(0,svelte_internal__WEBPACK_IMPORTED_MODULE_0__.$Tr)(r,n,i),e||(o=(0,svelte_internal__WEBPACK_IMPORTED_MODULE_0__.oLt)(n,"click",t[5]),e=!0)},p:svelte_internal__WEBPACK_IMPORTED_MODULE_0__.ZTd,d:function(t){t&&(0,svelte_internal__WEBPACK_IMPORTED_MODULE_0__.ogt)(n),e=!1,o()}}}function create_else_block(t){var n;return{c:function(){(n=(0,svelte_internal__WEBPACK_IMPORTED_MODULE_0__.bGB)("li")).textContent="No Prompted"},m:function(t,e){(0,svelte_internal__WEBPACK_IMPORTED_MODULE_0__.$Tr)(t,n,e)},p:svelte_internal__WEBPACK_IMPORTED_MODULE_0__.ZTd,d:function(t){t&&(0,svelte_internal__WEBPACK_IMPORTED_MODULE_0__.ogt)(n)}}}function create_each_block(t){var n,e,o,r,i=t[28].text+"";function a(){return t[14](t[28])}return{c:function(){n=(0,svelte_internal__WEBPACK_IMPORTED_MODULE_0__.bGB)("li"),e=(0,svelte_internal__WEBPACK_IMPORTED_MODULE_0__.fLW)(i)},m:function(t,i){(0,svelte_internal__WEBPACK_IMPORTED_MODULE_0__.$Tr)(t,n,i),(0,svelte_internal__WEBPACK_IMPORTED_MODULE_0__.R3I)(n,e),o||(r=(0,svelte_internal__WEBPACK_IMPORTED_MODULE_0__.oLt)(n,"click",a),o=!0)},p:function(n,o){t=n,8&o&&i!==(i=t[28].text+"")&&(0,svelte_internal__WEBPACK_IMPORTED_MODULE_0__.rTO)(e,i)},d:function(t){t&&(0,svelte_internal__WEBPACK_IMPORTED_MODULE_0__.ogt)(n),o=!1,r()}}}function create_if_block_1(t){var n,e,o,r,i;return e=new _component_icon_icon_svelte__WEBPACK_IMPORTED_MODULE_2__.Z({props:{name:"clear"}}),{c:function(){n=(0,svelte_internal__WEBPACK_IMPORTED_MODULE_0__.bGB)("div"),(0,svelte_internal__WEBPACK_IMPORTED_MODULE_0__.YCL)(e.$$.fragment),(0,svelte_internal__WEBPACK_IMPORTED_MODULE_0__.Ljt)(n,"class","vc-cmd-clear-btn")},m:function(a,c){(0,svelte_internal__WEBPACK_IMPORTED_MODULE_0__.$Tr)(a,n,c),(0,svelte_internal__WEBPACK_IMPORTED_MODULE_0__.yef)(e,n,null),o=!0,r||(i=(0,svelte_internal__WEBPACK_IMPORTED_MODULE_0__.oLt)(n,"click",(0,svelte_internal__WEBPACK_IMPORTED_MODULE_0__.AT7)(t[17])),r=!0)},p:svelte_internal__WEBPACK_IMPORTED_MODULE_0__.ZTd,i:function(t){o||((0,svelte_internal__WEBPACK_IMPORTED_MODULE_0__.Ui)(e.$$.fragment,t),o=!0)},o:function(t){(0,svelte_internal__WEBPACK_IMPORTED_MODULE_0__.etI)(e.$$.fragment,t),o=!1},d:function(t){t&&(0,svelte_internal__WEBPACK_IMPORTED_MODULE_0__.ogt)(n),(0,svelte_internal__WEBPACK_IMPORTED_MODULE_0__.vpE)(e),r=!1,i()}}}function create_if_block(t){var n,e,o,r,i;return e=new _component_icon_icon_svelte__WEBPACK_IMPORTED_MODULE_2__.Z({props:{name:"clear"}}),{c:function(){n=(0,svelte_internal__WEBPACK_IMPORTED_MODULE_0__.bGB)("div"),(0,svelte_internal__WEBPACK_IMPORTED_MODULE_0__.YCL)(e.$$.fragment),(0,svelte_internal__WEBPACK_IMPORTED_MODULE_0__.Ljt)(n,"class","vc-cmd-clear-btn")},m:function(a,c){(0,svelte_internal__WEBPACK_IMPORTED_MODULE_0__.$Tr)(a,n,c),(0,svelte_internal__WEBPACK_IMPORTED_MODULE_0__.yef)(e,n,null),o=!0,r||(i=(0,svelte_internal__WEBPACK_IMPORTED_MODULE_0__.oLt)(n,"click",(0,svelte_internal__WEBPACK_IMPORTED_MODULE_0__.AT7)(t[19])),r=!0)},p:svelte_internal__WEBPACK_IMPORTED_MODULE_0__.ZTd,i:function(t){o||((0,svelte_internal__WEBPACK_IMPORTED_MODULE_0__.Ui)(e.$$.fragment,t),o=!0)},o:function(t){(0,svelte_internal__WEBPACK_IMPORTED_MODULE_0__.etI)(e.$$.fragment,t),o=!1},d:function(t){t&&(0,svelte_internal__WEBPACK_IMPORTED_MODULE_0__.ogt)(n),(0,svelte_internal__WEBPACK_IMPORTED_MODULE_0__.vpE)(e),r=!1,i()}}}function create_fragment(t){for(var n,e,o,r,i,a,c,u,s,l,f,d,v,h,p,g,m,_,b,y,w,E=t[3].length>0&&create_if_block_2(t),L=t[3],T=[],x=0;x<L.length;x+=1)T[x]=create_each_block(get_each_context(t,L,x));var C=null;L.length||(C=create_else_block(t));var O=t[1].length>0&&create_if_block_1(t),I=t[4].length>0&&create_if_block(t);return{c:function(){n=(0,svelte_internal__WEBPACK_IMPORTED_MODULE_0__.bGB)("form"),e=(0,svelte_internal__WEBPACK_IMPORTED_MODULE_0__.bGB)("ul"),E&&E.c(),o=(0,svelte_internal__WEBPACK_IMPORTED_MODULE_0__.DhX)();for(var b=0;b<T.length;b+=1)T[b].c();C&&C.c(),r=(0,svelte_internal__WEBPACK_IMPORTED_MODULE_0__.DhX)(),i=(0,svelte_internal__WEBPACK_IMPORTED_MODULE_0__.bGB)("div"),a=(0,svelte_internal__WEBPACK_IMPORTED_MODULE_0__.bGB)("textarea"),c=(0,svelte_internal__WEBPACK_IMPORTED_MODULE_0__.DhX)(),O&&O.c(),u=(0,svelte_internal__WEBPACK_IMPORTED_MODULE_0__.DhX)(),(s=(0,svelte_internal__WEBPACK_IMPORTED_MODULE_0__.bGB)("button")).textContent="OK",l=(0,svelte_internal__WEBPACK_IMPORTED_MODULE_0__.DhX)(),f=(0,svelte_internal__WEBPACK_IMPORTED_MODULE_0__.bGB)("form"),d=(0,svelte_internal__WEBPACK_IMPORTED_MODULE_0__.bGB)("ul"),v=(0,svelte_internal__WEBPACK_IMPORTED_MODULE_0__.DhX)(),h=(0,svelte_internal__WEBPACK_IMPORTED_MODULE_0__.bGB)("div"),p=(0,svelte_internal__WEBPACK_IMPORTED_MODULE_0__.bGB)("textarea"),g=(0,svelte_internal__WEBPACK_IMPORTED_MODULE_0__.DhX)(),I&&I.c(),m=(0,svelte_internal__WEBPACK_IMPORTED_MODULE_0__.DhX)(),(_=(0,svelte_internal__WEBPACK_IMPORTED_MODULE_0__.bGB)("button")).textContent="Filter",(0,svelte_internal__WEBPACK_IMPORTED_MODULE_0__.Ljt)(e,"class","vc-cmd-prompted"),(0,svelte_internal__WEBPACK_IMPORTED_MODULE_0__.Ljt)(e,"style",t[2]),(0,svelte_internal__WEBPACK_IMPORTED_MODULE_0__.Ljt)(a,"class","vc-cmd-input"),(0,svelte_internal__WEBPACK_IMPORTED_MODULE_0__.Ljt)(a,"placeholder","command..."),(0,svelte_internal__WEBPACK_IMPORTED_MODULE_0__.Ljt)(i,"class","vc-cmd-input-wrap"),(0,svelte_internal__WEBPACK_IMPORTED_MODULE_0__.Ljt)(s,"class","vc-cmd-btn"),(0,svelte_internal__WEBPACK_IMPORTED_MODULE_0__.Ljt)(s,"type","submit"),(0,svelte_internal__WEBPACK_IMPORTED_MODULE_0__.Ljt)(n,"class","vc-cmd"),(0,svelte_internal__WEBPACK_IMPORTED_MODULE_0__.Ljt)(d,"class","vc-cmd-prompted"),(0,svelte_internal__WEBPACK_IMPORTED_MODULE_0__.Ljt)(p,"class","vc-cmd-input"),(0,svelte_internal__WEBPACK_IMPORTED_MODULE_0__.Ljt)(p,"placeholder","filter..."),(0,svelte_internal__WEBPACK_IMPORTED_MODULE_0__.Ljt)(h,"class","vc-cmd-input-wrap"),(0,svelte_internal__WEBPACK_IMPORTED_MODULE_0__.Ljt)(_,"class","vc-cmd-btn"),(0,svelte_internal__WEBPACK_IMPORTED_MODULE_0__.Ljt)(_,"type","submit"),(0,svelte_internal__WEBPACK_IMPORTED_MODULE_0__.Ljt)(f,"class","vc-cmd vc-filter")},m:function(L,x){(0,svelte_internal__WEBPACK_IMPORTED_MODULE_0__.$Tr)(L,n,x),(0,svelte_internal__WEBPACK_IMPORTED_MODULE_0__.R3I)(n,e),E&&E.m(e,null),(0,svelte_internal__WEBPACK_IMPORTED_MODULE_0__.R3I)(e,o);for(var D=0;D<T.length;D+=1)T[D].m(e,null);C&&C.m(e,null),(0,svelte_internal__WEBPACK_IMPORTED_MODULE_0__.R3I)(n,r),(0,svelte_internal__WEBPACK_IMPORTED_MODULE_0__.R3I)(n,i),(0,svelte_internal__WEBPACK_IMPORTED_MODULE_0__.R3I)(i,a),(0,svelte_internal__WEBPACK_IMPORTED_MODULE_0__.BmG)(a,t[1]),t[16](a),(0,svelte_internal__WEBPACK_IMPORTED_MODULE_0__.R3I)(i,c),O&&O.m(i,null),(0,svelte_internal__WEBPACK_IMPORTED_MODULE_0__.R3I)(n,u),(0,svelte_internal__WEBPACK_IMPORTED_MODULE_0__.R3I)(n,s),(0,svelte_internal__WEBPACK_IMPORTED_MODULE_0__.$Tr)(L,l,x),(0,svelte_internal__WEBPACK_IMPORTED_MODULE_0__.$Tr)(L,f,x),(0,svelte_internal__WEBPACK_IMPORTED_MODULE_0__.R3I)(f,d),(0,svelte_internal__WEBPACK_IMPORTED_MODULE_0__.R3I)(f,v),(0,svelte_internal__WEBPACK_IMPORTED_MODULE_0__.R3I)(f,h),(0,svelte_internal__WEBPACK_IMPORTED_MODULE_0__.R3I)(h,p),(0,svelte_internal__WEBPACK_IMPORTED_MODULE_0__.BmG)(p,t[4]),(0,svelte_internal__WEBPACK_IMPORTED_MODULE_0__.R3I)(h,g),I&&I.m(h,null),(0,svelte_internal__WEBPACK_IMPORTED_MODULE_0__.R3I)(f,m),(0,svelte_internal__WEBPACK_IMPORTED_MODULE_0__.R3I)(f,_),b=!0,y||(w=[(0,svelte_internal__WEBPACK_IMPORTED_MODULE_0__.oLt)(a,"input",t[15]),(0,svelte_internal__WEBPACK_IMPORTED_MODULE_0__.oLt)(a,"keydown",t[10]),(0,svelte_internal__WEBPACK_IMPORTED_MODULE_0__.oLt)(a,"keyup",t[11]),(0,svelte_internal__WEBPACK_IMPORTED_MODULE_0__.oLt)(a,"focus",t[8]),(0,svelte_internal__WEBPACK_IMPORTED_MODULE_0__.oLt)(a,"blur",t[9]),(0,svelte_internal__WEBPACK_IMPORTED_MODULE_0__.oLt)(n,"submit",(0,svelte_internal__WEBPACK_IMPORTED_MODULE_0__.AT7)(t[12])),(0,svelte_internal__WEBPACK_IMPORTED_MODULE_0__.oLt)(p,"input",t[18]),(0,svelte_internal__WEBPACK_IMPORTED_MODULE_0__.oLt)(f,"submit",(0,svelte_internal__WEBPACK_IMPORTED_MODULE_0__.AT7)(t[13]))],y=!0)},p:function(t,n){var r=n[0];if(t[3].length>0?E?E.p(t,r):((E=create_if_block_2(t)).c(),E.m(e,o)):E&&(E.d(1),E=null),136&r){var c;for(L=t[3],c=0;c<L.length;c+=1){var u=get_each_context(t,L,c);T[c]?T[c].p(u,r):(T[c]=create_each_block(u),T[c].c(),T[c].m(e,null))}for(;c<T.length;c+=1)T[c].d(1);T.length=L.length,!L.length&&C?C.p(t,r):L.length?C&&(C.d(1),C=null):((C=create_else_block(t)).c(),C.m(e,null))}(!b||4&r)&&(0,svelte_internal__WEBPACK_IMPORTED_MODULE_0__.Ljt)(e,"style",t[2]),2&r&&(0,svelte_internal__WEBPACK_IMPORTED_MODULE_0__.BmG)(a,t[1]),t[1].length>0?O?(O.p(t,r),2&r&&(0,svelte_internal__WEBPACK_IMPORTED_MODULE_0__.Ui)(O,1)):((O=create_if_block_1(t)).c(),(0,svelte_internal__WEBPACK_IMPORTED_MODULE_0__.Ui)(O,1),O.m(i,null)):O&&((0,svelte_internal__WEBPACK_IMPORTED_MODULE_0__.dvw)(),(0,svelte_internal__WEBPACK_IMPORTED_MODULE_0__.etI)(O,1,1,(function(){O=null})),(0,svelte_internal__WEBPACK_IMPORTED_MODULE_0__.gbL)()),16&r&&(0,svelte_internal__WEBPACK_IMPORTED_MODULE_0__.BmG)(p,t[4]),t[4].length>0?I?(I.p(t,r),16&r&&(0,svelte_internal__WEBPACK_IMPORTED_MODULE_0__.Ui)(I,1)):((I=create_if_block(t)).c(),(0,svelte_internal__WEBPACK_IMPORTED_MODULE_0__.Ui)(I,1),I.m(h,null)):I&&((0,svelte_internal__WEBPACK_IMPORTED_MODULE_0__.dvw)(),(0,svelte_internal__WEBPACK_IMPORTED_MODULE_0__.etI)(I,1,1,(function(){I=null})),(0,svelte_internal__WEBPACK_IMPORTED_MODULE_0__.gbL)())},i:function(t){b||((0,svelte_internal__WEBPACK_IMPORTED_MODULE_0__.Ui)(O),(0,svelte_internal__WEBPACK_IMPORTED_MODULE_0__.Ui)(I),b=!0)},o:function(t){(0,svelte_internal__WEBPACK_IMPORTED_MODULE_0__.etI)(O),(0,svelte_internal__WEBPACK_IMPORTED_MODULE_0__.etI)(I),b=!1},d:function(e){e&&(0,svelte_internal__WEBPACK_IMPORTED_MODULE_0__.ogt)(n),E&&E.d(),(0,svelte_internal__WEBPACK_IMPORTED_MODULE_0__.RMB)(T,e),C&&C.d(),t[16](null),O&&O.d(),e&&(0,svelte_internal__WEBPACK_IMPORTED_MODULE_0__.ogt)(l),e&&(0,svelte_internal__WEBPACK_IMPORTED_MODULE_0__.ogt)(f),I&&I.d(),y=!1,(0,svelte_internal__WEBPACK_IMPORTED_MODULE_0__.j7q)(w)}}}function instance($$self,$$props,$$invalidate){var module=_log_model__WEBPACK_IMPORTED_MODULE_3__.W.getSingleton(_log_model__WEBPACK_IMPORTED_MODULE_3__.W,"VConsoleLogModel"),cachedObjKeys={},dispatch=(0,svelte__WEBPACK_IMPORTED_MODULE_1__.x)(),cmdElement,cmdValue="",promptedStyle="",promptedList=[],filterValue="";(0,svelte__WEBPACK_IMPORTED_MODULE_1__.H3)((function(){_logCommand_less__WEBPACK_IMPORTED_MODULE_4__.Z.use()})),(0,svelte__WEBPACK_IMPORTED_MODULE_1__.ev)((function(){_logCommand_less__WEBPACK_IMPORTED_MODULE_4__.Z.unuse()}));var evalCommand=function(t){module.evalCommand(t)},moveCursorToPos=function(t,n){t.setSelectionRange&&setTimeout((function(){t.setSelectionRange(n,n)}),1)},clearPromptedList=function(){$$invalidate(2,promptedStyle="display: none;"),$$invalidate(3,promptedList=[])},updatePromptedList=function updatePromptedList(identifier){if(""!==cmdValue){identifier||(identifier=(0,_logTool__WEBPACK_IMPORTED_MODULE_5__.oj)(cmdValue));var objName="window",keyName=cmdValue;if("."!==identifier.front.text&&"["!==identifier.front.text||(objName=identifier.front.before,keyName=""!==identifier.back.text?identifier.back.before:identifier.front.after),keyName=keyName.replace(/(^['"]+)|(['"']+$)/g,""),!cachedObjKeys[objName])try{cachedObjKeys[objName]=Object.getOwnPropertyNames(eval("("+objName+")")).sort()}catch(t){}try{if(cachedObjKeys[objName])for(var i=0;i<cachedObjKeys[objName].length&&!(promptedList.length>=100);i++){var key=String(cachedObjKeys[objName][i]),keyPattern=new RegExp("^"+keyName,"i");if(keyPattern.test(key)){var completeCmd=objName;"."===identifier.front.text||""===identifier.front.text?completeCmd+="."+key:"["===identifier.front.text&&(completeCmd+="['"+key+"']"),promptedList.push({text:key,value:completeCmd})}}}catch(t){}if(promptedList.length>0){var m=Math.min(200,31*(promptedList.length+1));$$invalidate(2,promptedStyle="display: block; height: "+m+"px; margin-top: "+(-m-2)+"px;"),$$invalidate(3,promptedList)}else clearPromptedList()}else clearPromptedList()},autoCompleteBrackets=function(t,n){if(!(8===n||46===n)&&""===t.front.after)switch(t.front.text){case"[":return $$invalidate(1,cmdValue+="]"),void moveCursorToPos(cmdElement,cmdValue.length-1);case"(":return $$invalidate(1,cmdValue+=")"),void moveCursorToPos(cmdElement,cmdValue.length-1);case"{":return $$invalidate(1,cmdValue+="}"),void moveCursorToPos(cmdElement,cmdValue.length-1)}},dispatchFilterEvent=function(){dispatch("filterText",{filterText:filterValue})},onTapClearText=function(t){"cmd"===t?($$invalidate(1,cmdValue=""),clearPromptedList()):"filter"===t&&($$invalidate(4,filterValue=""),dispatchFilterEvent())},onTapPromptedItem=function onTapPromptedItem(item){var type="";try{type=eval("typeof "+item.value)}catch(t){}$$invalidate(1,cmdValue=item.value+("function"===type?"()":"")),clearPromptedList()},onCmdFocus=function(){updatePromptedList()},onCmdBlur=function(){},onCmdKeyDown=function(t){13===t.keyCode&&(t.preventDefault(),onCmdSubmit())},onCmdKeyUp=function(t){$$invalidate(3,promptedList=[]);var n=(0,_logTool__WEBPACK_IMPORTED_MODULE_5__.oj)(t.target.value);autoCompleteBrackets(n,t.keyCode),updatePromptedList(n)},onCmdSubmit=function(){""!==cmdValue&&evalCommand(cmdValue),clearPromptedList()},onFilterSubmit=function(t){dispatchFilterEvent()},click_handler=function(t){return onTapPromptedItem(t)};function textarea0_input_handler(){cmdValue=this.value,$$invalidate(1,cmdValue)}function textarea0_binding(t){svelte_internal__WEBPACK_IMPORTED_MODULE_0__.VnY[t?"unshift":"push"]((function(){$$invalidate(0,cmdElement=t)}))}var click_handler_1=function(){return onTapClearText("cmd")};function textarea1_input_handler(){filterValue=this.value,$$invalidate(4,filterValue)}var click_handler_2=function(){return onTapClearText("filter")};return[cmdElement,cmdValue,promptedStyle,promptedList,filterValue,clearPromptedList,onTapClearText,onTapPromptedItem,onCmdFocus,onCmdBlur,onCmdKeyDown,onCmdKeyUp,onCmdSubmit,onFilterSubmit,click_handler,textarea0_input_handler,textarea0_binding,click_handler_1,textarea1_input_handler,click_handler_2]}var LogCommand=function(t){function n(n){var e;return e=t.call(this)||this,(0,svelte_internal__WEBPACK_IMPORTED_MODULE_0__.S1n)((0,_babel_runtime_helpers_assertThisInitialized__WEBPACK_IMPORTED_MODULE_7__.Z)(e),n,instance,create_fragment,svelte_internal__WEBPACK_IMPORTED_MODULE_0__.N8,{}),e}return(0,_babel_runtime_helpers_inheritsLoose__WEBPACK_IMPORTED_MODULE_6__.Z)(n,t),n}(svelte_internal__WEBPACK_IMPORTED_MODULE_0__.f_C);__webpack_exports__.Z=LogCommand},4687:function(t,n,e){"use strict";e.d(n,{x:function(){return r}});var o=e(3313),r=function(){var t=(0,o.fZ)({updateTime:0}),n=t.subscribe,e=t.set,r=t.update;return{subscribe:n,set:e,update:r,updateTime:function(){r((function(t){return t.updateTime=Date.now(),t}))}}}()},643:function(t,n,e){"use strict";e.d(n,{N:function(){return o}});var o=function(){function t(){this._onDataUpdateCallbacks=[]}return t.getSingleton=function(n,e){return e||(e=n.toString()),t.singleton[e]||(t.singleton[e]=new n),t.singleton[e]},t}();o.singleton={}},5103:function(t,n,e){"use strict";function o(t){var n=t>0?new Date(t):new Date,e=n.getDate()<10?"0"+n.getDate():n.getDate(),o=n.getMonth()<9?"0"+(n.getMonth()+1):n.getMonth()+1,r=n.getFullYear(),i=n.getHours()<10?"0"+n.getHours():n.getHours(),a=n.getMinutes()<10?"0"+n.getMinutes():n.getMinutes(),c=n.getSeconds()<10?"0"+n.getSeconds():n.getSeconds(),u=n.getMilliseconds()<10?"0"+n.getMilliseconds():n.getMilliseconds();return u<100&&(u="0"+u),{time:+n,year:r,month:o,day:e,hour:i,minute:a,second:c,millisecond:u}}function r(t){return"[object Number]"===Object.prototype.toString.call(t)}function i(t){return"bigint"==typeof t}function a(t){return"string"==typeof t}function c(t){return"[object Array]"===Object.prototype.toString.call(t)}function u(t){return"boolean"==typeof t}function s(t){return void 0===t}function l(t){return null===t}function f(t){return"symbol"==typeof t}function d(t){return!("[object Object]"!==Object.prototype.toString.call(t)&&(r(t)||i(t)||a(t)||u(t)||c(t)||l(t)||v(t)||s(t)||f(t)))}function v(t){return"function"==typeof t}function h(t){return"object"==typeof HTMLElement?t instanceof HTMLElement:t&&"object"==typeof t&&null!==t&&1===t.nodeType&&"string"==typeof t.nodeName}function p(t){var n=Object.prototype.toString.call(t);return"[object Window]"===n||"[object DOMWindow]"===n||"[object global]"===n}function g(t){return null!=t&&"string"!=typeof t&&"boolean"!=typeof t&&"number"!=typeof t&&"function"!=typeof t&&"symbol"!=typeof t&&"bigint"!=typeof t&&("undefined"!=typeof Symbol&&"function"==typeof t[Symbol.iterator])}function m(t){return Object.prototype.toString.call(t).replace(/\[object (.*)\]/,"$1")}e.d(n,{C4:function(){return i},DV:function(){return b},FJ:function(){return p},Ft:function(){return l},HD:function(){return a},H_:function(){return B},KL:function(){return O},Kn:function(){return d},MH:function(){return $},PO:function(){return y},QI:function(){return j},QK:function(){return k},TW:function(){return g},_3:function(){return o},_D:function(){return P},cF:function(){return S},hZ:function(){return C},hj:function(){return r},id:function(){return I},jn:function(){return u},kJ:function(){return c},kK:function(){return h},mf:function(){return v},o8:function(){return s},po:function(){return M},qr:function(){return R},qt:function(){return A},rE:function(){return L},yk:function(){return f},zl:function(){return m}});var _=/(function|class) ([^ \{\()}]{1,})[\(| ]/;function b(t){var n;if(null==t)return"";var e=_.exec((null==t||null==(n=t.constructor)?void 0:n.toString())||"");return e&&e.length>1?e[2]:""}function y(t){var n,e=Object.prototype.hasOwnProperty;if(!t||"object"!=typeof t||t.nodeType||p(t))return!1;try{if(t.constructor&&!e.call(t,"constructor")&&!e.call(t.constructor.prototype,"isPrototypeOf"))return!1}catch(t){return!1}for(n in t);return void 0===n||e.call(t,n)}var w=/[\n\t]/g,E=function(t){return{"\n":"\\n","\t":"\\t"}[t]};function L(t){return"string"!=typeof t?t:String(t).replace(w,E)}var T=function(t,n){void 0===n&&(n=0);var e="";return a(t)?(n>0&&(t=I(t,n)),e+='"'+L(t)+'"'):f(t)?e+=String(t).replace(/^Symbol\((.*)\)$/i,'Symbol("$1")'):v(t)?e+=(t.name||"function")+"()":i(t)?e+=String(t)+"n":e+=String(t),e},x=function t(n,e,o){if(void 0===o&&(o=0),d(n)||c(n))if(e.circularFinder(n)){var r="";if(c(n))r="(Circular Array)";else if(d(n)){var i;r="(Circular "+((null==(i=n.constructor)?void 0:i.name)||"Object")+")"}e.ret+=e.standardJSON?'"'+r+'"':r}else{var u="",s="";if(e.pretty){for(var l=0;l<=o;l++)u+=" ";s="\n"}var v="{",h="}";c(n)&&(v="[",h="]"),e.ret+=v+s;for(var p=$(n),g=0;g<p.length;g++){var m=p[g];e.ret+=u;try{c(n)||(d(m)||c(m)||f(m)?e.ret+=Object.prototype.toString.call(m):a(m)&&e.standardJSON?e.ret+='"'+m+'"':e.ret+=m,e.ret+=": ")}catch(t){continue}try{var _=n[m];if(c(_))e.maxDepth>-1&&o>=e.maxDepth?e.ret+="Array("+_.length+")":t(_,e,o+1);else if(d(_)){var b;if(e.maxDepth>-1&&o>=e.maxDepth)e.ret+=((null==(b=_.constructor)?void 0:b.name)||"Object")+" {}";else t(_,e,o+1)}else e.ret+=T(_,e.keyMaxLen)}catch(t){e.ret+=e.standardJSON?'"(PARSE_ERROR)"':"(PARSE_ERROR)"}if(e.keyMaxLen>0&&e.ret.length>=10*e.keyMaxLen){e.ret+=", (...)";break}g<p.length-1&&(e.ret+=", "),e.ret+=s}e.ret+=u.substring(0,u.length-2)+h}else e.ret+=T(n,e.keyMaxLen)};function C(t,n){void 0===n&&(n={maxDepth:-1,keyMaxLen:-1,pretty:!1,standardJSON:!1});var e,o=Object.assign({ret:"",maxDepth:-1,keyMaxLen:-1,pretty:!1,standardJSON:!1,circularFinder:(e=new WeakSet,function(t){if("object"==typeof t&&null!==t){if(e.has(t))return!0;e.add(t)}return!1})},n);return x(t,o),o.ret}function O(t){return t<=0?"":t>=1e6?(t/1e3/1e3).toFixed(1)+" MB":t>=1e3?(t/1e3).toFixed(1)+" KB":t+" B"}function I(t,n){return t.length>n&&(t=t.substring(0,n)+"...("+O(function(t){try{return encodeURI(t).split(/%(?:u[0-9A-F]{2})?[0-9A-F]{2}|./).length-1}catch(t){return 0}}(t))+")"),t}var D=function(t,n){return String(t).localeCompare(String(n),void 0,{numeric:!0,sensitivity:"base"})};function R(t){return t.sort(D)}function $(t){return d(t)||c(t)?Object.keys(t):[]}function k(t){var n=$(t),e=function(t){return d(t)||c(t)?Object.getOwnPropertyNames(t):[]}(t);return e.filter((function(t){return-1===n.indexOf(t)}))}function P(t){return d(t)||c(t)?Object.getOwnPropertySymbols(t):[]}function M(t,n){window.localStorage&&(t="vConsole_"+t,localStorage.setItem(t,n))}function S(t){if(window.localStorage)return t="vConsole_"+t,localStorage.getItem(t)}function j(t){return void 0===t&&(t=""),"__vc_"+t+Math.random().toString(36).substring(2,8)}function B(){return"undefined"!=typeof window&&!!window.__wxConfig&&!!window.wx&&!!window.__virtualDOM__}function A(t){if(B()&&"function"==typeof window.wx[t])try{for(var n,e=arguments.length,o=new Array(e>1?e-1:0),r=1;r<e;r++)o[r-1]=arguments[r];var i=(n=window.wx[t]).call.apply(n,[window.wx].concat(o));return i}catch(n){return void console.debug("[vConsole] Fail to call wx."+t+"():",n)}}},5629:function(t,n,e){"use strict";e.d(n,{W:function(){return h}});var o=e(8270),r=e(6881),i=e(5103),a=e(643),c=e(4687),u=e(8665),s=e(9923);function l(t,n){var e=Object.keys(t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(t);n&&(o=o.filter((function(n){return Object.getOwnPropertyDescriptor(t,n).enumerable}))),e.push.apply(e,o)}return e}function f(t){for(var n=1;n<arguments.length;n++){var e=null!=arguments[n]?arguments[n]:{};n%2?l(Object(e),!0).forEach((function(n){(0,o.Z)(t,n,e[n])})):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(e)):l(Object(e)).forEach((function(n){Object.defineProperty(t,n,Object.getOwnPropertyDescriptor(e,n))}))}return t}function d(t,n){var e="undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(e)return(e=e.call(t)).next.bind(e);if(Array.isArray(t)||(e=function(t,n){if(!t)return;if("string"==typeof t)return v(t,n);var e=Object.prototype.toString.call(t).slice(8,-1);"Object"===e&&t.constructor&&(e=t.constructor.name);if("Map"===e||"Set"===e)return Array.from(t);if("Arguments"===e||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(e))return v(t,n)}(t))||n&&t&&"number"==typeof t.length){e&&(t=e);var o=0;return function(){return o>=t.length?{done:!0}:{done:!1,value:t[o++]}}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}function v(t,n){(null==n||n>t.length)&&(n=t.length);for(var e=0,o=new Array(n);e<n;e++)o[e]=t[e];return o}var h=function(t){function n(){for(var n,e=arguments.length,o=new Array(e),r=0;r<e;r++)o[r]=arguments[r];return(n=t.call.apply(t,[this].concat(o))||this).LOG_METHODS=["log","info","warn","debug","error"],n.ADDED_LOG_PLUGIN_ID=[],n.maxLogNumber=1e3,n.logCounter=0,n.groupLevel=0,n.groupLabelCollapsedStack=[],n.pluginPattern=void 0,n.logQueue=[],n.flushLogScheduled=!1,n.origConsole={},n}(0,r.Z)(n,t);var e=n.prototype;return e.bindPlugin=function(t){return!(this.ADDED_LOG_PLUGIN_ID.indexOf(t)>-1)&&(0===this.ADDED_LOG_PLUGIN_ID.length&&this.mockConsole(),s.O.create(t),this.ADDED_LOG_PLUGIN_ID.push(t),this.pluginPattern=new RegExp("^\\[("+this.ADDED_LOG_PLUGIN_ID.join("|")+")\\]$","i"),!0)},e.unbindPlugin=function(t){var n=this.ADDED_LOG_PLUGIN_ID.indexOf(t);return-1!==n&&(this.ADDED_LOG_PLUGIN_ID.splice(n,1),s.O.delete(t),0===this.ADDED_LOG_PLUGIN_ID.length&&this.unmockConsole(),!0)},e.mockConsole=function(){var t=this;"function"!=typeof this.origConsole.log&&(window.console?(this.LOG_METHODS.map((function(n){t.origConsole[n]=window.console[n]})),this.origConsole.time=window.console.time,this.origConsole.timeEnd=window.console.timeEnd,this.origConsole.clear=window.console.clear,this.origConsole.group=window.console.group,this.origConsole.groupCollapsed=window.console.groupCollapsed,this.origConsole.groupEnd=window.console.groupEnd):window.console={},this._mockConsoleLog(),this._mockConsoleTime(),this._mockConsoleGroup(),this._mockConsoleClear(),window._vcOrigConsole=this.origConsole)},e._mockConsoleLog=function(){var t=this;this.LOG_METHODS.map((function(n){window.console[n]=function(){for(var e=arguments.length,o=new Array(e),r=0;r<e;r++)o[r]=arguments[r];t.addLog({type:n,origData:o||[]})}.bind(window.console)}))},e._mockConsoleTime=function(){var t=this,n={};window.console.time=function(t){void 0===t&&(t=""),n[t]=Date.now()}.bind(window.console),window.console.timeEnd=function(e){void 0===e&&(e="");var o=n[e],r=0;o&&(r=Date.now()-o,delete n[e]),t.addLog({type:"log",origData:[e+": "+r+"ms"]})}.bind(window.console)},e._mockConsoleGroup=function(){var t=this,n=function(n){return function(e){void 0===e&&(e="console.group");var o=Symbol(e);t.groupLabelCollapsedStack.push({label:o,collapsed:n}),t.addLog({type:"log",origData:[e],isGroupHeader:n?2:1,isGroupCollapsed:!1},{noOrig:!0}),t.groupLevel++,n?t.origConsole.groupCollapsed(e):t.origConsole.group(e)}.bind(window.console)};window.console.group=n(!1),window.console.groupCollapsed=n(!0),window.console.groupEnd=function(){t.groupLabelCollapsedStack.pop(),t.groupLevel=Math.max(0,t.groupLevel-1),t.origConsole.groupEnd()}.bind(window.console)},e._mockConsoleClear=function(){var t=this;window.console.clear=function(){t.clearLog();for(var n=arguments.length,e=new Array(n),o=0;o<n;o++)e[o]=arguments[o];t.callOriginalConsole.apply(t,["clear"].concat(e))}.bind(window.console)},e.unmockConsole=function(){for(var t in this.origConsole)window.console[t]=this.origConsole[t],delete this.origConsole[t];window._vcOrigConsole&&delete window._vcOrigConsole},e.callOriginalConsole=function(t){if("function"==typeof this.origConsole[t]){for(var n=arguments.length,e=new Array(n>1?n-1:0),o=1;o<n;o++)e[o-1]=arguments[o];this.origConsole[t].apply(window.console,e)}},e.clearLog=function(){var t=s.O.getAll();for(var n in t)t[n].update((function(t){return t.logList=[],t}))},e.clearPluginLog=function(t){s.O.get(t).update((function(t){return t.logList=[],t}))},e.addLog=function(t,n){void 0===t&&(t={type:"log",origData:[],isGroupHeader:0,isGroupCollapsed:!1});var e=this.groupLabelCollapsedStack[this.groupLabelCollapsedStack.length-2],o=this.groupLabelCollapsedStack[this.groupLabelCollapsedStack.length-1],r={_id:i.QI(),type:t.type,cmdType:null==n?void 0:n.cmdType,toggle:{},date:Date.now(),data:(0,u.b1)(t.origData||[]),repeated:0,groupLabel:null==o?void 0:o.label,groupLevel:this.groupLevel,groupHeader:t.isGroupHeader,groupCollapsed:t.isGroupHeader?!(null==e||!e.collapsed):!(null==o||!o.collapsed)};this._signalLog(r),null!=n&&n.noOrig||this.callOriginalConsole.apply(this,[t.type].concat(t.origData))},e.evalCommand=function(t){this.addLog({type:"log",origData:[t]},{cmdType:"input"});var n=void 0;try{n=eval.call(window,"("+t+")")}catch(e){try{n=eval.call(window,t)}catch(t){}}this.addLog({type:"log",origData:[n]},{cmdType:"output"})},e._signalLog=function(t){var n=this;this.flushLogScheduled||(this.flushLogScheduled=!0,window.requestAnimationFrame((function(){n.flushLogScheduled=!1,n._flushLogs()}))),this.logQueue.push(t)},e._flushLogs=function(){var t=this,n=this.logQueue;this.logQueue=[];for(var e,o={},r=d(n);!(e=r()).done;){var i=e.value,a=this._extractPluginIdByLog(i);(o[a]=o[a]||[]).push(i)}for(var u=function(n){var e=o[n];s.O.get(n).update((function(n){for(var o,r=[].concat(n.logList),i=d(e);!(o=i()).done;){var a=o.value;t._isRepeatedLog(r,a)?t._updateLastLogRepeated(r):r.push(a)}return{logList:r=t._limitLogListLength(r)}}))},l=0,f=Object.keys(o);l<f.length;l++){u(f[l])}c.x.updateTime()},e._extractPluginIdByLog=function(t){var n,e="default",o=null==(n=t.data[0])?void 0:n.origData;if(i.HD(o)){var r=o.match(this.pluginPattern);if(null!==r&&r.length>1){var a=r[1].toLowerCase();this.ADDED_LOG_PLUGIN_ID.indexOf(a)>-1&&(e=a,t.data.shift())}}return e},e._isRepeatedLog=function(t,n){var e=t[t.length-1];if(!e)return!1;var o=!1;if(n.type===e.type&&n.cmdType===e.cmdType&&n.data.length===e.data.length){o=!0;for(var r=0;r<n.data.length;r++)if(n.data[r].origData!==e.data[r].origData){o=!1;break}}return o},e._updateLastLogRepeated=function(t){var n=t[t.length-1],e=n.repeated?n.repeated+1:2;return t[t.length-1]=f(f({},n),{},{repeated:e}),t},e._limitLogListLength=function(t){var n=t.length,e=this.maxLogNumber;return n>e?t.slice(n-e,n):t},n}(a.N)},9923:function(t,n,e){"use strict";e.d(n,{O:function(){return r}});var o=e(3313),r=function(){function t(){}return t.create=function(t){return this.storeMap[t]||(this.storeMap[t]=(0,o.fZ)({logList:[]})),this.storeMap[t]},t.delete=function(t){this.storeMap[t]&&delete this.storeMap[t]},t.get=function(t){return this.storeMap[t]},t.getRaw=function(t){return(0,o.U2)(this.storeMap[t])},t.getAll=function(){return this.storeMap},t}();r.storeMap={}},8665:function(t,n,e){"use strict";e.d(n,{HX:function(){return l},LH:function(){return i},Tg:function(){return v},b1:function(){return d},oj:function(){return s}});var o=e(5103),r=function(t){var n=o.hZ(t,{maxDepth:0}),e=n.substring(0,36),r=o.DV(t);return n.length>36&&(e+="..."),r=o.rE(r+" "+e)},i=function(t,n){void 0===n&&(n=!0);var e="undefined",i=t;return t instanceof v?(e="uninvocatable",i="(...)"):o.kJ(t)?(e="array",i=r(t)):o.Kn(t)?(e="object",i=r(t)):o.HD(t)?(e="string",i=o.rE(t),n&&(i='"'+i+'"')):o.hj(t)?(e="number",i=String(t)):o.C4(t)?(e="bigint",i=String(t)+"n"):o.jn(t)?(e="boolean",i=String(t)):o.Ft(t)?(e="null",i="null"):o.o8(t)?(e="undefined",i="undefined"):o.mf(t)?(e="function",i=(t.name||"function")+"()"):o.yk(t)&&(e="symbol",i=String(t)),{text:i,valueType:e}},a=[".","[","(","{","}"],c=["]",")","}"],u=function(t,n,e){void 0===e&&(e=0);for(var o={text:"",pos:-1,before:"",after:""},r=t.length-1;r>=e;r--){var i=n.indexOf(t[r]);if(i>-1){o.text=n[i],o.pos=r,o.before=t.substring(e,r),o.after=t.substring(r+1,t.length);break}}return o},s=function(t){var n=u(t,a,0);return{front:n,back:u(t,c,n.pos+1)}},l=function(t,n){if(""===n)return!0;for(var e=0;e<t.data.length;e++){if("string"===typeof t.data[e].origData&&t.data[e].origData.indexOf(n)>-1)return!0}return!1},f=/(\%[csdo] )|( \%[csdo])/g,d=function(t){if(f.lastIndex=0,o.HD(t[0])&&f.test(t[0])){for(var n,e=[].concat(t),r=e.shift().split(f).filter((function(t){return void 0!==t&&""!==t})),i=e,a=[],c=!1,u="";r.length>0;){var s=r.shift();if(/ ?\%c ?/.test(s)?i.length>0?"string"!=typeof(u=i.shift())&&(u=""):(n=s,u="",c=!0):/ ?\%[sd] ?/.test(s)?(n=i.length>0?o.Kn(i[0])?o.DV(i.shift()):String(i.shift()):s,c=!0):/ ?\%o ?/.test(s)?(n=i.length>0?i.shift():s,c=!0):(n=s,c=!0),c){var l={origData:n};u&&(l.style=u),a.push(l),c=!1,n=void 0,u=""}}for(var d=0;d<i.length;d++)a.push({origData:i[d]});return a}for(var v=[],h=0;h<t.length;h++)v.push({origData:t[h]});return v},v=function(){}},5313:function(t,n,e){"use strict";var o=e(6738),r=e.n(o),i=e(7705),a=e.n(i)()(r());a.push([t.id,".vc-icon {\n word-break: normal;\n white-space: normal;\n overflow: visible;\n}\n.vc-icon svg {\n fill: var(--VC-FG-2);\n height: 1em;\n width: 1em;\n vertical-align: -0.11em;\n}\n.vc-icon .vc-icon-delete {\n vertical-align: -0.11em;\n}\n.vc-icon .vc-icon-copy {\n height: 1.1em;\n width: 1.1em;\n vertical-align: -0.16em;\n}\n.vc-icon .vc-icon-suc {\n fill: var(--VC-TEXTGREEN);\n height: 1.1em;\n width: 1.1em;\n vertical-align: -0.16em;\n}\n",""]),n.Z=a},1142:function(t,n,e){"use strict";var o=e(6738),r=e.n(o),i=e(7705),a=e.n(i)()(r());a.push([t.id,".vc-scroller-viewport {\n position: relative;\n overflow: hidden;\n height: 100%;\n}\n.vc-scroller-contents {\n min-height: 100%;\n will-change: transform;\n}\n.vc-scroller-items {\n will-change: height;\n position: relative;\n}\n.vc-scroller-item {\n display: none;\n position: absolute;\n left: 0;\n right: 0;\n}\n.vc-scroller-scrollbar-track {\n width: 4px;\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n padding: 1px;\n}\n.vc-scroller-scrollbar-thumb {\n position: relative;\n width: 100%;\n height: 100%;\n background: rgba(0, 0, 0, 0.5);\n border-radius: 999px;\n}\n",""]),n.Z=a},3283:function(t,n,e){"use strict";var o=e(6738),r=e.n(o),i=e(7705),a=e.n(i)()(r());a.push([t.id,'#__vconsole {\n --VC-BG-0: #ededed;\n --VC-BG-1: #f7f7f7;\n --VC-BG-2: #fff;\n --VC-BG-3: #f7f7f7;\n --VC-BG-4: #4c4c4c;\n --VC-BG-5: #fff;\n --VC-BG-6: rgba(0, 0, 0, 0.1);\n --VC-FG-0: rgba(0, 0, 0, 0.9);\n --VC-FG-HALF: rgba(0, 0, 0, 0.9);\n --VC-FG-1: rgba(0, 0, 0, 0.5);\n --VC-FG-2: rgba(0, 0, 0, 0.3);\n --VC-FG-3: rgba(0, 0, 0, 0.1);\n --VC-RED: #fa5151;\n --VC-ORANGE: #fa9d3b;\n --VC-YELLOW: #ffc300;\n --VC-GREEN: #91d300;\n --VC-LIGHTGREEN: #95ec69;\n --VC-BRAND: #07c160;\n --VC-BLUE: #10aeff;\n --VC-INDIGO: #1485ee;\n --VC-PURPLE: #6467f0;\n --VC-LINK: #576b95;\n --VC-TEXTGREEN: #06ae56;\n --VC-FG: black;\n --VC-BG: white;\n --VC-BG-COLOR-ACTIVE: #ececec;\n --VC-WARN-BG: #fff3cc;\n --VC-WARN-BORDER: #ffe799;\n --VC-ERROR-BG: #fedcdc;\n --VC-ERROR-BORDER: #fdb9b9;\n --VC-DOM-TAG-NAME-COLOR: #881280;\n --VC-DOM-ATTRIBUTE-NAME-COLOR: #994500;\n --VC-DOM-ATTRIBUTE-VALUE-COLOR: #1a1aa6;\n --VC-CODE-KEY-FG: #881391;\n --VC-CODE-PRIVATE-KEY-FG: #cfa1d3;\n --VC-CODE-FUNC-FG: #0d22aa;\n --VC-CODE-NUMBER-FG: #1c00cf;\n --VC-CODE-STR-FG: #c41a16;\n --VC-CODE-NULL-FG: #808080;\n color: var(--VC-FG-0);\n font-size: 13px;\n font-family: Helvetica Neue, Helvetica, Arial, sans-serif;\n -webkit-user-select: auto;\n /* global */\n}\n#__vconsole .vc-max-height {\n max-height: 19.23076923em;\n}\n#__vconsole .vc-max-height-line {\n max-height: 6.30769231em;\n}\n#__vconsole .vc-min-height {\n min-height: 3.07692308em;\n}\n#__vconsole dd,\n#__vconsole dl,\n#__vconsole pre {\n margin: 0;\n}\n#__vconsole pre {\n white-space: pre-wrap;\n}\n#__vconsole i {\n font-style: normal;\n}\n.vc-table {\n height: 100%;\n}\n.vc-table .vc-table-row {\n line-height: 1.5;\n display: -webkit-box;\n display: -webkit-flex;\n display: -moz-box;\n display: -ms-flexbox;\n display: flex;\n -webkit-box-orient: horizontal;\n -webkit-box-direction: normal;\n -webkit-flex-direction: row;\n -moz-box-orient: horizontal;\n -moz-box-direction: normal;\n -ms-flex-direction: row;\n flex-direction: row;\n -webkit-flex-wrap: wrap;\n -ms-flex-wrap: wrap;\n flex-wrap: wrap;\n overflow: hidden;\n border-bottom: 1px solid var(--VC-FG-3);\n}\n.vc-table .vc-table-row.vc-left-border {\n border-left: 1px solid var(--VC-FG-3);\n}\n.vc-table .vc-table-row-icon {\n margin-left: 4px;\n}\n.vc-table .vc-table-col {\n -webkit-box-flex: 1;\n -webkit-flex: 1;\n -moz-box-flex: 1;\n -ms-flex: 1;\n flex: 1;\n padding: 0.23076923em 0.30769231em;\n border-left: 1px solid var(--VC-FG-3);\n overflow: auto;\n}\n.vc-table .vc-table-col:first-child {\n border: none;\n}\n.vc-table .vc-table-col-value {\n white-space: pre-wrap;\n word-break: break-word;\n /*white-space: nowrap;\n text-overflow: ellipsis;*/\n -webkit-overflow-scrolling: touch;\n}\n.vc-table .vc-small .vc-table-col {\n padding: 0 0.30769231em;\n font-size: 0.92307692em;\n}\n.vc-table .vc-table-col-2 {\n -webkit-box-flex: 2;\n -webkit-flex: 2;\n -moz-box-flex: 2;\n -ms-flex: 2;\n flex: 2;\n}\n.vc-table .vc-table-col-3 {\n -webkit-box-flex: 3;\n -webkit-flex: 3;\n -moz-box-flex: 3;\n -ms-flex: 3;\n flex: 3;\n}\n.vc-table .vc-table-col-4 {\n -webkit-box-flex: 4;\n -webkit-flex: 4;\n -moz-box-flex: 4;\n -ms-flex: 4;\n flex: 4;\n}\n.vc-table .vc-table-col-5 {\n -webkit-box-flex: 5;\n -webkit-flex: 5;\n -moz-box-flex: 5;\n -ms-flex: 5;\n flex: 5;\n}\n.vc-table .vc-table-col-6 {\n -webkit-box-flex: 6;\n -webkit-flex: 6;\n -moz-box-flex: 6;\n -ms-flex: 6;\n flex: 6;\n}\n.vc-table .vc-table-row-error {\n border-color: var(--VC-ERROR-BORDER);\n background-color: var(--VC-ERROR-BG);\n}\n.vc-table .vc-table-row-error .vc-table-col {\n color: var(--VC-RED);\n border-color: var(--VC-ERROR-BORDER);\n}\n.vc-table .vc-table-col-title {\n font-weight: bold;\n}\n.vc-table .vc-table-action {\n display: flex;\n justify-content: space-evenly;\n}\n.vc-table .vc-table-action .vc-icon {\n flex: 1;\n text-align: center;\n display: block;\n}\n.vc-table .vc-table-action .vc-icon:hover {\n background: var(--VC-BG-3);\n}\n.vc-table .vc-table-action .vc-icon:active {\n background: var(--VC-BG-1);\n}\n.vc-table .vc-table-input {\n width: 100%;\n border: none;\n color: var(--VC-FG-0);\n background-color: var(--VC-BG-6);\n height: 3.53846154em;\n}\n.vc-table .vc-table-input:focus {\n background-color: var(--VC-FG-2);\n}\n@media (prefers-color-scheme: dark) {\n #__vconsole:not([data-theme="light"]) {\n --VC-BG-0: #191919;\n --VC-BG-1: #1f1f1f;\n --VC-BG-2: #232323;\n --VC-BG-3: #2f2f2f;\n --VC-BG-4: #606060;\n --VC-BG-5: #2c2c2c;\n --VC-BG-6: rgba(255, 255, 255, 0.2);\n --VC-FG-0: rgba(255, 255, 255, 0.8);\n --VC-FG-HALF: rgba(255, 255, 255, 0.6);\n --VC-FG-1: rgba(255, 255, 255, 0.5);\n --VC-FG-2: rgba(255, 255, 255, 0.3);\n --VC-FG-3: rgba(255, 255, 255, 0.05);\n --VC-RED: #fa5151;\n --VC-ORANGE: #c87d2f;\n --VC-YELLOW: #cc9c00;\n --VC-GREEN: #74a800;\n --VC-LIGHTGREEN: #28b561;\n --VC-BRAND: #07c160;\n --VC-BLUE: #10aeff;\n --VC-INDIGO: #1196ff;\n --VC-PURPLE: #8183ff;\n --VC-LINK: #7d90a9;\n --VC-TEXTGREEN: #259c5c;\n --VC-FG: white;\n --VC-BG: black;\n --VC-BG-COLOR-ACTIVE: #282828;\n --VC-WARN-BG: #332700;\n --VC-WARN-BORDER: #664e00;\n --VC-ERROR-BG: #321010;\n --VC-ERROR-BORDER: #642020;\n --VC-DOM-TAG-NAME-COLOR: #5DB0D7;\n --VC-DOM-ATTRIBUTE-NAME-COLOR: #9BBBDC;\n --VC-DOM-ATTRIBUTE-VALUE-COLOR: #f29766;\n --VC-CODE-KEY-FG: #e36eec;\n --VC-CODE-PRIVATE-KEY-FG: #f4c5f7;\n --VC-CODE-FUNC-FG: #556af2;\n --VC-CODE-NUMBER-FG: #9980ff;\n --VC-CODE-STR-FG: #e93f3b;\n --VC-CODE-NULL-FG: #808080;\n }\n}\n#__vconsole[data-theme="dark"] {\n --VC-BG-0: #191919;\n --VC-BG-1: #1f1f1f;\n --VC-BG-2: #232323;\n --VC-BG-3: #2f2f2f;\n --VC-BG-4: #606060;\n --VC-BG-5: #2c2c2c;\n --VC-BG-6: rgba(255, 255, 255, 0.2);\n --VC-FG-0: rgba(255, 255, 255, 0.8);\n --VC-FG-HALF: rgba(255, 255, 255, 0.6);\n --VC-FG-1: rgba(255, 255, 255, 0.5);\n --VC-FG-2: rgba(255, 255, 255, 0.3);\n --VC-FG-3: rgba(255, 255, 255, 0.05);\n --VC-RED: #fa5151;\n --VC-ORANGE: #c87d2f;\n --VC-YELLOW: #cc9c00;\n --VC-GREEN: #74a800;\n --VC-LIGHTGREEN: #28b561;\n --VC-BRAND: #07c160;\n --VC-BLUE: #10aeff;\n --VC-INDIGO: #1196ff;\n --VC-PURPLE: #8183ff;\n --VC-LINK: #7d90a9;\n --VC-TEXTGREEN: #259c5c;\n --VC-FG: white;\n --VC-BG: black;\n --VC-BG-COLOR-ACTIVE: #282828;\n --VC-WARN-BG: #332700;\n --VC-WARN-BORDER: #664e00;\n --VC-ERROR-BG: #321010;\n --VC-ERROR-BORDER: #642020;\n --VC-DOM-TAG-NAME-COLOR: #5DB0D7;\n --VC-DOM-ATTRIBUTE-NAME-COLOR: #9BBBDC;\n --VC-DOM-ATTRIBUTE-VALUE-COLOR: #f29766;\n --VC-CODE-KEY-FG: #e36eec;\n --VC-CODE-PRIVATE-KEY-FG: #f4c5f7;\n --VC-CODE-FUNC-FG: #556af2;\n --VC-CODE-NUMBER-FG: #9980ff;\n --VC-CODE-STR-FG: #e93f3b;\n --VC-CODE-NULL-FG: #808080;\n}\n.vc-tabbar {\n border-bottom: 1px solid var(--VC-FG-3);\n overflow-x: auto;\n height: 3em;\n width: auto;\n white-space: nowrap;\n}\n.vc-tabbar .vc-tab {\n display: inline-block;\n line-height: 3em;\n padding: 0 1.15384615em;\n border-right: 1px solid var(--VC-FG-3);\n text-decoration: none;\n color: var(--VC-FG-0);\n -webkit-tap-highlight-color: transparent;\n -webkit-touch-callout: none;\n}\n.vc-tabbar .vc-tab:active {\n background-color: rgba(0, 0, 0, 0.15);\n}\n.vc-tabbar .vc-tab.vc-actived {\n background-color: var(--VC-BG-1);\n}\n.vc-toolbar {\n border-top: 1px solid var(--VC-FG-3);\n line-height: 3em;\n position: absolute;\n left: 0;\n right: 0;\n bottom: 0;\n display: -webkit-box;\n display: -webkit-flex;\n display: -moz-box;\n display: -ms-flexbox;\n display: flex;\n -webkit-box-orient: horizontal;\n -webkit-box-direction: normal;\n -webkit-flex-direction: row;\n -moz-box-orient: horizontal;\n -moz-box-direction: normal;\n -ms-flex-direction: row;\n flex-direction: row;\n}\n.vc-toolbar .vc-tool {\n display: none;\n font-style: normal;\n text-decoration: none;\n color: var(--VC-FG-0);\n width: 50%;\n -webkit-box-flex: 1;\n -webkit-flex: 1;\n -moz-box-flex: 1;\n -ms-flex: 1;\n flex: 1;\n text-align: center;\n position: relative;\n -webkit-touch-callout: none;\n}\n.vc-toolbar .vc-tool.vc-toggle,\n.vc-toolbar .vc-tool.vc-global-tool {\n display: block;\n}\n.vc-toolbar .vc-tool:active {\n background-color: rgba(0, 0, 0, 0.15);\n}\n.vc-toolbar .vc-tool:after {\n content: " ";\n position: absolute;\n top: 0.53846154em;\n bottom: 0.53846154em;\n right: 0;\n border-left: 1px solid var(--VC-FG-3);\n}\n.vc-toolbar .vc-tool-last:after {\n border: none;\n}\n.vc-topbar {\n background-color: var(--VC-BG-1);\n display: -webkit-box;\n display: -webkit-flex;\n display: -moz-box;\n display: -ms-flexbox;\n display: flex;\n -webkit-box-orient: horizontal;\n -webkit-box-direction: normal;\n -webkit-flex-direction: row;\n -moz-box-orient: horizontal;\n -moz-box-direction: normal;\n -ms-flex-direction: row;\n flex-direction: row;\n -webkit-flex-wrap: wrap;\n -ms-flex-wrap: wrap;\n flex-wrap: wrap;\n width: 100%;\n}\n.vc-topbar .vc-toptab {\n display: none;\n -webkit-box-flex: 1;\n -webkit-flex: 1;\n -moz-box-flex: 1;\n -ms-flex: 1;\n flex: 1;\n line-height: 2.30769231em;\n padding: 0 1.15384615em;\n border-bottom: 1px solid var(--VC-FG-3);\n text-decoration: none;\n text-align: center;\n color: var(--VC-FG-0);\n -webkit-tap-highlight-color: transparent;\n -webkit-touch-callout: none;\n}\n.vc-topbar .vc-toptab.vc-toggle {\n display: block;\n}\n.vc-topbar .vc-toptab:active {\n background-color: rgba(0, 0, 0, 0.15);\n}\n.vc-topbar .vc-toptab.vc-actived {\n border-bottom: 1px solid var(--VC-INDIGO);\n}\n.vc-mask {\n display: none;\n position: fixed;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n background: rgba(0, 0, 0, 0);\n z-index: 10001;\n -webkit-transition: background 0.3s;\n transition: background 0.3s;\n -webkit-tap-highlight-color: transparent;\n overflow-y: scroll;\n}\n.vc-panel {\n display: none;\n position: fixed;\n min-height: 85%;\n left: 0;\n right: 0;\n bottom: -100%;\n z-index: 10002;\n background-color: var(--VC-BG-0);\n transition: bottom 0.3s;\n}\n.vc-toggle .vc-switch {\n display: none;\n}\n.vc-toggle .vc-mask {\n background: rgba(0, 0, 0, 0.6);\n display: block;\n}\n.vc-toggle .vc-panel {\n bottom: 0;\n}\n.vc-content {\n background-color: var(--VC-BG-2);\n overflow-x: hidden;\n overflow-y: auto;\n position: absolute;\n top: 3.07692308em;\n left: 0;\n right: 0;\n bottom: 3.07692308em;\n -webkit-overflow-scrolling: touch;\n margin-bottom: constant(safe-area-inset-bottom);\n margin-bottom: env(safe-area-inset-bottom);\n}\n.vc-content.vc-has-topbar {\n top: 5.46153846em;\n}\n.vc-plugin-box {\n display: none;\n position: relative;\n min-height: 100%;\n}\n.vc-plugin-box.vc-fixed-height {\n height: 100%;\n}\n.vc-plugin-box.vc-actived {\n display: block;\n}\n.vc-plugin-content {\n display: flex;\n width: 100%;\n height: 100%;\n overflow-y: auto;\n flex-direction: column;\n -webkit-tap-highlight-color: transparent;\n}\n.vc-plugin-content:empty:before {\n content: "Empty";\n color: var(--VC-FG-1);\n position: absolute;\n top: 45%;\n left: 0;\n right: 0;\n bottom: 0;\n font-size: 1.15384615em;\n text-align: center;\n}\n.vc-plugin-empty {\n color: var(--VC-FG-1);\n font-size: 1.15384615em;\n height: 100%;\n width: 100%;\n padding: 1.15384615em 0;\n text-align: center;\n display: flex;\n flex-direction: column;\n justify-content: center;\n}\n@supports (bottom: constant(safe-area-inset-bottom)) or (bottom: env(safe-area-inset-bottom)) {\n .vc-toolbar,\n .vc-switch {\n bottom: constant(safe-area-inset-bottom);\n bottom: env(safe-area-inset-bottom);\n }\n}\n',""]),n.Z=a},7558:function(t,n,e){"use strict";var o=e(6738),r=e.n(o),i=e(7705),a=e.n(i)()(r());a.push([t.id,".vc-switch {\n display: block;\n position: fixed;\n right: 0.76923077em;\n bottom: 0.76923077em;\n color: #FFF;\n background-color: var(--VC-BRAND);\n line-height: 1;\n font-size: 1.07692308em;\n padding: 0.61538462em 1.23076923em;\n z-index: 10000;\n border-radius: 0.30769231em;\n box-shadow: 0 0 0.61538462em rgba(0, 0, 0, 0.4);\n}\n",""]),n.Z=a},5670:function(t,n,e){"use strict";var o=e(6738),r=e.n(o),i=e(7705),a=e.n(i)()(r());a.push([t.id,'/* color */\n.vcelm-node {\n color: var(--VC-DOM-TAG-NAME-COLOR);\n}\n.vcelm-k {\n color: var(--VC-DOM-ATTRIBUTE-NAME-COLOR);\n}\n.vcelm-v {\n color: var(--VC-DOM-ATTRIBUTE-VALUE-COLOR);\n}\n.vcelm-l.vc-actived > .vcelm-node {\n background-color: var(--VC-FG-3);\n}\n/* layout */\n.vcelm-l {\n padding-left: 8px;\n position: relative;\n word-wrap: break-word;\n line-height: 1.2;\n}\n/*.vcelm-l.vcelm-noc {\n padding-left: 0;\n}*/\n.vcelm-l .vcelm-node:active {\n background-color: var(--VC-BG-COLOR-ACTIVE);\n}\n.vcelm-l.vcelm-noc .vcelm-node:active {\n background-color: transparent;\n}\n.vcelm-t {\n white-space: pre-wrap;\n word-wrap: break-word;\n}\n/* level */\n/* arrow */\n.vcelm-l:before {\n content: "";\n display: block;\n position: absolute;\n top: 6px;\n left: 3px;\n width: 0;\n height: 0;\n border: transparent solid 3px;\n border-left-color: var(--VC-FG-1);\n}\n.vcelm-l.vc-toggle:before {\n display: block;\n top: 6px;\n left: 0;\n border-top-color: var(--VC-FG-1);\n border-left-color: transparent;\n}\n.vcelm-l.vcelm-noc:before {\n display: none;\n}\n',""]),n.Z=a},3327:function(t,n,e){"use strict";var o=e(6738),r=e.n(o),i=e(7705),a=e.n(i)()(r());a.push([t.id,"",""]),n.Z=a},1130:function(t,n,e){"use strict";var o=e(6738),r=e.n(o),i=e(7705),a=e.n(i)()(r());a.push([t.id,".vc-cmd {\n height: 3.07692308em;\n border-top: 1px solid var(--VC-FG-3);\n display: flex;\n flex-direction: row;\n}\n.vc-cmd.vc-filter {\n bottom: 0;\n}\n.vc-cmd-input-wrap {\n display: flex;\n align-items: center;\n flex: 1;\n position: relative;\n height: 2.15384615em;\n padding: 0.46153846em 0.61538462em;\n}\n.vc-cmd-input {\n width: 100%;\n border: none;\n resize: none;\n outline: none;\n padding: 0;\n font-size: 0.92307692em;\n background-color: transparent;\n color: var(--VC-FG-0);\n}\n.vc-cmd-input::-webkit-input-placeholder {\n line-height: 2.15384615em;\n}\n.vc-cmd-btn {\n width: 3.07692308em;\n border: none;\n background-color: var(--VC-BG-0);\n color: var(--VC-FG-0);\n outline: none;\n -webkit-touch-callout: none;\n font-size: 1em;\n}\n.vc-cmd-clear-btn {\n flex: 1 3.07692308em;\n text-align: center;\n line-height: 3.07692308em;\n}\n.vc-cmd-btn:active,\n.vc-cmd-clear-btn:active {\n background-color: var(--VC-BG-COLOR-ACTIVE);\n}\n.vc-cmd-prompted {\n position: absolute;\n left: 0.46153846em;\n right: 0.46153846em;\n background-color: var(--VC-BG-3);\n border: 1px solid var(--VC-FG-3);\n overflow-x: scroll;\n display: none;\n}\n.vc-cmd-prompted li {\n list-style: none;\n line-height: 30px;\n padding: 0 0.46153846em;\n border-bottom: 1px solid var(--VC-FG-3);\n}\n.vc-cmd-prompted li:active {\n background-color: var(--VC-BG-COLOR-ACTIVE);\n}\n.vc-cmd-prompted-hide {\n text-align: center;\n}\n",""]),n.Z=a},7147:function(t,n,e){"use strict";var o=e(6738),r=e.n(o),i=e(7705),a=e.n(i)()(r());a.push([t.id,'.vc-log-row {\n margin: 0;\n padding: 0.46153846em 0.61538462em;\n overflow: hidden;\n line-height: 1.3;\n border-bottom: 1px solid var(--VC-FG-3);\n word-break: break-word;\n position: relative;\n display: flex;\n}\n.vc-log-info {\n color: var(--VC-PURPLE);\n}\n.vc-log-debug {\n color: var(--VC-YELLOW);\n}\n.vc-log-warn {\n color: var(--VC-ORANGE);\n border-color: var(--VC-WARN-BORDER);\n background-color: var(--VC-WARN-BG);\n}\n.vc-log-error {\n color: var(--VC-RED);\n border-color: var(--VC-ERROR-BORDER);\n background-color: var(--VC-ERROR-BG);\n}\n.vc-logrow-icon {\n margin-left: auto;\n}\n.vc-log-padding {\n width: 1.53846154em;\n border-left: 1px solid var(--VC-FG-3);\n}\n.vc-log-group .vc-log-content {\n font-weight: bold;\n}\n.vc-log-group-toggle {\n padding-left: 0.76923077em;\n}\n.vc-log-group-toggle {\n display: block;\n font-style: italic;\n padding-left: 0.76923077em;\n position: relative;\n}\n.vc-log-group-toggle:active {\n background-color: var(--VC-BG-COLOR-ACTIVE);\n}\n.vc-log-group > .vc-log-group-toggle::before {\n content: "";\n position: absolute;\n top: 0.30769231em;\n left: 0.15384615em;\n width: 0;\n height: 0;\n border: transparent solid 0.30769231em;\n border-left-color: var(--VC-FG-1);\n}\n.vc-log-group.vc-toggle > .vc-log-group-toggle::before {\n top: 0.46153846em;\n left: 0;\n border-top-color: var(--VC-FG-1);\n border-left-color: transparent;\n}\n.vc-log-time {\n width: 6.15384615em;\n color: #777;\n}\n.vc-log-repeat i {\n margin-right: 0.30769231em;\n padding: 0 6.5px;\n color: #D7E0EF;\n background-color: #42597F;\n border-radius: 8.66666667px;\n}\n.vc-log-error .vc-log-repeat i {\n color: #901818;\n background-color: var(--VC-RED);\n}\n.vc-log-warn .vc-log-repeat i {\n color: #987D20;\n background-color: #F4BD02;\n}\n.vc-log-content {\n flex: 1;\n}\n.vc-log-input,\n.vc-log-output {\n padding-left: 0.92307692em;\n}\n.vc-log-input:before,\n.vc-log-output:before {\n content: "›";\n position: absolute;\n top: 0.15384615em;\n left: 0;\n font-size: 1.23076923em;\n color: #6A5ACD;\n}\n.vc-log-output:before {\n content: "‹";\n}\n',""]),n.Z=a},1237:function(t,n,e){"use strict";var o=e(6738),r=e.n(o),i=e(7705),a=e.n(i)()(r());a.push([t.id,'.vc-log-tree {\n display: block;\n overflow: auto;\n position: relative;\n -webkit-overflow-scrolling: touch;\n}\n.vc-log-tree-node {\n display: block;\n font-style: italic;\n padding-left: 0.76923077em;\n position: relative;\n}\n.vc-log-tree.vc-is-tree > .vc-log-tree-node:active {\n background-color: var(--VC-BG-COLOR-ACTIVE);\n}\n.vc-log-tree.vc-is-tree > .vc-log-tree-node::before {\n content: "";\n position: absolute;\n top: 0.30769231em;\n left: 0.15384615em;\n width: 0;\n height: 0;\n border: transparent solid 0.30769231em;\n border-left-color: var(--VC-FG-1);\n}\n.vc-log-tree.vc-is-tree.vc-toggle > .vc-log-tree-node::before {\n top: 0.46153846em;\n left: 0;\n border-top-color: var(--VC-FG-1);\n border-left-color: transparent;\n}\n.vc-log-tree-child {\n margin-left: 0.76923077em;\n}\n.vc-log-tree-loadmore {\n text-decoration: underline;\n padding-left: 1.84615385em;\n position: relative;\n color: var(--VC-CODE-FUNC-FG);\n}\n.vc-log-tree-loadmore::before {\n content: "››";\n position: absolute;\n top: -0.15384615em;\n left: 0.76923077em;\n font-size: 1.23076923em;\n color: var(--VC-CODE-FUNC-FG);\n}\n.vc-log-tree-loadmore:active {\n background-color: var(--VC-BG-COLOR-ACTIVE);\n}\n',""]),n.Z=a},845:function(t,n,e){"use strict";var o=e(6738),r=e.n(o),i=e(7705),a=e.n(i)()(r());a.push([t.id,".vc-log-key {\n color: var(--VC-CODE-KEY-FG);\n}\n.vc-log-key-private {\n color: var(--VC-CODE-PRIVATE-KEY-FG);\n}\n.vc-log-val {\n white-space: pre-line;\n}\n.vc-log-val-function {\n color: var(--VC-CODE-FUNC-FG);\n font-style: italic !important;\n}\n.vc-log-val-bigint {\n color: var(--VC-CODE-FUNC-FG);\n}\n.vc-log-val-number,\n.vc-log-val-boolean {\n color: var(--VC-CODE-NUMBER-FG);\n}\n.vc-log-val-string {\n white-space: pre-wrap;\n}\n.vc-log-val-string.vc-log-val-haskey {\n color: var(--VC-CODE-STR-FG);\n white-space: normal;\n}\n.vc-log-val-null,\n.vc-log-val-undefined,\n.vc-log-val-uninvocatable {\n color: var(--VC-CODE-NULL-FG);\n}\n.vc-log-val-symbol {\n color: var(--VC-CODE-STR-FG);\n}\n",""]),n.Z=a},8747:function(t,n,e){"use strict";var o=e(6738),r=e.n(o),i=e(7705),a=e.n(i)()(r());a.push([t.id,".vc-group .vc-group-preview {\n -webkit-touch-callout: none;\n}\n.vc-group .vc-group-preview:active {\n background-color: var(--VC-BG-COLOR-ACTIVE);\n}\n.vc-group .vc-group-detail {\n display: none;\n padding: 0 0 0.76923077em 1.53846154em;\n border-bottom: 1px solid var(--VC-FG-3);\n}\n.vc-group.vc-actived .vc-group-detail {\n display: block;\n background-color: var(--VC-BG-1);\n}\n.vc-group.vc-actived .vc-table-row {\n background-color: var(--VC-BG-2);\n}\n.vc-group.vc-actived .vc-group-preview {\n background-color: var(--VC-BG-1);\n}\n",""]),n.Z=a},3411:function(t,n,e){"use strict";var o=e(3379),r=e.n(o),i=e(7795),a=e.n(i),c=e(569),u=e.n(c),s=e(3565),l=e.n(s),f=e(9216),d=e.n(f),v=e(4589),h=e.n(v),p=e(1130),g={};p.Z&&p.Z.locals&&(g.locals=p.Z.locals);var m,_=0,b={};b.styleTagTransform=h(),b.setAttributes=l(),b.insert=u().bind(null,"head"),b.domAPI=a(),b.insertStyleElement=d(),g.use=function(t){return b.options=t||{},_++||(m=r()(p.Z,b)),g},g.unuse=function(){_>0&&!--_&&(m(),m=null)},n.Z=g},3379:function(t){"use strict";var n=[];function e(t){for(var e=-1,o=0;o<n.length;o++)if(n[o].identifier===t){e=o;break}return e}function o(t,o){for(var i={},a=[],c=0;c<t.length;c++){var u=t[c],s=o.base?u[0]+o.base:u[0],l=i[s]||0,f="".concat(s," ").concat(l);i[s]=l+1;var d=e(f),v={css:u[1],media:u[2],sourceMap:u[3],supports:u[4],layer:u[5]};if(-1!==d)n[d].references++,n[d].updater(v);else{var h=r(v,o);o.byIndex=c,n.splice(c,0,{identifier:f,updater:h,references:1})}a.push(f)}return a}function r(t,n){var e=n.domAPI(n);e.update(t);return function(n){if(n){if(n.css===t.css&&n.media===t.media&&n.sourceMap===t.sourceMap&&n.supports===t.supports&&n.layer===t.layer)return;e.update(t=n)}else e.remove()}}t.exports=function(t,r){var i=o(t=t||[],r=r||{});return function(t){t=t||[];for(var a=0;a<i.length;a++){var c=e(i[a]);n[c].references--}for(var u=o(t,r),s=0;s<i.length;s++){var l=e(i[s]);0===n[l].references&&(n[l].updater(),n.splice(l,1))}i=u}}},569:function(t){"use strict";var n={};t.exports=function(t,e){var o=function(t){if(void 0===n[t]){var e=document.querySelector(t);if(window.HTMLIFrameElement&&e instanceof window.HTMLIFrameElement)try{e=e.contentDocument.head}catch(t){e=null}n[t]=e}return n[t]}(t);if(!o)throw new Error("Couldn't find a style target. This probably means that the value for the 'insert' parameter is invalid.");o.appendChild(e)}},9216:function(t){"use strict";t.exports=function(t){var n=document.createElement("style");return t.setAttributes(n,t.attributes),t.insert(n,t.options),n}},3565:function(t,n,e){"use strict";t.exports=function(t){var n=e.nc;n&&t.setAttribute("nonce",n)}},7795:function(t){"use strict";t.exports=function(t){var n=t.insertStyleElement(t);return{update:function(e){!function(t,n,e){var o="";e.supports&&(o+="@supports (".concat(e.supports,") {")),e.media&&(o+="@media ".concat(e.media," {"));var r=void 0!==e.layer;r&&(o+="@layer".concat(e.layer.length>0?" ".concat(e.layer):""," {")),o+=e.css,r&&(o+="}"),e.media&&(o+="}"),e.supports&&(o+="}");var i=e.sourceMap;i&&"undefined"!=typeof btoa&&(o+="\n/*# sourceMappingURL=data:application/json;base64,".concat(btoa(unescape(encodeURIComponent(JSON.stringify(i))))," */")),n.styleTagTransform(o,t,n.options)}(n,t,e)},remove:function(){!function(t){if(null===t.parentNode)return!1;t.parentNode.removeChild(t)}(n)}}}},4589:function(t){"use strict";t.exports=function(t,n){if(n.styleSheet)n.styleSheet.cssText=t;else{for(;n.firstChild;)n.removeChild(n.firstChild);n.appendChild(document.createTextNode(t))}}},6464:function(t,n,e){"use strict";function o(t){if(void 0===t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return t}e.d(n,{Z:function(){return o}})},4296:function(t,n,e){"use strict";function o(t,n){for(var e=0;e<n.length;e++){var o=n[e];o.enumerable=o.enumerable||!1,o.configurable=!0,"value"in o&&(o.writable=!0),Object.defineProperty(t,o.key,o)}}function r(t,n,e){return n&&o(t.prototype,n),e&&o(t,e),Object.defineProperty(t,"prototype",{writable:!1}),t}e.d(n,{Z:function(){return r}})},8270:function(t,n,e){"use strict";function o(t,n,e){return n in t?Object.defineProperty(t,n,{value:e,enumerable:!0,configurable:!0,writable:!0}):t[n]=e,t}e.d(n,{Z:function(){return o}})},6881:function(t,n,e){"use strict";e.d(n,{Z:function(){return r}});var o=e(2717);function r(t,n){t.prototype=Object.create(n.prototype),t.prototype.constructor=t,(0,o.Z)(t,n)}},2717:function(t,n,e){"use strict";function o(t,n){return o=Object.setPrototypeOf||function(t,n){return t.__proto__=n,t},o(t,n)}e.d(n,{Z:function(){return o}})},7003:function(t,n,e){"use strict";e.d(n,{H3:function(){return o.H3E},ev:function(){return o.evW},x:function(){return o.xa3}});var o=e(2942)},2942:function(t,n,e){"use strict";function o(t){return o=Object.setPrototypeOf?Object.getPrototypeOf:function(t){return t.__proto__||Object.getPrototypeOf(t)},o(t)}e.d(n,{f_C:function(){return Ct},hjT:function(){return at},R3I:function(){return O},Ljt:function(){return U},akz:function(){return yt},VnY:function(){return Q},cKT:function(){return Y},gbL:function(){return ht},FIv:function(){return b},XGm:function(){return x},xa3:function(){return z},YCL:function(){return wt},nuO:function(){return y},vpE:function(){return Lt},RMB:function(){return R},ogt:function(){return D},bGB:function(){return $},cSb:function(){return S},yl1:function(){return st},VOJ:function(){return T},u2N:function(){return E},$XI:function(){return _},lig:function(){return mt},dvw:function(){return vt},S1n:function(){return xt},$Tr:function(){return I},oLt:function(){return j},yef:function(){return Et},ZTd:function(){return s},AqN:function(){return p},evW:function(){return X},H3E:function(){return Z},cly:function(){return _t},AT7:function(){return B},j7q:function(){return d},N8:function(){return h},rTO:function(){return G},BmG:function(){return N},fxP:function(){return C},czc:function(){return V},DhX:function(){return M},XET:function(){return A},LdU:function(){return m},bi5:function(){return k},fLW:function(){return P},VHj:function(){return W},Ui:function(){return pt},etI:function(){return gt},GQg:function(){return bt},kmG:function(){return L}});var r=e(2717);function i(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(t){return!1}}function a(t,n,e){return a=i()?Reflect.construct:function(t,n,e){var o=[null];o.push.apply(o,n);var i=new(Function.bind.apply(t,o));return e&&(0,r.Z)(i,e.prototype),i},a.apply(null,arguments)}function c(t){var n="function"==typeof Map?new Map:void 0;return c=function(t){if(null===t||(e=t,-1===Function.toString.call(e).indexOf("[native code]")))return t;var e;if("function"!=typeof t)throw new TypeError("Super expression must either be null or a function");if(void 0!==n){if(n.has(t))return n.get(t);n.set(t,i)}function i(){return a(t,arguments,o(this).constructor)}return i.prototype=Object.create(t.prototype,{constructor:{value:i,enumerable:!1,writable:!0,configurable:!0}}),(0,r.Z)(i,t)},c(t)}var u=e(6881);function s(){}function l(t){return t()}function f(){return Object.create(null)}function d(t){t.forEach(l)}function v(t){return"function"==typeof t}function h(t,n){return t!=t?n==n:t!==n||t&&"object"==typeof t||"function"==typeof t}function p(t,n){return t!=t?n==n:t!==n}function g(t){return 0===Object.keys(t).length}function m(t){if(null==t)return s;for(var n=arguments.length,e=new Array(n>1?n-1:0),o=1;o<n;o++)e[o-1]=arguments[o];var r=t.subscribe.apply(t,e);return r.unsubscribe?function(){return r.unsubscribe()}:r}function _(t){var n;return m(t,(function(t){return n=t}))(),n}function b(t,n,e){t.$$.on_destroy.push(m(n,e))}function y(t,n,e,o){if(t){var r=w(t,n,e,o);return t[0](r)}}function w(t,n,e,o){return t[1]&&o?function(t,n){for(var e in n)t[e]=n[e];return t}(e.ctx.slice(),t[1](o(n))):e.ctx}function E(t,n,e,o){if(t[2]&&o){var r=t[2](o(e));if(void 0===n.dirty)return r;if("object"==typeof r){for(var i=[],a=Math.max(n.dirty.length,r.length),c=0;c<a;c+=1)i[c]=n.dirty[c]|r[c];return i}return n.dirty|r}return n.dirty}function L(t,n,e,o,r,i){if(r){var a=w(n,e,o,i);t.p(a,r)}}function T(t){if(t.ctx.length>32){for(var n=[],e=t.ctx.length/32,o=0;o<e;o++)n[o]=-1;return n}return-1}function x(t){var n={};for(var e in t)n[e]=!0;return n}function C(t,n,e){return t.set(e),n}new Set;function O(t,n){t.appendChild(n)}function I(t,n,e){t.insertBefore(n,e||null)}function D(t){t.parentNode.removeChild(t)}function R(t,n){for(var e=0;e<t.length;e+=1)t[e]&&t[e].d(n)}function $(t){return document.createElement(t)}function k(t){return document.createElementNS("http://www.w3.org/2000/svg",t)}function P(t){return document.createTextNode(t)}function M(){return P(" ")}function S(){return P("")}function j(t,n,e,o){return t.addEventListener(n,e,o),function(){return t.removeEventListener(n,e,o)}}function B(t){return function(n){return n.preventDefault(),t.call(this,n)}}function A(t){return function(n){return n.stopPropagation(),t.call(this,n)}}function U(t,n,e){null==e?t.removeAttribute(n):t.getAttribute(n)!==e&&t.setAttribute(n,e)}function G(t,n){n=""+n,t.wholeText!==n&&(t.data=n)}function N(t,n){t.value=null==n?"":n}function V(t,n,e,o){null===e?t.style.removeProperty(n):t.style.setProperty(n,e,o?"important":"")}function W(t,n,e){t.classList[e?"add":"remove"](n)}function K(t,n,e){void 0===e&&(e=!1);var o=document.createEvent("CustomEvent");return o.initCustomEvent(t,e,!1,n),o}var H;new Map;function F(t){H=t}function q(){if(!H)throw new Error("Function called outside component initialization");return H}function Z(t){q().$$.on_mount.push(t)}function X(t){q().$$.on_destroy.push(t)}function z(){var t=q();return function(n,e){var o=t.$$.callbacks[n];if(o){var r=K(n,e);o.slice().forEach((function(n){n.call(t,r)}))}}}function Y(t,n){var e=this,o=t.$$.callbacks[n.type];o&&o.slice().forEach((function(t){return t.call(e,n)}))}var J=[],Q=[],tt=[],nt=[],et=Promise.resolve(),ot=!1;function rt(){ot||(ot=!0,et.then(st))}function it(t){tt.push(t)}function at(t){nt.push(t)}var ct=new Set,ut=0;function st(){var t=H;do{for(;ut<J.length;){var n=J[ut];ut++,F(n),lt(n.$$)}for(F(null),J.length=0,ut=0;Q.length;)Q.pop()();for(var e=0;e<tt.length;e+=1){var o=tt[e];ct.has(o)||(ct.add(o),o())}tt.length=0}while(J.length);for(;nt.length;)nt.pop()();ot=!1,ct.clear(),F(t)}function lt(t){if(null!==t.fragment){t.update(),d(t.before_update);var n=t.dirty;t.dirty=[-1],t.fragment&&t.fragment.p(t.ctx,n),t.after_update.forEach(it)}}var ft,dt=new Set;function vt(){ft={r:0,c:[],p:ft}}function ht(){ft.r||d(ft.c),ft=ft.p}function pt(t,n){t&&t.i&&(dt.delete(t),t.i(n))}function gt(t,n,e,o){if(t&&t.o){if(dt.has(t))return;dt.add(t),ft.c.push((function(){dt.delete(t),o&&(e&&t.d(1),o())})),t.o(n)}}var mt="undefined"!=typeof window?window:"undefined"!=typeof globalThis?globalThis:global;function _t(t,n){gt(t,1,1,(function(){n.delete(t.key)}))}function bt(t,n,e,o,r,i,a,c,u,s,l,f){for(var d=t.length,v=i.length,h=d,p={};h--;)p[t[h].key]=h;var g=[],m=new Map,_=new Map;for(h=v;h--;){var b=f(r,i,h),y=e(b),w=a.get(y);w?o&&w.p(b,n):(w=s(y,b)).c(),m.set(y,g[h]=w),y in p&&_.set(y,Math.abs(h-p[y]))}var E=new Set,L=new Set;function T(t){pt(t,1),t.m(c,l),a.set(t.key,t),l=t.first,v--}for(;d&&v;){var x=g[v-1],C=t[d-1],O=x.key,I=C.key;x===C?(l=x.first,d--,v--):m.has(I)?!a.has(O)||E.has(O)?T(x):L.has(I)?d--:_.get(O)>_.get(I)?(L.add(O),T(x)):(E.add(I),d--):(u(C,a),d--)}for(;d--;){var D=t[d];m.has(D.key)||u(D,a)}for(;v;)T(g[v-1]);return g}new Set(["allowfullscreen","allowpaymentrequest","async","autofocus","autoplay","checked","controls","default","defer","disabled","formnovalidate","hidden","ismap","loop","multiple","muted","nomodule","novalidate","open","playsinline","readonly","required","reversed","selected"]);function yt(t,n,e){var o=t.$$.props[n];void 0!==o&&(t.$$.bound[o]=e,e(t.$$.ctx[o]))}function wt(t){t&&t.c()}function Et(t,n,e,o){var r=t.$$,i=r.fragment,a=r.on_mount,c=r.on_destroy,u=r.after_update;i&&i.m(n,e),o||it((function(){var n=a.map(l).filter(v);c?c.push.apply(c,n):d(n),t.$$.on_mount=[]})),u.forEach(it)}function Lt(t,n){var e=t.$$;null!==e.fragment&&(d(e.on_destroy),e.fragment&&e.fragment.d(n),e.on_destroy=e.fragment=null,e.ctx=[])}function Tt(t,n){-1===t.$$.dirty[0]&&(J.push(t),rt(),t.$$.dirty.fill(0)),t.$$.dirty[n/31|0]|=1<<n%31}function xt(t,n,e,o,r,i,a,c){void 0===c&&(c=[-1]);var u=H;F(t);var l=t.$$={fragment:null,ctx:null,props:i,update:s,not_equal:r,bound:f(),on_mount:[],on_destroy:[],on_disconnect:[],before_update:[],after_update:[],context:new Map(n.context||(u?u.$$.context:[])),callbacks:f(),dirty:c,skip_bound:!1,root:n.target||u.$$.root};a&&a(l.root);var v,h=!1;if(l.ctx=e?e(t,n.props||{},(function(n,e){var o=!(arguments.length<=2)&&arguments.length-2?arguments.length<=2?void 0:arguments[2]:e;return l.ctx&&r(l.ctx[n],l.ctx[n]=o)&&(!l.skip_bound&&l.bound[n]&&l.bound[n](o),h&&Tt(t,n)),e})):[],l.update(),h=!0,d(l.before_update),l.fragment=!!o&&o(l.ctx),n.target){if(n.hydrate){!0;var p=(v=n.target,Array.from(v.childNodes));l.fragment&&l.fragment.l(p),p.forEach(D)}else l.fragment&&l.fragment.c();n.intro&&pt(t.$$.fragment),Et(t,n.target,n.anchor,n.customElement),!1,st()}F(u)}"function"==typeof HTMLElement&&HTMLElement;var Ct=function(){function t(){}var n=t.prototype;return n.$destroy=function(){Lt(this,1),this.$destroy=s},n.$on=function(t,n){var e=this.$$.callbacks[t]||(this.$$.callbacks[t]=[]);return e.push(n),function(){var t=e.indexOf(n);-1!==t&&e.splice(t,1)}},n.$set=function(t){this.$$set&&!g(t)&&(this.$$.skip_bound=!0,this.$$set(t),this.$$.skip_bound=!1)},t}()},3313:function(t,n,e){"use strict";e.d(n,{U2:function(){return o.$XI},fZ:function(){return c}});var o=e(2942);function r(t,n){var e="undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(e)return(e=e.call(t)).next.bind(e);if(Array.isArray(t)||(e=function(t,n){if(!t)return;if("string"==typeof t)return i(t,n);var e=Object.prototype.toString.call(t).slice(8,-1);"Object"===e&&t.constructor&&(e=t.constructor.name);if("Map"===e||"Set"===e)return Array.from(t);if("Arguments"===e||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(e))return i(t,n)}(t))||n&&t&&"number"==typeof t.length){e&&(t=e);var o=0;return function(){return o>=t.length?{done:!0}:{done:!1,value:t[o++]}}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}function i(t,n){(null==n||n>t.length)&&(n=t.length);for(var e=0,o=new Array(n);e<n;e++)o[e]=t[e];return o}var a=[];function c(t,n){var e;void 0===n&&(n=o.ZTd);var i=new Set;function c(n){if((0,o.N8)(t,n)&&(t=n,e)){for(var c,u=!a.length,s=r(i);!(c=s()).done;){var l=c.value;l[1](),a.push(l,t)}if(u){for(var f=0;f<a.length;f+=2)a[f][0](a[f+1]);a.length=0}}}return{set:c,update:function(n){c(n(t))},subscribe:function(r,a){void 0===a&&(a=o.ZTd);var u=[r,a];return i.add(u),1===i.size&&(e=n(c)||o.ZTd),r(t),function(){i.delete(u),0===i.size&&(e(),e=null)}}}}}},__webpack_module_cache__={};function __webpack_require__(t){var n=__webpack_module_cache__[t];if(void 0!==n)return n.exports;var e=__webpack_module_cache__[t]={id:t,exports:{}};return __webpack_modules__[t](e,e.exports,__webpack_require__),e.exports}__webpack_require__.n=function(t){var n=t&&t.__esModule?function(){return t.default}:function(){return t};return __webpack_require__.d(n,{a:n}),n},__webpack_require__.d=function(t,n){for(var e in n)__webpack_require__.o(n,e)&&!__webpack_require__.o(t,e)&&Object.defineProperty(t,e,{enumerable:!0,get:n[e]})},__webpack_require__.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(t){if("object"==typeof window)return window}}(),__webpack_require__.o=function(t,n){return Object.prototype.hasOwnProperty.call(t,n)};var __webpack_exports__={};return function(){"use strict";__webpack_require__.d(__webpack_exports__,{default:function(){return Rr}});__webpack_require__(5441),__webpack_require__(8765);var t=__webpack_require__(4296),n=__webpack_require__(5103),e={one:function(t,n){void 0===n&&(n=document);try{return n.querySelector(t)||void 0}catch(t){return}},all:function(t,n){void 0===n&&(n=document);try{var e=n.querySelectorAll(t);return[].slice.call(e)}catch(t){return[]}},addClass:function(t,e){if(t)for(var o=(0,n.kJ)(t)?t:[t],r=0;r<o.length;r++){var i=(o[r].className||"").split(" ");i.indexOf(e)>-1||(i.push(e),o[r].className=i.join(" "))}},removeClass:function(t,e){if(t)for(var o=(0,n.kJ)(t)?t:[t],r=0;r<o.length;r++){for(var i=o[r].className.split(" "),a=0;a<i.length;a++)i[a]==e&&(i[a]="");o[r].className=i.join(" ").trim()}},hasClass:function(t,n){return!(!t||!t.classList)&&t.classList.contains(n)},bind:function(t,e,o,r){(void 0===r&&(r=!1),t)&&((0,n.kJ)(t)?t:[t]).forEach((function(t){t.addEventListener(e,o,!!r)}))},delegate:function(t,n,o,r){t&&t.addEventListener(n,(function(n){var i=e.all(o,t);if(i)t:for(var a=0;a<i.length;a++)for(var c=n.target;c;){if(c==i[a]){r.call(c,n,c);break t}if((c=c.parentNode)==t)break}}),!1)},removeChildren:function(t){for(;t.firstChild;)t.removeChild(t.lastChild);return t}},o=e,r=__webpack_require__(6464),i=__webpack_require__(6881),a=__webpack_require__(2942),c=__webpack_require__(7003),u=__webpack_require__(3379),s=__webpack_require__.n(u),l=__webpack_require__(7795),f=__webpack_require__.n(l),d=__webpack_require__(569),v=__webpack_require__.n(d),h=__webpack_require__(3565),p=__webpack_require__.n(h),g=__webpack_require__(9216),m=__webpack_require__.n(g),_=__webpack_require__(4589),b=__webpack_require__.n(_),y=__webpack_require__(7558),w={};y.Z&&y.Z.locals&&(w.locals=y.Z.locals);var E,L=0,T={};T.styleTagTransform=b(),T.setAttributes=p(),T.insert=v().bind(null,"head"),T.domAPI=f(),T.insertStyleElement=m(),w.use=function(t){return T.options=t||{},L++||(E=s()(y.Z,T)),w},w.unuse=function(){L>0&&!--L&&(E(),E=null)};var x=w;function C(t){var n,e,o,r;return{c:function(){n=(0,a.bGB)("div"),e=(0,a.fLW)("vConsole"),(0,a.Ljt)(n,"class","vc-switch"),(0,a.czc)(n,"right",t[2].x+"px"),(0,a.czc)(n,"bottom",t[2].y+"px"),(0,a.czc)(n,"display",t[0]?"block":"none")},m:function(i,c){(0,a.$Tr)(i,n,c),(0,a.R3I)(n,e),t[8](n),o||(r=[(0,a.oLt)(n,"touchstart",t[3],{passive:!1}),(0,a.oLt)(n,"touchend",t[4],{passive:!1}),(0,a.oLt)(n,"touchmove",t[5],{passive:!1}),(0,a.oLt)(n,"click",t[7])],o=!0)},p:function(t,e){var o=e[0];4&o&&(0,a.czc)(n,"right",t[2].x+"px"),4&o&&(0,a.czc)(n,"bottom",t[2].y+"px"),1&o&&(0,a.czc)(n,"display",t[0]?"block":"none")},i:a.ZTd,o:a.ZTd,d:function(e){e&&(0,a.ogt)(n),t[8](null),o=!1,(0,a.j7q)(r)}}}function O(t,e,o){var r,i=e.show,u=void 0===i||i,s=e.position,l=void 0===s?{x:0,y:0}:s,f={hasMoved:!1,x:0,y:0,startX:0,startY:0,endX:0,endY:0},d={x:0,y:0};(0,c.H3)((function(){x.use()})),(0,c.ev)((function(){x.unuse()}));var v=function(t,e){var r=h(t,e);t=r[0],e=r[1],f.x=t,f.y=e,o(2,d.x=t,d),o(2,d.y=e,d),n.po("switch_x",t+""),n.po("switch_y",e+"")},h=function(t,n){var e=Math.max(document.documentElement.offsetWidth,window.innerWidth),o=Math.max(document.documentElement.offsetHeight,window.innerHeight);return t+r.offsetWidth>e&&(t=e-r.offsetWidth),n+r.offsetHeight>o&&(n=o-r.offsetHeight),t<0&&(t=0),n<20&&(n=20),[t,n]};return t.$$set=function(t){"show"in t&&o(0,u=t.show),"position"in t&&o(6,l=t.position)},t.$$.update=function(){66&t.$$.dirty&&r&&v(l.x,l.y)},[u,r,d,function(t){f.startX=t.touches[0].pageX,f.startY=t.touches[0].pageY,f.hasMoved=!1},function(t){f.hasMoved&&(f.startX=0,f.startY=0,f.hasMoved=!1,v(f.endX,f.endY))},function(t){if(!(t.touches.length<=0)){var n=t.touches[0].pageX-f.startX,e=t.touches[0].pageY-f.startY,r=Math.floor(f.x-n),i=Math.floor(f.y-e),a=h(r,i);r=a[0],i=a[1],o(2,d.x=r,d),o(2,d.y=i,d),f.endX=r,f.endY=i,f.hasMoved=!0,t.preventDefault()}},l,function(n){a.cKT.call(this,t,n)},function(t){a.VnY[t?"unshift":"push"]((function(){o(1,r=t)}))}]}var I=function(n){function e(t){var e;return e=n.call(this)||this,(0,a.S1n)((0,r.Z)(e),t,O,C,a.N8,{show:0,position:6}),e}return(0,i.Z)(e,n),(0,t.Z)(e,[{key:"show",get:function(){return this.$$.ctx[0]},set:function(t){this.$$set({show:t}),(0,a.yl1)()}},{key:"position",get:function(){return this.$$.ctx[6]},set:function(t){this.$$set({position:t}),(0,a.yl1)()}}]),e}(a.f_C),D=I,R=__webpack_require__(4687),$=__webpack_require__(3283),k={};$.Z&&$.Z.locals&&(k.locals=$.Z.locals);var P,M=0,S={};S.styleTagTransform=b(),S.setAttributes=p(),S.insert=v().bind(null,"head"),S.domAPI=f(),S.insertStyleElement=m(),k.use=function(t){return S.options=t||{},M++||(P=s()($.Z,S)),k},k.unuse=function(){M>0&&!--M&&(P(),P=null)};var j=k;function B(t,n,e){var o=t.slice();return o[39]=n[e][0],o[40]=n[e][1],o}function A(t,n,e){var o=t.slice();return o[43]=n[e],o[45]=e,o}function U(t,n,e){var o=t.slice();return o[39]=n[e][0],o[40]=n[e][1],o}function G(t,n,e){var o=t.slice();return o[39]=n[e][0],o[40]=n[e][1],o}function N(t,n,e){var o=t.slice();return o[43]=n[e],o[45]=e,o}function V(t,n,e){var o=t.slice();return o[39]=n[e][0],o[40]=n[e][1],o}function W(t){var n,e,o,r,i,c=t[40].name+"";function u(){return t[25](t[40])}return{c:function(){n=(0,a.bGB)("a"),e=(0,a.fLW)(c),(0,a.Ljt)(n,"class","vc-tab"),(0,a.Ljt)(n,"id",o="__vc_tab_"+t[40].id),(0,a.VHj)(n,"vc-actived",t[40].id===t[2])},m:function(t,o){(0,a.$Tr)(t,n,o),(0,a.R3I)(n,e),r||(i=(0,a.oLt)(n,"click",u),r=!0)},p:function(r,i){t=r,8&i[0]&&c!==(c=t[40].name+"")&&(0,a.rTO)(e,c),8&i[0]&&o!==(o="__vc_tab_"+t[40].id)&&(0,a.Ljt)(n,"id",o),12&i[0]&&(0,a.VHj)(n,"vc-actived",t[40].id===t[2])},d:function(t){t&&(0,a.ogt)(n),r=!1,i()}}}function K(t){var n,e=t[40].hasTabPanel&&W(t);return{c:function(){e&&e.c(),n=(0,a.cSb)()},m:function(t,o){e&&e.m(t,o),(0,a.$Tr)(t,n,o)},p:function(t,o){t[40].hasTabPanel?e?e.p(t,o):((e=W(t)).c(),e.m(n.parentNode,n)):e&&(e.d(1),e=null)},d:function(t){e&&e.d(t),t&&(0,a.ogt)(n)}}}function H(t){var n,e,o,r,i,c=t[43].name+"";function u(){for(var n,e=arguments.length,o=new Array(e),r=0;r<e;r++)o[r]=arguments[r];return(n=t)[26].apply(n,[t[40],t[45]].concat(o))}return{c:function(){n=(0,a.bGB)("i"),e=(0,a.fLW)(c),(0,a.Ljt)(n,"class",o="vc-toptab vc-topbar-"+t[40].id+" "+t[43].className),(0,a.VHj)(n,"vc-toggle",t[40].id===t[2]),(0,a.VHj)(n,"vc-actived",t[43].actived)},m:function(t,o){(0,a.$Tr)(t,n,o),(0,a.R3I)(n,e),r||(i=(0,a.oLt)(n,"click",u),r=!0)},p:function(r,i){t=r,8&i[0]&&c!==(c=t[43].name+"")&&(0,a.rTO)(e,c),8&i[0]&&o!==(o="vc-toptab vc-topbar-"+t[40].id+" "+t[43].className)&&(0,a.Ljt)(n,"class",o),12&i[0]&&(0,a.VHj)(n,"vc-toggle",t[40].id===t[2]),8&i[0]&&(0,a.VHj)(n,"vc-actived",t[43].actived)},d:function(t){t&&(0,a.ogt)(n),r=!1,i()}}}function F(t){for(var n,e=t[40].topbarList,o=[],r=0;r<e.length;r+=1)o[r]=H(N(t,e,r));return{c:function(){for(var t=0;t<o.length;t+=1)o[t].c();n=(0,a.cSb)()},m:function(t,e){for(var r=0;r<o.length;r+=1)o[r].m(t,e);(0,a.$Tr)(t,n,e)},p:function(t,r){if(8204&r[0]){var i;for(e=t[40].topbarList,i=0;i<e.length;i+=1){var a=N(t,e,i);o[i]?o[i].p(a,r):(o[i]=H(a),o[i].c(),o[i].m(n.parentNode,n))}for(;i<o.length;i+=1)o[i].d(1);o.length=e.length}},d:function(t){(0,a.RMB)(o,t),t&&(0,a.ogt)(n)}}}function q(t){var n,e;return{c:function(){var o;n=(0,a.bGB)("div"),(0,a.Ljt)(n,"id",e="__vc_plug_"+t[40].id),(0,a.Ljt)(n,"class","vc-plugin-box"),(0,a.VHj)(n,"vc-fixed-height",null==(o=t[40].tabOptions)?void 0:o.fixedHeight),(0,a.VHj)(n,"vc-actived",t[40].id===t[2])},m:function(t,e){(0,a.$Tr)(t,n,e)},p:function(t,o){var r;(8&o[0]&&e!==(e="__vc_plug_"+t[40].id)&&(0,a.Ljt)(n,"id",e),8&o[0])&&(0,a.VHj)(n,"vc-fixed-height",null==(r=t[40].tabOptions)?void 0:r.fixedHeight);12&o[0]&&(0,a.VHj)(n,"vc-actived",t[40].id===t[2])},d:function(t){t&&(0,a.ogt)(n)}}}function Z(t){var n,e,o,r,i,c=t[43].name+"";function u(){for(var n,e=arguments.length,o=new Array(e),r=0;r<e;r++)o[r]=arguments[r];return(n=t)[28].apply(n,[t[40],t[45]].concat(o))}return{c:function(){n=(0,a.bGB)("i"),e=(0,a.fLW)(c),(0,a.Ljt)(n,"class",o="vc-tool vc-tool-"+t[40].id),(0,a.VHj)(n,"vc-global-tool",t[43].global),(0,a.VHj)(n,"vc-toggle",t[40].id===t[2])},m:function(t,o){(0,a.$Tr)(t,n,o),(0,a.R3I)(n,e),r||(i=(0,a.oLt)(n,"click",u),r=!0)},p:function(r,i){t=r,8&i[0]&&c!==(c=t[43].name+"")&&(0,a.rTO)(e,c),8&i[0]&&o!==(o="vc-tool vc-tool-"+t[40].id)&&(0,a.Ljt)(n,"class",o),8&i[0]&&(0,a.VHj)(n,"vc-global-tool",t[43].global),12&i[0]&&(0,a.VHj)(n,"vc-toggle",t[40].id===t[2])},d:function(t){t&&(0,a.ogt)(n),r=!1,i()}}}function X(t){for(var n,e=t[40].toolbarList,o=[],r=0;r<e.length;r+=1)o[r]=Z(A(t,e,r));return{c:function(){for(var t=0;t<o.length;t+=1)o[t].c();n=(0,a.cSb)()},m:function(t,e){for(var r=0;r<o.length;r+=1)o[r].m(t,e);(0,a.$Tr)(t,n,e)},p:function(t,r){if(16396&r[0]){var i;for(e=t[40].toolbarList,i=0;i<e.length;i+=1){var a=A(t,e,i);o[i]?o[i].p(a,r):(o[i]=Z(a),o[i].c(),o[i].m(n.parentNode,n))}for(;i<o.length;i+=1)o[i].d(1);o.length=e.length}},d:function(t){(0,a.RMB)(o,t),t&&(0,a.ogt)(n)}}}function z(t){var n,e,o,r,i,c,u,s,l,f,d,v,h,p,g,m,_,b,y,w,E;function L(n){t[23](n)}function T(n){t[24](n)}var x={};void 0!==t[0]&&(x.show=t[0]),void 0!==t[1]&&(x.position=t[1]),e=new D({props:x}),a.VnY.push((function(){return(0,a.akz)(e,"show",L)})),a.VnY.push((function(){return(0,a.akz)(e,"position",T)})),e.$on("click",t[10]);for(var C=Object.entries(t[3]),O=[],I=0;I<C.length;I+=1)O[I]=K(V(t,C,I));for(var R=Object.entries(t[3]),$=[],k=0;k<R.length;k+=1)$[k]=F(G(t,R,k));for(var P=Object.entries(t[3]),M=[],S=0;S<P.length;S+=1)M[S]=q(U(t,P,S));for(var j=Object.entries(t[3]),A=[],N=0;N<j.length;N+=1)A[N]=X(B(t,j,N));return{c:function(){var o,r;n=(0,a.bGB)("div"),(0,a.YCL)(e.$$.fragment),i=(0,a.DhX)(),c=(0,a.bGB)("div"),u=(0,a.DhX)(),s=(0,a.bGB)("div"),l=(0,a.bGB)("div");for(var y=0;y<O.length;y+=1)O[y].c();f=(0,a.DhX)(),d=(0,a.bGB)("div");for(var w=0;w<$.length;w+=1)$[w].c();v=(0,a.DhX)(),h=(0,a.bGB)("div");for(var E=0;E<M.length;E+=1)M[E].c();p=(0,a.DhX)(),g=(0,a.bGB)("div");for(var L=0;L<A.length;L+=1)A[L].c();m=(0,a.DhX)(),(_=(0,a.bGB)("i")).textContent="Hide",(0,a.Ljt)(c,"class","vc-mask"),(0,a.czc)(c,"display",t[9]?"block":"none"),(0,a.Ljt)(l,"class","vc-tabbar"),(0,a.Ljt)(d,"class","vc-topbar"),(0,a.Ljt)(h,"class","vc-content"),(0,a.VHj)(h,"vc-has-topbar",(null==(o=t[3][t[2]])||null==(r=o.topbarList)?void 0:r.length)>0),(0,a.Ljt)(_,"class","vc-tool vc-global-tool vc-tool-last vc-hide"),(0,a.Ljt)(g,"class","vc-toolbar"),(0,a.Ljt)(s,"class","vc-panel"),(0,a.czc)(s,"display",t[8]?"block":"none"),(0,a.Ljt)(n,"id","__vconsole"),(0,a.Ljt)(n,"style",b=t[6]?"font-size:"+t[6]+";":""),(0,a.Ljt)(n,"data-theme",t[5]),(0,a.VHj)(n,"vc-toggle",t[7])},m:function(o,r){(0,a.$Tr)(o,n,r),(0,a.yef)(e,n,null),(0,a.R3I)(n,i),(0,a.R3I)(n,c),(0,a.R3I)(n,u),(0,a.R3I)(n,s),(0,a.R3I)(s,l);for(var b=0;b<O.length;b+=1)O[b].m(l,null);(0,a.R3I)(s,f),(0,a.R3I)(s,d);for(var L=0;L<$.length;L+=1)$[L].m(d,null);(0,a.R3I)(s,v),(0,a.R3I)(s,h);for(var T=0;T<M.length;T+=1)M[T].m(h,null);t[27](h),(0,a.R3I)(s,p),(0,a.R3I)(s,g);for(var x=0;x<A.length;x+=1)A[x].m(g,null);(0,a.R3I)(g,m),(0,a.R3I)(g,_),y=!0,w||(E=[(0,a.oLt)(c,"click",t[11]),(0,a.oLt)(h,"touchstart",t[15]),(0,a.oLt)(h,"touchmove",t[16]),(0,a.oLt)(h,"touchend",t[17]),(0,a.oLt)(h,"scroll",t[18]),(0,a.oLt)(_,"click",t[11]),(0,a.oLt)(n,"touchstart",t[19].touchStart,{passive:!1,capture:!0}),(0,a.oLt)(n,"touchmove",t[19].touchMove,{passive:!1,capture:!0}),(0,a.oLt)(n,"touchend",t[19].touchEnd,{passive:!1,capture:!0})],w=!0)},p:function(t,i){var u,f,v={};if(!o&&1&i[0]&&(o=!0,v.show=t[0],(0,a.hjT)((function(){return o=!1}))),!r&&2&i[0]&&(r=!0,v.position=t[1],(0,a.hjT)((function(){return r=!1}))),e.$set(v),(!y||512&i[0])&&(0,a.czc)(c,"display",t[9]?"block":"none"),4108&i[0]){var p;for(C=Object.entries(t[3]),p=0;p<C.length;p+=1){var _=V(t,C,p);O[p]?O[p].p(_,i):(O[p]=K(_),O[p].c(),O[p].m(l,null))}for(;p<O.length;p+=1)O[p].d(1);O.length=C.length}if(8204&i[0]){var w;for(R=Object.entries(t[3]),w=0;w<R.length;w+=1){var E=G(t,R,w);$[w]?$[w].p(E,i):($[w]=F(E),$[w].c(),$[w].m(d,null))}for(;w<$.length;w+=1)$[w].d(1);$.length=R.length}if(12&i[0]){var L;for(P=Object.entries(t[3]),L=0;L<P.length;L+=1){var T=U(t,P,L);M[L]?M[L].p(T,i):(M[L]=q(T),M[L].c(),M[L].m(h,null))}for(;L<M.length;L+=1)M[L].d(1);M.length=P.length}12&i[0]&&(0,a.VHj)(h,"vc-has-topbar",(null==(u=t[3][t[2]])||null==(f=u.topbarList)?void 0:f.length)>0);if(16396&i[0]){var x;for(j=Object.entries(t[3]),x=0;x<j.length;x+=1){var I=B(t,j,x);A[x]?A[x].p(I,i):(A[x]=X(I),A[x].c(),A[x].m(g,m))}for(;x<A.length;x+=1)A[x].d(1);A.length=j.length}(!y||256&i[0])&&(0,a.czc)(s,"display",t[8]?"block":"none"),(!y||64&i[0]&&b!==(b=t[6]?"font-size:"+t[6]+";":""))&&(0,a.Ljt)(n,"style",b),(!y||32&i[0])&&(0,a.Ljt)(n,"data-theme",t[5]),128&i[0]&&(0,a.VHj)(n,"vc-toggle",t[7])},i:function(t){y||((0,a.Ui)(e.$$.fragment,t),y=!0)},o:function(t){(0,a.etI)(e.$$.fragment,t),y=!1},d:function(o){o&&(0,a.ogt)(n),(0,a.vpE)(e),(0,a.RMB)(O,o),(0,a.RMB)($,o),(0,a.RMB)(M,o),t[27](null),(0,a.RMB)(A,o),w=!1,(0,a.j7q)(E)}}}function Y(t,e,o){var r,i=e.theme,u=void 0===i?"":i,s=e.disableScrolling,l=void 0!==s&&s,f=e.show,d=void 0!==f&&f,v=e.showSwitchButton,h=void 0===v||v,p=e.switchButtonPosition,g=void 0===p?{x:0,y:0}:p,m=e.activedPluginId,_=void 0===m?"":m,b=e.pluginList,y=void 0===b?{}:b,w=e.divContent,E=(0,c.x)(),L=!1,T="",x=!1,C=!1,O=!1,I=!0,D=0,$=null,k={};(0,c.H3)((function(){var t=document.querySelectorAll('[name="viewport"]');if(t&&t[0]){var n=(t[t.length-1].getAttribute("content")||"").match(/initial\-scale\=\d+(\.\d+)?/),e=n?parseFloat(n[0].split("=")[1]):1;1!==e&&o(6,T=Math.floor(1/e*13)+"px")}j.use&&j.use(),r=R.x.subscribe((function(t){d&&D!==t.updateTime&&(D=t.updateTime,P())}))})),(0,c.ev)((function(){j.unuse&&j.unuse(),r&&r()}));var P=function(){!l&&I&&w&&o(4,w.scrollTop=w.scrollHeight-w.offsetHeight,w)},M=function(t){t!==_&&(o(2,_=t),E("changePanel",{pluginId:t}),setTimeout((function(){w&&o(4,w.scrollTop=k[_]||0,w)}),0))},S=function(t,e,r){var i=y[e].topbarList[r],a=!0;if(n.mf(i.onClick)&&(a=i.onClick.call(t.target,t,i.data)),!1===a);else{for(var c=0;c<y[e].topbarList.length;c++)o(3,y[e].topbarList[c].actived=r===c,y);o(3,y)}},B=function(t,e,o){var r=y[e].toolbarList[o];n.mf(r.onClick)&&r.onClick.call(t.target,t,r.data)},A={tapTime:700,tapBoundary:10,lastTouchStartTime:0,touchstartX:0,touchstartY:0,touchHasMoved:!1,targetElem:null},U={touchStart:function(t){if(0===A.lastTouchStartTime){var n=t.targetTouches[0];A.touchstartX=n.pageX,A.touchstartY=n.pageY,A.lastTouchStartTime=t.timeStamp,A.targetElem=t.target.nodeType===Node.TEXT_NODE?t.target.parentNode:t.target}},touchMove:function(t){var n=t.changedTouches[0];(Math.abs(n.pageX-A.touchstartX)>A.tapBoundary||Math.abs(n.pageY-A.touchstartY)>A.tapBoundary)&&(A.touchHasMoved=!0)},touchEnd:function(t){if(!1===A.touchHasMoved&&t.timeStamp-A.lastTouchStartTime<A.tapTime&&null!=A.targetElem){var n=!1;switch(A.targetElem.tagName.toLowerCase()){case"textarea":n=!0;break;case"select":n=!A.targetElem.disabled&&!A.targetElem.readOnly;break;case"input":switch(A.targetElem.type){case"button":case"checkbox":case"file":case"image":case"radio":case"submit":n=!1;break;default:n=!A.targetElem.disabled&&!A.targetElem.readOnly}}n?A.targetElem.focus():t.preventDefault();var e=t.changedTouches[0],o=new MouseEvent("click",{bubbles:!0,cancelable:!0,view:window,screenX:e.screenX,screenY:e.screenY,clientX:e.clientX,clientY:e.clientY});A.targetElem.dispatchEvent(o)}A.lastTouchStartTime=0,A.touchHasMoved=!1,A.targetElem=null}};return t.$$set=function(t){"theme"in t&&o(5,u=t.theme),"disableScrolling"in t&&o(20,l=t.disableScrolling),"show"in t&&o(21,d=t.show),"showSwitchButton"in t&&o(0,h=t.showSwitchButton),"switchButtonPosition"in t&&o(1,g=t.switchButtonPosition),"activedPluginId"in t&&o(2,_=t.activedPluginId),"pluginList"in t&&o(3,y=t.pluginList),"divContent"in t&&o(4,w=t.divContent)},t.$$.update=function(){6291456&t.$$.dirty[0]&&(!0===d?(o(8,C=!0),o(9,O=!0),$&&clearTimeout($),o(22,$=setTimeout((function(){o(7,x=!0),P()}),10))):(o(7,x=!1),$&&clearTimeout($),o(22,$=setTimeout((function(){o(8,C=!1),o(9,O=!1)}),330))))},[h,g,_,y,w,u,T,x,C,O,function(t){E("show",{show:!0})},function(t){E("show",{show:!1})},M,S,B,function(t){if(!("INPUT"===t.target.tagName||"TEXTAREA"===t.target.tagName)){var n=!1;if("function"==typeof window.getComputedStyle){var e=window.getComputedStyle(t.target);"auto"!==e.overflow&&"scroll"!==e.overflow||(n=!0)}if(!n){var r=w.scrollTop,i=w.scrollHeight,a=r+w.offsetHeight;0===r?(o(4,w.scrollTop=1,w),0===w.scrollTop&&(L=!0)):a===i&&(o(4,w.scrollTop=r-1,w),w.scrollTop===r&&(L=!0))}}},function(t){L&&t.preventDefault()},function(t){L=!1},function(t){d&&(I=w.scrollTop+w.offsetHeight>=w.scrollHeight-50,k[_]=w.scrollTop)},U,l,d,$,function(t){o(0,h=t)},function(t){o(1,g=t)},function(t){return M(t.id)},function(t,n,e){return S(e,t.id,n)},function(t){a.VnY[t?"unshift":"push"]((function(){o(4,w=t)}))},function(t,n,e){return B(e,t.id,n)}]}var J=function(n){function e(t){var e;return e=n.call(this)||this,(0,a.S1n)((0,r.Z)(e),t,Y,z,a.N8,{theme:5,disableScrolling:20,show:21,showSwitchButton:0,switchButtonPosition:1,activedPluginId:2,pluginList:3,divContent:4},null,[-1,-1]),e}return(0,i.Z)(e,n),(0,t.Z)(e,[{key:"theme",get:function(){return this.$$.ctx[5]},set:function(t){this.$$set({theme:t}),(0,a.yl1)()}},{key:"disableScrolling",get:function(){return this.$$.ctx[20]},set:function(t){this.$$set({disableScrolling:t}),(0,a.yl1)()}},{key:"show",get:function(){return this.$$.ctx[21]},set:function(t){this.$$set({show:t}),(0,a.yl1)()}},{key:"showSwitchButton",get:function(){return this.$$.ctx[0]},set:function(t){this.$$set({showSwitchButton:t}),(0,a.yl1)()}},{key:"switchButtonPosition",get:function(){return this.$$.ctx[1]},set:function(t){this.$$set({switchButtonPosition:t}),(0,a.yl1)()}},{key:"activedPluginId",get:function(){return this.$$.ctx[2]},set:function(t){this.$$set({activedPluginId:t}),(0,a.yl1)()}},{key:"pluginList",get:function(){return this.$$.ctx[3]},set:function(t){this.$$set({pluginList:t}),(0,a.yl1)()}},{key:"divContent",get:function(){return this.$$.ctx[4]},set:function(t){this.$$set({divContent:t}),(0,a.yl1)()}}]),e}(a.f_C),Q=J,tt=function(){function e(t,n){void 0===n&&(n="newPlugin"),this.isReady=!1,this.eventMap=new Map,this.exporter=void 0,this._id=void 0,this._name=void 0,this._vConsole=void 0,this.id=t,this.name=n,this.isReady=!1}var o=e.prototype;return o.on=function(t,n){return this.eventMap.set(t,n),this},o.onRemove=function(){this.unbindExporter()},o.trigger=function(t,n){var e=this.eventMap.get(t);if("function"==typeof e)e.call(this,n);else{var o="on"+t.charAt(0).toUpperCase()+t.slice(1);"function"==typeof this[o]&&this[o].call(this,n)}return this},o.bindExporter=function(){if(this._vConsole&&this.exporter){var t="default"===this.id?"log":this.id;this._vConsole[t]=this.exporter}},o.unbindExporter=function(){var t="default"===this.id?"log":this.id;this._vConsole&&this._vConsole[t]&&(this._vConsole[t]=void 0)},o.getUniqueID=function(t){return void 0===t&&(t=""),(0,n.QI)(t)},(0,t.Z)(e,[{key:"id",get:function(){return this._id},set:function(t){if("string"!=typeof t)throw"[vConsole] Plugin ID must be a string.";if(!t)throw"[vConsole] Plugin ID cannot be empty.";this._id=t.toLowerCase()}},{key:"name",get:function(){return this._name},set:function(t){if("string"!=typeof t)throw"[vConsole] Plugin name must be a string.";if(!t)throw"[vConsole] Plugin name cannot be empty.";this._name=t}},{key:"vConsole",get:function(){return this._vConsole||void 0},set:function(t){if(!t)throw"[vConsole] vConsole cannot be empty";this._vConsole=t,this.bindExporter()}}]),e}(),nt=function(t){function n(n,e,o,r){var i;return(i=t.call(this,n,e)||this).CompClass=void 0,i.compInstance=void 0,i.initialProps=void 0,i.CompClass=o,i.initialProps=r,i}(0,i.Z)(n,t);var e=n.prototype;return e.onReady=function(){this.isReady=!0},e.onRenderTab=function(t){var n=document.createElement("div"),e=this.compInstance=new this.CompClass({target:n,props:this.initialProps});t(n.firstElementChild,e.options)},e.onRemove=function(){t.prototype.onRemove&&t.prototype.onRemove.call(this),this.compInstance&&this.compInstance.$destroy()},n}(tt),et=__webpack_require__(8665),ot=__webpack_require__(9923);var rt=__webpack_require__(8702);function it(t){var n,e;return(n=new rt.Z({props:{name:t[0]?"success":"copy"}})).$on("click",t[1]),{c:function(){(0,a.YCL)(n.$$.fragment)},m:function(t,o){(0,a.yef)(n,t,o),e=!0},p:function(t,e){var o={};1&e[0]&&(o.name=t[0]?"success":"copy"),n.$set(o)},i:function(t){e||((0,a.Ui)(n.$$.fragment,t),e=!0)},o:function(t){(0,a.etI)(n.$$.fragment,t),e=!1},d:function(t){(0,a.vpE)(n,t)}}}function at(t,e,o){var r=e.content,i=void 0===r?"":r,a=e.handler,c=void 0===a?void 0:a,u={target:document.documentElement},s=!1;return t.$$set=function(t){"content"in t&&o(2,i=t.content),"handler"in t&&o(3,c=t.handler)},[s,function(t){(function(t,n){var e=(void 0===n?{}:n).target,o=void 0===e?document.body:e,r=document.createElement("textarea"),i=document.activeElement;r.value=t,r.setAttribute("readonly",""),r.style.contain="strict",r.style.position="absolute",r.style.left="-9999px",r.style.fontSize="12pt";var a=document.getSelection(),c=!1;a.rangeCount>0&&(c=a.getRangeAt(0)),o.append(r),r.select(),r.selectionStart=0,r.selectionEnd=t.length;var u=!1;try{u=document.execCommand("copy")}catch(t){}r.remove(),c&&(a.removeAllRanges(),a.addRange(c)),i&&i.focus()})(n.mf(c)?c(i)||"":n.Kn(i)||n.kJ(i)?n.hZ(i,{maxDepth:10,keyMaxLen:1e4,pretty:!1,standardJSON:!0}):i,u),o(0,s=!0),setTimeout((function(){o(0,s=!1)}),600)},i,c]}var ct=function(n){function e(t){var e;return e=n.call(this)||this,(0,a.S1n)((0,r.Z)(e),t,at,it,a.N8,{content:2,handler:3}),e}return(0,i.Z)(e,n),(0,t.Z)(e,[{key:"content",get:function(){return this.$$.ctx[2]},set:function(t){this.$$set({content:t}),(0,a.yl1)()}},{key:"handler",get:function(){return this.$$.ctx[3]},set:function(t){this.$$set({handler:t}),(0,a.yl1)()}}]),e}(a.f_C),ut=ct,st=__webpack_require__(845),lt={};st.Z&&st.Z.locals&&(lt.locals=st.Z.locals);var ft,dt=0,vt={};vt.styleTagTransform=b(),vt.setAttributes=p(),vt.insert=v().bind(null,"head"),vt.domAPI=f(),vt.insertStyleElement=m(),lt.use=function(t){return vt.options=t||{},dt++||(ft=s()(st.Z,vt)),lt},lt.unuse=function(){dt>0&&!--dt&&(ft(),ft=null)};var ht=lt;function pt(t){var e,o,r,i=n.rE(t[1])+"";return{c:function(){e=(0,a.bGB)("i"),o=(0,a.fLW)(i),r=(0,a.fLW)(":"),(0,a.Ljt)(e,"class","vc-log-key"),(0,a.VHj)(e,"vc-log-key-symbol","symbol"===t[2]),(0,a.VHj)(e,"vc-log-key-private","private"===t[2])},m:function(t,n){(0,a.$Tr)(t,e,n),(0,a.R3I)(e,o),(0,a.$Tr)(t,r,n)},p:function(t,r){2&r&&i!==(i=n.rE(t[1])+"")&&(0,a.rTO)(o,i),4&r&&(0,a.VHj)(e,"vc-log-key-symbol","symbol"===t[2]),4&r&&(0,a.VHj)(e,"vc-log-key-private","private"===t[2])},d:function(t){t&&(0,a.ogt)(e),t&&(0,a.ogt)(r)}}}function gt(t){var n,e,o,r,i=void 0!==t[1]&&pt(t);return{c:function(){i&&i.c(),n=(0,a.DhX)(),e=(0,a.bGB)("i"),o=(0,a.fLW)(t[3]),(0,a.Ljt)(e,"class",r="vc-log-val vc-log-val-"+t[4]),(0,a.Ljt)(e,"style",t[0]),(0,a.VHj)(e,"vc-log-val-haskey",void 0!==t[1])},m:function(t,r){i&&i.m(t,r),(0,a.$Tr)(t,n,r),(0,a.$Tr)(t,e,r),(0,a.R3I)(e,o)},p:function(t,c){var u=c[0];void 0!==t[1]?i?i.p(t,u):((i=pt(t)).c(),i.m(n.parentNode,n)):i&&(i.d(1),i=null),8&u&&(0,a.rTO)(o,t[3]),16&u&&r!==(r="vc-log-val vc-log-val-"+t[4])&&(0,a.Ljt)(e,"class",r),1&u&&(0,a.Ljt)(e,"style",t[0]),18&u&&(0,a.VHj)(e,"vc-log-val-haskey",void 0!==t[1])},i:a.ZTd,o:a.ZTd,d:function(t){i&&i.d(t),t&&(0,a.ogt)(n),t&&(0,a.ogt)(e)}}}function mt(t,n,e){var o=n.origData,r=n.style,i=void 0===r?"":r,a=n.dataKey,u=void 0===a?void 0:a,s=n.keyType,l=void 0===s?"":s,f="",d="",v=!1;return(0,c.H3)((function(){ht.use()})),(0,c.ev)((function(){ht.unuse()})),t.$$set=function(t){"origData"in t&&e(5,o=t.origData),"style"in t&&e(0,i=t.style),"dataKey"in t&&e(1,u=t.dataKey),"keyType"in t&&e(2,l=t.keyType)},t.$$.update=function(){if(122&t.$$.dirty){e(6,v=void 0!==u);var n=(0,et.LH)(o,v);e(4,d=n.valueType),e(3,f=n.text),v||"string"!==d||e(3,f=f.replace(/\\n/g,"\n").replace(/\\t/g," "))}},[i,u,l,f,d,o,v]}var _t=function(n){function e(t){var e;return e=n.call(this)||this,(0,a.S1n)((0,r.Z)(e),t,mt,gt,a.AqN,{origData:5,style:0,dataKey:1,keyType:2}),e}return(0,i.Z)(e,n),(0,t.Z)(e,[{key:"origData",get:function(){return this.$$.ctx[5]},set:function(t){this.$$set({origData:t}),(0,a.yl1)()}},{key:"style",get:function(){return this.$$.ctx[0]},set:function(t){this.$$set({style:t}),(0,a.yl1)()}},{key:"dataKey",get:function(){return this.$$.ctx[1]},set:function(t){this.$$set({dataKey:t}),(0,a.yl1)()}},{key:"keyType",get:function(){return this.$$.ctx[2]},set:function(t){this.$$set({keyType:t}),(0,a.yl1)()}}]),e}(a.f_C),bt=_t,yt=__webpack_require__(1237),wt={};yt.Z&&yt.Z.locals&&(wt.locals=yt.Z.locals);var Et,Lt=0,Tt={};Tt.styleTagTransform=b(),Tt.setAttributes=p(),Tt.insert=v().bind(null,"head"),Tt.domAPI=f(),Tt.insertStyleElement=m(),wt.use=function(t){return Tt.options=t||{},Lt++||(Et=s()(yt.Z,Tt)),wt},wt.unuse=function(){Lt>0&&!--Lt&&(Et(),Et=null)};var xt=wt;function Ct(t,n,e){var o=t.slice();return o[19]=n[e],o[21]=e,o}function Ot(t,n,e){var o=t.slice();return o[19]=n[e],o}function It(t,n,e){var o=t.slice();return o[19]=n[e],o[21]=e,o}function Dt(t){for(var n,e,o,r,i,c,u,s=[],l=new Map,f=[],d=new Map,v=[],h=new Map,p=t[7],g=function(t){return t[19]},m=0;m<p.length;m+=1){var _=It(t,p,m),b=g(_);l.set(b,s[m]=$t(b,_))}for(var y=t[11]<t[7].length&&kt(t),w=t[9],E=function(t){return t[19]},L=0;L<w.length;L+=1){var T=Ot(t,w,L),x=E(T);d.set(x,f[L]=Pt(x,T))}for(var C=t[8],O=function(t){return t[19]},I=0;I<C.length;I+=1){var D=Ct(t,C,I),R=O(D);h.set(R,v[I]=St(R,D))}var $=t[12]<t[8].length&&jt(t),k=t[10]&&Bt(t);return{c:function(){n=(0,a.bGB)("div");for(var t=0;t<s.length;t+=1)s[t].c();e=(0,a.DhX)(),y&&y.c(),o=(0,a.DhX)();for(var u=0;u<f.length;u+=1)f[u].c();r=(0,a.DhX)();for(var l=0;l<v.length;l+=1)v[l].c();i=(0,a.DhX)(),$&&$.c(),c=(0,a.DhX)(),k&&k.c(),(0,a.Ljt)(n,"class","vc-log-tree-child")},m:function(t,l){(0,a.$Tr)(t,n,l);for(var d=0;d<s.length;d+=1)s[d].m(n,null);(0,a.R3I)(n,e),y&&y.m(n,null),(0,a.R3I)(n,o);for(var h=0;h<f.length;h+=1)f[h].m(n,null);(0,a.R3I)(n,r);for(var p=0;p<v.length;p+=1)v[p].m(n,null);(0,a.R3I)(n,i),$&&$.m(n,null),(0,a.R3I)(n,c),k&&k.m(n,null),u=!0},p:function(t,u){67721&u&&(p=t[7],(0,a.dvw)(),s=(0,a.GQg)(s,u,g,1,t,p,l,n,a.cly,$t,e,It),(0,a.gbL)()),t[11]<t[7].length?y?y.p(t,u):((y=kt(t)).c(),y.m(n,o)):y&&(y.d(1),y=null),66057&u&&(w=t[9],(0,a.dvw)(),f=(0,a.GQg)(f,u,E,1,t,w,d,n,a.cly,Pt,r,Ot),(0,a.gbL)()),69897&u&&(C=t[8],(0,a.dvw)(),v=(0,a.GQg)(v,u,O,1,t,C,h,n,a.cly,St,i,Ct),(0,a.gbL)()),t[12]<t[8].length?$?$.p(t,u):(($=jt(t)).c(),$.m(n,c)):$&&($.d(1),$=null),t[10]?k?(k.p(t,u),1024&u&&(0,a.Ui)(k,1)):((k=Bt(t)).c(),(0,a.Ui)(k,1),k.m(n,null)):k&&((0,a.dvw)(),(0,a.etI)(k,1,1,(function(){k=null})),(0,a.gbL)())},i:function(t){if(!u){for(var n=0;n<p.length;n+=1)(0,a.Ui)(s[n]);for(var e=0;e<w.length;e+=1)(0,a.Ui)(f[e]);for(var o=0;o<C.length;o+=1)(0,a.Ui)(v[o]);(0,a.Ui)(k),u=!0}},o:function(t){for(var n=0;n<s.length;n+=1)(0,a.etI)(s[n]);for(var e=0;e<f.length;e+=1)(0,a.etI)(f[e]);for(var o=0;o<v.length;o+=1)(0,a.etI)(v[o]);(0,a.etI)(k),u=!1},d:function(t){t&&(0,a.ogt)(n);for(var e=0;e<s.length;e+=1)s[e].d();y&&y.d();for(var o=0;o<f.length;o+=1)f[o].d();for(var r=0;r<v.length;r+=1)v[r].d();$&&$.d(),k&&k.d()}}}function Rt(t){var n,e;return n=new Gt({props:{origData:t[16](t[19]),dataKey:t[19],keyPath:t[3]+"."+t[19],toggle:t[0]}}),{c:function(){(0,a.YCL)(n.$$.fragment)},m:function(t,o){(0,a.yef)(n,t,o),e=!0},p:function(t,e){var o={};128&e&&(o.origData=t[16](t[19])),128&e&&(o.dataKey=t[19]),136&e&&(o.keyPath=t[3]+"."+t[19]),1&e&&(o.toggle=t[0]),n.$set(o)},i:function(t){e||((0,a.Ui)(n.$$.fragment,t),e=!0)},o:function(t){(0,a.etI)(n.$$.fragment,t),e=!1},d:function(t){(0,a.vpE)(n,t)}}}function $t(t,n){var e,o,r,i=n[21]<n[11]&&Rt(n);return{key:t,first:null,c:function(){e=(0,a.cSb)(),i&&i.c(),o=(0,a.cSb)(),this.first=e},m:function(t,n){(0,a.$Tr)(t,e,n),i&&i.m(t,n),(0,a.$Tr)(t,o,n),r=!0},p:function(t,e){(n=t)[21]<n[11]?i?(i.p(n,e),2176&e&&(0,a.Ui)(i,1)):((i=Rt(n)).c(),(0,a.Ui)(i,1),i.m(o.parentNode,o)):i&&((0,a.dvw)(),(0,a.etI)(i,1,1,(function(){i=null})),(0,a.gbL)())},i:function(t){r||((0,a.Ui)(i),r=!0)},o:function(t){(0,a.etI)(i),r=!1},d:function(t){t&&(0,a.ogt)(e),i&&i.d(t),t&&(0,a.ogt)(o)}}}function kt(t){var n,e,o,r,i=t[14](t[7].length-t[11])+"";return{c:function(){n=(0,a.bGB)("div"),e=(0,a.fLW)(i),(0,a.Ljt)(n,"class","vc-log-tree-loadmore")},m:function(i,c){(0,a.$Tr)(i,n,c),(0,a.R3I)(n,e),o||(r=(0,a.oLt)(n,"click",t[17]),o=!0)},p:function(t,n){2176&n&&i!==(i=t[14](t[7].length-t[11])+"")&&(0,a.rTO)(e,i)},d:function(t){t&&(0,a.ogt)(n),o=!1,r()}}}function Pt(t,n){var e,o,r;return o=new Gt({props:{origData:n[16](n[19]),dataKey:String(n[19]),keyType:"symbol",keyPath:n[3]+"["+String(n[19])+"]",toggle:n[0]}}),{key:t,first:null,c:function(){e=(0,a.cSb)(),(0,a.YCL)(o.$$.fragment),this.first=e},m:function(t,n){(0,a.$Tr)(t,e,n),(0,a.yef)(o,t,n),r=!0},p:function(t,e){n=t;var r={};512&e&&(r.origData=n[16](n[19])),512&e&&(r.dataKey=String(n[19])),520&e&&(r.keyPath=n[3]+"["+String(n[19])+"]"),1&e&&(r.toggle=n[0]),o.$set(r)},i:function(t){r||((0,a.Ui)(o.$$.fragment,t),r=!0)},o:function(t){(0,a.etI)(o.$$.fragment,t),r=!1},d:function(t){t&&(0,a.ogt)(e),(0,a.vpE)(o,t)}}}function Mt(t){var n,e;return n=new Gt({props:{origData:t[16](t[19]),dataKey:t[19],keyType:"private",keyPath:t[3]+"."+t[19],toggle:t[0]}}),{c:function(){(0,a.YCL)(n.$$.fragment)},m:function(t,o){(0,a.yef)(n,t,o),e=!0},p:function(t,e){var o={};256&e&&(o.origData=t[16](t[19])),256&e&&(o.dataKey=t[19]),264&e&&(o.keyPath=t[3]+"."+t[19]),1&e&&(o.toggle=t[0]),n.$set(o)},i:function(t){e||((0,a.Ui)(n.$$.fragment,t),e=!0)},o:function(t){(0,a.etI)(n.$$.fragment,t),e=!1},d:function(t){(0,a.vpE)(n,t)}}}function St(t,n){var e,o,r,i=n[21]<n[12]&&Mt(n);return{key:t,first:null,c:function(){e=(0,a.cSb)(),i&&i.c(),o=(0,a.cSb)(),this.first=e},m:function(t,n){(0,a.$Tr)(t,e,n),i&&i.m(t,n),(0,a.$Tr)(t,o,n),r=!0},p:function(t,e){(n=t)[21]<n[12]?i?(i.p(n,e),4352&e&&(0,a.Ui)(i,1)):((i=Mt(n)).c(),(0,a.Ui)(i,1),i.m(o.parentNode,o)):i&&((0,a.dvw)(),(0,a.etI)(i,1,1,(function(){i=null})),(0,a.gbL)())},i:function(t){r||((0,a.Ui)(i),r=!0)},o:function(t){(0,a.etI)(i),r=!1},d:function(t){t&&(0,a.ogt)(e),i&&i.d(t),t&&(0,a.ogt)(o)}}}function jt(t){var n,e,o,r,i=t[14](t[8].length-t[12])+"";return{c:function(){n=(0,a.bGB)("div"),e=(0,a.fLW)(i),(0,a.Ljt)(n,"class","vc-log-tree-loadmore")},m:function(i,c){(0,a.$Tr)(i,n,c),(0,a.R3I)(n,e),o||(r=(0,a.oLt)(n,"click",t[18]),o=!0)},p:function(t,n){4352&n&&i!==(i=t[14](t[8].length-t[12])+"")&&(0,a.rTO)(e,i)},d:function(t){t&&(0,a.ogt)(n),o=!1,r()}}}function Bt(t){var n,e;return n=new Gt({props:{origData:t[16]("__proto__"),dataKey:"__proto__",keyType:"private",keyPath:t[3]+".__proto__",toggle:t[0]}}),{c:function(){(0,a.YCL)(n.$$.fragment)},m:function(t,o){(0,a.yef)(n,t,o),e=!0},p:function(t,e){var o={};8&e&&(o.keyPath=t[3]+".__proto__"),1&e&&(o.toggle=t[0]),n.$set(o)},i:function(t){e||((0,a.Ui)(n.$$.fragment,t),e=!0)},o:function(t){(0,a.etI)(n.$$.fragment,t),e=!1},d:function(t){(0,a.vpE)(n,t)}}}function At(t){var n,e,o,r,i,c,u;o=new bt({props:{origData:t[1],dataKey:t[2],keyType:t[4]}});var s=t[6]&&t[5]&&Dt(t);return{c:function(){n=(0,a.bGB)("div"),e=(0,a.bGB)("div"),(0,a.YCL)(o.$$.fragment),r=(0,a.DhX)(),s&&s.c(),(0,a.Ljt)(e,"class","vc-log-tree-node"),(0,a.Ljt)(n,"class","vc-log-tree"),(0,a.Ljt)(n,"data-keypath",t[3]),(0,a.VHj)(n,"vc-toggle",t[5]),(0,a.VHj)(n,"vc-is-tree",t[6])},m:function(l,f){(0,a.$Tr)(l,n,f),(0,a.R3I)(n,e),(0,a.yef)(o,e,null),(0,a.R3I)(n,r),s&&s.m(n,null),i=!0,c||(u=(0,a.oLt)(e,"click",(0,a.XET)(t[15])),c=!0)},p:function(t,e){var r=e[0],c={};2&r&&(c.origData=t[1]),4&r&&(c.dataKey=t[2]),16&r&&(c.keyType=t[4]),o.$set(c),t[6]&&t[5]?s?(s.p(t,r),96&r&&(0,a.Ui)(s,1)):((s=Dt(t)).c(),(0,a.Ui)(s,1),s.m(n,null)):s&&((0,a.dvw)(),(0,a.etI)(s,1,1,(function(){s=null})),(0,a.gbL)()),(!i||8&r)&&(0,a.Ljt)(n,"data-keypath",t[3]),32&r&&(0,a.VHj)(n,"vc-toggle",t[5]),64&r&&(0,a.VHj)(n,"vc-is-tree",t[6])},i:function(t){i||((0,a.Ui)(o.$$.fragment,t),(0,a.Ui)(s),i=!0)},o:function(t){(0,a.etI)(o.$$.fragment,t),(0,a.etI)(s),i=!1},d:function(t){t&&(0,a.ogt)(n),(0,a.vpE)(o),s&&s.d(),c=!1,u()}}}function Ut(t,e,o){var r,i,a,u=e.origData,s=e.dataKey,l=void 0===s?void 0:s,f=e.keyPath,d=void 0===f?"":f,v=e.keyType,h=void 0===v?"":v,p=e.toggle,g=void 0===p?{}:p,m=!1,_=!1,b=!1,y=50,w=50;(0,c.H3)((function(){xt.use()})),(0,c.ev)((function(){xt.unuse()}));var E=function(t){"enum"===t?o(11,y+=50):"nonEnum"===t&&o(12,w+=50)};return t.$$set=function(t){"origData"in t&&o(1,u=t.origData),"dataKey"in t&&o(2,l=t.dataKey),"keyPath"in t&&o(3,d=t.keyPath),"keyType"in t&&o(4,h=t.keyType),"toggle"in t&&o(0,g=t.toggle)},t.$$.update=function(){1003&t.$$.dirty&&(o(5,m=g[d]||!1),o(6,_=!(u instanceof et.Tg)&&(n.kJ(u)||n.Kn(u))),_&&m&&(o(7,r=r||n.qr(n.MH(u))),o(8,i=i||n.qr(n.QK(u))),o(9,a=a||n._D(u)),o(10,b=n.Kn(u)&&-1===i.indexOf("__proto__"))))},[g,u,l,d,h,m,_,r,i,a,b,y,w,E,function(t){return"(..."+t+" Key"+(t>1?"s":"")+" Left)"},function(){o(5,m=!m),o(0,g[d]=m,g)},function(t){try{return u[t]}catch(t){return new et.Tg}},function(){return E("enum")},function(){return E("nonEnum")}]}var Gt=function(n){function e(t){var e;return e=n.call(this)||this,(0,a.S1n)((0,r.Z)(e),t,Ut,At,a.AqN,{origData:1,dataKey:2,keyPath:3,keyType:4,toggle:0}),e}return(0,i.Z)(e,n),(0,t.Z)(e,[{key:"origData",get:function(){return this.$$.ctx[1]},set:function(t){this.$$set({origData:t}),(0,a.yl1)()}},{key:"dataKey",get:function(){return this.$$.ctx[2]},set:function(t){this.$$set({dataKey:t}),(0,a.yl1)()}},{key:"keyPath",get:function(){return this.$$.ctx[3]},set:function(t){this.$$set({keyPath:t}),(0,a.yl1)()}},{key:"keyType",get:function(){return this.$$.ctx[4]},set:function(t){this.$$set({keyType:t}),(0,a.yl1)()}},{key:"toggle",get:function(){return this.$$.ctx[0]},set:function(t){this.$$set({toggle:t}),(0,a.yl1)()}}]),e}(a.f_C),Nt=Gt,Vt=__webpack_require__(7147),Wt={};Vt.Z&&Vt.Z.locals&&(Wt.locals=Vt.Z.locals);var Kt,Ht=0,Ft={};Ft.styleTagTransform=b(),Ft.setAttributes=p(),Ft.insert=v().bind(null,"head"),Ft.domAPI=f(),Ft.insertStyleElement=m(),Wt.use=function(t){return Ft.options=t||{},Ht++||(Kt=s()(Vt.Z,Ft)),Wt},Wt.unuse=function(){Ht>0&&!--Ht&&(Kt(),Kt=null)};var qt=Wt;function Zt(t,n,e){var o=t.slice();return o[9]=n[e],o[11]=e,o}function Xt(t,n,e){var o=t.slice();return o[12]=n[e],o}function zt(t){for(var n,e,o,r,i,c,u,s,l,f,d,v,h,p=[],g=new Map,m=t[0].groupLevel&&Yt(t),_=t[2]>0&&Qt(t),b=t[1]&&tn(t),y=t[0].repeated&&nn(t),w=t[0].data,E=function(t){return t[11]},L=0;L<w.length;L+=1){var T=Zt(t,w,L),x=E(T);g.set(x,p[L]=rn(x,T))}return l=new ut({props:{handler:t[6]}}),{c:function(){n=(0,a.bGB)("div"),m&&m.c(),e=(0,a.DhX)(),_&&_.c(),o=(0,a.DhX)(),b&&b.c(),r=(0,a.DhX)(),y&&y.c(),i=(0,a.DhX)(),c=(0,a.bGB)("div");for(var d=0;d<p.length;d+=1)p[d].c();u=(0,a.DhX)(),s=(0,a.bGB)("div"),(0,a.YCL)(l.$$.fragment),(0,a.Ljt)(c,"class","vc-log-content"),(0,a.Ljt)(s,"class","vc-logrow-icon"),(0,a.Ljt)(n,"class",f="vc-log-row vc-log-"+t[0].type),(0,a.VHj)(n,"vc-log-input","input"===t[0].cmdType),(0,a.VHj)(n,"vc-log-output","output"===t[0].cmdType),(0,a.VHj)(n,"vc-log-group",t[2]>0),(0,a.VHj)(n,"vc-toggle",1===t[2])},m:function(f,g){(0,a.$Tr)(f,n,g),m&&m.m(n,null),(0,a.R3I)(n,e),_&&_.m(n,null),(0,a.R3I)(n,o),b&&b.m(n,null),(0,a.R3I)(n,r),y&&y.m(n,null),(0,a.R3I)(n,i),(0,a.R3I)(n,c);for(var w=0;w<p.length;w+=1)p[w].m(c,null);(0,a.R3I)(n,u),(0,a.R3I)(n,s),(0,a.yef)(l,s,null),d=!0,v||(h=(0,a.oLt)(n,"click",t[5]),v=!0)},p:function(t,u){t[0].groupLevel?m?m.p(t,u):((m=Yt(t)).c(),m.m(n,e)):m&&(m.d(1),m=null),t[2]>0?_||((_=Qt(t)).c(),_.m(n,o)):_&&(_.d(1),_=null),t[1]?b?b.p(t,u):((b=tn(t)).c(),b.m(n,r)):b&&(b.d(1),b=null),t[0].repeated?y?y.p(t,u):((y=nn(t)).c(),y.m(n,i)):y&&(y.d(1),y=null),17&u&&(w=t[0].data,(0,a.dvw)(),p=(0,a.GQg)(p,u,E,1,t,w,g,c,a.cly,rn,null,Zt),(0,a.gbL)()),(!d||1&u&&f!==(f="vc-log-row vc-log-"+t[0].type))&&(0,a.Ljt)(n,"class",f),1&u&&(0,a.VHj)(n,"vc-log-input","input"===t[0].cmdType),1&u&&(0,a.VHj)(n,"vc-log-output","output"===t[0].cmdType),5&u&&(0,a.VHj)(n,"vc-log-group",t[2]>0),5&u&&(0,a.VHj)(n,"vc-toggle",1===t[2])},i:function(t){if(!d){for(var n=0;n<w.length;n+=1)(0,a.Ui)(p[n]);(0,a.Ui)(l.$$.fragment,t),d=!0}},o:function(t){for(var n=0;n<p.length;n+=1)(0,a.etI)(p[n]);(0,a.etI)(l.$$.fragment,t),d=!1},d:function(t){t&&(0,a.ogt)(n),m&&m.d(),_&&_.d(),b&&b.d(),y&&y.d();for(var e=0;e<p.length;e+=1)p[e].d();(0,a.vpE)(l),v=!1,h()}}}function Yt(t){for(var n,e=new Array(t[0].groupLevel),o=[],r=0;r<e.length;r+=1)o[r]=Jt(Xt(t,e,r));return{c:function(){for(var t=0;t<o.length;t+=1)o[t].c();n=(0,a.cSb)()},m:function(t,e){for(var r=0;r<o.length;r+=1)o[r].m(t,e);(0,a.$Tr)(t,n,e)},p:function(t,r){if(1&r){var i;for(e=new Array(t[0].groupLevel),i=0;i<e.length;i+=1){var a=Xt(t,e,i);o[i]?o[i].p(a,r):(o[i]=Jt(a),o[i].c(),o[i].m(n.parentNode,n))}for(;i<o.length;i+=1)o[i].d(1);o.length=e.length}},d:function(t){(0,a.RMB)(o,t),t&&(0,a.ogt)(n)}}}function Jt(t){var n;return{c:function(){n=(0,a.bGB)("i"),(0,a.Ljt)(n,"class","vc-log-padding")},m:function(t,e){(0,a.$Tr)(t,n,e)},p:a.ZTd,d:function(t){t&&(0,a.ogt)(n)}}}function Qt(t){var n;return{c:function(){n=(0,a.bGB)("div"),(0,a.Ljt)(n,"class","vc-log-group-toggle")},m:function(t,e){(0,a.$Tr)(t,n,e)},d:function(t){t&&(0,a.ogt)(n)}}}function tn(t){var n,e;return{c:function(){n=(0,a.bGB)("div"),e=(0,a.fLW)(t[3]),(0,a.Ljt)(n,"class","vc-log-time")},m:function(t,o){(0,a.$Tr)(t,n,o),(0,a.R3I)(n,e)},p:function(t,n){8&n&&(0,a.rTO)(e,t[3])},d:function(t){t&&(0,a.ogt)(n)}}}function nn(t){var n,e,o,r=t[0].repeated+"";return{c:function(){n=(0,a.bGB)("div"),e=(0,a.bGB)("i"),o=(0,a.fLW)(r),(0,a.Ljt)(n,"class","vc-log-repeat")},m:function(t,r){(0,a.$Tr)(t,n,r),(0,a.R3I)(n,e),(0,a.R3I)(e,o)},p:function(t,n){1&n&&r!==(r=t[0].repeated+"")&&(0,a.rTO)(o,r)},d:function(t){t&&(0,a.ogt)(n)}}}function en(t){var n,e;return n=new bt({props:{origData:t[9].origData,style:t[9].style}}),{c:function(){(0,a.YCL)(n.$$.fragment)},m:function(t,o){(0,a.yef)(n,t,o),e=!0},p:function(t,e){var o={};1&e&&(o.origData=t[9].origData),1&e&&(o.style=t[9].style),n.$set(o)},i:function(t){e||((0,a.Ui)(n.$$.fragment,t),e=!0)},o:function(t){(0,a.etI)(n.$$.fragment,t),e=!1},d:function(t){(0,a.vpE)(n,t)}}}function on(t){var n,e;return n=new Nt({props:{origData:t[9].origData,keyPath:String(t[11]),toggle:t[0].toggle}}),{c:function(){(0,a.YCL)(n.$$.fragment)},m:function(t,o){(0,a.yef)(n,t,o),e=!0},p:function(t,e){var o={};1&e&&(o.origData=t[9].origData),1&e&&(o.keyPath=String(t[11])),1&e&&(o.toggle=t[0].toggle),n.$set(o)},i:function(t){e||((0,a.Ui)(n.$$.fragment,t),e=!0)},o:function(t){(0,a.etI)(n.$$.fragment,t),e=!1},d:function(t){(0,a.vpE)(n,t)}}}function rn(t,n){var e,o,r,i,c,u,s=[on,en],l=[];function f(t,n){return 1&n&&(o=null),null==o&&(o=!!t[4](t[9].origData)),o?0:1}return r=f(n,-1),i=l[r]=s[r](n),{key:t,first:null,c:function(){e=(0,a.cSb)(),i.c(),c=(0,a.cSb)(),this.first=e},m:function(t,n){(0,a.$Tr)(t,e,n),l[r].m(t,n),(0,a.$Tr)(t,c,n),u=!0},p:function(t,e){var o=r;(r=f(n=t,e))===o?l[r].p(n,e):((0,a.dvw)(),(0,a.etI)(l[o],1,1,(function(){l[o]=null})),(0,a.gbL)(),(i=l[r])?i.p(n,e):(i=l[r]=s[r](n)).c(),(0,a.Ui)(i,1),i.m(c.parentNode,c))},i:function(t){u||((0,a.Ui)(i),u=!0)},o:function(t){(0,a.etI)(i),u=!1},d:function(t){t&&(0,a.ogt)(e),l[r].d(t),t&&(0,a.ogt)(c)}}}function an(t){var n,e,o=t[0]&&zt(t);return{c:function(){o&&o.c(),n=(0,a.cSb)()},m:function(t,r){o&&o.m(t,r),(0,a.$Tr)(t,n,r),e=!0},p:function(t,e){var r=e[0];t[0]?o?(o.p(t,r),1&r&&(0,a.Ui)(o,1)):((o=zt(t)).c(),(0,a.Ui)(o,1),o.m(n.parentNode,n)):o&&((0,a.dvw)(),(0,a.etI)(o,1,1,(function(){o=null})),(0,a.gbL)())},i:function(t){e||((0,a.Ui)(o),e=!0)},o:function(t){(0,a.etI)(o),e=!1},d:function(t){o&&o.d(t),t&&(0,a.ogt)(n)}}}function cn(t,e,o){var r=e.log,i=e.showTimestamps,a=void 0!==i&&i,u=e.groupHeader,s=void 0===u?0:u,l=(0,c.x)(),f="",d=function(t,n){var e="000"+t;return e.substring(e.length-n)};(0,c.H3)((function(){qt.use()})),(0,c.ev)((function(){qt.unuse()}));return t.$$set=function(t){"log"in t&&o(0,r=t.log),"showTimestamps"in t&&o(1,a=t.showTimestamps),"groupHeader"in t&&o(2,s=t.groupHeader)},t.$$.update=function(){if(3&t.$$.dirty&&a){var n=new Date(r.date);o(3,f=d(n.getHours(),2)+":"+d(n.getMinutes(),2)+":"+d(n.getSeconds(),2)+":"+d(n.getMilliseconds(),3))}},[r,a,s,f,function(t){return!(t instanceof et.Tg)&&(n.kJ(t)||n.Kn(t))},function(){s>0&&l("groupCollapsed",{groupLabel:r.groupLabel,groupHeader:1===s?2:1,isGroupCollapsed:1===s})},function(){var t=[];try{for(var e=0;e<r.data.length;e++)n.HD(r.data[e].origData)||n.hj(r.data[e].origData)?t.push(r.data[e].origData):t.push(n.hZ(r.data[e].origData,{maxDepth:10,keyMaxLen:1e4,pretty:!1,standardJSON:!0}))}catch(t){}return t.join(" ")}]}var un=function(n){function e(t){var e;return e=n.call(this)||this,(0,a.S1n)((0,r.Z)(e),t,cn,an,a.AqN,{log:0,showTimestamps:1,groupHeader:2}),e}return(0,i.Z)(e,n),(0,t.Z)(e,[{key:"log",get:function(){return this.$$.ctx[0]},set:function(t){this.$$set({log:t}),(0,a.yl1)()}},{key:"showTimestamps",get:function(){return this.$$.ctx[1]},set:function(t){this.$$set({showTimestamps:t}),(0,a.yl1)()}},{key:"groupHeader",get:function(){return this.$$.ctx[2]},set:function(t){this.$$set({groupHeader:t}),(0,a.yl1)()}}]),e}(a.f_C),sn=un,ln=__webpack_require__(3903),fn=__webpack_require__(3327),dn={};fn.Z&&fn.Z.locals&&(dn.locals=fn.Z.locals);var vn,hn=0,pn={};pn.styleTagTransform=b(),pn.setAttributes=p(),pn.insert=v().bind(null,"head"),pn.domAPI=f(),pn.insertStyleElement=m(),dn.use=function(t){return pn.options=t||{},hn++||(vn=s()(fn.Z,pn)),dn},dn.unuse=function(){hn>0&&!--hn&&(vn(),vn=null)};var gn=dn,mn=__webpack_require__(4264),_n=__webpack_require__.n(mn);function bn(t){var n,e,o=t[1]+"px",r=t[5].default,i=(0,a.nuO)(r,t,t[4],null);return{c:function(){n=(0,a.bGB)("div"),i&&i.c(),(0,a.Ljt)(n,"class","vc-scroller-item"),(0,a.czc)(n,"display",t[0]?"block":"none",!1),(0,a.czc)(n,"top",o,!1)},m:function(o,r){(0,a.$Tr)(o,n,r),i&&i.m(n,null),t[6](n),e=!0},p:function(t,c){var u=c[0];i&&i.p&&(!e||16&u)&&(0,a.kmG)(i,r,t,t[4],e?(0,a.u2N)(r,t[4],u,null):(0,a.VOJ)(t[4]),null),1&u&&(0,a.czc)(n,"display",t[0]?"block":"none",!1),2&u&&o!==(o=t[1]+"px")&&(0,a.czc)(n,"top",o,!1)},i:function(t){e||((0,a.Ui)(i,t),e=!0)},o:function(t){(0,a.etI)(i,t),e=!1},d:function(e){e&&(0,a.ogt)(n),i&&i.d(e),t[6](null)}}}function yn(t,n,e){var o,r=n.$$slots,i=void 0===r?{}:r,u=n.$$scope,s=n.show,l=n.top,f=n.onResize,d=void 0===f?function(){}:f,v=null;return(0,c.H3)((function(){s&&d(o.getBoundingClientRect().height),(v=new ResizeObserver((function(t){var n=t[0];s&&d(n.contentRect.height)}))).observe(o)})),(0,c.ev)((function(){v.disconnect()})),t.$$set=function(t){"show"in t&&e(0,s=t.show),"top"in t&&e(1,l=t.top),"onResize"in t&&e(3,d=t.onResize),"$$scope"in t&&e(4,u=t.$$scope)},[s,l,o,d,u,i,function(t){a.VnY[t?"unshift":"push"]((function(){e(2,o=t)}))}]}var wn=function(n){function e(t){var e;return e=n.call(this)||this,(0,a.S1n)((0,r.Z)(e),t,yn,bn,a.N8,{show:0,top:1,onResize:3}),e}return(0,i.Z)(e,n),(0,t.Z)(e,[{key:"show",get:function(){return this.$$.ctx[0]},set:function(t){this.$$set({show:t}),(0,a.yl1)()}},{key:"top",get:function(){return this.$$.ctx[1]},set:function(t){this.$$set({top:t}),(0,a.yl1)()}},{key:"onResize",get:function(){return this.$$.ctx[3]},set:function(t){this.$$set({onResize:t}),(0,a.yl1)()}}]),e}(a.f_C),En=wn,Ln=function(){function t(){this._x=0,this._endX=0,this._v=0,this._startTime=0,this._endTime=0}var n=t.prototype;return n.set=function(t,n,e,o){this._x=t,this._endX=n,this._v=(n-t)/e,this._startTime=o||Date.now(),this._endTime=this._startTime+e},n.x=function(t){if(this.done(t))return this._endX;var n=t-this._startTime;return this._x+this._v*n},n.dx=function(t){return this.done(t)?0:this._v},n.done=function(t){return t>=this._endTime},t}(),Tn=function(){function t(t){this._drag=void 0,this._dragLog=void 0,this._x=0,this._v=0,this._startTime=0,this._drag=t,this._dragLog=Math.log(t)}var n=t.prototype;return n.set=function(t,n,e){this._x=t,this._v=n,this._startTime=e||Date.now()},n.x=function(t){var n=(t-this._startTime)/1e3;return this._x+this._v*Math.pow(this._drag,n)/this._dragLog-this._v/this._dragLog},n.dx=function(t){var n=(t-this._startTime)/1e3;return this._v*Math.pow(this._drag,n)},n.done=function(t){return Math.abs(this.dx(t))<3},t}(),xn=function(t,n){return t>n-.1&&t<n+.1},Cn=function(t){return xn(t,0)},On=function(){function t(t,n,e){this._solver=void 0,this._solution=void 0,this._endPosition=void 0,this._startTime=void 0,this._solver=function(t,n,e){var o=e,r=t,i=n,a=o*o-4*r*i;if(0==a){var c=-o/(2*r);return function(t,n){var e=t,o=n/(c*t);return{x:function(t){return(e+o*t)*Math.pow(Math.E,c*t)},dx:function(t){return(c*(e+o*t)+o)*Math.pow(Math.E,c*t)}}}}if(a>0){var u=(-o-Math.sqrt(a))/(2*r),s=(-o+Math.sqrt(a))/(2*r);return function(t,n){var e=(n-u*t)/(s-u),o=t-e;return{x:function(t){return o*Math.pow(Math.E,u*t)+e*Math.pow(Math.E,s*t)},dx:function(t){return o*u*Math.pow(Math.E,u*t)+e*s*Math.pow(Math.E,s*t)}}}}var l=Math.sqrt(4*r*i-o*o)/(2*r),f=-o/2*r;return function(t,n){var e=t,o=(n-f*t)/l;return{x:function(t){return Math.pow(Math.E,f*t)*(e*Math.cos(l*t)+o*Math.sin(l*t))},dx:function(t){var n=Math.pow(Math.E,f*t),r=Math.cos(l*t),i=Math.sin(l*t);return n*(o*l*r-e*l*i)+f*n*(o*i+e*r)}}}}(t,n,e),this._solution=null,this._endPosition=0,this._startTime=0}var n=t.prototype;return n.x=function(t){if(!this._solution)return 0;var n=(t-this._startTime)/1e3;return this._endPosition+this._solution.x(n)},n.dx=function(t){if(!this._solution)return 0;var n=(t-this._startTime)/1e3;return this._solution.dx(n)},n.set=function(t,n,e,o){o||(o=Date.now()),this._endPosition=t,n==t&&Cn(e)||(this._solution=this._solver(n-t,e),this._startTime=o)},n.done=function(t){return t||(t=Date.now()),xn(this.x(t),this._endPosition)&&Cn(this.dx(t))},t}(),In=function(){function t(t,n){this._enableSpring=n,this._getExtend=void 0,this._friction=new Tn(.05),this._spring=new On(1,90,20),this._toEdge=!1,this._getExtend=t}var n=t.prototype;return n.set=function(t,n,e){if(void 0===e&&(e=Date.now()),this._friction.set(t,n,e),t>0&&n>=0)this._toEdge=!0,this._enableSpring&&this._spring.set(0,t,n,e);else{var o=this._getExtend();t<-o&&n<=0?(this._toEdge=!0,this._enableSpring&&this._spring.set(-o,t,n,e)):this._toEdge=!1}},n.x=function(t){if(this._enableSpring&&this._toEdge)return this._spring.x(t);var n=this._friction.x(t),e=this._friction.dx(t);if(n>0&&e>=0){if(this._toEdge=!0,!this._enableSpring)return 0;this._spring.set(0,n,e,t)}else{var o=this._getExtend();if(n<-o&&e<=0){if(this._toEdge=!0,!this._enableSpring)return-o;this._spring.set(-o,n,e,t)}}return n},n.dx=function(t){return this._toEdge?this._enableSpring?this._spring.dx(t):0:this._friction.dx(t)},n.done=function(t){return this._toEdge?!this._enableSpring||this._spring.done(t):this._friction.done(t)},t}();function Dn(t,n){var e,o;return function r(){if(!o){var i=Date.now();n(i),t.done(i)||(e=requestAnimationFrame(r))}}(),{cancel:function(){cancelAnimationFrame(e),o=!0}}}var Rn=function(){function t(t,n){this._updatePosition=n,this._scrollModel=void 0,this._linearModel=void 0,this._startPosition=0,this._position=0,this._animate=null,this._getExtent=void 0,this._getExtent=t,this._scrollModel=new In(t,!1),this._linearModel=new Ln}var n=t.prototype;return n.onTouchStart=function(){var t=this._position;if(t>0)t*=0;else{var n=this._getExtent();t<-n&&(t=0*(t+n)-n)}this._startPosition=this._position=t,this._animate&&(this._animate.cancel(),this._animate=null),this._updatePosition(-t)},n.onTouchMove=function(t,n){var e=n+this._startPosition;if(e>0)e*=0;else{var o=this._getExtent();e<-o&&(e=0*(e+o)-o)}this._position=e,this._updatePosition(-e)},n.onTouchEnd=function(t,n,e,o){var r=this,i=n+this._startPosition;if(i>0)i*=0;else{var a=this._getExtent();i<-a&&(i=0*(i+a)-a)}if(this._position=i,this._updatePosition(-i),!(Math.abs(n)<=.1&&Math.abs(o)<=.1)){var c=this._scrollModel;c.set(i,o),this._animate=Dn(c,(function(t){var n=r._position=c.x(t);r._updatePosition(-n)}))}},n.onTouchCancel=function(){var t=this,n=this._position;if(n>0)n*=0;else{var e=this._getExtent();n<-e&&(n=0*(n+e)-e)}this._position=n;var o=this._scrollModel;o.set(n,0),this._animate=Dn(o,(function(n){var e=t._position=o.x(n);t._updatePosition(-e)}))},n.onWheel=function(t,n){var e=this._position-n;if(this._animate&&(this._animate.cancel(),this._animate=null),e>0)e=0;else{var o=this._getExtent();e<-o&&(e=-o)}this._position=e,this._updatePosition(-e)},n.getPosition=function(){return-this._position},n.updatePosition=function(t){var n=-t-this._position;this._startPosition+=n,this._position+=n;var e=this._position;this._updatePosition(-e);var o=this._scrollModel,r=Date.now();if(!o.done(r)){var i=o.dx(r);o.set(e,i,r)}},n.scrollTo=function(t,n){var e=this;if(this._animate&&(this._animate.cancel(),this._animate=null),n>0){var o=this._linearModel;o.set(this._position,-t,n),this._animate=Dn(this._linearModel,(function(t){var n=e._position=o.x(t);e._updatePosition(-n)}))}else this._updatePosition(t)},t}();function $n(t,n){var e="undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(e)return(e=e.call(t)).next.bind(e);if(Array.isArray(t)||(e=function(t,n){if(!t)return;if("string"==typeof t)return kn(t,n);var e=Object.prototype.toString.call(t).slice(8,-1);"Object"===e&&t.constructor&&(e=t.constructor.name);if("Map"===e||"Set"===e)return Array.from(t);if("Arguments"===e||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(e))return kn(t,n)}(t))||n&&t&&"number"==typeof t.length){e&&(t=e);var o=0;return function(){return o>=t.length?{done:!0}:{done:!1,value:t[o++]}}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}function kn(t,n){(null==n||n>t.length)&&(n=t.length);for(var e=0,o=new Array(n);e<n;e++)o[e]=t[e];return o}var Pn=function(t){var n=null,e=!1,o=function o(){e=!1,t(),n=requestAnimationFrame((function(){n=null,e&&o()}))};return{trigger:function(){null===n?o():e=!0},cancel:function(){n&&(cancelAnimationFrame(n),e=!1,n=null)}}},Mn=function(){function t(t){var n=this;this._handler=t,this._touchId=null,this._startX=0,this._startY=0,this._historyX=[],this._historyY=[],this._historyTime=[],this._wheelDeltaX=0,this._wheelDeltaY=0,this._onTouchMove=function(){var t=n._historyX[n._historyX.length-1],e=n._historyY[n._historyY.length-1];n._handler.onTouchMove(t,e)},this._onWheel=Pn((function(){var t=n._wheelDeltaX,e=n._wheelDeltaY;n._wheelDeltaX=0,n._wheelDeltaY=0,n._handler.onWheel(t,e)})),this.handleTouchStart=function(t){var e;if("1"!==(null==(e=t.target.dataset)?void 0:e.scrollable)){t.preventDefault();var o=t.touches[0];n._touchId=o.identifier,n._startX=o.pageX,n._startY=o.pageY,n._historyX=[0],n._historyY=[0],n._historyTime=[Date.now()],n._handler.onTouchStart()}},this.handleTouchMove=function(t){var e;if("1"!==(null==(e=t.target.dataset)?void 0:e.scrollable)){t.preventDefault();var o=n._getTouchDelta(t);null!==o&&(n._historyX.push(o.x),n._historyY.push(o.y),n._historyTime.push(Date.now()),n._onTouchMove())}},this.handleTouchEnd=function(t){var e;if("1"!==(null==(e=t.target.dataset)?void 0:e.scrollable)){t.preventDefault();var o=n._getTouchDelta(t);if(null!==o){for(var r=0,i=0,a=Date.now(),c=o.y,u=o.x,s=n._historyTime,l=s.length-1;l>0;l-=1){var f=a-s[l];if(f>30){r=1e3*(u-n._historyX[l])/f,i=1e3*(c-n._historyY[l])/f;break}}n._touchId=null,n._handler.onTouchEnd(o.x,o.y,r,i)}}},this.handleTouchCancel=function(t){var e;"1"!==(null==(e=t.target.dataset)?void 0:e.scrollable)&&(t.preventDefault(),null!==n._getTouchDelta(t)&&(n._touchId=null,n._handler.onTouchCancel()))},this.handleWheel=function(t){var e;"1"!==(null==(e=t.target.dataset)?void 0:e.scrollable)&&(t.preventDefault(),n._wheelDeltaX+=t.deltaX,n._wheelDeltaY+=t.deltaY,n._onWheel.trigger())}}return t.prototype._getTouchDelta=function(t){if(null===this._touchId)return null;for(var n,e=$n(t.changedTouches);!(n=e()).done;){var o=n.value;if(o.identifier===this._touchId)return{x:o.pageX-this._startX,y:o.pageY-this._startY}}return null},t}(),Sn=__webpack_require__(1142),jn={};Sn.Z&&Sn.Z.locals&&(jn.locals=Sn.Z.locals);var Bn,An=0,Un={};Un.styleTagTransform=b(),Un.setAttributes=p(),Un.insert=v().bind(null,"head"),Un.domAPI=f(),Un.insertStyleElement=m(),jn.use=function(t){return Un.options=t||{},An++||(Bn=s()(Sn.Z,Un)),jn},jn.unuse=function(){An>0&&!--An&&(Bn(),Bn=null)};var Gn=jn,Nn=function(){var t=[],n=[],e=0,o=0,r=0,i=0,a=0;return function(c,u,s){if(r===c&&i===u&&a===s)return t;var l=n.length,f=u<=o?Math.max(0,Math.min(u,Math.max(e,Math.min(o-1,s-l)))):u,d=e<=s?Math.max(s,Math.min(c,Math.max(e+1,Math.min(o,f+l)))):s;if(0===l||d-f<l){for(var v=t.length=n.length=s-u,h=0;h<v;h+=1)n[h]=h,t[h]={key:h,index:h+u,show:!0};return e=u,o=s,r=c,i=u,a=s,t}var p=0,g=0,m=0,_=0;o<f||d<e?(m=f,_=f+l):e<f?(g=f-e,m=f,_=f+l):d<o?(g=l-(o-d),m=d-l,_=d):f<=e&&o<=d&&(m=e,_=o);for(var b=f;b<u;b+=1,p+=1){var y=n[(g+p)%l],w=t[b-f];w.key=y,w.index=b,w.show=!1}for(var E=u,L=0;E<s;E+=1){var T=void 0;m<=E&&E<_?(T=n[(g+p)%l],p+=1):(T=l+L,L+=1);var x=E-f;if(x<t.length){var C=t[x];C.key=T,C.index=E,C.show=!0}else t.push({key:T,index:E,show:!0})}for(var O=s;O<d;O+=1,p+=1){var I=n[(g+p)%l],D=t[O-f];D.key=I,D.index=O,D.show=!1}for(var R=0;R<t.length;R+=1)n[R]=t[R].key;return t.sort((function(t,n){return t.key-n.key})),e=f,o=d,r=c,i=u,a=s,t}},Vn=a.lig.Map,Wn=function(t){return{}},Kn=function(t){return{}},Hn=function(t){return{}},Fn=function(t){return{}};function qn(t,n,e){var o=t.slice();return o[48]=n[e],o[50]=e,o}var Zn=function(t){return{item:1025&t[0]}},Xn=function(t){return{item:t[0][t[48].index]}},zn=function(t){return{}},Yn=function(t){return{}};function Jn(t){var n,e,o=t[22].header,r=(0,a.nuO)(o,t,t[29],Yn);return{c:function(){n=(0,a.bGB)("div"),r&&r.c(),(0,a.Ljt)(n,"class","vc-scroller-header")},m:function(o,i){(0,a.$Tr)(o,n,i),r&&r.m(n,null),t[23](n),e=!0},p:function(t,n){r&&r.p&&(!e||536870912&n[0])&&(0,a.kmG)(r,o,t,t[29],e?(0,a.u2N)(o,t[29],n,zn):(0,a.VOJ)(t[29]),Yn)},i:function(t){e||((0,a.Ui)(r,t),e=!0)},o:function(t){(0,a.etI)(r,t),e=!1},d:function(e){e&&(0,a.ogt)(n),r&&r.d(e),t[23](null)}}}function Qn(t){var n,e=t[22].empty,o=(0,a.nuO)(e,t,t[29],Fn);return{c:function(){o&&o.c()},m:function(t,e){o&&o.m(t,e),n=!0},p:function(t,r){o&&o.p&&(!n||536870912&r[0])&&(0,a.kmG)(o,e,t,t[29],n?(0,a.u2N)(e,t[29],r,Hn):(0,a.VOJ)(t[29]),Fn)},i:function(t){n||((0,a.Ui)(o,t),n=!0)},o:function(t){(0,a.etI)(o,t),n=!1},d:function(t){o&&o.d(t)}}}function te(t){for(var n,e,o=[],r=new Vn,i=t[10],c=function(t){return t[48].key},u=0;u<i.length;u+=1){var s=qn(t,i,u),l=c(s);r.set(l,o[u]=ee(l,s))}return{c:function(){for(var t=0;t<o.length;t+=1)o[t].c();n=(0,a.cSb)()},m:function(t,r){for(var i=0;i<o.length;i+=1)o[i].m(t,r);(0,a.$Tr)(t,n,r),e=!0},p:function(t,e){536874497&e[0]&&(i=t[10],(0,a.dvw)(),o=(0,a.GQg)(o,e,c,1,t,i,r,n.parentNode,a.cly,ee,n,qn),(0,a.gbL)())},i:function(t){if(!e){for(var n=0;n<i.length;n+=1)(0,a.Ui)(o[n]);e=!0}},o:function(t){for(var n=0;n<o.length;n+=1)(0,a.etI)(o[n]);e=!1},d:function(t){for(var e=0;e<o.length;e+=1)o[e].d(t);t&&(0,a.ogt)(n)}}}function ne(t){var n,e,o=t[22].item,r=(0,a.nuO)(o,t,t[29],Xn),i=r||function(t){var n;return{c:function(){n=(0,a.fLW)("Missing template")},m:function(t,e){(0,a.$Tr)(t,n,e)},d:function(t){t&&(0,a.ogt)(n)}}}();return{c:function(){i&&i.c(),n=(0,a.DhX)()},m:function(t,o){i&&i.m(t,o),(0,a.$Tr)(t,n,o),e=!0},p:function(t,n){r&&r.p&&(!e||536871937&n[0])&&(0,a.kmG)(r,o,t,t[29],e?(0,a.u2N)(o,t[29],n,Zn):(0,a.VOJ)(t[29]),Xn)},i:function(t){e||((0,a.Ui)(i,t),e=!0)},o:function(t){(0,a.etI)(i,t),e=!1},d:function(t){i&&i.d(t),t&&(0,a.ogt)(n)}}}function ee(t,n){var e,o,r;function i(){for(var t,e=arguments.length,o=new Array(e),r=0;r<e;r++)o[r]=arguments[r];return(t=n)[24].apply(t,[n[48]].concat(o))}return o=new En({props:{show:n[48].show,top:n[9][n[48].index],onResize:i,$$slots:{default:[ne]},$$scope:{ctx:n}}}),{key:t,first:null,c:function(){e=(0,a.cSb)(),(0,a.YCL)(o.$$.fragment),this.first=e},m:function(t,n){(0,a.$Tr)(t,e,n),(0,a.yef)(o,t,n),r=!0},p:function(t,e){n=t;var r={};1024&e[0]&&(r.show=n[48].show),1536&e[0]&&(r.top=n[9][n[48].index]),1024&e[0]&&(r.onResize=i),536871937&e[0]&&(r.$$scope={dirty:e,ctx:n}),o.$set(r)},i:function(t){r||((0,a.Ui)(o.$$.fragment,t),r=!0)},o:function(t){(0,a.etI)(o.$$.fragment,t),r=!1},d:function(t){t&&(0,a.ogt)(e),(0,a.vpE)(o,t)}}}function oe(t){var n,e,o=t[22].footer,r=(0,a.nuO)(o,t,t[29],Kn);return{c:function(){n=(0,a.bGB)("div"),r&&r.c(),(0,a.Ljt)(n,"class","vc-scroller-footer")},m:function(o,i){(0,a.$Tr)(o,n,i),r&&r.m(n,null),t[26](n),e=!0},p:function(t,n){r&&r.p&&(!e||536870912&n[0])&&(0,a.kmG)(r,o,t,t[29],e?(0,a.u2N)(o,t[29],n,Wn):(0,a.VOJ)(t[29]),Kn)},i:function(t){e||((0,a.Ui)(r,t),e=!0)},o:function(t){(0,a.etI)(r,t),e=!1},d:function(e){e&&(0,a.ogt)(n),r&&r.d(e),t[26](null)}}}function re(t){var n,e,o=t[7]+"%",r=t[8]+"%";return{c:function(){n=(0,a.bGB)("div"),e=(0,a.bGB)("div"),(0,a.Ljt)(e,"class","vc-scroller-scrollbar-thumb"),(0,a.czc)(e,"height",o,!1),(0,a.czc)(e,"top",r,!1),(0,a.Ljt)(n,"class","vc-scroller-scrollbar-track"),(0,a.czc)(n,"display",t[7]<100?"block":"none",!1)},m:function(t,o){(0,a.$Tr)(t,n,o),(0,a.R3I)(n,e)},p:function(t,i){128&i[0]&&o!==(o=t[7]+"%")&&(0,a.czc)(e,"height",o,!1),256&i[0]&&r!==(r=t[8]+"%")&&(0,a.czc)(e,"top",r,!1),128&i[0]&&(0,a.czc)(n,"display",t[7]<100?"block":"none",!1)},d:function(t){t&&(0,a.ogt)(n)}}}function ie(t){var n,e,o,r,i,c,u,s,l,f,d,v=t[13].header&&Jn(t),h=[te,Qn],p=[];function g(t,n){return t[0].length?0:1}i=g(t),c=p[i]=h[i](t);var m=t[13].footer&&oe(t),_=t[1]&&re(t);return{c:function(){n=(0,a.bGB)("div"),e=(0,a.bGB)("div"),v&&v.c(),o=(0,a.DhX)(),r=(0,a.bGB)("div"),c.c(),u=(0,a.DhX)(),m&&m.c(),s=(0,a.DhX)(),_&&_.c(),(0,a.Ljt)(r,"class","vc-scroller-items"),(0,a.Ljt)(e,"class","vc-scroller-contents"),(0,a.Ljt)(n,"class","vc-scroller-viewport")},m:function(c,h){(0,a.$Tr)(c,n,h),(0,a.R3I)(n,e),v&&v.m(e,null),(0,a.R3I)(e,o),(0,a.R3I)(e,r),p[i].m(r,null),t[25](r),(0,a.R3I)(e,u),m&&m.m(e,null),t[27](e),(0,a.R3I)(n,s),_&&_.m(n,null),t[28](n),l=!0,f||(d=[(0,a.oLt)(n,"touchstart",t[12].handleTouchStart),(0,a.oLt)(n,"touchmove",t[12].handleTouchMove),(0,a.oLt)(n,"touchend",t[12].handleTouchEnd),(0,a.oLt)(n,"touchcancel",t[12].handleTouchCancel),(0,a.oLt)(n,"wheel",t[12].handleWheel)],f=!0)},p:function(t,u){t[13].header?v?(v.p(t,u),8192&u[0]&&(0,a.Ui)(v,1)):((v=Jn(t)).c(),(0,a.Ui)(v,1),v.m(e,o)):v&&((0,a.dvw)(),(0,a.etI)(v,1,1,(function(){v=null})),(0,a.gbL)());var s=i;(i=g(t))===s?p[i].p(t,u):((0,a.dvw)(),(0,a.etI)(p[s],1,1,(function(){p[s]=null})),(0,a.gbL)(),(c=p[i])?c.p(t,u):(c=p[i]=h[i](t)).c(),(0,a.Ui)(c,1),c.m(r,null)),t[13].footer?m?(m.p(t,u),8192&u[0]&&(0,a.Ui)(m,1)):((m=oe(t)).c(),(0,a.Ui)(m,1),m.m(e,null)):m&&((0,a.dvw)(),(0,a.etI)(m,1,1,(function(){m=null})),(0,a.gbL)()),t[1]?_?_.p(t,u):((_=re(t)).c(),_.m(n,null)):_&&(_.d(1),_=null)},i:function(t){l||((0,a.Ui)(v),(0,a.Ui)(c),(0,a.Ui)(m),l=!0)},o:function(t){(0,a.etI)(v),(0,a.etI)(c),(0,a.etI)(m),l=!1},d:function(e){e&&(0,a.ogt)(n),v&&v.d(),p[i].d(),t[25](null),m&&m.d(),t[27](null),_&&_.d(),t[28](null),f=!1,(0,a.j7q)(d)}}}function ae(t,n,e){var o,r,i,u,s,l=n.$$slots,f=void 0===l?{}:l,d=n.$$scope,v=(0,a.XGm)(f),h=this&&this.__awaiter||function(t,n,e,o){return new(e||(e=Promise))((function(r,i){function a(t){try{u(o.next(t))}catch(t){i(t)}}function c(t){try{u(o.throw(t))}catch(t){i(t)}}function u(t){var n;t.done?r(t.value):(n=t.value,n instanceof e?n:new e((function(t){t(n)}))).then(a,c)}u((o=o.apply(t,n||[])).next())}))},p=n.items,g=n.itemKey,m=void 0===g?void 0:g,_=n.itemHeight,b=void 0===_?void 0:_,y=n.buffer,w=void 0===y?200:y,E=n.stickToBottom,L=void 0!==E&&E,T=n.scrollbar,x=void 0!==T&&T,C=n.start,O=void 0===C?0:C,I=n.end,D=void 0===I?0:I,R=0,$=0,k=0,P=0,M=100,S=0,j=[],B=[],A=[],U=Nn(),G=function(){return Math.max(0,P+R+$-k)},N=!0,V=!1,W=new Rn(G,(function(t){return h(void 0,void 0,void 0,_n().mark((function n(){var o;return _n().wrap((function(n){for(;;)switch(n.prev=n.next){case 0:if(o=G(),N=Math.abs(t-o)<=1,e(5,u.style.transform="translateY("+-t+"px) translateZ(0)",u),K(),!V){n.next=8;break}V=!1,n.next=11;break;case 8:return n.next=10,new Promise((function(t){return setTimeout(t,0)}));case 10:X(p,t,k);case 11:case"end":return n.stop()}}),n)})))})),K=function(){var t=W.getPosition(),n=100/(P+R+$);e(8,S=t*n),e(7,M=k*n)},H=function(t){var n=G();(t||W.getPosition()>n)&&W.updatePosition(n)};function F(t){return function(t,n,o){for(var r=new Map,i=0;i<Z.length;i+=1){var a=Z[i],c=void 0===m?a:a[m];r.set(c,j[i])}e(9,B.length=j.length=t.length,B);for(var u=0,l=0;l<t.length;l+=1){var f=t[l],d=void 0===m?f:f[m];r.has(d)?j[l]=r.get(d):j[l]=o,e(9,B[l]=u,B),u+=j[l]}P=Math.max(u,n-R-$),Z=t,X(t,W.getPosition(),n),e(6,s.style.height=P+"px",s),H(N&&L),K()}(t,k,b)}var q,Z=[];function X(t,n,o){for(var r=0,i=0;r<t.length&&i+j[r]<n-w;)i+=j[r],r+=1;for(e(14,O=r);r<t.length&&o&&i<n+o+w;)i+=j[r],r+=1;e(15,D=r),e(10,A=U(t.length,O,D))}var z=function(t,n){var e;(0,c.H3)((function(){var o=t();o?(n(o.getBoundingClientRect().height),e&&e.disconnect(),(e=new ResizeObserver((function(t){var e=t[0];n(e.contentRect.height)}))).observe(o)):(n(0),e&&(e.disconnect(),e=null))})),(0,c.ev)((function(){e&&(e.disconnect(),e=null)}))};z((function(){return i}),(function(t){return h(void 0,void 0,void 0,_n().mark((function n(){var o,r;return _n().wrap((function(n){for(;;)switch(n.prev=n.next){case 0:if(k!==t){n.next=2;break}return n.abrupt("return");case 2:for(k=t,o=0,r=0;r<p.length;r+=1)o+=j[r];return P=Math.max(o,k-$),e(6,s.style.height=P+"px",s),n.next=9,new Promise((function(t){return setTimeout(t,0)}));case 9:F(p),X(p,W.getPosition(),k),0!==k&&H(N&&L),K();case 13:case"end":return n.stop()}}),n)})))})),z((function(){return r}),(function(t){if($!==t){$=t;for(var n=0,o=0;o<p.length;o+=1)n+=j[o];P=Math.max(n,k-R-$),e(6,s.style.height=P+"px",s),0!==k&&H(N&&L),K()}})),z((function(){return o}),(function(t){R!==t&&(R=t,F(p),K())}));var Y=function(t,n){return h(void 0,void 0,void 0,_n().mark((function o(){var r,i,a,c;return _n().wrap((function(o){for(;;)switch(o.prev=o.next){case 0:if(j[t]!==n&&0!==k){o.next=2;break}return o.abrupt("return");case 2:for(r=j[t],j[t]=n,i=p.length,a=t;a<i-1;a+=1)e(9,B[a+1]=B[a]+j[a],B);return P=Math.max(B[i-1]+j[i-1],k-R-$),c=W.getPosition(),V=!0,B[t]+r<c?W.updatePosition(c+n-r):H(N&&L),o.next=12,new Promise((function(t){return setTimeout(t,0)}));case 12:X(p,W.getPosition(),k),e(6,s.style.height=P+"px",s),K();case 15:case"end":return o.stop()}}),o)})))};(0,c.H3)((function(){e(21,q=!0),Gn.use()})),(0,c.ev)((function(){Gn.unuse()}));var J=new Mn(W),Q={scrollTo:function(t){var n=B[Math.max(0,Math.min(p.length-1,t))],e=Math.min(G(),n),o=Math.min(Math.floor(500*Math.abs(W.getPosition()-e)/2e3),500);W.scrollTo(e,o)}};return t.$$set=function(t){"items"in t&&e(0,p=t.items),"itemKey"in t&&e(16,m=t.itemKey),"itemHeight"in t&&e(17,b=t.itemHeight),"buffer"in t&&e(18,w=t.buffer),"stickToBottom"in t&&e(19,L=t.stickToBottom),"scrollbar"in t&&e(1,x=t.scrollbar),"start"in t&&e(14,O=t.start),"end"in t&&e(15,D=t.end),"$$scope"in t&&e(29,d=t.$$scope)},t.$$.update=function(){2097153&t.$$.dirty[0]&&q&&F(p)},[p,x,o,r,i,u,s,M,S,B,A,Y,J,v,O,D,m,b,w,L,Q,q,f,function(t){a.VnY[t?"unshift":"push"]((function(){e(2,o=t)}))},function(t,n){return Y(t.index,n)},function(t){a.VnY[t?"unshift":"push"]((function(){e(6,s=t)}))},function(t){a.VnY[t?"unshift":"push"]((function(){e(3,r=t)}))},function(t){a.VnY[t?"unshift":"push"]((function(){e(5,u=t)}))},function(t){a.VnY[t?"unshift":"push"]((function(){e(4,i=t)}))},d]}var ce=function(n){function e(t){var e;return e=n.call(this)||this,(0,a.S1n)((0,r.Z)(e),t,ae,ie,a.N8,{items:0,itemKey:16,itemHeight:17,buffer:18,stickToBottom:19,scrollbar:1,start:14,end:15,handler:20},null,[-1,-1]),e}return(0,i.Z)(e,n),(0,t.Z)(e,[{key:"items",get:function(){return this.$$.ctx[0]},set:function(t){this.$$set({items:t}),(0,a.yl1)()}},{key:"itemKey",get:function(){return this.$$.ctx[16]},set:function(t){this.$$set({itemKey:t}),(0,a.yl1)()}},{key:"itemHeight",get:function(){return this.$$.ctx[17]},set:function(t){this.$$set({itemHeight:t}),(0,a.yl1)()}},{key:"buffer",get:function(){return this.$$.ctx[18]},set:function(t){this.$$set({buffer:t}),(0,a.yl1)()}},{key:"stickToBottom",get:function(){return this.$$.ctx[19]},set:function(t){this.$$set({stickToBottom:t}),(0,a.yl1)()}},{key:"scrollbar",get:function(){return this.$$.ctx[1]},set:function(t){this.$$set({scrollbar:t}),(0,a.yl1)()}},{key:"start",get:function(){return this.$$.ctx[14]},set:function(t){this.$$set({start:t}),(0,a.yl1)()}},{key:"end",get:function(){return this.$$.ctx[15]},set:function(t){this.$$set({end:t}),(0,a.yl1)()}},{key:"handler",get:function(){return this.$$.ctx[20]}}]),e}(a.f_C),ue=ce;function se(t){var n;return{c:function(){(n=(0,a.bGB)("div")).textContent="Empty",(0,a.Ljt)(n,"slot","empty"),(0,a.Ljt)(n,"class","vc-plugin-empty")},m:function(t,e){(0,a.$Tr)(t,n,e)},p:a.ZTd,d:function(t){t&&(0,a.ogt)(n)}}}function le(t){var n,e;return(n=new sn({props:{slot:"item",log:t[16],showTimestamps:t[1],groupHeader:t[16].groupHeader}})).$on("groupCollapsed",t[6]),{c:function(){(0,a.YCL)(n.$$.fragment)},m:function(t,o){(0,a.yef)(n,t,o),e=!0},p:function(t,e){var o={};65536&e&&(o.log=t[16]),2&e&&(o.showTimestamps=t[1]),65536&e&&(o.groupHeader=t[16].groupHeader),n.$set(o)},i:function(t){e||((0,a.Ui)(n.$$.fragment,t),e=!0)},o:function(t){(0,a.etI)(n.$$.fragment,t),e=!1},d:function(t){(0,a.vpE)(n,t)}}}function fe(t){var n,e;return(n=new ln.Z({})).$on("filterText",t[5]),{c:function(){(0,a.YCL)(n.$$.fragment)},m:function(t,o){(0,a.yef)(n,t,o),e=!0},p:a.ZTd,i:function(t){e||((0,a.Ui)(n.$$.fragment,t),e=!0)},o:function(t){(0,a.etI)(n.$$.fragment,t),e=!1},d:function(t){(0,a.vpE)(n,t)}}}function de(t){var n,e,o=t[0]&&fe(t);return{c:function(){o&&o.c(),n=(0,a.cSb)()},m:function(t,r){o&&o.m(t,r),(0,a.$Tr)(t,n,r),e=!0},p:function(t,e){t[0]?o?(o.p(t,e),1&e&&(0,a.Ui)(o,1)):((o=fe(t)).c(),(0,a.Ui)(o,1),o.m(n.parentNode,n)):o&&((0,a.dvw)(),(0,a.etI)(o,1,1,(function(){o=null})),(0,a.gbL)())},i:function(t){e||((0,a.Ui)(o),e=!0)},o:function(t){(0,a.etI)(o),e=!1},d:function(t){o&&o.d(t),t&&(0,a.ogt)(n)}}}function ve(t){var n,e,o,r;function i(n){t[15](n)}var c={items:t[4],itemKey:"_id",itemHeight:30,buffer:100,stickToBottom:!0,scrollbar:!0,$$slots:{footer:[de],item:[le,function(t){return{16:t.item}},function(t){return t.item?65536:0}],empty:[se]},$$scope:{ctx:t}};return void 0!==t[3]&&(c.handler=t[3]),e=new ue({props:c}),a.VnY.push((function(){return(0,a.akz)(e,"handler",i)})),{c:function(){n=(0,a.bGB)("div"),(0,a.YCL)(e.$$.fragment),(0,a.Ljt)(n,"class","vc-plugin-content"),(0,a.VHj)(n,"vc-logs-has-cmd",t[0])},m:function(t,o){(0,a.$Tr)(t,n,o),(0,a.yef)(e,n,null),r=!0},p:function(t,r){var i=r[0],c={};16&i&&(c.items=t[4]),196611&i&&(c.$$scope={dirty:i,ctx:t}),!o&&8&i&&(o=!0,c.handler=t[3],(0,a.hjT)((function(){return o=!1}))),e.$set(c),1&i&&(0,a.VHj)(n,"vc-logs-has-cmd",t[0])},i:function(t){r||((0,a.Ui)(e.$$.fragment,t),r=!0)},o:function(t){(0,a.etI)(e.$$.fragment,t),r=!1},d:function(t){t&&(0,a.ogt)(n),(0,a.vpE)(e)}}}function he(t,n,e){var o,r=a.ZTd;t.$$.on_destroy.push((function(){return r()}));var i,u,s=n.pluginId,l=void 0===s?"default":s,f=n.showCmd,d=void 0!==f&&f,v=n.filterType,h=void 0===v?"all":v,p=n.showTimestamps,g=void 0!==p&&p,m=!1,_="",b=[];(0,c.H3)((function(){gn.use()})),(0,c.ev)((function(){gn.unuse()}));return t.$$set=function(t){"pluginId"in t&&e(7,l=t.pluginId),"showCmd"in t&&e(0,d=t.showCmd),"filterType"in t&&e(8,h=t.filterType),"showTimestamps"in t&&e(1,g=t.showTimestamps)},t.$$.update=function(){29056&t.$$.dirty&&(m||(e(2,i=ot.O.get(l)),r(),r=(0,a.LdU)(i,(function(t){return e(14,o=t)})),e(12,m=!0)),e(4,b=o.logList.filter((function(t){return("all"===h||h===t.type)&&(""===_||(0,et.HX)(t,_))&&!t.groupCollapsed}))))},[d,g,i,u,b,function(t){e(13,_=t.detail.filterText||"")},function(t){var n=t.detail.groupLabel,e=t.detail.groupHeader,o=t.detail.isGroupCollapsed;i.update((function(t){return t.logList.forEach((function(t){t.groupLabel===n&&(t.groupHeader>0?t.groupHeader=e:t.groupCollapsed=o)})),t}))},l,h,function(){u.scrollTo(0)},function(){u.scrollTo(b.length-1)},{fixedHeight:!0},m,_,o,function(t){e(3,u=t)}]}var pe=function(n){function e(t){var e;return e=n.call(this)||this,(0,a.S1n)((0,r.Z)(e),t,he,ve,a.N8,{pluginId:7,showCmd:0,filterType:8,showTimestamps:1,scrollToTop:9,scrollToBottom:10,options:11}),e}return(0,i.Z)(e,n),(0,t.Z)(e,[{key:"pluginId",get:function(){return this.$$.ctx[7]},set:function(t){this.$$set({pluginId:t}),(0,a.yl1)()}},{key:"showCmd",get:function(){return this.$$.ctx[0]},set:function(t){this.$$set({showCmd:t}),(0,a.yl1)()}},{key:"filterType",get:function(){return this.$$.ctx[8]},set:function(t){this.$$set({filterType:t}),(0,a.yl1)()}},{key:"showTimestamps",get:function(){return this.$$.ctx[1]},set:function(t){this.$$set({showTimestamps:t}),(0,a.yl1)()}},{key:"scrollToTop",get:function(){return this.$$.ctx[9]}},{key:"scrollToBottom",get:function(){return this.$$.ctx[10]}},{key:"options",get:function(){return this.$$.ctx[11]}}]),e}(a.f_C),ge=pe,me=__webpack_require__(5629),_e=function(){function t(t){this.model=void 0,this.pluginId=void 0,this.pluginId=t}return t.prototype.destroy=function(){this.model=void 0},t}(),be=function(t){function n(){for(var n,e=arguments.length,o=new Array(e),r=0;r<e;r++)o[r]=arguments[r];return(n=t.call.apply(t,[this].concat(o))||this).model=me.W.getSingleton(me.W,"VConsoleLogModel"),n}(0,i.Z)(n,t);var e=n.prototype;return e.log=function(){for(var t=arguments.length,n=new Array(t),e=0;e<t;e++)n[e]=arguments[e];this.addLog.apply(this,["log"].concat(n))},e.info=function(){for(var t=arguments.length,n=new Array(t),e=0;e<t;e++)n[e]=arguments[e];this.addLog.apply(this,["info"].concat(n))},e.debug=function(){for(var t=arguments.length,n=new Array(t),e=0;e<t;e++)n[e]=arguments[e];this.addLog.apply(this,["debug"].concat(n))},e.warn=function(){for(var t=arguments.length,n=new Array(t),e=0;e<t;e++)n[e]=arguments[e];this.addLog.apply(this,["warn"].concat(n))},e.error=function(){for(var t=arguments.length,n=new Array(t),e=0;e<t;e++)n[e]=arguments[e];this.addLog.apply(this,["error"].concat(n))},e.clear=function(){this.model&&this.model.clearPluginLog(this.pluginId)},e.addLog=function(t){if(this.model){for(var n=arguments.length,e=new Array(n>1?n-1:0),o=1;o<n;o++)e[o-1]=arguments[o];e.unshift("["+this.pluginId+"]"),this.model.addLog({type:t,origData:e},{noOrig:!0})}},n}(_e),ye=function(t){function n(n,e){var o;return(o=t.call(this,n,e,ge,{pluginId:n,filterType:"all"})||this).model=me.W.getSingleton(me.W,"VConsoleLogModel"),o.isReady=!1,o.isShow=!1,o.isInBottom=!0,o.model.bindPlugin(n),o.exporter=new be(n),o}(0,i.Z)(n,t);var e=n.prototype;return e.onReady=function(){var n,e;t.prototype.onReady.call(this),this.model.maxLogNumber=Number(null==(n=this.vConsole.option.log)?void 0:n.maxLogNumber)||1e3,this.compInstance.showTimestamps=!(null==(e=this.vConsole.option.log)||!e.showTimestamps)},e.onRemove=function(){t.prototype.onRemove.call(this),this.model.unbindPlugin(this.id)},e.onAddTopBar=function(t){for(var n=this,e=["All","Log","Info","Warn","Error"],o=[],r=0;r<e.length;r++)o.push({name:e[r],data:{type:e[r].toLowerCase()},actived:0===r,className:"",onClick:function(t,e){if(e.type===n.compInstance.filterType)return!1;n.compInstance.filterType=e.type}});o[0].className="vc-actived",t(o)},e.onAddTool=function(t){var n=this;t([{name:"Clear",global:!1,onClick:function(t){n.model.clearPluginLog(n.id),n.vConsole.triggerEvent("clearLog")}},{name:"Top",global:!1,onClick:function(t){n.compInstance.scrollToTop()}},{name:"Bottom",global:!1,onClick:function(t){n.compInstance.scrollToBottom()}}])},e.onUpdateOption=function(){var t,n,e,o;(null==(t=this.vConsole.option.log)?void 0:t.maxLogNumber)!==this.model.maxLogNumber&&(this.model.maxLogNumber=Number(null==(e=this.vConsole.option.log)?void 0:e.maxLogNumber)||1e3);!(null==(n=this.vConsole.option.log)||!n.showTimestamps)!==this.compInstance.showTimestamps&&(this.compInstance.showTimestamps=!(null==(o=this.vConsole.option.log)||!o.showTimestamps))},n}(nt),we=function(t){function e(){for(var n,e=arguments.length,o=new Array(e),r=0;r<e;r++)o[r]=arguments[r];return(n=t.call.apply(t,[this].concat(o))||this).onErrorHandler=void 0,n.resourceErrorHandler=void 0,n.rejectionHandler=void 0,n}(0,i.Z)(e,t);var o=e.prototype;return o.onReady=function(){t.prototype.onReady.call(this),this.bindErrors(),this.compInstance.showCmd=!0},o.onRemove=function(){t.prototype.onRemove.call(this),this.unbindErrors()},o.bindErrors=function(){n.FJ(window)&&n.mf(window.addEventListener)&&(this.catchWindowOnError(),this.catchResourceError(),this.catchUnhandledRejection())},o.unbindErrors=function(){n.FJ(window)&&n.mf(window.addEventListener)&&(window.removeEventListener("error",this.onErrorHandler),window.removeEventListener("error",this.resourceErrorHandler),window.removeEventListener("unhandledrejection",this.rejectionHandler))},o.catchWindowOnError=function(){var t=this;this.onErrorHandler=this.onErrorHandler?this.onErrorHandler:function(n){var e=n.message;n.filename&&(e+="\\n\\t"+n.filename.replace(location.origin,""),(n.lineno||n.colno)&&(e+=":"+n.lineno+":"+n.colno)),e+="\\n"+(!!n.error&&!!n.error.stack&&n.error.stack.toString()||""),t.model.addLog({type:"error",origData:[e]},{noOrig:!0})},window.removeEventListener("error",this.onErrorHandler),window.addEventListener("error",this.onErrorHandler)},o.catchResourceError=function(){var t=this;this.resourceErrorHandler=this.resourceErrorHandler?this.resourceErrorHandler:function(n){var e=n.target;if(["link","video","script","img","audio"].indexOf(e.localName)>-1){var o=e.href||e.src||e.currentSrc;t.model.addLog({type:"error",origData:["GET <"+e.localName+"> error: "+o]},{noOrig:!0})}},window.removeEventListener("error",this.resourceErrorHandler),window.addEventListener("error",this.resourceErrorHandler,!0)},o.catchUnhandledRejection=function(){var t=this;this.rejectionHandler=this.rejectionHandler?this.rejectionHandler:function(n){var e=n&&n.reason,o="Uncaught (in promise) ",r=[o,e];e instanceof Error&&(r=[o,{name:e.name,message:e.message,stack:e.stack}]),t.model.addLog({type:"error",origData:r},{noOrig:!0})},window.removeEventListener("unhandledrejection",this.rejectionHandler),window.addEventListener("unhandledrejection",this.rejectionHandler)},e}(ye),Ee=function(t){function n(){return t.apply(this,arguments)||this}(0,i.Z)(n,t);var e=n.prototype;return e.onReady=function(){t.prototype.onReady.call(this),this.printSystemInfo()},e.printSystemInfo=function(){var t=navigator.userAgent,n=[],e=t.match(/MicroMessenger\/([\d\.]+)/i),o=e&&e[1]?e[1]:null;"servicewechat.com"===location.host||console.info("[system]","Location:",location.href);var r=t.match(/(ipod).*\s([\d_]+)/i),i=t.match(/(ipad).*\s([\d_]+)/i),a=t.match(/(iphone)\sos\s([\d_]+)/i),c=t.match(/(android)\s([\d\.]+)/i),u=t.match(/(Mac OS X)\s([\d_]+)/i);n=[],c?n.push("Android "+c[2]):a?n.push("iPhone, iOS "+a[2].replace(/_/g,".")):i?n.push("iPad, iOS "+i[2].replace(/_/g,".")):r?n.push("iPod, iOS "+r[2].replace(/_/g,".")):u&&n.push("Mac, MacOS "+u[2].replace(/_/g,".")),o&&n.push("WeChat "+o),console.info("[system]","Client:",n.length?n.join(", "):"Unknown");var s=t.toLowerCase().match(/ nettype\/([^ ]+)/g);s&&s[0]&&(n=[(s=s[0].split("/"))[1]],console.info("[system]","Network:",n.length?n.join(", "):"Unknown")),console.info("[system]","UA:",t),setTimeout((function(){var t=window.performance||window.msPerformance||window.webkitPerformance;if(t&&t.timing){var n=t.timing;n.navigationStart&&console.info("[system]","navigationStart:",n.navigationStart),n.navigationStart&&n.domainLookupStart&&console.info("[system]","navigation:",n.domainLookupStart-n.navigationStart+"ms"),n.domainLookupEnd&&n.domainLookupStart&&console.info("[system]","dns:",n.domainLookupEnd-n.domainLookupStart+"ms"),n.connectEnd&&n.connectStart&&(n.connectEnd&&n.secureConnectionStart?console.info("[system]","tcp (ssl):",n.connectEnd-n.connectStart+"ms ("+(n.connectEnd-n.secureConnectionStart)+"ms)"):console.info("[system]","tcp:",n.connectEnd-n.connectStart+"ms")),n.responseStart&&n.requestStart&&console.info("[system]","request:",n.responseStart-n.requestStart+"ms"),n.responseEnd&&n.responseStart&&console.info("[system]","response:",n.responseEnd-n.responseStart+"ms"),n.domComplete&&n.domLoading&&(n.domContentLoadedEventStart&&n.domLoading?console.info("[system]","domComplete (domLoaded):",n.domComplete-n.domLoading+"ms ("+(n.domContentLoadedEventStart-n.domLoading)+"ms)"):console.info("[system]","domComplete:",n.domComplete-n.domLoading+"ms")),n.loadEventEnd&&n.loadEventStart&&console.info("[system]","loadEvent:",n.loadEventEnd-n.loadEventStart+"ms"),n.navigationStart&&n.loadEventEnd&&console.info("[system]","total (DOM):",n.loadEventEnd-n.navigationStart+"ms ("+(n.domComplete-n.navigationStart)+"ms)")}}),0)},n}(ye),Le=__webpack_require__(3313),Te=__webpack_require__(643);function xe(t,n){var e="undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(e)return(e=e.call(t)).next.bind(e);if(Array.isArray(t)||(e=function(t,n){if(!t)return;if("string"==typeof t)return Ce(t,n);var e=Object.prototype.toString.call(t).slice(8,-1);"Object"===e&&t.constructor&&(e=t.constructor.name);if("Map"===e||"Set"===e)return Array.from(t);if("Arguments"===e||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(e))return Ce(t,n)}(t))||n&&t&&"number"==typeof t.length){e&&(t=e);var o=0;return function(){return o>=t.length?{done:!0}:{done:!1,value:t[o++]}}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}function Ce(t,n){(null==n||n>t.length)&&(n=t.length);for(var e=0,o=new Array(n);e<n;e++)o[e]=t[e];return o}var Oe=function(t,e){void 0===e&&(e={}),n.Kn(e)||(e={});var o=t?t.split("?"):[];if(o.shift(),o.length>0)for(var r,i=xe(o=o.join("?").split("&"));!(r=i()).done;){var a=r.value.split("=");try{e[a[0]]=decodeURIComponent(a[1])}catch(t){e[a[0]]=a[1]}}return e},Ie=function(t,e){var o="";switch(t){case"":case"text":case"json":if(n.HD(e))try{o=JSON.parse(e),o=n.hZ(o,{maxDepth:10,keyMaxLen:1e4,pretty:!0,standardJSON:!0})}catch(t){o=n.id(String(e),1e4)}else n.Kn(e)||n.kJ(e)?o=n.hZ(e,{maxDepth:10,keyMaxLen:1e4,pretty:!0,standardJSON:!0}):void 0!==e&&(o=Object.prototype.toString.call(e));break;default:void 0!==e&&(o=Object.prototype.toString.call(e))}return o},De=function(t){if(!t)return null;var e=null;if("string"==typeof t)try{e=JSON.parse(t)}catch(n){var o=t.split("&");if(1===o.length)e=t;else{e={};for(var r,i=xe(o);!(r=i()).done;){var a=r.value.split("=");e[a[0]]=void 0===a[1]?"undefined":a[1]}}}else if(n.TW(t)){e={};for(var c,u=xe(t);!(c=u()).done;){var s=c.value,l=s[0],f=s[1];e[l]="string"==typeof f?f:"[object Object]"}}else if(n.PO(t))e=t;else{e="[object "+n.zl(t)+"]"}return e},Re=function(t){(void 0===t&&(t=""),t.startsWith("//"))&&(t=""+new URL(window.location.href).protocol+t);return t.startsWith("http")?new URL(t):new URL(t,window.location.href)},$e=function(){this.id="",this.name="",this.method="",this.url="",this.status=0,this.statusText="",this.cancelState=0,this.readyState=0,this.header=null,this.responseType="",this.requestType=void 0,this.requestHeader=null,this.response=void 0,this.responseSize=0,this.responseSizeText="",this.startTime=0,this.startTimeText="",this.endTime=0,this.costTime=0,this.getData=null,this.postData=null,this.actived=!1,this.noVConsole=!1,this.id=(0,n.QI)()},ke=function(t){function n(e){var o;return(o=t.call(this)||this)._response=void 0,new Proxy(e,n.Handler)||(0,r.Z)(o)}return(0,i.Z)(n,t),n}($e);ke.Handler={get:function(t,n){return"response"===n?t._response:Reflect.get(t,n)},set:function(t,n,e){var o;switch(n){case"response":return t._response=Ie(t.responseType,e),!0;case"url":var r=(null==(o=e=String(e))?void 0:o.replace(new RegExp("[/]*$"),"").split("/").pop())||"Unknown";Reflect.set(t,"name",r);var i=Oe(e,t.getData);Reflect.set(t,"getData",i);break;case"status":var a=String(e)||"Unknown";Reflect.set(t,"statusText",a);break;case"startTime":if(e&&t.endTime){var c=t.endTime-e;Reflect.set(t,"costTime",c)}break;case"endTime":if(e&&t.startTime){var u=e-t.startTime;Reflect.set(t,"costTime",u)}}return Reflect.set(t,n,e)}};var Pe=function(){function t(t,n){var e=this;this.XMLReq=void 0,this.item=void 0,this.onUpdateCallback=void 0,this.XMLReq=t,this.XMLReq.onreadystatechange=function(){e.onReadyStateChange()},this.XMLReq.onabort=function(){e.onAbort()},this.XMLReq.ontimeout=function(){e.onTimeout()},this.item=new $e,this.item.requestType="xhr",this.onUpdateCallback=n}var e=t.prototype;return e.get=function(t,n){switch(n){case"_noVConsole":return this.item.noVConsole;case"open":return this.getOpen(t);case"send":return this.getSend(t);case"setRequestHeader":return this.getSetRequestHeader(t);default:var e=Reflect.get(t,n);return"function"==typeof e?e.bind(t):e}},e.set=function(t,n,e){switch(n){case"_noVConsole":return void(this.item.noVConsole=!!e);case"onreadystatechange":return this.setOnReadyStateChange(t,n,e);case"onabort":return this.setOnAbort(t,n,e);case"ontimeout":return this.setOnTimeout(t,n,e)}return Reflect.set(t,n,e)},e.onReadyStateChange=function(){this.item.readyState=this.XMLReq.readyState,this.item.responseType=this.XMLReq.responseType,this.item.endTime=Date.now(),this.item.costTime=this.item.endTime-this.item.startTime,this.updateItemByReadyState(),this.item.response=Ie(this.item.responseType,this.item.response),this.triggerUpdate()},e.onAbort=function(){this.item.cancelState=1,this.item.statusText="Abort",this.triggerUpdate()},e.onTimeout=function(){this.item.cancelState=3,this.item.statusText="Timeout",this.triggerUpdate()},e.triggerUpdate=function(){this.item.noVConsole||this.onUpdateCallback(this.item)},e.getOpen=function(t){var n=this,e=Reflect.get(t,"open");return function(){for(var o=arguments.length,r=new Array(o),i=0;i<o;i++)r[i]=arguments[i];var a=r[0],c=r[1];return n.item.method=a?a.toUpperCase():"GET",n.item.url=c||"",n.item.name=n.item.url.replace(new RegExp("[/]*$"),"").split("/").pop()||"",n.item.getData=Oe(n.item.url,{}),n.triggerUpdate(),e.apply(t,r)}},e.getSend=function(t){var n=this,e=Reflect.get(t,"send");return function(){for(var o=arguments.length,r=new Array(o),i=0;i<o;i++)r[i]=arguments[i];var a=r[0];return n.item.postData=De(a),n.triggerUpdate(),e.apply(t,r)}},e.getSetRequestHeader=function(t){var n=this,e=Reflect.get(t,"setRequestHeader");return function(){n.item.requestHeader||(n.item.requestHeader={});for(var o=arguments.length,r=new Array(o),i=0;i<o;i++)r[i]=arguments[i];return n.item.requestHeader[r[0]]=r[1],n.triggerUpdate(),e.apply(t,r)}},e.setOnReadyStateChange=function(t,n,e){var o=this;return Reflect.set(t,n,(function(){o.onReadyStateChange();for(var n=arguments.length,r=new Array(n),i=0;i<n;i++)r[i]=arguments[i];e.apply(t,r)}))},e.setOnAbort=function(t,n,e){var o=this;return Reflect.set(t,n,(function(){o.onAbort();for(var n=arguments.length,r=new Array(n),i=0;i<n;i++)r[i]=arguments[i];e.apply(t,r)}))},e.setOnTimeout=function(t,n,e){var o=this;return Reflect.set(t,n,(function(){o.onTimeout();for(var n=arguments.length,r=new Array(n),i=0;i<n;i++)r[i]=arguments[i];e.apply(t,r)}))},e.updateItemByReadyState=function(){switch(this.XMLReq.readyState){case 0:case 1:if(this.item.status=0,this.item.statusText="Pending",!this.item.startTime){this.item.startTime=Date.now();var t=(0,n._3)(this.item.startTime);this.item.startTimeText=t.year+"-"+t.month+"-"+t.day+" "+t.hour+":"+t.minute+":"+t.second+"."+t.millisecond}break;case 2:this.item.status=this.XMLReq.status,this.item.statusText="Loading",this.item.header={};for(var e=(this.XMLReq.getAllResponseHeaders()||"").split("\n"),o=0;o<e.length;o++){var r=e[o];if(r){var i=r.split(": "),a=i[0],c=i.slice(1).join(": ");this.item.header[a]=c}}break;case 3:this.item.status=this.XMLReq.status,this.item.statusText="Loading",this.XMLReq.response&&this.XMLReq.response.length&&(this.item.responseSize=this.XMLReq.response.length,this.item.responseSizeText=(0,n.KL)(this.item.responseSize));break;case 4:this.item.status=this.XMLReq.status||this.item.status||0,this.item.statusText=String(this.item.status),this.item.endTime=Date.now(),this.item.costTime=this.item.endTime-(this.item.startTime||this.item.endTime),this.item.response=this.XMLReq.response,this.XMLReq.response&&this.XMLReq.response.length&&(this.item.responseSize=this.XMLReq.response.length,this.item.responseSizeText=(0,n.KL)(this.item.responseSize));break;default:this.item.status=this.XMLReq.status,this.item.statusText="Unknown"}},t}(),Me=function(){function t(){}return t.create=function(t){return new Proxy(XMLHttpRequest,{construct:function(n){var e=new n;return new Proxy(e,new Pe(e,t))}})},t}();function Se(t,n){var e="undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(e)return(e=e.call(t)).next.bind(e);if(Array.isArray(t)||(e=function(t,n){if(!t)return;if("string"==typeof t)return je(t,n);var e=Object.prototype.toString.call(t).slice(8,-1);"Object"===e&&t.constructor&&(e=t.constructor.name);if("Map"===e||"Set"===e)return Array.from(t);if("Arguments"===e||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(e))return je(t,n)}(t))||n&&t&&"number"==typeof t.length){e&&(t=e);var o=0;return function(){return o>=t.length?{done:!0}:{done:!1,value:t[o++]}}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}function je(t,n){(null==n||n>t.length)&&(n=t.length);for(var e=0,o=new Array(n);e<n;e++)o[e]=t[e];return o}Me.origXMLHttpRequest=XMLHttpRequest;var Be=function(){function t(t,n,e){this.resp=void 0,this.item=void 0,this.onUpdateCallback=void 0,this.resp=t,this.item=n,this.onUpdateCallback=e,this.mockReader()}var e=t.prototype;return e.set=function(t,n,e){return Reflect.set(t,n,e)},e.get=function(t,n){var e=this,o=Reflect.get(t,n);switch(n){case"arrayBuffer":case"blob":case"formData":case"json":case"text":return function(){return e.item.responseType=n.toLowerCase(),o.apply(t).then((function(t){return e.item.response=Ie(e.item.responseType,t),e.onUpdateCallback(e.item),t}))}}return"function"==typeof o?o.bind(t):o},e.mockReader=function(){var t,e=this;if(this.resp.body&&"function"==typeof this.resp.body.getReader){var o=this.resp.body.getReader;this.resp.body.getReader=function(){var r=o.apply(e.resp.body);if(4===e.item.readyState)return r;var i=r.read,a=r.cancel;return e.item.responseType="arraybuffer",r.read=function(){return i.apply(r).then((function(o){if(t){var r=new Uint8Array(t.length+o.value.length);r.set(t),r.set(o.value,t.length),t=r}else t=new Uint8Array(o.value);return e.item.endTime=Date.now(),e.item.costTime=e.item.endTime-(e.item.startTime||e.item.endTime),e.item.readyState=o.done?4:3,e.item.statusText=o.done?String(e.item.status):"Loading",e.item.responseSize=t.length,e.item.responseSizeText=n.KL(e.item.responseSize),o.done&&(e.item.response=Ie(e.item.responseType,t)),e.onUpdateCallback(e.item),o}))},r.cancel=function(){e.item.cancelState=2,e.item.statusText="Cancel",e.item.endTime=Date.now(),e.item.costTime=e.item.endTime-(e.item.startTime||e.item.endTime),e.item.response=Ie(e.item.responseType,t),e.onUpdateCallback(e.item);for(var n=arguments.length,o=new Array(n),i=0;i<n;i++)o[i]=arguments[i];return a.apply(r,o)},r}}},t}(),Ae=function(){function t(t){this.onUpdateCallback=void 0,this.onUpdateCallback=t}var e=t.prototype;return e.apply=function(t,n,e){var o=this,r=e[0],i=e[1],a=new $e;return this.beforeFetch(a,r,i),t.apply(window,e).then(this.afterFetch(a)).catch((function(t){throw a.endTime=Date.now(),a.costTime=a.endTime-(a.startTime||a.endTime),o.onUpdateCallback(a),t}))},e.beforeFetch=function(t,e,o){var r,i="GET",a=null;if(n.HD(e)?(i=(null==o?void 0:o.method)||"GET",r=Re(e),a=(null==o?void 0:o.headers)||null):(i=e.method||"GET",r=Re(e.url),a=e.headers),t.method=i,t.requestType="fetch",t.requestHeader=a,t.url=r.toString(),t.name=(r.pathname.split("/").pop()||"")+r.search,t.status=0,t.statusText="Pending",t.readyState=1,!t.startTime){t.startTime=Date.now();var c=n._3(t.startTime);t.startTimeText=c.year+"-"+c.month+"-"+c.day+" "+c.hour+":"+c.minute+":"+c.second+"."+c.millisecond}if("[object Headers]"===Object.prototype.toString.call(a)){t.requestHeader={};for(var u,s=Se(a);!(u=s()).done;){var l=u.value,f=l[0],d=l[1];t.requestHeader[f]=d}}else t.requestHeader=a;if(r.search&&r.searchParams){t.getData={};for(var v,h=Se(r.searchParams);!(v=h()).done;){var p=v.value,g=p[0],m=p[1];t.getData[g]=m}}null!=o&&o.body&&(t.postData=De(o.body)),this.onUpdateCallback(t)},e.afterFetch=function(t){var e=this;return function(o){t.endTime=Date.now(),t.costTime=t.endTime-(t.startTime||t.endTime),t.status=o.status,t.statusText=String(o.status);var r=!1;t.header={};for(var i,a=Se(o.headers);!(i=a()).done;){var c=i.value,u=c[0],s=c[1];t.header[u]=s,r=s.toLowerCase().indexOf("chunked")>-1||r}return r?t.readyState=3:(t.readyState=4,e.handleResponseBody(o.clone(),t).then((function(o){t.responseSize="string"==typeof o?o.length:o.byteLength,t.responseSizeText=n.KL(t.responseSize),t.response=Ie(t.responseType,o),e.onUpdateCallback(t)}))),e.onUpdateCallback(t),new Proxy(o,new Be(o,t,e.onUpdateCallback))}},e.handleResponseBody=function(t,n){var e=t.headers.get("content-type");return e&&e.includes("application/json")?(n.responseType="json",t.text()):e&&(e.includes("text/html")||e.includes("text/plain"))?(n.responseType="text",t.text()):(n.responseType="arraybuffer",t.arrayBuffer())},t}(),Ue=function(){function t(){}return t.create=function(t){return new Proxy(fetch,new Ae(t))},t}();function Ge(t,n){var e="undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(e)return(e=e.call(t)).next.bind(e);if(Array.isArray(t)||(e=function(t,n){if(!t)return;if("string"==typeof t)return Ne(t,n);var e=Object.prototype.toString.call(t).slice(8,-1);"Object"===e&&t.constructor&&(e=t.constructor.name);if("Map"===e||"Set"===e)return Array.from(t);if("Arguments"===e||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(e))return Ne(t,n)}(t))||n&&t&&"number"==typeof t.length){e&&(t=e);var o=0;return function(){return o>=t.length?{done:!0}:{done:!1,value:t[o++]}}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}function Ne(t,n){(null==n||n>t.length)&&(n=t.length);for(var e=0,o=new Array(n);e<n;e++)o[e]=t[e];return o}Ue.origFetch=fetch;var Ve=function(t){return t instanceof Blob?t.type:t instanceof FormData?"multipart/form-data":t instanceof URLSearchParams?"application/x-www-form-urlencoded;charset=UTF-8":"text/plain;charset=UTF-8"},We=function(){function t(t){this.onUpdateCallback=void 0,this.onUpdateCallback=t}return t.prototype.apply=function(t,n,e){var o=e[0],r=e[1],i=new $e,a=Re(o);if(i.method="POST",i.url=o,i.name=(a.pathname.split("/").pop()||"")+a.search,i.requestType="ping",i.requestHeader={"Content-Type":Ve(r)},i.status=0,i.statusText="Pending",a.search&&a.searchParams){i.getData={};for(var c,u=Ge(a.searchParams);!(c=u()).done;){var s=c.value,l=s[0],f=s[1];i.getData[l]=f}}i.postData=De(r),i.startTime||(i.startTime=Date.now()),this.onUpdateCallback(i);var d=t.apply(n,e);return d?(i.endTime=Date.now(),i.costTime=i.endTime-(i.startTime||i.endTime),i.status=0,i.statusText="Sent",i.readyState=4):(i.status=500,i.statusText="Unknown"),this.onUpdateCallback(i),d},t}(),Ke=function(){function t(){}return t.create=function(t){return new Proxy(navigator.sendBeacon,new We(t))},t}();Ke.origSendBeacon=navigator.sendBeacon;var He=(0,Le.fZ)({}),Fe=function(t){function n(){var n;return(n=t.call(this)||this).maxNetworkNumber=1e3,n.itemCounter=0,n.mockXHR(),n.mockFetch(),n.mockSendBeacon(),n}(0,i.Z)(n,t);var e=n.prototype;return e.unMock=function(){window.hasOwnProperty("XMLHttpRequest")&&(window.XMLHttpRequest=Me.origXMLHttpRequest),window.hasOwnProperty("fetch")&&(window.fetch=Ue.origFetch),window.navigator.sendBeacon&&(window.navigator.sendBeacon=Ke.origSendBeacon)},e.clearLog=function(){He.set({})},e.updateRequest=function(t,n){var e=(0,Le.U2)(He),o=!!e[t];if(o){var r=e[t];for(var i in n)r[i]=n[i];n=r}He.update((function(e){return e[t]=n,e})),o||(R.x.updateTime(),this.limitListLength())},e.mockXHR=function(){var t=this;window.hasOwnProperty("XMLHttpRequest")&&(window.XMLHttpRequest=Me.create((function(n){t.updateRequest(n.id,n)})))},e.mockFetch=function(){var t=this;window.hasOwnProperty("fetch")&&(window.fetch=Ue.create((function(n){t.updateRequest(n.id,n)})))},e.mockSendBeacon=function(){var t=this;window.navigator.sendBeacon&&(window.navigator.sendBeacon=Ke.create((function(n){t.updateRequest(n.id,n)})))},e.limitListLength=function(){var t=this;if(this.itemCounter++,this.itemCounter%10==0){this.itemCounter=0;var n=(0,Le.U2)(He),e=Object.keys(n);e.length>this.maxNetworkNumber-10&&He.update((function(n){for(var o=e.splice(0,e.length-t.maxNetworkNumber+10),r=0;r<o.length;r++)n[o[r]]=void 0,delete n[o[r]];return n}))}},n}(Te.N),qe=__webpack_require__(8747),Ze={};qe.Z&&qe.Z.locals&&(Ze.locals=qe.Z.locals);var Xe,ze=0,Ye={};Ye.styleTagTransform=b(),Ye.setAttributes=p(),Ye.insert=v().bind(null,"head"),Ye.domAPI=f(),Ye.insertStyleElement=m(),Ze.use=function(t){return Ye.options=t||{},ze++||(Xe=s()(qe.Z,Ye)),Ze},Ze.unuse=function(){ze>0&&!--ze&&(Xe(),Xe=null)};var Je=Ze;function Qe(t,n,e){var o=t.slice();return o[11]=n[e][0],o[12]=n[e][1],o}function to(t,n,e){var o=t.slice();return o[11]=n[e][0],o[12]=n[e][1],o}function no(t,n,e){var o=t.slice();return o[11]=n[e][0],o[12]=n[e][1],o}function eo(t,n,e){var o=t.slice();return o[11]=n[e][0],o[12]=n[e][1],o}function oo(t){var n,e,o;return{c:function(){n=(0,a.fLW)("("),e=(0,a.fLW)(t[0]),o=(0,a.fLW)(")")},m:function(t,r){(0,a.$Tr)(t,n,r),(0,a.$Tr)(t,e,r),(0,a.$Tr)(t,o,r)},p:function(t,n){1&n&&(0,a.rTO)(e,t[0])},d:function(t){t&&(0,a.ogt)(n),t&&(0,a.ogt)(e),t&&(0,a.ogt)(o)}}}function ro(t){var n,e,o,r,i,c,u=t[0]>0&&oo(t);return{c:function(){n=(0,a.bGB)("dl"),e=(0,a.bGB)("dd"),o=(0,a.fLW)("Name "),u&&u.c(),(r=(0,a.bGB)("dd")).textContent="Method",(i=(0,a.bGB)("dd")).textContent="Status",(c=(0,a.bGB)("dd")).textContent="Time",(0,a.Ljt)(e,"class","vc-table-col vc-table-col-4"),(0,a.Ljt)(r,"class","vc-table-col"),(0,a.Ljt)(i,"class","vc-table-col"),(0,a.Ljt)(c,"class","vc-table-col"),(0,a.Ljt)(n,"class","vc-table-row")},m:function(t,s){(0,a.$Tr)(t,n,s),(0,a.R3I)(n,e),(0,a.R3I)(e,o),u&&u.m(e,null),(0,a.R3I)(n,r),(0,a.R3I)(n,i),(0,a.R3I)(n,c)},p:function(t,n){t[0]>0?u?u.p(t,n):((u=oo(t)).c(),u.m(e,null)):u&&(u.d(1),u=null)},d:function(t){t&&(0,a.ogt)(n),u&&u.d()}}}function io(t){var n;return{c:function(){(n=(0,a.bGB)("div")).textContent="Empty",(0,a.Ljt)(n,"slot","empty"),(0,a.Ljt)(n,"class","vc-plugin-empty")},m:function(t,e){(0,a.$Tr)(t,n,e)},p:a.ZTd,d:function(t){t&&(0,a.ogt)(n)}}}function ao(t){var n,e,o,r,i,c,u,s;c=new ut({props:{content:t[10].requestHeader}});for(var l=Object.entries(t[10].requestHeader),f=[],d=0;d<l.length;d+=1)f[d]=co(eo(t,l,d));return{c:function(){n=(0,a.bGB)("div"),e=(0,a.bGB)("dl"),o=(0,a.bGB)("dt"),r=(0,a.fLW)("Request Headers\n "),i=(0,a.bGB)("i"),(0,a.YCL)(c.$$.fragment),u=(0,a.DhX)();for(var t=0;t<f.length;t+=1)f[t].c();(0,a.Ljt)(i,"class","vc-table-row-icon"),(0,a.Ljt)(o,"class","vc-table-col vc-table-col-title"),(0,a.Ljt)(e,"class","vc-table-row vc-left-border")},m:function(t,l){(0,a.$Tr)(t,n,l),(0,a.R3I)(n,e),(0,a.R3I)(e,o),(0,a.R3I)(o,r),(0,a.R3I)(o,i),(0,a.yef)(c,i,null),(0,a.R3I)(n,u);for(var d=0;d<f.length;d+=1)f[d].m(n,null);s=!0},p:function(t,e){var o={};if(1024&e&&(o.content=t[10].requestHeader),c.$set(o),1040&e){var r;for(l=Object.entries(t[10].requestHeader),r=0;r<l.length;r+=1){var i=eo(t,l,r);f[r]?f[r].p(i,e):(f[r]=co(i),f[r].c(),f[r].m(n,null))}for(;r<f.length;r+=1)f[r].d(1);f.length=l.length}},i:function(t){s||((0,a.Ui)(c.$$.fragment,t),s=!0)},o:function(t){(0,a.etI)(c.$$.fragment,t),s=!1},d:function(t){t&&(0,a.ogt)(n),(0,a.vpE)(c),(0,a.RMB)(f,t)}}}function co(t){var n,e,o,r,i,c,u,s=t[11]+"",l=t[4](t[12])+"";return{c:function(){n=(0,a.bGB)("div"),e=(0,a.bGB)("div"),o=(0,a.fLW)(s),r=(0,a.DhX)(),i=(0,a.bGB)("div"),c=(0,a.fLW)(l),u=(0,a.DhX)(),(0,a.Ljt)(e,"class","vc-table-col vc-table-col-2"),(0,a.Ljt)(i,"class","vc-table-col vc-table-col-4 vc-table-col-value vc-max-height-line"),(0,a.Ljt)(n,"class","vc-table-row vc-left-border vc-small")},m:function(t,s){(0,a.$Tr)(t,n,s),(0,a.R3I)(n,e),(0,a.R3I)(e,o),(0,a.R3I)(n,r),(0,a.R3I)(n,i),(0,a.R3I)(i,c),(0,a.R3I)(n,u)},p:function(t,n){1024&n&&s!==(s=t[11]+"")&&(0,a.rTO)(o,s),1024&n&&l!==(l=t[4](t[12])+"")&&(0,a.rTO)(c,l)},d:function(t){t&&(0,a.ogt)(n)}}}function uo(t){var n,e,o,r,i,c,u,s;c=new ut({props:{content:t[10].getData}});for(var l=Object.entries(t[10].getData),f=[],d=0;d<l.length;d+=1)f[d]=so(no(t,l,d));return{c:function(){n=(0,a.bGB)("div"),e=(0,a.bGB)("dl"),o=(0,a.bGB)("dt"),r=(0,a.fLW)("Query String Parameters\n "),i=(0,a.bGB)("i"),(0,a.YCL)(c.$$.fragment),u=(0,a.DhX)();for(var t=0;t<f.length;t+=1)f[t].c();(0,a.Ljt)(i,"class","vc-table-row-icon"),(0,a.Ljt)(o,"class","vc-table-col vc-table-col-title"),(0,a.Ljt)(e,"class","vc-table-row vc-left-border")},m:function(t,l){(0,a.$Tr)(t,n,l),(0,a.R3I)(n,e),(0,a.R3I)(e,o),(0,a.R3I)(o,r),(0,a.R3I)(o,i),(0,a.yef)(c,i,null),(0,a.R3I)(n,u);for(var d=0;d<f.length;d+=1)f[d].m(n,null);s=!0},p:function(t,e){var o={};if(1024&e&&(o.content=t[10].getData),c.$set(o),1040&e){var r;for(l=Object.entries(t[10].getData),r=0;r<l.length;r+=1){var i=no(t,l,r);f[r]?f[r].p(i,e):(f[r]=so(i),f[r].c(),f[r].m(n,null))}for(;r<f.length;r+=1)f[r].d(1);f.length=l.length}},i:function(t){s||((0,a.Ui)(c.$$.fragment,t),s=!0)},o:function(t){(0,a.etI)(c.$$.fragment,t),s=!1},d:function(t){t&&(0,a.ogt)(n),(0,a.vpE)(c),(0,a.RMB)(f,t)}}}function so(t){var n,e,o,r,i,c,u,s=t[11]+"",l=t[4](t[12])+"";return{c:function(){n=(0,a.bGB)("div"),e=(0,a.bGB)("div"),o=(0,a.fLW)(s),r=(0,a.DhX)(),i=(0,a.bGB)("div"),c=(0,a.fLW)(l),u=(0,a.DhX)(),(0,a.Ljt)(e,"class","vc-table-col vc-table-col-2"),(0,a.Ljt)(i,"class","vc-table-col vc-table-col-4 vc-table-col-value vc-max-height-line"),(0,a.Ljt)(n,"class","vc-table-row vc-left-border vc-small")},m:function(t,s){(0,a.$Tr)(t,n,s),(0,a.R3I)(n,e),(0,a.R3I)(e,o),(0,a.R3I)(n,r),(0,a.R3I)(n,i),(0,a.R3I)(i,c),(0,a.R3I)(n,u)},p:function(t,n){1024&n&&s!==(s=t[11]+"")&&(0,a.rTO)(o,s),1024&n&&l!==(l=t[4](t[12])+"")&&(0,a.rTO)(c,l)},d:function(t){t&&(0,a.ogt)(n)}}}function lo(t){var n,e,o,r,i,c,u,s;function l(t,n){return"string"==typeof t[10].postData?vo:fo}c=new ut({props:{content:t[10].postData}});var f=l(t),d=f(t);return{c:function(){n=(0,a.bGB)("div"),e=(0,a.bGB)("dl"),o=(0,a.bGB)("dt"),r=(0,a.fLW)("Request Payload\n "),i=(0,a.bGB)("i"),(0,a.YCL)(c.$$.fragment),u=(0,a.DhX)(),d.c(),(0,a.Ljt)(i,"class","vc-table-row-icon"),(0,a.Ljt)(o,"class","vc-table-col vc-table-col-title"),(0,a.Ljt)(e,"class","vc-table-row vc-left-border")},m:function(t,l){(0,a.$Tr)(t,n,l),(0,a.R3I)(n,e),(0,a.R3I)(e,o),(0,a.R3I)(o,r),(0,a.R3I)(o,i),(0,a.yef)(c,i,null),(0,a.R3I)(n,u),d.m(n,null),s=!0},p:function(t,e){var o={};1024&e&&(o.content=t[10].postData),c.$set(o),f===(f=l(t))&&d?d.p(t,e):(d.d(1),(d=f(t))&&(d.c(),d.m(n,null)))},i:function(t){s||((0,a.Ui)(c.$$.fragment,t),s=!0)},o:function(t){(0,a.etI)(c.$$.fragment,t),s=!1},d:function(t){t&&(0,a.ogt)(n),(0,a.vpE)(c),d.d()}}}function fo(t){for(var n,e=Object.entries(t[10].postData),o=[],r=0;r<e.length;r+=1)o[r]=ho(to(t,e,r));return{c:function(){for(var t=0;t<o.length;t+=1)o[t].c();n=(0,a.cSb)()},m:function(t,e){for(var r=0;r<o.length;r+=1)o[r].m(t,e);(0,a.$Tr)(t,n,e)},p:function(t,r){if(1040&r){var i;for(e=Object.entries(t[10].postData),i=0;i<e.length;i+=1){var a=to(t,e,i);o[i]?o[i].p(a,r):(o[i]=ho(a),o[i].c(),o[i].m(n.parentNode,n))}for(;i<o.length;i+=1)o[i].d(1);o.length=e.length}},d:function(t){(0,a.RMB)(o,t),t&&(0,a.ogt)(n)}}}function vo(t){var n,e,o,r=t[10].postData+"";return{c:function(){n=(0,a.bGB)("div"),e=(0,a.bGB)("pre"),o=(0,a.fLW)(r),(0,a.Ljt)(e,"class","vc-table-col vc-table-col-value vc-max-height-line"),(0,a.Ljt)(e,"data-scrollable","1"),(0,a.Ljt)(n,"class","vc-table-row vc-left-border vc-small")},m:function(t,r){(0,a.$Tr)(t,n,r),(0,a.R3I)(n,e),(0,a.R3I)(e,o)},p:function(t,n){1024&n&&r!==(r=t[10].postData+"")&&(0,a.rTO)(o,r)},d:function(t){t&&(0,a.ogt)(n)}}}function ho(t){var n,e,o,r,i,c,u,s=t[11]+"",l=t[4](t[12])+"";return{c:function(){n=(0,a.bGB)("div"),e=(0,a.bGB)("div"),o=(0,a.fLW)(s),r=(0,a.DhX)(),i=(0,a.bGB)("div"),c=(0,a.fLW)(l),u=(0,a.DhX)(),(0,a.Ljt)(e,"class","vc-table-col vc-table-col-2"),(0,a.Ljt)(i,"class","vc-table-col vc-table-col-4 vc-table-col-value vc-max-height-line"),(0,a.Ljt)(i,"data-scrollable","1"),(0,a.Ljt)(n,"class","vc-table-row vc-left-border vc-small")},m:function(t,s){(0,a.$Tr)(t,n,s),(0,a.R3I)(n,e),(0,a.R3I)(e,o),(0,a.R3I)(n,r),(0,a.R3I)(n,i),(0,a.R3I)(i,c),(0,a.R3I)(n,u)},p:function(t,n){1024&n&&s!==(s=t[11]+"")&&(0,a.rTO)(o,s),1024&n&&l!==(l=t[4](t[12])+"")&&(0,a.rTO)(c,l)},d:function(t){t&&(0,a.ogt)(n)}}}function po(t){var n,e,o,r,i,c,u,s;c=new ut({props:{content:t[10].header}});for(var l=Object.entries(t[10].header),f=[],d=0;d<l.length;d+=1)f[d]=go(Qe(t,l,d));return{c:function(){n=(0,a.bGB)("div"),e=(0,a.bGB)("dl"),o=(0,a.bGB)("dt"),r=(0,a.fLW)("Response Headers\n "),i=(0,a.bGB)("i"),(0,a.YCL)(c.$$.fragment),u=(0,a.DhX)();for(var t=0;t<f.length;t+=1)f[t].c();(0,a.Ljt)(i,"class","vc-table-row-icon"),(0,a.Ljt)(o,"class","vc-table-col vc-table-col-title"),(0,a.Ljt)(e,"class","vc-table-row vc-left-border")},m:function(t,l){(0,a.$Tr)(t,n,l),(0,a.R3I)(n,e),(0,a.R3I)(e,o),(0,a.R3I)(o,r),(0,a.R3I)(o,i),(0,a.yef)(c,i,null),(0,a.R3I)(n,u);for(var d=0;d<f.length;d+=1)f[d].m(n,null);s=!0},p:function(t,e){var o={};if(1024&e&&(o.content=t[10].header),c.$set(o),1040&e){var r;for(l=Object.entries(t[10].header),r=0;r<l.length;r+=1){var i=Qe(t,l,r);f[r]?f[r].p(i,e):(f[r]=go(i),f[r].c(),f[r].m(n,null))}for(;r<f.length;r+=1)f[r].d(1);f.length=l.length}},i:function(t){s||((0,a.Ui)(c.$$.fragment,t),s=!0)},o:function(t){(0,a.etI)(c.$$.fragment,t),s=!1},d:function(t){t&&(0,a.ogt)(n),(0,a.vpE)(c),(0,a.RMB)(f,t)}}}function go(t){var n,e,o,r,i,c,u,s=t[11]+"",l=t[4](t[12])+"";return{c:function(){n=(0,a.bGB)("div"),e=(0,a.bGB)("div"),o=(0,a.fLW)(s),r=(0,a.DhX)(),i=(0,a.bGB)("div"),c=(0,a.fLW)(l),u=(0,a.DhX)(),(0,a.Ljt)(e,"class","vc-table-col vc-table-col-2"),(0,a.Ljt)(i,"class","vc-table-col vc-table-col-4 vc-table-col-value vc-max-height-line"),(0,a.Ljt)(n,"class","vc-table-row vc-left-border vc-small")},m:function(t,s){(0,a.$Tr)(t,n,s),(0,a.R3I)(n,e),(0,a.R3I)(e,o),(0,a.R3I)(n,r),(0,a.R3I)(n,i),(0,a.R3I)(i,c),(0,a.R3I)(n,u)},p:function(t,n){1024&n&&s!==(s=t[11]+"")&&(0,a.rTO)(o,s),1024&n&&l!==(l=t[4](t[12])+"")&&(0,a.rTO)(c,l)},d:function(t){t&&(0,a.ogt)(n)}}}function mo(t){var n,e,o,r,i,c=t[10].responseSizeText+"";return{c:function(){n=(0,a.bGB)("div"),(e=(0,a.bGB)("div")).textContent="Size",o=(0,a.DhX)(),r=(0,a.bGB)("div"),i=(0,a.fLW)(c),(0,a.Ljt)(e,"class","vc-table-col vc-table-col-2"),(0,a.Ljt)(r,"class","vc-table-col vc-table-col-4 vc-table-col-value vc-max-height-line"),(0,a.Ljt)(n,"class","vc-table-row vc-left-border vc-small")},m:function(t,c){(0,a.$Tr)(t,n,c),(0,a.R3I)(n,e),(0,a.R3I)(n,o),(0,a.R3I)(n,r),(0,a.R3I)(r,i)},p:function(t,n){1024&n&&c!==(c=t[10].responseSizeText+"")&&(0,a.rTO)(i,c)},d:function(t){t&&(0,a.ogt)(n)}}}function _o(t){var n,e,o,r,i,c,u,s,l,f,d,v,h,p,g,m,_,b,y,w,E,L,T,x,C,O,I,D,R,$,k,P,M,S,j,B,A,U,G,N,V,W,K,H,F,q,Z,X,z,Y,J,Q,tt,nt,et,ot,rt,it,at,ct,st,lt,ft,dt,vt,ht,pt,gt,mt=t[10].name+"",_t=t[10].method+"",bt=t[10].statusText+"",yt=t[10].costTime+"",wt=t[10].url+"",Et=t[10].method+"",Lt=t[10].requestType+"",Tt=t[10].status+"",xt=t[10].startTimeText+"",Ct=(t[10].response||"")+"";function Ot(){return t[7](t[10])}b=new ut({props:{handler:t[3],content:t[10]}});var It=null!==t[10].requestHeader&&ao(t),Dt=null!==t[10].getData&&uo(t),Rt=null!==t[10].postData&&lo(t),$t=null!==t[10].header&&po(t);at=new ut({props:{content:t[10].response}});var kt=t[10].responseSize>0&&mo(t);return{c:function(){n=(0,a.bGB)("div"),e=(0,a.bGB)("dl"),o=(0,a.bGB)("dd"),r=(0,a.fLW)(mt),i=(0,a.bGB)("dd"),c=(0,a.fLW)(_t),u=(0,a.bGB)("dd"),s=(0,a.fLW)(bt),l=(0,a.bGB)("dd"),f=(0,a.fLW)(yt),d=(0,a.DhX)(),v=(0,a.bGB)("div"),h=(0,a.bGB)("div"),p=(0,a.bGB)("dl"),g=(0,a.bGB)("dt"),m=(0,a.fLW)("General\n "),_=(0,a.bGB)("i"),(0,a.YCL)(b.$$.fragment),y=(0,a.DhX)(),w=(0,a.bGB)("div"),(E=(0,a.bGB)("div")).textContent="URL",L=(0,a.DhX)(),T=(0,a.bGB)("div"),x=(0,a.fLW)(wt),C=(0,a.DhX)(),O=(0,a.bGB)("div"),(I=(0,a.bGB)("div")).textContent="Method",D=(0,a.DhX)(),R=(0,a.bGB)("div"),$=(0,a.fLW)(Et),k=(0,a.DhX)(),P=(0,a.bGB)("div"),(M=(0,a.bGB)("div")).textContent="Request Type",S=(0,a.DhX)(),j=(0,a.bGB)("div"),B=(0,a.fLW)(Lt),A=(0,a.DhX)(),U=(0,a.bGB)("div"),(G=(0,a.bGB)("div")).textContent="HTTP Status",N=(0,a.DhX)(),V=(0,a.bGB)("div"),W=(0,a.fLW)(Tt),K=(0,a.DhX)(),H=(0,a.bGB)("div"),(F=(0,a.bGB)("div")).textContent="Start Time",q=(0,a.DhX)(),Z=(0,a.bGB)("div"),X=(0,a.fLW)(xt),z=(0,a.DhX)(),It&&It.c(),Y=(0,a.DhX)(),Dt&&Dt.c(),J=(0,a.DhX)(),Rt&&Rt.c(),Q=(0,a.DhX)(),$t&&$t.c(),tt=(0,a.DhX)(),nt=(0,a.bGB)("div"),et=(0,a.bGB)("dl"),ot=(0,a.bGB)("dt"),rt=(0,a.fLW)("Response\n "),it=(0,a.bGB)("i"),(0,a.YCL)(at.$$.fragment),ct=(0,a.DhX)(),kt&&kt.c(),st=(0,a.DhX)(),lt=(0,a.bGB)("div"),ft=(0,a.bGB)("pre"),dt=(0,a.fLW)(Ct),(0,a.Ljt)(o,"class","vc-table-col vc-table-col-4"),(0,a.Ljt)(i,"class","vc-table-col"),(0,a.Ljt)(u,"class","vc-table-col"),(0,a.Ljt)(l,"class","vc-table-col"),(0,a.Ljt)(e,"class","vc-table-row vc-group-preview"),(0,a.VHj)(e,"vc-table-row-error",t[10].status>=400),(0,a.Ljt)(_,"class","vc-table-row-icon"),(0,a.Ljt)(g,"class","vc-table-col vc-table-col-title"),(0,a.Ljt)(p,"class","vc-table-row vc-left-border"),(0,a.Ljt)(E,"class","vc-table-col vc-table-col-2"),(0,a.Ljt)(T,"class","vc-table-col vc-table-col-4 vc-table-col-value vc-max-height-line"),(0,a.Ljt)(w,"class","vc-table-row vc-left-border vc-small"),(0,a.Ljt)(I,"class","vc-table-col vc-table-col-2"),(0,a.Ljt)(R,"class","vc-table-col vc-table-col-4 vc-table-col-value vc-max-height-line"),(0,a.Ljt)(O,"class","vc-table-row vc-left-border vc-small"),(0,a.Ljt)(M,"class","vc-table-col vc-table-col-2"),(0,a.Ljt)(j,"class","vc-table-col vc-table-col-4 vc-table-col-value vc-max-height-line"),(0,a.Ljt)(P,"class","vc-table-row vc-left-border vc-small"),(0,a.Ljt)(G,"class","vc-table-col vc-table-col-2"),(0,a.Ljt)(V,"class","vc-table-col vc-table-col-4 vc-table-col-value vc-max-height-line"),(0,a.Ljt)(U,"class","vc-table-row vc-left-border vc-small"),(0,a.Ljt)(F,"class","vc-table-col vc-table-col-2"),(0,a.Ljt)(Z,"class","vc-table-col vc-table-col-4 vc-table-col-value vc-max-height-line"),(0,a.Ljt)(H,"class","vc-table-row vc-left-border vc-small"),(0,a.Ljt)(it,"class","vc-table-row-icon"),(0,a.Ljt)(ot,"class","vc-table-col vc-table-col-title"),(0,a.Ljt)(et,"class","vc-table-row vc-left-border"),(0,a.Ljt)(ft,"class","vc-table-col vc-max-height vc-min-height"),(0,a.Ljt)(ft,"data-scrollable","1"),(0,a.Ljt)(lt,"class","vc-table-row vc-left-border vc-small"),(0,a.Ljt)(v,"class","vc-group-detail"),(0,a.Ljt)(n,"slot","item"),(0,a.Ljt)(n,"class","vc-group"),(0,a.Ljt)(n,"id",vt=t[10].id),(0,a.VHj)(n,"vc-actived",t[10].actived)},m:function(t,ut){(0,a.$Tr)(t,n,ut),(0,a.R3I)(n,e),(0,a.R3I)(e,o),(0,a.R3I)(o,r),(0,a.R3I)(e,i),(0,a.R3I)(i,c),(0,a.R3I)(e,u),(0,a.R3I)(u,s),(0,a.R3I)(e,l),(0,a.R3I)(l,f),(0,a.R3I)(n,d),(0,a.R3I)(n,v),(0,a.R3I)(v,h),(0,a.R3I)(h,p),(0,a.R3I)(p,g),(0,a.R3I)(g,m),(0,a.R3I)(g,_),(0,a.yef)(b,_,null),(0,a.R3I)(h,y),(0,a.R3I)(h,w),(0,a.R3I)(w,E),(0,a.R3I)(w,L),(0,a.R3I)(w,T),(0,a.R3I)(T,x),(0,a.R3I)(h,C),(0,a.R3I)(h,O),(0,a.R3I)(O,I),(0,a.R3I)(O,D),(0,a.R3I)(O,R),(0,a.R3I)(R,$),(0,a.R3I)(h,k),(0,a.R3I)(h,P),(0,a.R3I)(P,M),(0,a.R3I)(P,S),(0,a.R3I)(P,j),(0,a.R3I)(j,B),(0,a.R3I)(h,A),(0,a.R3I)(h,U),(0,a.R3I)(U,G),(0,a.R3I)(U,N),(0,a.R3I)(U,V),(0,a.R3I)(V,W),(0,a.R3I)(h,K),(0,a.R3I)(h,H),(0,a.R3I)(H,F),(0,a.R3I)(H,q),(0,a.R3I)(H,Z),(0,a.R3I)(Z,X),(0,a.R3I)(v,z),It&&It.m(v,null),(0,a.R3I)(v,Y),Dt&&Dt.m(v,null),(0,a.R3I)(v,J),Rt&&Rt.m(v,null),(0,a.R3I)(v,Q),$t&&$t.m(v,null),(0,a.R3I)(v,tt),(0,a.R3I)(v,nt),(0,a.R3I)(nt,et),(0,a.R3I)(et,ot),(0,a.R3I)(ot,rt),(0,a.R3I)(ot,it),(0,a.yef)(at,it,null),(0,a.R3I)(nt,ct),kt&&kt.m(nt,null),(0,a.R3I)(nt,st),(0,a.R3I)(nt,lt),(0,a.R3I)(lt,ft),(0,a.R3I)(ft,dt),ht=!0,pt||(gt=(0,a.oLt)(e,"click",Ot),pt=!0)},p:function(o,i){t=o,(!ht||1024&i)&&mt!==(mt=t[10].name+"")&&(0,a.rTO)(r,mt),(!ht||1024&i)&&_t!==(_t=t[10].method+"")&&(0,a.rTO)(c,_t),(!ht||1024&i)&&bt!==(bt=t[10].statusText+"")&&(0,a.rTO)(s,bt),(!ht||1024&i)&&yt!==(yt=t[10].costTime+"")&&(0,a.rTO)(f,yt),1024&i&&(0,a.VHj)(e,"vc-table-row-error",t[10].status>=400);var u={};1024&i&&(u.content=t[10]),b.$set(u),(!ht||1024&i)&&wt!==(wt=t[10].url+"")&&(0,a.rTO)(x,wt),(!ht||1024&i)&&Et!==(Et=t[10].method+"")&&(0,a.rTO)($,Et),(!ht||1024&i)&&Lt!==(Lt=t[10].requestType+"")&&(0,a.rTO)(B,Lt),(!ht||1024&i)&&Tt!==(Tt=t[10].status+"")&&(0,a.rTO)(W,Tt),(!ht||1024&i)&&xt!==(xt=t[10].startTimeText+"")&&(0,a.rTO)(X,xt),null!==t[10].requestHeader?It?(It.p(t,i),1024&i&&(0,a.Ui)(It,1)):((It=ao(t)).c(),(0,a.Ui)(It,1),It.m(v,Y)):It&&((0,a.dvw)(),(0,a.etI)(It,1,1,(function(){It=null})),(0,a.gbL)()),null!==t[10].getData?Dt?(Dt.p(t,i),1024&i&&(0,a.Ui)(Dt,1)):((Dt=uo(t)).c(),(0,a.Ui)(Dt,1),Dt.m(v,J)):Dt&&((0,a.dvw)(),(0,a.etI)(Dt,1,1,(function(){Dt=null})),(0,a.gbL)()),null!==t[10].postData?Rt?(Rt.p(t,i),1024&i&&(0,a.Ui)(Rt,1)):((Rt=lo(t)).c(),(0,a.Ui)(Rt,1),Rt.m(v,Q)):Rt&&((0,a.dvw)(),(0,a.etI)(Rt,1,1,(function(){Rt=null})),(0,a.gbL)()),null!==t[10].header?$t?($t.p(t,i),1024&i&&(0,a.Ui)($t,1)):(($t=po(t)).c(),(0,a.Ui)($t,1),$t.m(v,tt)):$t&&((0,a.dvw)(),(0,a.etI)($t,1,1,(function(){$t=null})),(0,a.gbL)());var l={};1024&i&&(l.content=t[10].response),at.$set(l),t[10].responseSize>0?kt?kt.p(t,i):((kt=mo(t)).c(),kt.m(nt,st)):kt&&(kt.d(1),kt=null),(!ht||1024&i)&&Ct!==(Ct=(t[10].response||"")+"")&&(0,a.rTO)(dt,Ct),(!ht||1024&i&&vt!==(vt=t[10].id))&&(0,a.Ljt)(n,"id",vt),1024&i&&(0,a.VHj)(n,"vc-actived",t[10].actived)},i:function(t){ht||((0,a.Ui)(b.$$.fragment,t),(0,a.Ui)(It),(0,a.Ui)(Dt),(0,a.Ui)(Rt),(0,a.Ui)($t),(0,a.Ui)(at.$$.fragment,t),ht=!0)},o:function(t){(0,a.etI)(b.$$.fragment,t),(0,a.etI)(It),(0,a.etI)(Dt),(0,a.etI)(Rt),(0,a.etI)($t),(0,a.etI)(at.$$.fragment,t),ht=!1},d:function(t){t&&(0,a.ogt)(n),(0,a.vpE)(b),It&&It.d(),Dt&&Dt.d(),Rt&&Rt.d(),$t&&$t.d(),(0,a.vpE)(at),kt&&kt.d(),pt=!1,gt()}}}function bo(t){var n,e,o,r;return o=new ue({props:{items:t[1],itemKey:"id",itemHeight:30,buffer:100,stickToBottom:!0,scrollbar:!0,$$slots:{item:[_o,function(t){return{10:t.item}},function(t){return t.item?1024:0}],empty:[io],header:[ro]},$$scope:{ctx:t}}}),{c:function(){n=(0,a.bGB)("div"),e=(0,a.bGB)("div"),(0,a.YCL)(o.$$.fragment),(0,a.Ljt)(e,"class","vc-plugin-content"),(0,a.Ljt)(n,"class","vc-table")},m:function(t,i){(0,a.$Tr)(t,n,i),(0,a.R3I)(n,e),(0,a.yef)(o,e,null),r=!0},p:function(t,n){var e=n[0],r={};2&e&&(r.items=t[1]),2098177&e&&(r.$$scope={dirty:e,ctx:t}),o.$set(r)},i:function(t){r||((0,a.Ui)(o.$$.fragment,t),r=!0)},o:function(t){(0,a.etI)(o.$$.fragment,t),r=!1},d:function(t){t&&(0,a.ogt)(n),(0,a.vpE)(o)}}}function yo(t,e,o){var r;(0,a.FIv)(t,He,(function(t){return o(6,r=t)}));var i=0,u=function(t){o(0,i=Object.keys(t).length)},s=He.subscribe(u);u(r);var l=[],f=function(t){(0,a.fxP)(He,r[t].actived=!r[t].actived,r)};(0,c.H3)((function(){Je.use()})),(0,c.ev)((function(){s(),Je.unuse()}));return t.$$.update=function(){64&t.$$.dirty&&o(1,l=Object.values(r))},[i,l,f,function(t){var e="curl -X "+t.method;return"string"==typeof t.postData?e+=" -d '"+t.postData+"'":"object"==typeof t.postData&&null!==t.postData&&(e+=" -d '"+n.hZ(t.postData)+"'"),e+" '"+t.url+"'"},function(t){return n.Kn(t)||n.kJ(t)?n.hZ(t,{maxDepth:10,keyMaxLen:1e4,pretty:!0}):t},{fixedHeight:!0},r,function(t){return f(t.id)}]}var wo=function(n){function e(t){var e;return e=n.call(this)||this,(0,a.S1n)((0,r.Z)(e),t,yo,bo,a.N8,{options:5}),e}return(0,i.Z)(e,n),(0,t.Z)(e,[{key:"options",get:function(){return this.$$.ctx[5]}}]),e}(a.f_C),Eo=wo,Lo=function(t){function n(){for(var n,e=arguments.length,o=new Array(e),r=0;r<e;r++)o[r]=arguments[r];return(n=t.call.apply(t,[this].concat(o))||this).model=Fe.getSingleton(Fe,"VConsoleNetworkModel"),n}(0,i.Z)(n,t);var e=n.prototype;return e.add=function(t){var n=new ke(new $e);for(var e in t)n[e]=t[e];return n.startTime=n.startTime||Date.now(),n.requestType=n.requestType||"custom",this.model.updateRequest(n.id,n),n},e.update=function(t,n){this.model.updateRequest(t,n)},e.clear=function(){this.model.clearLog()},n}(_e),To=function(t){function n(n,e,o){var r;return void 0===o&&(o={}),(r=t.call(this,n,e,Eo,o)||this).model=Fe.getSingleton(Fe,"VConsoleNetworkModel"),r.exporter=void 0,r.exporter=new Lo(n),r}(0,i.Z)(n,t);var e=n.prototype;return e.onReady=function(){t.prototype.onReady.call(this),this.onUpdateOption()},e.onAddTool=function(t){var n=this;t([{name:"Clear",global:!1,onClick:function(t){n.model.clearLog()}}])},e.onRemove=function(){t.prototype.onRemove.call(this),this.model&&this.model.unMock()},e.onUpdateOption=function(){var t,n;(null==(t=this.vConsole.option.network)?void 0:t.maxNetworkNumber)!==this.model.maxNetworkNumber&&(this.model.maxNetworkNumber=Number(null==(n=this.vConsole.option.network)?void 0:n.maxNetworkNumber)||1e3)},n}(nt),xo=__webpack_require__(8679),Co=__webpack_require__.n(xo),Oo=(0,Le.fZ)(),Io=(0,Le.fZ)(),Do=__webpack_require__(5670),Ro={};Do.Z&&Do.Z.locals&&(Ro.locals=Do.Z.locals);var $o,ko=0,Po={};Po.styleTagTransform=b(),Po.setAttributes=p(),Po.insert=v().bind(null,"head"),Po.domAPI=f(),Po.insertStyleElement=m(),Ro.use=function(t){return Po.options=t||{},ko++||($o=s()(Do.Z,Po)),Ro},Ro.unuse=function(){ko>0&&!--ko&&($o(),$o=null)};var Mo=Ro;function So(t,n,e){var o=t.slice();return o[8]=n[e],o}function jo(t,n,e){var o=t.slice();return o[11]=n[e],o}function Bo(t){var n,e,o,r=t[0].nodeType===Node.ELEMENT_NODE&&Ao(t),i=t[0].nodeType===Node.TEXT_NODE&&Xo(t);return{c:function(){n=(0,a.bGB)("div"),r&&r.c(),e=(0,a.DhX)(),i&&i.c(),(0,a.Ljt)(n,"class","vcelm-l"),(0,a.VHj)(n,"vc-actived",t[0]._isActived),(0,a.VHj)(n,"vc-toggle",t[0]._isExpand),(0,a.VHj)(n,"vcelm-noc",t[0]._isSingleLine)},m:function(t,c){(0,a.$Tr)(t,n,c),r&&r.m(n,null),(0,a.R3I)(n,e),i&&i.m(n,null),o=!0},p:function(t,o){t[0].nodeType===Node.ELEMENT_NODE?r?(r.p(t,o),1&o&&(0,a.Ui)(r,1)):((r=Ao(t)).c(),(0,a.Ui)(r,1),r.m(n,e)):r&&((0,a.dvw)(),(0,a.etI)(r,1,1,(function(){r=null})),(0,a.gbL)()),t[0].nodeType===Node.TEXT_NODE?i?i.p(t,o):((i=Xo(t)).c(),i.m(n,null)):i&&(i.d(1),i=null),1&o&&(0,a.VHj)(n,"vc-actived",t[0]._isActived),1&o&&(0,a.VHj)(n,"vc-toggle",t[0]._isExpand),1&o&&(0,a.VHj)(n,"vcelm-noc",t[0]._isSingleLine)},i:function(t){o||((0,a.Ui)(r),o=!0)},o:function(t){(0,a.etI)(r),o=!1},d:function(t){t&&(0,a.ogt)(n),r&&r.d(),i&&i.d()}}}function Ao(t){var n,e,o,r,i,c,u,s,l,f,d=t[0].nodeName+"",v=(t[0].className||t[0].attributes.length)&&Uo(t),h=t[0]._isNullEndTag&&Wo(t),p=t[0].childNodes.length>0&&Ko(t),g=!t[0]._isNullEndTag&&Zo(t);return{c:function(){n=(0,a.bGB)("span"),e=(0,a.fLW)("<"),o=(0,a.fLW)(d),v&&v.c(),r=(0,a.cSb)(),h&&h.c(),i=(0,a.fLW)(">"),p&&p.c(),c=(0,a.cSb)(),g&&g.c(),u=(0,a.cSb)(),(0,a.Ljt)(n,"class","vcelm-node")},m:function(d,m){(0,a.$Tr)(d,n,m),(0,a.R3I)(n,e),(0,a.R3I)(n,o),v&&v.m(n,null),(0,a.R3I)(n,r),h&&h.m(n,null),(0,a.R3I)(n,i),p&&p.m(d,m),(0,a.$Tr)(d,c,m),g&&g.m(d,m),(0,a.$Tr)(d,u,m),s=!0,l||(f=(0,a.oLt)(n,"click",t[2]),l=!0)},p:function(t,e){(!s||1&e)&&d!==(d=t[0].nodeName+"")&&(0,a.rTO)(o,d),t[0].className||t[0].attributes.length?v?v.p(t,e):((v=Uo(t)).c(),v.m(n,r)):v&&(v.d(1),v=null),t[0]._isNullEndTag?h||((h=Wo(t)).c(),h.m(n,i)):h&&(h.d(1),h=null),t[0].childNodes.length>0?p?(p.p(t,e),1&e&&(0,a.Ui)(p,1)):((p=Ko(t)).c(),(0,a.Ui)(p,1),p.m(c.parentNode,c)):p&&((0,a.dvw)(),(0,a.etI)(p,1,1,(function(){p=null})),(0,a.gbL)()),t[0]._isNullEndTag?g&&(g.d(1),g=null):g?g.p(t,e):((g=Zo(t)).c(),g.m(u.parentNode,u))},i:function(t){s||((0,a.Ui)(p),s=!0)},o:function(t){(0,a.etI)(p),s=!1},d:function(t){t&&(0,a.ogt)(n),v&&v.d(),h&&h.d(),p&&p.d(t),t&&(0,a.ogt)(c),g&&g.d(t),t&&(0,a.ogt)(u),l=!1,f()}}}function Uo(t){for(var n,e=t[0].attributes,o=[],r=0;r<e.length;r+=1)o[r]=Vo(jo(t,e,r));return{c:function(){n=(0,a.bGB)("i");for(var t=0;t<o.length;t+=1)o[t].c();(0,a.Ljt)(n,"class","vcelm-k")},m:function(t,e){(0,a.$Tr)(t,n,e);for(var r=0;r<o.length;r+=1)o[r].m(n,null)},p:function(t,r){if(1&r){var i;for(e=t[0].attributes,i=0;i<e.length;i+=1){var a=jo(t,e,i);o[i]?o[i].p(a,r):(o[i]=Vo(a),o[i].c(),o[i].m(n,null))}for(;i<o.length;i+=1)o[i].d(1);o.length=e.length}},d:function(t){t&&(0,a.ogt)(n),(0,a.RMB)(o,t)}}}function Go(t){var n,e=t[11].name+"";return{c:function(){n=(0,a.fLW)(e)},m:function(t,e){(0,a.$Tr)(t,n,e)},p:function(t,o){1&o&&e!==(e=t[11].name+"")&&(0,a.rTO)(n,e)},d:function(t){t&&(0,a.ogt)(n)}}}function No(t){var n,e,o,r,i,c=t[11].name+"",u=t[11].value+"";return{c:function(){n=(0,a.fLW)(c),e=(0,a.fLW)('="'),o=(0,a.bGB)("i"),r=(0,a.fLW)(u),i=(0,a.fLW)('"'),(0,a.Ljt)(o,"class","vcelm-v")},m:function(t,c){(0,a.$Tr)(t,n,c),(0,a.$Tr)(t,e,c),(0,a.$Tr)(t,o,c),(0,a.R3I)(o,r),(0,a.$Tr)(t,i,c)},p:function(t,e){1&e&&c!==(c=t[11].name+"")&&(0,a.rTO)(n,c),1&e&&u!==(u=t[11].value+"")&&(0,a.rTO)(r,u)},d:function(t){t&&(0,a.ogt)(n),t&&(0,a.ogt)(e),t&&(0,a.ogt)(o),t&&(0,a.ogt)(i)}}}function Vo(t){var n,e;function o(t,n){return""!==t[11].value?No:Go}var r=o(t),i=r(t);return{c:function(){n=(0,a.fLW)(" \n "),i.c(),e=(0,a.cSb)()},m:function(t,o){(0,a.$Tr)(t,n,o),i.m(t,o),(0,a.$Tr)(t,e,o)},p:function(t,n){r===(r=o(t))&&i?i.p(t,n):(i.d(1),(i=r(t))&&(i.c(),i.m(e.parentNode,e)))},d:function(t){t&&(0,a.ogt)(n),i.d(t),t&&(0,a.ogt)(e)}}}function Wo(t){var n;return{c:function(){n=(0,a.fLW)("/")},m:function(t,e){(0,a.$Tr)(t,n,e)},d:function(t){t&&(0,a.ogt)(n)}}}function Ko(t){var n,e,o,r,i=[Fo,Ho],c=[];function u(t,n){return t[0]._isExpand?1:0}return n=u(t),e=c[n]=i[n](t),{c:function(){e.c(),o=(0,a.cSb)()},m:function(t,e){c[n].m(t,e),(0,a.$Tr)(t,o,e),r=!0},p:function(t,r){var s=n;(n=u(t))===s?c[n].p(t,r):((0,a.dvw)(),(0,a.etI)(c[s],1,1,(function(){c[s]=null})),(0,a.gbL)(),(e=c[n])?e.p(t,r):(e=c[n]=i[n](t)).c(),(0,a.Ui)(e,1),e.m(o.parentNode,o))},i:function(t){r||((0,a.Ui)(e),r=!0)},o:function(t){(0,a.etI)(e),r=!1},d:function(t){c[n].d(t),t&&(0,a.ogt)(o)}}}function Ho(t){for(var n,e,o=t[0].childNodes,r=[],i=0;i<o.length;i+=1)r[i]=qo(So(t,o,i));var c=function(t){return(0,a.etI)(r[t],1,1,(function(){r[t]=null}))};return{c:function(){for(var t=0;t<r.length;t+=1)r[t].c();n=(0,a.cSb)()},m:function(t,o){for(var i=0;i<r.length;i+=1)r[i].m(t,o);(0,a.$Tr)(t,n,o),e=!0},p:function(t,e){if(1&e){var i;for(o=t[0].childNodes,i=0;i<o.length;i+=1){var u=So(t,o,i);r[i]?(r[i].p(u,e),(0,a.Ui)(r[i],1)):(r[i]=qo(u),r[i].c(),(0,a.Ui)(r[i],1),r[i].m(n.parentNode,n))}for((0,a.dvw)(),i=o.length;i<r.length;i+=1)c(i);(0,a.gbL)()}},i:function(t){if(!e){for(var n=0;n<o.length;n+=1)(0,a.Ui)(r[n]);e=!0}},o:function(t){r=r.filter(Boolean);for(var n=0;n<r.length;n+=1)(0,a.etI)(r[n]);e=!1},d:function(t){(0,a.RMB)(r,t),t&&(0,a.ogt)(n)}}}function Fo(t){var n;return{c:function(){n=(0,a.fLW)("...")},m:function(t,e){(0,a.$Tr)(t,n,e)},p:a.ZTd,i:a.ZTd,o:a.ZTd,d:function(t){t&&(0,a.ogt)(n)}}}function qo(t){var n,e,o;return(n=new Jo({props:{node:t[8]}})).$on("toggleNode",t[4]),{c:function(){(0,a.YCL)(n.$$.fragment),e=(0,a.DhX)()},m:function(t,r){(0,a.yef)(n,t,r),(0,a.$Tr)(t,e,r),o=!0},p:function(t,e){var o={};1&e&&(o.node=t[8]),n.$set(o)},i:function(t){o||((0,a.Ui)(n.$$.fragment,t),o=!0)},o:function(t){(0,a.etI)(n.$$.fragment,t),o=!1},d:function(t){(0,a.vpE)(n,t),t&&(0,a.ogt)(e)}}}function Zo(t){var n,e,o,r,i=t[0].nodeName+"";return{c:function(){n=(0,a.bGB)("span"),e=(0,a.fLW)("</"),o=(0,a.fLW)(i),r=(0,a.fLW)(">"),(0,a.Ljt)(n,"class","vcelm-node")},m:function(t,i){(0,a.$Tr)(t,n,i),(0,a.R3I)(n,e),(0,a.R3I)(n,o),(0,a.R3I)(n,r)},p:function(t,n){1&n&&i!==(i=t[0].nodeName+"")&&(0,a.rTO)(o,i)},d:function(t){t&&(0,a.ogt)(n)}}}function Xo(t){var n,e,o=t[1](t[0].textContent)+"";return{c:function(){n=(0,a.bGB)("span"),e=(0,a.fLW)(o),(0,a.Ljt)(n,"class","vcelm-t vcelm-noc")},m:function(t,o){(0,a.$Tr)(t,n,o),(0,a.R3I)(n,e)},p:function(t,n){1&n&&o!==(o=t[1](t[0].textContent)+"")&&(0,a.rTO)(e,o)},d:function(t){t&&(0,a.ogt)(n)}}}function zo(t){var n,e,o=t[0]&&Bo(t);return{c:function(){o&&o.c(),n=(0,a.cSb)()},m:function(t,r){o&&o.m(t,r),(0,a.$Tr)(t,n,r),e=!0},p:function(t,e){var r=e[0];t[0]?o?(o.p(t,r),1&r&&(0,a.Ui)(o,1)):((o=Bo(t)).c(),(0,a.Ui)(o,1),o.m(n.parentNode,n)):o&&((0,a.dvw)(),(0,a.etI)(o,1,1,(function(){o=null})),(0,a.gbL)())},i:function(t){e||((0,a.Ui)(o),e=!0)},o:function(t){(0,a.etI)(o),e=!1},d:function(t){o&&o.d(t),t&&(0,a.ogt)(n)}}}function Yo(t,n,e){var o;(0,a.FIv)(t,Io,(function(t){return e(3,o=t)}));var r=n.node,i=(0,c.x)(),u=["br","hr","img","input","link","meta"];(0,c.H3)((function(){Mo.use()})),(0,c.ev)((function(){Mo.unuse()}));return t.$$set=function(t){"node"in t&&e(0,r=t.node)},t.$$.update=function(){9&t.$$.dirty&&r&&(e(0,r._isActived=r===o,r),e(0,r._isNullEndTag=function(t){return u.indexOf(t.nodeName)>-1}(r),r),e(0,r._isSingleLine=0===r.childNodes.length||r._isNullEndTag,r))},[r,function(t){return t.replace(/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,"")},function(){r._isNullEndTag||(e(0,r._isExpand=!r._isExpand,r),i("toggleNode",{node:r}))},o,function(n){a.cKT.call(this,t,n)}]}var Jo=function(n){function e(t){var e;return e=n.call(this)||this,(0,a.S1n)((0,r.Z)(e),t,Yo,zo,a.N8,{node:0}),e}return(0,i.Z)(e,n),(0,t.Z)(e,[{key:"node",get:function(){return this.$$.ctx[0]},set:function(t){this.$$set({node:t}),(0,a.yl1)()}}]),e}(a.f_C),Qo=Jo;function tr(t){var n,e,o;return(e=new Qo({props:{node:t[0]}})).$on("toggleNode",t[1]),{c:function(){n=(0,a.bGB)("div"),(0,a.YCL)(e.$$.fragment),(0,a.Ljt)(n,"class","vc-plugin-content")},m:function(t,r){(0,a.$Tr)(t,n,r),(0,a.yef)(e,n,null),o=!0},p:function(t,n){var o={};1&n[0]&&(o.node=t[0]),e.$set(o)},i:function(t){o||((0,a.Ui)(e.$$.fragment,t),o=!0)},o:function(t){(0,a.etI)(e.$$.fragment,t),o=!1},d:function(t){t&&(0,a.ogt)(n),(0,a.vpE)(e)}}}function nr(t,n,e){var o;return(0,a.FIv)(t,Oo,(function(t){return e(0,o=t)})),[o,function(n){a.cKT.call(this,t,n)}]}var er=function(t){function n(n){var e;return e=t.call(this)||this,(0,a.S1n)((0,r.Z)(e),n,nr,tr,a.N8,{}),e}return(0,i.Z)(n,t),n}(a.f_C),or=er,rr=function(t){function n(n,e,o){var r;return void 0===o&&(o={}),(r=t.call(this,n,e,or,o)||this).isInited=!1,r.observer=void 0,r.nodeMap=void 0,r}(0,i.Z)(n,t);var e=n.prototype;return e.onShow=function(){this.isInited||this._init()},e.onRemove=function(){t.prototype.onRemove.call(this),this.isInited&&(this.observer.disconnect(),this.isInited=!1,this.nodeMap=void 0,Oo.set(void 0))},e.onAddTool=function(t){var n=this;t([{name:"Expand",global:!1,onClick:function(t){n._expandActivedNode()}},{name:"Collapse",global:!1,onClick:function(t){n._collapseActivedNode()}}])},e._init=function(){var t=this;this.isInited=!0,this.nodeMap=new WeakMap;var n=this._generateVNode(document.documentElement);n._isExpand=!0,Io.set(n),Oo.set(n),this.compInstance.$on("toggleNode",(function(t){Io.set(t.detail.node)})),this.observer=new(Co())((function(n){for(var e=0;e<n.length;e++){var o=n[e];t._isInVConsole(o.target)||t._handleMutation(o)}})),this.observer.observe(document.documentElement,{attributes:!0,childList:!0,characterData:!0,subtree:!0})},e._handleMutation=function(t){switch(t.type){case"childList":t.removedNodes.length>0&&this._onChildRemove(t),t.addedNodes.length>0&&this._onChildAdd(t);break;case"attributes":this._onAttributesChange(t);break;case"characterData":this._onCharacterDataChange(t)}},e._onChildRemove=function(t){var n=this.nodeMap.get(t.target);if(n){for(var e=0;e<t.removedNodes.length;e++){var o=this.nodeMap.get(t.removedNodes[e]);if(o){for(var r=0;r<n.childNodes.length;r++)if(n.childNodes[r]===o){n.childNodes.splice(r,1);break}this.nodeMap.delete(t.removedNodes[e])}}this._refreshStore()}},e._onChildAdd=function(t){var n=this.nodeMap.get(t.target);if(n){for(var e=0;e<t.addedNodes.length;e++){var o=t.addedNodes[e],r=this._generateVNode(o);if(r){var i=void 0,a=o;do{if(null===a.nextSibling)break;a.nodeType===Node.ELEMENT_NODE&&(i=this.nodeMap.get(a.nextSibling)||void 0),a=a.nextSibling}while(void 0===i);if(void 0===i)n.childNodes.push(r);else for(var c=0;c<n.childNodes.length;c++)if(n.childNodes[c]===i){n.childNodes.splice(c,0,r);break}}}this._refreshStore()}},e._onAttributesChange=function(t){this._updateVNodeAttributes(t.target),this._refreshStore()},e._onCharacterDataChange=function(t){var n=this.nodeMap.get(t.target);n&&(n.textContent=t.target.textContent,this._refreshStore())},e._generateVNode=function(t){if(!this._isIgnoredNode(t)){var n={nodeType:t.nodeType,nodeName:t.nodeName.toLowerCase(),textContent:"",id:"",className:"",attributes:[],childNodes:[]};if(this.nodeMap.set(t,n),n.nodeType!=t.TEXT_NODE&&n.nodeType!=t.DOCUMENT_TYPE_NODE||(n.textContent=t.textContent),t.childNodes.length>0){n.childNodes=[];for(var e=0;e<t.childNodes.length;e++){var o=this._generateVNode(t.childNodes[e]);o&&n.childNodes.push(o)}}return this._updateVNodeAttributes(t),n}},e._updateVNodeAttributes=function(t){var n=this.nodeMap.get(t);if(n&&t instanceof Element&&(n.id=t.id||"",n.className=t.className||"",t.hasAttributes&&t.hasAttributes())){n.attributes=[];for(var e=0;e<t.attributes.length;e++)n.attributes.push({name:t.attributes[e].name,value:t.attributes[e].value||""})}},e._expandActivedNode=function(){var t=(0,Le.U2)(Io);if(t._isExpand)for(var n=0;n<t.childNodes.length;n++)t.childNodes[n]._isExpand=!0;else t._isExpand=!0;this._refreshStore()},e._collapseActivedNode=function(){var t=(0,Le.U2)(Io);if(t._isExpand){for(var n=!1,e=0;e<t.childNodes.length;e++)t.childNodes[e]._isExpand&&(n=!0,t.childNodes[e]._isExpand=!1);n||(t._isExpand=!1),this._refreshStore()}},e._isIgnoredNode=function(t){if(t.nodeType===t.TEXT_NODE){if(""===t.textContent.replace(/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$|\n+/g,""))return!0}else if(t.nodeType===t.COMMENT_NODE)return!0;return!1},e._isInVConsole=function(t){for(var n=t;void 0!==n;){if("__vconsole"==n.id)return!0;n=n.parentElement||void 0}return!1},e._refreshStore=function(){Oo.update((function(t){return t}))},n}(nt);function ir(t,n,e,o,r,i,a){try{var c=t[i](a),u=c.value}catch(t){return void e(t)}c.done?n(u):Promise.resolve(u).then(o,r)}function ar(t){return function(){var n=this,e=arguments;return new Promise((function(o,r){var i=t.apply(n,e);function a(t){ir(i,o,r,a,c,"next",t)}function c(t){ir(i,o,r,a,c,"throw",t)}a(void 0)}))}}var cr=__webpack_require__(8270);function ur(t,n){var e=Object.keys(t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(t);n&&(o=o.filter((function(n){return Object.getOwnPropertyDescriptor(t,n).enumerable}))),e.push.apply(e,o)}return e}function sr(t){for(var n=1;n<arguments.length;n++){var e=null!=arguments[n]?arguments[n]:{};n%2?ur(Object(e),!0).forEach((function(n){(0,cr.Z)(t,n,e[n])})):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(e)):ur(Object(e)).forEach((function(n){Object.defineProperty(t,n,Object.getOwnPropertyDescriptor(e,n))}))}return t}var lr=function(t){if(!t||0===t.length)return{};for(var n={},e=t.split(";"),o=0;o<e.length;o++){var r=e[o].indexOf("=");if(!(r<0)){var i=e[o].substring(0,r).replace(/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,""),a=e[o].substring(r+1,e[o].length);try{i=decodeURIComponent(i)}catch(t){}try{a=decodeURIComponent(a)}catch(t){}n[i]=a}}return n},fr=function(t,n,e){"undefined"!=typeof document&&void 0!==document.cookie&&(document.cookie=encodeURIComponent(t)+"="+encodeURIComponent(n)+function(t){void 0===t&&(t={});var n=t,e=n.path,o=n.domain,r=n.expires,i=n.secure,a=n.sameSite,c=["none","lax","strict"].indexOf((a||"").toLowerCase())>-1?a:null;return[null==e?"":";path="+e,null==o?"":";domain="+o,null==r?"":";expires="+r.toUTCString(),void 0===i||!1===i?"":";secure",null===c?"":";SameSite="+c].join("")}(e))},dr=function(){return"undefined"==typeof document||void 0===document.cookie?"":document.cookie},vr=function(){function n(){}var e=n.prototype;return e.key=function(t){return t<this.keys.length?this.keys[t]:null},e.setItem=function(t,n,e){fr(t,n,e)},e.getItem=function(t){var n=lr(dr());return Object.prototype.hasOwnProperty.call(n,t)?n[t]:null},e.removeItem=function(t,n){for(var e,o,r=["","/"],i=(null==(e=location)||null==(o=e.hostname)?void 0:o.split("."))||[];i.length>1;)r.push(i.join(".")),i.shift();for(var a=0;a<r.length;a++)for(var c,u,s=(null==(c=location)||null==(u=c.pathname)?void 0:u.split("/"))||[],l="";s.length>0;){l+=("/"===l?"":"/")+s.shift();var f=sr(sr({},n),{},{path:l,domain:r[a],expires:new Date(0)});fr(t,"",f)}},e.clear=function(){for(var t=[].concat(this.keys),n=0;n<t.length;n++)this.removeItem(t[n])},(0,t.Z)(n,[{key:"length",get:function(){return this.keys.length}},{key:"keys",get:function(){var t=lr(dr());return Object.keys(t).sort()}}]),n}(),hr=function(){function e(){this.keys=[],this.currentSize=0,this.limitSize=0}var o=e.prototype;return o.key=function(t){return t<this.keys.length?this.keys[t]:null},o.prepare=function(){var t=ar(_n().mark((function t(){var e=this;return _n().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return t.abrupt("return",new Promise((function(t,o){(0,n.qt)("getStorageInfo",{success:function(n){e.keys=n?n.keys.sort():[],e.currentSize=n?n.currentSize:0,e.limitSize=n?n.limitSize:0,t(!0)},fail:function(){o(!1)}})})));case 1:case"end":return t.stop()}}),t)})));return function(){return t.apply(this,arguments)}}(),o.getItem=function(t){return new Promise((function(e,o){(0,n.qt)("getStorage",{key:t,success:function(t){var n=t.data;if("object"==typeof t.data)try{n=JSON.stringify(t.data)}catch(t){}e(n)},fail:function(t){o(t)}})}))},o.setItem=function(t,e){return new Promise((function(o,r){(0,n.qt)("setStorage",{key:t,data:e,success:function(t){o(t)},fail:function(t){r(t)}})}))},o.removeItem=function(t){return new Promise((function(e,o){(0,n.qt)("removeStorage",{key:t,success:function(t){e(t)},fail:function(t){o(t)}})}))},o.clear=function(){return new Promise((function(t,e){(0,n.qt)("clearStorage",{success:function(n){t(n)},fail:function(t){e(t)}})}))},(0,t.Z)(e,[{key:"length",get:function(){return this.keys.length}}]),e}(),pr={updateTime:(0,Le.fZ)(0),activedName:(0,Le.fZ)(null),defaultStorages:(0,Le.fZ)(["cookies","localStorage","sessionStorage"])},gr=function(e){function o(){var t;return(t=e.call(this)||this).storage=new Map,pr.activedName.subscribe((function(t){var n=(0,Le.U2)(pr.defaultStorages);n.length>0&&-1===n.indexOf(t)&&pr.activedName.set(n[0])})),pr.defaultStorages.subscribe((function(n){-1===n.indexOf((0,Le.U2)(pr.activedName))&&pr.activedName.set(n[0]),t.updateEnabledStorages()})),t}(0,i.Z)(o,e);var r=o.prototype;return r.getItem=function(){var t=ar(_n().mark((function t(n){return _n().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:if(this.activedStorage){t.next=2;break}return t.abrupt("return","");case 2:return t.next=4,this.promisify(this.activedStorage.getItem(n));case 4:return t.abrupt("return",t.sent);case 5:case"end":return t.stop()}}),t,this)})));return function(n){return t.apply(this,arguments)}}(),r.setItem=function(){var t=ar(_n().mark((function t(n,e){var o;return _n().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:if(this.activedStorage){t.next=2;break}return t.abrupt("return");case 2:return t.next=4,this.promisify(this.activedStorage.setItem(n,e));case 4:return o=t.sent,this.refresh(),t.abrupt("return",o);case 7:case"end":return t.stop()}}),t,this)})));return function(n,e){return t.apply(this,arguments)}}(),r.removeItem=function(){var t=ar(_n().mark((function t(n){var e;return _n().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:if(this.activedStorage){t.next=2;break}return t.abrupt("return");case 2:return t.next=4,this.promisify(this.activedStorage.removeItem(n));case 4:return e=t.sent,this.refresh(),t.abrupt("return",e);case 7:case"end":return t.stop()}}),t,this)})));return function(n){return t.apply(this,arguments)}}(),r.clear=function(){var t=ar(_n().mark((function t(){var n;return _n().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:if(this.activedStorage){t.next=2;break}return t.abrupt("return");case 2:return t.next=4,this.promisify(this.activedStorage.clear());case 4:return n=t.sent,this.refresh(),t.abrupt("return",n);case 7:case"end":return t.stop()}}),t,this)})));return function(){return t.apply(this,arguments)}}(),r.refresh=function(){pr.updateTime.set(Date.now())},r.getEntries=function(){var t=ar(_n().mark((function t(){var n,e,o,r,i;return _n().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:if(n=this.activedStorage){t.next=3;break}return t.abrupt("return",[]);case 3:if("function"!=typeof n.prepare){t.next=6;break}return t.next=6,n.prepare();case 6:e=[],o=0;case 8:if(!(o<n.length)){t.next=17;break}return r=n.key(o),t.next=12,this.getItem(r);case 12:i=t.sent,e.push([r,i]);case 14:o++,t.next=8;break;case 17:return t.abrupt("return",e);case 18:case"end":return t.stop()}}),t,this)})));return function(){return t.apply(this,arguments)}}(),r.updateEnabledStorages=function(){var t=(0,Le.U2)(pr.defaultStorages);t.indexOf("cookies")>-1?void 0!==document.cookie&&this.storage.set("cookies",new vr):this.deleteStorage("cookies"),t.indexOf("localStorage")>-1?window.localStorage&&this.storage.set("localStorage",window.localStorage):this.deleteStorage("localStorage"),t.indexOf("sessionStorage")>-1?window.sessionStorage&&this.storage.set("sessionStorage",window.sessionStorage):this.deleteStorage("sessionStorage"),t.indexOf("wxStorage")>-1?(0,n.H_)()&&this.storage.set("wxStorage",new hr):this.deleteStorage("wxStorage")},r.promisify=function(t){return"string"==typeof t||null==t?Promise.resolve(t):t},r.deleteStorage=function(t){this.storage.has(t)&&this.storage.delete(t)},(0,t.Z)(o,[{key:"activedStorage",get:function(){return this.storage.get((0,Le.U2)(pr.activedName))}}]),o}(Te.N);function mr(t,n,e){var o=t.slice();return o[20]=n[e][0],o[21]=n[e][1],o[23]=e,o}function _r(t){var n;return{c:function(){(n=(0,a.bGB)("div")).textContent="Empty",(0,a.Ljt)(n,"class","vc-plugin-empty")},m:function(t,e){(0,a.$Tr)(t,n,e)},p:a.ZTd,d:function(t){t&&(0,a.ogt)(n)}}}function br(t){var n,e,o,r,i,c=t[20]+"",u=t[5](t[21])+"";return{c:function(){n=(0,a.bGB)("div"),e=(0,a.fLW)(c),o=(0,a.DhX)(),r=(0,a.bGB)("div"),i=(0,a.fLW)(u),(0,a.Ljt)(n,"class","vc-table-col"),(0,a.Ljt)(r,"class","vc-table-col vc-table-col-2")},m:function(t,c){(0,a.$Tr)(t,n,c),(0,a.R3I)(n,e),(0,a.$Tr)(t,o,c),(0,a.$Tr)(t,r,c),(0,a.R3I)(r,i)},p:function(t,n){1&n&&c!==(c=t[20]+"")&&(0,a.rTO)(e,c),1&n&&u!==(u=t[5](t[21])+"")&&(0,a.rTO)(i,u)},d:function(t){t&&(0,a.ogt)(n),t&&(0,a.ogt)(o),t&&(0,a.ogt)(r)}}}function yr(t){var n,e,o,r,i,c,u;return{c:function(){n=(0,a.bGB)("div"),e=(0,a.bGB)("textarea"),o=(0,a.DhX)(),r=(0,a.bGB)("div"),i=(0,a.bGB)("textarea"),(0,a.Ljt)(e,"class","vc-table-input"),(0,a.Ljt)(n,"class","vc-table-col"),(0,a.Ljt)(i,"class","vc-table-input"),(0,a.Ljt)(r,"class","vc-table-col vc-table-col-2")},m:function(s,l){(0,a.$Tr)(s,n,l),(0,a.R3I)(n,e),(0,a.BmG)(e,t[2]),(0,a.$Tr)(s,o,l),(0,a.$Tr)(s,r,l),(0,a.R3I)(r,i),(0,a.BmG)(i,t[3]),c||(u=[(0,a.oLt)(e,"input",t[11]),(0,a.oLt)(i,"input",t[12])],c=!0)},p:function(t,n){4&n&&(0,a.BmG)(e,t[2]),8&n&&(0,a.BmG)(i,t[3])},d:function(t){t&&(0,a.ogt)(n),t&&(0,a.ogt)(o),t&&(0,a.ogt)(r),c=!1,(0,a.j7q)(u)}}}function wr(t){var n,e,o,r,i,c;return(n=new rt.Z({props:{name:"delete"}})).$on("click",(function(){return t[14](t[20])})),o=new ut({props:{content:[t[20],t[21]].join("=")}}),(i=new rt.Z({props:{name:"edit"}})).$on("click",(function(){return t[15](t[20],t[21],t[23])})),{c:function(){(0,a.YCL)(n.$$.fragment),e=(0,a.DhX)(),(0,a.YCL)(o.$$.fragment),r=(0,a.DhX)(),(0,a.YCL)(i.$$.fragment)},m:function(t,u){(0,a.yef)(n,t,u),(0,a.$Tr)(t,e,u),(0,a.yef)(o,t,u),(0,a.$Tr)(t,r,u),(0,a.yef)(i,t,u),c=!0},p:function(n,e){t=n;var r={};1&e&&(r.content=[t[20],t[21]].join("=")),o.$set(r)},i:function(t){c||((0,a.Ui)(n.$$.fragment,t),(0,a.Ui)(o.$$.fragment,t),(0,a.Ui)(i.$$.fragment,t),c=!0)},o:function(t){(0,a.etI)(n.$$.fragment,t),(0,a.etI)(o.$$.fragment,t),(0,a.etI)(i.$$.fragment,t),c=!1},d:function(t){(0,a.vpE)(n,t),t&&(0,a.ogt)(e),(0,a.vpE)(o,t),t&&(0,a.ogt)(r),(0,a.vpE)(i,t)}}}function Er(t){var n,e,o,r;return(n=new rt.Z({props:{name:"cancel"}})).$on("click",t[9]),(o=new rt.Z({props:{name:"done"}})).$on("click",(function(){return t[13](t[20])})),{c:function(){(0,a.YCL)(n.$$.fragment),e=(0,a.DhX)(),(0,a.YCL)(o.$$.fragment)},m:function(t,i){(0,a.yef)(n,t,i),(0,a.$Tr)(t,e,i),(0,a.yef)(o,t,i),r=!0},p:function(n,e){t=n},i:function(t){r||((0,a.Ui)(n.$$.fragment,t),(0,a.Ui)(o.$$.fragment,t),r=!0)},o:function(t){(0,a.etI)(n.$$.fragment,t),(0,a.etI)(o.$$.fragment,t),r=!1},d:function(t){(0,a.vpE)(n,t),t&&(0,a.ogt)(e),(0,a.vpE)(o,t)}}}function Lr(t){var n,e,o,r,i,c,u;function s(t,n){return t[1]===t[23]?yr:br}var l=s(t),f=l(t),d=[Er,wr],v=[];function h(t,n){return t[1]===t[23]?0:1}return r=h(t),i=v[r]=d[r](t),{c:function(){n=(0,a.bGB)("div"),f.c(),e=(0,a.DhX)(),o=(0,a.bGB)("div"),i.c(),c=(0,a.DhX)(),(0,a.Ljt)(o,"class","vc-table-col vc-table-col-1 vc-table-action"),(0,a.Ljt)(n,"class","vc-table-row")},m:function(t,i){(0,a.$Tr)(t,n,i),f.m(n,null),(0,a.R3I)(n,e),(0,a.R3I)(n,o),v[r].m(o,null),(0,a.R3I)(n,c),u=!0},p:function(t,c){l===(l=s(t))&&f?f.p(t,c):(f.d(1),(f=l(t))&&(f.c(),f.m(n,e)));var u=r;(r=h(t))===u?v[r].p(t,c):((0,a.dvw)(),(0,a.etI)(v[u],1,1,(function(){v[u]=null})),(0,a.gbL)(),(i=v[r])?i.p(t,c):(i=v[r]=d[r](t)).c(),(0,a.Ui)(i,1),i.m(o,null))},i:function(t){u||((0,a.Ui)(i),u=!0)},o:function(t){(0,a.etI)(i),u=!1},d:function(t){t&&(0,a.ogt)(n),f.d(),v[r].d()}}}function Tr(t){for(var n,e,o,r,i=t[0],c=[],u=0;u<i.length;u+=1)c[u]=Lr(mr(t,i,u));var s=function(t){return(0,a.etI)(c[t],1,1,(function(){c[t]=null}))},l=null;return i.length||(l=_r()),{c:function(){n=(0,a.bGB)("div"),(e=(0,a.bGB)("div")).innerHTML='<div class="vc-table-col">Key</div> \n <div class="vc-table-col vc-table-col-2">Value</div> \n <div class="vc-table-col vc-table-col-1 vc-table-action"></div>',o=(0,a.DhX)();for(var t=0;t<c.length;t+=1)c[t].c();l&&l.c(),(0,a.Ljt)(e,"class","vc-table-row"),(0,a.Ljt)(n,"class","vc-table")},m:function(t,i){(0,a.$Tr)(t,n,i),(0,a.R3I)(n,e),(0,a.R3I)(n,o);for(var u=0;u<c.length;u+=1)c[u].m(n,null);l&&l.m(n,null),r=!0},p:function(t,e){var o=e[0];if(1007&o){var r;for(i=t[0],r=0;r<i.length;r+=1){var u=mr(t,i,r);c[r]?(c[r].p(u,o),(0,a.Ui)(c[r],1)):(c[r]=Lr(u),c[r].c(),(0,a.Ui)(c[r],1),c[r].m(n,null))}for((0,a.dvw)(),r=i.length;r<c.length;r+=1)s(r);(0,a.gbL)(),!i.length&&l?l.p(t,o):i.length?l&&(l.d(1),l=null):((l=_r()).c(),l.m(n,null))}},i:function(t){if(!r){for(var n=0;n<i.length;n+=1)(0,a.Ui)(c[n]);r=!0}},o:function(t){c=c.filter(Boolean);for(var n=0;n<c.length;n+=1)(0,a.etI)(c[n]);r=!1},d:function(t){t&&(0,a.ogt)(n),(0,a.RMB)(c,t),l&&l.d()}}}function xr(t,e,o){var r,i=this&&this.__awaiter||function(t,n,e,o){return new(e||(e=Promise))((function(r,i){function a(t){try{u(o.next(t))}catch(t){i(t)}}function c(t){try{u(o.throw(t))}catch(t){i(t)}}function u(t){var n;t.done?r(t.value):(n=t.value,n instanceof e?n:new e((function(t){t(n)}))).then(a,c)}u((o=o.apply(t,n||[])).next())}))},c=gr.getSingleton(gr,"VConsoleStorageModel"),u=pr.updateTime;(0,a.FIv)(t,u,(function(t){return o(10,r=t)}));var s=[],l=-1,f="",d="",v=function(){o(1,l=-1),o(2,f=""),o(3,d="")},h=function(t){return i(void 0,void 0,void 0,_n().mark((function n(){return _n().wrap((function(n){for(;;)switch(n.prev=n.next){case 0:return n.next=2,c.removeItem(t);case 2:case"end":return n.stop()}}),n)})))},p=function(t){return i(void 0,void 0,void 0,_n().mark((function n(){return _n().wrap((function(n){for(;;)switch(n.prev=n.next){case 0:if(f===t){n.next=3;break}return n.next=3,c.removeItem(t);case 3:c.setItem(f,d),v();case 5:case"end":return n.stop()}}),n)})))},g=function(t,n,e){return i(void 0,void 0,void 0,_n().mark((function r(){return _n().wrap((function(r){for(;;)switch(r.prev=r.next){case 0:o(2,f=t),o(3,d=n),o(1,l=e);case 3:case"end":return r.stop()}}),r)})))};return t.$$.update=function(){1024&t.$$.dirty&&r&&i(void 0,void 0,void 0,_n().mark((function t(){return _n().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return v(),t.t0=o,t.next=4,c.getEntries();case 4:t.t1=s=t.sent,(0,t.t0)(0,t.t1);case 6:case"end":return t.stop()}}),t)})))},[s,l,f,d,u,function(t){return(0,n.id)(t,1024)},h,p,g,function(){v()},r,function(){f=this.value,o(2,f)},function(){d=this.value,o(3,d)},function(t){return p(t)},function(t){return h(t)},function(t,n,e){return g(t,n,e)}]}var Cr=function(t){function n(n){var e;return e=t.call(this)||this,(0,a.S1n)((0,r.Z)(e),n,xr,Tr,a.N8,{}),e}return(0,i.Z)(n,t),n}(a.f_C),Or=Cr,Ir=function(t){function e(n,e,o){var r;return void 0===o&&(o={}),(r=t.call(this,n,e,Or,o)||this).model=gr.getSingleton(gr,"VConsoleStorageModel"),r.onAddTopBarCallback=void 0,r}(0,i.Z)(e,t);var o=e.prototype;return o.onReady=function(){t.prototype.onReady.call(this),this.onUpdateOption()},o.onShow=function(){this.model.refresh()},o.onAddTopBar=function(t){this.onAddTopBarCallback=t,this.updateTopBar()},o.onAddTool=function(t){var n=this;t([{name:"Add",global:!1,onClick:function(){n.model.setItem("new_"+Date.now(),"new_value")}},{name:"Refresh",global:!1,onClick:function(){n.model.refresh()}},{name:"Clear",global:!1,onClick:function(){n.model.clear()}}])},o.onUpdateOption=function(){var t,e=null==(t=this.vConsole.option.storage)?void 0:t.defaultStorages;(0,n.kJ)(e)&&(e=e.length>0?e:["cookies"])!==(0,Le.U2)(pr.defaultStorages)&&(pr.defaultStorages.set(e),pr.activedName.set(e[0]),this.updateTopBar())},o.updateTopBar=function(){var t=this;if("function"==typeof this.onAddTopBarCallback){for(var n=(0,Le.U2)(pr.defaultStorages),e=[],o=0;o<n.length;o++){var r=n[o];e.push({name:r[0].toUpperCase()+r.substring(1),data:{name:r},actived:r===(0,Le.U2)(pr.activedName),onClick:function(n,e){var o=(0,Le.U2)(pr.activedName);if(e.name===o)return!1;pr.activedName.set(e.name),t.model.refresh()}})}this.onAddTopBarCallback(e)}},e}(nt),Dr=function(){function e(t){var r=this;if(this.version="3.15.0",this.isInited=!1,this.option={},this.compInstance=void 0,this.pluginList={},this.log=void 0,this.system=void 0,this.network=void 0,e.instance&&e.instance instanceof e)return console.debug("[vConsole] vConsole is already exists."),e.instance;if(e.instance=this,this.isInited=!1,this.option={defaultPlugins:["system","network","element","storage"],log:{},network:{},storage:{}},n.Kn(t))for(var i in t)this.option[i]=t[i];void 0!==this.option.maxLogNumber&&(this.option.log.maxLogNumber=this.option.maxLogNumber,console.debug("[vConsole] Deprecated option: `maxLogNumber`, use `log.maxLogNumber` instead.")),void 0!==this.option.onClearLog&&console.debug("[vConsole] Deprecated option: `onClearLog`."),void 0!==this.option.maxNetworkNumber&&(this.option.network.maxNetworkNumber=this.option.maxNetworkNumber,console.debug("[vConsole] Deprecated option: `maxNetworkNumber`, use `network.maxNetworkNumber` instead.")),this._addBuiltInPlugins();var a=function(){r.isInited||(r._initComponent(),r._autoRun())};if(void 0!==document)"loading"===document.readyState?o.bind(window,"DOMContentLoaded",a):a();else{var c;c=setTimeout((function t(){document&&"complete"==document.readyState?(c&&clearTimeout(c),a()):c=setTimeout(t,1)}),1)}}var r=e.prototype;return r._addBuiltInPlugins=function(){this.addPlugin(new we("default","Log"));var t=this.option.defaultPlugins,e={system:{proto:Ee,name:"System"}};if(e.network={proto:To,name:"Network"},e.element={proto:rr,name:"Element"},e.storage={proto:Ir,name:"Storage"},t&&n.kJ(t))for(var o=0;o<t.length;o++){var r=e[t[o]];r?this.addPlugin(new r.proto(t[o],r.name)):console.debug("[vConsole] Unrecognized default plugin ID:",t[o])}},r._initComponent=function(){var t=this;if(!o.one("#__vconsole")){var e,r=1*n.cF("switch_x"),i=1*n.cF("switch_y");"string"==typeof this.option.target?e=document.querySelector(this.option.target):this.option.target instanceof HTMLElement&&(e=this.option.target),e instanceof HTMLElement||(e=document.documentElement),this.compInstance=new Q({target:e,props:{switchButtonPosition:{x:r,y:i}}}),this.compInstance.$on("show",(function(n){n.detail.show?t.show():t.hide()})),this.compInstance.$on("changePanel",(function(n){var e=n.detail.pluginId;t.showPlugin(e)}))}this._updateComponentByOptions()},r._updateComponentByOptions=function(){if(this.compInstance){if(this.compInstance.theme!==this.option.theme){var t=this.option.theme;t="light"!==t&&"dark"!==t?"":t,this.compInstance.theme=t}this.compInstance.disableScrolling!==this.option.disableLogScrolling&&(this.compInstance.disableScrolling=!!this.option.disableLogScrolling)}},r.setSwitchPosition=function(t,n){this.compInstance.switchButtonPosition={x:t,y:n}},r._autoRun=function(){for(var t in this.isInited=!0,this.pluginList)this._initPlugin(this.pluginList[t]);this._showFirstPluginWhenEmpty(),this.triggerEvent("ready")},r._showFirstPluginWhenEmpty=function(){var t=Object.keys(this.pluginList);""===this.compInstance.activedPluginId&&t.length>0&&this.showPlugin(t[0])},r.triggerEvent=function(t,e){var o=this;t="on"+t.charAt(0).toUpperCase()+t.slice(1),n.mf(this.option[t])&&setTimeout((function(){o.option[t].apply(o,e)}),0)},r._initPlugin=function(t){var e=this;t.vConsole=this,this.compInstance.pluginList[t.id]={id:t.id,name:t.name,hasTabPanel:!1,tabOptions:void 0,topbarList:[],toolbarList:[]},this.compInstance.pluginList=this._reorderPluginList(this.compInstance.pluginList),t.trigger("init"),t.trigger("renderTab",(function(o,r){void 0===r&&(r={});var i=e.compInstance.pluginList[t.id];i.hasTabPanel=!0,i.tabOptions=r,o&&setTimeout((function(){var e=document.querySelector("#__vc_plug_"+t.id);n.HD(o)?e.innerHTML+=o:n.mf(o.appendTo)?o.appendTo(e):n.kK(o)&&e.insertAdjacentElement("beforeend",o)}),0),e.compInstance.pluginList=e.compInstance.pluginList})),t.trigger("addTopBar",(function(n){if(n){for(var o=[],r=0;r<n.length;r++){var i=n[r];o.push({name:i.name||"Undefined",className:i.className||"",actived:!!i.actived,data:i.data,onClick:i.onClick})}e.compInstance.pluginList[t.id].topbarList=o,e.compInstance.pluginList=e.compInstance.pluginList}})),t.trigger("addTool",(function(n){if(n){for(var o=[],r=0;r<n.length;r++){var i=n[r];o.push({name:i.name||"Undefined",global:!!i.global,data:i.data,onClick:i.onClick})}e.compInstance.pluginList[t.id].toolbarList=o,e.compInstance.pluginList=e.compInstance.pluginList}})),t.isReady=!0,t.trigger("ready")},r._triggerPluginsEvent=function(t){for(var n in this.pluginList)this.pluginList[n].isReady&&this.pluginList[n].trigger(t)},r._triggerPluginEvent=function(t,n){var e=this.pluginList[t];e&&e.isReady&&e.trigger(n)},r._reorderPluginList=function(t){var e=this;if(!n.kJ(this.option.pluginOrder))return t;for(var o=Object.keys(t).sort((function(t,n){var o=e.option.pluginOrder.indexOf(t),r=e.option.pluginOrder.indexOf(n);return o===r?0:-1===o?1:-1===r?-1:o-r})),r={},i=0;i<o.length;i++)r[o[i]]=t[o[i]];return r},r.addPlugin=function(t){return void 0!==this.pluginList[t.id]?(console.debug("[vConsole] Plugin `"+t.id+"` has already been added."),!1):(this.pluginList[t.id]=t,this.isInited&&(this._initPlugin(t),this._showFirstPluginWhenEmpty()),!0)},r.removePlugin=function(t){t=(t+"").toLowerCase();var n=this.pluginList[t];if(void 0===n)return console.debug("[vConsole] Plugin `"+t+"` does not exist."),!1;n.trigger("remove");try{delete this.pluginList[t],delete this.compInstance.pluginList[t]}catch(n){this.pluginList[t]=void 0,this.compInstance.pluginList[t]=void 0}return this.compInstance.pluginList=this.compInstance.pluginList,this.compInstance.activedPluginId==t&&(this.compInstance.activedPluginId="",this._showFirstPluginWhenEmpty()),!0},r.show=function(){this.isInited&&(this.compInstance.show=!0,this._triggerPluginsEvent("showConsole"))},r.hide=function(){this.isInited&&(this.compInstance.show=!1,this._triggerPluginsEvent("hideConsole"))},r.showSwitch=function(){this.isInited&&(this.compInstance.showSwitchButton=!0)},r.hideSwitch=function(){this.isInited&&(this.compInstance.showSwitchButton=!1)},r.showPlugin=function(t){this.isInited&&(this.pluginList[t]||console.debug("[vConsole] Plugin `"+t+"` does not exist."),this.compInstance.activedPluginId&&this._triggerPluginEvent(this.compInstance.activedPluginId,"hide"),this.compInstance.activedPluginId=t,this._triggerPluginEvent(this.compInstance.activedPluginId,"show"))},r.setOption=function(t,e){if("string"==typeof t){for(var o=t.split("."),r=this.option,i=0;i<o.length-1;i++)void 0===r[o[i]]&&(r[o[i]]={}),r=r[o[i]];r[o[o.length-1]]=e,this._triggerPluginsEvent("updateOption"),this._updateComponentByOptions()}else if(n.Kn(t)){for(var a in t)this.option[a]=t[a];this._triggerPluginsEvent("updateOption"),this._updateComponentByOptions()}else console.debug("[vConsole] The first parameter of `vConsole.setOption()` must be a string or an object.")},r.destroy=function(){if(this.isInited){this.isInited=!1,e.instance=void 0;for(var t=Object.keys(this.pluginList),n=t.length-1;n>=0;n--)this.removePlugin(t[n]);this.compInstance.$destroy()}},(0,t.Z)(e,null,[{key:"instance",get:function(){return window.__VCONSOLE_INSTANCE},set:function(t){void 0===t||t instanceof e?window.__VCONSOLE_INSTANCE=t:console.debug("[vConsole] Cannot set `VConsole.instance` because the value is not the instance of VConsole.")}}]),e}();Dr.VConsolePlugin=void 0,Dr.VConsoleLogPlugin=void 0,Dr.VConsoleDefaultPlugin=void 0,Dr.VConsoleSystemPlugin=void 0,Dr.VConsoleNetworkPlugin=void 0,Dr.VConsoleElementPlugin=void 0,Dr.VConsoleStoragePlugin=void 0,Dr.VConsolePlugin=tt,Dr.VConsoleLogPlugin=ye,Dr.VConsoleDefaultPlugin=we,Dr.VConsoleSystemPlugin=Ee,Dr.VConsoleNetworkPlugin=To,Dr.VConsoleElementPlugin=rr,Dr.VConsoleStoragePlugin=Ir;var Rr=Dr}(),__webpack_exports__=__webpack_exports__.default,__webpack_exports__}()}));
\ No newline at end of file
diff --git a/pages/quanshou/index.vue b/pages/quanshou/index.vue
index fb2a2db..9c9570a 100644
--- a/pages/quanshou/index.vue
+++ b/pages/quanshou/index.vue
@@ -95,14 +95,14 @@
toHuiyuan(){
const _this = this;
uni.request({
- url: _this.$webHost+'/api/v2/memberEquity/getUrlByShop/'+uni.getStorageSync('phone'),
+ url: _this.$webHost+'/api/v2/memberEquity/getUrlByShop/'+_this.$util.getUserInfo().phone,
success: function (res) {
if(res.data.code==200){
uni.request( {
- url: _this.$webHost+'/api/v2/memberEquity/clickUrlByShop/'+uni.getStorageSync('phone'),
+ url: _this.$webHost+'/api/v2/memberEquity/clickUrlByShop/'+_this.$util.getUserInfo().phone,
})
uni.navigateTo( {
- url: '/pages/users/web_page/index?webUel=' + encodeURIComponent(res.data.data.url)
+ url: '/pages/web/index?webUel=' + encodeURIComponent(res.data.data.url)
})
} else {
uni.showToast( {
@@ -118,7 +118,7 @@
getTips(){
const _this = this;
uni.request({
- url: _this.$webHost+'/api/v2/shop/findExpressNo?phone='+uni.getStorageSync('phone'),
+ url: _this.$webHost+'/api/v2/shop/findExpressNo?phone='+_this.$util.getUserInfo().phone,
success: function (res) {
if(res.data.code==200){
_this.tips = res.data.data;
diff --git a/pages/quanyi/add.vue b/pages/quanyi/add.vue
index 37e1328..9924a78 100644
--- a/pages/quanyi/add.vue
+++ b/pages/quanyi/add.vue
@@ -95,8 +95,8 @@
uni.request({
url: _this.$webHost+'/api/v2/customer/getCstAddress',
data:{
- customerId: uni.getStorageSync('ygxLogin').customerId,
- sourceId: uni.getStorageSync('ygxLogin').appId
+ customerId: uni.getStorageSync('qxgLogin').customerId,
+ sourceId: uni.getStorageSync('qxgLogin').appId
},
success: function (res) {
_this.addressDetail = res.data.data;
@@ -105,7 +105,7 @@
uni.request({
- url: _this.$webHost+'/api/v2/xinheyuan/bank/list/fake/'+uni.getStorageSync('ygxLogin').customerId,
+ url: _this.$webHost+'/api/v2/xinheyuan/bank/list/fake/'+uni.getStorageSync('qxgLogin').customerId,
success(res){
console.log(res.data.data);
this.bankList = res.data.data;
@@ -116,7 +116,7 @@
uni.setStorageSync('windowHeight',uni.getSystemInfoSync().windowHeight)
uni.request({
- url:_this.$webHost+`/api/v2/pay/getPayBindCardInfo/${uni.getStorageSync('ygxLogin').customerId}`,
+ url:_this.$webHost+`/api/v2/pay/getPayBindCardInfo/${uni.getStorageSync('qxgLogin').customerId}`,
method:'get',
success:function(res){
const dy = res.data.data[0];
@@ -162,7 +162,7 @@
uni.request({
- url: _this.$webHost+'/api/v2/sign/signed/'+uni.getStorageSync('ygxLogin').customerId,
+ url: _this.$webHost+'/api/v2/sign/signed/'+uni.getStorageSync('qxgLogin').customerId,
method:'POST',
})
@@ -170,7 +170,7 @@
url: _this.$webHost+'/api/v2/pay/memberPurchaseBenefitsPays',
method:'POST',
data:{
- customerId: uni.getStorageSync('ygxLogin').customerId,
+ customerId: uni.getStorageSync('qxgLogin').customerId,
memberPeriodConfigId: uni.getStorageSync('memberPeriodConfigInfo').id
},
success(){
@@ -285,7 +285,7 @@
uni.request({
- url:_this.$webHost+`/api/v2/pay/getPayBindCardInfo/${uni.getStorageSync('ygxLogin').customerId}`,
+ url:_this.$webHost+`/api/v2/pay/getPayBindCardInfo/${uni.getStorageSync('qxgLogin').customerId}`,
method:'get',
success:function(res){
_this.getPayBindCardInfo = res.data.data;
@@ -299,7 +299,7 @@
data:{
..._this.bindCardId,
- "customerId": uni.getStorageSync('ygxLogin').customerId,
+ "customerId": uni.getStorageSync('qxgLogin').customerId,
"cardPhone" : _this.cardPhone, //手机号
"cardNumber": _this.cardNumber, //卡号
@@ -313,15 +313,12 @@
},
success(e){
if(e.data.code!==200){
-
- uni.showToast({
- title: e.data.data,
- icon: "none",
+ _this.$util.Tips({
+ title: e.data.data
});
- return
}
uni.request({
- url:_this.$webHost+`/api/v2/pay/getPayBindCardInfo/${uni.getStorageSync('ygxLogin').customerId}`,
+ url:_this.$webHost+`/api/v2/pay/getPayBindCardInfo/${uni.getStorageSync('qxgLogin').customerId}`,
method:'get',
success:function(res){
const ls = res.data.data;
@@ -330,13 +327,13 @@
- if(ls.length && !ls[1].bindStatus){
+ if(ls.length>1 && !ls[1].bindStatus){
_this.$refs.codeUi.open()
_this.isCounting = false;
_this.countText = '';
return;
}
- if(ls.length && !ls[2].bindStatus){
+ if(ls.length>2 && !ls[2].bindStatus){
_this.$refs.setUi.open();
_this.isCounting = false;
_this.countText = '';
@@ -345,8 +342,6 @@
if(!ls || !ls.some(item => item.bindStatus == 0)) {_this.kk();return;}
-
- _this.kk()
@@ -358,426 +353,410 @@
},
- getSmsCode(){
- const that = this;
- console.log(that.getPayBindCardInfo[0].paymentMethod);
- if(this.isCounting){
+ getSmsCode(){
+ const that = this;
+ console.log(that.getPayBindCardInfo[0].paymentMethod);
+ if(this.isCounting){
+ return
+ }
+ if(that.getPayBindCardInfo[0].bindStatus){
+ if(!that.getPayBindCardInfo[1].bindStatus){
+ that.$refs.codeUi.open();
return
}
- if(that.getPayBindCardInfo[0].bindStatus){
- if(!that.getPayBindCardInfo[1].bindStatus){
- that.$refs.codeUi.open();
- return
- }
- if(!that.getPayBindCardInfo[2].bindStatus){
- that.$refs.setUi.open();
- }
- return
+ if(!that.getPayBindCardInfo[2].bindStatus){
+ that.$refs.setUi.open();
}
+ return
+ }
- if (!/^1(3|4|5|7|8|9|6)\d{9}$/i.test(that.cardPhone)) return uni.showToast({title: '请输入正确的手机号码', icon: 'none'});
+ if (!/^1(3|4|5|7|8|9|6)\d{9}$/i.test(that.cardPhone)) return that.$util.Tips({
+ title: '请输入正确的手机号码'
+ });
- that.isCounting = true;
+ that.isCounting = true;
- uni.request({
- url: that.$webHost+'/api/v2/xinheyuan/bankcard/save',
- method:'POST',
- data:{
- "customerId": uni.getStorageSync('ygxLogin').customerId,
- "nameReal": that.cardName, // 名字
- "cardNo":that.cardNumber,
- "idCard": that.idCardNo,
+ uni.request({
+ url: that.$webHost+'/api/v2/xinheyuan/bankcard/save',
+ method:'POST',
+ data:{
+ "customerId": uni.getStorageSync('qxgLogin').customerId,
+ "nameReal": that.cardName, // 名字
+ "cardNo":that.cardNumber,
+ "idCard": that.idCardNo,
- "bankPhoneNo":that.cardPhone,
- "bankCode": that.bankCode,
- "bankName": that.bankName,
- "phone": that.cardPhone, //手机号
- "paymentMethod": that.getPayBindCardInfo[0].paymentMethod ,
+ "bankPhoneNo":that.cardPhone,
+ "bankCode": that.bankCode,
+ "bankName": that.bankName,
+ "phone": that.cardPhone, //手机号
+ "paymentMethod": that.getPayBindCardInfo[0].paymentMethod ,
- "preBindType": "prebc",
- "bankId": "1",
+ "preBindType": "prebc",
+ "bankId": "1",
- },
- success(){
- uni.request({
- url: that.$webHost+'/api/v2/pay/bindCardToCodes',
- method:'POST',
- data:{
- "customerId": uni.getStorageSync('ygxLogin').customerId,
- "cardName": that.cardName, // 名字
- "cardIdNo": that.idCardNo,
+ },
+ success(){
+ uni.request({
+ url: that.$webHost+'/api/v2/pay/bindCardToCodes',
+ method:'POST',
+ data:{
+ "customerId": uni.getStorageSync('qxgLogin').customerId,
+ "cardName": that.cardName, // 名字
+ "cardIdNo": that.idCardNo,
- "cardNumber":that.cardNumber,
- "bankPhoneNo":that.cardPhone,
- "bankCode": that.bankCode,
- "bankName": that.bankName,
- "cardPhone": that.cardPhone, //手机号
- "paymentMethod": that.getPayBindCardInfo[0].paymentMethod ,
+ "cardNumber":that.cardNumber,
+ "bankPhoneNo":that.cardPhone,
+ "bankCode": that.bankCode,
+ "bankName": that.bankName,
+ "cardPhone": that.cardPhone, //手机号
+ "paymentMethod": that.getPayBindCardInfo[0].paymentMethod ,
- "preBindType": "prebc",
- "bankId": "1",
+ "preBindType": "prebc",
+ "bankId": "1",
- },
- success(res){
- if(res.data.code === 401){
- that.getUserInfo()
- return;
- }
-
- if(res.data.code !==200){
- uni.showToast({
- title: res.data.data,
- icon: 'none'
- })
- return;
- }
-
- if(res.data.code === 200){
- that.bindCardId = res.data.data;
- } else {
- that.isCounting = false;
- that.countText = '';
- uni.showToast({
- title: res.data.data,
- icon: 'none'
- });
-
- if(!that.getPayBindCardInfo[0].bindStatus){
-
- return;
- }
-
-
- if(!that.getPayBindCardInfo[1].bindStatus){
- that.$refs.codeUi.open()
- that.isCounting = false;
- that.countText = '';
- return
- } if(!that.getPayBindCardInfo[2].bindStatus){
- that.isCounting = false;
- that.countText = '';
- that.$refs.setUi.open()
- return
- }
- }
-
+ },
+ success(res){
+ if(res.data.code === 401){
+ that.getUserInfo()
+ return;
}
- })
- let count = 60;
- that.countText = `${count}s秒后重新获取`;
+ if(res.data.code !==200){
+ uni.showToast({
+ title: res.data.data,
+ icon: 'none'
+ })
+ return;
+ }
-
- const timer = setInterval(() => {
- count--;
- that.countText = `${count}s秒后重新获取`;
- if (count <= 0) {
- clearInterval(timer);
+ if(res.data.code === 200){
+ that.bindCardId = res.data.data;
+ } else {
that.isCounting = false;
that.countText = '';
- }
- },1000)
- },
- fail(err){
- that.isCounting = false;
- that.countText = '';
- uni.showToast({
- title: err,
- icon: 'none'
- })
- }
- })
+ uni.showToast({
+ title: res.data.data,
+ icon: 'none'
+ });
+ if(!that.getPayBindCardInfo[0].bindStatus){
-
-
-
-
-
-
-
-
- },
-// 二次获取
- getCode(){
- if (this.isCounting_A) {
- return;
- }
- const paymentMethod = this.getPayBindCardInfo[1]['paymentMethod'];
- const _this = this;
- const pro = uni.getStorageSync('ygxLogin')
- pro['userName'] = _this.cardName;
- uni.request({
- url: _this.$webHost+'/api/v2/pay/bindCardToCodes',
- method:'POST',
- data:{
- cardIdNo: _this.idCardNo,
- customerId: pro.customerId,
- cardName: _this.cardName,
- cardNo: _this.cardIdNo,
- cardPhone: _this.cardPhone,
- cardNumber: _this.cardNumber,
- bankName: _this.bankName,
- preBindType: "prebc",
- paymentMethod:paymentMethod,
- againType : true
- },
- success(dt){
- if(dt.data.code === 401){
- _this.getUserInfo()
- return;
- }
- const res = dt.data.data;
- if(!res){
- return;
- }
- _this.callbackData = res;
- _this.bindCardId = res;
- uni.showToast({
- title: "验证码已发送",
- icon: "none",
- });
- // 设置倒计时功能
- let count = 60;
-
- const timer = setInterval(() => {
- count--;
- if (count <= 0) {
- clearInterval(timer);
- _this.$set(_this, "isCounting_A", false);
- } else {
- _this.$set(_this, "isCounting_A", true);
- _this.$set(_this, "countText_A", `${count}秒后重新获取`);
- }
- }, 1000);
- }
- })
- },
-
- submitPlan(){
-
- const _this = this;
-
- if (!this.verificationCodeT) {
- uni.showToast({
- title: "请输入验证码",
- icon: "none",
- });
- return;
- }
-
- const callbackData = _this.callbackData;
- const paymentMethod = _this.getPayBindCardInfo[1]['paymentMethod'];
-
-
- uni.request({
- url: _this.$webHost+'/api/v2/pay/verifySMSCodes',
- method:'POST',
- data:{
- ...callbackData,
-
- "customerId": uni.getStorageSync('ygxLogin').customerId,
- "cardPhone" : _this.cardPhone, //手机号
-
- "cardNumber": _this.cardNumber, //卡号
- paymentMethod:paymentMethod,
- "cardName" : _this.cardName, // 名字
- "cardIdNo" : _this.cardIdNo,
- "bankName" : _this.bankName,
- "cardNo" : _this.cardNumber,
-
- "verificationCode": _this.verificationCodeT,
- },
- success(dts){
- if(dts.data.code!==200){
-
- uni.showTips({
- title: dts.data.data
- });
- return
- }
-
- uni.request({
- url:_this.$webHost+`/api/v2/pay/getPayBindCardInfo/${uni.getStorageSync('ygxLogin').customerId}`,
- method:'get',
- success:function(res){
- const ls = res.data.data;
- _this.getPayBindCardInfo = res.data.data;
- if(ls.length>2 && !ls[2].bindStatus){
- _this.isCounting_A = false;
- _this.countText_A = '';
- _this.$refs.codeUi.close()
- _this.$refs.setUi.open()
+ return;
}
- if(!ls || !ls.some(item => item.bindStatus == 0)) {_this.kk();return;}
-
-
-
-
+ if(!that.getPayBindCardInfo[1].bindStatus){
+ that.$refs.codeUi.open()
+ that.isCounting = false;
+ that.countText = '';
+ return
+ } if(!that.getPayBindCardInfo[2].bindStatus){
+ that.isCounting = false;
+ that.countText = '';
+ that.$refs.setUi.open()
+ return
+ }
}
- })
- }
- })
-
- },
-// 三次
- getCode_san(){
- if (this.isCounting_B) {
- return;
- }
- const paymentMethod = this.getPayBindCardInfo[2]['paymentMethod'];
- const _this = this;
- const pro = uni.getStorageSync('ygxLogin')
- pro['userName'] = _this.cardName;
- uni.request({
- url: _this.$webHost+'/api/v2/pay/bindCardToCodes',
- method:'POST',
- data:{
- cardIdNo: _this.idCardNo,
- customerId: pro.customerId,
- cardName: _this.cardName,
- cardNo: _this.cardIdNo,
- cardPhone: _this.cardPhone,
- cardNumber: _this.cardNumber,
- bankName: _this.bankName,
- preBindType: "prebc",
- paymentMethod:paymentMethod,
- againType : true
- },
- success(dt){
- if(dt.data.code ==401){
- _this.getUserInfo()
- return;
}
+ })
- if(dt.data.code !==200){
- uni.showToast({
- title: dt.data.data,
- icon: 'none'
- })
- return;
+ let count = 60;
+ that.countText = `${count}s秒后重新获取`;
+
+
+ const timer = setInterval(() => {
+ count--;
+ that.countText = `${count}s秒后重新获取`;
+ if (count <= 0) {
+ clearInterval(timer);
+ that.isCounting = false;
+ that.countText = '';
}
-
- const res = dt.data.data;
- if(!res){
- return;
- }
- _this.callbackData = res;
- _this.bindCardId = res;
- uni.showToast({
- title: "验证码已发送",
- icon: "none",
- });
- // 设置倒计时功能
- let count = 60;
-
- const timer = setInterval(() => {
- count--;
- if (count <= 0) {
- clearInterval(timer);
- _this.$set(_this, "isCounting_B", false);
- } else {
- _this.$set(_this, "isCounting_B", true);
- _this.$set(_this, "countText_B", `${count}秒后重新获取`);
- }
- }, 1000);
- }
- })
- },
- submitPlan_san(){
-
- const _this = this;
-
-
- if (!this.verificationCodeS) {
+ },1000)
+ },
+ fail(err){
+ that.isCounting = false;
+ that.countText = '';
uni.showToast({
- title: "请输入验证码",
+ title: err,
+ icon: 'none'
+ })
+ }
+ })
+
+
+
+
+
+
+
+
+
+
+ },
+// 二次获取
+ getCode(){
+ if (this.isCounting_A) {
+ return;
+ }
+ const paymentMethod = this.getPayBindCardInfo[1]['paymentMethod'];
+ const _this = this;
+ const pro = uni.getStorageSync('qxgLogin')
+ pro['userName'] = _this.cardName;
+ uni.request({
+ url: _this.$webHost+'/api/v2/pay/bindCardToCodes',
+ method:'POST',
+ data:{
+ cardIdNo: _this.idCardNo,
+ customerId: pro.customerId,
+ cardName: _this.cardName,
+ cardNo: _this.cardIdNo,
+ cardPhone: _this.cardPhone,
+ cardNumber: _this.cardNumber,
+ bankName: _this.bankName,
+ preBindType: "prebc",
+ paymentMethod:paymentMethod,
+ againType : true
+ },
+ success(dt){
+ if(dt.data.code === 401){
+ _this.getUserInfo()
+ return;
+ }
+ const res = dt.data.data;
+ if(!res){
+ return;
+ }
+ _this.callbackData = res;
+ _this.bindCardId = res;
+ uni.showToast({
+ title: "验证码已发送",
icon: "none",
});
- return;
+ // 设置倒计时功能
+ let count = 60;
+
+ const timer = setInterval(() => {
+ count--;
+ if (count <= 0) {
+ clearInterval(timer);
+ _this.$set(_this, "isCounting_A", false);
+ } else {
+ _this.$set(_this, "isCounting_A", true);
+ _this.$set(_this, "countText_A", `${count}秒后重新获取`);
+ }
+ }, 1000);
}
+ })
+ },
- const callbackData = _this.callbackData;
- const paymentMethod = _this.getPayBindCardInfo[2]['paymentMethod'];
+ submitPlan(){
+
+ const _this = this;
+
+ if (!this.verificationCodeT) {
+ uni.showToast({
+ title: "请输入验证码",
+ icon: "none",
+ });
+ return;
+ }
+
+ const callbackData = _this.callbackData;
+ const paymentMethod = _this.getPayBindCardInfo[1]['paymentMethod'];
- uni.request({
- url: _this.$webHost+'/api/v2/pay/verifySMSCodes',
- method:'POST',
- data:{
- ...callbackData,
+ uni.request({
+ url: _this.$webHost+'/api/v2/pay/verifySMSCodes',
+ method:'POST',
+ data:{
+ ...callbackData,
- "customerId": uni.getStorageSync('ygxLogin').customerId,
- "cardPhone" : _this.cardPhone, //手机号
+ "customerId": uni.getStorageSync('qxgLogin').customerId,
+ "cardPhone" : _this.cardPhone, //手机号
- "cardNumber": _this.cardNumber, //卡号
- paymentMethod:paymentMethod,
- "cardName" : _this.cardName, // 名字
- "cardIdNo" : _this.cardIdNo,
- "bankName" : _this.bankName,
- "cardNo" : _this.cardNumber,
+ "cardNumber": _this.cardNumber, //卡号
+ paymentMethod:paymentMethod,
+ "cardName" : _this.cardName, // 名字
+ "cardIdNo" : _this.cardIdNo,
+ "bankName" : _this.bankName,
+ "cardNo" : _this.cardNumber,
- "verificationCode": _this.verificationCodeS,
- },
- success(dts){
- if(dts.data.code!==200){
- uni.showTitle({
- title: dts.data.data
- });
+ "verificationCode": _this.verificationCodeT,
+ },
+ success(dts){
+ if(dts.data.code!==200){
+ return
+ }
+
+ uni.request({
+ url:_this.$webHost+`/api/v2/pay/getPayBindCardInfo/${uni.getStorageSync('qxgLogin').customerId}`,
+ method:'get',
+ success:function(res){
+ const ls = res.data.data;
+ _this.getPayBindCardInfo = res.data.data;
+ if(ls.length>2 && !ls[2].bindStatus){
+ _this.isCounting_A = false;
+ _this.countText_A = '';
+ _this.$refs.codeUi.close()
+ _this.$refs.setUi.open()
+ return;
+ }
+
+ if(!ls || !ls.some(item => item.bindStatus == 0)) {_this.kk();return;}
}
- uni.request({
- url:_this.$webHost+`/api/v2/pay/getPayBindCardInfo/${uni.getStorageSync('ygxLogin').customerId}`,
- method:'get',
- success:function(res){
- const ls = res.data.data;
- _this.getPayBindCardInfo = res.data.data;
- _this.isCounting_B = false;
- _this.countText_B = '';
- _this.$refs.setUi.close()
- _this.$refs.codeUi.close()
- if(!ls || !ls.some(item => item.bindStatus == 0)) {_this.kk();return;}
+ })
+ }
+ })
-
- }
-
- })
- }
- })
-
- },
-
-
-
- getUserInfo() {
-
- const data = uni.getStorageSync('LOGING_DATA')
- console.log(data);
- this.$store.commit("LOGIN", {
- 'token': data.token
- });
- this.$store.commit('UPDATE_USERINFO', {
- avatar: data.avatar,
- nickname: data.nickname,
- phone: data.phone
- });
- this.$store.commit("SETUID", data.id)
-
- uni.reLaunch({
- url: '/pages/index/index'
- });
- },
},
- onUnload() {
+// 三次
+ getCode_san(){
+ if (this.isCounting_B) {
+ return;
+ }
+ const paymentMethod = this.getPayBindCardInfo[2]['paymentMethod'];
+ const _this = this;
+ const pro = uni.getStorageSync('qxgLogin')
+ pro['userName'] = _this.cardName;
+ uni.request({
+ url: _this.$webHost+'/api/v2/pay/bindCardToCodes',
+ method:'POST',
+ data:{
+ cardIdNo: _this.idCardNo,
+ customerId: pro.customerId,
+ cardName: _this.cardName,
+ cardNo: _this.cardIdNo,
+ cardPhone: _this.cardPhone,
+ cardNumber: _this.cardNumber,
+ bankName: _this.bankName,
+ preBindType: "prebc",
+ paymentMethod:paymentMethod,
+ againType : true
+ },
+ success(dt){
+ if(dt.data.code ==401){
+ _this.getUserInfo()
+ return;
+ }
+
+ if(dt.data.code !==200){
+ uni.showToast({
+ title: dt.data.data,
+ icon: 'none'
+ })
+ return;
+ }
+
+ const res = dt.data.data;
+ if(!res){
+ return;
+ }
+ _this.callbackData = res;
+ _this.bindCardId = res;
+ uni.showToast({
+ title: "验证码已发送",
+ icon: "none",
+ });
+ // 设置倒计时功能
+ let count = 60;
+
+ const timer = setInterval(() => {
+ count--;
+ if (count <= 0) {
+ clearInterval(timer);
+ _this.$set(_this, "isCounting_B", false);
+ } else {
+ _this.$set(_this, "isCounting_B", true);
+ _this.$set(_this, "countText_B", `${count}秒后重新获取`);
+ }
+ }, 1000);
+ }
+ })
+ },
+ submitPlan_san(){
+
+ const _this = this;
+
+
+ if (!this.verificationCodeS) {
+ uni.showToast({
+ title: "请输入验证码",
+ icon: "none",
+ });
+ return;
+ }
+
+ const callbackData = _this.callbackData;
+ const paymentMethod = _this.getPayBindCardInfo[2]['paymentMethod'];
+
+
+ uni.request({
+ url: _this.$webHost+'/api/v2/pay/verifySMSCodes',
+ method:'POST',
+ data:{
+ ...callbackData,
+
+ "customerId": uni.getStorageSync('qxgLogin').customerId,
+ "cardPhone" : _this.cardPhone, //手机号
+
+ "cardNumber": _this.cardNumber, //卡号
+ paymentMethod:paymentMethod,
+ "cardName" : _this.cardName, // 名字
+ "cardIdNo" : _this.cardIdNo,
+ "bankName" : _this.bankName,
+ "cardNo" : _this.cardNumber,
+
+ "verificationCode": _this.verificationCodeS,
+ },
+ success(dts){
+ if(dts.data.code!==200){
+ _this.showToast({
+ title: dts.data.data
+ });
+ }
+
+ uni.request({
+ url:_this.$webHost+`/api/v2/pay/getPayBindCardInfo/${uni.getStorageSync('qxgLogin').customerId}`,
+ method:'get',
+ success:function(res){
+ const ls = res.data.data;
+ _this.getPayBindCardInfo = res.data.data;
+ _this.isCounting_B = false;
+ _this.countText_B = '';
+ _this.$refs.setUi.close()
+ _this.$refs.codeUi.close()
+ if(!ls || !ls.some(item => item.bindStatus == 0)) {_this.kk();return;}
+
+
+ }
+
+ })
+ }
+ })
+
+ },
+
+
+
+ getUserInfo() {
+
+
+
+ uni.reLaunch({
+ url: '/pages/index/index'
+ });
+ },
+ },
+ onUnload() {
clearInterval(this.interval);
},
}
diff --git a/uni_modules/uview-ui/LICENSE b/uni_modules/uview-ui/LICENSE
deleted file mode 100644
index 4db40ef..0000000
--- a/uni_modules/uview-ui/LICENSE
+++ /dev/null
@@ -1,21 +0,0 @@
-MIT License
-
-Copyright (c) 2023 www.uviewui.com
-
-Permission is hereby granted, free of charge, to any person obtaining a copy
-of this software and associated documentation files (the "Software"), to deal
-in the Software without restriction, including without limitation the rights
-to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-copies of the Software, and to permit persons to whom the Software is
-furnished to do so, subject to the following conditions:
-
-The above copyright notice and this permission notice shall be included in all
-copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
-SOFTWARE.
diff --git a/uni_modules/uview-ui/README.md b/uni_modules/uview-ui/README.md
deleted file mode 100644
index c78ff47..0000000
--- a/uni_modules/uview-ui/README.md
+++ /dev/null
@@ -1,66 +0,0 @@
-<p align="center">
- <img alt="logo" src="https://uviewui.com/common/logo.png" width="120" height="120" style="margin-bottom: 10px;">
-</p>
-<h3 align="center" style="margin: 30px 0 30px;font-weight: bold;font-size:40px;">uView 2.0</h3>
-<h3 align="center">多平台快速开发的UI框架</h3>
-
-[](https://github.com/umicro/uView2.0)
-[](https://github.com/umicro/uView2.0)
-[](https://github.com/umicro/uView2.0/issues)
-[](https://uviewui.com)
-[](https://gitee.com/umicro/uView2.0/releases)
-[](https://en.wikipedia.org/wiki/MIT_License)
-
-## 说明
-
-uView UI,是[uni-app](https://uniapp.dcloud.io/)全面兼容nvue的uni-app生态框架,全面的组件和便捷的工具会让您信手拈来,如鱼得水
-
-## [官方文档:https://uviewui.com](https://uviewui.com)
-
-
-## 预览
-
-您可以通过**微信**扫码,查看最佳的演示效果。
-<br>
-<br>
-<img src="https://uviewui.com/common/weixin_mini_qrcode.png" width="220" height="220" >
-
-
-## 链接
-
-- [官方文档](https://www.uviewui.com/)
-- [更新日志](https://www.uviewui.com/components/changelog.html)
-- [升级指南](https://www.uviewui.com/components/changeGuide.html)
-- [关于我们](https://www.uviewui.com/cooperation/about.html)
-
-## 交流反馈
-
-欢迎加入我们的QQ群交流反馈:[点此跳转](https://www.uviewui.com/components/addQQGroup.html)
-
-## 关于PR
-
-> 我们非常乐意接受各位的优质PR,但在此之前我希望您了解uView2.0是一个需要兼容多个平台的(小程序、h5、ios app、android app)包括nvue页面、vue页面。
-> 所以希望在您修复bug并提交之前尽可能的去这些平台测试一下兼容性。最好能携带测试截图以方便审核。非常感谢!
-
-## 安装
-
-#### **uni-app插件市场链接** —— [https://ext.dcloud.net.cn/plugin?id=1593](https://ext.dcloud.net.cn/plugin?id=1593)
-
-请通过[官网安装文档](https://www.uviewui.com/components/install.html)了解更详细的内容
-
-## 快速上手
-
-请通过[快速上手](https://uviewui.com/components/quickstart.html)了解更详细的内容
-
-## 使用方法
-配置easycom规则后,自动按需引入,无需`import`组件,直接引用即可。
-
-```html
-<template>
- <u-button text="按钮"></u-button>
-</template>
-```
-
-## 版权信息
-uView遵循[MIT](https://en.wikipedia.org/wiki/MIT_License)开源协议,意味着您无需支付任何费用,也无需授权,即可将uView应用到您的产品中。
-
diff --git a/uni_modules/uview-ui/changelog.md b/uni_modules/uview-ui/changelog.md
deleted file mode 100644
index 73bb66d..0000000
--- a/uni_modules/uview-ui/changelog.md
+++ /dev/null
@@ -1,376 +0,0 @@
-## 2.0.38(2024-06-12)
-插件市场处理
-## 2.0.37(2024-03-17)
-# uView2.0重磅发布,利剑出鞘,一统江湖
-
-1. 修复表单校验`trigger`触发器参数无效问题
-2. 修复`u-input`组件的`password`属性在动态切换为`false`时失效的问题
-3. 添加微信小程序用户同意隐私协议事件回调
-4. 修复支付宝小程序picker样式问题
-5. `u-modal`添加`duration`字段控制动画过度时间
-6. 修复`picker` `lastIndex`异常导致的`column`异常问题
-7. `tabs`增加长按事件支持
-8. 修复`u-avatar` `square`属性在小程序`open-data`下无效问题
-9. 其他一些修复
-## 2.0.36(2023-03-27)
-# uView2.0重磅发布,利剑出鞘,一统江湖
-
-1. 重构`deepClone` & `deepMerge`方法
-2. 其他优化
-## 2.0.34(2022-09-24)
-# uView2.0重磅发布,利剑出鞘,一统江湖
-
-1. `u-input`、`u-textarea`增加`ignoreCompositionEvent`属性
-2. 修复`route`方法调用可能报错的问题
-3. 修复`u-no-network`组件`z-index`无效的问题
-4. 修复`textarea`组件在h5上confirmType=""报错的问题
-5. `u-rate`适配`nvue`
-6. 优化验证手机号码的正则表达式(根据工信部发布的《电信网编号计划(2017年版)》进行修改。)
-7. `form-item`添加`labelPosition`属性
-8. `u-calendar`修复`maxDate`设置为当前日期,并且当前时间大于08:00时无法显示日期列表的问题 (#724)
-9. `u-radio`增加一个默认插槽用于自定义修改label内容 (#680)
-10. 修复`timeFormat`函数在safari重的兼容性问题 (#664)
-## 2.0.33(2022-06-17)
-# uView2.0重磅发布,利剑出鞘,一统江湖
-
-1. 修复`loadmore`组件`lineColor`类型错误问题
-2. 修复`u-parse`组件`imgtap`、`linktap`不生效问题
-## 2.0.32(2022-06-16)
-# uView2.0重磅发布,利剑出鞘,一统江湖
-1. `u-loadmore`新增自定义颜色、虚/实线
-2. 修复`u-swiper-action`组件部分平台不能上下滑动的问题
-3. 修复`u-list`回弹问题
-4. 修复`notice-bar`组件动画在低端安卓机可能会抖动的问题
-5. `u-loading-page`添加控制图标大小的属性`iconSize`
-6. 修复`u-tooltip`组件`color`参数不生效的问题
-7. 修复`u--input`组件使用`blur`事件输出为`undefined`的bug
-8. `u-code-input`组件新增键盘弹起时,是否自动上推页面参数`adjustPosition`
-9. 修复`image`组件`load`事件无回调对象问题
-10. 修复`button`组件`loadingSize`设置无效问题
-10. 其他修复
-## 2.0.31(2022-04-19)
-# uView2.0重磅发布,利剑出鞘,一统江湖
-
-1. 修复`upload`在`vue`页面上传成功后没有成功标志的问题
-2. 解决演示项目中微信小程序模拟上传图片一直出于上传中问题
-3. 修复`u-code-input`组件在`nvue`页面编译到`app`平台上光标异常问题(`app`去除此功能)
-4. 修复`actionSheet`组件标题关闭按钮点击事件名称错误的问题
-5. 其他修复
-## 2.0.30(2022-04-04)
-# uView2.0重磅发布,利剑出鞘,一统江湖
-
-1. `u-rate`增加`readonly`属性
-2. `tabs`滑块支持设置背景图片
-3. 修复`u-subsection` `mode`为`subsection`时,滑块样式不正确的问题
-4. `u-code-input`添加光标效果动画
-5. 修复`popup`的`open`事件不触发
-6. 修复`u-flex-column`无效的问题
-7. 修复`u-datetime-picker`索引在特定场合异常问题
-8. 修复`u-datetime-picker`最小时间字符串模板错误问题
-9. `u-swiper`添加`m3u8`验证
-10. `u-swiper`修改判断image和video逻辑
-11. 修复`swiper`无法使用本地图片问题,增加`type`参数
-12. 修复`u-row-notice`格式错误问题
-13. 修复`u-switch`组件当`unit`为`rpx`时,`nodeStyle`消失的问题
-14. 修复`datetime-picker`组件`showToolbar`与`visibleItemCount`属性无效的问题
-15. 修复`upload`组件条件编译位置判断错误,导致`previewImage`属性设置为`false`时,整个组件都会被隐藏的问题
-16. 修复`u-checkbox-group`设置`shape`属性无效的问题
-17. 修复`u-upload`的`capture`传入字符串的时候不生效的问题
-18. 修复`u-action-sheet`组件,关闭事件逻辑错误的问题
-19. 修复`u-list`触顶事件的触发错误的问题
-20. 修复`u-text`只有手机号可拨打的问题
-21. 修复`u-textarea`不能换行的问题
-22. 其他修复
-## 2.0.29(2022-03-13)
-# uView2.0重磅发布,利剑出鞘,一统江湖
-
-1. 修复`u--text`组件设置`decoration`属性未生效的问题
-2. 修复`u-datetime-picker`使用`formatter`后返回值不正确
-3. 修复`u-datetime-picker` `intercept` 可能为undefined
-4. 修复已设置单位 uni..config.unit = 'rpx'时,线型指示器 `transform` 的位置翻倍,导致指示器超出宽度
-5. 修复mixin中bem方法生成的类名在支付宝和字节小程序中失效
-6. 修复默认值传值为空的时候,打开`u-datetime-picker`报错,不能选中第一列时间的bug
-7. 修复`u-datetime-picker`使用`formatter`后返回值不正确
-8. 修复`u-image`组件`loading`无效果的问题
-9. 修复`config.unit`属性设为`rpx`时,导航栏占用高度不足导致塌陷的问题
-10. 修复`u-datetime-picker`组件`itemHeight`无效问题
-11. 其他修复
-## 2.0.28(2022-02-22)
-# uView2.0重磅发布,利剑出鞘,一统江湖
-
-1. search组件新增searchIconSize属性
-2. 兼容Safari/Webkit中传入时间格式如2022-02-17 12:00:56
-3. 修复text value.js 判断日期出format错误问题
-4. priceFormat格式化金额出现精度错误
-5. priceFormat在部分情况下出现精度损失问题
-6. 优化表单rules提示
-7. 修复avatar组件src为空时,展示状态不对
-8. 其他修复
-## 2.0.27(2022-01-28)
-# uView2.0重磅发布,利剑出鞘,一统江湖
-
-1.样式修复
-## 2.0.26(2022-01-28)
-# uView2.0重磅发布,利剑出鞘,一统江湖
-
-1.样式修复
-## 2.0.25(2022-01-27)
-# uView2.0重磅发布,利剑出鞘,一统江湖
-
-1. 修复text组件mode=price时,可能会导致精度错误的问题
-2. 添加$u.setConfig()方法,可设置uView内置的config, props, zIndex, color属性,详见:[修改uView内置配置方案](https://uviewui.com/components/setting.html#%E9%BB%98%E8%AE%A4%E5%8D%95%E4%BD%8D%E9%85%8D%E7%BD%AE)
-3. 优化form组件在errorType=toast时,如果输入错误页面会有抖动的问题
-4. 修复$u.addUnit()对配置默认单位可能无效的问题
-## 2.0.24(2022-01-25)
-# uView2.0重磅发布,利剑出鞘,一统江湖
-
-1. 修复swiper在current指定非0时缩放有误
-2. 修复u-icon添加stop属性的时候报错
-3. 优化遗留的通过正则判断rpx单位的问题
-4. 优化Layout布局 vue使用gutter时,会超出固定区域
-5. 优化search组件高度单位问题(rpx -> px)
-6. 修复u-image slot 加载和错误的图片失去了高度
-7. 修复u-index-list中footer插槽与header插槽存在性判断错误
-8. 修复部分机型下u-popup关闭时会闪烁
-9. 修复u-image在nvue-app下失去宽高
-10. 修复u-popup运行报错
-11. 修复u-tooltip报错
-12. 修复box-sizing在app下的警告
-13. 修复u-navbar在小程序中报运行时错误
-14. 其他修复
-## 2.0.23(2022-01-24)
-# uView2.0重磅发布,利剑出鞘,一统江湖
-
-1. 修复image组件在hx3.3.9的nvue下可能会显示异常的问题
-2. 修复col组件gutter参数带rpx单位处理不正确的问题
-3. 修复text组件单行时无法显示省略号的问题
-4. navbar添加titleStyle参数
-5. 升级到hx3.3.9可消除nvue下控制台样式警告的问题
-## 2.0.22(2022-01-19)
-# uView2.0重磅发布,利剑出鞘,一统江湖
-
-1. $u.page()方法优化,避免在特殊场景可能报错的问题
-2. picker组件添加immediateChange参数
-3. 新增$u.pages()方法
-## 2.0.21(2022-01-19)
-# uView2.0重磅发布,利剑出鞘,一统江湖
-
-1. 优化:form组件在用户设置rules的时候提示用户model必传
-2. 优化遗留的通过正则判断rpx单位的问题
-3. 修复微信小程序环境中tabbar组件开启safeAreaInsetBottom属性后,placeholder高度填充不正确
-4. 修复swiper在current指定非0时缩放有误
-5. 修复u-icon添加stop属性的时候报错
-6. 修复upload组件在accept=all的时候没有作用
-7. 修复在text组件mode为phone时call属性无效的问题
-8. 处理u-form clearValidate方法
-9. 其他修复
-## 2.0.20(2022-01-14)
-# uView2.0重磅发布,利剑出鞘,一统江湖
-
-1. 修复calendar默认会选择一个日期,如果直接点确定的话,无法取到值的问题
-2. 修复Slider缺少disabled props 还有注释
-3. 修复u-notice-bar点击事件无法拿到index索引值的问题
-4. 修复u-collapse-item在vue文件下,app端自定义插槽不生效的问题
-5. 优化头像为空时显示默认头像
-6. 修复图片地址赋值后判断加载状态为完成问题
-7. 修复日历滚动到默认日期月份区域
-8. search组件暴露点击左边icon事件
-9. 修复u-form clearValidate方法不生效
-10. upload h5端增加返回文件参数(文件的name参数)
-11. 处理upload选择文件后url为blob类型无法预览的问题
-12. u-code-input 修复输入框没有往左移出一半屏幕
-13. 修复Upload上传 disabled为true时,控制台报hoverClass类型错误
-14. 临时处理ios app下grid点击坍塌问题
-15. 其他修复
-## 2.0.19(2021-12-29)
-# uView2.0重磅发布,利剑出鞘,一统江湖
-
-1. 优化微信小程序包体积可在微信中预览,请升级HbuilderX3.3.4,同时在“运行->运行到小程序模拟器”中勾选“运行时是否压缩代码”
-2. 优化微信小程序setData性能,处理某些方法如$u.route()无法在模板中使用的问题
-3. navbar添加autoBack参数
-4. 允许avatar组件的事件冒泡
-5. 修复cell组件报错问题
-6. 其他修复
-## 2.0.18(2021-12-28)
-# uView2.0重磅发布,利剑出鞘,一统江湖
-
-1. 修复app端编译报错问题
-2. 重新处理微信小程序端setData过大的性能问题
-3. 修复边框问题
-4. 修复最大最小月份不大于0则没有数据出现的问题
-5. 修复SwipeAction微信小程序端无法上下滑动问题
-6. 修复input的placeholder在小程序端默认显示为true问题
-7. 修复divider组件click事件无效问题
-8. 修复u-code-input maxlength 属性值为 String 类型时显示异常
-9. 修复当 grid只有 1到2时 在小程序端algin设置无效的问题
-10. 处理form-item的label为top时,取消错误提示的左边距
-11. 其他修复
-## 2.0.17(2021-12-26)
-## uView正在参与开源中国的“年度最佳项目”评选,之前投过票的现在也可以投票,恳请同学们投一票,[点此帮助uView](https://www.oschina.net/project/top_cn_2021/?id=583)
-
-# uView2.0重磅发布,利剑出鞘,一统江湖
-
-1. 解决HBuilderX3.3.3.20211225版本导致的样式问题
-2. calendar日历添加monthNum参数
-3. navbar添加center slot
-## 2.0.16(2021-12-25)
-## uView正在参与开源中国的“年度最佳项目”评选,之前投过票的现在也可以投票,恳请同学们投一票,[点此帮助uView](https://www.oschina.net/project/top_cn_2021/?id=583)
-
-# uView2.0重磅发布,利剑出鞘,一统江湖
-
-1. 解决微信小程序setData性能问题
-2. 修复count-down组件change事件不触发问题
-## 2.0.15(2021-12-21)
-## uView正在参与开源中国的“年度最佳项目”评选,之前投过票的现在也可以投票,恳请同学们投一票,[点此帮助uView](https://www.oschina.net/project/top_cn_2021/?id=583)
-
-# uView2.0重磅发布,利剑出鞘,一统江湖
-
-1. 修复Cell单元格titleWidth无效
-2. 修复cheakbox组件ischecked不更新
-3. 修复keyboard是否显示"."按键默认值问题
-4. 修复number-keyboard是否显示键盘的"."符号问题
-5. 修复Input输入框 readonly无效
-6. 修复u-avatar 导致打包app、H5时候报错问题
-7. 修复Upload上传deletable无效
-8. 修复upload当设置maxSize时无效的问题
-9. 修复tabs lineWidth传入带单位的字符串的时候偏移量计算错误问题
-10. 修复rate组件在有padding的view内,显示的星星位置和可触摸区域不匹配,无法正常选中星星
-## 2.0.13(2021-12-14)
-## [点击加群交流反馈:364463526](https://jq.qq.com/?_chanwv=1027&k=mCxS3TGY)
-
-# uView2.0重磅发布,利剑出鞘,一统江湖
-
-1. 修复配置默认单位为rpx可能会导致自定义导航栏高度异常的问题
-## 2.0.12(2021-12-14)
-## [点击加群交流反馈:364463526](https://jq.qq.com/?_chanwv=1027&k=mCxS3TGY)
-
-# uView2.0重磅发布,利剑出鞘,一统江湖
-
-1. 修复tabs组件在vue环境下划线消失的问题
-2. 修复upload组件在安卓小程序无法选择视频的问题
-3. 添加uni.$u.config.unit配置,用于配置参数默认单位,详见:[默认单位配置](https://www.uviewui.com/components/setting.html#%E9%BB%98%E8%AE%A4%E5%8D%95%E4%BD%8D%E9%85%8D%E7%BD%AE)
-4. 修复textarea组件在没绑定v-model时,字符统计不生效问题
-5. 修复nvue下控制是否出现滚动条失效问题
-## 2.0.11(2021-12-13)
-## [点击加群交流反馈:364463526](https://jq.qq.com/?_chanwv=1027&k=mCxS3TGY)
-
-# uView2.0重磅发布,利剑出鞘,一统江湖
-
-1. text组件align参数无效的问题
-2. subsection组件添加keyName参数
-3. upload组件无法判断[Object file]类型的问题
-4. 处理notify层级过低问题
-5. codeInput组件添加disabledDot参数
-6. 处理actionSheet组件round参数无效的问题
-7. calendar组件添加round参数用于控制圆角值
-8. 处理swipeAction组件在vue环境下默认被打开的问题
-9. button组件的throttleTime节流参数无效的问题
-10. 解决u-notify手动关闭方法close()无效的问题
-11. input组件readonly不生效问题
-12. tag组件type参数为info不生效问题
-## 2.0.10(2021-12-08)
-## [点击加群交流反馈:364463526](https://jq.qq.com/?_chanwv=1027&k=mCxS3TGY)
-
-# uView2.0重磅发布,利剑出鞘,一统江湖
-
-1. 修复button sendMessagePath属性不生效
-2. 修复DatetimePicker选择器title无效
-3. 修复u-toast设置loading=true不生效
-4. 修复u-text金额模式传0报错
-5. 修复u-toast组件的icon属性配置不生效
-6. button的icon在特殊场景下的颜色优化
-7. IndexList优化,增加#
-## 2.0.9(2021-12-01)
-## [点击加群交流反馈:232041042](https://jq.qq.com/?_wv=1027&k=KnbeceDU)
-
-# uView2.0重磅发布,利剑出鞘,一统江湖
-
-1. 优化swiper的height支持100%值(仅vue有效),修复嵌入视频时click事件无法触发的问题
-2. 优化tabs组件对list值为空的判断,或者动态变化list时重新计算相关尺寸的问题
-3. 优化datetime-picker组件逻辑,让其后续打开的默认值为上一次的选中值,需要通过v-model绑定值才有效
-4. 修复upload内嵌在其他组件中,选择图片可能不会换行的问题
-## 2.0.8(2021-12-01)
-## [点击加群交流反馈:232041042](https://jq.qq.com/?_wv=1027&k=KnbeceDU)
-
-# uView2.0重磅发布,利剑出鞘,一统江湖
-
-1. 修复toast的position参数无效问题
-2. 处理input在ios nvue上无法获得焦点的问题
-3. avatar-group组件添加extraValue参数,让剩余展示数量可手动控制
-4. tabs组件添加keyName参数用于配置从对象中读取的键名
-5. 处理text组件名字脱敏默认配置无效的问题
-6. 处理picker组件item文本太长换行问题
-## 2.0.7(2021-11-30)
-## [点击加群交流反馈:232041042](https://jq.qq.com/?_wv=1027&k=KnbeceDU)
-
-# uView2.0重磅发布,利剑出鞘,一统江湖
-
-1. 修复radio和checkbox动态改变v-model无效的问题。
-2. 优化form规则validator在微信小程序用法
-3. 修复backtop组件mode参数在微信小程序无效的问题
-4. 处理Album的previewFullImage属性无效的问题
-5. 处理u-datetime-picker组件mode='time'在选择改变时间时,控制台报错的问题
-## 2.0.6(2021-11-27)
-## [点击加群交流反馈:232041042](https://jq.qq.com/?_wv=1027&k=KnbeceDU)
-
-# uView2.0重磅发布,利剑出鞘,一统江湖
-
-1. 处理tag组件在vue下边框无效的问题。
-2. 处理popup组件圆角参数可能无效的问题。
-3. 处理tabs组件lineColor参数可能无效的问题。
-4. propgress组件在值很小时,显示异常的问题。
-## 2.0.5(2021-11-25)
-## [点击加群交流反馈:232041042](https://jq.qq.com/?_wv=1027&k=KnbeceDU)
-
-# uView2.0重磅发布,利剑出鞘,一统江湖
-
-1. calendar在vue下显示异常问题。
-2. form组件labelPosition和errorType参数无效的问题
-3. input组件inputAlign无效的问题
-4. 其他一些修复
-## 2.0.4(2021-11-23)
-## [点击加群交流反馈:232041042](https://jq.qq.com/?_wv=1027&k=KnbeceDU)
-
-# uView2.0重磅发布,利剑出鞘,一统江湖
-
-0. input组件缺失@confirm事件,以及subfix和prefix无效问题
-1. component.scss文件样式在vue下干扰全局布局问题
-2. 修复subsection在vue环境下表现异常的问题
-3. tag组件的bgColor等参数无效的问题
-4. upload组件不换行的问题
-5. 其他的一些修复处理
-## 2.0.3(2021-11-16)
-## [点击加群交流反馈:1129077272](https://jq.qq.com/?_wv=1027&k=KnbeceDU)
-
-# uView2.0重磅发布,利剑出鞘,一统江湖
-
-1. uView2.0已实现全面兼容nvue
-2. uView2.0对1.x进行了架构重构,细节和性能都有极大提升
-3. 目前uView2.0为公测阶段,相关细节可能会有变动
-4. 我们写了一份与1.x的对比指南,详见[对比1.x](https://www.uviewui.com/components/diff1.x.html)
-5. 处理modal的confirm回调事件拼写错误问题
-6. 处理input组件@input事件参数错误问题
-7. 其他一些修复
-## 2.0.2(2021-11-16)
-## [点击加群交流反馈:1129077272](https://jq.qq.com/?_wv=1027&k=KnbeceDU)
-
-# uView2.0重磅发布,利剑出鞘,一统江湖
-
-1. uView2.0已实现全面兼容nvue
-2. uView2.0对1.x进行了架构重构,细节和性能都有极大提升
-3. 目前uView2.0为公测阶段,相关细节可能会有变动
-4. 我们写了一份与1.x的对比指南,详见[对比1.x](https://www.uviewui.com/components/diff1.x.html)
-5. 修复input组件formatter参数缺失问题
-6. 优化loading-icon组件的scss写法问题,防止不兼容新版本scss
-## 2.0.0(2020-11-15)
-## [点击加群交流反馈:1129077272](https://jq.qq.com/?_wv=1027&k=KnbeceDU)
-
-# uView2.0重磅发布,利剑出鞘,一统江湖
-
-1. uView2.0已实现全面兼容nvue
-2. uView2.0对1.x进行了架构重构,细节和性能都有极大提升
-3. 目前uView2.0为公测阶段,相关细节可能会有变动
-4. 我们写了一份与1.x的对比指南,详见[对比1.x](https://www.uviewui.com/components/diff1.x.html)
-5. 修复input组件formatter参数缺失问题
-
-
diff --git a/uni_modules/uview-ui/components/u--form/u--form.vue b/uni_modules/uview-ui/components/u--form/u--form.vue
deleted file mode 100644
index d534ece..0000000
--- a/uni_modules/uview-ui/components/u--form/u--form.vue
+++ /dev/null
@@ -1,78 +0,0 @@
-<template>
- <uvForm
- ref="uForm"
- :model="model"
- :rules="rules"
- :errorType="errorType"
- :borderBottom="borderBottom"
- :labelPosition="labelPosition"
- :labelWidth="labelWidth"
- :labelAlign="labelAlign"
- :labelStyle="labelStyle"
- :customStyle="customStyle"
- >
- <slot />
- </uvForm>
-</template>
-
-<script>
- /**
- * 此组件存在的理由是,在nvue下,u-form被uni-app官方占用了,u-form在nvue中相当于form组件
- * 所以在nvue下,取名为u--form,内部其实还是u-form.vue,只不过做一层中转
- */
- import uvForm from '../u-form/u-form.vue';
- import props from '../u-form/props.js'
- export default {
- // #ifdef MP-WEIXIN
- name: 'u-form',
- // #endif
- // #ifndef MP-WEIXIN
- name: 'u--form',
- // #endif
- mixins: [uni.$u.mpMixin, props, uni.$u.mixin],
- components: {
- uvForm
- },
- created() {
- this.children = []
- },
- methods: {
- // 手动设置校验的规则,如果规则中有函数的话,微信小程序中会过滤掉,所以只能手动调用设置规则
- setRules(rules) {
- this.$refs.uForm.setRules(rules)
- },
- validate() {
- /**
- * 在微信小程序中,通过this.$parent拿到的父组件是u--form,而不是其内嵌的u-form
- * 导致在u-form组件中,拿不到对应的children数组,从而校验无效,所以这里每次调用u-form组件中的
- * 对应方法的时候,在小程序中都先将u--form的children赋值给u-form中的children
- */
- // #ifdef MP-WEIXIN
- this.setMpData()
- // #endif
- return this.$refs.uForm.validate()
- },
- validateField(value, callback, event) {
- // #ifdef MP-WEIXIN
- this.setMpData()
- // #endif
- return this.$refs.uForm.validateField(value, callback, event)
- },
- resetFields() {
- // #ifdef MP-WEIXIN
- this.setMpData()
- // #endif
- return this.$refs.uForm.resetFields()
- },
- clearValidate(props) {
- // #ifdef MP-WEIXIN
- this.setMpData()
- // #endif
- return this.$refs.uForm.clearValidate(props)
- },
- setMpData() {
- this.$refs.uForm.children = this.children
- }
- },
- }
-</script>
diff --git a/uni_modules/uview-ui/components/u--image/u--image.vue b/uni_modules/uview-ui/components/u--image/u--image.vue
deleted file mode 100644
index 21b7ab1..0000000
--- a/uni_modules/uview-ui/components/u--image/u--image.vue
+++ /dev/null
@@ -1,47 +0,0 @@
-<template>
- <uvImage
- :src="src"
- :mode="mode"
- :width="width"
- :height="height"
- :shape="shape"
- :radius="radius"
- :lazyLoad="lazyLoad"
- :showMenuByLongpress="showMenuByLongpress"
- :loadingIcon="loadingIcon"
- :errorIcon="errorIcon"
- :showLoading="showLoading"
- :showError="showError"
- :fade="fade"
- :webp="webp"
- :duration="duration"
- :bgColor="bgColor"
- :customStyle="customStyle"
- @click="$emit('click')"
- @error="$emit('error')"
- @load="$emit('load')"
- >
- <template v-slot:loading>
- <slot name="loading"></slot>
- </template>
- <template v-slot:error>
- <slot name="error"></slot>
- </template>
- </uvImage>
-</template>
-
-<script>
- /**
- * 此组件存在的理由是,在nvue下,u-image被uni-app官方占用了,u-image在nvue中相当于image组件
- * 所以在nvue下,取名为u--image,内部其实还是u-iamge.vue,只不过做一层中转
- */
- import uvImage from '../u-image/u-image.vue';
- import props from '../u-image/props.js';
- export default {
- name: 'u--image',
- mixins: [uni.$u.mpMixin, props, uni.$u.mixin],
- components: {
- uvImage
- },
- }
-</script>
\ No newline at end of file
diff --git a/uni_modules/uview-ui/components/u--input/u--input.vue b/uni_modules/uview-ui/components/u--input/u--input.vue
deleted file mode 100644
index 1e58b01..0000000
--- a/uni_modules/uview-ui/components/u--input/u--input.vue
+++ /dev/null
@@ -1,73 +0,0 @@
-<template>
- <uvInput
- :value="value"
- :type="type"
- :fixed="fixed"
- :disabled="disabled"
- :disabledColor="disabledColor"
- :clearable="clearable"
- :password="password"
- :maxlength="maxlength"
- :placeholder="placeholder"
- :placeholderClass="placeholderClass"
- :placeholderStyle="placeholderStyle"
- :showWordLimit="showWordLimit"
- :confirmType="confirmType"
- :confirmHold="confirmHold"
- :holdKeyboard="holdKeyboard"
- :focus="focus"
- :autoBlur="autoBlur"
- :disableDefaultPadding="disableDefaultPadding"
- :cursor="cursor"
- :cursorSpacing="cursorSpacing"
- :selectionStart="selectionStart"
- :selectionEnd="selectionEnd"
- :adjustPosition="adjustPosition"
- :inputAlign="inputAlign"
- :fontSize="fontSize"
- :color="color"
- :prefixIcon="prefixIcon"
- :suffixIcon="suffixIcon"
- :suffixIconStyle="suffixIconStyle"
- :prefixIconStyle="prefixIconStyle"
- :border="border"
- :readonly="readonly"
- :shape="shape"
- :customStyle="customStyle"
- :formatter="formatter"
- :ignoreCompositionEvent="ignoreCompositionEvent"
- @focus="$emit('focus')"
- @blur="e => $emit('blur', e)"
- @keyboardheightchange="$emit('keyboardheightchange')"
- @change="e => $emit('change', e)"
- @input="e => $emit('input', e)"
- @confirm="e => $emit('confirm', e)"
- @clear="$emit('clear')"
- @click="$emit('click')"
- >
- <!-- #ifdef MP -->
- <slot name="prefix"></slot>
- <slot name="suffix"></slot>
- <!-- #endif -->
- <!-- #ifndef MP -->
- <slot name="prefix" slot="prefix"></slot>
- <slot name="suffix" slot="suffix"></slot>
- <!-- #endif -->
- </uvInput>
-</template>
-
-<script>
- /**
- * 此组件存在的理由是,在nvue下,u-input被uni-app官方占用了,u-input在nvue中相当于input组件
- * 所以在nvue下,取名为u--input,内部其实还是u-input.vue,只不过做一层中转
- */
- import uvInput from '../u-input/u-input.vue';
- import props from '../u-input/props.js'
- export default {
- name: 'u--input',
- mixins: [uni.$u.mpMixin, props, uni.$u.mixin],
- components: {
- uvInput
- },
- }
-</script>
\ No newline at end of file
diff --git a/uni_modules/uview-ui/components/u--text/u--text.vue b/uni_modules/uview-ui/components/u--text/u--text.vue
deleted file mode 100644
index 44ee52a..0000000
--- a/uni_modules/uview-ui/components/u--text/u--text.vue
+++ /dev/null
@@ -1,44 +0,0 @@
-<template>
- <uvText
- :type="type"
- :show="show"
- :text="text"
- :prefixIcon="prefixIcon"
- :suffixIcon="suffixIcon"
- :mode="mode"
- :href="href"
- :format="format"
- :call="call"
- :openType="openType"
- :bold="bold"
- :block="block"
- :lines="lines"
- :color="color"
- :decoration="decoration"
- :size="size"
- :iconStyle="iconStyle"
- :margin="margin"
- :lineHeight="lineHeight"
- :align="align"
- :wordWrap="wordWrap"
- :customStyle="customStyle"
- @click="$emit('click')"
- ></uvText>
-</template>
-
-<script>
-/**
- * 此组件存在的理由是,在nvue下,u-text被uni-app官方占用了,u-text在nvue中相当于input组件
- * 所以在nvue下,取名为u--input,内部其实还是u-text.vue,只不过做一层中转
- * 不使用v-bind="$attrs",而是分开独立写传参,是因为微信小程序不支持此写法
- */
-import uvText from "../u-text/u-text.vue";
-import props from "../u-text/props.js";
-export default {
- name: "u--text",
- mixins: [uni.$u.mpMixin, props, uni.$u.mixin],
- components: {
- uvText,
- },
-};
-</script>
diff --git a/uni_modules/uview-ui/components/u--textarea/u--textarea.vue b/uni_modules/uview-ui/components/u--textarea/u--textarea.vue
deleted file mode 100644
index f4df0b9..0000000
--- a/uni_modules/uview-ui/components/u--textarea/u--textarea.vue
+++ /dev/null
@@ -1,48 +0,0 @@
-<template>
- <uvTextarea
- :value="value"
- :placeholder="placeholder"
- :height="height"
- :confirmType="confirmType"
- :disabled="disabled"
- :count="count"
- :focus="focus"
- :autoHeight="autoHeight"
- :fixed="fixed"
- :cursorSpacing="cursorSpacing"
- :cursor="cursor"
- :showConfirmBar="showConfirmBar"
- :selectionStart="selectionStart"
- :selectionEnd="selectionEnd"
- :adjustPosition="adjustPosition"
- :disableDefaultPadding="disableDefaultPadding"
- :holdKeyboard="holdKeyboard"
- :maxlength="maxlength"
- :border="border"
- :customStyle="customStyle"
- :formatter="formatter"
- :ignoreCompositionEvent="ignoreCompositionEvent"
- @focus="e => $emit('focus')"
- @blur="e => $emit('blur')"
- @linechange="e => $emit('linechange', e)"
- @confirm="e => $emit('confirm')"
- @input="e => $emit('input', e)"
- @keyboardheightchange="e => $emit('keyboardheightchange')"
- ></uvTextarea>
-</template>
-
-<script>
- /**
- * 此组件存在的理由是,在nvue下,u--textarea被uni-app官方占用了,u-textarea在nvue中相当于textarea组件
- * 所以在nvue下,取名为u--textarea,内部其实还是u-textarea.vue,只不过做一层中转
- */
- import uvTextarea from '../u-textarea/u-textarea.vue';
- import props from '../u-textarea/props.js'
- export default {
- name: 'u--textarea',
- mixins: [uni.$u.mpMixin, props, uni.$u.mixin],
- components: {
- uvTextarea
- },
- }
-</script>
diff --git a/uni_modules/uview-ui/components/u-action-sheet/props.js b/uni_modules/uview-ui/components/u-action-sheet/props.js
deleted file mode 100644
index e96e04f..0000000
--- a/uni_modules/uview-ui/components/u-action-sheet/props.js
+++ /dev/null
@@ -1,54 +0,0 @@
-export default {
- props: {
- // 操作菜单是否展示 (默认false)
- show: {
- type: Boolean,
- default: uni.$u.props.actionSheet.show
- },
- // 标题
- title: {
- type: String,
- default: uni.$u.props.actionSheet.title
- },
- // 选项上方的描述信息
- description: {
- type: String,
- default: uni.$u.props.actionSheet.description
- },
- // 数据
- actions: {
- type: Array,
- default: uni.$u.props.actionSheet.actions
- },
- // 取消按钮的文字,不为空时显示按钮
- cancelText: {
- type: String,
- default: uni.$u.props.actionSheet.cancelText
- },
- // 点击某个菜单项时是否关闭弹窗
- closeOnClickAction: {
- type: Boolean,
- default: uni.$u.props.actionSheet.closeOnClickAction
- },
- // 处理底部安全区(默认true)
- safeAreaInsetBottom: {
- type: Boolean,
- default: uni.$u.props.actionSheet.safeAreaInsetBottom
- },
- // 小程序的打开方式
- openType: {
- type: String,
- default: uni.$u.props.actionSheet.openType
- },
- // 点击遮罩是否允许关闭 (默认true)
- closeOnClickOverlay: {
- type: Boolean,
- default: uni.$u.props.actionSheet.closeOnClickOverlay
- },
- // 圆角值
- round: {
- type: [Boolean, String, Number],
- default: uni.$u.props.actionSheet.round
- }
- }
-}
diff --git a/uni_modules/uview-ui/components/u-action-sheet/u-action-sheet.vue b/uni_modules/uview-ui/components/u-action-sheet/u-action-sheet.vue
deleted file mode 100644
index 26d5d8d..0000000
--- a/uni_modules/uview-ui/components/u-action-sheet/u-action-sheet.vue
+++ /dev/null
@@ -1,278 +0,0 @@
-
-<template>
- <u-popup
- :show="show"
- mode="bottom"
- @close="closeHandler"
- :safeAreaInsetBottom="safeAreaInsetBottom"
- :round="round"
- >
- <view class="u-action-sheet">
- <view
- class="u-action-sheet__header"
- v-if="title"
- >
- <text class="u-action-sheet__header__title u-line-1">{{title}}</text>
- <view
- class="u-action-sheet__header__icon-wrap"
- @tap.stop="cancel"
- >
- <u-icon
- name="close"
- size="17"
- color="#c8c9cc"
- bold
- ></u-icon>
- </view>
- </view>
- <text
- class="u-action-sheet__description"
- :style="[{
- marginTop: `${title && description ? 0 : '18px'}`
- }]"
- v-if="description"
- >{{description}}</text>
- <slot>
- <u-line v-if="description"></u-line>
- <view class="u-action-sheet__item-wrap">
- <template v-for="(item, index) in actions">
- <!-- #ifdef MP -->
- <button
- :key="index"
- class="u-reset-button"
- :openType="item.openType"
- @getuserinfo="onGetUserInfo"
- @contact="onContact"
- @getphonenumber="onGetPhoneNumber"
- @error="onError"
- @launchapp="onLaunchApp"
- @opensetting="onOpenSetting"
- :lang="lang"
- :session-from="sessionFrom"
- :send-message-title="sendMessageTitle"
- :send-message-path="sendMessagePath"
- :send-message-img="sendMessageImg"
- :show-message-card="showMessageCard"
- :app-parameter="appParameter"
- @tap="selectHandler(index)"
- :hover-class="!item.disabled && !item.loading ? 'u-action-sheet--hover' : ''"
- >
- <!-- #endif -->
- <view
- class="u-action-sheet__item-wrap__item"
- @tap.stop="selectHandler(index)"
- :hover-class="!item.disabled && !item.loading ? 'u-action-sheet--hover' : ''"
- :hover-stay-time="150"
- >
- <template v-if="!item.loading">
- <text
- class="u-action-sheet__item-wrap__item__name"
- :style="[itemStyle(index)]"
- >{{ item.name }}</text>
- <text
- v-if="item.subname"
- class="u-action-sheet__item-wrap__item__subname"
- >{{ item.subname }}</text>
- </template>
- <u-loading-icon
- v-else
- custom-class="van-action-sheet__loading"
- size="18"
- mode="circle"
- />
- </view>
- <!-- #ifdef MP -->
- </button>
- <!-- #endif -->
- <u-line v-if="index !== actions.length - 1"></u-line>
- </template>
- </view>
- </slot>
- <u-gap
- bgColor="#eaeaec"
- height="6"
- v-if="cancelText"
- ></u-gap>
- <view hover-class="u-action-sheet--hover">
- <text
- @touchmove.stop.prevent
- :hover-stay-time="150"
- v-if="cancelText"
- class="u-action-sheet__cancel-text"
- @tap="cancel"
- >{{cancelText}}</text>
- </view>
- </view>
- </u-popup>
-</template>
-
-<script>
- import openType from '../../libs/mixin/openType'
- import button from '../../libs/mixin/button'
- import props from './props.js';
- /**
- * ActionSheet 操作菜单
- * @description 本组件用于从底部弹出一个操作菜单,供用户选择并返回结果。本组件功能类似于uni的uni.showActionSheetAPI,配置更加灵活,所有平台都表现一致。
- * @tutorial https://www.uviewui.com/components/actionSheet.html
- *
- * @property {Boolean} show 操作菜单是否展示 (默认 false )
- * @property {String} title 操作菜单标题
- * @property {String} description 选项上方的描述信息
- * @property {Array<Object>} actions 按钮的文字数组,见官方文档示例
- * @property {String} cancelText 取消按钮的提示文字,不为空时显示按钮
- * @property {Boolean} closeOnClickAction 点击某个菜单项时是否关闭弹窗 (默认 true )
- * @property {Boolean} safeAreaInsetBottom 处理底部安全区 (默认 true )
- * @property {String} openType 小程序的打开方式 (contact | launchApp | getUserInfo | openSetting |getPhoneNumber |error )
- * @property {Boolean} closeOnClickOverlay 点击遮罩是否允许关闭 (默认 true )
- * @property {Number|String} round 圆角值,默认无圆角 (默认 0 )
- * @property {String} lang 指定返回用户信息的语言,zh_CN 简体中文,zh_TW 繁体中文,en 英文
- * @property {String} sessionFrom 会话来源,openType="contact"时有效
- * @property {String} sendMessageTitle 会话内消息卡片标题,openType="contact"时有效
- * @property {String} sendMessagePath 会话内消息卡片点击跳转小程序路径,openType="contact"时有效
- * @property {String} sendMessageImg 会话内消息卡片图片,openType="contact"时有效
- * @property {Boolean} showMessageCard 是否显示会话内消息卡片,设置此参数为 true,用户进入客服会话会在右下角显示"可能要发送的小程序"提示,用户点击后可以快速发送小程序消息,openType="contact"时有效 (默认 false )
- * @property {String} appParameter 打开 APP 时,向 APP 传递的参数,openType=launchApp 时有效
- *
- * @event {Function} select 点击ActionSheet列表项时触发
- * @event {Function} close 点击取消按钮时触发
- * @event {Function} getuserinfo 用户点击该按钮时,会返回获取到的用户信息,回调的 detail 数据与 wx.getUserInfo 返回的一致,openType="getUserInfo"时有效
- * @event {Function} contact 客服消息回调,openType="contact"时有效
- * @event {Function} getphonenumber 获取用户手机号回调,openType="getPhoneNumber"时有效
- * @event {Function} error 当使用开放能力时,发生错误的回调,openType="error"时有效
- * @event {Function} launchapp 打开 APP 成功的回调,openType="launchApp"时有效
- * @event {Function} opensetting 在打开授权设置页后回调,openType="openSetting"时有效
- * @example <u-action-sheet :actions="list" :title="title" :show="show"></u-action-sheet>
- */
- export default {
- name: "u-action-sheet",
- // 一些props参数和methods方法,通过mixin混入,因为其他文件也会用到
- mixins: [openType, button, uni.$u.mixin, props],
- data() {
- return {
-
- }
- },
- computed: {
- // 操作项目的样式
- itemStyle() {
- return (index) => {
- let style = {};
- if (this.actions[index].color) style.color = this.actions[index].color
- if (this.actions[index].fontSize) style.fontSize = uni.$u.addUnit(this.actions[index].fontSize)
- // 选项被禁用的样式
- if (this.actions[index].disabled) style.color = '#c0c4cc'
- return style;
- }
- },
- },
- methods: {
- closeHandler() {
- // 允许点击遮罩关闭时,才发出close事件
- if(this.closeOnClickOverlay) {
- this.$emit('close')
- }
- },
- // 点击取消按钮
- cancel() {
- this.$emit('close')
- },
- selectHandler(index) {
- const item = this.actions[index]
- if (item && !item.disabled && !item.loading) {
- this.$emit('select', item)
- if (this.closeOnClickAction) {
- this.$emit('close')
- }
- }
- },
- }
- }
-</script>
-
-<style lang="scss" scoped>
- @import "../../libs/css/components.scss";
- $u-action-sheet-reset-button-width:100% !default;
- $u-action-sheet-title-font-size: 16px !default;
- $u-action-sheet-title-padding: 12px 30px !default;
- $u-action-sheet-title-color: $u-main-color !default;
- $u-action-sheet-header-icon-wrap-right:15px !default;
- $u-action-sheet-header-icon-wrap-top:15px !default;
- $u-action-sheet-description-font-size:13px !default;
- $u-action-sheet-description-color:14px !default;
- $u-action-sheet-description-margin: 18px 15px !default;
- $u-action-sheet-item-wrap-item-padding:15px !default;
- $u-action-sheet-item-wrap-name-font-size:16px !default;
- $u-action-sheet-item-wrap-subname-font-size:13px !default;
- $u-action-sheet-item-wrap-subname-color: #c0c4cc !default;
- $u-action-sheet-item-wrap-subname-margin-top:10px !default;
- $u-action-sheet-cancel-text-font-size:16px !default;
- $u-action-sheet-cancel-text-color:$u-content-color !default;
- $u-action-sheet-cancel-text-font-size:15px !default;
- $u-action-sheet-cancel-text-hover-background-color:rgb(242, 243, 245) !default;
-
- .u-reset-button {
- width: $u-action-sheet-reset-button-width;
- }
-
- .u-action-sheet {
- text-align: center;
- &__header {
- position: relative;
- padding: $u-action-sheet-title-padding;
- &__title {
- font-size: $u-action-sheet-title-font-size;
- color: $u-action-sheet-title-color;
- font-weight: bold;
- text-align: center;
- }
-
- &__icon-wrap {
- position: absolute;
- right: $u-action-sheet-header-icon-wrap-right;
- top: $u-action-sheet-header-icon-wrap-top;
- }
- }
-
- &__description {
- font-size: $u-action-sheet-description-font-size;
- color: $u-tips-color;
- margin: $u-action-sheet-description-margin;
- text-align: center;
- }
-
- &__item-wrap {
-
- &__item {
- padding: $u-action-sheet-item-wrap-item-padding;
- @include flex;
- align-items: center;
- justify-content: center;
- flex-direction: column;
-
- &__name {
- font-size: $u-action-sheet-item-wrap-name-font-size;
- color: $u-main-color;
- text-align: center;
- }
-
- &__subname {
- font-size: $u-action-sheet-item-wrap-subname-font-size;
- color: $u-action-sheet-item-wrap-subname-color;
- margin-top: $u-action-sheet-item-wrap-subname-margin-top;
- text-align: center;
- }
- }
- }
-
- &__cancel-text {
- font-size: $u-action-sheet-cancel-text-font-size;
- color: $u-action-sheet-cancel-text-color;
- text-align: center;
- padding: $u-action-sheet-cancel-text-font-size;
- }
-
- &--hover {
- background-color: $u-action-sheet-cancel-text-hover-background-color;
- }
- }
-</style>
diff --git a/uni_modules/uview-ui/components/u-album/props.js b/uni_modules/uview-ui/components/u-album/props.js
deleted file mode 100644
index 75cdb37..0000000
--- a/uni_modules/uview-ui/components/u-album/props.js
+++ /dev/null
@@ -1,59 +0,0 @@
-export default {
- props: {
- // 图片地址,Array<String>|Array<Object>形式
- urls: {
- type: Array,
- default: uni.$u.props.album.urls
- },
- // 指定从数组的对象元素中读取哪个属性作为图片地址
- keyName: {
- type: String,
- default: uni.$u.props.album.keyName
- },
- // 单图时,图片长边的长度
- singleSize: {
- type: [String, Number],
- default: uni.$u.props.album.singleSize
- },
- // 多图时,图片边长
- multipleSize: {
- type: [String, Number],
- default: uni.$u.props.album.multipleSize
- },
- // 多图时,图片水平和垂直之间的间隔
- space: {
- type: [String, Number],
- default: uni.$u.props.album.space
- },
- // 单图时,图片缩放裁剪的模式
- singleMode: {
- type: String,
- default: uni.$u.props.album.singleMode
- },
- // 多图时,图片缩放裁剪的模式
- multipleMode: {
- type: String,
- default: uni.$u.props.album.multipleMode
- },
- // 最多展示的图片数量,超出时最后一个位置将会显示剩余图片数量
- maxCount: {
- type: [String, Number],
- default: uni.$u.props.album.maxCount
- },
- // 是否可以预览图片
- previewFullImage: {
- type: Boolean,
- default: uni.$u.props.album.previewFullImage
- },
- // 每行展示图片数量,如设置,singleSize和multipleSize将会无效
- rowCount: {
- type: [String, Number],
- default: uni.$u.props.album.rowCount
- },
- // 超出maxCount时是否显示查看更多的提示
- showMore: {
- type: Boolean,
- default: uni.$u.props.album.showMore
- }
- }
-}
diff --git a/uni_modules/uview-ui/components/u-album/u-album.vue b/uni_modules/uview-ui/components/u-album/u-album.vue
deleted file mode 100644
index 687e2d5..0000000
--- a/uni_modules/uview-ui/components/u-album/u-album.vue
+++ /dev/null
@@ -1,259 +0,0 @@
-<template>
- <view class="u-album">
- <view
- class="u-album__row"
- ref="u-album__row"
- v-for="(arr, index) in showUrls"
- :forComputedUse="albumWidth"
- :key="index"
- >
- <view
- class="u-album__row__wrapper"
- v-for="(item, index1) in arr"
- :key="index1"
- :style="[imageStyle(index + 1, index1 + 1)]"
- @tap="previewFullImage ? onPreviewTap(getSrc(item)) : ''"
- >
- <image
- :src="getSrc(item)"
- :mode="
- urls.length === 1
- ? imageHeight > 0
- ? singleMode
- : 'widthFix'
- : multipleMode
- "
- :style="[
- {
- width: imageWidth,
- height: imageHeight
- }
- ]"
- ></image>
- <view
- v-if="
- showMore &&
- urls.length > rowCount * showUrls.length &&
- index === showUrls.length - 1 &&
- index1 === showUrls[showUrls.length - 1].length - 1
- "
- class="u-album__row__wrapper__text"
- >
- <u--text
- :text="`+${urls.length - maxCount}`"
- color="#fff"
- :size="multipleSize * 0.3"
- align="center"
- customStyle="justify-content: center"
- ></u--text>
- </view>
- </view>
- </view>
- </view>
-</template>
-
-<script>
-import props from './props.js'
-// #ifdef APP-NVUE
-// 由于weex为阿里的KPI业绩考核的产物,所以不支持百分比单位,这里需要通过dom查询组件的宽度
-const dom = uni.requireNativePlugin('dom')
-// #endif
-
-/**
- * Album 相册
- * @description 本组件提供一个类似相册的功能,让开发者开发起来更加得心应手。减少重复的模板代码
- * @tutorial https://www.uviewui.com/components/album.html
- *
- * @property {Array} urls 图片地址列表 Array<String>|Array<Object>形式
- * @property {String} keyName 指定从数组的对象元素中读取哪个属性作为图片地址
- * @property {String | Number} singleSize 单图时,图片长边的长度 (默认 180 )
- * @property {String | Number} multipleSize 多图时,图片边长 (默认 70 )
- * @property {String | Number} space 多图时,图片水平和垂直之间的间隔 (默认 6 )
- * @property {String} singleMode 单图时,图片缩放裁剪的模式 (默认 'scaleToFill' )
- * @property {String} multipleMode 多图时,图片缩放裁剪的模式 (默认 'aspectFill' )
- * @property {String | Number} maxCount 取消按钮的提示文字 (默认 9 )
- * @property {Boolean} previewFullImage 是否可以预览图片 (默认 true )
- * @property {String | Number} rowCount 每行展示图片数量,如设置,singleSize和multipleSize将会无效 (默认 3 )
- * @property {Boolean} showMore 超出maxCount时是否显示查看更多的提示 (默认 true )
- *
- * @event {Function} albumWidth 某些特殊的情况下,需要让文字与相册的宽度相等,这里事件的形式对外发送 (回调参数 width )
- * @example <u-album :urls="urls2" @albumWidth="width => albumWidth = width" multipleSize="68" ></u-album>
- */
-export default {
- name: 'u-album',
- mixins: [uni.$u.mpMixin, uni.$u.mixin, props],
- data() {
- return {
- // 单图的宽度
- singleWidth: 0,
- // 单图的高度
- singleHeight: 0,
- // 单图时,如果无法获取图片的尺寸信息,让图片宽度默认为容器的一定百分比
- singlePercent: 0.6
- }
- },
- watch: {
- urls: {
- immediate: true,
- handler(newVal) {
- if (newVal.length === 1) {
- this.getImageRect()
- }
- }
- }
- },
- computed: {
- imageStyle() {
- return (index1, index2) => {
- const { space, rowCount, multipleSize, urls } = this,
- { addUnit, addStyle } = uni.$u,
- rowLen = this.showUrls.length,
- allLen = this.urls.length
- const style = {
- marginRight: addUnit(space),
- marginBottom: addUnit(space)
- }
- // 如果为最后一行,则每个图片都无需下边框
- if (index1 === rowLen) style.marginBottom = 0
- // 每行的最右边一张和总长度的最后一张无需右边框
- if (
- index2 === rowCount ||
- (index1 === rowLen &&
- index2 === this.showUrls[index1 - 1].length)
- )
- style.marginRight = 0
- return style
- }
- },
- // 将数组划分为二维数组
- showUrls() {
- const arr = []
- this.urls.map((item, index) => {
- // 限制最大展示数量
- if (index + 1 <= this.maxCount) {
- // 计算该元素为第几个素组内
- const itemIndex = Math.floor(index / this.rowCount)
- // 判断对应的索引是否存在
- if (!arr[itemIndex]) {
- arr[itemIndex] = []
- }
- arr[itemIndex].push(item)
- }
- })
- return arr
- },
- imageWidth() {
- return uni.$u.addUnit(
- this.urls.length === 1 ? this.singleWidth : this.multipleSize
- )
- },
- imageHeight() {
- return uni.$u.addUnit(
- this.urls.length === 1 ? this.singleHeight : this.multipleSize
- )
- },
- // 此变量无实际用途,仅仅是为了利用computed特性,让其在urls长度等变化时,重新计算图片的宽度
- // 因为用户在某些特殊的情况下,需要让文字与相册的宽度相等,所以这里事件的形式对外发送
- albumWidth() {
- let width = 0
- if (this.urls.length === 1) {
- width = this.singleWidth
- } else {
- width =
- this.showUrls[0].length * this.multipleSize +
- this.space * (this.showUrls[0].length - 1)
- }
- this.$emit('albumWidth', width)
- return width
- }
- },
- methods: {
- // 预览图片
- onPreviewTap(url) {
- const urls = this.urls.map((item) => {
- return this.getSrc(item)
- })
- uni.previewImage({
- current: url,
- urls
- })
- },
- // 获取图片的路径
- getSrc(item) {
- return uni.$u.test.object(item)
- ? (this.keyName && item[this.keyName]) || item.src
- : item
- },
- // 单图时,获取图片的尺寸
- // 在小程序中,需要将网络图片的的域名添加到小程序的download域名才可能获取尺寸
- // 在没有添加的情况下,让单图宽度默认为盒子的一定宽度(singlePercent)
- getImageRect() {
- const src = this.getSrc(this.urls[0])
- uni.getImageInfo({
- src,
- success: (res) => {
- // 判断图片横向还是竖向展示方式
- const isHorizotal = res.width >= res.height
- this.singleWidth = isHorizotal
- ? this.singleSize
- : (res.width / res.height) * this.singleSize
- this.singleHeight = !isHorizotal
- ? this.singleSize
- : (res.height / res.width) * this.singleWidth
- },
- fail: () => {
- this.getComponentWidth()
- }
- })
- },
- // 获取组件的宽度
- async getComponentWidth() {
- // 延时一定时间,以获取dom尺寸
- await uni.$u.sleep(30)
- // #ifndef APP-NVUE
- this.$uGetRect('.u-album__row').then((size) => {
- this.singleWidth = size.width * this.singlePercent
- })
- // #endif
-
- // #ifdef APP-NVUE
- // 这里ref="u-album__row"所在的标签为通过for循环出来,导致this.$refs['u-album__row']是一个数组
- const ref = this.$refs['u-album__row'][0]
- ref &&
- dom.getComponentRect(ref, (res) => {
- this.singleWidth = res.size.width * this.singlePercent
- })
- // #endif
- }
- }
-}
-</script>
-
-<style lang="scss" scoped>
-@import '../../libs/css/components.scss';
-
-.u-album {
- @include flex(column);
-
- &__row {
- @include flex(row);
- flex-wrap: wrap;
-
- &__wrapper {
- position: relative;
-
- &__text {
- position: absolute;
- top: 0;
- left: 0;
- right: 0;
- bottom: 0;
- background-color: rgba(0, 0, 0, 0.3);
- @include flex(row);
- justify-content: center;
- align-items: center;
- }
- }
- }
-}
-</style>
\ No newline at end of file
diff --git a/uni_modules/uview-ui/components/u-alert/props.js b/uni_modules/uview-ui/components/u-alert/props.js
deleted file mode 100644
index 4297e2c..0000000
--- a/uni_modules/uview-ui/components/u-alert/props.js
+++ /dev/null
@@ -1,44 +0,0 @@
-export default {
- props: {
- // 显示文字
- title: {
- type: String,
- default: uni.$u.props.alert.title
- },
- // 主题,success/warning/info/error
- type: {
- type: String,
- default: uni.$u.props.alert.type
- },
- // 辅助性文字
- description: {
- type: String,
- default: uni.$u.props.alert.description
- },
- // 是否可关闭
- closable: {
- type: Boolean,
- default: uni.$u.props.alert.closable
- },
- // 是否显示图标
- showIcon: {
- type: Boolean,
- default: uni.$u.props.alert.showIcon
- },
- // 浅或深色调,light-浅色,dark-深色
- effect: {
- type: String,
- default: uni.$u.props.alert.effect
- },
- // 文字是否居中
- center: {
- type: Boolean,
- default: uni.$u.props.alert.center
- },
- // 字体大小
- fontSize: {
- type: [String, Number],
- default: uni.$u.props.alert.fontSize
- }
- }
-}
diff --git a/uni_modules/uview-ui/components/u-alert/u-alert.vue b/uni_modules/uview-ui/components/u-alert/u-alert.vue
deleted file mode 100644
index 81f7d43..0000000
--- a/uni_modules/uview-ui/components/u-alert/u-alert.vue
+++ /dev/null
@@ -1,243 +0,0 @@
-<template>
- <u-transition
- mode="fade"
- :show="show"
- >
- <view
- class="u-alert"
- :class="[`u-alert--${type}--${effect}`]"
- @tap.stop="clickHandler"
- :style="[$u.addStyle(customStyle)]"
- >
- <view
- class="u-alert__icon"
- v-if="showIcon"
- >
- <u-icon
- :name="iconName"
- size="18"
- :color="iconColor"
- ></u-icon>
- </view>
- <view
- class="u-alert__content"
- :style="[{
- paddingRight: closable ? '20px' : 0
- }]"
- >
- <text
- class="u-alert__content__title"
- v-if="title"
- :style="[{
- fontSize: $u.addUnit(fontSize),
- textAlign: center ? 'center' : 'left'
- }]"
- :class="[effect === 'dark' ? 'u-alert__text--dark' : `u-alert__text--${type}--light`]"
- >{{ title }}</text>
- <text
- class="u-alert__content__desc"
- v-if="description"
- :style="[{
- fontSize: $u.addUnit(fontSize),
- textAlign: center ? 'center' : 'left'
- }]"
- :class="[effect === 'dark' ? 'u-alert__text--dark' : `u-alert__text--${type}--light`]"
- >{{ description }}</text>
- </view>
- <view
- class="u-alert__close"
- v-if="closable"
- @tap.stop="closeHandler"
- >
- <u-icon
- name="close"
- :color="iconColor"
- size="15"
- ></u-icon>
- </view>
- </view>
- </u-transition>
-</template>
-
-<script>
- import props from './props.js';
- /**
- * Alert 警告提示
- * @description 警告提示,展现需要关注的信息。
- * @tutorial https://www.uviewui.com/components/alertTips.html
- *
- * @property {String} title 显示的文字
- * @property {String} type 使用预设的颜色 (默认 'warning' )
- * @property {String} description 辅助性文字,颜色比title浅一点,字号也小一点,可选
- * @property {Boolean} closable 关闭按钮(默认为叉号icon图标) (默认 false )
- * @property {Boolean} showIcon 是否显示左边的辅助图标 ( 默认 false )
- * @property {String} effect 多图时,图片缩放裁剪的模式 (默认 'light' )
- * @property {Boolean} center 文字是否居中 (默认 false )
- * @property {String | Number} fontSize 字体大小 (默认 14 )
- * @property {Object} customStyle 定义需要用到的外部样式
- * @event {Function} click 点击组件时触发
- * @example <u-alert :title="title" type = "warning" :closable="closable" :description = "description"></u-alert>
- */
- export default {
- name: 'u-alert',
- mixins: [uni.$u.mpMixin, uni.$u.mixin, props],
- data() {
- return {
- show: true
- }
- },
- computed: {
- iconColor() {
- return this.effect === 'light' ? this.type : '#fff'
- },
- // 不同主题对应不同的图标
- iconName() {
- switch (this.type) {
- case 'success':
- return 'checkmark-circle-fill';
- break;
- case 'error':
- return 'close-circle-fill';
- break;
- case 'warning':
- return 'error-circle-fill';
- break;
- case 'info':
- return 'info-circle-fill';
- break;
- case 'primary':
- return 'more-circle-fill';
- break;
- default:
- return 'error-circle-fill';
- }
- }
- },
- methods: {
- // 点击内容
- clickHandler() {
- this.$emit('click')
- },
- // 点击关闭按钮
- closeHandler() {
- this.show = false
- }
- }
- }
-</script>
-
-<style lang="scss" scoped>
- @import "../../libs/css/components.scss";
-
- .u-alert {
- position: relative;
- background-color: $u-primary;
- padding: 8px 10px;
- @include flex(row);
- align-items: center;
- border-top-left-radius: 4px;
- border-top-right-radius: 4px;
- border-bottom-left-radius: 4px;
- border-bottom-right-radius: 4px;
-
- &--primary--dark {
- background-color: $u-primary;
- }
-
- &--primary--light {
- background-color: #ecf5ff;
- }
-
- &--error--dark {
- background-color: $u-error;
- }
-
- &--error--light {
- background-color: #FEF0F0;
- }
-
- &--success--dark {
- background-color: $u-success;
- }
-
- &--success--light {
- background-color: #f5fff0;
- }
-
- &--warning--dark {
- background-color: $u-warning;
- }
-
- &--warning--light {
- background-color: #FDF6EC;
- }
-
- &--info--dark {
- background-color: $u-info;
- }
-
- &--info--light {
- background-color: #f4f4f5;
- }
-
- &__icon {
- margin-right: 5px;
- }
-
- &__content {
- @include flex(column);
- flex: 1;
-
- &__title {
- color: $u-main-color;
- font-size: 14px;
- font-weight: bold;
- color: #fff;
- margin-bottom: 2px;
- }
-
- &__desc {
- color: $u-main-color;
- font-size: 14px;
- flex-wrap: wrap;
- color: #fff;
- }
- }
-
- &__title--dark,
- &__desc--dark {
- color: #FFFFFF;
- }
-
- &__text--primary--light,
- &__text--primary--light {
- color: $u-primary;
- }
-
- &__text--success--light,
- &__text--success--light {
- color: $u-success;
- }
-
- &__text--warning--light,
- &__text--warning--light {
- color: $u-warning;
- }
-
- &__text--error--light,
- &__text--error--light {
- color: $u-error;
- }
-
- &__text--info--light,
- &__text--info--light {
- color: $u-info;
- }
-
- &__close {
- position: absolute;
- top: 11px;
- right: 10px;
- }
- }
-</style>
diff --git a/uni_modules/uview-ui/components/u-avatar-group/props.js b/uni_modules/uview-ui/components/u-avatar-group/props.js
deleted file mode 100644
index 58b42ac..0000000
--- a/uni_modules/uview-ui/components/u-avatar-group/props.js
+++ /dev/null
@@ -1,52 +0,0 @@
-export default {
- props: {
- // 头像图片组
- urls: {
- type: Array,
- default: uni.$u.props.avatarGroup.urls
- },
- // 最多展示的头像数量
- maxCount: {
- type: [String, Number],
- default: uni.$u.props.avatarGroup.maxCount
- },
- // 头像形状
- shape: {
- type: String,
- default: uni.$u.props.avatarGroup.shape
- },
- // 图片裁剪模式
- mode: {
- type: String,
- default: uni.$u.props.avatarGroup.mode
- },
- // 超出maxCount时是否显示查看更多的提示
- showMore: {
- type: Boolean,
- default: uni.$u.props.avatarGroup.showMore
- },
- // 头像大小
- size: {
- type: [String, Number],
- default: uni.$u.props.avatarGroup.size
- },
- // 指定从数组的对象元素中读取哪个属性作为图片地址
- keyName: {
- type: String,
- default: uni.$u.props.avatarGroup.keyName
- },
- // 头像之间的遮挡比例
- gap: {
- type: [String, Number],
- validator(value) {
- return value >= 0 && value <= 1
- },
- default: uni.$u.props.avatarGroup.gap
- },
- // 需额外显示的值
- extraValue: {
- type: [Number, String],
- default: uni.$u.props.avatarGroup.extraValue
- }
- }
-}
diff --git a/uni_modules/uview-ui/components/u-avatar-group/u-avatar-group.vue b/uni_modules/uview-ui/components/u-avatar-group/u-avatar-group.vue
deleted file mode 100644
index 7e996d7..0000000
--- a/uni_modules/uview-ui/components/u-avatar-group/u-avatar-group.vue
+++ /dev/null
@@ -1,103 +0,0 @@
-<template>
- <view class="u-avatar-group">
- <view
- class="u-avatar-group__item"
- v-for="(item, index) in showUrl"
- :key="index"
- :style="{
- marginLeft: index === 0 ? 0 : $u.addUnit(-size * gap)
- }"
- >
- <u-avatar
- :size="size"
- :shape="shape"
- :mode="mode"
- :src="$u.test.object(item) ? keyName && item[keyName] || item.url : item"
- ></u-avatar>
- <view
- class="u-avatar-group__item__show-more"
- v-if="showMore && index === showUrl.length - 1 && (urls.length > maxCount || extraValue > 0)"
- @tap="clickHandler"
- >
- <u--text
- color="#ffffff"
- :size="size * 0.4"
- :text="`+${extraValue || urls.length - showUrl.length}`"
- align="center"
- customStyle="justify-content: center"
- ></u--text>
- </view>
- </view>
- </view>
-</template>
-
-<script>
- import props from './props.js';
- /**
- * AvatarGroup 头像组
- * @description 本组件一般用于展示头像的地方,如个人中心,或者评论列表页的用户头像展示等场所。
- * @tutorial https://www.uviewui.com/components/avatar.html
- *
- * @property {Array} urls 头像图片组 (默认 [] )
- * @property {String | Number} maxCount 最多展示的头像数量 ( 默认 5 )
- * @property {String} shape 头像形状( 'circle' (默认) | 'square' )
- * @property {String} mode 图片裁剪模式(默认 'scaleToFill' )
- * @property {Boolean} showMore 超出maxCount时是否显示查看更多的提示 (默认 true )
- * @property {String | Number} size 头像大小 (默认 40 )
- * @property {String} keyName 指定从数组的对象元素中读取哪个属性作为图片地址
- * @property {String | Number} gap 头像之间的遮挡比例(0.4代表遮挡40%) (默认 0.5 )
- * @property {String | Number} extraValue 需额外显示的值
- * @event {Function} showMore 头像组更多点击
- * @example <u-avatar-group:urls="urls" size="35" gap="0.4" ></u-avatar-group:urls=>
- */
- export default {
- name: 'u-avatar-group',
- mixins: [uni.$u.mpMixin, uni.$u.mixin, props],
- data() {
- return {
-
- }
- },
- computed: {
- showUrl() {
- return this.urls.slice(0, this.maxCount)
- }
- },
- methods: {
- clickHandler() {
- this.$emit('showMore')
- }
- },
- }
-</script>
-
-<style lang="scss" scoped>
- @import "../../libs/css/components.scss";
-
- .u-avatar-group {
- @include flex;
-
- &__item {
- margin-left: -10px;
- position: relative;
-
- &--no-indent {
- // 如果你想质疑作者不会使用:first-child,说明你太年轻,因为nvue不支持
- margin-left: 0;
- }
-
- &__show-more {
- position: absolute;
- top: 0;
- bottom: 0;
- left: 0;
- right: 0;
- background-color: rgba(0, 0, 0, 0.3);
- @include flex;
- align-items: center;
- justify-content: center;
- border-radius: 100px;
- }
- }
- }
-</style>
diff --git a/uni_modules/uview-ui/components/u-avatar/props.js b/uni_modules/uview-ui/components/u-avatar/props.js
deleted file mode 100644
index 34ca0f2..0000000
--- a/uni_modules/uview-ui/components/u-avatar/props.js
+++ /dev/null
@@ -1,78 +0,0 @@
-export default {
- props: {
- // 头像图片路径(不能为相对路径)
- src: {
- type: String,
- default: uni.$u.props.avatar.src
- },
- // 头像形状,circle-圆形,square-方形
- shape: {
- type: String,
- default: uni.$u.props.avatar.shape
- },
- // 头像尺寸
- size: {
- type: [String, Number],
- default: uni.$u.props.avatar.size
- },
- // 裁剪模式
- mode: {
- type: String,
- default: uni.$u.props.avatar.mode
- },
- // 显示的文字
- text: {
- type: String,
- default: uni.$u.props.avatar.text
- },
- // 背景色
- bgColor: {
- type: String,
- default: uni.$u.props.avatar.bgColor
- },
- // 文字颜色
- color: {
- type: String,
- default: uni.$u.props.avatar.color
- },
- // 文字大小
- fontSize: {
- type: [String, Number],
- default: uni.$u.props.avatar.fontSize
- },
- // 显示的图标
- icon: {
- type: String,
- default: uni.$u.props.avatar.icon
- },
- // 显示小程序头像,只对百度,微信,QQ小程序有效
- mpAvatar: {
- type: Boolean,
- default: uni.$u.props.avatar.mpAvatar
- },
- // 是否使用随机背景色
- randomBgColor: {
- type: Boolean,
- default: uni.$u.props.avatar.randomBgColor
- },
- // 加载失败的默认头像(组件有内置默认图片)
- defaultUrl: {
- type: String,
- default: uni.$u.props.avatar.defaultUrl
- },
- // 如果配置了randomBgColor为true,且配置了此值,则从默认的背景色数组中取出对应索引的颜色值,取值0-19之间
- colorIndex: {
- type: [String, Number],
- // 校验参数规则,索引在0-19之间
- validator(n) {
- return uni.$u.test.range(n, [0, 19]) || n === ''
- },
- default: uni.$u.props.avatar.colorIndex
- },
- // 组件标识符
- name: {
- type: String,
- default: uni.$u.props.avatar.name
- }
- }
-}
diff --git a/uni_modules/uview-ui/components/u-avatar/u-avatar.vue b/uni_modules/uview-ui/components/u-avatar/u-avatar.vue
deleted file mode 100644
index d38d8a6..0000000
--- a/uni_modules/uview-ui/components/u-avatar/u-avatar.vue
+++ /dev/null
@@ -1,173 +0,0 @@
-<template>
- <view
- class="u-avatar"
- :class="[`u-avatar--${shape}`]"
- :style="[{
- backgroundColor: (text || icon) ? (randomBgColor ? colors[colorIndex !== '' ? colorIndex : $u.random(0, 19)] : bgColor) : 'transparent',
- width: $u.addUnit(size),
- height: $u.addUnit(size),
- }, $u.addStyle(customStyle)]"
- @tap="clickHandler"
- >
- <slot>
- <!-- #ifdef MP-WEIXIN || MP-QQ || MP-BAIDU -->
- <open-data
- v-if="mpAvatar && allowMp"
- type="userAvatarUrl"
- :style="[{
- width: $u.addUnit(size),
- height: $u.addUnit(size)
- }]"
- />
- <!-- #endif -->
- <!-- #ifndef MP-WEIXIN && MP-QQ && MP-BAIDU -->
- <template v-if="mpAvatar && allowMp"></template>
- <!-- #endif -->
- <u-icon
- v-else-if="icon"
- :name="icon"
- :size="fontSize"
- :color="color"
- ></u-icon>
- <u--text
- v-else-if="text"
- :text="text"
- :size="fontSize"
- :color="color"
- align="center"
- customStyle="justify-content: center"
- ></u--text>
- <image
- class="u-avatar__image"
- v-else
- :class="[`u-avatar__image--${shape}`]"
- :src="avatarUrl || defaultUrl"
- :mode="mode"
- @error="errorHandler"
- :style="[{
- width: $u.addUnit(size),
- height: $u.addUnit(size)
- }]"
- ></image>
- </slot>
- </view>
-</template>
-
-<script>
- import props from './props.js';
- const base64Avatar =
- "data:image/jpg;base64,/9j/4QAYRXhpZgAASUkqAAgAAAAAAAAAAAAAAP/sABFEdWNreQABAAQAAAA8AAD/4QMraHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLwA8P3hwYWNrZXQgYmVnaW49Iu+7vyIgaWQ9Ilc1TTBNcENlaGlIenJlU3pOVGN6a2M5ZCI/PiA8eDp4bXBtZXRhIHhtbG5zOng9ImFkb2JlOm5zOm1ldGEvIiB4OnhtcHRrPSJBZG9iZSBYTVAgQ29yZSA1LjMtYzAxMSA2Ni4xNDU2NjEsIDIwMTIvMDIvMDYtMTQ6NTY6MjcgICAgICAgICI+IDxyZGY6UkRGIHhtbG5zOnJkZj0iaHR0cDovL3d3dy53My5vcmcvMTk5OS8wMi8yMi1yZGYtc3ludGF4LW5zIyI+IDxyZGY6RGVzY3JpcHRpb24gcmRmOmFib3V0PSIiIHhtbG5zOnhtcD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLyIgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iIHhtbG5zOnN0UmVmPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VSZWYjIiB4bXA6Q3JlYXRvclRvb2w9IkFkb2JlIFBob3Rvc2hvcCBDUzYgKFdpbmRvd3MpIiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOjREMEQwRkY0RjgwNDExRUE5OTY2RDgxODY3NkJFODMxIiB4bXBNTTpEb2N1bWVudElEPSJ4bXAuZGlkOjREMEQwRkY1RjgwNDExRUE5OTY2RDgxODY3NkJFODMxIj4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6NEQwRDBGRjJGODA0MTFFQTk5NjZEODE4Njc2QkU4MzEiIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6NEQwRDBGRjNGODA0MTFFQTk5NjZEODE4Njc2QkU4MzEiLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/eHBhY2tldCBlbmQ9InIiPz7/7gAOQWRvYmUAZMAAAAAB/9sAhAAGBAQEBQQGBQUGCQYFBgkLCAYGCAsMCgoLCgoMEAwMDAwMDBAMDg8QDw4MExMUFBMTHBsbGxwfHx8fHx8fHx8fAQcHBw0MDRgQEBgaFREVGh8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx//wAARCADIAMgDAREAAhEBAxEB/8QAcQABAQEAAwEBAAAAAAAAAAAAAAUEAQMGAgcBAQAAAAAAAAAAAAAAAAAAAAAQAAIBAwICBgkDBQAAAAAAAAABAhEDBCEFMVFBYXGREiKBscHRMkJSEyOh4XLxYjNDFBEBAAAAAAAAAAAAAAAAAAAAAP/aAAwDAQACEQMRAD8A/fAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHbHFyZ/Dam+yLA+Z2L0Pjtyj2poD4AAAAAAAAAAAAAAAAAAAAAAAAKWFs9y6lcvvwQeqj8z9wFaziY1n/HbUX9XF97A7QAGXI23EvJ1goyfzR0YEfN269jeZ+a03pNe0DIAAAAAAAAAAAAAAAAAAAACvtO3RcVkXlWutuL9YFYAAAAAOJRjKLjJVi9GmB5/csH/mu1h/in8PU+QGMAAAAAAAAAAAAAAAAAAaMDG/6MmMH8C80+xAelSSVFolwQAAAAAAAHVlWI37ErUulaPk+hgeYnCUJuElSUXRrrQHAAAAAAAAAAAAAAAAABa2Oz4bM7r4zdF2ICmAAAAAAAAAg7zZ8GX41wuJP0rRgYAAAAAAAAAAAAAAAAAD0m2R8ODaXU33tsDSAAAAAAAAAlb9HyWZcnJd9PcBHAAAAAAAAAAAAAAAAAPS7e64Vn+KA0AAAAAAAAAJm+v8Ftf3ewCKAAAAAAAAAAAAAAAAAX9muqeGo9NttP06+0DcAAAAAAAAAjb7dTu2ra+VOT9P8AQCWAAAAAAAAAAAAAAAAAUNmyPt5Ltv4bui/kuAF0AAAAAAADiUlGLlJ0SVW+oDzOXfd/Ind6JPRdS0QHSAAAAAAAAAAAAAAAAAE2nVaNcGB6Lbs6OTao9LsF51z60BrAAAAAABJ3jOVHjW3r/sa9QEgAAAAAAAAAAAAAAAAAAAPu1duWriuW34ZR4MC9hbnZyEoy8l36XwfYBsAAADaSq9EuLAlZ+7xSdrGdW9Hc5dgEdtt1erfFgAAAAAAAAAAAAAAAAADVjbblX6NR8MH80tEBRs7HYivyzlN8lovaBPzduvY0m6eK10TXtAyAarO55lpJK54orolr+4GqO/Xaea1FvqbXvA+Z77kNeW3GPbV+4DJfzcm/pcm3H6Vou5AdAFLC2ed2Pjv1txa8sV8T6wOL+yZEKu1JXFy4MDBOE4ScZxcZLinoB8gAAAAAAAAAAAB242LeyJ+C3GvN9C7QLmJtePYpKS+5c+p8F2IDYAANJqj1T4oCfk7Nj3G5Wn9qXJax7gJ93Z82D8sVNc4v30A6Xg5i42Z+iLfqARwcyT0sz9MWvWBps7LlTf5Grce9/oBTxdtxseklHxT+uWr9AGoAB138ezfj4bsFJdD6V2MCPm7RdtJzs1uW1xXzL3gTgAAAAAAAAADRhYc8q74I6RWs5ckB6GxYtWLat21SK731sDsAAAAAAAAAAAAAAAASt021NO/YjrxuQXT1oCOAAAAAAABzGLlJRSq26JAelwsWONYjbXxcZvmwO8AAAAAAAAAAAAAAAAAAef3TEWPkVivx3NY9T6UBiAAAAAABo2+VmGXblddIJ8eivRUD0oAAAAAAAAAAAAAAAAAAAYt4tKeFKVNYNSXfRgefAAAAAAAAr7VuSSWPedKaW5v1MCsAAAAAAAAAAAAAAAAAAIe6bj96Ts2n+JPzSXzP3ATgAAAAAAAAFbbt1UUrOQ9FpC4/UwK6aaqtU+DAAAAAAAAAAAAAAA4lKMIuUmoxWrb4ARNx3R3q2rLpa4Sl0y/YCcAAAAAAAAAAANmFud7G8r89r6X0dgFvGzLGRGtuWvTF6NAdwAAAAAAAAAAAy5W442PVN+K59EePp5ARMvOv5MvO6QXCC4AZwAAAAAAAAAAAAAcxlKLUotprg1owN+PvORborq+7Hnwl3gUbO74VzRydt8pKn68ANcJwmqwkpLmnUDkAAAAfNy9atqtyagut0AxXt5xIV8Fbj6lRd7Am5G65V6qUvtwfyx94GMAAAAAAAAAAAAAAAAAAAOU2nVOj5gdsc3LiqRvTpyqwOxbnnrhdfpSfrQB7pnv/AGvuS9gHXPMy5/Fem1yq0v0A6W29XqwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAf//Z";
- /**
- * Avatar 头像
- * @description 本组件一般用于展示头像的地方,如个人中心,或者评论列表页的用户头像展示等场所。
- * @tutorial https://www.uviewui.com/components/avatar.html
- *
- * @property {String} src 头像路径,如加载失败,将会显示默认头像(不能为相对路径)
- * @property {String} shape 头像形状 ( circle (默认) | square)
- * @property {String | Number} size 头像尺寸,可以为指定字符串(large, default, mini),或者数值 (默认 40 )
- * @property {String} mode 头像图片的裁剪类型,与uni的image组件的mode参数一致,如效果达不到需求,可尝试传widthFix值 (默认 'scaleToFill' )
- * @property {String} text 用文字替代图片,级别优先于src
- * @property {String} bgColor 背景颜色,一般显示文字时用 (默认 '#c0c4cc' )
- * @property {String} color 文字颜色 (默认 '#ffffff' )
- * @property {String | Number} fontSize 文字大小 (默认 18 )
- * @property {String} icon 显示的图标
- * @property {Boolean} mpAvatar 显示小程序头像,只对百度,微信,QQ小程序有效 (默认 false )
- * @property {Boolean} randomBgColor 是否使用随机背景色 (默认 false )
- * @property {String} defaultUrl 加载失败的默认头像(组件有内置默认图片)
- * @property {String | Number} colorIndex 如果配置了randomBgColor为true,且配置了此值,则从默认的背景色数组中取出对应索引的颜色值,取值0-19之间
- * @property {String} name 组件标识符 (默认 'level' )
- * @property {Object} customStyle 定义需要用到的外部样式
- *
- * @event {Function} click 点击组件时触发 index: 用户传递的标识符
- * @example <u-avatar :src="src" mode="square"></u-avatar>
- */
- export default {
- name: 'u-avatar',
- mixins: [uni.$u.mpMixin, uni.$u.mixin, props],
- data() {
- return {
- // 如果配置randomBgColor参数为true,在图标或者文字的模式下,会随机从中取出一个颜色值当做背景色
- colors: ['#ffb34b', '#f2bba9', '#f7a196', '#f18080', '#88a867', '#bfbf39', '#89c152', '#94d554', '#f19ec2',
- '#afaae4', '#e1b0df', '#c38cc1', '#72dcdc', '#9acdcb', '#77b1cc', '#448aca', '#86cefa', '#98d1ee',
- '#73d1f1',
- '#80a7dc'
- ],
- avatarUrl: this.src,
- allowMp: false
- }
- },
- watch: {
- // 监听头像src的变化,赋值给内部的avatarUrl变量,因为图片加载失败时,需要修改图片的src为默认值
- // 而组件内部不能直接修改props的值,所以需要一个中间变量
- src: {
- immediate: true,
- handler(newVal) {
- this.avatarUrl = newVal
- // 如果没有传src,则主动触发error事件,用于显示默认的头像,否则src为''空字符等的时候,会无内容展示
- if(!newVal) {
- this.errorHandler()
- }
- }
- }
- },
- computed: {
- imageStyle() {
- const style = {}
- return style
- }
- },
- created() {
- this.init()
- },
- methods: {
- init() {
- // 目前只有这几个小程序平台具有open-data标签
- // 其他平台可以通过uni.getUserInfo类似接口获取信息,但是需要弹窗授权(首次),不合符组件逻辑
- // 故目前自动获取小程序头像只支持这几个平台
- // #ifdef MP-WEIXIN || MP-QQ || MP-BAIDU
- this.allowMp = true
- // #endif
- },
- // 判断传入的name属性,是否图片路径,只要带有"/"均认为是图片形式
- isImg() {
- return this.src.indexOf('/') !== -1
- },
- // 图片加载时失败时触发
- errorHandler() {
- this.avatarUrl = this.defaultUrl || base64Avatar
- },
- clickHandler() {
- this.$emit('click', this.name)
- }
- }
- }
-</script>
-
-<style lang="scss" scoped>
- @import "../../libs/css/components.scss";
-
- .u-avatar {
- @include flex;
- align-items: center;
- justify-content: center;
-
- &--circle {
- border-radius: 100px;
- }
-
- &--square {
- border-radius: 4px;
- }
-
- &__image {
- &--circle {
- border-radius: 100px;
- overflow: hidden;
- }
-
- &--square {
- border-radius: 4px;
- }
- }
- }
-</style>
diff --git a/uni_modules/uview-ui/components/u-back-top/props.js b/uni_modules/uview-ui/components/u-back-top/props.js
deleted file mode 100644
index 6c702c2..0000000
--- a/uni_modules/uview-ui/components/u-back-top/props.js
+++ /dev/null
@@ -1,54 +0,0 @@
-export default {
- props: {
- // 返回顶部的形状,circle-圆形,square-方形
- mode: {
- type: String,
- default: uni.$u.props.backtop.mode
- },
- // 自定义图标
- icon: {
- type: String,
- default: uni.$u.props.backtop.icon
- },
- // 提示文字
- text: {
- type: String,
- default: uni.$u.props.backtop.text
- },
- // 返回顶部滚动时间
- duration: {
- type: [String, Number],
- default: uni.$u.props.backtop.duration
- },
- // 滚动距离
- scrollTop: {
- type: [String, Number],
- default: uni.$u.props.backtop.scrollTop
- },
- // 距离顶部多少距离显示,单位px
- top: {
- type: [String, Number],
- default: uni.$u.props.backtop.top
- },
- // 返回顶部按钮到底部的距离,单位px
- bottom: {
- type: [String, Number],
- default: uni.$u.props.backtop.bottom
- },
- // 返回顶部按钮到右边的距离,单位px
- right: {
- type: [String, Number],
- default: uni.$u.props.backtop.right
- },
- // 层级
- zIndex: {
- type: [String, Number],
- default: uni.$u.props.backtop.zIndex
- },
- // 图标的样式,对象形式
- iconStyle: {
- type: Object,
- default: uni.$u.props.backtop.iconStyle
- }
- }
-}
diff --git a/uni_modules/uview-ui/components/u-back-top/u-back-top.vue b/uni_modules/uview-ui/components/u-back-top/u-back-top.vue
deleted file mode 100644
index 2d07566..0000000
--- a/uni_modules/uview-ui/components/u-back-top/u-back-top.vue
+++ /dev/null
@@ -1,129 +0,0 @@
-<template>
- <u-transition
- mode="fade"
- :customStyle="backTopStyle"
- :show="show"
- >
- <view
- class="u-back-top"
- :style="[contentStyle]"
- v-if="!$slots.default && !$slots.$default"
- @click="backToTop"
- >
- <u-icon
- :name="icon"
- :custom-style="iconStyle"
- ></u-icon>
- <text
- v-if="text"
- class="u-back-top__text"
- >{{text}}</text>
- </view>
- <slot v-else />
- </u-transition>
-</template>
-
-<script>
- import props from './props.js';
- // #ifdef APP-NVUE
- const dom = weex.requireModule('dom')
- // #endif
- /**
- * backTop 返回顶部
- * @description 本组件一个用于长页面,滑动一定距离后,出现返回顶部按钮,方便快速返回顶部的场景。
- * @tutorial https://uviewui.com/components/backTop.html
- *
- * @property {String} mode 返回顶部的形状,circle-圆形,square-方形 (默认 'circle' )
- * @property {String} icon 自定义图标 (默认 'arrow-upward' ) 见官方文档示例
- * @property {String} text 提示文字
- * @property {String | Number} duration 返回顶部滚动时间 (默认 100)
- * @property {String | Number} scrollTop 滚动距离 (默认 0 )
- * @property {String | Number} top 距离顶部多少距离显示,单位px (默认 400 )
- * @property {String | Number} bottom 返回顶部按钮到底部的距离,单位px (默认 100 )
- * @property {String | Number} right 返回顶部按钮到右边的距离,单位px (默认 20 )
- * @property {String | Number} zIndex 层级 (默认 9 )
- * @property {Object<Object>} iconStyle 图标的样式,对象形式 (默认 {color: '#909399',fontSize: '19px'})
- * @property {Object} customStyle 定义需要用到的外部样式
- *
- * @example <u-back-top :scrollTop="scrollTop"></u-back-top>
- */
- export default {
- name: 'u-back-top',
- mixins: [uni.$u.mpMixin, uni.$u.mixin,props],
- computed: {
- backTopStyle() {
- // 动画组件样式
- const style = {
- bottom: uni.$u.addUnit(this.bottom),
- right: uni.$u.addUnit(this.right),
- width: '40px',
- height: '40px',
- position: 'fixed',
- zIndex: 10,
- }
- return style
- },
- show() {
- return uni.$u.getPx(this.scrollTop) > uni.$u.getPx(this.top)
- },
- contentStyle() {
- const style = {}
- let radius = 0
- // 是否圆形
- if(this.mode === 'circle') {
- radius = '100px'
- } else {
- radius = '4px'
- }
- // 为了兼容安卓nvue,只能这么分开写
- style.borderTopLeftRadius = radius
- style.borderTopRightRadius = radius
- style.borderBottomLeftRadius = radius
- style.borderBottomRightRadius = radius
- return uni.$u.deepMerge(style, uni.$u.addStyle(this.customStyle))
- }
- },
- methods: {
- backToTop() {
- // #ifdef APP-NVUE
- if (!this.$parent.$refs['u-back-top']) {
- uni.$u.error(`nvue页面需要给页面最外层元素设置"ref='u-back-top'`)
- }
- dom.scrollToElement(this.$parent.$refs['u-back-top'], {
- offset: 0
- })
- // #endif
-
- // #ifndef APP-NVUE
- uni.pageScrollTo({
- scrollTop: 0,
- duration: this.duration
- });
- // #endif
- this.$emit('click')
- }
- }
- }
-</script>
-
-<style lang="scss" scoped>
- @import '../../libs/css/components.scss';
- $u-back-top-flex:1 !default;
- $u-back-top-height:100% !default;
- $u-back-top-background-color:#E1E1E1 !default;
- $u-back-top-tips-font-size:12px !default;
- .u-back-top {
- @include flex;
- flex-direction: column;
- align-items: center;
- flex:$u-back-top-flex;
- height: $u-back-top-height;
- justify-content: center;
- background-color: $u-back-top-background-color;
-
- &__tips {
- font-size:$u-back-top-tips-font-size;
- transform: scale(0.8);
- }
- }
-</style>
diff --git a/uni_modules/uview-ui/components/u-badge/props.js b/uni_modules/uview-ui/components/u-badge/props.js
deleted file mode 100644
index 74c032c..0000000
--- a/uni_modules/uview-ui/components/u-badge/props.js
+++ /dev/null
@@ -1,72 +0,0 @@
-export default {
- props: {
- // 是否显示圆点
- isDot: {
- type: Boolean,
- default: uni.$u.props.badge.isDot
- },
- // 显示的内容
- value: {
- type: [Number, String],
- default: uni.$u.props.badge.value
- },
- // 是否显示
- show: {
- type: Boolean,
- default: uni.$u.props.badge.show
- },
- // 最大值,超过最大值会显示 '{max}+'
- max: {
- type: [Number, String],
- default: uni.$u.props.badge.max
- },
- // 主题类型,error|warning|success|primary
- type: {
- type: String,
- default: uni.$u.props.badge.type
- },
- // 当数值为 0 时,是否展示 Badge
- showZero: {
- type: Boolean,
- default: uni.$u.props.badge.showZero
- },
- // 背景颜色,优先级比type高,如设置,type参数会失效
- bgColor: {
- type: [String, null],
- default: uni.$u.props.badge.bgColor
- },
- // 字体颜色
- color: {
- type: [String, null],
- default: uni.$u.props.badge.color
- },
- // 徽标形状,circle-四角均为圆角,horn-左下角为直角
- shape: {
- type: String,
- default: uni.$u.props.badge.shape
- },
- // 设置数字的显示方式,overflow|ellipsis|limit
- // overflow会根据max字段判断,超出显示`${max}+`
- // ellipsis会根据max判断,超出显示`${max}...`
- // limit会依据1000作为判断条件,超出1000,显示`${value/1000}K`,比如2.2k、3.34w,最多保留2位小数
- numberType: {
- type: String,
- default: uni.$u.props.badge.numberType
- },
- // 设置badge的位置偏移,格式为 [x, y],也即设置的为top和right的值,absolute为true时有效
- offset: {
- type: Array,
- default: uni.$u.props.badge.offset
- },
- // 是否反转背景和字体颜色
- inverted: {
- type: Boolean,
- default: uni.$u.props.badge.inverted
- },
- // 是否绝对定位
- absolute: {
- type: Boolean,
- default: uni.$u.props.badge.absolute
- }
- }
-}
diff --git a/uni_modules/uview-ui/components/u-badge/u-badge.vue b/uni_modules/uview-ui/components/u-badge/u-badge.vue
deleted file mode 100644
index 53cfc81..0000000
--- a/uni_modules/uview-ui/components/u-badge/u-badge.vue
+++ /dev/null
@@ -1,171 +0,0 @@
-<template>
- <text
- v-if="show && ((Number(value) === 0 ? showZero : true) || isDot)"
- :class="[isDot ? 'u-badge--dot' : 'u-badge--not-dot', inverted && 'u-badge--inverted', shape === 'horn' && 'u-badge--horn', `u-badge--${type}${inverted ? '--inverted' : ''}`]"
- :style="[$u.addStyle(customStyle), badgeStyle]"
- class="u-badge"
- >{{ isDot ? '' :showValue }}</text>
-</template>
-
-<script>
- import props from './props.js';
- /**
- * badge 徽标数
- * @description 该组件一般用于图标右上角显示未读的消息数量,提示用户点击,有圆点和圆包含文字两种形式。
- * @tutorial https://uviewui.com/components/badge.html
- *
- * @property {Boolean} isDot 是否显示圆点 (默认 false )
- * @property {String | Number} value 显示的内容
- * @property {Boolean} show 是否显示 (默认 true )
- * @property {String | Number} max 最大值,超过最大值会显示 '{max}+' (默认999)
- * @property {String} type 主题类型,error|warning|success|primary (默认 'error' )
- * @property {Boolean} showZero 当数值为 0 时,是否展示 Badge (默认 false )
- * @property {String} bgColor 背景颜色,优先级比type高,如设置,type参数会失效
- * @property {String} color 字体颜色 (默认 '#ffffff' )
- * @property {String} shape 徽标形状,circle-四角均为圆角,horn-左下角为直角 (默认 'circle' )
- * @property {String} numberType 设置数字的显示方式,overflow|ellipsis|limit (默认 'overflow' )
- * @property {Array}} offset 设置badge的位置偏移,格式为 [x, y],也即设置的为top和right的值,absolute为true时有效
- * @property {Boolean} inverted 是否反转背景和字体颜色(默认 false )
- * @property {Boolean} absolute 是否绝对定位(默认 false )
- * @property {Object} customStyle 定义需要用到的外部样式
- * @example <u-badge :type="type" :count="count"></u-badge>
- */
- export default {
- name: 'u-badge',
- mixins: [uni.$u.mpMixin, props, uni.$u.mixin],
- computed: {
- // 是否将badge中心与父组件右上角重合
- boxStyle() {
- let style = {};
- return style;
- },
- // 整个组件的样式
- badgeStyle() {
- const style = {}
- if(this.color) {
- style.color = this.color
- }
- if (this.bgColor && !this.inverted) {
- style.backgroundColor = this.bgColor
- }
- if (this.absolute) {
- style.position = 'absolute'
- // 如果有设置offset参数
- if(this.offset.length) {
- // top和right分为为offset的第一个和第二个值,如果没有第二个值,则right等于top
- const top = this.offset[0]
- const right = this.offset[1] || top
- style.top = uni.$u.addUnit(top)
- style.right = uni.$u.addUnit(right)
- }
- }
- return style
- },
- showValue() {
- switch (this.numberType) {
- case "overflow":
- return Number(this.value) > Number(this.max) ? this.max + "+" : this.value
- break;
- case "ellipsis":
- return Number(this.value) > Number(this.max) ? "..." : this.value
- break;
- case "limit":
- return Number(this.value) > 999 ? Number(this.value) >= 9999 ?
- Math.floor(this.value / 1e4 * 100) / 100 + "w" : Math.floor(this.value /
- 1e3 * 100) / 100 + "k" : this.value
- break;
- default:
- return Number(this.value)
- }
- },
- }
- }
-</script>
-
-<style lang="scss" scoped>
- @import "../../libs/css/components.scss";
-
- $u-badge-primary: $u-primary !default;
- $u-badge-error: $u-error !default;
- $u-badge-success: $u-success !default;
- $u-badge-info: $u-info !default;
- $u-badge-warning: $u-warning !default;
- $u-badge-dot-radius: 100px !default;
- $u-badge-dot-size: 8px !default;
- $u-badge-dot-right: 4px !default;
- $u-badge-dot-top: 0 !default;
- $u-badge-text-font-size: 11px !default;
- $u-badge-text-right: 10px !default;
- $u-badge-text-padding: 2px 5px !default;
- $u-badge-text-align: center !default;
- $u-badge-text-color: #FFFFFF !default;
-
- .u-badge {
- border-top-right-radius: $u-badge-dot-radius;
- border-top-left-radius: $u-badge-dot-radius;
- border-bottom-left-radius: $u-badge-dot-radius;
- border-bottom-right-radius: $u-badge-dot-radius;
- @include flex;
- line-height: $u-badge-text-font-size;
- text-align: $u-badge-text-align;
- font-size: $u-badge-text-font-size;
- color: $u-badge-text-color;
-
- &--dot {
- height: $u-badge-dot-size;
- width: $u-badge-dot-size;
- }
-
- &--inverted {
- font-size: 13px;
- }
-
- &--not-dot {
- padding: $u-badge-text-padding;
- }
-
- &--horn {
- border-bottom-left-radius: 0;
- }
-
- &--primary {
- background-color: $u-badge-primary;
- }
-
- &--primary--inverted {
- color: $u-badge-primary;
- }
-
- &--error {
- background-color: $u-badge-error;
- }
-
- &--error--inverted {
- color: $u-badge-error;
- }
-
- &--success {
- background-color: $u-badge-success;
- }
-
- &--success--inverted {
- color: $u-badge-success;
- }
-
- &--info {
- background-color: $u-badge-info;
- }
-
- &--info--inverted {
- color: $u-badge-info;
- }
-
- &--warning {
- background-color: $u-badge-warning;
- }
-
- &--warning--inverted {
- color: $u-badge-warning;
- }
- }
-</style>
diff --git a/uni_modules/uview-ui/components/u-button/nvue.scss b/uni_modules/uview-ui/components/u-button/nvue.scss
deleted file mode 100644
index 490db7d..0000000
--- a/uni_modules/uview-ui/components/u-button/nvue.scss
+++ /dev/null
@@ -1,46 +0,0 @@
-$u-button-active-opacity:0.75 !default;
-$u-button-loading-text-margin-left:4px !default;
-$u-button-text-color: #FFFFFF !default;
-$u-button-text-plain-error-color:$u-error !default;
-$u-button-text-plain-warning-color:$u-warning !default;
-$u-button-text-plain-success-color:$u-success !default;
-$u-button-text-plain-info-color:$u-info !default;
-$u-button-text-plain-primary-color:$u-primary !default;
-.u-button {
- &--active {
- opacity: $u-button-active-opacity;
- }
-
- &--active--plain {
- background-color: rgb(217, 217, 217);
- }
-
- &__loading-text {
- margin-left:$u-button-loading-text-margin-left;
- }
-
- &__text,
- &__loading-text {
- color:$u-button-text-color;
- }
-
- &__text--plain--error {
- color:$u-button-text-plain-error-color;
- }
-
- &__text--plain--warning {
- color:$u-button-text-plain-warning-color;
- }
-
- &__text--plain--success{
- color:$u-button-text-plain-success-color;
- }
-
- &__text--plain--info {
- color:$u-button-text-plain-info-color;
- }
-
- &__text--plain--primary {
- color:$u-button-text-plain-primary-color;
- }
-}
\ No newline at end of file
diff --git a/uni_modules/uview-ui/components/u-button/props.js b/uni_modules/uview-ui/components/u-button/props.js
deleted file mode 100644
index 07fd844..0000000
--- a/uni_modules/uview-ui/components/u-button/props.js
+++ /dev/null
@@ -1,161 +0,0 @@
-/*
- * @Author : LQ
- * @Description :
- * @version : 1.0
- * @Date : 2021-08-16 10:04:04
- * @LastAuthor : LQ
- * @lastTime : 2021-08-16 10:04:24
- * @FilePath : /u-view2.0/uview-ui/components/u-button/props.js
- */
-export default {
- props: {
- // 是否细边框
- hairline: {
- type: Boolean,
- default: uni.$u.props.button.hairline
- },
- // 按钮的预置样式,info,primary,error,warning,success
- type: {
- type: String,
- default: uni.$u.props.button.type
- },
- // 按钮尺寸,large,normal,small,mini
- size: {
- type: String,
- default: uni.$u.props.button.size
- },
- // 按钮形状,circle(两边为半圆),square(带圆角)
- shape: {
- type: String,
- default: uni.$u.props.button.shape
- },
- // 按钮是否镂空
- plain: {
- type: Boolean,
- default: uni.$u.props.button.plain
- },
- // 是否禁止状态
- disabled: {
- type: Boolean,
- default: uni.$u.props.button.disabled
- },
- // 是否加载中
- loading: {
- type: Boolean,
- default: uni.$u.props.button.loading
- },
- // 加载中提示文字
- loadingText: {
- type: [String, Number],
- default: uni.$u.props.button.loadingText
- },
- // 加载状态图标类型
- loadingMode: {
- type: String,
- default: uni.$u.props.button.loadingMode
- },
- // 加载图标大小
- loadingSize: {
- type: [String, Number],
- default: uni.$u.props.button.loadingSize
- },
- // 开放能力,具体请看uniapp稳定关于button组件部分说明
- // https://uniapp.dcloud.io/component/button
- openType: {
- type: String,
- default: uni.$u.props.button.openType
- },
- // 用于 <form> 组件,点击分别会触发 <form> 组件的 submit/reset 事件
- // 取值为submit(提交表单),reset(重置表单)
- formType: {
- type: String,
- default: uni.$u.props.button.formType
- },
- // 打开 APP 时,向 APP 传递的参数,open-type=launchApp时有效
- // 只微信小程序、QQ小程序有效
- appParameter: {
- type: String,
- default: uni.$u.props.button.appParameter
- },
- // 指定是否阻止本节点的祖先节点出现点击态,微信小程序有效
- hoverStopPropagation: {
- type: Boolean,
- default: uni.$u.props.button.hoverStopPropagation
- },
- // 指定返回用户信息的语言,zh_CN 简体中文,zh_TW 繁体中文,en 英文。只微信小程序有效
- lang: {
- type: String,
- default: uni.$u.props.button.lang
- },
- // 会话来源,open-type="contact"时有效。只微信小程序有效
- sessionFrom: {
- type: String,
- default: uni.$u.props.button.sessionFrom
- },
- // 会话内消息卡片标题,open-type="contact"时有效
- // 默认当前标题,只微信小程序有效
- sendMessageTitle: {
- type: String,
- default: uni.$u.props.button.sendMessageTitle
- },
- // 会话内消息卡片点击跳转小程序路径,open-type="contact"时有效
- // 默认当前分享路径,只微信小程序有效
- sendMessagePath: {
- type: String,
- default: uni.$u.props.button.sendMessagePath
- },
- // 会话内消息卡片图片,open-type="contact"时有效
- // 默认当前页面截图,只微信小程序有效
- sendMessageImg: {
- type: String,
- default: uni.$u.props.button.sendMessageImg
- },
- // 是否显示会话内消息卡片,设置此参数为 true,用户进入客服会话会在右下角显示"可能要发送的小程序"提示,
- // 用户点击后可以快速发送小程序消息,open-type="contact"时有效
- showMessageCard: {
- type: Boolean,
- default: uni.$u.props.button.showMessageCard
- },
- // 额外传参参数,用于小程序的data-xxx属性,通过target.dataset.name获取
- dataName: {
- type: String,
- default: uni.$u.props.button.dataName
- },
- // 节流,一定时间内只能触发一次
- throttleTime: {
- type: [String, Number],
- default: uni.$u.props.button.throttleTime
- },
- // 按住后多久出现点击态,单位毫秒
- hoverStartTime: {
- type: [String, Number],
- default: uni.$u.props.button.hoverStartTime
- },
- // 手指松开后点击态保留时间,单位毫秒
- hoverStayTime: {
- type: [String, Number],
- default: uni.$u.props.button.hoverStayTime
- },
- // 按钮文字,之所以通过props传入,是因为slot传入的话
- // nvue中无法控制文字的样式
- text: {
- type: [String, Number],
- default: uni.$u.props.button.text
- },
- // 按钮图标
- icon: {
- type: String,
- default: uni.$u.props.button.icon
- },
- // 按钮图标
- iconColor: {
- type: String,
- default: uni.$u.props.button.icon
- },
- // 按钮颜色,支持传入linear-gradient渐变色
- color: {
- type: String,
- default: uni.$u.props.button.color
- }
- }
-}
diff --git a/uni_modules/uview-ui/components/u-button/u-button.vue b/uni_modules/uview-ui/components/u-button/u-button.vue
deleted file mode 100644
index d60f73e..0000000
--- a/uni_modules/uview-ui/components/u-button/u-button.vue
+++ /dev/null
@@ -1,495 +0,0 @@
-<template>
- <!-- #ifndef APP-NVUE -->
- <button
- :hover-start-time="Number(hoverStartTime)"
- :hover-stay-time="Number(hoverStayTime)"
- :form-type="formType"
- :open-type="openType"
- :app-parameter="appParameter"
- :hover-stop-propagation="hoverStopPropagation"
- :send-message-title="sendMessageTitle"
- :send-message-path="sendMessagePath"
- :lang="lang"
- :data-name="dataName"
- :session-from="sessionFrom"
- :send-message-img="sendMessageImg"
- :show-message-card="showMessageCard"
- @getphonenumber="getphonenumber"
- @getuserinfo="getuserinfo"
- @error="error"
- @opensetting="opensetting"
- @launchapp="launchapp"
- @agreeprivacyauthorization="agreeprivacyauthorization"
- :hover-class="!disabled && !loading ? 'u-button--active' : ''"
- class="u-button u-reset-button"
- :style="[baseColor, $u.addStyle(customStyle)]"
- @tap="clickHandler"
- :class="bemClass"
- >
- <template v-if="loading">
- <u-loading-icon
- :mode="loadingMode"
- :size="loadingSize * 1.15"
- :color="loadingColor"
- ></u-loading-icon>
- <text
- class="u-button__loading-text"
- :style="[{ fontSize: textSize + 'px' }]"
- >{{ loadingText || text }}</text
- >
- </template>
- <template v-else>
- <u-icon
- v-if="icon"
- :name="icon"
- :color="iconColorCom"
- :size="textSize * 1.35"
- :customStyle="{ marginRight: '2px' }"
- ></u-icon>
- <slot>
- <text
- class="u-button__text"
- :style="[{ fontSize: textSize + 'px' }]"
- >{{ text }}</text
- >
- </slot>
- </template>
- </button>
- <!-- #endif -->
-
- <!-- #ifdef APP-NVUE -->
- <view
- :hover-start-time="Number(hoverStartTime)"
- :hover-stay-time="Number(hoverStayTime)"
- class="u-button"
- :hover-class="
- !disabled && !loading && !color && (plain || type === 'info')
- ? 'u-button--active--plain'
- : !disabled && !loading && !plain
- ? 'u-button--active'
- : ''
- "
- @tap="clickHandler"
- :class="bemClass"
- :style="[baseColor, $u.addStyle(customStyle)]"
- >
- <template v-if="loading">
- <u-loading-icon
- :mode="loadingMode"
- :size="loadingSize * 1.15"
- :color="loadingColor"
- ></u-loading-icon>
- <text
- class="u-button__loading-text"
- :style="[nvueTextStyle]"
- :class="[plain && `u-button__text--plain--${type}`]"
- >{{ loadingText || text }}</text
- >
- </template>
- <template v-else>
- <u-icon
- v-if="icon"
- :name="icon"
- :color="iconColorCom"
- :size="textSize * 1.35"
- ></u-icon>
- <text
- class="u-button__text"
- :style="[
- {
- marginLeft: icon ? '2px' : 0,
- },
- nvueTextStyle,
- ]"
- :class="[plain && `u-button__text--plain--${type}`]"
- >{{ text }}</text
- >
- </template>
- </view>
- <!-- #endif -->
-</template>
-
-<script>
-import button from "../../libs/mixin/button.js";
-import openType from "../../libs/mixin/openType.js";
-import props from "./props.js";
-/**
- * button 按钮
- * @description Button 按钮
- * @tutorial https://www.uviewui.com/components/button.html
- *
- * @property {Boolean} hairline 是否显示按钮的细边框 (默认 true )
- * @property {String} type 按钮的预置样式,info,primary,error,warning,success (默认 'info' )
- * @property {String} size 按钮尺寸,large,normal,mini (默认 normal)
- * @property {String} shape 按钮形状,circle(两边为半圆),square(带圆角) (默认 'square' )
- * @property {Boolean} plain 按钮是否镂空,背景色透明 (默认 false)
- * @property {Boolean} disabled 是否禁用 (默认 false)
- * @property {Boolean} loading 按钮名称前是否带 loading 图标(App-nvue 平台,在 ios 上为雪花,Android上为圆圈) (默认 false)
- * @property {String | Number} loadingText 加载中提示文字
- * @property {String} loadingMode 加载状态图标类型 (默认 'spinner' )
- * @property {String | Number} loadingSize 加载图标大小 (默认 15 )
- * @property {String} openType 开放能力,具体请看uniapp稳定关于button组件部分说明
- * @property {String} formType 用于 <form> 组件,点击分别会触发 <form> 组件的 submit/reset 事件
- * @property {String} appParameter 打开 APP 时,向 APP 传递的参数,open-type=launchApp时有效 (注:只微信小程序、QQ小程序有效)
- * @property {Boolean} hoverStopPropagation 指定是否阻止本节点的祖先节点出现点击态,微信小程序有效(默认 true )
- * @property {String} lang 指定返回用户信息的语言,zh_CN 简体中文,zh_TW 繁体中文,en 英文(默认 en )
- * @property {String} sessionFrom 会话来源,openType="contact"时有效
- * @property {String} sendMessageTitle 会话内消息卡片标题,openType="contact"时有效
- * @property {String} sendMessagePath 会话内消息卡片点击跳转小程序路径,openType="contact"时有效
- * @property {String} sendMessageImg 会话内消息卡片图片,openType="contact"时有效
- * @property {Boolean} showMessageCard 是否显示会话内消息卡片,设置此参数为 true,用户进入客服会话会在右下角显示"可能要发送的小程序"提示,用户点击后可以快速发送小程序消息,openType="contact"时有效(默认false)
- * @property {String} dataName 额外传参参数,用于小程序的data-xxx属性,通过target.dataset.name获取
- * @property {String | Number} throttleTime 节流,一定时间内只能触发一次 (默认 0 )
- * @property {String | Number} hoverStartTime 按住后多久出现点击态,单位毫秒 (默认 0 )
- * @property {String | Number} hoverStayTime 手指松开后点击态保留时间,单位毫秒 (默认 200 )
- * @property {String | Number} text 按钮文字,之所以通过props传入,是因为slot传入的话(注:nvue中无法控制文字的样式)
- * @property {String} icon 按钮图标
- * @property {String} iconColor 按钮图标颜色
- * @property {String} color 按钮颜色,支持传入linear-gradient渐变色
- * @property {Object} customStyle 定义需要用到的外部样式
- *
- * @event {Function} click 非禁止并且非加载中,才能点击
- * @event {Function} getphonenumber open-type="getPhoneNumber"时有效
- * @event {Function} getuserinfo 用户点击该按钮时,会返回获取到的用户信息,从返回参数的detail中获取到的值同uni.getUserInfo
- * @event {Function} error 当使用开放能力时,发生错误的回调
- * @event {Function} opensetting 在打开授权设置页并关闭后回调
- * @event {Function} launchapp 打开 APP 成功的回调
- * @event {Function} agreeprivacyauthorization 用户同意隐私协议事件回调
- * @example <u-button>月落</u-button>
- */
-export default {
- name: "u-button",
- // #ifdef MP
- mixins: [uni.$u.mpMixin, uni.$u.mixin, button, openType, props],
- // #endif
- // #ifndef MP
- mixins: [uni.$u.mpMixin, uni.$u.mixin, props],
- // #endif
- data() {
- return {};
- },
- computed: {
- // 生成bem风格的类名
- bemClass() {
- // this.bem为一个computed变量,在mixin中
- if (!this.color) {
- return this.bem(
- "button",
- ["type", "shape", "size"],
- ["disabled", "plain", "hairline"]
- );
- } else {
- // 由于nvue的原因,在有color参数时,不需要传入type,否则会生成type相关的类型,影响最终的样式
- return this.bem(
- "button",
- ["shape", "size"],
- ["disabled", "plain", "hairline"]
- );
- }
- },
- loadingColor() {
- if (this.plain) {
- // 如果有设置color值,则用color值,否则使用type主题颜色
- return this.color
- ? this.color
- : uni.$u.config.color[`u-${this.type}`];
- }
- if (this.type === "info") {
- return "#c9c9c9";
- }
- return "rgb(200, 200, 200)";
- },
- iconColorCom() {
- // 如果是镂空状态,设置了color就用color值,否则使用主题颜色,
- // u-icon的color能接受一个主题颜色的值
- if (this.iconColor) return this.iconColor;
- if (this.plain) {
- return this.color ? this.color : this.type;
- } else {
- return this.type === "info" ? "#000000" : "#ffffff";
- }
- },
- baseColor() {
- let style = {};
- if (this.color) {
- // 针对自定义了color颜色的情况,镂空状态下,就是用自定义的颜色
- style.color = this.plain ? this.color : "white";
- if (!this.plain) {
- // 非镂空,背景色使用自定义的颜色
- style["background-color"] = this.color;
- }
- if (this.color.indexOf("gradient") !== -1) {
- // 如果自定义的颜色为渐变色,不显示边框,以及通过backgroundImage设置渐变色
- // weex文档说明可以写borderWidth的形式,为什么这里需要分开写?
- // 因为weex是阿里巴巴为了部门业绩考核而做的你懂的东西,所以需要这么写才有效
- style.borderTopWidth = 0;
- style.borderRightWidth = 0;
- style.borderBottomWidth = 0;
- style.borderLeftWidth = 0;
- if (!this.plain) {
- style.backgroundImage = this.color;
- }
- } else {
- // 非渐变色,则设置边框相关的属性
- style.borderColor = this.color;
- style.borderWidth = "1px";
- style.borderStyle = "solid";
- }
- }
- return style;
- },
- // nvue版本按钮的字体不会继承父组件的颜色,需要对每一个text组件进行单独的设置
- nvueTextStyle() {
- let style = {};
- // 针对自定义了color颜色的情况,镂空状态下,就是用自定义的颜色
- if (this.type === "info") {
- style.color = "#323233";
- }
- if (this.color) {
- style.color = this.plain ? this.color : "white";
- }
- style.fontSize = this.textSize + "px";
- return style;
- },
- // 字体大小
- textSize() {
- let fontSize = 14,
- { size } = this;
- if (size === "large") fontSize = 16;
- if (size === "normal") fontSize = 14;
- if (size === "small") fontSize = 12;
- if (size === "mini") fontSize = 10;
- return fontSize;
- },
- },
- methods: {
- clickHandler() {
- // 非禁止并且非加载中,才能点击
- if (!this.disabled && !this.loading) {
- // 进行节流控制,每this.throttle毫秒内,只在开始处执行
- uni.$u.throttle(() => {
- this.$emit("click");
- }, this.throttleTime);
- }
- },
- // 下面为对接uniapp官方按钮开放能力事件回调的对接
- getphonenumber(res) {
- this.$emit("getphonenumber", res);
- },
- getuserinfo(res) {
- this.$emit("getuserinfo", res);
- },
- error(res) {
- this.$emit("error", res);
- },
- opensetting(res) {
- this.$emit("opensetting", res);
- },
- launchapp(res) {
- this.$emit("launchapp", res);
- },
- agreeprivacyauthorization(res) {
- this.$emit("agreeprivacyauthorization", res);
- },
- },
-};
-</script>
-
-<style lang="scss" scoped>
-@import "../../libs/css/components.scss";
-
-/* #ifndef APP-NVUE */
-@import "./vue.scss";
-/* #endif */
-
-/* #ifdef APP-NVUE */
-@import "./nvue.scss";
-/* #endif */
-
-$u-button-u-button-height: 40px !default;
-$u-button-text-font-size: 15px !default;
-$u-button-loading-text-font-size: 15px !default;
-$u-button-loading-text-margin-left: 4px !default;
-$u-button-large-width: 100% !default;
-$u-button-large-height: 50px !default;
-$u-button-normal-padding: 0 12px !default;
-$u-button-large-padding: 0 15px !default;
-$u-button-normal-font-size: 14px !default;
-$u-button-small-min-width: 60px !default;
-$u-button-small-height: 30px !default;
-$u-button-small-padding: 0px 8px !default;
-$u-button-mini-padding: 0px 8px !default;
-$u-button-small-font-size: 12px !default;
-$u-button-mini-height: 22px !default;
-$u-button-mini-font-size: 10px !default;
-$u-button-mini-min-width: 50px !default;
-$u-button-disabled-opacity: 0.5 !default;
-$u-button-info-color: #323233 !default;
-$u-button-info-background-color: #fff !default;
-$u-button-info-border-color: #ebedf0 !default;
-$u-button-info-border-width: 1px !default;
-$u-button-info-border-style: solid !default;
-$u-button-success-color: #fff !default;
-$u-button-success-background-color: $u-success !default;
-$u-button-success-border-color: $u-button-success-background-color !default;
-$u-button-success-border-width: 1px !default;
-$u-button-success-border-style: solid !default;
-$u-button-primary-color: #fff !default;
-$u-button-primary-background-color: $u-primary !default;
-$u-button-primary-border-color: $u-button-primary-background-color !default;
-$u-button-primary-border-width: 1px !default;
-$u-button-primary-border-style: solid !default;
-$u-button-error-color: #fff !default;
-$u-button-error-background-color: $u-error !default;
-$u-button-error-border-color: $u-button-error-background-color !default;
-$u-button-error-border-width: 1px !default;
-$u-button-error-border-style: solid !default;
-$u-button-warning-color: #fff !default;
-$u-button-warning-background-color: $u-warning !default;
-$u-button-warning-border-color: $u-button-warning-background-color !default;
-$u-button-warning-border-width: 1px !default;
-$u-button-warning-border-style: solid !default;
-$u-button-block-width: 100% !default;
-$u-button-circle-border-top-right-radius: 100px !default;
-$u-button-circle-border-top-left-radius: 100px !default;
-$u-button-circle-border-bottom-left-radius: 100px !default;
-$u-button-circle-border-bottom-right-radius: 100px !default;
-$u-button-square-border-top-right-radius: 3px !default;
-$u-button-square-border-top-left-radius: 3px !default;
-$u-button-square-border-bottom-left-radius: 3px !default;
-$u-button-square-border-bottom-right-radius: 3px !default;
-$u-button-icon-min-width: 1em !default;
-$u-button-plain-background-color: #fff !default;
-$u-button-hairline-border-width: 0.5px !default;
-
-.u-button {
- height: $u-button-u-button-height;
- position: relative;
- align-items: center;
- justify-content: center;
- @include flex;
- /* #ifndef APP-NVUE */
- box-sizing: border-box;
- /* #endif */
- flex-direction: row;
-
- &__text {
- font-size: $u-button-text-font-size;
- }
-
- &__loading-text {
- font-size: $u-button-loading-text-font-size;
- margin-left: $u-button-loading-text-margin-left;
- }
-
- &--large {
- /* #ifndef APP-NVUE */
- width: $u-button-large-width;
- /* #endif */
- height: $u-button-large-height;
- padding: $u-button-large-padding;
- }
-
- &--normal {
- padding: $u-button-normal-padding;
- font-size: $u-button-normal-font-size;
- }
-
- &--small {
- /* #ifndef APP-NVUE */
- min-width: $u-button-small-min-width;
- /* #endif */
- height: $u-button-small-height;
- padding: $u-button-small-padding;
- font-size: $u-button-small-font-size;
- }
-
- &--mini {
- height: $u-button-mini-height;
- font-size: $u-button-mini-font-size;
- /* #ifndef APP-NVUE */
- min-width: $u-button-mini-min-width;
- /* #endif */
- padding: $u-button-mini-padding;
- }
-
- &--disabled {
- opacity: $u-button-disabled-opacity;
- }
-
- &--info {
- color: $u-button-info-color;
- background-color: $u-button-info-background-color;
- border-color: $u-button-info-border-color;
- border-width: $u-button-info-border-width;
- border-style: $u-button-info-border-style;
- }
-
- &--success {
- color: $u-button-success-color;
- background-color: $u-button-success-background-color;
- border-color: $u-button-success-border-color;
- border-width: $u-button-success-border-width;
- border-style: $u-button-success-border-style;
- }
-
- &--primary {
- color: $u-button-primary-color;
- background-color: $u-button-primary-background-color;
- border-color: $u-button-primary-border-color;
- border-width: $u-button-primary-border-width;
- border-style: $u-button-primary-border-style;
- }
-
- &--error {
- color: $u-button-error-color;
- background-color: $u-button-error-background-color;
- border-color: $u-button-error-border-color;
- border-width: $u-button-error-border-width;
- border-style: $u-button-error-border-style;
- }
-
- &--warning {
- color: $u-button-warning-color;
- background-color: $u-button-warning-background-color;
- border-color: $u-button-warning-border-color;
- border-width: $u-button-warning-border-width;
- border-style: $u-button-warning-border-style;
- }
-
- &--block {
- @include flex;
- width: $u-button-block-width;
- }
-
- &--circle {
- border-top-right-radius: $u-button-circle-border-top-right-radius;
- border-top-left-radius: $u-button-circle-border-top-left-radius;
- border-bottom-left-radius: $u-button-circle-border-bottom-left-radius;
- border-bottom-right-radius: $u-button-circle-border-bottom-right-radius;
- }
-
- &--square {
- border-bottom-left-radius: $u-button-square-border-top-right-radius;
- border-bottom-right-radius: $u-button-square-border-top-left-radius;
- border-top-left-radius: $u-button-square-border-bottom-left-radius;
- border-top-right-radius: $u-button-square-border-bottom-right-radius;
- }
-
- &__icon {
- /* #ifndef APP-NVUE */
- min-width: $u-button-icon-min-width;
- line-height: inherit !important;
- vertical-align: top;
- /* #endif */
- }
-
- &--plain {
- background-color: $u-button-plain-background-color;
- }
-
- &--hairline {
- border-width: $u-button-hairline-border-width !important;
- }
-}
-</style>
diff --git a/uni_modules/uview-ui/components/u-button/vue.scss b/uni_modules/uview-ui/components/u-button/vue.scss
deleted file mode 100644
index 32019b2..0000000
--- a/uni_modules/uview-ui/components/u-button/vue.scss
+++ /dev/null
@@ -1,80 +0,0 @@
-// nvue下hover-class无效
-$u-button-before-top:50% !default;
-$u-button-before-left:50% !default;
-$u-button-before-width:100% !default;
-$u-button-before-height:100% !default;
-$u-button-before-transform:translate(-50%, -50%) !default;
-$u-button-before-opacity:0 !default;
-$u-button-before-background-color:#000 !default;
-$u-button-before-border-color:#000 !default;
-$u-button-active-before-opacity:.15 !default;
-$u-button-icon-margin-left:4px !default;
-$u-button-plain-u-button-info-color:$u-info;
-$u-button-plain-u-button-success-color:$u-success;
-$u-button-plain-u-button-error-color:$u-error;
-$u-button-plain-u-button-warning-color:$u-error;
-
-.u-button {
- width: 100%;
-
- &__text {
- white-space: nowrap;
- line-height: 1;
- }
-
- &:before {
- position: absolute;
- top:$u-button-before-top;
- left:$u-button-before-left;
- width:$u-button-before-width;
- height:$u-button-before-height;
- border: inherit;
- border-radius: inherit;
- transform:$u-button-before-transform;
- opacity:$u-button-before-opacity;
- content: " ";
- background-color:$u-button-before-background-color;
- border-color:$u-button-before-border-color;
- }
-
- &--active {
- &:before {
- opacity: .15
- }
- }
-
- &__icon+&__text:not(:empty),
- &__loading-text {
- margin-left:$u-button-icon-margin-left;
- }
-
- &--plain {
- &.u-button--primary {
- color: $u-primary;
- }
- }
-
- &--plain {
- &.u-button--info {
- color:$u-button-plain-u-button-info-color;
- }
- }
-
- &--plain {
- &.u-button--success {
- color:$u-button-plain-u-button-success-color;
- }
- }
-
- &--plain {
- &.u-button--error {
- color:$u-button-plain-u-button-error-color;
- }
- }
-
- &--plain {
- &.u-button--warning {
- color:$u-button-plain-u-button-warning-color;
- }
- }
-}
diff --git a/uni_modules/uview-ui/components/u-calendar/header.vue b/uni_modules/uview-ui/components/u-calendar/header.vue
deleted file mode 100644
index dc4f7d0..0000000
--- a/uni_modules/uview-ui/components/u-calendar/header.vue
+++ /dev/null
@@ -1,99 +0,0 @@
-<template>
- <view class="u-calendar-header u-border-bottom">
- <text
- class="u-calendar-header__title"
- v-if="showTitle"
- >{{ title }}</text>
- <text
- class="u-calendar-header__subtitle"
- v-if="showSubtitle"
- >{{ subtitle }}</text>
- <view class="u-calendar-header__weekdays">
- <text class="u-calendar-header__weekdays__weekday">一</text>
- <text class="u-calendar-header__weekdays__weekday">二</text>
- <text class="u-calendar-header__weekdays__weekday">三</text>
- <text class="u-calendar-header__weekdays__weekday">四</text>
- <text class="u-calendar-header__weekdays__weekday">五</text>
- <text class="u-calendar-header__weekdays__weekday">六</text>
- <text class="u-calendar-header__weekdays__weekday">日</text>
- </view>
- </view>
-</template>
-
-<script>
- export default {
- name: 'u-calendar-header',
- mixins: [uni.$u.mpMixin, uni.$u.mixin],
- props: {
- // 标题
- title: {
- type: String,
- default: ''
- },
- // 副标题
- subtitle: {
- type: String,
- default: ''
- },
- // 是否显示标题
- showTitle: {
- type: Boolean,
- default: true
- },
- // 是否显示副标题
- showSubtitle: {
- type: Boolean,
- default: true
- },
- },
- data() {
- return {
-
- }
- },
- methods: {
- name() {
-
- }
- },
- }
-</script>
-
-<style lang="scss" scoped>
- @import "../../libs/css/components.scss";
-
- .u-calendar-header {
- padding-bottom: 4px;
-
- &__title {
- font-size: 16px;
- color: $u-main-color;
- text-align: center;
- height: 42px;
- line-height: 42px;
- font-weight: bold;
- }
-
- &__subtitle {
- font-size: 14px;
- color: $u-main-color;
- height: 40px;
- text-align: center;
- line-height: 40px;
- font-weight: bold;
- }
-
- &__weekdays {
- @include flex;
- justify-content: space-between;
-
- &__weekday {
- font-size: 13px;
- color: $u-main-color;
- line-height: 30px;
- flex: 1;
- text-align: center;
- }
- }
- }
-</style>
diff --git a/uni_modules/uview-ui/components/u-calendar/month.vue b/uni_modules/uview-ui/components/u-calendar/month.vue
deleted file mode 100644
index c20937f..0000000
--- a/uni_modules/uview-ui/components/u-calendar/month.vue
+++ /dev/null
@@ -1,579 +0,0 @@
-<template>
- <view class="u-calendar-month-wrapper" ref="u-calendar-month-wrapper">
- <view v-for="(item, index) in months" :key="index" :class="[`u-calendar-month-${index}`]"
- :ref="`u-calendar-month-${index}`" :id="`month-${index}`">
- <text v-if="index !== 0" class="u-calendar-month__title">{{ item.year }}年{{ item.month }}月</text>
- <view class="u-calendar-month__days">
- <view v-if="showMark" class="u-calendar-month__days__month-mark-wrapper">
- <text class="u-calendar-month__days__month-mark-wrapper__text">{{ item.month }}</text>
- </view>
- <view class="u-calendar-month__days__day" v-for="(item1, index1) in item.date" :key="index1"
- :style="[dayStyle(index, index1, item1)]" @tap="clickHandler(index, index1, item1)"
- :class="[item1.selected && 'u-calendar-month__days__day__select--selected']">
- <view class="u-calendar-month__days__day__select" :style="[daySelectStyle(index, index1, item1)]">
- <text class="u-calendar-month__days__day__select__info"
- :class="[item1.disabled && 'u-calendar-month__days__day__select__info--disabled']"
- :style="[textStyle(item1)]">{{ item1.day }}</text>
- <text v-if="getBottomInfo(index, index1, item1)"
- class="u-calendar-month__days__day__select__buttom-info"
- :class="[item1.disabled && 'u-calendar-month__days__day__select__buttom-info--disabled']"
- :style="[textStyle(item1)]">{{ getBottomInfo(index, index1, item1) }}</text>
- <text v-if="item1.dot" class="u-calendar-month__days__day__select__dot"></text>
- </view>
- </view>
- </view>
- </view>
- </view>
-</template>
-
-<script>
- // #ifdef APP-NVUE
- // 由于nvue不支持百分比单位,需要查询宽度来计算每个日期的宽度
- const dom = uni.requireNativePlugin('dom')
- // #endif
- import dayjs from '../../libs/util/dayjs.js';
- export default {
- name: 'u-calendar-month',
- mixins: [uni.$u.mpMixin, uni.$u.mixin],
- props: {
- // 是否显示月份背景色
- showMark: {
- type: Boolean,
- default: true
- },
- // 主题色,对底部按钮和选中日期有效
- color: {
- type: String,
- default: '#3c9cff'
- },
- // 月份数据
- months: {
- type: Array,
- default: () => []
- },
- // 日期选择类型
- mode: {
- type: String,
- default: 'single'
- },
- // 日期行高
- rowHeight: {
- type: [String, Number],
- default: 58
- },
- // mode=multiple时,最多可选多少个日期
- maxCount: {
- type: [String, Number],
- default: Infinity
- },
- // mode=range时,第一个日期底部的提示文字
- startText: {
- type: String,
- default: '开始'
- },
- // mode=range时,最后一个日期底部的提示文字
- endText: {
- type: String,
- default: '结束'
- },
- // 默认选中的日期,mode为multiple或range是必须为数组格式
- defaultDate: {
- type: [Array, String, Date],
- default: null
- },
- // 最小的可选日期
- minDate: {
- type: [String, Number],
- default: 0
- },
- // 最大可选日期
- maxDate: {
- type: [String, Number],
- default: 0
- },
- // 如果没有设置maxDate,则往后推多少个月
- maxMonth: {
- type: [String, Number],
- default: 2
- },
- // 是否为只读状态,只读状态下禁止选择日期
- readonly: {
- type: Boolean,
- default: uni.$u.props.calendar.readonly
- },
- // 日期区间最多可选天数,默认无限制,mode = range时有效
- maxRange: {
- type: [Number, String],
- default: Infinity
- },
- // 范围选择超过最多可选天数时的提示文案,mode = range时有效
- rangePrompt: {
- type: String,
- default: ''
- },
- // 范围选择超过最多可选天数时,是否展示提示文案,mode = range时有效
- showRangePrompt: {
- type: Boolean,
- default: true
- },
- // 是否允许日期范围的起止时间为同一天,mode = range时有效
- allowSameDay: {
- type: Boolean,
- default: false
- }
- },
- data() {
- return {
- // 每个日期的宽度
- width: 0,
- // 当前选中的日期item
- item: {},
- selected: []
- }
- },
- watch: {
- selectedChange: {
- immediate: true,
- handler(n) {
- this.setDefaultDate()
- }
- }
- },
- computed: {
- // 多个条件的变化,会引起选中日期的变化,这里统一管理监听
- selectedChange() {
- return [this.minDate, this.maxDate, this.defaultDate]
- },
- dayStyle(index1, index2, item) {
- return (index1, index2, item) => {
- const style = {}
- let week = item.week
- // 不进行四舍五入的形式保留2位小数
- const dayWidth = Number(parseFloat(this.width / 7).toFixed(3).slice(0, -1))
- // 得出每个日期的宽度
- // #ifdef APP-NVUE
- style.width = uni.$u.addUnit(dayWidth)
- // #endif
- style.height = uni.$u.addUnit(this.rowHeight)
- if (index2 === 0) {
- // 获取当前为星期几,如果为0,则为星期天,减一为每月第一天时,需要向左偏移的item个数
- week = (week === 0 ? 7 : week) - 1
- style.marginLeft = uni.$u.addUnit(week * dayWidth)
- }
- if (this.mode === 'range') {
- // 之所以需要这么写,是因为DCloud公司的iOS客户端的开发者能力有限导致的bug
- style.paddingLeft = 0
- style.paddingRight = 0
- style.paddingBottom = 0
- style.paddingTop = 0
- }
- return style
- }
- },
- daySelectStyle() {
- return (index1, index2, item) => {
- let date = dayjs(item.date).format("YYYY-MM-DD"),
- style = {}
- // 判断date是否在selected数组中,因为月份可能会需要补0,所以使用dateSame判断,而不用数组的includes判断
- if (this.selected.some(item => this.dateSame(item, date))) {
- style.backgroundColor = this.color
- }
- if (this.mode === 'single') {
- if (date === this.selected[0]) {
- // 因为需要对nvue的兼容,只能这么写,无法缩写,也无法通过类名控制等等
- style.borderTopLeftRadius = '3px'
- style.borderBottomLeftRadius = '3px'
- style.borderTopRightRadius = '3px'
- style.borderBottomRightRadius = '3px'
- }
- } else if (this.mode === 'range') {
- if (this.selected.length >= 2) {
- const len = this.selected.length - 1
- // 第一个日期设置左上角和左下角的圆角
- if (this.dateSame(date, this.selected[0])) {
- style.borderTopLeftRadius = '3px'
- style.borderBottomLeftRadius = '3px'
- }
- // 最后一个日期设置右上角和右下角的圆角
- if (this.dateSame(date, this.selected[len])) {
- style.borderTopRightRadius = '3px'
- style.borderBottomRightRadius = '3px'
- }
- // 处于第一和最后一个之间的日期,背景色设置为浅色,通过将对应颜色进行等分,再取其尾部的颜色值
- if (dayjs(date).isAfter(dayjs(this.selected[0])) && dayjs(date).isBefore(dayjs(this
- .selected[len]))) {
- style.backgroundColor = uni.$u.colorGradient(this.color, '#ffffff', 100)[90]
- // 增加一个透明度,让范围区间的背景色也能看到底部的mark水印字符
- style.opacity = 0.7
- }
- } else if (this.selected.length === 1) {
- // 之所以需要这么写,是因为DCloud公司的iOS客户端的开发者能力有限导致的bug
- // 进行还原操作,否则在nvue的iOS,uni-app有bug,会导致诡异的表现
- style.borderTopLeftRadius = '3px'
- style.borderBottomLeftRadius = '3px'
- }
- } else {
- if (this.selected.some(item => this.dateSame(item, date))) {
- style.borderTopLeftRadius = '3px'
- style.borderBottomLeftRadius = '3px'
- style.borderTopRightRadius = '3px'
- style.borderBottomRightRadius = '3px'
- }
- }
- return style
- }
- },
- // 某个日期是否被选中
- textStyle() {
- return (item) => {
- const date = dayjs(item.date).format("YYYY-MM-DD"),
- style = {}
- // 选中的日期,提示文字设置白色
- if (this.selected.some(item => this.dateSame(item, date))) {
- style.color = '#ffffff'
- }
- if (this.mode === 'range') {
- const len = this.selected.length - 1
- // 如果是范围选择模式,第一个和最后一个之间的日期,文字颜色设置为高亮的主题色
- if (dayjs(date).isAfter(dayjs(this.selected[0])) && dayjs(date).isBefore(dayjs(this
- .selected[len]))) {
- style.color = this.color
- }
- }
- return style
- }
- },
- // 获取底部的提示文字
- getBottomInfo() {
- return (index1, index2, item) => {
- const date = dayjs(item.date).format("YYYY-MM-DD")
- const bottomInfo = item.bottomInfo
- // 当为日期范围模式时,且选择的日期个数大于0时
- if (this.mode === 'range' && this.selected.length > 0) {
- if (this.selected.length === 1) {
- // 选择了一个日期时,如果当前日期为数组中的第一个日期,则显示底部文字为“开始”
- if (this.dateSame(date, this.selected[0])) return this.startText
- else return bottomInfo
- } else {
- const len = this.selected.length - 1
- // 如果数组中的日期大于2个时,第一个和最后一个显示为开始和结束日期
- if (this.dateSame(date, this.selected[0]) && this.dateSame(date, this.selected[1]) &&
- len === 1) {
- // 如果长度为2,且第一个等于第二个日期,则提示语放在同一个item中
- return `${this.startText}/${this.endText}`
- } else if (this.dateSame(date, this.selected[0])) {
- return this.startText
- } else if (this.dateSame(date, this.selected[len])) {
- return this.endText
- } else {
- return bottomInfo
- }
- }
- } else {
- return bottomInfo
- }
- }
- }
- },
- mounted() {
- this.init()
- },
- methods: {
- init() {
- // 初始化默认选中
- this.$emit('monthSelected', this.selected)
- this.$nextTick(() => {
- // 这里需要另一个延时,因为获取宽度后,会进行月份数据渲染,只有渲染完成之后,才有真正的高度
- // 因为nvue下,$nextTick并不是100%可靠的
- uni.$u.sleep(10).then(() => {
- this.getWrapperWidth()
- this.getMonthRect()
- })
- })
- },
- // 判断两个日期是否相等
- dateSame(date1, date2) {
- return dayjs(date1).isSame(dayjs(date2))
- },
- // 获取月份数据区域的宽度,因为nvue不支持百分比,所以无法通过css设置每个日期item的宽度
- getWrapperWidth() {
- // #ifdef APP-NVUE
- dom.getComponentRect(this.$refs['u-calendar-month-wrapper'], res => {
- this.width = res.size.width
- })
- // #endif
- // #ifndef APP-NVUE
- this.$uGetRect('.u-calendar-month-wrapper').then(size => {
- this.width = size.width
- })
- // #endif
- },
- getMonthRect() {
- // 获取每个月份数据的尺寸,用于父组件在scroll-view滚动事件中,监听当前滚动到了第几个月份
- const promiseAllArr = this.months.map((item, index) => this.getMonthRectByPromise(
- `u-calendar-month-${index}`))
- // 一次性返回
- Promise.all(promiseAllArr).then(
- sizes => {
- let height = 1
- const topArr = []
- for (let i = 0; i < this.months.length; i++) {
- // 添加到months数组中,供scroll-view滚动事件中,判断当前滚动到哪个月份
- topArr[i] = height
- height += sizes[i].height
- }
- // 由于微信下,无法通过this.months[i].top的形式(引用类型)去修改父组件的month的top值,所以使用事件形式对外发出
- this.$emit('updateMonthTop', topArr)
- })
- },
- // 获取每个月份区域的尺寸
- getMonthRectByPromise(el) {
- // #ifndef APP-NVUE
- // $uGetRect为uView自带的节点查询简化方法,详见文档介绍:https://www.uviewui.com/js/getRect.html
- // 组件内部一般用this.$uGetRect,对外的为uni.$u.getRect,二者功能一致,名称不同
- return new Promise(resolve => {
- this.$uGetRect(`.${el}`).then(size => {
- resolve(size)
- })
- })
- // #endif
-
- // #ifdef APP-NVUE
- // nvue下,使用dom模块查询元素高度
- // 返回一个promise,让调用此方法的主体能使用then回调
- return new Promise(resolve => {
- dom.getComponentRect(this.$refs[el][0], res => {
- resolve(res.size)
- })
- })
- // #endif
- },
- // 点击某一个日期
- clickHandler(index1, index2, item) {
- if (this.readonly) {
- return;
- }
- this.item = item
- const date = dayjs(item.date).format("YYYY-MM-DD")
- if (item.disabled) return
- // 对上一次选择的日期数组进行深度克隆
- let selected = uni.$u.deepClone(this.selected)
- if (this.mode === 'single') {
- // 单选情况下,让数组中的元素为当前点击的日期
- selected = [date]
- } else if (this.mode === 'multiple') {
- if (selected.some(item => this.dateSame(item, date))) {
- // 如果点击的日期已在数组中,则进行移除操作,也就是达到反选的效果
- const itemIndex = selected.findIndex(item => item === date)
- selected.splice(itemIndex, 1)
- } else {
- // 如果点击的日期不在数组中,且已有的长度小于总可选长度时,则添加到数组中去
- if (selected.length < this.maxCount) selected.push(date)
- }
- } else {
- // 选择区间形式
- if (selected.length === 0 || selected.length >= 2) {
- // 如果原来就为0或者大于2的长度,则当前点击的日期,就是开始日期
- selected = [date]
- } else if (selected.length === 1) {
- // 如果已经选择了开始日期
- const existsDate = selected[0]
- // 如果当前选择的日期小于上一次选择的日期,则当前的日期定为开始日期
- if (dayjs(date).isBefore(existsDate)) {
- selected = [date]
- } else if (dayjs(date).isAfter(existsDate)) {
- // 当前日期减去最大可选的日期天数,如果大于起始时间,则进行提示
- if(dayjs(dayjs(date).subtract(this.maxRange, 'day')).isAfter(dayjs(selected[0])) && this.showRangePrompt) {
- if(this.rangePrompt) {
- uni.$u.toast(this.rangePrompt)
- } else {
- uni.$u.toast(`选择天数不能超过 ${this.maxRange} 天`)
- }
- return
- }
- // 如果当前日期大于已有日期,将当前的添加到数组尾部
- selected.push(date)
- const startDate = selected[0]
- const endDate = selected[1]
- const arr = []
- let i = 0
- do {
- // 将开始和结束日期之间的日期添加到数组中
- arr.push(dayjs(startDate).add(i, 'day').format("YYYY-MM-DD"))
- i++
- // 累加的日期小于结束日期时,继续下一次的循环
- } while (dayjs(startDate).add(i, 'day').isBefore(dayjs(endDate)))
- // 为了一次性修改数组,避免computed中多次触发,这里才用arr变量一次性赋值的方式,同时将最后一个日期添加近来
- arr.push(endDate)
- selected = arr
- } else {
- // 选择区间时,只有一个日期的情况下,且不允许选择起止为同一天的话,不允许选择自己
- if (selected[0] === date && !this.allowSameDay) return
- selected.push(date)
- }
- }
- }
- this.setSelected(selected)
- },
- // 设置默认日期
- setDefaultDate() {
- if (!this.defaultDate) {
- // 如果没有设置默认日期,则将当天日期设置为默认选中的日期
- const selected = [dayjs().format("YYYY-MM-DD")]
- return this.setSelected(selected, false)
- }
- let defaultDate = []
- const minDate = this.minDate || dayjs().format("YYYY-MM-DD")
- const maxDate = this.maxDate || dayjs(minDate).add(this.maxMonth - 1, 'month').format("YYYY-MM-DD")
- if (this.mode === 'single') {
- // 单选模式,可以是字符串或数组,Date对象等
- if (!uni.$u.test.array(this.defaultDate)) {
- defaultDate = [dayjs(this.defaultDate).format("YYYY-MM-DD")]
- } else {
- defaultDate = [this.defaultDate[0]]
- }
- } else {
- // 如果为非数组,则不执行
- if (!uni.$u.test.array(this.defaultDate)) return
- defaultDate = this.defaultDate
- }
- // 过滤用户传递的默认数组,取出只在可允许最大值与最小值之间的元素
- defaultDate = defaultDate.filter(item => {
- return dayjs(item).isAfter(dayjs(minDate).subtract(1, 'day')) && dayjs(item).isBefore(dayjs(
- maxDate).add(1, 'day'))
- })
- this.setSelected(defaultDate, false)
- },
- setSelected(selected, event = true) {
- this.selected = selected
- event && this.$emit('monthSelected', this.selected)
- }
- }
- }
-</script>
-
-<style lang="scss" scoped>
- @import "../../libs/css/components.scss";
-
- .u-calendar-month-wrapper {
- margin-top: 4px;
- }
-
- .u-calendar-month {
-
- &__title {
- font-size: 14px;
- line-height: 42px;
- height: 42px;
- color: $u-main-color;
- text-align: center;
- font-weight: bold;
- }
-
- &__days {
- position: relative;
- @include flex;
- flex-wrap: wrap;
-
- &__month-mark-wrapper {
- position: absolute;
- top: 0;
- bottom: 0;
- left: 0;
- right: 0;
- @include flex;
- justify-content: center;
- align-items: center;
-
- &__text {
- font-size: 155px;
- color: rgba(231, 232, 234, 0.83);
- }
- }
-
- &__day {
- @include flex;
- padding: 2px;
- /* #ifndef APP-NVUE */
- // vue下使用css进行宽度计算,因为某些安卓机会无法进行js获取父元素宽度进行计算得出,会有偏移
- width: calc(100% / 7);
- box-sizing: border-box;
- /* #endif */
-
- &__select {
- flex: 1;
- @include flex;
- align-items: center;
- justify-content: center;
- position: relative;
-
- &__dot {
- width: 7px;
- height: 7px;
- border-radius: 100px;
- background-color: $u-error;
- position: absolute;
- top: 12px;
- right: 7px;
- }
-
- &__buttom-info {
- color: $u-content-color;
- text-align: center;
- position: absolute;
- bottom: 5px;
- font-size: 10px;
- text-align: center;
- left: 0;
- right: 0;
-
- &--selected {
- color: #ffffff;
- }
-
- &--disabled {
- color: #cacbcd;
- }
- }
-
- &__info {
- text-align: center;
- font-size: 16px;
-
- &--selected {
- color: #ffffff;
- }
-
- &--disabled {
- color: #cacbcd;
- }
- }
-
- &--selected {
- background-color: $u-primary;
- @include flex;
- justify-content: center;
- align-items: center;
- flex: 1;
- border-radius: 3px;
- }
-
- &--range-selected {
- opacity: 0.3;
- border-radius: 0;
- }
-
- &--range-start-selected {
- border-top-right-radius: 0;
- border-bottom-right-radius: 0;
- }
-
- &--range-end-selected {
- border-top-left-radius: 0;
- border-bottom-left-radius: 0;
- }
- }
- }
- }
- }
-</style>
diff --git a/uni_modules/uview-ui/components/u-calendar/props.js b/uni_modules/uview-ui/components/u-calendar/props.js
deleted file mode 100644
index 2ad7bc7..0000000
--- a/uni_modules/uview-ui/components/u-calendar/props.js
+++ /dev/null
@@ -1,144 +0,0 @@
-export default {
- props: {
- // 日历顶部标题
- title: {
- type: String,
- default: uni.$u.props.calendar.title
- },
- // 是否显示标题
- showTitle: {
- type: Boolean,
- default: uni.$u.props.calendar.showTitle
- },
- // 是否显示副标题
- showSubtitle: {
- type: Boolean,
- default: uni.$u.props.calendar.showSubtitle
- },
- // 日期类型选择,single-选择单个日期,multiple-可以选择多个日期,range-选择日期范围
- mode: {
- type: String,
- default: uni.$u.props.calendar.mode
- },
- // mode=range时,第一个日期底部的提示文字
- startText: {
- type: String,
- default: uni.$u.props.calendar.startText
- },
- // mode=range时,最后一个日期底部的提示文字
- endText: {
- type: String,
- default: uni.$u.props.calendar.endText
- },
- // 自定义列表
- customList: {
- type: Array,
- default: uni.$u.props.calendar.customList
- },
- // 主题色,对底部按钮和选中日期有效
- color: {
- type: String,
- default: uni.$u.props.calendar.color
- },
- // 最小的可选日期
- minDate: {
- type: [String, Number],
- default: uni.$u.props.calendar.minDate
- },
- // 最大可选日期
- maxDate: {
- type: [String, Number],
- default: uni.$u.props.calendar.maxDate
- },
- // 默认选中的日期,mode为multiple或range是必须为数组格式
- defaultDate: {
- type: [Array, String, Date, null],
- default: uni.$u.props.calendar.defaultDate
- },
- // mode=multiple时,最多可选多少个日期
- maxCount: {
- type: [String, Number],
- default: uni.$u.props.calendar.maxCount
- },
- // 日期行高
- rowHeight: {
- type: [String, Number],
- default: uni.$u.props.calendar.rowHeight
- },
- // 日期格式化函数
- formatter: {
- type: [Function, null],
- default: uni.$u.props.calendar.formatter
- },
- // 是否显示农历
- showLunar: {
- type: Boolean,
- default: uni.$u.props.calendar.showLunar
- },
- // 是否显示月份背景色
- showMark: {
- type: Boolean,
- default: uni.$u.props.calendar.showMark
- },
- // 确定按钮的文字
- confirmText: {
- type: String,
- default: uni.$u.props.calendar.confirmText
- },
- // 确认按钮处于禁用状态时的文字
- confirmDisabledText: {
- type: String,
- default: uni.$u.props.calendar.confirmDisabledText
- },
- // 是否显示日历弹窗
- show: {
- type: Boolean,
- default: uni.$u.props.calendar.show
- },
- // 是否允许点击遮罩关闭日历
- closeOnClickOverlay: {
- type: Boolean,
- default: uni.$u.props.calendar.closeOnClickOverlay
- },
- // 是否为只读状态,只读状态下禁止选择日期
- readonly: {
- type: Boolean,
- default: uni.$u.props.calendar.readonly
- },
- // 是否展示确认按钮
- showConfirm: {
- type: Boolean,
- default: uni.$u.props.calendar.showConfirm
- },
- // 日期区间最多可选天数,默认无限制,mode = range时有效
- maxRange: {
- type: [Number, String],
- default: uni.$u.props.calendar.maxRange
- },
- // 范围选择超过最多可选天数时的提示文案,mode = range时有效
- rangePrompt: {
- type: String,
- default: uni.$u.props.calendar.rangePrompt
- },
- // 范围选择超过最多可选天数时,是否展示提示文案,mode = range时有效
- showRangePrompt: {
- type: Boolean,
- default: uni.$u.props.calendar.showRangePrompt
- },
- // 是否允许日期范围的起止时间为同一天,mode = range时有效
- allowSameDay: {
- type: Boolean,
- default: uni.$u.props.calendar.allowSameDay
- },
- // 圆角值
- round: {
- type: [Boolean, String, Number],
- default: uni.$u.props.calendar.round
- },
- // 最多展示月份数量
- monthNum: {
- type: [Number, String],
- default: 3
- }
- }
-}
diff --git a/uni_modules/uview-ui/components/u-calendar/u-calendar.vue b/uni_modules/uview-ui/components/u-calendar/u-calendar.vue
deleted file mode 100644
index 511f993..0000000
--- a/uni_modules/uview-ui/components/u-calendar/u-calendar.vue
+++ /dev/null
@@ -1,384 +0,0 @@
-<template>
- <u-popup
- :show="show"
- mode="bottom"
- closeable
- @close="close"
- :round="round"
- :closeOnClickOverlay="closeOnClickOverlay"
- >
- <view class="u-calendar">
- <uHeader
- :title="title"
- :subtitle="subtitle"
- :showSubtitle="showSubtitle"
- :showTitle="showTitle"
- ></uHeader>
- <scroll-view
- :style="{
- height: $u.addUnit(listHeight)
- }"
- scroll-y
- @scroll="onScroll"
- :scroll-top="scrollTop"
- :scrollIntoView="scrollIntoView"
- >
- <uMonth
- :color="color"
- :rowHeight="rowHeight"
- :showMark="showMark"
- :months="months"
- :mode="mode"
- :maxCount="maxCount"
- :startText="startText"
- :endText="endText"
- :defaultDate="defaultDate"
- :minDate="innerMinDate"
- :maxDate="innerMaxDate"
- :maxMonth="monthNum"
- :readonly="readonly"
- :maxRange="maxRange"
- :rangePrompt="rangePrompt"
- :showRangePrompt="showRangePrompt"
- :allowSameDay="allowSameDay"
- ref="month"
- @monthSelected="monthSelected"
- @updateMonthTop="updateMonthTop"
- ></uMonth>
- </scroll-view>
- <slot name="footer" v-if="showConfirm">
- <view class="u-calendar__confirm">
- <u-button
- shape="circle"
- :text="
- buttonDisabled ? confirmDisabledText : confirmText
- "
- :color="color"
- @click="confirm"
- :disabled="buttonDisabled"
- ></u-button>
- </view>
- </slot>
- </view>
- </u-popup>
-</template>
-
-<script>
-import uHeader from './header.vue'
-import uMonth from './month.vue'
-import props from './props.js'
-import util from './util.js'
-import dayjs from '../../libs/util/dayjs.js'
-import Calendar from '../../libs/util/calendar.js'
-/**
- * Calendar 日历
- * @description 此组件用于单个选择日期,范围选择日期等,日历被包裹在底部弹起的容器中.
- * @tutorial https://www.uviewui.com/components/calendar.html
- *
- * @property {String} title 标题内容 (默认 日期选择 )
- * @property {Boolean} showTitle 是否显示标题 (默认 true )
- * @property {Boolean} showSubtitle 是否显示副标题 (默认 true )
- * @property {String} mode 日期类型选择 single-选择单个日期,multiple-可以选择多个日期,range-选择日期范围 ( 默认 'single' )
- * @property {String} startText mode=range时,第一个日期底部的提示文字 (默认 '开始' )
- * @property {String} endText mode=range时,最后一个日期底部的提示文字 (默认 '结束' )
- * @property {Array} customList 自定义列表
- * @property {String} color 主题色,对底部按钮和选中日期有效 (默认 ‘#3c9cff' )
- * @property {String | Number} minDate 最小的可选日期 (默认 0 )
- * @property {String | Number} maxDate 最大可选日期 (默认 0 )
- * @property {Array | String| Date} defaultDate 默认选中的日期,mode为multiple或range是必须为数组格式
- * @property {String | Number} maxCount mode=multiple时,最多可选多少个日期 (默认 Number.MAX_SAFE_INTEGER )
- * @property {String | Number} rowHeight 日期行高 (默认 56 )
- * @property {Function} formatter 日期格式化函数
- * @property {Boolean} showLunar 是否显示农历 (默认 false )
- * @property {Boolean} showMark 是否显示月份背景色 (默认 true )
- * @property {String} confirmText 确定按钮的文字 (默认 '确定' )
- * @property {String} confirmDisabledText 确认按钮处于禁用状态时的文字 (默认 '确定' )
- * @property {Boolean} show 是否显示日历弹窗 (默认 false )
- * @property {Boolean} closeOnClickOverlay 是否允许点击遮罩关闭日历 (默认 false )
- * @property {Boolean} readonly 是否为只读状态,只读状态下禁止选择日期 (默认 false )
- * @property {String | Number} maxRange 日期区间最多可选天数,默认无限制,mode = range时有效
- * @property {String} rangePrompt 范围选择超过最多可选天数时的提示文案,mode = range时有效
- * @property {Boolean} showRangePrompt 范围选择超过最多可选天数时,是否展示提示文案,mode = range时有效 (默认 true )
- * @property {Boolean} allowSameDay 是否允许日期范围的起止时间为同一天,mode = range时有效 (默认 false )
- * @property {Number|String} round 圆角值,默认无圆角 (默认 0 )
- * @property {Number|String} monthNum 最多展示的月份数量 (默认 3 )
- *
- * @event {Function()} confirm 点击确定按钮时触发 选择日期相关的返回参数
- * @event {Function()} close 日历关闭时触发 可定义页面关闭时的回调事件
- * @example <u-calendar :defaultDate="defaultDateMultiple" :show="show" mode="multiple" @confirm="confirm">
- </u-calendar>
- * */
-export default {
- name: 'u-calendar',
- mixins: [uni.$u.mpMixin, uni.$u.mixin, props],
- components: {
- uHeader,
- uMonth
- },
- data() {
- return {
- // 需要显示的月份的数组
- months: [],
- // 在月份滚动区域中,当前视图中月份的index索引
- monthIndex: 0,
- // 月份滚动区域的高度
- listHeight: 0,
- // month组件中选择的日期数组
- selected: [],
- scrollIntoView: '',
- scrollTop:0,
- // 过滤处理方法
- innerFormatter: (value) => value
- }
- },
- watch: {
- selectedChange: {
- immediate: true,
- handler(n) {
- this.setMonth()
- }
- },
- // 打开弹窗时,设置月份数据
- show: {
- immediate: true,
- handler(n) {
- this.setMonth()
- }
- }
- },
- computed: {
- // 由于maxDate和minDate可以为字符串(2021-10-10),或者数值(时间戳),但是dayjs如果接受字符串形式的时间戳会有问题,这里进行处理
- innerMaxDate() {
- return uni.$u.test.number(this.maxDate)
- ? Number(this.maxDate)
- : this.maxDate
- },
- innerMinDate() {
- return uni.$u.test.number(this.minDate)
- ? Number(this.minDate)
- : this.minDate
- },
- // 多个条件的变化,会引起选中日期的变化,这里统一管理监听
- selectedChange() {
- return [this.innerMinDate, this.innerMaxDate, this.defaultDate]
- },
- subtitle() {
- // 初始化时,this.months为空数组,所以需要特别判断处理
- if (this.months.length) {
- return `${this.months[this.monthIndex].year}年${
- this.months[this.monthIndex].month
- }月`
- } else {
- return ''
- }
- },
- buttonDisabled() {
- // 如果为range类型,且选择的日期个数不足1个时,让底部的按钮出于disabled状态
- if (this.mode === 'range') {
- if (this.selected.length <= 1) {
- return true
- } else {
- return false
- }
- } else {
- return false
- }
- }
- },
- mounted() {
- this.start = Date.now()
- this.init()
- },
- methods: {
- // 在微信小程序中,不支持将函数当做props参数,故只能通过ref形式调用
- setFormatter(e) {
- this.innerFormatter = e
- },
- // month组件内部选择日期后,通过事件通知给父组件
- monthSelected(e) {
- this.selected = e
- if (!this.showConfirm) {
- // 在不需要确认按钮的情况下,如果为单选,或者范围多选且已选长度大于2,则直接进行返还
- if (
- this.mode === 'multiple' ||
- this.mode === 'single' ||
- (this.mode === 'range' && this.selected.length >= 2)
- ) {
- this.$emit('confirm', this.selected)
- }
- }
- },
- init() {
- // 校验maxDate,不能小于minDate
- if (
- this.innerMaxDate &&
- this.innerMinDate &&
- new Date(this.innerMaxDate).getTime() < new Date(this.innerMinDate).getTime()
- ) {
- return uni.$u.error('maxDate不能小于minDate')
- }
- // 滚动区域的高度
- this.listHeight = this.rowHeight * 5 + 30
- this.setMonth()
- },
- close() {
- this.$emit('close')
- },
- // 点击确定按钮
- confirm() {
- if (!this.buttonDisabled) {
- this.$emit('confirm', this.selected)
- }
- },
- // 获得两个日期之间的月份数
- getMonths(minDate, maxDate) {
- const minYear = dayjs(minDate).year()
- const minMonth = dayjs(minDate).month() + 1
- const maxYear = dayjs(maxDate).year()
- const maxMonth = dayjs(maxDate).month() + 1
- return (maxYear - minYear) * 12 + (maxMonth - minMonth) + 1
- },
- // 设置月份数据
- setMonth() {
- // 最小日期的毫秒数
- const minDate = this.innerMinDate || dayjs().valueOf()
- // 如果没有指定最大日期,则往后推3个月
- const maxDate =
- this.innerMaxDate ||
- dayjs(minDate)
- .add(this.monthNum - 1, 'month')
- .valueOf()
- // 最大最小月份之间的共有多少个月份,
- const months = uni.$u.range(
- 1,
- this.monthNum,
- this.getMonths(minDate, maxDate)
- )
- // 先清空数组
- this.months = []
- for (let i = 0; i < months; i++) {
- this.months.push({
- date: new Array(
- dayjs(minDate).add(i, 'month').daysInMonth()
- )
- .fill(1)
- .map((item, index) => {
- // 日期,取值1-31
- let day = index + 1
- // 星期,0-6,0为周日
- const week = dayjs(minDate)
- .add(i, 'month')
- .date(day)
- .day()
- const date = dayjs(minDate)
- .add(i, 'month')
- .date(day)
- .format('YYYY-MM-DD')
- let bottomInfo = ''
- if (this.showLunar) {
- // 将日期转为农历格式
- const lunar = Calendar.solar2lunar(
- dayjs(date).year(),
- dayjs(date).month() + 1,
- dayjs(date).date()
- )
- bottomInfo = lunar.IDayCn
- }
- let config = {
- day,
- week,
- // 小于最小允许的日期,或者大于最大的日期,则设置为disabled状态
- disabled:
- dayjs(date).isBefore(
- dayjs(minDate).format('YYYY-MM-DD')
- ) ||
- dayjs(date).isAfter(
- dayjs(maxDate).format('YYYY-MM-DD')
- ),
- // 返回一个日期对象,供外部的formatter获取当前日期的年月日等信息,进行加工处理
- date: new Date(date),
- bottomInfo,
- dot: false,
- month:
- dayjs(minDate).add(i, 'month').month() + 1
- }
- const formatter =
- this.formatter || this.innerFormatter
- return formatter(config)
- }),
- // 当前所属的月份
- month: dayjs(minDate).add(i, 'month').month() + 1,
- // 当前年份
- year: dayjs(minDate).add(i, 'month').year()
- })
- }
-
- },
- // 滚动到默认设置的月份
- scrollIntoDefaultMonth(selected) {
- // 查询默认日期在可选列表的下标
- const _index = this.months.findIndex(({
- year,
- month
- }) => {
- month = uni.$u.padZero(month)
- return `${year}-${month}` === selected
- })
- if (_index !== -1) {
- // #ifndef MP-WEIXIN
- this.$nextTick(() => {
- this.scrollIntoView = `month-${_index}`
- })
- // #endif
- // #ifdef MP-WEIXIN
- this.scrollTop = this.months[_index].top || 0;
- // #endif
- }
- },
- // scroll-view滚动监听
- onScroll(event) {
- // 不允许小于0的滚动值,如果scroll-view到顶了,继续下拉,会出现负数值
- const scrollTop = Math.max(0, event.detail.scrollTop)
- // 将当前滚动条数值,除以滚动区域的高度,可以得出当前滚动到了哪一个月份的索引
- for (let i = 0; i < this.months.length; i++) {
- if (scrollTop >= (this.months[i].top || this.listHeight)) {
- this.monthIndex = i
- }
- }
- },
- // 更新月份的top值
- updateMonthTop(topArr = []) {
- // 设置对应月份的top值,用于onScroll方法更新月份
- topArr.map((item, index) => {
- this.months[index].top = item
- })
-
- // 获取默认日期的下标
- if (!this.defaultDate) {
- // 如果没有设置默认日期,则将当天日期设置为默认选中的日期
- const selected = dayjs().format("YYYY-MM")
- this.scrollIntoDefaultMonth(selected)
- return
- }
- let selected = dayjs().format("YYYY-MM");
- // 单选模式,可以是字符串或数组,Date对象等
- if (!uni.$u.test.array(this.defaultDate)) {
- selected = dayjs(this.defaultDate).format("YYYY-MM")
- } else {
- selected = dayjs(this.defaultDate[0]).format("YYYY-MM");
- }
- this.scrollIntoDefaultMonth(selected)
- }
- }
-}
-</script>
-
-<style lang="scss" scoped>
-@import '../../libs/css/components.scss';
-
-.u-calendar {
- &__confirm {
- padding: 7px 18px;
- }
-}
-</style>
diff --git a/uni_modules/uview-ui/components/u-calendar/util.js b/uni_modules/uview-ui/components/u-calendar/util.js
deleted file mode 100644
index ca4736b..0000000
--- a/uni_modules/uview-ui/components/u-calendar/util.js
+++ /dev/null
@@ -1,85 +0,0 @@
-export default {
- methods: {
- // 设置月份数据
- setMonth() {
- // 月初是周几
- const day = dayjs(this.date).date(1).day()
- const start = day == 0 ? 6 : day - 1
-
- // 本月天数
- const days = dayjs(this.date).endOf('month').format('D')
-
- // 上个月天数
- const prevDays = dayjs(this.date).endOf('month').subtract(1, 'month').format('D')
-
- // 日期数据
- const arr = []
- // 清空表格
- this.month = []
-
- // 添加上月数据
- arr.push(
- ...new Array(start).fill(1).map((e, i) => {
- const day = prevDays - start + i + 1
-
- return {
- value: day,
- disabled: true,
- date: dayjs(this.date).subtract(1, 'month').date(day).format('YYYY-MM-DD')
- }
- })
- )
-
- // 添加本月数据
- arr.push(
- ...new Array(days - 0).fill(1).map((e, i) => {
- const day = i + 1
-
- return {
- value: day,
- date: dayjs(this.date).date(day).format('YYYY-MM-DD')
- }
- })
- )
-
- // 添加下个月
- arr.push(
- ...new Array(42 - days - start).fill(1).map((e, i) => {
- const day = i + 1
-
- return {
- value: day,
- disabled: true,
- date: dayjs(this.date).add(1, 'month').date(day).format('YYYY-MM-DD')
- }
- })
- )
-
- // 分割数组
- for (let n = 0; n < arr.length; n += 7) {
- this.month.push(
- arr.slice(n, n + 7).map((e, i) => {
- e.index = i + n
-
- // 自定义信息
- const custom = this.customList.find((c) => c.date == e.date)
-
- // 农历
- if (this.lunar) {
- const {
- IDayCn,
- IMonthCn
- } = this.getLunar(e.date)
- e.lunar = IDayCn == '初一' ? IMonthCn : IDayCn
- }
-
- return {
- ...e,
- ...custom
- }
- })
- )
- }
- }
- }
-}
diff --git a/uni_modules/uview-ui/components/u-car-keyboard/props.js b/uni_modules/uview-ui/components/u-car-keyboard/props.js
deleted file mode 100644
index 3553647..0000000
--- a/uni_modules/uview-ui/components/u-car-keyboard/props.js
+++ /dev/null
@@ -1,14 +0,0 @@
-export default {
- props: {
- // 是否打乱键盘按键的顺序
- random: {
- type: Boolean,
- default: false
- },
- // 输入一个中文后,是否自动切换到英文
- autoChange: {
- type: Boolean,
- default: false
- }
- }
-}
diff --git a/uni_modules/uview-ui/components/u-car-keyboard/u-car-keyboard.vue b/uni_modules/uview-ui/components/u-car-keyboard/u-car-keyboard.vue
deleted file mode 100644
index 51175b5..0000000
--- a/uni_modules/uview-ui/components/u-car-keyboard/u-car-keyboard.vue
+++ /dev/null
@@ -1,311 +0,0 @@
-<template>
- <view
- class="u-keyboard"
- @touchmove.stop.prevent="noop"
- >
- <view
- v-for="(group, i) in abc ? engKeyBoardList : areaList"
- :key="i"
- class="u-keyboard__button"
- :index="i"
- :class="[i + 1 === 4 && 'u-keyboard__button--center']"
- >
- <view
- v-if="i === 3"
- class="u-keyboard__button__inner-wrapper"
- >
- <view
- class="u-keyboard__button__inner-wrapper__left"
- hover-class="u-hover-class"
- :hover-stay-time="200"
- @tap="changeCarInputMode"
- >
- <text
- class="u-keyboard__button__inner-wrapper__left__lang"
- :class="[!abc && 'u-keyboard__button__inner-wrapper__left__lang--active']"
- >中</text>
- <text class="u-keyboard__button__inner-wrapper__left__line">/</text>
- <text
- class="u-keyboard__button__inner-wrapper__left__lang"
- :class="[abc && 'u-keyboard__button__inner-wrapper__left__lang--active']"
- >英</text>
- </view>
- </view>
- <view
- class="u-keyboard__button__inner-wrapper"
- v-for="(item, j) in group"
- :key="j"
- >
- <view
- class="u-keyboard__button__inner-wrapper__inner"
- :hover-stay-time="200"
- @tap="carInputClick(i, j)"
- hover-class="u-hover-class"
- >
- <text class="u-keyboard__button__inner-wrapper__inner__text">{{ item }}</text>
- </view>
- </view>
- <view
- v-if="i === 3"
- @touchstart="backspaceClick"
- @touchend="clearTimer"
- class="u-keyboard__button__inner-wrapper"
- >
- <view
- class="u-keyboard__button__inner-wrapper__right"
- hover-class="u-hover-class"
- :hover-stay-time="200"
- >
- <u-icon
- size="28"
- name="backspace"
- color="#303133"
- ></u-icon>
- </view>
- </view>
- </view>
- </view>
-</template>
-
-<script>
- import props from './props.js';
- /**
- * keyboard 键盘组件
- * @description 此为uView自定义的键盘面板,内含了数字键盘,车牌号键,身份证号键盘3种模式,都有可以打乱按键顺序的选项。
- * @tutorial https://uviewui.com/components/keyboard.html
- * @property {Boolean} random 是否打乱键盘的顺序
- * @event {Function} change 点击键盘触发
- * @event {Function} backspace 点击退格键触发
- * @example <u-keyboard ref="uKeyboard" mode="car" v-model="show"></u-keyboard>
- */
- export default {
- name: "u-keyboard",
- mixins: [uni.$u.mpMixin, uni.$u.mixin, props],
- data() {
- return {
- // 车牌输入时,abc=true为输入车牌号码,bac=false为输入省份中文简称
- abc: false
- };
- },
- computed: {
- areaList() {
- let data = [
- '京',
- '沪',
- '粤',
- '津',
- '冀',
- '豫',
- '云',
- '辽',
- '黑',
- '湘',
- '皖',
- '鲁',
- '苏',
- '浙',
- '赣',
- '鄂',
- '桂',
- '甘',
- '晋',
- '陕',
- '蒙',
- '吉',
- '闽',
- '贵',
- '渝',
- '川',
- '青',
- '琼',
- '宁',
- '挂',
- '藏',
- '港',
- '澳',
- '新',
- '使',
- '学'
- ];
- let tmp = [];
- // 打乱顺序
- if (this.random) data = uni.$u.randomArray(data);
- // 切割成二维数组
- tmp[0] = data.slice(0, 10);
- tmp[1] = data.slice(10, 20);
- tmp[2] = data.slice(20, 30);
- tmp[3] = data.slice(30, 36);
- return tmp;
- },
- engKeyBoardList() {
- let data = [
- 1,
- 2,
- 3,
- 4,
- 5,
- 6,
- 7,
- 8,
- 9,
- 0,
- 'Q',
- 'W',
- 'E',
- 'R',
- 'T',
- 'Y',
- 'U',
- 'I',
- 'O',
- 'P',
- 'A',
- 'S',
- 'D',
- 'F',
- 'G',
- 'H',
- 'J',
- 'K',
- 'L',
- 'Z',
- 'X',
- 'C',
- 'V',
- 'B',
- 'N',
- 'M'
- ];
- let tmp = [];
- if (this.random) data = uni.$u.randomArray(data);
- tmp[0] = data.slice(0, 10);
- tmp[1] = data.slice(10, 20);
- tmp[2] = data.slice(20, 30);
- tmp[3] = data.slice(30, 36);
- return tmp;
- }
- },
- methods: {
- // 点击键盘按钮
- carInputClick(i, j) {
- let value = '';
- // 不同模式,获取不同数组的值
- if (this.abc) value = this.engKeyBoardList[i][j];
- else value = this.areaList[i][j];
- // 如果允许自动切换,则将中文状态切换为英文
- if (!this.abc && this.autoChange) uni.$u.sleep(200).then(() => this.abc = true)
- this.$emit('change', value);
- },
- // 修改汽车牌键盘的输入模式,中文|英文
- changeCarInputMode() {
- this.abc = !this.abc;
- },
- // 点击退格键
- backspaceClick() {
- this.$emit('backspace');
- clearInterval(this.timer); //再次清空定时器,防止重复注册定时器
- this.timer = null;
- this.timer = setInterval(() => {
- this.$emit('backspace');
- }, 250);
- },
- clearTimer() {
- clearInterval(this.timer);
- this.timer = null;
- },
- }
- };
-</script>
-
-<style lang="scss" scoped>
- @import "../../libs/css/components.scss";
- $u-car-keyboard-background-color: rgb(224, 228, 230) !default;
- $u-car-keyboard-padding:6px 0 6px !default;
- $u-car-keyboard-button-inner-width:64rpx !default;
- $u-car-keyboard-button-inner-background-color:#FFFFFF !default;
- $u-car-keyboard-button-height:80rpx !default;
- $u-car-keyboard-button-inner-box-shadow:0 1px 0px #999992 !default;
- $u-car-keyboard-button-border-radius:4px !default;
- $u-car-keyboard-button-inner-margin:8rpx 5rpx !default;
- $u-car-keyboard-button-text-font-size:16px !default;
- $u-car-keyboard-button-text-color:$u-main-color !default;
- $u-car-keyboard-center-inner-margin: 0 4rpx !default;
- $u-car-keyboard-special-button-width:134rpx !default;
- $u-car-keyboard-lang-font-size:16px !default;
- $u-car-keyboard-lang-color:$u-main-color !default;
- $u-car-keyboard-active-color:$u-primary !default;
- $u-car-keyboard-line-font-size:15px !default;
- $u-car-keyboard-line-color:$u-main-color !default;
- $u-car-keyboard-line-margin:0 1px !default;
- $u-car-keyboard-u-hover-class-background-color:#BBBCC6 !default;
-
- .u-keyboard {
- @include flex(column);
- justify-content: space-around;
- background-color: $u-car-keyboard-background-color;
- align-items: stretch;
- padding: $u-car-keyboard-padding;
-
- &__button {
- @include flex;
- justify-content: center;
- flex: 1;
- /* #ifndef APP-NVUE */
- /* #endif */
-
- &__inner-wrapper {
- box-shadow: $u-car-keyboard-button-inner-box-shadow;
- margin: $u-car-keyboard-button-inner-margin;
- border-radius: $u-car-keyboard-button-border-radius;
-
- &__inner {
- @include flex;
- justify-content: center;
- align-items: center;
- width: $u-car-keyboard-button-inner-width;
- background-color: $u-car-keyboard-button-inner-background-color;
- height: $u-car-keyboard-button-height;
- border-radius: $u-car-keyboard-button-border-radius;
-
- &__text {
- font-size: $u-car-keyboard-button-text-font-size;
- color: $u-car-keyboard-button-text-color;
- }
- }
-
- &__left,
- &__right {
- border-radius: $u-car-keyboard-button-border-radius;
- width: $u-car-keyboard-special-button-width;
- height: $u-car-keyboard-button-height;
- background-color: $u-car-keyboard-u-hover-class-background-color;
- @include flex;
- justify-content: center;
- align-items: center;
- box-shadow: $u-car-keyboard-button-inner-box-shadow;
- }
-
- &__left {
- &__line {
- font-size: $u-car-keyboard-line-font-size;
- color: $u-car-keyboard-line-color;
- margin: $u-car-keyboard-line-margin;
- }
-
- &__lang {
- font-size: $u-car-keyboard-lang-font-size;
- color: $u-car-keyboard-lang-color;
-
- &--active {
- color: $u-car-keyboard-active-color;
- }
- }
- }
- }
- }
- }
-
- .u-hover-class {
- background-color: $u-car-keyboard-u-hover-class-background-color;
- }
-</style>
diff --git a/uni_modules/uview-ui/components/u-cell-group/props.js b/uni_modules/uview-ui/components/u-cell-group/props.js
deleted file mode 100644
index 350ef40..0000000
--- a/uni_modules/uview-ui/components/u-cell-group/props.js
+++ /dev/null
@@ -1,14 +0,0 @@
-export default {
- props: {
- // 分组标题
- title: {
- type: String,
- default: uni.$u.props.cellGroup.title
- },
- // 是否显示外边框
- border: {
- type: Boolean,
- default: uni.$u.props.cellGroup.border
- }
- }
-}
diff --git a/uni_modules/uview-ui/components/u-cell-group/u-cell-group.vue b/uni_modules/uview-ui/components/u-cell-group/u-cell-group.vue
deleted file mode 100644
index a9508c0..0000000
--- a/uni_modules/uview-ui/components/u-cell-group/u-cell-group.vue
+++ /dev/null
@@ -1,61 +0,0 @@
-<template>
- <view :style="[$u.addStyle(customStyle)]" :class="[customClass]" class="u-cell-group">
- <view v-if="title" class="u-cell-group__title">
- <slot name="title">
- <text class="u-cell-group__title__text">{{ title }}</text>
- </slot>
- </view>
- <view class="u-cell-group__wrapper">
- <u-line v-if="border"></u-line>
- <slot />
- </view>
- </view>
-</template>
-
-<script>
- import props from './props.js';
- /**
- * cellGroup 单元格
- * @description cell单元格一般用于一组列表的情况,比如个人中心页,设置页等。
- * @tutorial https://uviewui.com/components/cell.html
- *
- * @property {String} title 分组标题
- * @property {Boolean} border 是否显示外边框 (默认 true )
- * @property {Object} customStyle 定义需要用到的外部样式
- *
- * @event {Function} click 点击cell列表时触发
- * @example <u-cell-group title="设置喜好">
- */
- export default {
- name: 'u-cell-group',
- mixins: [uni.$u.mpMixin, uni.$u.mixin,props],
- }
-</script>
-
-<style lang="scss" scoped>
- @import "../../libs/css/components.scss";
-
- $u-cell-group-title-padding: 16px 16px 8px !default;
- $u-cell-group-title-font-size: 15px !default;
- $u-cell-group-title-line-height: 16px !default;
- $u-cell-group-title-color: $u-main-color !default;
-
- .u-cell-group {
- flex: 1;
-
- &__title {
- padding: $u-cell-group-title-padding;
-
- &__text {
- font-size: $u-cell-group-title-font-size;
- line-height: $u-cell-group-title-line-height;
- color: $u-cell-group-title-color;
- }
- }
-
- &__wrapper {
- position: relative;
- }
- }
-</style>
-
diff --git a/uni_modules/uview-ui/components/u-cell/props.js b/uni_modules/uview-ui/components/u-cell/props.js
deleted file mode 100644
index da03330..0000000
--- a/uni_modules/uview-ui/components/u-cell/props.js
+++ /dev/null
@@ -1,110 +0,0 @@
-export default {
- props: {
- // 标题
- title: {
- type: [String, Number],
- default: uni.$u.props.cell.title
- },
- // 标题下方的描述信息
- label: {
- type: [String, Number],
- default: uni.$u.props.cell.label
- },
- // 右侧的内容
- value: {
- type: [String, Number],
- default: uni.$u.props.cell.value
- },
- // 左侧图标名称,或者图片链接(本地文件建议使用绝对地址)
- icon: {
- type: String,
- default: uni.$u.props.cell.icon
- },
- // 是否禁用cell
- disabled: {
- type: Boolean,
- default: uni.$u.props.cell.disabled
- },
- // 是否显示下边框
- border: {
- type: Boolean,
- default: uni.$u.props.cell.border
- },
- // 内容是否垂直居中(主要是针对右侧的value部分)
- center: {
- type: Boolean,
- default: uni.$u.props.cell.center
- },
- // 点击后跳转的URL地址
- url: {
- type: String,
- default: uni.$u.props.cell.url
- },
- // 链接跳转的方式,内部使用的是uView封装的route方法,可能会进行拦截操作
- linkType: {
- type: String,
- default: uni.$u.props.cell.linkType
- },
- // 是否开启点击反馈(表现为点击时加上灰色背景)
- clickable: {
- type: Boolean,
- default: uni.$u.props.cell.clickable
- },
- // 是否展示右侧箭头并开启点击反馈
- isLink: {
- type: Boolean,
- default: uni.$u.props.cell.isLink
- },
- // 是否显示表单状态下的必填星号(此组件可能会内嵌入input组件)
- required: {
- type: Boolean,
- default: uni.$u.props.cell.required
- },
- // 右侧的图标箭头
- rightIcon: {
- type: String,
- default: uni.$u.props.cell.rightIcon
- },
- // 右侧箭头的方向,可选值为:left,up,down
- arrowDirection: {
- type: String,
- default: uni.$u.props.cell.arrowDirection
- },
- // 左侧图标样式
- iconStyle: {
- type: [Object, String],
- default: () => {
- return uni.$u.props.cell.iconStyle
- }
- },
- // 右侧箭头图标的样式
- rightIconStyle: {
- type: [Object, String],
- default: () => {
- return uni.$u.props.cell.rightIconStyle
- }
- },
- // 标题的样式
- titleStyle: {
- type: [Object, String],
- default: () => {
- return uni.$u.props.cell.titleStyle
- }
- },
- // 单位元的大小,可选值为large
- size: {
- type: String,
- default: uni.$u.props.cell.size
- },
- // 点击cell是否阻止事件传播
- stop: {
- type: Boolean,
- default: uni.$u.props.cell.stop
- },
- // 标识符,cell被点击时返回
- name: {
- type: [Number, String],
- default: uni.$u.props.cell.name
- }
- }
-}
diff --git a/uni_modules/uview-ui/components/u-cell/u-cell.vue b/uni_modules/uview-ui/components/u-cell/u-cell.vue
deleted file mode 100644
index b099c90..0000000
--- a/uni_modules/uview-ui/components/u-cell/u-cell.vue
+++ /dev/null
@@ -1,229 +0,0 @@
-<template>
- <view class="u-cell" :class="[customClass]" :style="[$u.addStyle(customStyle)]"
- :hover-class="(!disabled && (clickable || isLink)) ? 'u-cell--clickable' : ''" :hover-stay-time="250"
- @tap="clickHandler">
- <view class="u-cell__body" :class="[ center && 'u-cell--center', size === 'large' && 'u-cell__body--large']">
- <view class="u-cell__body__content">
- <view class="u-cell__left-icon-wrap" v-if="$slots.icon || icon">
- <slot name="icon" v-if="$slots.icon">
- </slot>
- <u-icon v-else :name="icon" :custom-style="iconStyle" :size="size === 'large' ? 22 : 18"></u-icon>
- </view>
- <view class="u-cell__title">
- <slot name="title">
- <text v-if="title" class="u-cell__title-text" :style="[titleTextStyle]"
- :class="[disabled && 'u-cell--disabled', size === 'large' && 'u-cell__title-text--large']">{{ title }}</text>
- </slot>
- <slot name="label">
- <text class="u-cell__label" v-if="label"
- :class="[disabled && 'u-cell--disabled', size === 'large' && 'u-cell__label--large']">{{ label }}</text>
- </slot>
- </view>
- </view>
- <slot name="value">
- <text class="u-cell__value"
- :class="[disabled && 'u-cell--disabled', size === 'large' && 'u-cell__value--large']"
- v-if="!$u.test.empty(value)">{{ value }}</text>
- </slot>
- <view class="u-cell__right-icon-wrap" v-if="$slots['right-icon'] || isLink"
- :class="[`u-cell__right-icon-wrap--${arrowDirection}`]">
- <slot name="right-icon" v-if="$slots['right-icon']">
- </slot>
- <u-icon v-else :name="rightIcon" :custom-style="rightIconStyle" :color="disabled ? '#c8c9cc' : 'info'"
- :size="size === 'large' ? 18 : 16"></u-icon>
- </view>
- </view>
- <u-line v-if="border"></u-line>
- </view>
-</template>
-
-<script>
- import props from './props.js';
- /**
- * cell 单元格
- * @description cell单元格一般用于一组列表的情况,比如个人中心页,设置页等。
- * @tutorial https://uviewui.com/components/cell.html
- * @property {String | Number} title 标题
- * @property {String | Number} label 标题下方的描述信息
- * @property {String | Number} value 右侧的内容
- * @property {String} icon 左侧图标名称,或者图片链接(本地文件建议使用绝对地址)
- * @property {Boolean} disabled 是否禁用cell
- * @property {Boolean} border 是否显示下边框 (默认 true )
- * @property {Boolean} center 内容是否垂直居中(主要是针对右侧的value部分) (默认 false )
- * @property {String} url 点击后跳转的URL地址
- * @property {String} linkType 链接跳转的方式,内部使用的是uView封装的route方法,可能会进行拦截操作 (默认 'navigateTo' )
- * @property {Boolean} clickable 是否开启点击反馈(表现为点击时加上灰色背景) (默认 false )
- * @property {Boolean} isLink 是否展示右侧箭头并开启点击反馈 (默认 false )
- * @property {Boolean} required 是否显示表单状态下的必填星号(此组件可能会内嵌入input组件) (默认 false )
- * @property {String} rightIcon 右侧的图标箭头 (默认 'arrow-right')
- * @property {String} arrowDirection 右侧箭头的方向,可选值为:left,up,down
- * @property {Object | String} rightIconStyle 右侧箭头图标的样式
- * @property {Object | String} titleStyle 标题的样式
- * @property {Object | String} iconStyle 左侧图标样式
- * @property {String} size 单位元的大小,可选值为 large,normal,mini
- * @property {Boolean} stop 点击cell是否阻止事件传播 (默认 true )
- * @property {Object} customStyle 定义需要用到的外部样式
- *
- * @event {Function} click 点击cell列表时触发
- * @example 该组件需要搭配cell-group组件使用,见官方文档示例
- */
- export default {
- name: 'u-cell',
- data() {
- return {
-
- }
- },
- mixins: [uni.$u.mpMixin, uni.$u.mixin, props],
- computed: {
- titleTextStyle() {
- return uni.$u.addStyle(this.titleStyle)
- }
- },
- methods: {
- // 点击cell
- clickHandler(e) {
- if (this.disabled) return
- this.$emit('click', {
- name: this.name
- })
- // 如果配置了url(此props参数通过mixin引入)参数,跳转页面
- this.openPage()
- // 是否阻止事件传播
- this.stop && this.preventEvent(e)
- },
- }
- }
-</script>
-
-<style lang="scss" scoped>
- @import "../../libs/css/components.scss";
-
- $u-cell-padding: 10px 15px !default;
- $u-cell-font-size: 15px !default;
- $u-cell-line-height: 24px !default;
- $u-cell-color: $u-main-color !default;
- $u-cell-icon-size: 16px !default;
- $u-cell-title-font-size: 15px !default;
- $u-cell-title-line-height: 22px !default;
- $u-cell-title-color: $u-main-color !default;
- $u-cell-label-font-size: 12px !default;
- $u-cell-label-color: $u-tips-color !default;
- $u-cell-label-line-height: 18px !default;
- $u-cell-value-font-size: 14px !default;
- $u-cell-value-color: $u-content-color !default;
- $u-cell-clickable-color: $u-bg-color !default;
- $u-cell-disabled-color: #c8c9cc !default;
- $u-cell-padding-top-large: 13px !default;
- $u-cell-padding-bottom-large: 13px !default;
- $u-cell-value-font-size-large: 15px !default;
- $u-cell-label-font-size-large: 14px !default;
- $u-cell-title-font-size-large: 16px !default;
- $u-cell-left-icon-wrap-margin-right: 4px !default;
- $u-cell-right-icon-wrap-margin-left: 4px !default;
- $u-cell-title-flex:1 !default;
- $u-cell-label-margin-top:5px !default;
-
-
- .u-cell {
- &__body {
- @include flex();
- /* #ifndef APP-NVUE */
- box-sizing: border-box;
- /* #endif */
- padding: $u-cell-padding;
- font-size: $u-cell-font-size;
- color: $u-cell-color;
- // line-height: $u-cell-line-height;
- align-items: center;
-
- &__content {
- @include flex(row);
- align-items: center;
- flex: 1;
- }
-
- &--large {
- padding-top: $u-cell-padding-top-large;
- padding-bottom: $u-cell-padding-bottom-large;
- }
- }
-
- &__left-icon-wrap,
- &__right-icon-wrap {
- @include flex();
- align-items: center;
- // height: $u-cell-line-height;
- font-size: $u-cell-icon-size;
- }
-
- &__left-icon-wrap {
- margin-right: $u-cell-left-icon-wrap-margin-right;
- }
-
- &__right-icon-wrap {
- margin-left: $u-cell-right-icon-wrap-margin-left;
- transition: transform 0.3s;
-
- &--up {
- transform: rotate(-90deg);
- }
-
- &--down {
- transform: rotate(90deg);
- }
- }
-
- &__title {
- flex: $u-cell-title-flex;
-
- &-text {
- font-size: $u-cell-title-font-size;
- line-height: $u-cell-title-line-height;
- color: $u-cell-title-color;
-
- &--large {
- font-size: $u-cell-title-font-size-large;
- }
- }
-
- }
-
- &__label {
- margin-top: $u-cell-label-margin-top;
- font-size: $u-cell-label-font-size;
- color: $u-cell-label-color;
- line-height: $u-cell-label-line-height;
-
- &--large {
- font-size: $u-cell-label-font-size-large;
- }
- }
-
- &__value {
- text-align: right;
- font-size: $u-cell-value-font-size;
- line-height: $u-cell-line-height;
- color: $u-cell-value-color;
-
- &--large {
- font-size: $u-cell-value-font-size-large;
- }
- }
-
- &--clickable {
- background-color: $u-cell-clickable-color;
- }
-
- &--disabled {
- color: $u-cell-disabled-color;
- /* #ifndef APP-NVUE */
- cursor: not-allowed;
- /* #endif */
- }
-
- &--center {
- align-items: center;
- }
- }
-</style>
diff --git a/uni_modules/uview-ui/components/u-checkbox-group/props.js b/uni_modules/uview-ui/components/u-checkbox-group/props.js
deleted file mode 100644
index 2f818a1..0000000
--- a/uni_modules/uview-ui/components/u-checkbox-group/props.js
+++ /dev/null
@@ -1,82 +0,0 @@
-export default {
- props: {
- // 标识符
- name: {
- type: String,
- default: uni.$u.props.checkboxGroup.name
- },
- // 绑定的值
- value: {
- type: Array,
- default: uni.$u.props.checkboxGroup.value
- },
- // 形状,circle-圆形,square-方形
- shape: {
- type: String,
- default: uni.$u.props.checkboxGroup.shape
- },
- // 是否禁用全部checkbox
- disabled: {
- type: Boolean,
- default: uni.$u.props.checkboxGroup.disabled
- },
-
- // 选中状态下的颜色,如设置此值,将会覆盖parent的activeColor值
- activeColor: {
- type: String,
- default: uni.$u.props.checkboxGroup.activeColor
- },
- // 未选中的颜色
- inactiveColor: {
- type: String,
- default: uni.$u.props.checkboxGroup.inactiveColor
- },
-
- // 整个组件的尺寸,默认px
- size: {
- type: [String, Number],
- default: uni.$u.props.checkboxGroup.size
- },
- // 布局方式,row-横向,column-纵向
- placement: {
- type: String,
- default: uni.$u.props.checkboxGroup.placement
- },
- // label的字体大小,px单位
- labelSize: {
- type: [String, Number],
- default: uni.$u.props.checkboxGroup.labelSize
- },
- // label的字体颜色
- labelColor: {
- type: [String],
- default: uni.$u.props.checkboxGroup.labelColor
- },
- // 是否禁止点击文本操作
- labelDisabled: {
- type: Boolean,
- default: uni.$u.props.checkboxGroup.labelDisabled
- },
- // 图标颜色
- iconColor: {
- type: String,
- default: uni.$u.props.checkboxGroup.iconColor
- },
- // 图标的大小,单位px
- iconSize: {
- type: [String, Number],
- default: uni.$u.props.checkboxGroup.iconSize
- },
- // 勾选图标的对齐方式,left-左边,right-右边
- iconPlacement: {
- type: String,
- default: uni.$u.props.checkboxGroup.iconPlacement
- },
- // 竖向配列时,是否显示下划线
- borderBottom: {
- type: Boolean,
- default: uni.$u.props.checkboxGroup.borderBottom
- }
-
- }
-}
diff --git a/uni_modules/uview-ui/components/u-checkbox-group/u-checkbox-group.vue b/uni_modules/uview-ui/components/u-checkbox-group/u-checkbox-group.vue
deleted file mode 100644
index 7a6b4fa..0000000
--- a/uni_modules/uview-ui/components/u-checkbox-group/u-checkbox-group.vue
+++ /dev/null
@@ -1,103 +0,0 @@
-<template>
- <view
- class="u-checkbox-group"
- :class="bemClass"
- >
- <slot></slot>
- </view>
-</template>
-
-<script>
- import props from './props.js';
- /**
- * checkboxGroup 复选框组
- * @description 复选框组件一般用于需要多个选择的场景,该组件功能完整,使用方便
- * @tutorial https://www.uviewui.com/components/checkbox.html
- * @property {String} name 标识符
- * @property {Array} value 绑定的值
- * @property {String} shape 形状,circle-圆形,square-方形 (默认 'square' )
- * @property {Boolean} disabled 是否禁用全部checkbox (默认 false )
- * @property {String} activeColor 选中状态下的颜色,如设置此值,将会覆盖parent的activeColor值 (默认 '#2979ff' )
- * @property {String} inactiveColor 未选中的颜色 (默认 '#c8c9cc' )
- * @property {String | Number} size 整个组件的尺寸 单位px (默认 18 )
- * @property {String} placement 布局方式,row-横向,column-纵向 (默认 'row' )
- * @property {String | Number} labelSize label的字体大小,px单位 (默认 14 )
- * @property {String} labelColor label的字体颜色 (默认 '#303133' )
- * @property {Boolean} labelDisabled 是否禁止点击文本操作 (默认 false )
- * @property {String} iconColor 图标颜色 (默认 '#ffffff' )
- * @property {String | Number} iconSize 图标的大小,单位px (默认 12 )
- * @property {String} iconPlacement 勾选图标的对齐方式,left-左边,right-右边 (默认 'left' )
- * @property {Boolean} borderBottom placement为row时,是否显示下边框 (默认 false )
- * @event {Function} change 任一个checkbox状态发生变化时触发,回调为一个对象
- * @event {Function} input 修改通过v-model绑定的值时触发,回调为一个对象
- * @example <u-checkbox-group></u-checkbox-group>
- */
- export default {
- name: 'u-checkbox-group',
- mixins: [uni.$u.mpMixin, uni.$u.mixin,props],
- computed: {
- // 这里computed的变量,都是子组件u-checkbox需要用到的,由于头条小程序的兼容性差异,子组件无法实时监听父组件参数的变化
- // 所以需要手动通知子组件,这里返回一个parentData变量,供watch监听,在其中去通知每一个子组件重新从父组件(u-checkbox-group)
- // 拉取父组件新的变化后的参数
- parentData() {
- return [this.value, this.disabled, this.inactiveColor, this.activeColor, this.size, this.labelDisabled, this.shape,
- this.iconSize, this.borderBottom, this.placement
- ]
- },
- bemClass() {
- // this.bem为一个computed变量,在mixin中
- return this.bem('checkbox-group', ['placement'])
- },
- },
- watch: {
- // 当父组件需要子组件需要共享的参数发生了变化,手动通知子组件
- parentData() {
- if (this.children.length) {
- this.children.map(child => {
- // 判断子组件(u-checkbox)如果有init方法的话,就就执行(执行的结果是子组件重新从父组件拉取了最新的值)
- typeof(child.init) === 'function' && child.init()
- })
- }
- },
- },
- data() {
- return {
-
- }
- },
- created() {
- this.children = []
- },
- methods: {
- // 将其他的checkbox设置为未选中的状态
- unCheckedOther(childInstance) {
- const values = []
- this.children.map(child => {
- // 将被选中的checkbox,放到数组中返回
- if (child.isChecked) {
- values.push(child.name)
- }
- })
- // 发出事件
- this.$emit('change', values)
- // 修改通过v-model绑定的值
- this.$emit('input', values)
- },
- }
- }
-</script>
-
-<style lang="scss" scoped>
- @import "../../libs/css/components.scss";
-
- .u-checkbox-group {
-
- &--row {
- @include flex;
- }
-
- &--column {
- @include flex(column);
- }
- }
-</style>
diff --git a/uni_modules/uview-ui/components/u-checkbox/props.js b/uni_modules/uview-ui/components/u-checkbox/props.js
deleted file mode 100644
index 93f4fd9..0000000
--- a/uni_modules/uview-ui/components/u-checkbox/props.js
+++ /dev/null
@@ -1,69 +0,0 @@
-export default {
- props: {
- // checkbox的名称
- name: {
- type: [String, Number, Boolean],
- default: uni.$u.props.checkbox.name
- },
- // 形状,square为方形,circle为圆型
- shape: {
- type: String,
- default: uni.$u.props.checkbox.shape
- },
- // 整体的大小
- size: {
- type: [String, Number],
- default: uni.$u.props.checkbox.size
- },
- // 是否默认选中
- checked: {
- type: Boolean,
- default: uni.$u.props.checkbox.checked
- },
- // 是否禁用
- disabled: {
- type: [String, Boolean],
- default: uni.$u.props.checkbox.disabled
- },
- // 选中状态下的颜色,如设置此值,将会覆盖parent的activeColor值
- activeColor: {
- type: String,
- default: uni.$u.props.checkbox.activeColor
- },
- // 未选中的颜色
- inactiveColor: {
- type: String,
- default: uni.$u.props.checkbox.inactiveColor
- },
- // 图标的大小,单位px
- iconSize: {
- type: [String, Number],
- default: uni.$u.props.checkbox.iconSize
- },
- // 图标颜色
- iconColor: {
- type: String,
- default: uni.$u.props.checkbox.iconColor
- },
- // label提示文字,因为nvue下,直接slot进来的文字,由于特殊的结构,无法修改样式
- label: {
- type: [String, Number],
- default: uni.$u.props.checkbox.label
- },
- // label的字体大小,px单位
- labelSize: {
- type: [String, Number],
- default: uni.$u.props.checkbox.labelSize
- },
- // label的颜色
- labelColor: {
- type: String,
- default: uni.$u.props.checkbox.labelColor
- },
- // 是否禁止点击提示语选中复选框
- labelDisabled: {
- type: [String, Boolean],
- default: uni.$u.props.checkbox.labelDisabled
- }
- }
-}
diff --git a/uni_modules/uview-ui/components/u-checkbox/u-checkbox.vue b/uni_modules/uview-ui/components/u-checkbox/u-checkbox.vue
deleted file mode 100644
index 6429cca..0000000
--- a/uni_modules/uview-ui/components/u-checkbox/u-checkbox.vue
+++ /dev/null
@@ -1,344 +0,0 @@
-<template>
- <view
- class="u-checkbox"
- :style="[checkboxStyle]"
- @tap.stop="wrapperClickHandler"
- :class="[`u-checkbox-label--${parentData.iconPlacement}`, parentData.borderBottom && parentData.placement === 'column' && 'u-border-bottom']"
- >
- <view
- class="u-checkbox__icon-wrap"
- @tap.stop="iconClickHandler"
- :class="iconClasses"
- :style="[iconWrapStyle]"
- >
- <slot name="icon">
- <u-icon
- class="u-checkbox__icon-wrap__icon"
- name="checkbox-mark"
- :size="elIconSize"
- :color="elIconColor"
- />
- </slot>
- </view>
- <text
- @tap.stop="labelClickHandler"
- :style="{
- color: elDisabled ? elInactiveColor : elLabelColor,
- fontSize: elLabelSize,
- lineHeight: elLabelSize
- }"
- >{{label}}</text>
- </view>
-</template>
-
-<script>
- import props from './props.js';
- /**
- * checkbox 复选框
- * @description 复选框组件一般用于需要多个选择的场景,该组件功能完整,使用方便
- * @tutorial https://uviewui.com/components/checkbox.html
- * @property {String | Number | Boolean} name checkbox组件的标示符
- * @property {String} shape 形状,square为方形,circle为圆型
- * @property {String | Number} size 整体的大小
- * @property {Boolean} checked 是否默认选中
- * @property {String | Boolean} disabled 是否禁用
- * @property {String} activeColor 选中状态下的颜色,如设置此值,将会覆盖parent的activeColor值
- * @property {String} inactiveColor 未选中的颜色
- * @property {String | Number} iconSize 图标的大小,单位px
- * @property {String} iconColor 图标颜色
- * @property {String | Number} label label提示文字,因为nvue下,直接slot进来的文字,由于特殊的结构,无法修改样式
- * @property {String} labelColor label的颜色
- * @property {String | Number} labelSize label的字体大小,px单位
- * @property {String | Boolean} labelDisabled 是否禁止点击提示语选中复选框
- * @property {Object} customStyle 定义需要用到的外部样式
- *
- * @event {Function} change 任一个checkbox状态发生变化时触发,回调为一个对象
- * @example <u-checkbox v-model="checked" :disabled="false">天涯</u-checkbox>
- */
- export default {
- name: "u-checkbox",
- mixins: [uni.$u.mpMixin, uni.$u.mixin,props],
- data() {
- return {
- isChecked: false,
- // 父组件的默认值,因为头条小程序不支持在computed中使用this.parent.shape的形式
- // 故只能使用如此方法
- parentData: {
- iconSize: 12,
- labelDisabled: null,
- disabled: null,
- shape: 'square',
- activeColor: null,
- inactiveColor: null,
- size: 18,
- value: null,
- iconColor: null,
- placement: 'row',
- borderBottom: false,
- iconPlacement: 'left'
- }
- }
- },
- computed: {
- // 是否禁用,如果父组件u-raios-group禁用的话,将会忽略子组件的配置
- elDisabled() {
- return this.disabled !== '' ? this.disabled : this.parentData.disabled !== null ? this.parentData.disabled : false;
- },
- // 是否禁用label点击
- elLabelDisabled() {
- return this.labelDisabled !== '' ? this.labelDisabled : this.parentData.labelDisabled !== null ? this.parentData.labelDisabled :
- false;
- },
- // 组件尺寸,对应size的值,默认值为21px
- elSize() {
- return this.size ? this.size : (this.parentData.size ? this.parentData.size : 21);
- },
- // 组件的勾选图标的尺寸,默认12px
- elIconSize() {
- return this.iconSize ? this.iconSize : (this.parentData.iconSize ? this.parentData.iconSize : 12);
- },
- // 组件选中激活时的颜色
- elActiveColor() {
- return this.activeColor ? this.activeColor : (this.parentData.activeColor ? this.parentData.activeColor : '#2979ff');
- },
- // 组件选未中激活时的颜色
- elInactiveColor() {
- return this.inactiveColor ? this.inactiveColor : (this.parentData.inactiveColor ? this.parentData.inactiveColor :
- '#c8c9cc');
- },
- // label的颜色
- elLabelColor() {
- return this.labelColor ? this.labelColor : (this.parentData.labelColor ? this.parentData.labelColor : '#606266')
- },
- // 组件的形状
- elShape() {
- return this.shape ? this.shape : (this.parentData.shape ? this.parentData.shape : 'circle');
- },
- // label大小
- elLabelSize() {
- return uni.$u.addUnit(this.labelSize ? this.labelSize : (this.parentData.labelSize ? this.parentData.labelSize :
- '15'))
- },
- elIconColor() {
- const iconColor = this.iconColor ? this.iconColor : (this.parentData.iconColor ? this.parentData.iconColor :
- '#ffffff');
- // 图标的颜色
- if (this.elDisabled) {
- // disabled状态下,已勾选的checkbox图标改为elInactiveColor
- return this.isChecked ? this.elInactiveColor : 'transparent'
- } else {
- return this.isChecked ? iconColor : 'transparent'
- }
- },
- iconClasses() {
- let classes = []
- // 组件的形状
- classes.push('u-checkbox__icon-wrap--' + this.elShape)
- if (this.elDisabled) {
- classes.push('u-checkbox__icon-wrap--disabled')
- }
- if (this.isChecked && this.elDisabled) {
- classes.push('u-checkbox__icon-wrap--disabled--checked')
- }
- // 支付宝,头条小程序无法动态绑定一个数组类名,否则解析出来的结果会带有",",而导致失效
- // #ifdef MP-ALIPAY || MP-TOUTIAO
- classes = classes.join(' ')
- // #endif
- return classes
- },
- iconWrapStyle() {
- // checkbox的整体样式
- const style = {}
- style.backgroundColor = this.isChecked && !this.elDisabled ? this.elActiveColor : '#ffffff'
- style.borderColor = this.isChecked && !this.elDisabled ? this.elActiveColor : this.elInactiveColor
- style.width = uni.$u.addUnit(this.elSize)
- style.height = uni.$u.addUnit(this.elSize)
- // 如果是图标在右边的话,移除它的右边距
- if (this.parentData.iconPlacement === 'right') {
- style.marginRight = 0
- }
- return style
- },
- checkboxStyle() {
- const style = {}
- if (this.parentData.borderBottom && this.parentData.placement === 'row') {
- uni.$u.error('检测到您将borderBottom设置为true,需要同时将u-checkbox-group的placement设置为column才有效')
- }
- // 当父组件设置了显示下边框并且排列形式为纵向时,给内容和边框之间加上一定间隔
- if (this.parentData.borderBottom && this.parentData.placement === 'column') {
- style.paddingBottom = '8px'
- }
- return uni.$u.deepMerge(style, uni.$u.addStyle(this.customStyle))
- }
- },
- mounted() {
- this.init()
- },
- methods: {
- init() {
- // 支付宝小程序不支持provide/inject,所以使用这个方法获取整个父组件,在created定义,避免循环引用
- this.updateParentData()
- if (!this.parent) {
- uni.$u.error('u-checkbox必须搭配u-checkbox-group组件使用')
- }
- // 设置初始化时,是否默认选中的状态,父组件u-checkbox-group的value可能是array,所以额外判断
- if (this.checked) {
- this.isChecked = true
- } else if (uni.$u.test.array(this.parentData.value)) {
- // 查找数组是是否存在this.name元素值
- this.isChecked = this.parentData.value.some(item => {
- return item === this.name
- })
- }
- },
- updateParentData() {
- this.getParentData('u-checkbox-group')
- },
- // 横向两端排列时,点击组件即可触发选中事件
- wrapperClickHandler(e) {
- this.parentData.iconPlacement === 'right' && this.iconClickHandler(e)
- },
- // 点击图标
- iconClickHandler(e) {
- this.preventEvent(e)
- // 如果整体被禁用,不允许被点击
- if (!this.elDisabled) {
- this.setRadioCheckedStatus()
- }
- },
- // 点击label
- labelClickHandler(e) {
- this.preventEvent(e)
- // 如果按钮整体被禁用或者label被禁用,则不允许点击文字修改状态
- if (!this.elLabelDisabled && !this.elDisabled) {
- this.setRadioCheckedStatus()
- }
- },
- emitEvent() {
- this.$emit('change', this.isChecked)
- // 尝试调用u-form的验证方法,进行一定延迟,否则微信小程序更新可能会不及时
- this.$nextTick(() => {
- uni.$u.formValidate(this, 'change')
- })
- },
- // 改变组件选中状态
- // 这里的改变的依据是,更改本组件的checked值为true,同时通过父组件遍历所有u-checkbox实例
- // 将本组件外的其他u-checkbox的checked都设置为false(都被取消选中状态),因而只剩下一个为选中状态
- setRadioCheckedStatus() {
- // 将本组件标记为与原来相反的状态
- this.isChecked = !this.isChecked
- this.emitEvent()
- typeof this.parent.unCheckedOther === 'function' && this.parent.unCheckedOther(this)
- }
- },
- watch:{
- checked(){
- this.isChecked = this.checked
- }
- }
- }
-</script>
-
-<style lang="scss" scoped>
- @import "../../libs/css/components.scss";
- $u-checkbox-icon-wrap-margin-right:6px !default;
- $u-checkbox-icon-wrap-font-size:6px !default;
- $u-checkbox-icon-wrap-border-width:1px !default;
- $u-checkbox-icon-wrap-border-color:#c8c9cc !default;
- $u-checkbox-icon-wrap-icon-line-height:0 !default;
- $u-checkbox-icon-wrap-circle-border-radius:100% !default;
- $u-checkbox-icon-wrap-square-border-radius:3px !default;
- $u-checkbox-icon-wrap-checked-color:#fff !default;
- $u-checkbox-icon-wrap-checked-background-color:red !default;
- $u-checkbox-icon-wrap-checked-border-color:#2979ff !default;
- $u-checkbox-icon-wrap-disabled-background-color:#ebedf0 !default;
- $u-checkbox-icon-wrap-disabled-checked-color:#c8c9cc !default;
- $u-checkbox-label-margin-left:5px !default;
- $u-checkbox-label-margin-right:12px !default;
- $u-checkbox-label-color:$u-content-color !default;
- $u-checkbox-label-font-size:15px !default;
- $u-checkbox-label-disabled-color:#c8c9cc !default;
-
- .u-checkbox {
- /* #ifndef APP-NVUE */
- @include flex(row);
- /* #endif */
- overflow: hidden;
- flex-direction: row;
- align-items: center;
-
- &-label--left {
- flex-direction: row
- }
-
- &-label--right {
- flex-direction: row-reverse;
- justify-content: space-between
- }
-
- &__icon-wrap {
- /* #ifndef APP-NVUE */
- box-sizing: border-box;
- // nvue下,border-color过渡有问题
- transition-property: border-color, background-color, color;
- transition-duration: 0.2s;
- /* #endif */
- color: $u-content-color;
- @include flex;
- align-items: center;
- justify-content: center;
- color: transparent;
- text-align: center;
- margin-right: $u-checkbox-icon-wrap-margin-right;
-
- font-size: $u-checkbox-icon-wrap-font-size;
- border-width: $u-checkbox-icon-wrap-border-width;
- border-color: $u-checkbox-icon-wrap-border-color;
- border-style: solid;
-
- /* #ifdef MP-TOUTIAO */
- // 头条小程序兼容性问题,需要设置行高为0,否则图标偏下
- &__icon {
- line-height: $u-checkbox-icon-wrap-icon-line-height;
- }
-
- /* #endif */
-
- &--circle {
- border-radius: $u-checkbox-icon-wrap-circle-border-radius;
- }
-
- &--square {
- border-radius: $u-checkbox-icon-wrap-square-border-radius;
- }
-
- &--checked {
- color: $u-checkbox-icon-wrap-checked-color;
- background-color: $u-checkbox-icon-wrap-checked-background-color;
- border-color: $u-checkbox-icon-wrap-checked-border-color;
- }
-
- &--disabled {
- background-color: $u-checkbox-icon-wrap-disabled-background-color !important;
- }
-
- &--disabled--checked {
- color: $u-checkbox-icon-wrap-disabled-checked-color !important;
- }
- }
-
- &__label {
- /* #ifndef APP-NVUE */
- word-wrap: break-word;
- /* #endif */
- margin-left: $u-checkbox-label-margin-left;
- margin-right: $u-checkbox-label-margin-right;
- color: $u-checkbox-label-color;
- font-size: $u-checkbox-label-font-size;
-
- &--disabled {
- color: $u-checkbox-label-disabled-color;
- }
- }
- }
-</style>
diff --git a/uni_modules/uview-ui/components/u-circle-progress/props.js b/uni_modules/uview-ui/components/u-circle-progress/props.js
deleted file mode 100644
index d776cfb..0000000
--- a/uni_modules/uview-ui/components/u-circle-progress/props.js
+++ /dev/null
@@ -1,8 +0,0 @@
-export default {
- props: {
- percentage: {
- type: [String, Number],
- default: uni.$u.props.circleProgress.percentage
- }
- }
-}
diff --git a/uni_modules/uview-ui/components/u-circle-progress/u-circle-progress.vue b/uni_modules/uview-ui/components/u-circle-progress/u-circle-progress.vue
deleted file mode 100644
index d1ee286..0000000
--- a/uni_modules/uview-ui/components/u-circle-progress/u-circle-progress.vue
+++ /dev/null
@@ -1,198 +0,0 @@
-<template>
- <view class="u-circle-progress">
- <view class="u-circle-progress__left">
- <view
- class="u-circle-progress__left__circle"
- :style="[leftSyle]"
- ref="left-circle"
- >
-
- </view>
- </view>
- <view
- class="u-circle-progress__right"
- >
- <view
- class="u-circle-progress__right__circle"
- ref="right-circle"
- :style="[rightSyle]"
- >
-
- </view>
- </view>
- <view class="u-circle-progress__circle">
-
- </view>
- </view>
-</template>
-
-<script>
- import props from './props.js';
- // #ifdef APP-NVUE
- const animation = uni.requireNativePlugin('animation')
- // #endif
- /**
- * CircleProgress 圆形进度条 TODO: 待完善
- * @description 展示操作或任务的当前进度,比如上传文件,是一个圆形的进度环。
- * @tutorial https://www.uviewui.com/components/circleProgress.html
- * @property {String | Number} percentage 圆环进度百分比值,为数值类型,0-100 (默认 30 )
- * @example
- */
- export default {
- name: 'u-circle-progress',
- mixins: [uni.$u.mpMixin, uni.$u.mixin,props],
- data() {
- return {
- leftBorderColor: 'rgb(200, 200, 200)',
- rightBorderColor: 'rgb(200, 200, 200)',
- }
- },
- computed: {
- leftSyle() {
- const style = {}
- style.borderTopColor = this.leftBorderColor
- style.borderRightColor = this.leftBorderColor
- return style
- },
- rightSyle() {
- const style = {}
- style.borderLeftColor = this.rightBorderColor
- style.borderBottomColor = this.rightBorderColor
- return style
- }
- },
- mounted() {
- uni.$u.sleep().then(() => {
- this.rightBorderColor = 'rgb(66, 185, 131)'
- // this.init()
- })
- },
- methods: {
- init() {
- animation.transition(this.$refs['right-circle'].ref, {
- styles: {
- transform: 'rotate(45deg)',
- transformOrigin: 'center center'
- },
- }, () => {
- this.rightBorderColor = 'rgb(66, 185, 131)'
- // animation.transition(this.$refs['right-circle'].ref, {
- // styles: {
- // transform: 'rotate(225deg)',
- // transformOrigin: 'center center'
- // },
- // duration: 3000,
- // }, () => {
- // animation.transition(this.$refs['left-circle'].ref, {
- // styles: {
- // transform: 'rotate(45deg)',
- // transformOrigin: 'center center'
- // },
- // }, () => {
- // this.leftBorderColor = 'rgb(66, 185, 131)'
- // animation.transition(this.$refs['left-circle'].ref, {
- // styles: {
- // transform: 'rotate(225deg)',
- // transformOrigin: 'center center'
- // },
- // duration: 1500,
- // }, () => {
-
- // })
- // })
- // })
- })
-
- }
- },
- }
-</script>
-
-<style lang="scss" scoped>
- @import "../../libs/css/components.scss";
-
- .u-circle-progress {
- @include flex(row);
- position: relative;
- border-radius: 100px;
- height: 100px;
- width: 100px;
- // transform: rotate(0deg);
- // background-color: rgb(66, 185, 131);
- background-color: rgb(200, 200, 200);
- overflow: hidden;
- justify-content: space-between;
-
- &__circle {
- border-radius: 100px;
- height: 90px;
- width: 90px;
- transform: translate(-50%, -50%);
- background-color: rgb(255, 255, 255);
- left: 50px;
- top: 50px;
- position: absolute;
- }
-
- &__left {
- position: absolute;
- left: 0;
- width: 50px;
- height: 100px;
- overflow: hidden;
- box-sizing: border-box;
- // background-color: rgb(66, 185, 131);
- // background-color: rgb(200, 200, 200);
- // transform-origin: left center;
-
- &__circle {
- box-sizing: border-box;
- // background-color: red;
- border-left-color: transparent;
- border-bottom-color: transparent;
- border-top-left-radius: 50px;
- border-top-right-radius: 50px;
- border-bottom-right-radius: 50px;
- // border-left-color: rgb(66, 185, 131);
- // border-bottom-color: rgb(66, 185, 131);
- border-top-color: rgb(66, 185, 131);
- border-right-color: rgb(66, 185, 131);
- border-width: 5px;
- width: 100px;
- height: 100px;
- transform: rotate(225deg);
- // border-radius: 100px;
- }
- }
-
- &__right {
- position: absolute;
- right: 0;
- width: 50px;
- height: 100px;
- overflow: hidden;
-
- &__circle {
- position: absolute;
- right: 0;
- box-sizing: border-box;
- // background-color: red;
- border-top-color: transparent;
- border-right-color: transparent;
- border-top-left-radius: 50px;
- border-bottom-left-radius: 50px;
- border-bottom-right-radius: 50px;
- // border-left-color: rgb(66, 185, 131);
- // border-bottom-color: rgb(66, 185, 131);
- border-left-color: rgb(200, 200, 200);
- border-bottom-color: rgb(200, 200, 200);
- border-width: 5px;
- width: 100px;
- height: 100px;
- transform: rotate(45deg);
- transform-origin: center center;
- // border-radius: 100px;
- }
- }
- }
-</style>
diff --git a/uni_modules/uview-ui/components/u-code-input/props.js b/uni_modules/uview-ui/components/u-code-input/props.js
deleted file mode 100644
index 0f016ee..0000000
--- a/uni_modules/uview-ui/components/u-code-input/props.js
+++ /dev/null
@@ -1,79 +0,0 @@
-export default {
- props: {
- // 键盘弹起时,是否自动上推页面
- adjustPosition: {
- type: Boolean,
- default: uni.$u.props.codeInput.adjustPosition
- },
- // 最大输入长度
- maxlength: {
- type: [String, Number],
- default: uni.$u.props.codeInput.maxlength
- },
- // 是否用圆点填充
- dot: {
- type: Boolean,
- default: uni.$u.props.codeInput.dot
- },
- // 显示模式,box-盒子模式,line-底部横线模式
- mode: {
- type: String,
- default: uni.$u.props.codeInput.mode
- },
- // 是否细边框
- hairline: {
- type: Boolean,
- default: uni.$u.props.codeInput.hairline
- },
- // 字符间的距离
- space: {
- type: [String, Number],
- default: uni.$u.props.codeInput.space
- },
- // 预置值
- value: {
- type: [String, Number],
- default: uni.$u.props.codeInput.value
- },
- // 是否自动获取焦点
- focus: {
- type: Boolean,
- default: uni.$u.props.codeInput.focus
- },
- // 字体是否加粗
- bold: {
- type: Boolean,
- default: uni.$u.props.codeInput.bold
- },
- // 字体颜色
- color: {
- type: String,
- default: uni.$u.props.codeInput.color
- },
- // 字体大小
- fontSize: {
- type: [String, Number],
- default: uni.$u.props.codeInput.fontSize
- },
- // 输入框的大小,宽等于高
- size: {
- type: [String, Number],
- default: uni.$u.props.codeInput.size
- },
- // 是否隐藏原生键盘,如果想用自定义键盘的话,需设置此参数为true
- disabledKeyboard: {
- type: Boolean,
- default: uni.$u.props.codeInput.disabledKeyboard
- },
- // 边框和线条颜色
- borderColor: {
- type: String,
- default: uni.$u.props.codeInput.borderColor
- },
- // 是否禁止输入"."符号
- disabledDot: {
- type: Boolean,
- default: uni.$u.props.codeInput.disabledDot
- }
- }
-}
diff --git a/uni_modules/uview-ui/components/u-code-input/u-code-input.vue b/uni_modules/uview-ui/components/u-code-input/u-code-input.vue
deleted file mode 100644
index 96241cf..0000000
--- a/uni_modules/uview-ui/components/u-code-input/u-code-input.vue
+++ /dev/null
@@ -1,252 +0,0 @@
-<template>
- <view class="u-code-input">
- <view
- class="u-code-input__item"
- :style="[itemStyle(index)]"
- v-for="(item, index) in codeLength"
- :key="index"
- >
- <view
- class="u-code-input__item__dot"
- v-if="dot && codeArray.length > index"
- ></view>
- <text
- v-else
- :style="{
- fontSize: $u.addUnit(fontSize),
- fontWeight: bold ? 'bold' : 'normal',
- color: color
- }"
- >{{codeArray[index]}}</text>
- <view
- class="u-code-input__item__line"
- v-if="mode === 'line'"
- :style="[lineStyle]"
- ></view>
- <!-- #ifndef APP-PLUS -->
- <view v-if="isFocus && codeArray.length === index" :style="{backgroundColor: color}" class="u-code-input__item__cursor"></view>
- <!-- #endif -->
- </view>
- <input
- :disabled="disabledKeyboard"
- type="number"
- :focus="focus"
- :value="inputValue"
- :maxlength="maxlength"
- :adjustPosition="adjustPosition"
- class="u-code-input__input"
- @input="inputHandler"
- :style="{
- height: $u.addUnit(size)
- }"
- @focus="isFocus = true"
- @blur="isFocus = false"
- />
- </view>
-</template>
-
-<script>
- import props from './props.js';
- /**
- * CodeInput 验证码输入
- * @description 该组件一般用于验证用户短信验证码的场景,也可以结合uView的键盘组件使用
- * @tutorial https://www.uviewui.com/components/codeInput.html
- * @property {String | Number} maxlength 最大输入长度 (默认 6 )
- * @property {Boolean} dot 是否用圆点填充 (默认 false )
- * @property {String} mode 显示模式,box-盒子模式,line-底部横线模式 (默认 'box' )
- * @property {Boolean} hairline 是否细边框 (默认 false )
- * @property {String | Number} space 字符间的距离 (默认 10 )
- * @property {String | Number} value 预置值
- * @property {Boolean} focus 是否自动获取焦点 (默认 false )
- * @property {Boolean} bold 字体和输入横线是否加粗 (默认 false )
- * @property {String} color 字体颜色 (默认 '#606266' )
- * @property {String | Number} fontSize 字体大小,单位px (默认 18 )
- * @property {String | Number} size 输入框的大小,宽等于高 (默认 35 )
- * @property {Boolean} disabledKeyboard 是否隐藏原生键盘,如果想用自定义键盘的话,需设置此参数为true (默认 false )
- * @property {String} borderColor 边框和线条颜色 (默认 '#c9cacc' )
- * @property {Boolean} disabledDot 是否禁止输入"."符号 (默认 true )
- *
- * @event {Function} change 输入内容发生改变时触发,具体见上方说明 value:当前输入的值
- * @event {Function} finish 输入字符个数达maxlength值时触发,见上方说明 value:当前输入的值
- * @example <u-code-input v-model="value4" :focus="true"></u-code-input>
- */
- export default {
- name: 'u-code-input',
- mixins: [uni.$u.mpMixin, uni.$u.mixin, props],
- data() {
- return {
- inputValue: '',
- isFocus: this.focus
- }
- },
- watch: {
- value: {
- immediate: true,
- handler(val) {
- // 转为字符串,超出部分截掉
- this.inputValue = String(val).substring(0, this.maxlength)
- }
- },
- },
- computed: {
- // 根据长度,循环输入框的个数,因为头条小程序数值不能用于v-for
- codeLength() {
- return new Array(Number(this.maxlength))
- },
- // 循环item的样式
- itemStyle() {
- return index => {
- const addUnit = uni.$u.addUnit
- const style = {
- width: addUnit(this.size),
- height: addUnit(this.size)
- }
- // 盒子模式下,需要额外进行处理
- if (this.mode === 'box') {
- // 设置盒子的边框,如果是细边框,则设置为0.5px宽度
- style.border = `${this.hairline ? 0.5 : 1}px solid ${this.borderColor}`
- // 如果盒子间距为0的话
- if (uni.$u.getPx(this.space) === 0) {
- // 给第一和最后一个盒子设置圆角
- if (index === 0) {
- style.borderTopLeftRadius = '3px'
- style.borderBottomLeftRadius = '3px'
- }
- if (index === this.codeLength.length - 1) {
- style.borderTopRightRadius = '3px'
- style.borderBottomRightRadius = '3px'
- }
- // 最后一个盒子的右边框需要保留
- if (index !== this.codeLength.length - 1) {
- style.borderRight = 'none'
- }
- }
- }
- if (index !== this.codeLength.length - 1) {
- // 设置验证码字符之间的距离,通过margin-right设置,最后一个字符,无需右边框
- style.marginRight = addUnit(this.space)
- } else {
- // 最后一个盒子的有边框需要保留
- style.marginRight = 0
- }
-
- return style
- }
- },
- // 将输入的值,转为数组,给item历遍时,根据当前的索引显示数组的元素
- codeArray() {
- return String(this.inputValue).split('')
- },
- // 下划线模式下,横线的样式
- lineStyle() {
- const style = {}
- style.height = this.hairline ? '2px' : '4px'
- style.width = uni.$u.addUnit(this.size)
- // 线条模式下,背景色即为边框颜色
- style.backgroundColor = this.borderColor
- return style
- }
- },
- methods: {
- // 监听输入框的值发生变化
- inputHandler(e) {
- const value = e.detail.value
- this.inputValue = value
- // 是否允许输入“.”符号
- if(this.disabledDot) {
- this.$nextTick(() => {
- this.inputValue = value.replace('.', '')
- })
- }
- // 未达到maxlength之前,发送change事件,达到后发送finish事件
- this.$emit('change', value)
- // 修改通过v-model双向绑定的值
- this.$emit('input', value)
- // 达到用户指定输入长度时,发出完成事件
- if (String(value).length >= Number(this.maxlength)) {
- this.$emit('finish', value)
- }
- }
- }
- }
-</script>
-
-<style lang="scss" scoped>
- @import "../../libs/css/components.scss";
- $u-code-input-cursor-width: 1px;
- $u-code-input-cursor-height: 40%;
- $u-code-input-cursor-animation-duration: 1s;
- $u-code-input-cursor-animation-name: u-cursor-flicker;
-
- .u-code-input {
- @include flex;
- position: relative;
- overflow: hidden;
-
- &__item {
- @include flex;
- justify-content: center;
- align-items: center;
- position: relative;
-
- &__text {
- font-size: 15px;
- color: $u-content-color;
- }
-
- &__dot {
- width: 7px;
- height: 7px;
- border-radius: 100px;
- background-color: $u-content-color;
- }
-
- &__line {
- position: absolute;
- bottom: 0;
- height: 4px;
- border-radius: 100px;
- width: 40px;
- background-color: $u-content-color;
- }
- /* #ifndef APP-PLUS */
- &__cursor {
- position: absolute;
- top: 50%;
- left: 50%;
- transform: translate(-50%,-50%);
- width: $u-code-input-cursor-width;
- height: $u-code-input-cursor-height;
- animation: $u-code-input-cursor-animation-duration u-cursor-flicker infinite;
- }
- /* #endif */
-
- }
-
- &__input {
- // 之所以需要input输入框,是因为有它才能唤起键盘
- // 这里将它设置为两倍的屏幕宽度,再将左边的一半移出屏幕,为了不让用户看到输入的内容
- position: absolute;
- left: -750rpx;
- width: 1500rpx;
- top: 0;
- background-color: transparent;
- text-align: left;
- }
- }
-
- /* #ifndef APP-PLUS */
- @keyframes u-cursor-flicker {
- 0% {
- opacity: 0;
- }
- 50% {
- opacity: 1;
- }
- 100% {
- opacity: 0;
- }
- }
- /* #endif */
-
-</style>
diff --git a/uni_modules/uview-ui/components/u-code/props.js b/uni_modules/uview-ui/components/u-code/props.js
deleted file mode 100644
index eaf80d0..0000000
--- a/uni_modules/uview-ui/components/u-code/props.js
+++ /dev/null
@@ -1,34 +0,0 @@
-export default {
- props: {
- // 倒计时总秒数
- seconds: {
- type: [String, Number],
- default: uni.$u.props.code.seconds
- },
- // 尚未开始时提示
- startText: {
- type: String,
- default: uni.$u.props.code.startText
- },
- // 正在倒计时中的提示
- changeText: {
- type: String,
- default: uni.$u.props.code.changeText
- },
- // 倒计时结束时的提示
- endText: {
- type: String,
- default: uni.$u.props.code.endText
- },
- // 是否在H5刷新或各端返回再进入时继续倒计时
- keepRunning: {
- type: Boolean,
- default: uni.$u.props.code.keepRunning
- },
- // 为了区分多个页面,或者一个页面多个倒计时组件本地存储的继续倒计时变了
- uniqueKey: {
- type: String,
- default: uni.$u.props.code.uniqueKey
- }
- }
-}
diff --git a/uni_modules/uview-ui/components/u-code/u-code.vue b/uni_modules/uview-ui/components/u-code/u-code.vue
deleted file mode 100644
index f79a09a..0000000
--- a/uni_modules/uview-ui/components/u-code/u-code.vue
+++ /dev/null
@@ -1,129 +0,0 @@
-<template>
- <view class="u-code">
- <!-- 此组件功能由js完成,无需写html逻辑 -->
- </view>
-</template>
-
-<script>
- import props from './props.js';
- /**
- * Code 验证码输入框
- * @description 考虑到用户实际发送验证码的场景,可能是一个按钮,也可能是一段文字,提示语各有不同,所以本组件 不提供界面显示,只提供提示语,由用户将提示语嵌入到具体的场景
- * @tutorial https://www.uviewui.com/components/code.html
- * @property {String | Number} seconds 倒计时所需的秒数(默认 60 )
- * @property {String} startText 开始前的提示语,见官网说明(默认 '获取验证码' )
- * @property {String} changeText 倒计时期间的提示语,必须带有字母"x",见官网说明(默认 'X秒重新获取' )
- * @property {String} endText 倒计结束的提示语,见官网说明(默认 '重新获取' )
- * @property {Boolean} keepRunning 是否在H5刷新或各端返回再进入时继续倒计时( 默认false )
- * @property {String} uniqueKey 为了区分多个页面,或者一个页面多个倒计时组件本地存储的继续倒计时变了
- *
- * @event {Function} change 倒计时期间,每秒触发一次
- * @event {Function} start 开始倒计时触发
- * @event {Function} end 结束倒计时触发
- * @example <u-code ref="uCode" @change="codeChange" seconds="20"></u-code>
- */
- export default {
- name: "u-code",
- mixins: [uni.$u.mpMixin, uni.$u.mixin,props],
- data() {
- return {
- secNum: this.seconds,
- timer: null,
- canGetCode: true, // 是否可以执行验证码操作
- }
- },
- mounted() {
- this.checkKeepRunning()
- },
- watch: {
- seconds: {
- immediate: true,
- handler(n) {
- this.secNum = n
- }
- }
- },
- methods: {
- checkKeepRunning() {
- // 获取上一次退出页面(H5还包括刷新)时的时间戳,如果没有上次的保存,此值可能为空
- let lastTimestamp = Number(uni.getStorageSync(this.uniqueKey + '_$uCountDownTimestamp'))
- if(!lastTimestamp) return this.changeEvent(this.startText)
- // 当前秒的时间戳
- let nowTimestamp = Math.floor((+ new Date()) / 1000)
- // 判断当前的时间戳,是否小于上一次的本该按设定结束,却提前结束的时间戳
- if(this.keepRunning && lastTimestamp && lastTimestamp > nowTimestamp) {
- // 剩余尚未执行完的倒计秒数
- this.secNum = lastTimestamp - nowTimestamp
- // 清除本地保存的变量
- uni.removeStorageSync(this.uniqueKey + '_$uCountDownTimestamp')
- // 开始倒计时
- this.start()
- } else {
- // 如果不存在需要继续上一次的倒计时,执行正常的逻辑
- this.changeEvent(this.startText)
- }
- },
- // 开始倒计时
- start() {
- // 防止快速点击获取验证码的按钮而导致内部产生多个定时器导致混乱
- if(this.timer) {
- clearInterval(this.timer)
- this.timer = null
- }
- this.$emit('start')
- this.canGetCode = false
- // 这里放这句,是为了一开始时就提示,否则要等setInterval的1秒后才会有提示
- this.changeEvent(this.changeText.replace(/x|X/, this.secNum))
- this.timer = setInterval(() => {
- if (--this.secNum) {
- // 用当前倒计时的秒数替换提示字符串中的"x"字母
- this.changeEvent(this.changeText.replace(/x|X/, this.secNum))
- } else {
- clearInterval(this.timer)
- this.timer = null
- this.changeEvent(this.endText)
- this.secNum = this.seconds
- this.$emit('end')
- this.canGetCode = true
- }
- }, 1000)
- this.setTimeToStorage()
- },
- // 重置,可以让用户再次获取验证码
- reset() {
- this.canGetCode = true
- clearInterval(this.timer)
- this.secNum = this.seconds
- this.changeEvent(this.endText)
- },
- changeEvent(text) {
- this.$emit('change', text)
- },
- // 保存时间戳,为了防止倒计时尚未结束,H5刷新或者各端的右上角返回上一页再进来
- setTimeToStorage() {
- if(!this.keepRunning || !this.timer) return
- // 记录当前的时间戳,为了下次进入页面,如果还在倒计时内的话,继续倒计时
- // 倒计时尚未结束,结果大于0;倒计时已经开始,就会小于初始值,如果等于初始值,说明没有开始倒计时,无需处理
- if(this.secNum > 0 && this.secNum <= this.seconds) {
- // 获取当前时间戳(+ new Date()为特殊写法),除以1000变成秒,再去除小数部分
- let nowTimestamp = Math.floor((+ new Date()) / 1000)
- // 将本该结束时候的时间戳保存起来 => 当前时间戳 + 剩余的秒数
- uni.setStorage({
- key: this.uniqueKey + '_$uCountDownTimestamp',
- data: nowTimestamp + Number(this.secNum)
- })
- }
- }
- },
- // 组件销毁的时候,清除定时器,否则定时器会继续存在,系统不会自动清除
- beforeDestroy() {
- this.setTimeToStorage()
- clearTimeout(this.timer)
- this.timer = null
- }
- }
-</script>
-
-<style lang="scss" scoped>
- @import "../../libs/css/components.scss";
-</style>
diff --git a/uni_modules/uview-ui/components/u-col/props.js b/uni_modules/uview-ui/components/u-col/props.js
deleted file mode 100644
index 0622251..0000000
--- a/uni_modules/uview-ui/components/u-col/props.js
+++ /dev/null
@@ -1,29 +0,0 @@
-export default {
- props: {
- // 占父容器宽度的多少等分,总分为12份
- span: {
- type: [String, Number],
- default: uni.$u.props.col.span
- },
- // 指定栅格左侧的间隔数(总12栏)
- offset: {
- type: [String, Number],
- default: uni.$u.props.col.offset
- },
- // 水平排列方式,可选值为`start`(或`flex-start`)、`end`(或`flex-end`)、`center`、`around`(或`space-around`)、`between`(或`space-between`)
- justify: {
- type: String,
- default: uni.$u.props.col.justify
- },
- // 垂直对齐方式,可选值为top、center、bottom、stretch
- align: {
- type: String,
- default: uni.$u.props.col.align
- },
- // 文字对齐方式
- textAlign: {
- type: String,
- default: uni.$u.props.col.textAlign
- }
- }
-}
diff --git a/uni_modules/uview-ui/components/u-col/u-col.vue b/uni_modules/uview-ui/components/u-col/u-col.vue
deleted file mode 100644
index 8be1517..0000000
--- a/uni_modules/uview-ui/components/u-col/u-col.vue
+++ /dev/null
@@ -1,162 +0,0 @@
-<template>
- <view
- class="u-col"
- ref="u-col"
- :class="[
- 'u-col-' + span
- ]"
- :style="[colStyle]"
- @tap="clickHandler"
- >
- <slot></slot>
- </view>
-</template>
-
-<script>
- import props from './props.js';
- /**
- * CodeInput 栅格系统的列
- * @description 该组件一般用于Layout 布局 通过基础的 12 分栏,迅速简便地创建布局
- * @tutorial https://www.uviewui.com/components/Layout.html
- * @property {String | Number} span 栅格占据的列数,总12等份 (默认 12 )
- * @property {String | Number} offset 分栏左边偏移,计算方式与span相同 (默认 0 )
- * @property {String} justify 水平排列方式,可选值为`start`(或`flex-start`)、`end`(或`flex-end`)、`center`、`around`(或`space-around`)、`between`(或`space-between`) (默认 'start' )
- * @property {String} align 垂直对齐方式,可选值为top、center、bottom、stretch (默认 'stretch' )
- * @property {String} textAlign 文字水平对齐方式 (默认 'left' )
- * @property {Object} customStyle 定义需要用到的外部样式
- * @event {Function} click col被点击,会阻止事件冒泡到row
- * @example <u-col span="3" offset="3" > <view class="demo-layout bg-purple"></view> </u-col>
- */
- export default {
- name: 'u-col',
- mixins: [uni.$u.mpMixin, uni.$u.mixin, props],
- data() {
- return {
- width: 0,
- parentData: {
- gutter: 0
- },
- gridNum: 12
- }
- },
- computed: {
- uJustify() {
- if (this.justify == 'end' || this.justify == 'start') return 'flex-' + this.justify
- else if (this.justify == 'around' || this.justify == 'between') return 'space-' + this.justify
- else return this.justify
- },
- uAlignItem() {
- if (this.align == 'top') return 'flex-start'
- if (this.align == 'bottom') return 'flex-end'
- else return this.align
- },
- colStyle() {
- const style = {
- // 这里写成"padding: 0 10px"的形式是因为nvue的需要
- paddingLeft: uni.$u.addUnit(uni.$u.getPx(this.parentData.gutter)/2),
- paddingRight: uni.$u.addUnit(uni.$u.getPx(this.parentData.gutter)/2),
- alignItems: this.uAlignItem,
- justifyContent: this.uJustify,
- textAlign: this.textAlign,
- // #ifndef APP-NVUE
- // 在非nvue上,使用百分比形式
- flex: `0 0 ${100 / this.gridNum * this.span}%`,
- marginLeft: 100 / 12 * this.offset + '%',
- // #endif
- // #ifdef APP-NVUE
- // 在nvue上,由于无法使用百分比单位,这里需要获取父组件的宽度,再计算得出该有对应的百分比尺寸
- width: uni.$u.addUnit(Math.floor(this.width / this.gridNum * Number(this.span))),
- marginLeft: uni.$u.addUnit(Math.floor(this.width / this.gridNum * Number(this.offset))),
- // #endif
- }
- return uni.$u.deepMerge(style, uni.$u.addStyle(this.customStyle))
- }
- },
- mounted() {
- this.init()
- },
- methods: {
- async init() {
- // 支付宝小程序不支持provide/inject,所以使用这个方法获取整个父组件,在created定义,避免循环引用
- this.updateParentData()
- this.width = await this.parent.getComponentWidth()
- },
- updateParentData() {
- this.getParentData('u-row')
- },
- clickHandler(e) {
- this.$emit('click');
- }
- },
- }
-</script>
-
-<style lang="scss" scoped>
- @import "../../libs/css/components.scss";
-
- .u-col {
- padding: 0;
- /* #ifndef APP-NVUE */
- box-sizing:border-box;
- /* #endif */
- /* #ifdef MP */
- display: block;
- /* #endif */
- }
-
- // nvue下百分比无效
- /* #ifndef APP-NVUE */
- .u-col-0 {
- width: 0;
- }
-
- .u-col-1 {
- width: calc(100%/12);
- }
-
- .u-col-2 {
- width: calc(100%/12 * 2);
- }
-
- .u-col-3 {
- width: calc(100%/12 * 3);
- }
-
- .u-col-4 {
- width: calc(100%/12 * 4);
- }
-
- .u-col-5 {
- width: calc(100%/12 * 5);
- }
-
- .u-col-6 {
- width: calc(100%/12 * 6);
- }
-
- .u-col-7 {
- width: calc(100%/12 * 7);
- }
-
- .u-col-8 {
- width: calc(100%/12 * 8);
- }
-
- .u-col-9 {
- width: calc(100%/12 * 9);
- }
-
- .u-col-10 {
- width: calc(100%/12 * 10);
- }
-
- .u-col-11 {
- width: calc(100%/12 * 11);
- }
-
- .u-col-12 {
- width: calc(100%/12 * 12);
- }
-
- /* #endif */
-</style>
diff --git a/uni_modules/uview-ui/components/u-collapse-item/props.js b/uni_modules/uview-ui/components/u-collapse-item/props.js
deleted file mode 100644
index bd5749b..0000000
--- a/uni_modules/uview-ui/components/u-collapse-item/props.js
+++ /dev/null
@@ -1,59 +0,0 @@
-export default {
- props: {
- // 标题
- title: {
- type: String,
- default: uni.$u.props.collapseItem.title
- },
- // 标题右侧内容
- value: {
- type: String,
- default: uni.$u.props.collapseItem.value
- },
- // 标题下方的描述信息
- label: {
- type: String,
- default: uni.$u.props.collapseItem.label
- },
- // 是否禁用折叠面板
- disabled: {
- type: Boolean,
- default: uni.$u.props.collapseItem.disabled
- },
- // 是否展示右侧箭头并开启点击反馈
- isLink: {
- type: Boolean,
- default: uni.$u.props.collapseItem.isLink
- },
- // 是否开启点击反馈
- clickable: {
- type: Boolean,
- default: uni.$u.props.collapseItem.clickable
- },
- // 是否显示内边框
- border: {
- type: Boolean,
- default: uni.$u.props.collapseItem.border
- },
- // 标题的对齐方式
- align: {
- type: String,
- default: uni.$u.props.collapseItem.align
- },
- // 唯一标识符
- name: {
- type: [String, Number],
- default: uni.$u.props.collapseItem.name
- },
- // 标题左侧图片,可为绝对路径的图片或内置图标
- icon: {
- type: String,
- default: uni.$u.props.collapseItem.icon
- },
- // 面板展开收起的过渡时间,单位ms
- duration: {
- type: Number,
- default: uni.$u.props.collapseItem.duration
- }
- }
-}
diff --git a/uni_modules/uview-ui/components/u-collapse-item/u-collapse-item.vue b/uni_modules/uview-ui/components/u-collapse-item/u-collapse-item.vue
deleted file mode 100644
index 0e1b703..0000000
--- a/uni_modules/uview-ui/components/u-collapse-item/u-collapse-item.vue
+++ /dev/null
@@ -1,225 +0,0 @@
-<template>
- <view class="u-collapse-item">
- <u-cell
- :title="title"
- :value="value"
- :label="label"
- :icon="icon"
- :isLink="isLink"
- :clickable="clickable"
- :border="parentData.border && showBorder"
- @click="clickHandler"
- :arrowDirection="expanded ? 'up' : 'down'"
- :disabled="disabled"
- >
- <!-- #ifndef MP-WEIXIN -->
- <!-- 微信小程序不支持,因为微信中不支持 <slot name="title" slot="title" />的写法 -->
- <template slot="title">
- <slot name="title"></slot>
- </template>
- <template slot="icon">
- <slot name="icon"></slot>
- </template>
- <template slot="value">
- <slot name="value"></slot>
- </template>
- <template slot="right-icon">
- <slot name="right-icon"></slot>
- </template>
- <!-- #endif -->
- </u-cell>
- <view
- class="u-collapse-item__content"
- :animation="animationData"
- ref="animation"
- >
- <view
- class="u-collapse-item__content__text content-class"
- :id="elId"
- :ref="elId"
- ><slot /></view>
- </view>
- <u-line v-if="parentData.border"></u-line>
- </view>
-</template>
-
-<script>
- import props from './props.js';
- // #ifdef APP-NVUE
- const animation = uni.requireNativePlugin('animation')
- const dom = uni.requireNativePlugin('dom')
- // #endif
- /**
- * collapseItem 折叠面板Item
- * @description 通过折叠面板收纳内容区域(搭配u-collapse使用)
- * @tutorial https://www.uviewui.com/components/collapse.html
- * @property {String} title 标题
- * @property {String} value 标题右侧内容
- * @property {String} label 标题下方的描述信息
- * @property {Boolean} disbled 是否禁用折叠面板 ( 默认 false )
- * @property {Boolean} isLink 是否展示右侧箭头并开启点击反馈 ( 默认 true )
- * @property {Boolean} clickable 是否开启点击反馈 ( 默认 true )
- * @property {Boolean} border 是否显示内边框 ( 默认 true )
- * @property {String} align 标题的对齐方式 ( 默认 'left' )
- * @property {String | Number} name 唯一标识符
- * @property {String} icon 标题左侧图片,可为绝对路径的图片或内置图标
- * @event {Function} change 某个item被打开或者收起时触发
- * @example <u-collapse-item :title="item.head" v-for="(item, index) in itemList" :key="index">{{item.body}}</u-collapse-item>
- */
- export default {
- name: "u-collapse-item",
- mixins: [uni.$u.mpMixin, uni.$u.mixin, props],
- data() {
- return {
- elId: uni.$u.guid(),
- // uni.createAnimation的导出数据
- animationData: {},
- // 是否展开状态
- expanded: false,
- // 根据expanded确定是否显示border,为了控制展开时,cell的下划线更好的显示效果,进行一定时间的延时
- showBorder: false,
- // 是否动画中,如果是则不允许继续触发点击
- animating: false,
- // 父组件u-collapse的参数
- parentData: {
- accordion: false,
- border: false
- }
- };
- },
- watch: {
- expanded(n) {
- clearTimeout(this.timer)
- this.timer = null
- // 这里根据expanded的值来进行一定的延时,是为了cell的下划线更好的显示效果
- this.timer = setTimeout(() => {
- this.showBorder = n
- }, n ? 10 : 290)
- }
- },
- mounted() {
- this.init()
- },
- methods: {
- // 异步获取内容,或者动态修改了内容时,需要重新初始化
- init() {
- // 初始化数据
- this.updateParentData()
- if (!this.parent) {
- return uni.$u.error('u-collapse-item必须要搭配u-collapse组件使用')
- }
- const {
- value,
- accordion,
- children = []
- } = this.parent
-
- if (accordion) {
- if (uni.$u.test.array(value)) {
- return uni.$u.error('手风琴模式下,u-collapse组件的value参数不能为数组')
- }
- this.expanded = this.name == value
- } else {
- if (!uni.$u.test.array(value) && value !== null) {
- return uni.$u.error('非手风琴模式下,u-collapse组件的value参数必须为数组')
- }
- this.expanded = (value || []).some(item => item == this.name)
- }
- // 设置组件的展开或收起状态
- this.$nextTick(function() {
- this.setContentAnimate()
- })
- },
- updateParentData() {
- // 此方法在mixin中
- this.getParentData('u-collapse')
- },
- async setContentAnimate() {
- // 每次面板打开或者收起时,都查询元素尺寸
- // 好处是,父组件从服务端获取内容后,变更折叠面板后可以获得最新的高度
- const rect = await this.queryRect()
- const height = this.expanded ? rect.height : 0
- this.animating = true
- // #ifdef APP-NVUE
- const ref = this.$refs['animation'].ref
- animation.transition(ref, {
- styles: {
- height: height + 'px'
- },
- duration: this.duration,
- // 必须设置为true,否则会到面板收起或展开时,页面其他元素不会随之调整它们的布局
- needLayout: true,
- timingFunction: 'ease-in-out',
- }, () => {
- this.animating = false
- })
- // #endif
-
- // #ifndef APP-NVUE
- const animation = uni.createAnimation({
- timingFunction: 'ease-in-out',
- });
- animation
- .height(height)
- .step({
- duration: this.duration,
- })
- .step()
- // 导出动画数据给面板的animationData值
- this.animationData = animation.export()
- // 标识动画结束
- uni.$u.sleep(this.duration).then(() => {
- this.animating = false
- })
- // #endif
- },
- // 点击collapsehead头部
- clickHandler() {
- if (this.disabled && this.animating) return
- // 设置本组件为相反的状态
- this.parent && this.parent.onChange(this)
- },
- // 查询内容高度
- queryRect() {
- // #ifndef APP-NVUE
- // $uGetRect为uView自带的节点查询简化方法,详见文档介绍:https://www.uviewui.com/js/getRect.html
- // 组件内部一般用this.$uGetRect,对外的为uni.$u.getRect,二者功能一致,名称不同
- return new Promise(resolve => {
- this.$uGetRect(`#${this.elId}`).then(size => {
- resolve(size)
- })
- })
- // #endif
-
- // #ifdef APP-NVUE
- // nvue下,使用dom模块查询元素高度
- // 返回一个promise,让调用此方法的主体能使用then回调
- return new Promise(resolve => {
- dom.getComponentRect(this.$refs[this.elId], res => {
- resolve(res.size)
- })
- })
- // #endif
- }
- },
- };
-</script>
-
-<style lang="scss" scoped>
- @import "../../libs/css/components.scss";
-
- .u-collapse-item {
-
- &__content {
- overflow: hidden;
- height: 0;
-
- &__text {
- padding: 12px 15px;
- color: $u-content-color;
- font-size: 14px;
- line-height: 18px;
- }
- }
- }
-</style>
diff --git a/uni_modules/uview-ui/components/u-collapse/props.js b/uni_modules/uview-ui/components/u-collapse/props.js
deleted file mode 100644
index 7ee6d31..0000000
--- a/uni_modules/uview-ui/components/u-collapse/props.js
+++ /dev/null
@@ -1,19 +0,0 @@
-export default {
- props: {
- // 当前展开面板的name,非手风琴模式:[<string | number>],手风琴模式:string | number
- value: {
- type: [String, Number, Array, null],
- default: uni.$u.props.collapse.value
- },
- // 是否手风琴模式
- accordion: {
- type: Boolean,
- default: uni.$u.props.collapse.accordion
- },
- // 是否显示外边框
- border: {
- type: Boolean,
- default: uni.$u.props.collapse.border
- }
- }
-}
diff --git a/uni_modules/uview-ui/components/u-collapse/u-collapse.vue b/uni_modules/uview-ui/components/u-collapse/u-collapse.vue
deleted file mode 100644
index fc188a2..0000000
--- a/uni_modules/uview-ui/components/u-collapse/u-collapse.vue
+++ /dev/null
@@ -1,90 +0,0 @@
-<template>
- <view class="u-collapse">
- <u-line v-if="border"></u-line>
- <slot />
- </view>
-</template>
-
-<script>
- import props from './props.js';
- /**
- * collapse 折叠面板
- * @description 通过折叠面板收纳内容区域
- * @tutorial https://www.uviewui.com/components/collapse.html
- * @property {String | Number | Array} value 当前展开面板的name,非手风琴模式:[<string | number>],手风琴模式:string | number
- * @property {Boolean} accordion 是否手风琴模式( 默认 false )
- * @property {Boolean} border 是否显示外边框 ( 默认 true )
- * @event {Function} change 当前激活面板展开时触发(如果是手风琴模式,参数activeNames类型为String,否则为Array)
- * @example <u-collapse></u-collapse>
- */
- export default {
- name: "u-collapse",
- mixins: [uni.$u.mpMixin, uni.$u.mixin,props],
- watch: {
- needInit() {
- this.init()
- }
- },
- created() {
- this.children = []
- },
- computed: {
- needInit() {
- // 通过computed,同时监听accordion和value值的变化
- // 再通过watch去执行init()方法,进行再一次的初始化
- return [this.accordion, this.value]
- }
- },
- watch: {
- // 当父组件需要子组件需要共享的参数发生了变化,手动通知子组件
- parentData() {
- if (this.children.length) {
- this.children.map(child => {
- // 判断子组件(u-checkbox)如果有updateParentData方法的话,就就执行(执行的结果是子组件重新从父组件拉取了最新的值)
- typeof(child.updateParentData) === 'function' && child.updateParentData()
- })
- }
- },
- },
- methods: {
- // 重新初始化一次内部的所有子元素
- init() {
- this.children.map(child => {
- child.init()
- })
- },
- /**
- * collapse-item被点击时触发,由collapse统一处理各子组件的状态
- * @param {Object} target 被操作的面板的实例
- */
- onChange(target) {
- let changeArr = []
- this.children.map((child, index) => {
- // 如果是手风琴模式,将其他的折叠面板收起来
- if (this.accordion) {
- child.expanded = child === target ? !target.expanded : false
- child.setContentAnimate()
- } else {
- if(child === target) {
- child.expanded = !child.expanded
- child.setContentAnimate()
- }
- }
- // 拼接change事件中,数组元素的状态
- changeArr.push({
- // 如果没有定义name属性,则默认返回组件的index索引
- name: child.name || index,
- status: child.expanded ? 'open' : 'close'
- })
- })
-
- this.$emit('change', changeArr)
- this.$emit(target.expanded ? 'open' : 'close', target.name)
- }
- }
- }
-</script>
-
-<style lang="scss" scoped>
- @import "../../libs/css/components.scss";
-</style>
diff --git a/uni_modules/uview-ui/components/u-column-notice/props.js b/uni_modules/uview-ui/components/u-column-notice/props.js
deleted file mode 100644
index 4809154..0000000
--- a/uni_modules/uview-ui/components/u-column-notice/props.js
+++ /dev/null
@@ -1,55 +0,0 @@
-export default {
- props: {
- // 显示的内容,字符串
- text: {
- type: [Array],
- default: uni.$u.props.columnNotice.text
- },
- // 是否显示左侧的音量图标
- icon: {
- type: String,
- default: uni.$u.props.columnNotice.icon
- },
- // 通告模式,link-显示右箭头,closable-显示右侧关闭图标
- mode: {
- type: String,
- default: uni.$u.props.columnNotice.mode
- },
- // 文字颜色,各图标也会使用文字颜色
- color: {
- type: String,
- default: uni.$u.props.columnNotice.color
- },
- // 背景颜色
- bgColor: {
- type: String,
- default: uni.$u.props.columnNotice.bgColor
- },
- // 字体大小,单位px
- fontSize: {
- type: [String, Number],
- default: uni.$u.props.columnNotice.fontSize
- },
- // 水平滚动时的滚动速度,即每秒滚动多少px(px),这有利于控制文字无论多少时,都能有一个恒定的速度
- speed: {
- type: [String, Number],
- default: uni.$u.props.columnNotice.speed
- },
- // direction = row时,是否使用步进形式滚动
- step: {
- type: Boolean,
- default: uni.$u.props.columnNotice.step
- },
- // 滚动一个周期的时间长,单位ms
- duration: {
- type: [String, Number],
- default: uni.$u.props.columnNotice.duration
- },
- // 是否禁止用手滑动切换
- // 目前HX2.6.11,只支持App 2.5.5+、H5 2.5.5+、支付宝小程序、字节跳动小程序
- disableTouch: {
- type: Boolean,
- default: uni.$u.props.columnNotice.disableTouch
- }
- }
-}
diff --git a/uni_modules/uview-ui/components/u-column-notice/u-column-notice.vue b/uni_modules/uview-ui/components/u-column-notice/u-column-notice.vue
deleted file mode 100644
index fc39532..0000000
--- a/uni_modules/uview-ui/components/u-column-notice/u-column-notice.vue
+++ /dev/null
@@ -1,160 +0,0 @@
-<template>
- <view
- class="u-notice"
- @tap="clickHandler"
- >
- <slot name="icon">
- <view
- class="u-notice__left-icon"
- v-if="icon"
- >
- <u-icon
- :name="icon"
- :color="color"
- size="19"
- ></u-icon>
- </view>
- </slot>
- <swiper
- :disable-touch="disableTouch"
- :vertical="step ? false : true"
- circular
- :interval="duration"
- :autoplay="true"
- class="u-notice__swiper"
- @change="noticeChange"
- >
- <swiper-item
- v-for="(item, index) in text"
- :key="index"
- class="u-notice__swiper__item"
- >
- <text
- class="u-notice__swiper__item__text u-line-1"
- :style="[textStyle]"
- >{{ item }}</text>
- </swiper-item>
- </swiper>
- <view
- class="u-notice__right-icon"
- v-if="['link', 'closable'].includes(mode)"
- >
- <u-icon
- v-if="mode === 'link'"
- name="arrow-right"
- :size="17"
- :color="color"
- ></u-icon>
- <u-icon
- v-if="mode === 'closable'"
- name="close"
- :size="16"
- :color="color"
- @click="close"
- ></u-icon>
- </view>
- </view>
-</template>
-
-<script>
- import props from './props.js';
- /**
- * ColumnNotice 滚动通知中的垂直滚动 内部组件
- * @description 该组件用于滚动通告场景,是其中的垂直滚动方式
- * @tutorial https://www.uviewui.com/components/noticeBar.html
- * @property {Array} text 显示的内容,字符串
- * @property {String} icon 是否显示左侧的音量图标 ( 默认 'volume' )
- * @property {String} mode 通告模式,link-显示右箭头,closable-显示右侧关闭图标
- * @property {String} color 文字颜色,各图标也会使用文字颜色 ( 默认 '#f9ae3d' )
- * @property {String} bgColor 背景颜色 ( 默认 '#fdf6ec' )
- * @property {String | Number} fontSize 字体大小,单位px ( 默认 14 )
- * @property {String | Number} speed 水平滚动时的滚动速度,即每秒滚动多少px(rpx),这有利于控制文字无论多少时,都能有一个恒定的速度 ( 默认 80 )
- * @property {Boolean} step direction = row时,是否使用步进形式滚动 ( 默认 false )
- * @property {String | Number} duration 滚动一个周期的时间长,单位ms ( 默认 1500 )
- * @property {Boolean} disableTouch 是否禁止用手滑动切换 目前HX2.6.11,只支持App 2.5.5+、H5 2.5.5+、支付宝小程序、字节跳动小程序 ( 默认 true )
- * @example
- */
- export default {
- mixins: [uni.$u.mpMixin, uni.$u.mixin,props],
- watch: {
- text: {
- immediate: true,
- handler(newValue, oldValue) {
- if(!uni.$u.test.array(newValue)) {
- uni.$u.error('noticebar组件direction为column时,要求text参数为数组形式')
- }
- }
- }
- },
- computed: {
- // 文字内容的样式
- textStyle() {
- let style = {}
- style.color = this.color
- style.fontSize = uni.$u.addUnit(this.fontSize)
- return style
- },
- // 垂直或者水平滚动
- vertical() {
- if (this.mode == 'horizontal') return false
- else return true
- },
- },
- data() {
- return {
- index:0
- }
- },
- methods: {
- noticeChange(e){
- this.index = e.detail.current
- },
- // 点击通告栏
- clickHandler() {
- this.$emit('click', this.index)
- },
- // 点击关闭按钮
- close() {
- this.$emit('close')
- }
- }
- };
-</script>
-
-<style lang="scss" scoped>
- @import "../../libs/css/components.scss";
-
- .u-notice {
- @include flex;
- align-items: center;
- justify-content: space-between;
-
- &__left-icon {
- align-items: center;
- margin-right: 5px;
- }
-
- &__right-icon {
- margin-left: 5px;
- align-items: center;
- }
-
- &__swiper {
- height: 16px;
- @include flex;
- align-items: center;
- flex: 1;
-
- &__item {
- @include flex;
- align-items: center;
- overflow: hidden;
-
- &__text {
- font-size: 14px;
- color: $u-warning;
- }
- }
- }
- }
-</style>
diff --git a/uni_modules/uview-ui/components/u-count-down/props.js b/uni_modules/uview-ui/components/u-count-down/props.js
deleted file mode 100644
index d62f025..0000000
--- a/uni_modules/uview-ui/components/u-count-down/props.js
+++ /dev/null
@@ -1,24 +0,0 @@
-export default {
- props: {
- // 倒计时时长,单位ms
- time: {
- type: [String, Number],
- default: uni.$u.props.countDown.time
- },
- // 时间格式,DD-日,HH-时,mm-分,ss-秒,SSS-毫秒
- format: {
- type: String,
- default: uni.$u.props.countDown.format
- },
- // 是否自动开始倒计时
- autoStart: {
- type: Boolean,
- default: uni.$u.props.countDown.autoStart
- },
- // 是否展示毫秒倒计时
- millisecond: {
- type: Boolean,
- default: uni.$u.props.countDown.millisecond
- }
- }
-}
diff --git a/uni_modules/uview-ui/components/u-count-down/u-count-down.vue b/uni_modules/uview-ui/components/u-count-down/u-count-down.vue
deleted file mode 100644
index b5e85a6..0000000
--- a/uni_modules/uview-ui/components/u-count-down/u-count-down.vue
+++ /dev/null
@@ -1,163 +0,0 @@
-<template>
- <view class="u-count-down">
- <slot>
- <text class="u-count-down__text">{{ formattedTime }}</text>
- </slot>
- </view>
-</template>
-
-<script>
- import props from './props.js';
- import {
- isSameSecond,
- parseFormat,
- parseTimeData
- } from './utils';
- /**
- * u-count-down 倒计时
- * @description 该组件一般使用于某个活动的截止时间上,通过数字的变化,给用户明确的时间感受,提示用户进行某一个行为操作。
- * @tutorial https://uviewui.com/components/countDown.html
- * @property {String | Number} time 倒计时时长,单位ms (默认 0 )
- * @property {String} format 时间格式,DD-日,HH-时,mm-分,ss-秒,SSS-毫秒 (默认 'HH:mm:ss' )
- * @property {Boolean} autoStart 是否自动开始倒计时 (默认 true )
- * @property {Boolean} millisecond 是否展示毫秒倒计时 (默认 false )
- * @event {Function} finish 倒计时结束时触发
- * @event {Function} change 倒计时变化时触发
- * @event {Function} start 开始倒计时
- * @event {Function} pause 暂停倒计时
- * @event {Function} reset 重设倒计时,若 auto-start 为 true,重设后会自动开始倒计时
- * @example <u-count-down :time="time"></u-count-down>
- */
- export default {
- name: 'u-count-down',
- mixins: [uni.$u.mpMixin, uni.$u.mixin, props],
- data() {
- return {
- timer: null,
- // 各单位(天,时,分等)剩余时间
- timeData: parseTimeData(0),
- // 格式化后的时间,如"03:23:21"
- formattedTime: '0',
- // 倒计时是否正在进行中
- runing: false,
- endTime: 0, // 结束的毫秒时间戳
- remainTime: 0, // 剩余的毫秒时间
- }
- },
- watch: {
- time(n) {
- this.reset()
- }
- },
- mounted() {
- this.init()
- },
- methods: {
- init() {
- this.reset()
- },
- // 开始倒计时
- start() {
- if (this.runing) return
- // 标识为进行中
- this.runing = true
- // 结束时间戳 = 此刻时间戳 + 剩余的时间
- this.endTime = Date.now() + this.remainTime
- this.toTick()
- },
- // 根据是否展示毫秒,执行不同操作函数
- toTick() {
- if (this.millisecond) {
- this.microTick()
- } else {
- this.macroTick()
- }
- },
- macroTick() {
- this.clearTimeout()
- // 每隔一定时间,更新一遍定时器的值
- // 同时此定时器的作用也能带来毫秒级的更新
- this.timer = setTimeout(() => {
- // 获取剩余时间
- const remain = this.getRemainTime()
- // 重设剩余时间
- if (!isSameSecond(remain, this.remainTime) || remain === 0) {
- this.setRemainTime(remain)
- }
- // 如果剩余时间不为0,则继续检查更新倒计时
- if (this.remainTime !== 0) {
- this.macroTick()
- }
- }, 30)
- },
- microTick() {
- this.clearTimeout()
- this.timer = setTimeout(() => {
- this.setRemainTime(this.getRemainTime())
- if (this.remainTime !== 0) {
- this.microTick()
- }
- }, 50)
- },
- // 获取剩余的时间
- getRemainTime() {
- // 取最大值,防止出现小于0的剩余时间值
- return Math.max(this.endTime - Date.now(), 0)
- },
- // 设置剩余的时间
- setRemainTime(remain) {
- this.remainTime = remain
- // 根据剩余的毫秒时间,得出该有天,小时,分钟等的值,返回一个对象
- const timeData = parseTimeData(remain)
- this.$emit('change', timeData)
- // 得出格式化后的时间
- this.formattedTime = parseFormat(this.format, timeData)
- // 如果时间已到,停止倒计时
- if (remain <= 0) {
- this.pause()
- this.$emit('finish')
- }
- },
- // 重置倒计时
- reset() {
- this.pause()
- this.remainTime = this.time
- this.setRemainTime(this.remainTime)
- if (this.autoStart) {
- this.start()
- }
- },
- // 暂停倒计时
- pause() {
- this.runing = false;
- this.clearTimeout()
- },
- // 清空定时器
- clearTimeout() {
- clearTimeout(this.timer)
- this.timer = null
- }
- },
- beforeDestroy() {
- this.clearTimeout()
- }
- }
-</script>
-
-<style
- lang="scss"
- scoped
->
- @import "../../libs/css/components.scss";
- $u-count-down-text-color:$u-content-color !default;
- $u-count-down-text-font-size:15px !default;
- $u-count-down-text-line-height:22px !default;
-
- .u-count-down {
- &__text {
- color: $u-count-down-text-color;
- font-size: $u-count-down-text-font-size;
- line-height: $u-count-down-text-line-height;
- }
- }
-</style>
diff --git a/uni_modules/uview-ui/components/u-count-down/utils.js b/uni_modules/uview-ui/components/u-count-down/utils.js
deleted file mode 100644
index 8c75005..0000000
--- a/uni_modules/uview-ui/components/u-count-down/utils.js
+++ /dev/null
@@ -1,62 +0,0 @@
-// 补0,如1 -> 01
-function padZero(num, targetLength = 2) {
- let str = `${num}`
- while (str.length < targetLength) {
- str = `0${str}`
- }
- return str
-}
-const SECOND = 1000
-const MINUTE = 60 * SECOND
-const HOUR = 60 * MINUTE
-const DAY = 24 * HOUR
-export function parseTimeData(time) {
- const days = Math.floor(time / DAY)
- const hours = Math.floor((time % DAY) / HOUR)
- const minutes = Math.floor((time % HOUR) / MINUTE)
- const seconds = Math.floor((time % MINUTE) / SECOND)
- const milliseconds = Math.floor(time % SECOND)
- return {
- days,
- hours,
- minutes,
- seconds,
- milliseconds
- }
-}
-export function parseFormat(format, timeData) {
- let {
- days,
- hours,
- minutes,
- seconds,
- milliseconds
- } = timeData
- // 如果格式化字符串中不存在DD(天),则将天的时间转为小时中去
- if (format.indexOf('DD') === -1) {
- hours += days * 24
- } else {
- // 对天补0
- format = format.replace('DD', padZero(days))
- }
- // 其他同理于DD的格式化处理方式
- if (format.indexOf('HH') === -1) {
- minutes += hours * 60
- } else {
- format = format.replace('HH', padZero(hours))
- }
- if (format.indexOf('mm') === -1) {
- seconds += minutes * 60
- } else {
- format = format.replace('mm', padZero(minutes))
- }
- if (format.indexOf('ss') === -1) {
- milliseconds += seconds * 1000
- } else {
- format = format.replace('ss', padZero(seconds))
- }
- return format.replace('SSS', padZero(milliseconds, 3))
-}
-export function isSameSecond(time1, time2) {
- return Math.floor(time1 / 1000) === Math.floor(time2 / 1000)
-}
diff --git a/uni_modules/uview-ui/components/u-count-to/props.js b/uni_modules/uview-ui/components/u-count-to/props.js
deleted file mode 100644
index 86873c1..0000000
--- a/uni_modules/uview-ui/components/u-count-to/props.js
+++ /dev/null
@@ -1,59 +0,0 @@
-export default {
- props: {
- // 开始的数值,默认从0增长到某一个数
- startVal: {
- type: [String, Number],
- default: uni.$u.props.countTo.startVal
- },
- // 要滚动的目标数值,必须
- endVal: {
- type: [String, Number],
- default: uni.$u.props.countTo.endVal
- },
- // 滚动到目标数值的动画持续时间,单位为毫秒(ms)
- duration: {
- type: [String, Number],
- default: uni.$u.props.countTo.duration
- },
- // 设置数值后是否自动开始滚动
- autoplay: {
- type: Boolean,
- default: uni.$u.props.countTo.autoplay
- },
- // 要显示的小数位数
- decimals: {
- type: [String, Number],
- default: uni.$u.props.countTo.decimals
- },
- // 是否在即将到达目标数值的时候,使用缓慢滚动的效果
- useEasing: {
- type: Boolean,
- default: uni.$u.props.countTo.useEasing
- },
- // 十进制分割
- decimal: {
- type: [String, Number],
- default: uni.$u.props.countTo.decimal
- },
- // 字体颜色
- color: {
- type: String,
- default: uni.$u.props.countTo.color
- },
- // 字体大小
- fontSize: {
- type: [String, Number],
- default: uni.$u.props.countTo.fontSize
- },
- // 是否加粗字体
- bold: {
- type: Boolean,
- default: uni.$u.props.countTo.bold
- },
- // 千位分隔符,类似金额的分割(¥23,321.05中的",")
- separator: {
- type: String,
- default: uni.$u.props.countTo.separator
- }
- }
-}
diff --git a/uni_modules/uview-ui/components/u-count-to/u-count-to.vue b/uni_modules/uview-ui/components/u-count-to/u-count-to.vue
deleted file mode 100644
index 417b732..0000000
--- a/uni_modules/uview-ui/components/u-count-to/u-count-to.vue
+++ /dev/null
@@ -1,184 +0,0 @@
-<template>
- <text
- class="u-count-num"
- :style="{
- fontSize: $u.addUnit(fontSize),
- fontWeight: bold ? 'bold' : 'normal',
- color: color
- }"
- >{{ displayValue }}</text>
-</template>
-
-<script>
- import props from './props.js';
-/**
- * countTo 数字滚动
- * @description 该组件一般用于需要滚动数字到某一个值的场景,目标要求是一个递增的值。
- * @tutorial https://www.uviewui.com/components/countTo.html
- * @property {String | Number} startVal 开始的数值,默认从0增长到某一个数(默认 0 )
- * @property {String | Number} endVal 要滚动的目标数值,必须 (默认 0 )
- * @property {String | Number} duration 滚动到目标数值的动画持续时间,单位为毫秒(ms) (默认 2000 )
- * @property {Boolean} autoplay 设置数值后是否自动开始滚动 (默认 true )
- * @property {String | Number} decimals 要显示的小数位数,见官网说明(默认 0 )
- * @property {Boolean} useEasing 滚动结束时,是否缓动结尾,见官网说明(默认 true )
- * @property {String} decimal 十进制分割 ( 默认 "." )
- * @property {String} color 字体颜色( 默认 '#606266' )
- * @property {String | Number} fontSize 字体大小,单位px( 默认 22 )
- * @property {Boolean} bold 字体是否加粗(默认 false )
- * @property {String} separator 千位分隔符,见官网说明
- * @event {Function} end 数值滚动到目标值时触发
- * @example <u-count-to ref="uCountTo" :end-val="endVal" :autoplay="autoplay"></u-count-to>
- */
-export default {
- name: 'u-count-to',
- data() {
- return {
- localStartVal: this.startVal,
- displayValue: this.formatNumber(this.startVal),
- printVal: null,
- paused: false, // 是否暂停
- localDuration: Number(this.duration),
- startTime: null, // 开始的时间
- timestamp: null, // 时间戳
- remaining: null, // 停留的时间
- rAF: null,
- lastTime: 0 // 上一次的时间
- };
- },
- mixins: [uni.$u.mpMixin, uni.$u.mixin,props],
- computed: {
- countDown() {
- return this.startVal > this.endVal;
- }
- },
- watch: {
- startVal() {
- this.autoplay && this.start();
- },
- endVal() {
- this.autoplay && this.start();
- }
- },
- mounted() {
- this.autoplay && this.start();
- },
- methods: {
- easingFn(t, b, c, d) {
- return (c * (-Math.pow(2, (-10 * t) / d) + 1) * 1024) / 1023 + b;
- },
- requestAnimationFrame(callback) {
- const currTime = new Date().getTime();
- // 为了使setTimteout的尽可能的接近每秒60帧的效果
- const timeToCall = Math.max(0, 16 - (currTime - this.lastTime));
- const id = setTimeout(() => {
- callback(currTime + timeToCall);
- }, timeToCall);
- this.lastTime = currTime + timeToCall;
- return id;
- },
- cancelAnimationFrame(id) {
- clearTimeout(id);
- },
- // 开始滚动数字
- start() {
- this.localStartVal = this.startVal;
- this.startTime = null;
- this.localDuration = this.duration;
- this.paused = false;
- this.rAF = this.requestAnimationFrame(this.count);
- },
- // 暂定状态,重新再开始滚动;或者滚动状态下,暂停
- reStart() {
- if (this.paused) {
- this.resume();
- this.paused = false;
- } else {
- this.stop();
- this.paused = true;
- }
- },
- // 暂停
- stop() {
- this.cancelAnimationFrame(this.rAF);
- },
- // 重新开始(暂停的情况下)
- resume() {
- if (!this.remaining) return
- this.startTime = 0;
- this.localDuration = this.remaining;
- this.localStartVal = this.printVal;
- this.requestAnimationFrame(this.count);
- },
- // 重置
- reset() {
- this.startTime = null;
- this.cancelAnimationFrame(this.rAF);
- this.displayValue = this.formatNumber(this.startVal);
- },
- count(timestamp) {
- if (!this.startTime) this.startTime = timestamp;
- this.timestamp = timestamp;
- const progress = timestamp - this.startTime;
- this.remaining = this.localDuration - progress;
- if (this.useEasing) {
- if (this.countDown) {
- this.printVal = this.localStartVal - this.easingFn(progress, 0, this.localStartVal - this.endVal, this.localDuration);
- } else {
- this.printVal = this.easingFn(progress, this.localStartVal, this.endVal - this.localStartVal, this.localDuration);
- }
- } else {
- if (this.countDown) {
- this.printVal = this.localStartVal - (this.localStartVal - this.endVal) * (progress / this.localDuration);
- } else {
- this.printVal = this.localStartVal + (this.endVal - this.localStartVal) * (progress / this.localDuration);
- }
- }
- if (this.countDown) {
- this.printVal = this.printVal < this.endVal ? this.endVal : this.printVal;
- } else {
- this.printVal = this.printVal > this.endVal ? this.endVal : this.printVal;
- }
- this.displayValue = this.formatNumber(this.printVal) || 0;
- if (progress < this.localDuration) {
- this.rAF = this.requestAnimationFrame(this.count);
- } else {
- this.$emit('end');
- }
- },
- // 判断是否数字
- isNumber(val) {
- return !isNaN(parseFloat(val));
- },
- formatNumber(num) {
- // 将num转为Number类型,因为其值可能为字符串数值,调用toFixed会报错
- num = Number(num);
- num = num.toFixed(Number(this.decimals));
- num += '';
- const x = num.split('.');
- let x1 = x[0];
- const x2 = x.length > 1 ? this.decimal + x[1] : '';
- const rgx = /(\d+)(\d{3})/;
- if (this.separator && !this.isNumber(this.separator)) {
- while (rgx.test(x1)) {
- x1 = x1.replace(rgx, '$1' + this.separator + '$2');
- }
- }
- return x1 + x2;
- },
- destroyed() {
- this.cancelAnimationFrame(this.rAF);
- }
- }
-};
-</script>
-
-<style lang="scss" scoped>
-@import "../../libs/css/components.scss";
-
-.u-count-num {
- /* #ifndef APP-NVUE */
- display: inline-flex;
- /* #endif */
- text-align: center;
-}
-</style>
diff --git a/uni_modules/uview-ui/components/u-datetime-picker/props.js b/uni_modules/uview-ui/components/u-datetime-picker/props.js
deleted file mode 100644
index f44c0f9..0000000
--- a/uni_modules/uview-ui/components/u-datetime-picker/props.js
+++ /dev/null
@@ -1,116 +0,0 @@
-export default {
- props: {
- // 是否打开组件
- show: {
- type: Boolean,
- default: uni.$u.props.datetimePicker.show
- },
- // 是否展示顶部的操作栏
- showToolbar: {
- type: Boolean,
- default: uni.$u.props.datetimePicker.showToolbar
- },
- // 绑定值
- value: {
- type: [String, Number],
- default: uni.$u.props.datetimePicker.value
- },
- // 顶部标题
- title: {
- type: String,
- default: uni.$u.props.datetimePicker.title
- },
- // 展示格式,mode=date为日期选择,mode=time为时间选择,mode=year-month为年月选择,mode=datetime为日期时间选择
- mode: {
- type: String,
- default: uni.$u.props.datetimePicker.mode
- },
- // 可选的最大时间
- maxDate: {
- type: Number,
- // 最大默认值为后10年
- default: uni.$u.props.datetimePicker.maxDate
- },
- // 可选的最小时间
- minDate: {
- type: Number,
- // 最小默认值为前10年
- default: uni.$u.props.datetimePicker.minDate
- },
- // 可选的最小小时,仅mode=time有效
- minHour: {
- type: Number,
- default: uni.$u.props.datetimePicker.minHour
- },
- // 可选的最大小时,仅mode=time有效
- maxHour: {
- type: Number,
- default: uni.$u.props.datetimePicker.maxHour
- },
- // 可选的最小分钟,仅mode=time有效
- minMinute: {
- type: Number,
- default: uni.$u.props.datetimePicker.minMinute
- },
- // 可选的最大分钟,仅mode=time有效
- maxMinute: {
- type: Number,
- default: uni.$u.props.datetimePicker.maxMinute
- },
- // 选项过滤函数
- filter: {
- type: [Function, null],
- default: uni.$u.props.datetimePicker.filter
- },
- // 选项格式化函数
- formatter: {
- type: [Function, null],
- default: uni.$u.props.datetimePicker.formatter
- },
- // 是否显示加载中状态
- loading: {
- type: Boolean,
- default: uni.$u.props.datetimePicker.loading
- },
- // 各列中,单个选项的高度
- itemHeight: {
- type: [String, Number],
- default: uni.$u.props.datetimePicker.itemHeight
- },
- // 取消按钮的文字
- cancelText: {
- type: String,
- default: uni.$u.props.datetimePicker.cancelText
- },
- // 确认按钮的文字
- confirmText: {
- type: String,
- default: uni.$u.props.datetimePicker.confirmText
- },
- // 取消按钮的颜色
- cancelColor: {
- type: String,
- default: uni.$u.props.datetimePicker.cancelColor
- },
- // 确认按钮的颜色
- confirmColor: {
- type: String,
- default: uni.$u.props.datetimePicker.confirmColor
- },
- // 每列中可见选项的数量
- visibleItemCount: {
- type: [String, Number],
- default: uni.$u.props.datetimePicker.visibleItemCount
- },
- // 是否允许点击遮罩关闭选择器
- closeOnClickOverlay: {
- type: Boolean,
- default: uni.$u.props.datetimePicker.closeOnClickOverlay
- },
- // 各列的默认索引
- defaultIndex: {
- type: Array,
- default: uni.$u.props.datetimePicker.defaultIndex
- }
- }
-}
diff --git a/uni_modules/uview-ui/components/u-datetime-picker/u-datetime-picker.vue b/uni_modules/uview-ui/components/u-datetime-picker/u-datetime-picker.vue
deleted file mode 100644
index b689661..0000000
--- a/uni_modules/uview-ui/components/u-datetime-picker/u-datetime-picker.vue
+++ /dev/null
@@ -1,360 +0,0 @@
-<template>
- <u-picker
- ref="picker"
- :show="show"
- :closeOnClickOverlay="closeOnClickOverlay"
- :columns="columns"
- :title="title"
- :itemHeight="itemHeight"
- :showToolbar="showToolbar"
- :visibleItemCount="visibleItemCount"
- :defaultIndex="innerDefaultIndex"
- :cancelText="cancelText"
- :confirmText="confirmText"
- :cancelColor="cancelColor"
- :confirmColor="confirmColor"
- @close="close"
- @cancel="cancel"
- @confirm="confirm"
- @change="change"
- >
- </u-picker>
-</template>
-
-<script>
- function times(n, iteratee) {
- let index = -1
- const result = Array(n < 0 ? 0 : n)
- while (++index < n) {
- result[index] = iteratee(index)
- }
- return result
- }
- import props from './props.js';
- import dayjs from '../../libs/util/dayjs.js';
- /**
- * DatetimePicker 时间日期选择器
- * @description 此选择器用于时间日期
- * @tutorial https://www.uviewui.com/components/datetimePicker.html
- * @property {Boolean} show 用于控制选择器的弹出与收起 ( 默认 false )
- * @property {Boolean} showToolbar 是否显示顶部的操作栏 ( 默认 true )
- * @property {String | Number} value 绑定值
- * @property {String} title 顶部标题
- * @property {String} mode 展示格式 mode=date为日期选择,mode=time为时间选择,mode=year-month为年月选择,mode=datetime为日期时间选择 ( 默认 ‘datetime )
- * @property {Number} maxDate 可选的最大时间 默认值为后10年
- * @property {Number} minDate 可选的最小时间 默认值为前10年
- * @property {Number} minHour 可选的最小小时,仅mode=time有效 ( 默认 0 )
- * @property {Number} maxHour 可选的最大小时,仅mode=time有效 ( 默认 23 )
- * @property {Number} minMinute 可选的最小分钟,仅mode=time有效 ( 默认 0 )
- * @property {Number} maxMinute 可选的最大分钟,仅mode=time有效 ( 默认 59 )
- * @property {Function} filter 选项过滤函数
- * @property {Function} formatter 选项格式化函数
- * @property {Boolean} loading 是否显示加载中状态 ( 默认 false )
- * @property {String | Number} itemHeight 各列中,单个选项的高度 ( 默认 44 )
- * @property {String} cancelText 取消按钮的文字 ( 默认 '取消' )
- * @property {String} confirmText 确认按钮的文字 ( 默认 '确认' )
- * @property {String} cancelColor 取消按钮的颜色 ( 默认 '#909193' )
- * @property {String} confirmColor 确认按钮的颜色 ( 默认 '#3c9cff' )
- * @property {String | Number} visibleItemCount 每列中可见选项的数量 ( 默认 5 )
- * @property {Boolean} closeOnClickOverlay 是否允许点击遮罩关闭选择器 ( 默认 false )
- * @property {Array} defaultIndex 各列的默认索引
- * @event {Function} close 关闭选择器时触发
- * @event {Function} confirm 点击确定按钮,返回当前选择的值
- * @event {Function} change 当选择值变化时触发
- * @event {Function} cancel 点击取消按钮
- * @example <u-datetime-picker :show="show" :value="value1" mode="datetime" ></u-datetime-picker>
- */
- export default {
- name: 'datetime-picker',
- mixins: [uni.$u.mpMixin, uni.$u.mixin, props],
- data() {
- return {
- columns: [],
- innerDefaultIndex: [],
- innerFormatter: (type, value) => value
- }
- },
- watch: {
- show(newValue, oldValue) {
- if (newValue) {
- this.updateColumnValue(this.innerValue)
- }
- },
- propsChange() {
- this.init()
- }
- },
- computed: {
- // 如果以下这些变量发生了变化,意味着需要重新初始化各列的值
- propsChange() {
- return [this.mode, this.maxDate, this.minDate, this.minHour, this.maxHour, this.minMinute, this.maxMinute, this.filter, ]
- }
- },
- mounted() {
- this.init()
- },
- methods: {
- init() {
- this.innerValue = this.correctValue(this.value)
- this.updateColumnValue(this.innerValue)
- },
- // 在微信小程序中,不支持将函数当做props参数,故只能通过ref形式调用
- setFormatter(e) {
- this.innerFormatter = e
- },
- // 关闭选择器
- close() {
- if (this.closeOnClickOverlay) {
- this.$emit('close')
- }
- },
- // 点击工具栏的取消按钮
- cancel() {
- this.$emit('cancel')
- },
- // 点击工具栏的确定按钮
- confirm() {
- this.$emit('confirm', {
- value: this.innerValue,
- mode: this.mode
- })
- this.$emit('input', this.innerValue)
- },
- //用正则截取输出值,当出现多组数字时,抛出错误
- intercept(e,type){
- let judge = e.match(/\d+/g)
- //判断是否掺杂数字
- if(judge.length>1){
- uni.$u.error("请勿在过滤或格式化函数时添加数字")
- return 0
- }else if(type&&judge[0].length==4){//判断是否是年份
- return judge[0]
- }else if(judge[0].length>2){
- uni.$u.error("请勿在过滤或格式化函数时添加数字")
- return 0
- }else{
- return judge[0]
- }
- },
- // 列发生变化时触发
- change(e) {
- const { indexs, values } = e
- let selectValue = ''
- if(this.mode === 'time') {
- // 根据value各列索引,从各列数组中,取出当前时间的选中值
- selectValue = `${this.intercept(values[0][indexs[0]])}:${this.intercept(values[1][indexs[1]])}`
- } else {
- // 将选择的值转为数值,比如'03'转为数值的3,'2019'转为数值的2019
- const year = parseInt(this.intercept(values[0][indexs[0]],'year'))
- const month = parseInt(this.intercept(values[1][indexs[1]]))
- let date = parseInt(values[2] ? this.intercept(values[2][indexs[2]]) : 1)
- let hour = 0, minute = 0
- // 此月份的最大天数
- const maxDate = dayjs(`${year}-${month}`).daysInMonth()
- // year-month模式下,date不会出现在列中,设置为1,为了符合后边需要减1的需求
- if (this.mode === 'year-month') {
- date = 1
- }
- // 不允许超过maxDate值
- date = Math.min(maxDate, date)
- if (this.mode === 'datetime') {
- hour = parseInt(this.intercept(values[3][indexs[3]]))
- minute = parseInt(this.intercept(values[4][indexs[4]]))
- }
- // 转为时间模式
- selectValue = Number(new Date(year, month - 1, date, hour, minute))
- }
- // 取出准确的合法值,防止超越边界的情况
- selectValue = this.correctValue(selectValue)
- this.innerValue = selectValue
- this.updateColumnValue(selectValue)
- // 发出change时间,value为当前选中的时间戳
- this.$emit('change', {
- value: selectValue,
- // #ifndef MP-WEIXIN || MP-TOUTIAO
- // 微信小程序不能传递this实例,会因为循环引用而报错
- picker: this.$refs.picker,
- // #endif
- mode: this.mode
- })
- },
- // 更新各列的值,进行补0、格式化等操作
- updateColumnValue(value) {
- this.innerValue = value
- this.updateColumns()
- this.updateIndexs(value)
- },
- // 更新索引
- updateIndexs(value) {
- let values = []
- const formatter = this.formatter || this.innerFormatter
- const padZero = uni.$u.padZero
- if (this.mode === 'time') {
- // 将time模式的时间用:分隔成数组
- const timeArr = value.split(':')
- // 使用formatter格式化方法进行管道处理
- values = [formatter('hour', timeArr[0]), formatter('minute', timeArr[1])]
- } else {
- const date = new Date(value)
- values = [
- formatter('year', `${dayjs(value).year()}`),
- // 月份补0
- formatter('month', padZero(dayjs(value).month() + 1))
- ]
- if (this.mode === 'date') {
- // date模式,需要添加天列
- values.push(formatter('day', padZero(dayjs(value).date())))
- }
- if (this.mode === 'datetime') {
- // 数组的push方法,可以写入多个参数
- values.push(formatter('day', padZero(dayjs(value).date())), formatter('hour', padZero(dayjs(value).hour())), formatter('minute', padZero(dayjs(value).minute())))
- }
- }
-
- // 根据当前各列的所有值,从各列默认值中找到默认值在各列中的索引
- const indexs = this.columns.map((column, index) => {
- // 通过取大值,可以保证不会出现找不到索引的-1情况
- return Math.max(0, column.findIndex(item => item === values[index]))
- })
- this.innerDefaultIndex = indexs
- },
- // 更新各列的值
- updateColumns() {
- const formatter = this.formatter || this.innerFormatter
- // 获取各列的值,并且map后,对各列的具体值进行补0操作
- const results = this.getOriginColumns().map((column) => column.values.map((value) => formatter(column.type, value)))
- this.columns = results
- },
- getOriginColumns() {
- // 生成各列的值
- const results = this.getRanges().map(({ type, range }) => {
- let values = times(range[1] - range[0] + 1, (index) => {
- let value = range[0] + index
- value = type === 'year' ? `${value}` : uni.$u.padZero(value)
- return value
- })
- // 进行过滤
- if (this.filter) {
- values = this.filter(type, values)
- }
- return { type, values }
- })
- return results
- },
- // 通过最大值和最小值生成数组
- generateArray(start, end) {
- return Array.from(new Array(end + 1).keys()).slice(start)
- },
- // 得出合法的时间
- correctValue(value) {
- const isDateMode = this.mode !== 'time'
- if (isDateMode && !uni.$u.test.date(value)) {
- // 如果是日期类型,但是又没有设置合法的当前时间的话,使用最小时间为当前时间
- value = this.minDate
- } else if (!isDateMode && !value) {
- // 如果是时间类型,而又没有默认值的话,就用最小时间
- value = `${uni.$u.padZero(this.minHour)}:${uni.$u.padZero(this.minMinute)}`
- }
- // 时间类型
- if (!isDateMode) {
- if (String(value).indexOf(':') === -1) return uni.$u.error('时间错误,请传递如12:24的格式')
- let [hour, minute] = value.split(':')
- // 对时间补零,同时控制在最小值和最大值之间
- hour = uni.$u.padZero(uni.$u.range(this.minHour, this.maxHour, Number(hour)))
- minute = uni.$u.padZero(uni.$u.range(this.minMinute, this.maxMinute, Number(minute)))
- return `${ hour }:${ minute }`
- } else {
- // 如果是日期格式,控制在最小日期和最大日期之间
- value = dayjs(value).isBefore(dayjs(this.minDate)) ? this.minDate : value
- value = dayjs(value).isAfter(dayjs(this.maxDate)) ? this.maxDate : value
- return value
- }
- },
- // 获取每列的最大和最小值
- getRanges() {
- if (this.mode === 'time') {
- return [
- {
- type: 'hour',
- range: [this.minHour, this.maxHour],
- },
- {
- type: 'minute',
- range: [this.minMinute, this.maxMinute],
- },
- ];
- }
- const { maxYear, maxDate, maxMonth, maxHour, maxMinute, } = this.getBoundary('max', this.innerValue);
- const { minYear, minDate, minMonth, minHour, minMinute, } = this.getBoundary('min', this.innerValue);
- const result = [
- {
- type: 'year',
- range: [minYear, maxYear],
- },
- {
- type: 'month',
- range: [minMonth, maxMonth],
- },
- {
- type: 'day',
- range: [minDate, maxDate],
- },
- {
- type: 'hour',
- range: [minHour, maxHour],
- },
- {
- type: 'minute',
- range: [minMinute, maxMinute],
- },
- ];
- if (this.mode === 'date')
- result.splice(3, 2);
- if (this.mode === 'year-month')
- result.splice(2, 3);
- return result;
- },
- // 根据minDate、maxDate、minHour、maxHour等边界值,判断各列的开始和结束边界值
- getBoundary(type, innerValue) {
- const value = new Date(innerValue)
- const boundary = new Date(this[`${type}Date`])
- const year = dayjs(boundary).year()
- let month = 1
- let date = 1
- let hour = 0
- let minute = 0
- if (type === 'max') {
- month = 12
- // 月份的天数
- date = dayjs(value).daysInMonth()
- hour = 23
- minute = 59
- }
- // 获取边界值,逻辑是:当年达到了边界值(最大或最小年),就检查月允许的最大和最小值,以此类推
- if (dayjs(value).year() === year) {
- month = dayjs(boundary).month() + 1
- if (dayjs(value).month() + 1 === month) {
- date = dayjs(boundary).date()
- if (dayjs(value).date() === date) {
- hour = dayjs(boundary).hour()
- if (dayjs(value).hour() === hour) {
- minute = dayjs(boundary).minute()
- }
- }
- }
- }
- return {
- [`${type}Year`]: year,
- [`${type}Month`]: month,
- [`${type}Date`]: date,
- [`${type}Hour`]: hour,
- [`${type}Minute`]: minute
- }
- },
- },
- }
-</script>
-
-<style lang="scss" scoped>
- @import '../../libs/css/components.scss';
-</style>
diff --git a/uni_modules/uview-ui/components/u-divider/props.js b/uni_modules/uview-ui/components/u-divider/props.js
deleted file mode 100644
index 1fa8359..0000000
--- a/uni_modules/uview-ui/components/u-divider/props.js
+++ /dev/null
@@ -1,44 +0,0 @@
-export default {
- props: {
- // 是否虚线
- dashed: {
- type: Boolean,
- default: uni.$u.props.divider.dashed
- },
- // 是否细线
- hairline: {
- type: Boolean,
- default: uni.$u.props.divider.hairline
- },
- // 是否以点替代文字,优先于text字段起作用
- dot: {
- type: Boolean,
- default: uni.$u.props.divider.dot
- },
- // 内容文本的位置,left-左边,center-中间,right-右边
- textPosition: {
- type: String,
- default: uni.$u.props.divider.textPosition
- },
- // 文本内容
- text: {
- type: [String, Number],
- default: uni.$u.props.divider.text
- },
- // 文本大小
- textSize: {
- type: [String, Number],
- default: uni.$u.props.divider.textSize
- },
- // 文本颜色
- textColor: {
- type: String,
- default: uni.$u.props.divider.textColor
- },
- // 线条颜色
- lineColor: {
- type: String,
- default: uni.$u.props.divider.lineColor
- }
- }
-}
diff --git a/uni_modules/uview-ui/components/u-divider/u-divider.vue b/uni_modules/uview-ui/components/u-divider/u-divider.vue
deleted file mode 100644
index b629da6..0000000
--- a/uni_modules/uview-ui/components/u-divider/u-divider.vue
+++ /dev/null
@@ -1,116 +0,0 @@
-<template>
- <view
- class="u-divider"
- :style="[$u.addStyle(customStyle)]"
- @tap="click"
- >
- <u-line
- :color="lineColor"
- :customStyle="leftLineStyle"
- :hairline="hairline"
- :dashed="dashed"
- ></u-line>
- <text
- v-if="dot"
- class="u-divider__dot"
- >●</text>
- <text
- v-else-if="text"
- class="u-divider__text"
- :style="[textStyle]"
- >{{text}}</text>
- <u-line
- :color="lineColor"
- :customStyle="rightLineStyle"
- :hairline="hairline"
- :dashed="dashed"
- ></u-line>
- </view>
-</template>
-
-<script>
- import props from './props.js';
- /**
- * divider 分割线
- * @description 区隔内容的分割线,一般用于页面底部"没有更多"的提示。
- * @tutorial https://www.uviewui.com/components/divider.html
- * @property {Boolean} dashed 是否虚线 (默认 false )
- * @property {Boolean} hairline 是否细线 (默认 true )
- * @property {Boolean} dot 是否以点替代文字,优先于text字段起作用 (默认 false )
- * @property {String} textPosition 内容文本的位置,left-左边,center-中间,right-右边 (默认 'center' )
- * @property {String | Number} text 文本内容
- * @property {String | Number} textSize 文本大小 (默认 14)
- * @property {String} textColor 文本颜色 (默认 '#909399' )
- * @property {String} lineColor 线条颜色 (默认 '#dcdfe6' )
- * @property {Object} customStyle 定义需要用到的外部样式
- *
- * @event {Function} click divider组件被点击时触发
- * @example <u-divider :color="color">锦瑟无端五十弦</u-divider>
- */
- export default {
- name:'u-divider',
- mixins: [uni.$u.mpMixin, uni.$u.mixin,props],
- computed: {
- textStyle() {
- const style = {}
- style.fontSize = uni.$u.addUnit(this.textSize)
- style.color = this.textColor
- return style
- },
- // 左边线条的的样式
- leftLineStyle() {
- const style = {}
- // 如果是在左边,设置左边的宽度为固定值
- if (this.textPosition === 'left') {
- style.width = '80rpx'
- } else {
- style.flex = 1
- }
- return style
- },
- // 右边线条的的样式
- rightLineStyle() {
- const style = {}
- // 如果是在右边,设置右边的宽度为固定值
- if (this.textPosition === 'right') {
- style.width = '80rpx'
- } else {
- style.flex = 1
- }
- return style
- }
- },
- methods: {
- // divider组件被点击时触发
- click() {
- this.$emit('click');
- }
- }
- }
-</script>
-
-<style lang="scss" scoped>
- @import '../../libs/css/components.scss';
- $u-divider-margin:15px 0 !default;
- $u-divider-text-margin:0 15px !default;
- $u-divider-dot-font-size:12px !default;
- $u-divider-dot-margin:0 12px !default;
- $u-divider-dot-color: #c0c4cc !default;
-
- .u-divider {
- @include flex;
- flex-direction: row;
- align-items: center;
- margin: $u-divider-margin;
-
- &__text {
- margin: $u-divider-text-margin;
- }
-
- &__dot {
- font-size: $u-divider-dot-font-size;
- margin: $u-divider-dot-margin;
- color: $u-divider-dot-color;
- }
- }
-</style>
diff --git a/uni_modules/uview-ui/components/u-dropdown-item/props.js b/uni_modules/uview-ui/components/u-dropdown-item/props.js
deleted file mode 100644
index 501a1f0..0000000
--- a/uni_modules/uview-ui/components/u-dropdown-item/props.js
+++ /dev/null
@@ -1,36 +0,0 @@
-export default {
- props: {
- // 当前选中项的value值
- value: {
- type: [Number, String, Array],
- default: ''
- },
- // 菜单项标题
- title: {
- type: [String, Number],
- default: ''
- },
- // 选项数据,如果传入了默认slot,此参数无效
- options: {
- type: Array,
- default() {
- return []
- }
- },
- // 是否禁用此菜单项
- disabled: {
- type: Boolean,
- default: false
- },
- // 下拉弹窗的高度
- height: {
- type: [Number, String],
- default: 'auto'
- },
- // 点击遮罩是否可以收起弹窗
- closeOnClickOverlay: {
- type: Boolean,
- default: true
- }
- }
-}
diff --git a/uni_modules/uview-ui/components/u-dropdown-item/u-dropdown-item.vue b/uni_modules/uview-ui/components/u-dropdown-item/u-dropdown-item.vue
deleted file mode 100644
index f830291..0000000
--- a/uni_modules/uview-ui/components/u-dropdown-item/u-dropdown-item.vue
+++ /dev/null
@@ -1,127 +0,0 @@
-<template>
- <view class="u-drawdown">
- <view
- class="u-dropdown__menu"
- :style="{
- height: $u.addUnit(height)
- }"
- ref="u-dropdown__menu"
- >
- <view
- class="u-dropdown__menu__item"
- v-for="(item, index) in menuList"
- :key="index"
- @tap.stop="clickHandler(item, index)"
- >
- <view class="u-dropdown__menu__item__content">
- <text
- class="u-dropdown__menu__item__content__text"
- :style="[index === current ? activeStyle : inactiveStyle]"
- >{{item.title}}</text>
- <view
- class="u-dropdown__menu__item__content__arrow"
- :class="[index === current && 'u-dropdown__menu__item__content__arrow--rotate']"
- >
- <u-icon
- :name="menuIcon"
- :size="$u.addUnit(menuIconSize)"
- ></u-icon>
- </view>
- </view>
- </view>
- </view>
- <view class="u-dropdown__content">
- <slot />
- </view>
- </view>
-</template>
-
-<script>
-import props from './props.js';
-/**
- * Dropdown
- * @description
- * @tutorial url
- * @property {String}
- * @event {Function}
- * @example
- */
-export default {
- name: 'u-dropdown',
- mixins: [uni.$u.mixin, props],
- data() {
- return {
- // �˵�����
- menuList: [],
- current: 0
- }
- },
- computed: {
-
- },
- created() {
- // �������������(u-dropdown-item)��this��������data��������������������С��������ѭ�����ö�����
- this.children = [];
- },
- methods: {
- clickHandler(item, index) {
- this.children.map(child => {
- if(child.title === item.title) {
- // this.queryRect('u-dropdown__menu').then(size => {
- child.$emit('click')
- child.setContentAnimate(child.show ? 0 : 300)
- child.show = !child.show
- // })
- } else {
- child.show = false
- child.setContentAnimate(0)
- }
- })
- },
- // ��ȡ��ǩ�ijߴ�λ��
- queryRect(el) {
- // #ifndef APP-NVUE
- // $uGetRectΪuView�Դ��Ľڵ��ѯ����������ĵ����ܣ�https://www.uviewui.com/js/getRect.html
- // ����ڲ�һ����this.$uGetRect�������Ϊthis.$u.getRect�����߹���һ�£����Ʋ�ͬ
- return new Promise(resolve => {
- this.$uGetRect(`.${el}`).then(size => {
- resolve(size)
- })
- })
- // #endif
-
- // #ifdef APP-NVUE
- // nvue�£�ʹ��domģ���ѯԪ�ظ߶�
- // ����һ��promise���õ��ô˷�����������ʹ��then�ص�
- return new Promise(resolve => {
- dom.getComponentRect(this.$refs[el], res => {
- resolve(res.size)
- })
- })
- // #endif
- },
- },
-}
-</script>
-
-<style lang="scss">
-@import '../../libs/css/components.scss';
-
-.u-dropdown {
-
- &__menu {
- @include flex;
-
- &__item {
- flex: 1;
- @include flex;
- justify-content: center;
-
- &__content {
- @include flex;
- align-items: center;
- }
- }
- }
-}
-</style>
diff --git a/uni_modules/uview-ui/components/u-dropdown/props.js b/uni_modules/uview-ui/components/u-dropdown/props.js
deleted file mode 100644
index 5f8465e..0000000
--- a/uni_modules/uview-ui/components/u-dropdown/props.js
+++ /dev/null
@@ -1,65 +0,0 @@
-export default {
- props: {
- // 标题选中时的样式
- activeStyle: {
- type: [String, Object],
- default: () => ({
- color: '#2979ff',
- fontSize: '14px'
- })
- },
- // 标题未选中时的样式
- inactiveStyle: {
- type: [String, Object],
- default: () => ({
- color: '#606266',
- fontSize: '14px'
- })
- },
- // 点击遮罩是否关闭菜单
- closeOnClickMask: {
- type: Boolean,
- default: true
- },
- // 点击当前激活项标题是否关闭菜单
- closeOnClickSelf: {
- type: Boolean,
- default: true
- },
- // 过渡时间
- duration: {
- type: [Number, String],
- default: 300
- },
- // 标题菜单的高度
- height: {
- type: [Number, String],
- default: 40
- },
- // 是否显示下边框
- borderBottom: {
- type: Boolean,
- default: false
- },
- // 标题的字体大小
- titleSize: {
- type: [Number, String],
- default: 14
- },
- // 下拉出来的内容部分的圆角值
- borderRadius: {
- type: [Number, String],
- default: 0
- },
- // 菜单右侧的icon图标
- menuIcon: {
- type: String,
- default: 'arrow-down'
- },
- // 菜单右侧图标的大小
- menuIconSize: {
- type: [Number, String],
- default: 14
- }
- }
-}
diff --git a/uni_modules/uview-ui/components/u-dropdown/u-dropdown.vue b/uni_modules/uview-ui/components/u-dropdown/u-dropdown.vue
deleted file mode 100644
index f830291..0000000
--- a/uni_modules/uview-ui/components/u-dropdown/u-dropdown.vue
+++ /dev/null
@@ -1,127 +0,0 @@
-<template>
- <view class="u-drawdown">
- <view
- class="u-dropdown__menu"
- :style="{
- height: $u.addUnit(height)
- }"
- ref="u-dropdown__menu"
- >
- <view
- class="u-dropdown__menu__item"
- v-for="(item, index) in menuList"
- :key="index"
- @tap.stop="clickHandler(item, index)"
- >
- <view class="u-dropdown__menu__item__content">
- <text
- class="u-dropdown__menu__item__content__text"
- :style="[index === current ? activeStyle : inactiveStyle]"
- >{{item.title}}</text>
- <view
- class="u-dropdown__menu__item__content__arrow"
- :class="[index === current && 'u-dropdown__menu__item__content__arrow--rotate']"
- >
- <u-icon
- :name="menuIcon"
- :size="$u.addUnit(menuIconSize)"
- ></u-icon>
- </view>
- </view>
- </view>
- </view>
- <view class="u-dropdown__content">
- <slot />
- </view>
- </view>
-</template>
-
-<script>
-import props from './props.js';
-/**
- * Dropdown
- * @description
- * @tutorial url
- * @property {String}
- * @event {Function}
- * @example
- */
-export default {
- name: 'u-dropdown',
- mixins: [uni.$u.mixin, props],
- data() {
- return {
- // �˵�����
- menuList: [],
- current: 0
- }
- },
- computed: {
-
- },
- created() {
- // �������������(u-dropdown-item)��this��������data��������������������С��������ѭ�����ö�����
- this.children = [];
- },
- methods: {
- clickHandler(item, index) {
- this.children.map(child => {
- if(child.title === item.title) {
- // this.queryRect('u-dropdown__menu').then(size => {
- child.$emit('click')
- child.setContentAnimate(child.show ? 0 : 300)
- child.show = !child.show
- // })
- } else {
- child.show = false
- child.setContentAnimate(0)
- }
- })
- },
- // ��ȡ��ǩ�ijߴ�λ��
- queryRect(el) {
- // #ifndef APP-NVUE
- // $uGetRectΪuView�Դ��Ľڵ��ѯ����������ĵ����ܣ�https://www.uviewui.com/js/getRect.html
- // ����ڲ�һ����this.$uGetRect�������Ϊthis.$u.getRect�����߹���һ�£����Ʋ�ͬ
- return new Promise(resolve => {
- this.$uGetRect(`.${el}`).then(size => {
- resolve(size)
- })
- })
- // #endif
-
- // #ifdef APP-NVUE
- // nvue�£�ʹ��domģ���ѯԪ�ظ߶�
- // ����һ��promise���õ��ô˷�����������ʹ��then�ص�
- return new Promise(resolve => {
- dom.getComponentRect(this.$refs[el], res => {
- resolve(res.size)
- })
- })
- // #endif
- },
- },
-}
-</script>
-
-<style lang="scss">
-@import '../../libs/css/components.scss';
-
-.u-dropdown {
-
- &__menu {
- @include flex;
-
- &__item {
- flex: 1;
- @include flex;
- justify-content: center;
-
- &__content {
- @include flex;
- align-items: center;
- }
- }
- }
-}
-</style>
diff --git a/uni_modules/uview-ui/components/u-empty/props.js b/uni_modules/uview-ui/components/u-empty/props.js
deleted file mode 100644
index 78662f8..0000000
--- a/uni_modules/uview-ui/components/u-empty/props.js
+++ /dev/null
@@ -1,59 +0,0 @@
-export default {
- props: {
- // 内置图标名称,或图片路径,建议绝对路径
- icon: {
- type: String,
- default: uni.$u.props.empty.icon
- },
- // 提示文字
- text: {
- type: String,
- default: uni.$u.props.empty.text
- },
- // 文字颜色
- textColor: {
- type: String,
- default: uni.$u.props.empty.textColor
- },
- // 文字大小
- textSize: {
- type: [String, Number],
- default: uni.$u.props.empty.textSize
- },
- // 图标的颜色
- iconColor: {
- type: String,
- default: uni.$u.props.empty.iconColor
- },
- // 图标的大小
- iconSize: {
- type: [String, Number],
- default: uni.$u.props.empty.iconSize
- },
- // 选择预置的图标类型
- mode: {
- type: String,
- default: uni.$u.props.empty.mode
- },
- // 图标宽度,单位px
- width: {
- type: [String, Number],
- default: uni.$u.props.empty.width
- },
- // 图标高度,单位px
- height: {
- type: [String, Number],
- default: uni.$u.props.empty.height
- },
- // 是否显示组件
- show: {
- type: Boolean,
- default: uni.$u.props.empty.show
- },
- // 组件距离上一个元素之间的距离,默认px单位
- marginTop: {
- type: [String, Number],
- default: uni.$u.props.empty.marginTop
- }
- }
-}
diff --git a/uni_modules/uview-ui/components/u-empty/u-empty.vue b/uni_modules/uview-ui/components/u-empty/u-empty.vue
deleted file mode 100644
index 03d6a27..0000000
--- a/uni_modules/uview-ui/components/u-empty/u-empty.vue
+++ /dev/null
@@ -1,128 +0,0 @@
-<template>
- <view
- class="u-empty"
- :style="[emptyStyle]"
- v-if="show"
- >
- <u-icon
- v-if="!isSrc"
- :name="mode === 'message' ? 'chat' : `empty-${mode}`"
- :size="iconSize"
- :color="iconColor"
- margin-top="14"
- ></u-icon>
- <image
- v-else
- :style="{
- width: $u.addUnit(width),
- height: $u.addUnit(height),
- }"
- :src="icon"
- mode="widthFix"
- ></image>
- <text
- class="u-empty__text"
- :style="[textStyle]"
- >{{text ? text : icons[mode]}}</text>
- <view class="u-empty__wrap" v-if="$slots.default || $slots.$default">
- <slot />
- </view>
- </view>
-</template>
-
-<script>
- import props from './props.js';
-
- /**
- * empty 内容为空
- * @description 该组件用于需要加载内容,但是加载的第一页数据就为空,提示一个"没有内容"的场景, 我们精心挑选了十几个场景的图标,方便您使用。
- * @tutorial https://www.uviewui.com/components/empty.html
- * @property {String} icon 内置图标名称,或图片路径,建议绝对路径
- * @property {String} text 提示文字
- * @property {String} textColor 文字颜色 (默认 '#c0c4cc' )
- * @property {String | Number} textSize 文字大小 (默认 14 )
- * @property {String} iconColor 图标的颜色 (默认 '#c0c4cc' )
- * @property {String | Number} iconSize 图标的大小 (默认 90 )
- * @property {String} mode 选择预置的图标类型 (默认 'data' )
- * @property {String | Number} width 图标宽度,单位px (默认 160 )
- * @property {String | Number} height 图标高度,单位px (默认 160 )
- * @property {Boolean} show 是否显示组件 (默认 true )
- * @property {String | Number} marginTop 组件距离上一个元素之间的距离,默认px单位 (默认 0 )
- * @property {Object} customStyle 定义需要用到的外部样式
- *
- * @event {Function} click 点击组件时触发
- * @event {Function} close 点击关闭按钮时触发
- * @example <u-empty text="所谓伊人,在水一方" mode="list"></u-empty>
- */
- export default {
- name: "u-empty",
- mixins: [uni.$u.mpMixin, uni.$u.mixin, props],
- data() {
- return {
- icons: {
- car: '购物车为空',
- page: '页面不存在',
- search: '没有搜索结果',
- address: '没有收货地址',
- wifi: '没有WiFi',
- order: '订单为空',
- coupon: '没有优惠券',
- favor: '暂无收藏',
- permission: '无权限',
- history: '无历史记录',
- news: '无新闻列表',
- message: '消息列表为空',
- list: '列表为空',
- data: '数据为空',
- comment: '暂无评论',
- }
- }
- },
- computed: {
- // 组件样式
- emptyStyle() {
- const style = {}
- style.marginTop = uni.$u.addUnit(this.marginTop)
- // 合并customStyle样式,此参数通过mixin中的props传递
- return uni.$u.deepMerge(uni.$u.addStyle(this.customStyle), style)
- },
- // 文本样式
- textStyle() {
- const style = {}
- style.color = this.textColor
- style.fontSize = uni.$u.addUnit(this.textSize)
- return style
- },
- // 判断icon是否图片路径
- isSrc() {
- return this.icon.indexOf('/') >= 0
- }
- }
- }
-</script>
-
-<style lang="scss" scoped>
- @import '../../libs/css/components.scss';
- $u-empty-text-margin-top:20rpx !default;
- $u-empty-slot-margin-top:20rpx !default;
-
- .u-empty {
- @include flex;
- flex-direction: column;
- justify-content: center;
- align-items: center;
-
- &__text {
- @include flex;
- justify-content: center;
- align-items: center;
- margin-top: $u-empty-text-margin-top;
- }
- }
- .u-slot-wrap {
- @include flex;
- justify-content: center;
- align-items: center;
- margin-top:$u-empty-slot-margin-top;
- }
-</style>
diff --git a/uni_modules/uview-ui/components/u-form-item/props.js b/uni_modules/uview-ui/components/u-form-item/props.js
deleted file mode 100644
index 7b16655..0000000
--- a/uni_modules/uview-ui/components/u-form-item/props.js
+++ /dev/null
@@ -1,48 +0,0 @@
-export default {
- props: {
- // input的label提示语
- label: {
- type: String,
- default: uni.$u.props.formItem.label
- },
- // 绑定的值
- prop: {
- type: String,
- default: uni.$u.props.formItem.prop
- },
- // 是否显示表单域的下划线边框
- borderBottom: {
- type: [String, Boolean],
- default: uni.$u.props.formItem.borderBottom
- },
- // label的位置,left-左边,top-上边
- labelPosition: {
- type: String,
- default: uni.$u.props.formItem.labelPosition
- },
- // label的宽度,单位px
- labelWidth: {
- type: [String, Number],
- default: uni.$u.props.formItem.labelWidth
- },
- // 右侧图标
- rightIcon: {
- type: String,
- default: uni.$u.props.formItem.rightIcon
- },
- // 左侧图标
- leftIcon: {
- type: String,
- default: uni.$u.props.formItem.leftIcon
- },
- // 是否显示左边的必填星号,只作显示用,具体校验必填的逻辑,请在rules中配置
- required: {
- type: Boolean,
- default: uni.$u.props.formItem.required
- },
- leftIconStyle: {
- type: [String, Object],
- default: uni.$u.props.formItem.leftIconStyle,
- }
- }
-}
diff --git a/uni_modules/uview-ui/components/u-form-item/u-form-item.vue b/uni_modules/uview-ui/components/u-form-item/u-form-item.vue
deleted file mode 100644
index 6aa8d69..0000000
--- a/uni_modules/uview-ui/components/u-form-item/u-form-item.vue
+++ /dev/null
@@ -1,235 +0,0 @@
-<template>
- <view class="u-form-item">
- <view
- class="u-form-item__body"
- @tap="clickHandler"
- :style="[$u.addStyle(customStyle), {
- flexDirection: (labelPosition || parentData.labelPosition) === 'left' ? 'row' : 'column'
- }]"
- >
- <!-- 微信小程序中,将一个参数设置空字符串,结果会变成字符串"true" -->
- <slot name="label">
- <!-- {{required}} -->
- <view
- class="u-form-item__body__left"
- v-if="required || leftIcon || label"
- :style="{
- width: $u.addUnit(labelWidth || parentData.labelWidth),
- marginBottom: parentData.labelPosition === 'left' ? 0 : '5px',
- }"
- >
- <!-- 为了块对齐 -->
- <view class="u-form-item__body__left__content">
- <!-- nvue不支持伪元素before -->
- <text
- v-if="required"
- class="u-form-item__body__left__content__required"
- >*</text>
- <view
- class="u-form-item__body__left__content__icon"
- v-if="leftIcon"
- >
- <u-icon
- :name="leftIcon"
- :custom-style="leftIconStyle"
- ></u-icon>
- </view>
- <text
- class="u-form-item__body__left__content__label"
- :style="[parentData.labelStyle, {
- justifyContent: parentData.labelAlign === 'left' ? 'flex-start' : parentData.labelAlign === 'center' ? 'center' : 'flex-end'
- }]"
- >{{ label }}</text>
- </view>
- </view>
- </slot>
- <view class="u-form-item__body__right">
- <view class="u-form-item__body__right__content">
- <view class="u-form-item__body__right__content__slot">
- <slot />
- </view>
- <view
- class="item__body__right__content__icon"
- v-if="$slots.right"
- >
- <slot name="right" />
- </view>
- </view>
- </view>
- </view>
- <slot name="error">
- <text
- v-if="!!message && parentData.errorType === 'message'"
- class="u-form-item__body__right__message"
- :style="{
- marginLeft: $u.addUnit(parentData.labelPosition === 'top' ? 0 : (labelWidth || parentData.labelWidth))
- }"
- >{{ message }}</text>
- </slot>
- <u-line
- v-if="borderBottom"
- :color="message && parentData.errorType === 'border-bottom' ? $u.color.error : propsLine.color"
- :customStyle="`margin-top: ${message && parentData.errorType === 'message' ? '5px' : 0}`"
- ></u-line>
- </view>
-</template>
-
-<script>
- import props from './props.js';
- /**
- * Form 表单
- * @description 此组件一般用于表单场景,可以配置Input输入框,Select弹出框,进行表单验证等。
- * @tutorial https://www.uviewui.com/components/form.html
- * @property {String} label input的label提示语
- * @property {String} prop 绑定的值
- * @property {String | Boolean} borderBottom 是否显示表单域的下划线边框
- * @property {String | Number} labelWidth label的宽度,单位px
- * @property {String} rightIcon 右侧图标
- * @property {String} leftIcon 左侧图标
- * @property {String | Object} leftIconStyle 左侧图标的样式
- * @property {Boolean} required 是否显示左边的必填星号,只作显示用,具体校验必填的逻辑,请在rules中配置 (默认 false )
- *
- * @example <u-form-item label="姓名" prop="userInfo.name" borderBottom ref="item1"></u-form-item>
- */
- export default {
- name: 'u-form-item',
- mixins: [uni.$u.mpMixin, uni.$u.mixin, props],
- data() {
- return {
- // 错误提示语
- message: '',
- parentData: {
- // 提示文本的位置
- labelPosition: 'left',
- // 提示文本对齐方式
- labelAlign: 'left',
- // 提示文本的样式
- labelStyle: {},
- // 提示文本的宽度
- labelWidth: 45,
- // 错误提示方式
- errorType: 'message'
- }
- }
- },
- // 组件创建完成时,将当前实例保存到u-form中
- computed: {
- propsLine() {
- return uni.$u.props.line
- }
- },
- mounted() {
- this.init()
- },
- methods: {
- init() {
- // 父组件的实例
- this.updateParentData()
- if (!this.parent) {
- uni.$u.error('u-form-item需要结合u-form组件使用')
- }
- },
- // 获取父组件的参数
- updateParentData() {
- // 此方法写在mixin中
- this.getParentData('u-form');
- },
- // 移除u-form-item的校验结果
- clearValidate() {
- this.message = null
- },
- // 清空当前的组件的校验结果,并重置为初始值
- resetField() {
- // 找到原始值
- const value = uni.$u.getProperty(this.parent.originalModel, this.prop)
- // 将u-form的model的prop属性链还原原始值
- uni.$u.setProperty(this.parent.model, this.prop, value)
- // 移除校验结果
- this.message = null
- },
- // 点击组件
- clickHandler() {
- this.$emit('click')
- }
- },
- }
-</script>
-
-<style lang="scss" scoped>
- @import "../../libs/css/components.scss";
-
- .u-form-item {
- @include flex(column);
- font-size: 14px;
- color: $u-main-color;
-
- &__body {
- @include flex;
- padding: 10px 0;
-
- &__left {
- @include flex;
- align-items: center;
-
- &__content {
- position: relative;
- @include flex;
- align-items: center;
- padding-right: 10rpx;
- flex: 1;
-
- &__icon {
- margin-right: 8rpx;
- }
-
- &__required {
- position: absolute;
- left: -9px;
- color: $u-error;
- line-height: 20px;
- font-size: 20px;
- top: 3px;
- }
-
- &__label {
- @include flex;
- align-items: center;
- flex: 1;
- color: $u-main-color;
- font-size: 15px;
- }
- }
- }
-
- &__right {
- flex: 1;
-
- &__content {
- @include flex;
- align-items: center;
- flex: 1;
-
- &__slot {
- flex: 1;
- /* #ifndef MP */
- @include flex;
- align-items: center;
- /* #endif */
- }
-
- &__icon {
- margin-left: 10rpx;
- color: $u-light-color;
- font-size: 30rpx;
- }
- }
-
- &__message {
- font-size: 12px;
- line-height: 12px;
- color: $u-error;
- }
- }
- }
- }
-</style>
diff --git a/uni_modules/uview-ui/components/u-form/props.js b/uni_modules/uview-ui/components/u-form/props.js
deleted file mode 100644
index f2a629c..0000000
--- a/uni_modules/uview-ui/components/u-form/props.js
+++ /dev/null
@@ -1,45 +0,0 @@
-export default {
- props: {
- // 当前form的需要验证字段的集合
- model: {
- type: Object,
- default: uni.$u.props.form.model
- },
- // 验证规则
- rules: {
- type: [Object, Function, Array],
- default: uni.$u.props.form.rules
- },
- // 有错误时的提示方式,message-提示信息,toast-进行toast提示
- // border-bottom-下边框呈现红色,none-无提示
- errorType: {
- type: String,
- default: uni.$u.props.form.errorType
- },
- // 是否显示表单域的下划线边框
- borderBottom: {
- type: Boolean,
- default: uni.$u.props.form.borderBottom
- },
- // label的位置,left-左边,top-上边
- labelPosition: {
- type: String,
- default: uni.$u.props.form.labelPosition
- },
- // label的宽度,单位px
- labelWidth: {
- type: [String, Number],
- default: uni.$u.props.form.labelWidth
- },
- // lable字体的对齐方式
- labelAlign: {
- type: String,
- default: uni.$u.props.form.labelAlign
- },
- // lable的样式,对象形式
- labelStyle: {
- type: Object,
- default: uni.$u.props.form.labelStyle
- }
- }
-}
diff --git a/uni_modules/uview-ui/components/u-form/u-form.vue b/uni_modules/uview-ui/components/u-form/u-form.vue
deleted file mode 100644
index fe2dde2..0000000
--- a/uni_modules/uview-ui/components/u-form/u-form.vue
+++ /dev/null
@@ -1,214 +0,0 @@
-<template>
- <view class="u-form">
- <slot />
- </view>
-</template>
-
-<script>
- import props from "./props.js";
- import Schema from "../../libs/util/async-validator";
- // 去除警告信息
- Schema.warning = function() {};
- /**
- * Form 表单
- * @description 此组件一般用于表单场景,可以配置Input输入框,Select弹出框,进行表单验证等。
- * @tutorial https://www.uviewui.com/components/form.html
- * @property {Object} model 当前form的需要验证字段的集合
- * @property {Object | Function | Array} rules 验证规则
- * @property {String} errorType 错误的提示方式,见上方说明 ( 默认 message )
- * @property {Boolean} borderBottom 是否显示表单域的下划线边框 ( 默认 true )
- * @property {String} labelPosition 表单域提示文字的位置,left-左侧,top-上方 ( 默认 'left' )
- * @property {String | Number} labelWidth 提示文字的宽度,单位px ( 默认 45 )
- * @property {String} labelAlign lable字体的对齐方式 ( 默认 ‘left' )
- * @property {Object} labelStyle lable的样式,对象形式
- * @example <u--formlabelPosition="left" :model="model1" :rules="rules" ref="form1"></u--form>
- */
- export default {
- name: "u-form",
- mixins: [uni.$u.mpMixin, uni.$u.mixin, props],
- provide() {
- return {
- uForm: this,
- };
- },
- data() {
- return {
- formRules: {},
- // 规则校验器
- validator: {},
- // 原始的model快照,用于resetFields方法重置表单时使用
- originalModel: null,
- };
- },
- watch: {
- // 监听规则的变化
- rules: {
- immediate: true,
- handler(n) {
- this.setRules(n);
- },
- },
- // 监听属性的变化,通知子组件u-form-item重新获取信息
- propsChange(n) {
- if (this.children?.length) {
- this.children.map((child) => {
- // 判断子组件(u-form-item)如果有updateParentData方法的话,就就执行(执行的结果是子组件重新从父组件拉取了最新的值)
- typeof child.updateParentData == "function" &&
- child.updateParentData();
- });
- }
- },
- // 监听model的初始值作为重置表单的快照
- model: {
- immediate: true,
- handler(n) {
- if (!this.originalModel) {
- this.originalModel = uni.$u.deepClone(n);
- }
- },
- },
- },
- computed: {
- propsChange() {
- return [
- this.errorType,
- this.borderBottom,
- this.labelPosition,
- this.labelWidth,
- this.labelAlign,
- this.labelStyle,
- ];
- },
- },
- created() {
- // 存储当前form下的所有u-form-item的实例
- // 不能定义在data中,否则微信小程序会造成循环引用而报错
- this.children = [];
- },
- methods: {
- // 手动设置校验的规则,如果规则中有函数的话,微信小程序中会过滤掉,所以只能手动调用设置规则
- setRules(rules) {
- // 判断是否有规则
- if (Object.keys(rules).length === 0) return;
- if (process.env.NODE_ENV === 'development' && Object.keys(this.model).length === 0) {
- uni.$u.error('设置rules,model必须设置!如果已经设置,请刷新页面。');
- return;
- };
- this.formRules = rules;
- // 重新将规则赋予Validator
- this.validator = new Schema(rules);
- },
- // 清空所有u-form-item组件的内容,本质上是调用了u-form-item组件中的resetField()方法
- resetFields() {
- this.resetModel();
- },
- // 重置model为初始值的快照
- resetModel(obj) {
- // 历遍所有u-form-item,根据其prop属性,还原model的原始快照
- this.children.map((child) => {
- const prop = child?.prop;
- const value = uni.$u.getProperty(this.originalModel, prop);
- uni.$u.setProperty(this.model, prop, value);
- });
- },
- // 清空校验结果
- clearValidate(props) {
- props = [].concat(props);
- this.children.map((child) => {
- // 如果u-form-item的prop在props数组中,则清除对应的校验结果信息
- if (props[0] === undefined || props.includes(child.prop)) {
- child.message = null;
- }
- });
- },
- // 对部分表单字段进行校验
- async validateField(value, callback, event = null) {
- // $nextTick是必须的,否则model的变更,可能会延后于此方法的执行
- this.$nextTick(() => {
- // 校验错误信息,返回给回调方法,用于存放所有form-item的错误信息
- const errorsRes = [];
- // 如果为字符串,转为数组
- value = [].concat(value);
- // 历遍children所有子form-item
- this.children.map((child) => {
- // 用于存放form-item的错误信息
- const childErrors = [];
- if (value.includes(child.prop)) {
- // 获取对应的属性,通过类似'a.b.c'的形式
- const propertyVal = uni.$u.getProperty(
- this.model,
- child.prop
- );
- // 属性链数组
- const propertyChain = child.prop.split(".");
- const propertyName =
- propertyChain[propertyChain.length - 1];
-
- const rule = this.formRules[child.prop];
- // 如果不存在对应的规则,直接返回,否则校验器会报错
- if (!rule) return;
- // rule规则可为数组形式,也可为对象形式,此处拼接成为数组
- const rules = [].concat(rule);
-
- // 对rules数组进行校验
- for (let i = 0; i < rules.length; i++) {
- const ruleItem = rules[i];
- // 将u-form-item的触发器转为数组形式
- const trigger = [].concat(ruleItem?.trigger);
- // 如果是有传入触发事件,但是此form-item却没有配置此触发器的话,不执行校验操作
- if (event && !trigger.includes(event)) continue;
- // 实例化校验对象,传入构造规则
- const validator = new Schema({
- [propertyName]: ruleItem,
- });
- validator.validate({
- [propertyName]: propertyVal,
- },
- (errors, fields) => {
- if (uni.$u.test.array(errors)) {
- errorsRes.push(...errors);
- childErrors.push(...errors);
- }
- child.message =
- childErrors[0]?.message ?? null;
- }
- );
- }
- }
- });
- // 执行回调函数
- typeof callback === "function" && callback(errorsRes);
- });
- },
- // 校验全部数据
- validate(callback) {
- // 开发环境才提示,生产环境不会提示
- if (process.env.NODE_ENV === 'development' && Object.keys(this.formRules).length === 0) {
- uni.$u.error('未设置rules,请看文档说明!如果已经设置,请刷新页面。');
- return;
- }
- return new Promise((resolve, reject) => {
- // $nextTick是必须的,否则model的变更,可能会延后于validate方法
- this.$nextTick(() => {
- // 获取所有form-item的prop,交给validateField方法进行校验
- const formItemProps = this.children.map(
- (item) => item.prop
- );
- this.validateField(formItemProps, (errors) => {
- if(errors.length) {
- // 如果错误提示方式为toast,则进行提示
- this.errorType === 'toast' && uni.$u.toast(errors[0].message)
- reject(errors)
- } else {
- resolve(true)
- }
- });
- });
- });
- },
- },
- };
-</script>
-
-<style lang="scss" scoped>
-</style>
diff --git a/uni_modules/uview-ui/components/u-gap/props.js b/uni_modules/uview-ui/components/u-gap/props.js
deleted file mode 100644
index 89953e3..0000000
--- a/uni_modules/uview-ui/components/u-gap/props.js
+++ /dev/null
@@ -1,24 +0,0 @@
-export default {
- props: {
- // 背景颜色(默认transparent)
- bgColor: {
- type: String,
- default: uni.$u.props.gap.bgColor
- },
- // 分割槽高度,单位px(默认30)
- height: {
- type: [String, Number],
- default: uni.$u.props.gap.height
- },
- // 与上一个组件的距离
- marginTop: {
- type: [String, Number],
- default: uni.$u.props.gap.marginTop
- },
- // 与下一个组件的距离
- marginBottom: {
- type: [String, Number],
- default: uni.$u.props.gap.marginBottom
- }
- }
-}
diff --git a/uni_modules/uview-ui/components/u-gap/u-gap.vue b/uni_modules/uview-ui/components/u-gap/u-gap.vue
deleted file mode 100644
index e4429f0..0000000
--- a/uni_modules/uview-ui/components/u-gap/u-gap.vue
+++ /dev/null
@@ -1,38 +0,0 @@
-<template>
- <view class="u-gap" :style="[gapStyle]"></view>
-</template>
-
-<script>
- import props from './props.js';
- /**
- * gap 间隔槽
- * @description 该组件一般用于内容块之间的用一个灰色块隔开的场景,方便用户风格统一,减少工作量
- * @tutorial https://www.uviewui.com/components/gap.html
- * @property {String} bgColor 背景颜色 (默认 'transparent' )
- * @property {String | Number} height 分割槽高度,单位px (默认 20 )
- * @property {String | Number} marginTop 与前一个组件的距离,单位px( 默认 0 )
- * @property {String | Number} marginBottom 与后一个组件的距离,单位px (默认 0 )
- * @property {Object} customStyle 定义需要用到的外部样式
- *
- * @example <u-gap height="80" bg-color="#bbb"></u-gap>
- */
- export default {
- name: "u-gap",
- mixins: [uni.$u.mpMixin, uni.$u.mixin,props],
- computed: {
- gapStyle() {
- const style = {
- backgroundColor: this.bgColor,
- height: uni.$u.addUnit(this.height),
- marginTop: uni.$u.addUnit(this.marginTop),
- marginBottom: uni.$u.addUnit(this.marginBottom),
- }
- return uni.$u.deepMerge(style, uni.$u.addStyle(this.customStyle))
- }
- }
- };
-</script>
-
-<style lang="scss" scoped>
- @import "../../libs/css/components.scss";
-</style>
diff --git a/uni_modules/uview-ui/components/u-grid-item/props.js b/uni_modules/uview-ui/components/u-grid-item/props.js
deleted file mode 100644
index 06c3c66..0000000
--- a/uni_modules/uview-ui/components/u-grid-item/props.js
+++ /dev/null
@@ -1,14 +0,0 @@
-export default {
- props: {
- // 宫格的name
- name: {
- type: [String, Number, null],
- default: uni.$u.props.gridItem.name
- },
- // 背景颜色
- bgColor: {
- type: String,
- default: uni.$u.props.gridItem.bgColor
- }
- }
-}
diff --git a/uni_modules/uview-ui/components/u-grid-item/u-grid-item.vue b/uni_modules/uview-ui/components/u-grid-item/u-grid-item.vue
deleted file mode 100644
index fc0c7cf..0000000
--- a/uni_modules/uview-ui/components/u-grid-item/u-grid-item.vue
+++ /dev/null
@@ -1,209 +0,0 @@
-<template>
- <!-- #ifndef APP-NVUE -->
- <view
- class="u-grid-item"
- hover-class="u-grid-item--hover-class"
- :hover-stay-time="200"
- @tap="clickHandler"
- :class="classes"
- :style="[itemStyle]"
- >
- <slot />
- </view>
- <!-- #endif -->
- <!-- #ifdef APP-NVUE -->
- <view
- class="u-grid-item"
- :hover-stay-time="200"
- @tap="clickHandler"
- :class="classes"
- :style="[itemStyle]"
- >
- <slot />
- </view>
- <!-- #endif -->
-</template>
-
-<script>
- import props from './props.js';
- /**
- * gridItem 提示
- * @description 宫格组件一般用于同时展示多个同类项目的场景,可以给宫格的项目设置徽标组件(badge),或者图标等,也可以扩展为左右滑动的轮播形式。搭配u-grid使用
- * @tutorial https://www.uviewui.com/components/grid.html
- * @property {String | Number} name 宫格的name ( 默认 null )
- * @property {String} bgColor 宫格的背景颜色 (默认 'transparent' )
- * @property {Object} customStyle 自定义样式,对象形式
- * @event {Function} click 点击宫格触发
- * @example <u-grid-item></u-grid-item>
- */
- export default {
- name: "u-grid-item",
- mixins: [uni.$u.mpMixin, uni.$u.mixin,props],
- data() {
- return {
- parentData: {
- col: 3, // 父组件划分的宫格数
- border: true, // 是否显示边框,根据父组件决定
- },
- // #ifdef APP-NVUE
- width: 0, // nvue下才这么计算,vue下放到computed中,否则会因为延时造成闪烁
- // #endif
- classes: [], // 类名集合,用于判断是否显示右边和下边框
- };
- },
- mounted() {
- this.init()
- },
- computed: {
- // #ifndef APP-NVUE
- // vue下放到computed中,否则会因为延时造成闪烁
- width() {
- return 100 / Number(this.parentData.col) + '%'
- },
- // #endif
- itemStyle() {
- const style = {
- background: this.bgColor,
- width: this.width
- }
- return uni.$u.deepMerge(style, uni.$u.addStyle(this.customStyle))
- }
- },
- methods: {
- init() {
- // 用于在父组件u-grid的children中被添加入子组件时,
- // 重新计算item的边框
- uni.$on('$uGridItem', () => {
- this.gridItemClasses()
- })
- // 父组件的实例
- this.updateParentData()
- // #ifdef APP-NVUE
- // 获取元素该有的长度,nvue下要延时才准确
- this.$nextTick(function(){
- this.getItemWidth()
- })
- // #endif
- // 发出事件,通知所有的grid-item都重新计算自己的边框
- uni.$emit('$uGridItem')
- this.gridItemClasses()
- },
- // 获取父组件的参数
- updateParentData() {
- // 此方法写在mixin中
- this.getParentData('u-grid');
- },
- clickHandler() {
- let name = this.name
- // 如果没有设置name属性,历遍父组件的children数组,判断当前的元素是否和本实例this相等,找出当前组件的索引
- const children = this.parent?.children
- if(children && this.name === null) {
- name = children.findIndex(child => child === this)
- }
- // 调用父组件方法,发出事件
- this.parent && this.parent.childClick(name)
- this.$emit('click', name)
- },
- async getItemWidth() {
- // 如果是nvue,不能使用百分比,只能使用固定宽度
- let width = 0
- if(this.parent) {
- // 获取父组件宽度后,除以栅格数,得出每个item的宽度
- const parentWidth = await this.getParentWidth()
- width = parentWidth / Number(this.parentData.col) + 'px'
- }
- this.width = width
- },
- // 获取父元素的尺寸
- getParentWidth() {
- // #ifdef APP-NVUE
- // 返回一个promise,让调用者可以用await同步获取
- const dom = uni.requireNativePlugin('dom')
- return new Promise(resolve => {
- // 调用父组件的ref
- dom.getComponentRect(this.parent.$refs['u-grid'], res => {
- resolve(res.size.width)
- })
- })
- // #endif
- },
- gridItemClasses() {
- if(this.parentData.border) {
- const classes = []
- this.parent.children.map((child, index) =>{
- if(this === child) {
- const len = this.parent.children.length
- // 贴近右边屏幕边沿的child,并且最后一个(比如只有横向2个的时候),无需右边框
- if((index + 1) % this.parentData.col !== 0 && index + 1 !== len) {
- classes.push('u-border-right')
- }
- // 总的宫格数量对列数取余的值
- // 如果取余后,值为0,则意味着要将最后一排的宫格,都不需要下边框
- const lessNum = len % this.parentData.col === 0 ? this.parentData.col : len % this.parentData.col
- // 最下面的一排child,无需下边框
- if(index < len - lessNum) {
- classes.push('u-border-bottom')
- }
- }
- })
- // 支付宝,头条小程序无法动态绑定一个数组类名,否则解析出来的结果会带有",",而导致失效
- // #ifdef MP-ALIPAY || MP-TOUTIAO
- classes = classes.join(' ')
- // #endif
- this.classes = classes
- }
- }
- },
- beforeDestroy() {
- // 移除事件监听,释放性能
- uni.$off('$uGridItem')
- }
- };
-</script>
-
-<style lang="scss" scoped>
- @import "../../libs/css/components.scss";
- $u-grid-item-hover-class-opcatiy:.5 !default;
- $u-grid-item-margin-top:1rpx !default;
- $u-grid-item-border-right-width:0.5px !default;
- $u-grid-item-border-bottom-width:0.5px !default;
- $u-grid-item-border-right-color:$u-border-color !default;
- $u-grid-item-border-bottom-color:$u-border-color !default;
- .u-grid-item {
- align-items: center;
- justify-content: center;
- position: relative;
- flex-direction: column;
- /* #ifndef APP-NVUE */
- box-sizing: border-box;
- display: flex;
- /* #endif */
-
- /* #ifdef MP */
- position: relative;
- float: left;
- /* #endif */
-
- /* #ifdef MP-WEIXIN */
- margin-top:$u-grid-item-margin-top;
- /* #endif */
-
- &--hover-class {
- opacity:$u-grid-item-hover-class-opcatiy;
- }
- }
-
- /* #ifdef APP-NVUE */
- // 由于nvue不支持组件内引入app.vue中再引入的样式,所以需要写在这里
- .u-border-right {
- border-right-width:$u-grid-item-border-right-width;
- border-color: $u-grid-item-border-right-color;
- }
-
- .u-border-bottom {
- border-bottom-width:$u-grid-item-border-bottom-width;
- border-color:$u-grid-item-border-bottom-color;
- }
-
- /* #endif */
-</style>
diff --git a/uni_modules/uview-ui/components/u-grid/props.js b/uni_modules/uview-ui/components/u-grid/props.js
deleted file mode 100644
index 87b0f6a..0000000
--- a/uni_modules/uview-ui/components/u-grid/props.js
+++ /dev/null
@@ -1,19 +0,0 @@
-export default {
- props: {
- // 分成几列
- col: {
- type: [String, Number],
- default: uni.$u.props.grid.col
- },
- // 是否显示边框
- border: {
- type: Boolean,
- default: uni.$u.props.grid.border
- },
- // 宫格对齐方式,表现为数量少的时候,靠左,居中,还是靠右
- align: {
- type: String,
- default: uni.$u.props.grid.align
- }
- }
-}
diff --git a/uni_modules/uview-ui/components/u-grid/u-grid.vue b/uni_modules/uview-ui/components/u-grid/u-grid.vue
deleted file mode 100644
index b43cc27..0000000
--- a/uni_modules/uview-ui/components/u-grid/u-grid.vue
+++ /dev/null
@@ -1,97 +0,0 @@
-<template>
- <view
- class="u-grid"
- ref='u-grid'
- :style="[gridStyle]"
- >
- <slot />
- </view>
-</template>
-
-<script>
- import props from './props.js';
- /**
- * grid 宫格布局
- * @description 宫格组件一般用于同时展示多个同类项目的场景,可以给宫格的项目设置徽标组件(badge),或者图标等,也可以扩展为左右滑动的轮播形式。
- * @tutorial https://www.uviewui.com/components/grid.html
- * @property {String | Number} col 宫格的列数(默认 3 )
- * @property {Boolean} border 是否显示宫格的边框(默认 false )
- * @property {String} align 宫格对齐方式,表现为数量少的时候,靠左,居中,还是靠右 (默认 'left' )
- * @property {Object} customStyle 定义需要用到的外部样式
- * @event {Function} click 点击宫格触发
- * @example <u-grid :col="3" @click="click"></u-grid>
- */
- export default {
- name: 'u-grid',
- mixins: [uni.$u.mpMixin, uni.$u.mixin,props],
- data() {
- return {
- index: 0,
- width: 0
- }
- },
- watch: {
- // 当父组件需要子组件需要共享的参数发生了变化,手动通知子组件
- parentData() {
- if (this.children.length) {
- this.children.map(child => {
- // 判断子组件(u-radio)如果有updateParentData方法的话,就就执行(执行的结果是子组件重新从父组件拉取了最新的值)
- typeof(child.updateParentData) == 'function' && child.updateParentData();
- })
- }
- },
- },
- created() {
- // 如果将children定义在data中,在微信小程序会造成循环引用而报错
- this.children = []
- },
- computed: {
- // 计算父组件的值是否发生变化
- parentData() {
- return [this.hoverClass, this.col, this.size, this.border];
- },
- // 宫格对齐方式
- gridStyle() {
- let style = {};
- switch (this.align) {
- case 'left':
- style.justifyContent = 'flex-start';
- break;
- case 'center':
- style.justifyContent = 'center';
- break;
- case 'right':
- style.justifyContent = 'flex-end';
- break;
- default:
- style.justifyContent = 'flex-start';
- };
- return uni.$u.deepMerge(style, uni.$u.addStyle(this.customStyle));
- }
- },
- methods: {
- // 此方法由u-grid-item触发,用于在u-grid发出事件
- childClick(name) {
- this.$emit('click', name)
- }
- }
- };
-</script>
-
-<style lang="scss" scoped>
- @import "../../libs/css/components.scss";
- $u-grid-width:100% !default;
- .u-grid {
- /* #ifdef MP */
- width: $u-grid-width;
- position: relative;
- box-sizing: border-box;
- overflow: hidden;
- display: block;
- /* #endif */
- justify-content: center;
- @include flex;
- flex-wrap: wrap;
- align-items: center;
- }
-</style>
diff --git a/uni_modules/uview-ui/components/u-icon/icons.js b/uni_modules/uview-ui/components/u-icon/icons.js
deleted file mode 100644
index f4d0fe2..0000000
--- a/uni_modules/uview-ui/components/u-icon/icons.js
+++ /dev/null
@@ -1,214 +0,0 @@
-export default {
- 'uicon-level': '\ue693',
- 'uicon-column-line': '\ue68e',
- 'uicon-checkbox-mark': '\ue807',
- 'uicon-folder': '\ue7f5',
- 'uicon-movie': '\ue7f6',
- 'uicon-star-fill': '\ue669',
- 'uicon-star': '\ue65f',
- 'uicon-phone-fill': '\ue64f',
- 'uicon-phone': '\ue622',
- 'uicon-apple-fill': '\ue881',
- 'uicon-chrome-circle-fill': '\ue885',
- 'uicon-backspace': '\ue67b',
- 'uicon-attach': '\ue632',
- 'uicon-cut': '\ue948',
- 'uicon-empty-car': '\ue602',
- 'uicon-empty-coupon': '\ue682',
- 'uicon-empty-address': '\ue646',
- 'uicon-empty-favor': '\ue67c',
- 'uicon-empty-permission': '\ue686',
- 'uicon-empty-news': '\ue687',
- 'uicon-empty-search': '\ue664',
- 'uicon-github-circle-fill': '\ue887',
- 'uicon-rmb': '\ue608',
- 'uicon-person-delete-fill': '\ue66a',
- 'uicon-reload': '\ue788',
- 'uicon-order': '\ue68f',
- 'uicon-server-man': '\ue6bc',
- 'uicon-search': '\ue62a',
- 'uicon-fingerprint': '\ue955',
- 'uicon-more-dot-fill': '\ue630',
- 'uicon-scan': '\ue662',
- 'uicon-share-square': '\ue60b',
- 'uicon-map': '\ue61d',
- 'uicon-map-fill': '\ue64e',
- 'uicon-tags': '\ue629',
- 'uicon-tags-fill': '\ue651',
- 'uicon-bookmark-fill': '\ue63b',
- 'uicon-bookmark': '\ue60a',
- 'uicon-eye': '\ue613',
- 'uicon-eye-fill': '\ue641',
- 'uicon-mic': '\ue64a',
- 'uicon-mic-off': '\ue649',
- 'uicon-calendar': '\ue66e',
- 'uicon-calendar-fill': '\ue634',
- 'uicon-trash': '\ue623',
- 'uicon-trash-fill': '\ue658',
- 'uicon-play-left': '\ue66d',
- 'uicon-play-right': '\ue610',
- 'uicon-minus': '\ue618',
- 'uicon-plus': '\ue62d',
- 'uicon-info': '\ue653',
- 'uicon-info-circle': '\ue7d2',
- 'uicon-info-circle-fill': '\ue64b',
- 'uicon-question': '\ue715',
- 'uicon-error': '\ue6d3',
- 'uicon-close': '\ue685',
- 'uicon-checkmark': '\ue6a8',
- 'uicon-android-circle-fill': '\ue67e',
- 'uicon-android-fill': '\ue67d',
- 'uicon-ie': '\ue87b',
- 'uicon-IE-circle-fill': '\ue889',
- 'uicon-google': '\ue87a',
- 'uicon-google-circle-fill': '\ue88a',
- 'uicon-setting-fill': '\ue872',
- 'uicon-setting': '\ue61f',
- 'uicon-minus-square-fill': '\ue855',
- 'uicon-plus-square-fill': '\ue856',
- 'uicon-heart': '\ue7df',
- 'uicon-heart-fill': '\ue851',
- 'uicon-camera': '\ue7d7',
- 'uicon-camera-fill': '\ue870',
- 'uicon-more-circle': '\ue63e',
- 'uicon-more-circle-fill': '\ue645',
- 'uicon-chat': '\ue620',
- 'uicon-chat-fill': '\ue61e',
- 'uicon-bag-fill': '\ue617',
- 'uicon-bag': '\ue619',
- 'uicon-error-circle-fill': '\ue62c',
- 'uicon-error-circle': '\ue624',
- 'uicon-close-circle': '\ue63f',
- 'uicon-close-circle-fill': '\ue637',
- 'uicon-checkmark-circle': '\ue63d',
- 'uicon-checkmark-circle-fill': '\ue635',
- 'uicon-question-circle-fill': '\ue666',
- 'uicon-question-circle': '\ue625',
- 'uicon-share': '\ue631',
- 'uicon-share-fill': '\ue65e',
- 'uicon-shopping-cart': '\ue621',
- 'uicon-shopping-cart-fill': '\ue65d',
- 'uicon-bell': '\ue609',
- 'uicon-bell-fill': '\ue640',
- 'uicon-list': '\ue650',
- 'uicon-list-dot': '\ue616',
- 'uicon-zhihu': '\ue6ba',
- 'uicon-zhihu-circle-fill': '\ue709',
- 'uicon-zhifubao': '\ue6b9',
- 'uicon-zhifubao-circle-fill': '\ue6b8',
- 'uicon-weixin-circle-fill': '\ue6b1',
- 'uicon-weixin-fill': '\ue6b2',
- 'uicon-twitter-circle-fill': '\ue6ab',
- 'uicon-twitter': '\ue6aa',
- 'uicon-taobao-circle-fill': '\ue6a7',
- 'uicon-taobao': '\ue6a6',
- 'uicon-weibo-circle-fill': '\ue6a5',
- 'uicon-weibo': '\ue6a4',
- 'uicon-qq-fill': '\ue6a1',
- 'uicon-qq-circle-fill': '\ue6a0',
- 'uicon-moments-circel-fill': '\ue69a',
- 'uicon-moments': '\ue69b',
- 'uicon-qzone': '\ue695',
- 'uicon-qzone-circle-fill': '\ue696',
- 'uicon-baidu-circle-fill': '\ue680',
- 'uicon-baidu': '\ue681',
- 'uicon-facebook-circle-fill': '\ue68a',
- 'uicon-facebook': '\ue689',
- 'uicon-car': '\ue60c',
- 'uicon-car-fill': '\ue636',
- 'uicon-warning-fill': '\ue64d',
- 'uicon-warning': '\ue694',
- 'uicon-clock-fill': '\ue638',
- 'uicon-clock': '\ue60f',
- 'uicon-edit-pen': '\ue612',
- 'uicon-edit-pen-fill': '\ue66b',
- 'uicon-email': '\ue611',
- 'uicon-email-fill': '\ue642',
- 'uicon-minus-circle': '\ue61b',
- 'uicon-minus-circle-fill': '\ue652',
- 'uicon-plus-circle': '\ue62e',
- 'uicon-plus-circle-fill': '\ue661',
- 'uicon-file-text': '\ue663',
- 'uicon-file-text-fill': '\ue665',
- 'uicon-pushpin': '\ue7e3',
- 'uicon-pushpin-fill': '\ue86e',
- 'uicon-grid': '\ue673',
- 'uicon-grid-fill': '\ue678',
- 'uicon-play-circle': '\ue647',
- 'uicon-play-circle-fill': '\ue655',
- 'uicon-pause-circle-fill': '\ue654',
- 'uicon-pause': '\ue8fa',
- 'uicon-pause-circle': '\ue643',
- 'uicon-eye-off': '\ue648',
- 'uicon-eye-off-outline': '\ue62b',
- 'uicon-gift-fill': '\ue65c',
- 'uicon-gift': '\ue65b',
- 'uicon-rmb-circle-fill': '\ue657',
- 'uicon-rmb-circle': '\ue677',
- 'uicon-kefu-ermai': '\ue656',
- 'uicon-server-fill': '\ue751',
- 'uicon-coupon-fill': '\ue8c4',
- 'uicon-coupon': '\ue8ae',
- 'uicon-integral': '\ue704',
- 'uicon-integral-fill': '\ue703',
- 'uicon-home-fill': '\ue964',
- 'uicon-home': '\ue965',
- 'uicon-hourglass-half-fill': '\ue966',
- 'uicon-hourglass': '\ue967',
- 'uicon-account': '\ue628',
- 'uicon-plus-people-fill': '\ue626',
- 'uicon-minus-people-fill': '\ue615',
- 'uicon-account-fill': '\ue614',
- 'uicon-thumb-down-fill': '\ue726',
- 'uicon-thumb-down': '\ue727',
- 'uicon-thumb-up': '\ue733',
- 'uicon-thumb-up-fill': '\ue72f',
- 'uicon-lock-fill': '\ue979',
- 'uicon-lock-open': '\ue973',
- 'uicon-lock-opened-fill': '\ue974',
- 'uicon-lock': '\ue97a',
- 'uicon-red-packet-fill': '\ue690',
- 'uicon-photo-fill': '\ue98b',
- 'uicon-photo': '\ue98d',
- 'uicon-volume-off-fill': '\ue659',
- 'uicon-volume-off': '\ue644',
- 'uicon-volume-fill': '\ue670',
- 'uicon-volume': '\ue633',
- 'uicon-red-packet': '\ue691',
- 'uicon-download': '\ue63c',
- 'uicon-arrow-up-fill': '\ue6b0',
- 'uicon-arrow-down-fill': '\ue600',
- 'uicon-play-left-fill': '\ue675',
- 'uicon-play-right-fill': '\ue676',
- 'uicon-rewind-left-fill': '\ue679',
- 'uicon-rewind-right-fill': '\ue67a',
- 'uicon-arrow-downward': '\ue604',
- 'uicon-arrow-leftward': '\ue601',
- 'uicon-arrow-rightward': '\ue603',
- 'uicon-arrow-upward': '\ue607',
- 'uicon-arrow-down': '\ue60d',
- 'uicon-arrow-right': '\ue605',
- 'uicon-arrow-left': '\ue60e',
- 'uicon-arrow-up': '\ue606',
- 'uicon-skip-back-left': '\ue674',
- 'uicon-skip-forward-right': '\ue672',
- 'uicon-rewind-right': '\ue66f',
- 'uicon-rewind-left': '\ue671',
- 'uicon-arrow-right-double': '\ue68d',
- 'uicon-arrow-left-double': '\ue68c',
- 'uicon-wifi-off': '\ue668',
- 'uicon-wifi': '\ue667',
- 'uicon-empty-data': '\ue62f',
- 'uicon-empty-history': '\ue684',
- 'uicon-empty-list': '\ue68b',
- 'uicon-empty-page': '\ue627',
- 'uicon-empty-order': '\ue639',
- 'uicon-man': '\ue697',
- 'uicon-woman': '\ue69c',
- 'uicon-man-add': '\ue61c',
- 'uicon-man-add-fill': '\ue64c',
- 'uicon-man-delete': '\ue61a',
- 'uicon-man-delete-fill': '\ue66a',
- 'uicon-zh': '\ue70a',
- 'uicon-en': '\ue692'
-}
diff --git a/uni_modules/uview-ui/components/u-icon/props.js b/uni_modules/uview-ui/components/u-icon/props.js
deleted file mode 100644
index 71845b7..0000000
--- a/uni_modules/uview-ui/components/u-icon/props.js
+++ /dev/null
@@ -1,89 +0,0 @@
-export default {
- props: {
- // 图标类名
- name: {
- type: String,
- default: uni.$u.props.icon.name
- },
- // 图标颜色,可接受主题色
- color: {
- type: String,
- default: uni.$u.props.icon.color
- },
- // 字体大小,单位px
- size: {
- type: [String, Number],
- default: uni.$u.props.icon.size
- },
- // 是否显示粗体
- bold: {
- type: Boolean,
- default: uni.$u.props.icon.bold
- },
- // 点击图标的时候传递事件出去的index(用于区分点击了哪一个)
- index: {
- type: [String, Number],
- default: uni.$u.props.icon.index
- },
- // 触摸图标时的类名
- hoverClass: {
- type: String,
- default: uni.$u.props.icon.hoverClass
- },
- // 自定义扩展前缀,方便用户扩展自己的图标库
- customPrefix: {
- type: String,
- default: uni.$u.props.icon.customPrefix
- },
- // 图标右边或者下面的文字
- label: {
- type: [String, Number],
- default: uni.$u.props.icon.label
- },
- // label的位置,只能右边或者下边
- labelPos: {
- type: String,
- default: uni.$u.props.icon.labelPos
- },
- // label的大小
- labelSize: {
- type: [String, Number],
- default: uni.$u.props.icon.labelSize
- },
- // label的颜色
- labelColor: {
- type: String,
- default: uni.$u.props.icon.labelColor
- },
- // label与图标的距离
- space: {
- type: [String, Number],
- default: uni.$u.props.icon.space
- },
- // 图片的mode
- imgMode: {
- type: String,
- default: uni.$u.props.icon.imgMode
- },
- // 用于显示图片小图标时,图片的宽度
- width: {
- type: [String, Number],
- default: uni.$u.props.icon.width
- },
- // 用于显示图片小图标时,图片的高度
- height: {
- type: [String, Number],
- default: uni.$u.props.icon.height
- },
- // 用于解决某些情况下,让图标垂直居中的用途
- top: {
- type: [String, Number],
- default: uni.$u.props.icon.top
- },
- // 是否阻止事件传播
- stop: {
- type: Boolean,
- default: uni.$u.props.icon.stop
- }
- }
-}
diff --git a/uni_modules/uview-ui/components/u-icon/u-icon.vue b/uni_modules/uview-ui/components/u-icon/u-icon.vue
deleted file mode 100644
index 9340328..0000000
--- a/uni_modules/uview-ui/components/u-icon/u-icon.vue
+++ /dev/null
@@ -1,234 +0,0 @@
-<template>
- <view
- class="u-icon"
- @tap="clickHandler"
- :class="['u-icon--' + labelPos]"
- >
- <image
- class="u-icon__img"
- v-if="isImg"
- :src="name"
- :mode="imgMode"
- :style="[imgStyle, $u.addStyle(customStyle)]"
- ></image>
- <text
- v-else
- class="u-icon__icon"
- :class="uClasses"
- :style="[iconStyle, $u.addStyle(customStyle)]"
- :hover-class="hoverClass"
- >{{icon}}</text>
- <!-- 这里进行空字符串判断,如果仅仅是v-if="label",可能会出现传递0的时候,结果也无法显示 -->
- <text
- v-if="label !== ''"
- class="u-icon__label"
- :style="{
- color: labelColor,
- fontSize: $u.addUnit(labelSize),
- marginLeft: labelPos == 'right' ? $u.addUnit(space) : 0,
- marginTop: labelPos == 'bottom' ? $u.addUnit(space) : 0,
- marginRight: labelPos == 'left' ? $u.addUnit(space) : 0,
- marginBottom: labelPos == 'top' ? $u.addUnit(space) : 0,
- }"
- >{{ label }}</text>
- </view>
-</template>
-
-<script>
- // #ifdef APP-NVUE
- // nvue通过weex的dom模块引入字体,相关文档地址如下:
- // https://weex.apache.org/zh/docs/modules/dom.html#addrule
- const fontUrl = 'https://at.alicdn.com/t/font_2225171_8kdcwk4po24.ttf'
- const domModule = weex.requireModule('dom')
- domModule.addRule('fontFace', {
- 'fontFamily': "uicon-iconfont",
- 'src': `url('${fontUrl}')`
- })
- // #endif
-
- // 引入图标名称,已经对应的unicode
- import icons from './icons'
-
- import props from './props.js';;
-
- /**
- * icon 图标
- * @description 基于字体的图标集,包含了大多数常见场景的图标。
- * @tutorial https://www.uviewui.com/components/icon.html
- * @property {String} name 图标名称,见示例图标集
- * @property {String} color 图标颜色,可接受主题色 (默认 color['u-content-color'] )
- * @property {String | Number} size 图标字体大小,单位px (默认 '16px' )
- * @property {Boolean} bold 是否显示粗体 (默认 false )
- * @property {String | Number} index 点击图标的时候传递事件出去的index(用于区分点击了哪一个)
- * @property {String} hoverClass 图标按下去的样式类,用法同uni的view组件的hoverClass参数,详情见官网
- * @property {String} customPrefix 自定义扩展前缀,方便用户扩展自己的图标库 (默认 'uicon' )
- * @property {String | Number} label 图标右侧的label文字
- * @property {String} labelPos label相对于图标的位置,只能right或bottom (默认 'right' )
- * @property {String | Number} labelSize label字体大小,单位px (默认 '15px' )
- * @property {String} labelColor 图标右侧的label文字颜色 ( 默认 color['u-content-color'] )
- * @property {String | Number} space label与图标的距离,单位px (默认 '3px' )
- * @property {String} imgMode 图片的mode
- * @property {String | Number} width 显示图片小图标时的宽度
- * @property {String | Number} height 显示图片小图标时的高度
- * @property {String | Number} top 图标在垂直方向上的定位 用于解决某些情况下,让图标垂直居中的用途 (默认 0 )
- * @property {Boolean} stop 是否阻止事件传播 (默认 false )
- * @property {Object} customStyle icon的样式,对象形式
- * @event {Function} click 点击图标时触发
- * @event {Function} touchstart 事件触摸时触发
- * @example <u-icon name="photo" color="#2979ff" size="28"></u-icon>
- */
- export default {
- name: 'u-icon',
- data() {
- return {
-
- }
- },
- mixins: [uni.$u.mpMixin, uni.$u.mixin,props],
- computed: {
- uClasses() {
- let classes = []
- classes.push(this.customPrefix + '-' + this.name)
- // // uView的自定义图标类名为u-iconfont
- // if (this.customPrefix == 'uicon') {
- // classes.push('u-iconfont')
- // } else {
- // classes.push(this.customPrefix)
- // }
- // 主题色,通过类配置
- if (this.color && uni.$u.config.type.includes(this.color)) classes.push('u-icon__icon--' + this.color)
- // 阿里,头条,百度小程序通过数组绑定类名时,无法直接使用[a, b, c]的形式,否则无法识别
- // 故需将其拆成一个字符串的形式,通过空格隔开各个类名
- //#ifdef MP-ALIPAY || MP-TOUTIAO || MP-BAIDU
- classes = classes.join(' ')
- //#endif
- return classes
- },
- iconStyle() {
- let style = {}
- style = {
- fontSize: uni.$u.addUnit(this.size),
- lineHeight: uni.$u.addUnit(this.size),
- fontWeight: this.bold ? 'bold' : 'normal',
- // 某些特殊情况需要设置一个到顶部的距离,才能更好的垂直居中
- top: uni.$u.addUnit(this.top)
- }
- // 非主题色值时,才当作颜色值
- if (this.color && !uni.$u.config.type.includes(this.color)) style.color = this.color
-
- return style
- },
- // 判断传入的name属性,是否图片路径,只要带有"/"均认为是图片形式
- isImg() {
- return this.name.indexOf('/') !== -1
- },
- imgStyle() {
- let style = {}
- // 如果设置width和height属性,则优先使用,否则使用size属性
- style.width = this.width ? uni.$u.addUnit(this.width) : uni.$u.addUnit(this.size)
- style.height = this.height ? uni.$u.addUnit(this.height) : uni.$u.addUnit(this.size)
- return style
- },
- // 通过图标名,查找对应的图标
- icon() {
- // 如果内置的图标中找不到对应的图标,就直接返回name值,因为用户可能传入的是unicode代码
- return icons['uicon-' + this.name] || this.name
- }
- },
- methods: {
- clickHandler(e) {
- this.$emit('click', this.index)
- // 是否阻止事件冒泡
- this.stop && this.preventEvent(e)
- }
- }
- }
-</script>
-
-<style lang="scss" scoped>
- @import "../../libs/css/components.scss";
-
- // 变量定义
- $u-icon-primary: $u-primary !default;
- $u-icon-success: $u-success !default;
- $u-icon-info: $u-info !default;
- $u-icon-warning: $u-warning !default;
- $u-icon-error: $u-error !default;
- $u-icon-label-line-height:1 !default;
-
- /* #ifndef APP-NVUE */
- // 非nvue下加载字体
- @font-face {
- font-family: 'uicon-iconfont';
- src: url('https://at.alicdn.com/t/font_2225171_8kdcwk4po24.ttf') format('truetype');
- }
-
- /* #endif */
-
- .u-icon {
- /* #ifndef APP-NVUE */
- display: flex;
- /* #endif */
- align-items: center;
-
- &--left {
- flex-direction: row-reverse;
- align-items: center;
- }
-
- &--right {
- flex-direction: row;
- align-items: center;
- }
-
- &--top {
- flex-direction: column-reverse;
- justify-content: center;
- }
-
- &--bottom {
- flex-direction: column;
- justify-content: center;
- }
-
- &__icon {
- font-family: uicon-iconfont;
- position: relative;
- @include flex;
- align-items: center;
-
- &--primary {
- color: $u-icon-primary;
- }
-
- &--success {
- color: $u-icon-success;
- }
-
- &--error {
- color: $u-icon-error;
- }
-
- &--warning {
- color: $u-icon-warning;
- }
-
- &--info {
- color: $u-icon-info;
- }
- }
-
- &__img {
- /* #ifndef APP-NVUE */
- height: auto;
- will-change: transform;
- /* #endif */
- }
-
- &__label {
- /* #ifndef APP-NVUE */
- line-height: $u-icon-label-line-height;
- /* #endif */
- }
- }
-</style>
diff --git a/uni_modules/uview-ui/components/u-image/props.js b/uni_modules/uview-ui/components/u-image/props.js
deleted file mode 100644
index 2eabb74..0000000
--- a/uni_modules/uview-ui/components/u-image/props.js
+++ /dev/null
@@ -1,84 +0,0 @@
-export default {
- props: {
- // 图片地址
- src: {
- type: String,
- default: uni.$u.props.image.src
- },
- // 裁剪模式
- mode: {
- type: String,
- default: uni.$u.props.image.mode
- },
- // 宽度,单位任意
- width: {
- type: [String, Number],
- default: uni.$u.props.image.width
- },
- // 高度,单位任意
- height: {
- type: [String, Number],
- default: uni.$u.props.image.height
- },
- // 图片形状,circle-圆形,square-方形
- shape: {
- type: String,
- default: uni.$u.props.image.shape
- },
- // 圆角,单位任意
- radius: {
- type: [String, Number],
- default: uni.$u.props.image.radius
- },
- // 是否懒加载,微信小程序、App、百度小程序、字节跳动小程序
- lazyLoad: {
- type: Boolean,
- default: uni.$u.props.image.lazyLoad
- },
- // 开启长按图片显示识别微信小程序码菜单
- showMenuByLongpress: {
- type: Boolean,
- default: uni.$u.props.image.showMenuByLongpress
- },
- // 加载中的图标,或者小图片
- loadingIcon: {
- type: String,
- default: uni.$u.props.image.loadingIcon
- },
- // 加载失败的图标,或者小图片
- errorIcon: {
- type: String,
- default: uni.$u.props.image.errorIcon
- },
- // 是否显示加载中的图标或者自定义的slot
- showLoading: {
- type: Boolean,
- default: uni.$u.props.image.showLoading
- },
- // 是否显示加载错误的图标或者自定义的slot
- showError: {
- type: Boolean,
- default: uni.$u.props.image.showError
- },
- // 是否需要淡入效果
- fade: {
- type: Boolean,
- default: uni.$u.props.image.fade
- },
- // 只支持网络资源,只对微信小程序有效
- webp: {
- type: Boolean,
- default: uni.$u.props.image.webp
- },
- // 过渡时间,单位ms
- duration: {
- type: [String, Number],
- default: uni.$u.props.image.duration
- },
- // 背景颜色,用于深色页面加载图片时,为了和背景色融合
- bgColor: {
- type: String,
- default: uni.$u.props.image.bgColor
- }
- }
-}
diff --git a/uni_modules/uview-ui/components/u-image/u-image.vue b/uni_modules/uview-ui/components/u-image/u-image.vue
deleted file mode 100644
index 473e35b..0000000
--- a/uni_modules/uview-ui/components/u-image/u-image.vue
+++ /dev/null
@@ -1,232 +0,0 @@
-<template>
- <u-transition
- mode="fade"
- :show="show"
- :duration="fade ? 1000 : 0"
- >
- <view
- class="u-image"
- @tap="onClick"
- :style="[wrapStyle, backgroundStyle]"
- >
- <image
- v-if="!isError"
- :src="src"
- :mode="mode"
- @error="onErrorHandler"
- @load="onLoadHandler"
- :show-menu-by-longpress="showMenuByLongpress"
- :lazy-load="lazyLoad"
- class="u-image__image"
- :style="{
- borderRadius: shape == 'circle' ? '10000px' : $u.addUnit(radius),
- width: $u.addUnit(width),
- height: $u.addUnit(height)
- }"
- ></image>
- <view
- v-if="showLoading && loading"
- class="u-image__loading"
- :style="{
- borderRadius: shape == 'circle' ? '50%' : $u.addUnit(radius),
- backgroundColor: this.bgColor,
- width: $u.addUnit(width),
- height: $u.addUnit(height)
- }"
- >
- <slot name="loading">
- <u-icon
- :name="loadingIcon"
- :width="width"
- :height="height"
- ></u-icon>
- </slot>
- </view>
- <view
- v-if="showError && isError && !loading"
- class="u-image__error"
- :style="{
- borderRadius: shape == 'circle' ? '50%' : $u.addUnit(radius),
- width: $u.addUnit(width),
- height: $u.addUnit(height)
- }"
- >
- <slot name="error">
- <u-icon
- :name="errorIcon"
- :width="width"
- :height="height"
- ></u-icon>
- </slot>
- </view>
- </view>
- </u-transition>
-</template>
-
-<script>
- import props from './props.js';
- /**
- * Image 图片
- * @description 此组件为uni-app的image组件的加强版,在继承了原有功能外,还支持淡入动画、加载中、加载失败提示、圆角值和形状等。
- * @tutorial https://uviewui.com/components/image.html
- * @property {String} src 图片地址
- * @property {String} mode 裁剪模式,见官网说明 (默认 'aspectFill' )
- * @property {String | Number} width 宽度,单位任意,如果为数值,则为px单位 (默认 '300' )
- * @property {String | Number} height 高度,单位任意,如果为数值,则为px单位 (默认 '225' )
- * @property {String} shape 图片形状,circle-圆形,square-方形 (默认 'square' )
- * @property {String | Number} radius 圆角值,单位任意,如果为数值,则为px单位 (默认 0 )
- * @property {Boolean} lazyLoad 是否懒加载,仅微信小程序、App、百度小程序、字节跳动小程序有效 (默认 true )
- * @property {Boolean} showMenuByLongpress 是否开启长按图片显示识别小程序码菜单,仅微信小程序有效 (默认 true )
- * @property {String} loadingIcon 加载中的图标,或者小图片 (默认 'photo' )
- * @property {String} errorIcon 加载失败的图标,或者小图片 (默认 'error-circle' )
- * @property {Boolean} showLoading 是否显示加载中的图标或者自定义的slot (默认 true )
- * @property {Boolean} showError 是否显示加载错误的图标或者自定义的slot (默认 true )
- * @property {Boolean} fade 是否需要淡入效果 (默认 true )
- * @property {Boolean} webp 只支持网络资源,只对微信小程序有效 (默认 false )
- * @property {String | Number} duration 搭配fade参数的过渡时间,单位ms (默认 500 )
- * @property {String} bgColor 背景颜色,用于深色页面加载图片时,为了和背景色融合 (默认 '#f3f4f6' )
- * @property {Object} customStyle 定义需要用到的外部样式
- * @event {Function} click 点击图片时触发
- * @event {Function} error 图片加载失败时触发
- * @event {Function} load 图片加载成功时触发
- * @example <u-image width="100%" height="300px" :src="src"></u-image>
- */
- export default {
- name: 'u-image',
- mixins: [uni.$u.mpMixin, uni.$u.mixin, props],
- data() {
- return {
- // 图片是否加载错误,如果是,则显示错误占位图
- isError: false,
- // 初始化组件时,默认为加载中状态
- loading: true,
- // 不透明度,为了实现淡入淡出的效果
- opacity: 1,
- // 过渡时间,因为props的值无法修改,故需要一个中间值
- durationTime: this.duration,
- // 图片加载完成时,去掉背景颜色,因为如果是png图片,就会显示灰色的背景
- backgroundStyle: {},
- // 用于fade模式的控制组件显示与否
- show: false
- };
- },
- watch: {
- src: {
- immediate: true,
- handler(n) {
- if (!n) {
- // 如果传入null或者'',或者false,或者undefined,标记为错误状态
- this.isError = true
-
- } else {
- this.isError = false;
- this.loading = true;
- }
- }
- }
- },
- computed: {
- wrapStyle() {
- let style = {};
- // 通过调用addUnit()方法,如果有单位,如百分比,px单位等,直接返回,如果是纯粹的数值,则加上rpx单位
- style.width = this.$u.addUnit(this.width);
- style.height = this.$u.addUnit(this.height);
- // 如果是显示圆形,设置一个很多的半径值即可
- style.borderRadius = this.shape == 'circle' ? '10000px' : uni.$u.addUnit(this.radius)
- // 如果设置圆角,必须要有hidden,否则可能圆角无效
- style.overflow = this.borderRadius > 0 ? 'hidden' : 'visible'
- // if (this.fade) {
- // style.opacity = this.opacity
- // // nvue下,这几个属性必须要分开写
- // style.transitionDuration = `${this.durationTime}ms`
- // style.transitionTimingFunction = 'ease-in-out'
- // style.transitionProperty = 'opacity'
- // }
- return uni.$u.deepMerge(style, uni.$u.addStyle(this.customStyle));
-
- }
- },
- mounted() {
- this.show = true
- },
- methods: {
- // 点击图片
- onClick() {
- this.$emit('click')
- },
- // 图片加载失败
- onErrorHandler(err) {
- this.loading = false
- this.isError = true
- this.$emit('error', err)
- },
- // 图片加载完成,标记loading结束
- onLoadHandler(event) {
- this.loading = false
- this.isError = false
- this.$emit('load', event)
- this.removeBgColor()
- // 如果不需要动画效果,就不执行下方代码,同时移除加载时的背景颜色
- // 否则无需fade效果时,png图片依然能看到下方的背景色
- // if (!this.fade) return this.removeBgColor();
- // // 原来opacity为1(不透明,是为了显示占位图),改成0(透明,意味着该元素显示的是背景颜色,默认的灰色),再改成1,是为了获得过渡效果
- // this.opacity = 0;
- // // 这里设置为0,是为了图片展示到背景全透明这个过程时间为0,延时之后延时之后重新设置为duration,是为了获得背景透明(灰色)
- // // 到图片展示的过程中的淡入效果
- // this.durationTime = 0;
- // // 延时50ms,否则在浏览器H5,过渡效果无效
- // setTimeout(() => {
- // this.durationTime = this.duration;
- // this.opacity = 1;
- // setTimeout(() => {
- // this.removeBgColor();
- // }, this.durationTime);
- // }, 50);
- },
- // 移除图片的背景色
- removeBgColor() {
- // 淡入动画过渡完成后,将背景设置为透明色,否则png图片会看到灰色的背景
- this.backgroundStyle = {
- backgroundColor: 'transparent'
- };
- }
- }
- };
-</script>
-
-<style lang="scss" scoped>
- @import '../../libs/css/components.scss';
-
- $u-image-error-top:0px !default;
- $u-image-error-left:0px !default;
- $u-image-error-width:100% !default;
- $u-image-error-hight:100% !default;
- $u-image-error-background-color:$u-bg-color !default;
- $u-image-error-color:$u-tips-color !default;
- $u-image-error-font-size: 46rpx !default;
-
- .u-image {
- position: relative;
- transition: opacity 0.5s ease-in-out;
-
- &__image {
- width: 100%;
- height: 100%;
- }
-
- &__loading,
- &__error {
- position: absolute;
- top: $u-image-error-top;
- left: $u-image-error-left;
- width: $u-image-error-width;
- height: $u-image-error-hight;
- @include flex;
- align-items: center;
- justify-content: center;
- background-color: $u-image-error-background-color;
- color: $u-image-error-color;
- font-size: $u-image-error-font-size;
- }
- }
-</style>
diff --git a/uni_modules/uview-ui/components/u-index-anchor/props.js b/uni_modules/uview-ui/components/u-index-anchor/props.js
deleted file mode 100644
index 6d8b59a..0000000
--- a/uni_modules/uview-ui/components/u-index-anchor/props.js
+++ /dev/null
@@ -1,29 +0,0 @@
-export default {
- props: {
- // 列表锚点文本内容
- text: {
- type: [String, Number],
- default: uni.$u.props.indexAnchor.text
- },
- // 列表锚点文字颜色
- color: {
- type: String,
- default: uni.$u.props.indexAnchor.color
- },
- // 列表锚点文字大小,单位默认px
- size: {
- type: [String, Number],
- default: uni.$u.props.indexAnchor.size
- },
- // 列表锚点背景颜色
- bgColor: {
- type: String,
- default: uni.$u.props.indexAnchor.bgColor
- },
- // 列表锚点高度,单位默认px
- height: {
- type: [String, Number],
- default: uni.$u.props.indexAnchor.height
- }
- }
-}
diff --git a/uni_modules/uview-ui/components/u-index-anchor/u-index-anchor.vue b/uni_modules/uview-ui/components/u-index-anchor/u-index-anchor.vue
deleted file mode 100644
index b95ddef..0000000
--- a/uni_modules/uview-ui/components/u-index-anchor/u-index-anchor.vue
+++ /dev/null
@@ -1,91 +0,0 @@
-<template>
- <!-- #ifdef APP-NVUE -->
- <header>
- <!-- #endif -->
- <view
- class="u-index-anchor u-border-bottom"
- :ref="`u-index-anchor-${text}`"
- :style="{
- height: $u.addUnit(height),
- backgroundColor: bgColor
- }"
- >
- <text
- class="u-index-anchor__text"
- :style="{
- fontSize: $u.addUnit(size),
- color: color
- }"
- >{{ text }}</text>
- </view>
- <!-- #ifdef APP-NVUE -->
- </header>
- <!-- #endif -->
-</template>
-
-<script>
- import props from './props.js';
- // #ifdef APP-NVUE
- const dom = uni.requireNativePlugin('dom')
- // #endif
- /**
- * IndexAnchor 列表锚点
- * @description
- * @tutorial https://uviewui.com/components/indexList.html
- * @property {String | Number} text 列表锚点文本内容
- * @property {String} color 列表锚点文字颜色 ( 默认 '#606266' )
- * @property {String | Number} size 列表锚点文字大小,单位默认px ( 默认 14 )
- * @property {String} bgColor 列表锚点背景颜色 ( 默认 '#dedede' )
- * @property {String | Number} height 列表锚点高度,单位默认px ( 默认 32 )
- * @example <u-index-anchor :text="indexList[index]"></u-index-anchor>
- */
- export default {
- name: 'u-index-anchor',
- mixins: [uni.$u.mpMixin, uni.$u.mixin,props],
- data() {
- return {
- }
- },
- mounted() {
- this.init()
- },
- methods: {
- init() {
- // 此处会活动父组件实例,并赋值给实例的parent属性
- const indexList = uni.$u.$parent.call(this, 'u-index-list')
- if (!indexList) {
- return uni.$u.error('u-index-anchor必须要搭配u-index-list组件使用')
- }
- // 将当前实例放入到u-index-list中
- indexList.anchors.push(this)
- const indexListItem = uni.$u.$parent.call(this, 'u-index-item')
- // #ifndef APP-NVUE
- // 只有在非nvue下,u-index-anchor才是嵌套在u-index-item中的
- if (!indexListItem) {
- return uni.$u.error('u-index-anchor必须要搭配u-index-item组件使用')
- }
- // 设置u-index-item的id为anchor的text标识符,因为非nvue下滚动列表需要依赖scroll-view滚动到元素的特性
- indexListItem.id = this.text.charCodeAt(0)
- // #endif
- }
- },
- }
-</script>
-
-<style lang="scss" scoped>
- @import "../../libs/css/components.scss";
-
- .u-index-anchor {
- position: sticky;
- top: 0;
- @include flex;
- align-items: center;
- padding-left: 15px;
- z-index: 1;
-
- &__text {
- @include flex;
- align-items: center;
- }
- }
-</style>
diff --git a/uni_modules/uview-ui/components/u-index-item/props.js b/uni_modules/uview-ui/components/u-index-item/props.js
deleted file mode 100644
index 7c11331..0000000
--- a/uni_modules/uview-ui/components/u-index-item/props.js
+++ /dev/null
@@ -1,5 +0,0 @@
-export default {
- props: {
-
- }
-}
diff --git a/uni_modules/uview-ui/components/u-index-item/u-index-item.vue b/uni_modules/uview-ui/components/u-index-item/u-index-item.vue
deleted file mode 100644
index 0bc7fb3..0000000
--- a/uni_modules/uview-ui/components/u-index-item/u-index-item.vue
+++ /dev/null
@@ -1,87 +0,0 @@
-<template>
- <!-- #ifdef APP-NVUE -->
- <cell ref="u-index-item">
- <!-- #endif -->
- <view
- class="u-index-item"
- :id="`u-index-item-${id}`"
- :class="[`u-index-item-${id}`]"
- >
- <slot />
- </view>
- <!-- #ifdef APP-NVUE -->
- </cell>
- <!-- #endif -->
-</template>
-
-<script>
- import props from './props.js';
- // #ifdef APP-NVUE
- // 由于weex为阿里的KPI业绩考核的产物,所以不支持百分比单位,这里需要通过dom查询组件的宽度
- const dom = uni.requireNativePlugin('dom')
- // #endif
- /**
- * IndexItem
- * @description
- * @tutorial https://uviewui.com/components/indexList.html
- * @property {String}
- * @event {Function}
- * @example
- */
- export default {
- name: 'u-index-item',
- mixins: [uni.$u.mpMixin, uni.$u.mixin,props],
- data() {
- return {
- // 本组件到滚动条顶部的距离
- top: 0,
- height: 0,
- id: ''
- }
- },
- created() {
- // 子组件u-index-anchor的实例
- this.anchor = {}
- },
- mounted() {
- this.init()
- },
- methods: {
- init() {
- // 此处会活动父组件实例,并赋值给实例的parent属性
- this.getParentData('u-index-list')
- if (!this.parent) {
- return uni.$u.error('u-index-item必须要搭配u-index-list组件使用')
- }
- uni.$u.sleep().then(() =>{
- this.getIndexItemRect().then(size => {
- // 由于对象的引用特性,此处会同时生效到父组件的children数组的本实例的top属性中,供父组件判断读取
- this.top = Math.ceil(size.top)
- this.height = Math.ceil(size.height)
- })
- })
- },
- getIndexItemRect() {
- return new Promise(resolve => {
- // #ifndef APP-NVUE
- this.$uGetRect('.u-index-item').then(size => {
- resolve(size)
- })
- // #endif
-
- // #ifdef APP-NVUE
- const ref = this.$refs['u-index-item']
- dom.getComponentRect(ref, res => {
- resolve(res.size)
- })
- // #endif
- })
- }
- },
- }
-</script>
-
-<style lang="scss" scoped>
- @import "../../libs/css/components.scss";
-
-</style>
diff --git a/uni_modules/uview-ui/components/u-index-list/props.js b/uni_modules/uview-ui/components/u-index-list/props.js
deleted file mode 100644
index 354d459..0000000
--- a/uni_modules/uview-ui/components/u-index-list/props.js
+++ /dev/null
@@ -1,29 +0,0 @@
-export default {
- props: {
- // 右边锚点非激活的颜色
- inactiveColor: {
- type: String,
- default: uni.$u.props.indexList.inactiveColor
- },
- // 右边锚点激活的颜色
- activeColor: {
- type: String,
- default: uni.$u.props.indexList.activeColor
- },
- // 索引字符列表,数组形式
- indexList: {
- type: Array,
- default: uni.$u.props.indexList.indexList
- },
- // 是否开启锚点自动吸顶
- sticky: {
- type: Boolean,
- default: uni.$u.props.indexList.sticky
- },
- // 自定义导航栏的高度
- customNavHeight: {
- type: [String, Number],
- default: uni.$u.props.indexList.customNavHeight
- }
- }
-}
diff --git a/uni_modules/uview-ui/components/u-index-list/u-index-list.vue b/uni_modules/uview-ui/components/u-index-list/u-index-list.vue
deleted file mode 100644
index d712618..0000000
--- a/uni_modules/uview-ui/components/u-index-list/u-index-list.vue
+++ /dev/null
@@ -1,440 +0,0 @@
-<template>
- <view class="u-index-list">
- <!-- #ifdef APP-NVUE -->
- <list
- :scrollTop="scrollTop"
- enable-back-to-top
- :offset-accuracy="1"
- :style="{
- maxHeight: $u.addUnit(scrollViewHeight)
- }"
- @scroll="scrollHandler"
- ref="uList"
- >
- <cell
- v-if="$slots.header"
- ref="header"
- >
- <slot name="header" />
- </cell>
- <slot />
- <cell v-if="$slots.footer">
- <slot name="footer" />
- </cell>
- </list>
- <!-- #endif -->
- <!-- #ifndef APP-NVUE -->
- <scroll-view
- :scrollTop="scrollTop"
- :scrollIntoView="scrollIntoView"
- :offset-accuracy="1"
- :style="{
- maxHeight: $u.addUnit(scrollViewHeight)
- }"
- scroll-y
- @scroll="scrollHandler"
- ref="uList"
- >
- <view v-if="$slots.header">
- <slot name="header" />
- </view>
- <slot />
- <view v-if="$slots.footer">
- <slot name="footer" />
- </view>
- </scroll-view>
- <!-- #endif -->
- <view
- class="u-index-list__letter"
- ref="u-index-list__letter"
- :style="{ top: $u.addUnit(letterInfo.top || 100) }"
- @touchstart="touchStart"
- @touchmove.stop.prevent="touchMove"
- @touchend.stop.prevent="touchEnd"
- @touchcancel.stop.prevent="touchEnd"
- >
- <view
- class="u-index-list__letter__item"
- v-for="(item, index) in uIndexList"
- :key="index"
- :style="{
- backgroundColor: activeIndex === index ? activeColor : 'transparent'
- }"
- >
- <text
- class="u-index-list__letter__item__index"
- :style="{color: activeIndex === index ? '#fff' : inactiveColor}"
- >{{ item }}</text>
- </view>
- </view>
- <u-transition
- mode="fade"
- :show="touching"
- :customStyle="{
- position: 'fixed',
- right: '50px',
- top: $u.addUnit(indicatorTop),
- zIndex: 2
- }"
- >
- <view
- class="u-index-list__indicator"
- :class="['u-index-list__indicator--show']"
- :style="{
- height: $u.addUnit(indicatorHeight),
- width: $u.addUnit(indicatorHeight)
- }"
- >
- <text class="u-index-list__indicator__text">{{ uIndexList[activeIndex] }}</text>
- </view>
- </u-transition>
- </view>
-</template>
-
-<script>
- const indexList = () => {
- const indexList = [];
- const charCodeOfA = 'A'.charCodeAt(0);
- for (let i = 0; i < 26; i++) {
- indexList.push(String.fromCharCode(charCodeOfA + i));
- }
- return indexList;
- }
- import props from './props.js';
- // #ifdef APP-NVUE
- // 由于weex为阿里的KPI业绩考核的产物,所以不支持百分比单位,这里需要通过dom查询组件的宽度
- const dom = uni.requireNativePlugin('dom')
- // #endif
- /**
- * IndexList 索引列表
- * @description 通过折叠面板收纳内容区域
- * @tutorial https://uviewui.com/components/indexList.html
- * @property {String} inactiveColor 右边锚点非激活的颜色 ( 默认 '#606266' )
- * @property {String} activeColor 右边锚点激活的颜色 ( 默认 '#5677fc' )
- * @property {Array} indexList 索引字符列表,数组形式
- * @property {Boolean} sticky 是否开启锚点自动吸顶 ( 默认 true )
- * @property {String | Number} customNavHeight 自定义导航栏的高度 ( 默认 0 )
- * */
- export default {
- name: 'u-index-list',
- mixins: [uni.$u.mpMixin, uni.$u.mixin, props],
- // #ifdef MP-WEIXIN
- // 将自定义节点设置成虚拟的,更加接近Vue组件的表现,能更好的使用flex属性
- options: {
- virtualHost: true
- },
- // #endif
- data() {
- return {
- // 当前正在被选中的字母索引
- activeIndex: -1,
- touchmoveIndex: 1,
- // 索引字母的信息
- letterInfo: {
- height: 0,
- itemHeight: 0,
- top: 0
- },
- // 设置字母指示器的高度,后面为了让指示器跟随字母,并将尖角部分指向字母的中部,需要依赖此值
- indicatorHeight: 50,
- // 字母放大指示器的top值,为了让其指向当前激活的字母
- // indicatorTop: 0
- // 当前是否正在被触摸状态
- touching: false,
- // 滚动条顶部top值
- scrollTop: 0,
- // scroll-view的高度
- scrollViewHeight: 0,
- // 系统信息
- sys: uni.$u.sys(),
- scrolling: false,
- scrollIntoView: '',
- }
- },
- computed: {
- // 如果有传入外部的indexList锚点数组则使用,否则使用内部生成A-Z字母
- uIndexList() {
- return this.indexList.length ? this.indexList : indexList()
- },
- // 字母放大指示器的top值,为了让其指向当前激活的字母
- indicatorTop() {
- const {
- top,
- itemHeight
- } = this.letterInfo
- return Math.floor(top + itemHeight * this.activeIndex + itemHeight / 2 - this.indicatorHeight / 2)
- }
- },
- watch: {
- // 监听字母索引的变化,重新设置尺寸
- uIndexList: {
- immediate: true,
- handler() {
- uni.$u.sleep().then(() => {
- this.setIndexListLetterInfo()
- })
- }
- }
- },
- created() {
- this.children = []
- this.anchors = []
- this.init()
- },
- mounted() {
- this.setIndexListLetterInfo()
- },
- methods: {
- init() {
- // 设置列表的高度为整个屏幕的高度
- //减去this.customNavHeight,并将this.scrollViewHeight设置为maxHeight
- //解决当u-index-list组件放在tabbar页面时,scroll-view内容较少时,还能滚动
- this.scrollViewHeight = this.sys.windowHeight - this.customNavHeight
- },
- // 索引列表被触摸
- touchStart(e) {
- // 获取触摸点信息
- const touchStart = e.changedTouches[0]
- if (!touchStart) return
- this.touching = true
- const {
- pageY
- } = touchStart
- // 根据当前触摸点的坐标,获取当前触摸的为第几个字母
- const currentIndex = this.getIndexListLetter(pageY)
- this.setValueForTouch(currentIndex)
- },
- // 索引字母列表被触摸滑动中
- touchMove(e) {
- // 获取触摸点信息
- let touchMove = e.changedTouches[0]
- if (!touchMove) return;
-
- // 滑动结束后迅速开始第二次滑动时候 touching 为 false 造成不显示 indicator 问题
- if (!this.touching) {
- this.touching = true
- }
- const {
- pageY
- } = touchMove
- const currentIndex = this.getIndexListLetter(pageY)
- this.setValueForTouch(currentIndex)
- },
- // 触摸结束
- touchEnd(e) {
- // 延时一定时间后再隐藏指示器,为了让用户看的更直观,同时也是为了消除快速切换u-transition的show带来的影响
- uni.$u.sleep(300).then(() => {
- this.touching = false
- })
- },
- // 获取索引列表的尺寸以及单个字符的尺寸信息
- getIndexListLetterRect() {
- return new Promise(resolve => {
- // 延时一定时间,以获取dom尺寸
- // #ifndef APP-NVUE
- this.$uGetRect('.u-index-list__letter').then(size => {
- resolve(size)
- })
- // #endif
-
- // #ifdef APP-NVUE
- const ref = this.$refs['u-index-list__letter']
- dom.getComponentRect(ref, res => {
- resolve(res.size)
- })
- // #endif
- })
- },
- // 设置indexList索引的尺寸信息
- setIndexListLetterInfo() {
- this.getIndexListLetterRect().then(size => {
- const {
- height
- } = size
- const sys = uni.$u.sys()
- const windowHeight = sys.windowHeight
- let customNavHeight = 0
- // 消除各端导航栏非原生和原生导致的差异,让索引列表字母对屏幕垂直居中
- if (this.customNavHeight == 0) {
- // #ifdef H5
- customNavHeight = sys.windowTop
- // #endif
- // #ifndef H5
- // 在非H5中,为原生导航栏,其高度不算在windowHeight内,这里设置为负值,后面相加时变成减去其高度的一半
- customNavHeight = -(sys.statusBarHeight + 44)
- // #endif
- } else {
- customNavHeight = uni.$u.getPx(this.customNavHeight)
- }
- this.letterInfo = {
- height,
- // 为了让字母列表对屏幕绝对居中,让其对导航栏进行修正,也即往上偏移导航栏的一半高度
- top: (windowHeight - height) / 2 + customNavHeight / 2,
- itemHeight: Math.floor(height / this.uIndexList.length)
- }
- })
- },
- // 获取当前被触摸的索引字母
- getIndexListLetter(pageY) {
- const {
- top,
- height,
- itemHeight
- } = this.letterInfo
- // 对H5的pageY进行修正,这是由于uni-app自作多情在H5中将触摸点的坐标跟H5的导航栏结合导致的问题
- // #ifdef H5
- pageY += uni.$u.sys().windowTop
- // #endif
- // 对第一和最后一个字母做边界处理,因为用户可能在字母列表上触摸到两端的尽头后依然继续滑动
- if (pageY < top) {
- return 0
- } else if (pageY >= top + height) {
- // 如果超出了,取最后一个字母
- return this.uIndexList.length - 1
- } else {
- // 将触摸点的Y轴偏移值,减去索引字母的top值,除以每个字母的高度,即可得到当前触摸点落在哪个字母上
- return Math.floor((pageY - top) / itemHeight);
- }
- },
- // 设置各项由触摸而导致变化的值
- setValueForTouch(currentIndex) {
- // 如果偏移量太小,前后得出的会是同一个索引字母,为了防抖,进行返回
- if (currentIndex === this.activeIndex) return
- this.activeIndex = currentIndex
- // #ifndef APP-NVUE || MP-WEIXIN
- // 在非nvue中,由于anchor和item都在u-index-item中,所以需要对index-item进行偏移
- this.scrollIntoView = `u-index-item-${this.uIndexList[currentIndex].charCodeAt(0)}`
- // #endif
- // #ifdef MP-WEIXIN
- // 微信小程序下,scroll-view的scroll-into-view属性无法对slot中的内容的id生效,只能通过设置scrollTop的形式去移动滚动条
- this.scrollTop = this.children[currentIndex].top
- // #endif
- // #ifdef APP-NVUE
- // 在nvue中,由于cell和header为同级元素,所以实际是需要对header(anchor)进行偏移
- const anchor = `u-index-anchor-${this.uIndexList[currentIndex]}`
- dom.scrollToElement(this.anchors[currentIndex].$refs[anchor], {
- offset: 0,
- animated: false
- })
- // #endif
- },
- getHeaderRect() {
- // 获取header slot的高度,因为list组件中获取元素的尺寸是没有top值的
- return new Promise(resolve => {
- dom.getComponentRect(this.$refs.header, res => {
- resolve(res.size)
- })
- })
- },
- // scroll-view的滚动事件
- async scrollHandler(e) {
- if (this.touching || this.scrolling) return
- // 每过一定时间取样一次,减少资源损耗以及可能带来的卡顿
- this.scrolling = true
- uni.$u.sleep(10).then(() => {
- this.scrolling = false
- })
- let scrollTop = 0
- const len = this.children.length
- let children = this.children
- const anchors = this.anchors
- // #ifdef APP-NVUE
- // nvue下获取的滚动条偏移为负数,需要转为正数
- scrollTop = Math.abs(e.contentOffset.y)
- // 获取header slot的尺寸信息
- const header = await this.getHeaderRect()
- // item的top值,在nvue下,模拟出的anchor的top,类似非nvue下的index-item的top
- let top = header.height
- // 由于list组件无法获取cell的top值,这里通过header slot和各个item之间的height,模拟出类似非nvue下的位置信息
- children = this.children.map((item, index) => {
- const child = {
- height: item.height,
- top
- }
- // 进行累加,给下一个item提供计算依据
- top += item.height + anchors[index].height
- return child
- })
- // #endif
- // #ifndef APP-NVUE
- // 非nvue通过detail获取滚动条位移
- scrollTop = e.detail.scrollTop
- // #endif
- for (let i = 0; i < len; i++) {
- const item = children[i],
- nextItem = children[i + 1]
- // 如果滚动条高度小于第一个item的top值,此时无需设置任意字母为高亮
- if (scrollTop <= children[0].top || scrollTop >= children[len - 1].top + children[len -
- 1].height) {
- this.activeIndex = -1
- break
- } else if (!nextItem) {
- // 当不存在下一个item时,意味着历遍到了最后一个
- this.activeIndex = len - 1
- break
- } else if (scrollTop > item.top && scrollTop < nextItem.top) {
- this.activeIndex = i
- break
- }
- }
- },
- },
- }
-</script>
-
-<style lang="scss" scoped>
- @import "../../libs/css/components.scss";
-
- .u-index-list {
-
- &__letter {
- position: fixed;
- right: 0;
- text-align: center;
- z-index: 3;
- padding: 0 6px;
-
- &__item {
- width: 16px;
- height: 16px;
- border-radius: 100px;
- margin: 1px 0;
- @include flex;
- align-items: center;
- justify-content: center;
-
- &--active {
- background-color: $u-primary;
- }
-
- &__index {
- font-size: 12px;
- text-align: center;
- line-height: 12px;
- }
- }
- }
-
- &__indicator {
- width: 50px;
- height: 50px;
- border-radius: 100px 100px 0 100px;
- text-align: center;
- color: #ffffff;
- background-color: #c9c9c9;
- transform: rotate(-45deg);
- @include flex;
- justify-content: center;
- align-items: center;
-
- &__text {
- font-size: 28px;
- line-height: 28px;
- font-weight: bold;
- color: #fff;
- transform: rotate(45deg);
- text-align: center;
- }
- }
- }
-</style>
diff --git a/uni_modules/uview-ui/components/u-input/props.js b/uni_modules/uview-ui/components/u-input/props.js
deleted file mode 100644
index 2c50870..0000000
--- a/uni_modules/uview-ui/components/u-input/props.js
+++ /dev/null
@@ -1,187 +0,0 @@
-export default {
- props: {
- // 输入的值
- value: {
- type: [String, Number],
- default: uni.$u.props.input.value
- },
- // 输入框类型
- // number-数字输入键盘,app-vue下可以输入浮点数,app-nvue和小程序平台下只能输入整数
- // idcard-身份证输入键盘,微信、支付宝、百度、QQ小程序
- // digit-带小数点的数字键盘,App的nvue页面、微信、支付宝、百度、头条、QQ小程序
- // text-文本输入键盘
- type: {
- type: String,
- default: uni.$u.props.input.type
- },
- // 如果 textarea 是在一个 position:fixed 的区域,需要显示指定属性 fixed 为 true,
- // 兼容性:微信小程序、百度小程序、字节跳动小程序、QQ小程序
- fixed: {
- type: Boolean,
- default: uni.$u.props.input.fixed
- },
- // 是否禁用输入框
- disabled: {
- type: Boolean,
- default: uni.$u.props.input.disabled
- },
- // 禁用状态时的背景色
- disabledColor: {
- type: String,
- default: uni.$u.props.input.disabledColor
- },
- // 是否显示清除控件
- clearable: {
- type: Boolean,
- default: uni.$u.props.input.clearable
- },
- // 是否密码类型
- password: {
- type: Boolean,
- default: uni.$u.props.input.password
- },
- // 最大输入长度,设置为 -1 的时候不限制最大长度
- maxlength: {
- type: [String, Number],
- default: uni.$u.props.input.maxlength
- },
- // 输入框为空时的占位符
- placeholder: {
- type: String,
- default: uni.$u.props.input.placeholder
- },
- // 指定placeholder的样式类,注意页面或组件的style中写了scoped时,需要在类名前写/deep/
- placeholderClass: {
- type: String,
- default: uni.$u.props.input.placeholderClass
- },
- // 指定placeholder的样式
- placeholderStyle: {
- type: [String, Object],
- default: uni.$u.props.input.placeholderStyle
- },
- // 是否显示输入字数统计,只在 type ="text"或type ="textarea"时有效
- showWordLimit: {
- type: Boolean,
- default: uni.$u.props.input.showWordLimit
- },
- // 设置右下角按钮的文字,有效值:send|search|next|go|done,兼容性详见uni-app文档
- // https://uniapp.dcloud.io/component/input
- // https://uniapp.dcloud.io/component/textarea
- confirmType: {
- type: String,
- default: uni.$u.props.input.confirmType
- },
- // 点击键盘右下角按钮时是否保持键盘不收起,H5无效
- confirmHold: {
- type: Boolean,
- default: uni.$u.props.input.confirmHold
- },
- // focus时,点击页面的时候不收起键盘,微信小程序有效
- holdKeyboard: {
- type: Boolean,
- default: uni.$u.props.input.holdKeyboard
- },
- // 自动获取焦点
- // 在 H5 平台能否聚焦以及软键盘是否跟随弹出,取决于当前浏览器本身的实现。nvue 页面不支持,需使用组件的 focus()、blur() 方法控制焦点
- focus: {
- type: Boolean,
- default: uni.$u.props.input.focus
- },
- // 键盘收起时,是否自动失去焦点,目前仅App3.0.0+有效
- autoBlur: {
- type: Boolean,
- default: uni.$u.props.input.autoBlur
- },
- // 是否去掉 iOS 下的默认内边距,仅微信小程序,且type=textarea时有效
- disableDefaultPadding: {
- type: Boolean,
- default: uni.$u.props.input.disableDefaultPadding
- },
- // 指定focus时光标的位置
- cursor: {
- type: [String, Number],
- default: uni.$u.props.input.cursor
- },
- // 输入框聚焦时底部与键盘的距离
- cursorSpacing: {
- type: [String, Number],
- default: uni.$u.props.input.cursorSpacing
- },
- // 光标起始位置,自动聚集时有效,需与selection-end搭配使用
- selectionStart: {
- type: [String, Number],
- default: uni.$u.props.input.selectionStart
- },
- // 光标结束位置,自动聚集时有效,需与selection-start搭配使用
- selectionEnd: {
- type: [String, Number],
- default: uni.$u.props.input.selectionEnd
- },
- // 键盘弹起时,是否自动上推页面
- adjustPosition: {
- type: Boolean,
- default: uni.$u.props.input.adjustPosition
- },
- // 输入框内容对齐方式,可选值为:left|center|right
- inputAlign: {
- type: String,
- default: uni.$u.props.input.inputAlign
- },
- // 输入框字体的大小
- fontSize: {
- type: [String, Number],
- default: uni.$u.props.input.fontSize
- },
- // 输入框字体颜色
- color: {
- type: String,
- default: uni.$u.props.input.color
- },
- // 输入框前置图标
- prefixIcon: {
- type: String,
- default: uni.$u.props.input.prefixIcon
- },
- // 前置图标样式,对象或字符串
- prefixIconStyle: {
- type: [String, Object],
- default: uni.$u.props.input.prefixIconStyle
- },
- // 输入框后置图标
- suffixIcon: {
- type: String,
- default: uni.$u.props.input.suffixIcon
- },
- // 后置图标样式,对象或字符串
- suffixIconStyle: {
- type: [String, Object],
- default: uni.$u.props.input.suffixIconStyle
- },
- // 边框类型,surround-四周边框,bottom-底部边框,none-无边框
- border: {
- type: String,
- default: uni.$u.props.input.border
- },
- // 是否只读,与disabled不同之处在于disabled会置灰组件,而readonly则不会
- readonly: {
- type: Boolean,
- default: uni.$u.props.input.readonly
- },
- // 输入框形状,circle-圆形,square-方形
- shape: {
- type: String,
- default: uni.$u.props.input.shape
- },
- // 用于处理或者过滤输入框内容的方法
- formatter: {
- type: [Function, null],
- default: uni.$u.props.input.formatter
- },
- // 是否忽略组件内对文本合成系统事件的处理
- ignoreCompositionEvent: {
- type: Boolean,
- default: true
- }
- }
-}
diff --git a/uni_modules/uview-ui/components/u-input/u-input.vue b/uni_modules/uview-ui/components/u-input/u-input.vue
deleted file mode 100644
index 4c83757..0000000
--- a/uni_modules/uview-ui/components/u-input/u-input.vue
+++ /dev/null
@@ -1,354 +0,0 @@
-<template>
- <view class="u-input" :class="inputClass" :style="[wrapperStyle]">
- <view class="u-input__content">
- <view
- class="u-input__content__prefix-icon"
- v-if="prefixIcon || $slots.prefix"
- >
- <slot name="prefix">
- <u-icon
- :name="prefixIcon"
- size="18"
- :customStyle="prefixIconStyle"
- ></u-icon>
- </slot>
- </view>
- <view class="u-input__content__field-wrapper" @tap="clickHandler">
- <!-- 根据uni-app的input组件文档,H5和APP中只要声明了password参数(无论true还是false),type均失效,此时
- 为了防止type=number时,又存在password属性,type无效,此时需要设置password为undefined
- -->
- <input
- class="u-input__content__field-wrapper__field"
- :style="[inputStyle]"
- :type="type"
- :focus="focus"
- :cursor="cursor"
- :value="innerValue"
- :auto-blur="autoBlur"
- :disabled="disabled || readonly"
- :maxlength="maxlength"
- :placeholder="placeholder"
- :placeholder-style="placeholderStyle"
- :placeholder-class="placeholderClass"
- :confirm-type="confirmType"
- :confirm-hold="confirmHold"
- :hold-keyboard="holdKeyboard"
- :cursor-spacing="cursorSpacing"
- :adjust-position="adjustPosition"
- :selection-end="selectionEnd"
- :selection-start="selectionStart"
- :password="password || type === 'password' || false"
- :ignoreCompositionEvent="ignoreCompositionEvent"
- @input="onInput"
- @blur="onBlur"
- @focus="onFocus"
- @confirm="onConfirm"
- @keyboardheightchange="onkeyboardheightchange"
- />
- </view>
- <view
- class="u-input__content__clear"
- v-if="isShowClear"
- @tap="onClear"
- >
- <u-icon
- name="close"
- size="11"
- color="#ffffff"
- customStyle="line-height: 12px"
- ></u-icon>
- </view>
- <view
- class="u-input__content__subfix-icon"
- v-if="suffixIcon || $slots.suffix"
- >
- <slot name="suffix">
- <u-icon
- :name="suffixIcon"
- size="18"
- :customStyle="suffixIconStyle"
- ></u-icon>
- </slot>
- </view>
- </view>
- </view>
-</template>
-
-<script>
-import props from "./props.js";
-/**
- * Input 输入框
- * @description 此组件为一个输入框,默认没有边框和样式,是专门为配合表单组件u-form而设计的,利用它可以快速实现表单验证,输入内容,下拉选择等功能。
- * @tutorial https://uviewui.com/components/input.html
- * @property {String | Number} value 输入的值
- * @property {String} type 输入框类型,见上方说明 ( 默认 'text' )
- * @property {Boolean} fixed 如果 textarea 是在一个 position:fixed 的区域,需要显示指定属性 fixed 为 true,兼容性:微信小程序、百度小程序、字节跳动小程序、QQ小程序 ( 默认 false )
- * @property {Boolean} disabled 是否禁用输入框 ( 默认 false )
- * @property {String} disabledColor 禁用状态时的背景色( 默认 '#f5f7fa' )
- * @property {Boolean} clearable 是否显示清除控件 ( 默认 false )
- * @property {Boolean} password 是否密码类型 ( 默认 false )
- * @property {String | Number} maxlength 最大输入长度,设置为 -1 的时候不限制最大长度 ( 默认 -1 )
- * @property {String} placeholder 输入框为空时的占位符
- * @property {String} placeholderClass 指定placeholder的样式类,注意页面或组件的style中写了scoped时,需要在类名前写/deep/ ( 默认 'input-placeholder' )
- * @property {String | Object} placeholderStyle 指定placeholder的样式,字符串/对象形式,如"color: red;"
- * @property {Boolean} showWordLimit 是否显示输入字数统计,只在 type ="text"或type ="textarea"时有效 ( 默认 false )
- * @property {String} confirmType 设置右下角按钮的文字,兼容性详见uni-app文档 ( 默认 'done' )
- * @property {Boolean} confirmHold 点击键盘右下角按钮时是否保持键盘不收起,H5无效 ( 默认 false )
- * @property {Boolean} holdKeyboard focus时,点击页面的时候不收起键盘,微信小程序有效 ( 默认 false )
- * @property {Boolean} focus 自动获取焦点,在 H5 平台能否聚焦以及软键盘是否跟随弹出,取决于当前浏览器本身的实现。nvue 页面不支持,需使用组件的 focus()、blur() 方法控制焦点 ( 默认 false )
- * @property {Boolean} autoBlur 键盘收起时,是否自动失去焦点,目前仅App3.0.0+有效 ( 默认 false )
- * @property {Boolean} disableDefaultPadding 是否去掉 iOS 下的默认内边距,仅微信小程序,且type=textarea时有效 ( 默认 false )
- * @property {String | Number} cursor 指定focus时光标的位置( 默认 -1 )
- * @property {String | Number} cursorSpacing 输入框聚焦时底部与键盘的距离 ( 默认 30 )
- * @property {String | Number} selectionStart 光标起始位置,自动聚集时有效,需与selection-end搭配使用 ( 默认 -1 )
- * @property {String | Number} selectionEnd 光标结束位置,自动聚集时有效,需与selection-start搭配使用 ( 默认 -1 )
- * @property {Boolean} adjustPosition 键盘弹起时,是否自动上推页面 ( 默认 true )
- * @property {String} inputAlign 输入框内容对齐方式( 默认 'left' )
- * @property {String | Number} fontSize 输入框字体的大小 ( 默认 '15px' )
- * @property {String} color 输入框字体颜色 ( 默认 '#303133' )
- * @property {Function} formatter 内容式化函数
- * @property {String} prefixIcon 输入框前置图标
- * @property {String | Object} prefixIconStyle 前置图标样式,对象或字符串
- * @property {String} suffixIcon 输入框后置图标
- * @property {String | Object} suffixIconStyle 后置图标样式,对象或字符串
- * @property {String} border 边框类型,surround-四周边框,bottom-底部边框,none-无边框 ( 默认 'surround' )
- * @property {Boolean} readonly 是否只读,与disabled不同之处在于disabled会置灰组件,而readonly则不会 ( 默认 false )
- * @property {String} shape 输入框形状,circle-圆形,square-方形 ( 默认 'square' )
- * @property {Object} customStyle 定义需要用到的外部样式
- * @property {Boolean} ignoreCompositionEvent 是否忽略组件内对文本合成系统事件的处理。
- * @example <u-input v-model="value" :password="true" suffix-icon="lock-fill" />
- */
-export default {
- name: "u-input",
- mixins: [uni.$u.mpMixin, uni.$u.mixin, props],
- data() {
- return {
- // 输入框的值
- innerValue: "",
- // 是否处于获得焦点状态
- focused: false,
- // value是否第一次变化,在watch中,由于加入immediate属性,会在第一次触发,此时不应该认为value发生了变化
- firstChange: true,
- // value绑定值的变化是由内部还是外部引起的
- changeFromInner: false,
- // 过滤处理方法
- innerFormatter: value => value
- };
- },
- watch: {
- value: {
- immediate: true,
- handler(newVal, oldVal) {
- this.innerValue = newVal;
- /* #ifdef H5 */
- // 在H5中,外部value变化后,修改input中的值,不会触发@input事件,此时手动调用值变化方法
- if (
- this.firstChange === false &&
- this.changeFromInner === false
- ) {
- this.valueChange();
- }
- /* #endif */
- this.firstChange = false;
- // 重置changeFromInner的值为false,标识下一次引起默认为外部引起的
- this.changeFromInner = false;
- },
- },
- },
- computed: {
- // 是否显示清除控件
- isShowClear() {
- const { clearable, readonly, focused, innerValue } = this;
- return !!clearable && !readonly && !!focused && innerValue !== "";
- },
- // 组件的类名
- inputClass() {
- let classes = [],
- { border, disabled, shape } = this;
- border === "surround" &&
- (classes = classes.concat(["u-border", "u-input--radius"]));
- classes.push(`u-input--${shape}`);
- border === "bottom" &&
- (classes = classes.concat([
- "u-border-bottom",
- "u-input--no-radius",
- ]));
- return classes.join(" ");
- },
- // 组件的样式
- wrapperStyle() {
- const style = {};
- // 禁用状态下,被背景色加上对应的样式
- if (this.disabled) {
- style.backgroundColor = this.disabledColor;
- }
- // 无边框时,去除内边距
- if (this.border === "none") {
- style.padding = "0";
- } else {
- // 由于uni-app的iOS开发者能力有限,导致需要分开写才有效
- style.paddingTop = "6px";
- style.paddingBottom = "6px";
- style.paddingLeft = "9px";
- style.paddingRight = "9px";
- }
- return uni.$u.deepMerge(style, uni.$u.addStyle(this.customStyle));
- },
- // 输入框的样式
- inputStyle() {
- const style = {
- color: this.color,
- fontSize: uni.$u.addUnit(this.fontSize),
- textAlign: this.inputAlign
- };
- return style;
- },
- },
- methods: {
- // 在微信小程序中,不支持将函数当做props参数,故只能通过ref形式调用
- setFormatter(e) {
- this.innerFormatter = e
- },
- // 当键盘输入时,触发input事件
- onInput(e) {
- let { value = "" } = e.detail || {};
- // 格式化过滤方法
- const formatter = this.formatter || this.innerFormatter
- const formatValue = formatter(value)
- // 为了避免props的单向数据流特性,需要先将innerValue值设置为当前值,再在$nextTick中重新赋予设置后的值才有效
- this.innerValue = value
- this.$nextTick(() => {
- this.innerValue = formatValue;
- this.valueChange();
- })
- },
- // 输入框失去焦点时触发
- onBlur(event) {
- this.$emit("blur", event.detail.value);
- // H5端的blur会先于点击清除控件的点击click事件触发,导致focused
- // 瞬间为false,从而隐藏了清除控件而无法被点击到
- uni.$u.sleep(50).then(() => {
- this.focused = false;
- });
- // 尝试调用u-form的验证方法
- uni.$u.formValidate(this, "blur");
- },
- // 输入框聚焦时触发
- onFocus(event) {
- this.focused = true;
- this.$emit("focus");
- },
- // 点击完成按钮时触发
- onConfirm(event) {
- this.$emit("confirm", this.innerValue);
- },
- // 键盘高度发生变化的时候触发此事件
- // 兼容性:微信小程序2.7.0+、App 3.1.0+
- onkeyboardheightchange() {
- this.$emit("keyboardheightchange");
- },
- // 内容发生变化,进行处理
- valueChange() {
- const value = this.innerValue;
- this.$nextTick(() => {
- this.$emit("input", value);
- // 标识value值的变化是由内部引起的
- this.changeFromInner = true;
- this.$emit("change", value);
- // 尝试调用u-form的验证方法
- uni.$u.formValidate(this, "change");
- });
- },
- // 点击清除控件
- onClear() {
- this.innerValue = "";
- this.$nextTick(() => {
- this.valueChange();
- this.$emit("clear");
- });
- },
- /**
- * 在安卓nvue上,事件无法冒泡
- * 在某些时间,我们希望监听u-from-item的点击事件,此时会导致点击u-form-item内的u-input后
- * 无法触发u-form-item的点击事件,这里通过手动调用u-form-item的方法进行触发
- */
- clickHandler() {
- // #ifdef APP-NVUE
- if (uni.$u.os() === "android") {
- const formItem = uni.$u.$parent.call(this, "u-form-item");
- if (formItem) {
- formItem.clickHandler();
- }
- }
- // #endif
- },
- },
-};
-</script>
-
-<style lang="scss" scoped>
-@import "../../libs/css/components.scss";
-
-.u-input {
- @include flex(row);
- align-items: center;
- justify-content: space-between;
- flex: 1;
-
- &--radius,
- &--square {
- border-radius: 4px;
- }
-
- &--no-radius {
- border-radius: 0;
- }
-
- &--circle {
- border-radius: 100px;
- }
-
- &__content {
- flex: 1;
- @include flex(row);
- align-items: center;
- justify-content: space-between;
-
- &__field-wrapper {
- position: relative;
- @include flex(row);
- margin: 0;
- flex: 1;
-
- &__field {
- line-height: 26px;
- text-align: left;
- color: $u-main-color;
- height: 24px;
- font-size: 15px;
- flex: 1;
- }
- }
-
- &__clear {
- width: 20px;
- height: 20px;
- border-radius: 100px;
- background-color: #c6c7cb;
- @include flex(row);
- align-items: center;
- justify-content: center;
- transform: scale(0.82);
- margin-left: 4px;
- }
-
- &__subfix-icon {
- margin-left: 4px;
- }
-
- &__prefix-icon {
- margin-right: 4px;
- }
- }
-}
-</style>
diff --git a/uni_modules/uview-ui/components/u-keyboard/props.js b/uni_modules/uview-ui/components/u-keyboard/props.js
deleted file mode 100644
index cfdb00a..0000000
--- a/uni_modules/uview-ui/components/u-keyboard/props.js
+++ /dev/null
@@ -1,84 +0,0 @@
-export default {
- props: {
- // 键盘的类型,number-数字键盘,card-身份证键盘,car-车牌号键盘
- mode: {
- type: String,
- default: uni.$u.props.keyboard.mode
- },
- // 是否显示键盘的"."符号
- dotDisabled: {
- type: Boolean,
- default: uni.$u.props.keyboard.dotDisabled
- },
- // 是否显示顶部工具条
- tooltip: {
- type: Boolean,
- default: uni.$u.props.keyboard.tooltip
- },
- // 是否显示工具条中间的提示
- showTips: {
- type: Boolean,
- default: uni.$u.props.keyboard.showTips
- },
- // 工具条中间的提示文字
- tips: {
- type: String,
- default: uni.$u.props.keyboard.tips
- },
- // 是否显示工具条左边的"取消"按钮
- showCancel: {
- type: Boolean,
- default: uni.$u.props.keyboard.showCancel
- },
- // 是否显示工具条右边的"完成"按钮
- showConfirm: {
- type: Boolean,
- default: uni.$u.props.keyboard.showConfirm
- },
- // 是否打乱键盘按键的顺序
- random: {
- type: Boolean,
- default: uni.$u.props.keyboard.random
- },
- // 是否开启底部安全区适配,开启的话,会在iPhoneX机型底部添加一定的内边距
- safeAreaInsetBottom: {
- type: Boolean,
- default: uni.$u.props.keyboard.safeAreaInsetBottom
- },
- // 是否允许通过点击遮罩关闭键盘
- closeOnClickOverlay: {
- type: Boolean,
- default: uni.$u.props.keyboard.closeOnClickOverlay
- },
- // 控制键盘的弹出与收起
- show: {
- type: Boolean,
- default: uni.$u.props.keyboard.show
- },
- // 是否显示遮罩,某些时候数字键盘时,用户希望看到自己的数值,所以可能不想要遮罩
- overlay: {
- type: Boolean,
- default: uni.$u.props.keyboard.overlay
- },
- // z-index值
- zIndex: {
- type: [String, Number],
- default: uni.$u.props.keyboard.zIndex
- },
- // 取消按钮的文字
- cancelText: {
- type: String,
- default: uni.$u.props.keyboard.cancelText
- },
- // 确认按钮的文字
- confirmText: {
- type: String,
- default: uni.$u.props.keyboard.confirmText
- },
- // 输入一个中文后,是否自动切换到英文
- autoChange: {
- type: Boolean,
- default: uni.$u.props.keyboard.autoChange
- }
- }
-}
diff --git a/uni_modules/uview-ui/components/u-keyboard/u-keyboard.vue b/uni_modules/uview-ui/components/u-keyboard/u-keyboard.vue
deleted file mode 100644
index 14228cb..0000000
--- a/uni_modules/uview-ui/components/u-keyboard/u-keyboard.vue
+++ /dev/null
@@ -1,164 +0,0 @@
-<template>
- <u-popup
- :overlay="overlay"
- :closeOnClickOverlay="closeOnClickOverlay"
- mode="bottom"
- :popup="false"
- :show="show"
- :safeAreaInsetBottom="safeAreaInsetBottom"
- @close="popupClose"
- :zIndex="zIndex"
- :customStyle="{
- backgroundColor: 'rgb(214, 218, 220)'
- }"
- >
- <view class="u-keyboard">
- <slot />
- <view
- class="u-keyboard__tooltip"
- v-if="tooltip"
- >
- <view
- hover-class="u-hover-class"
- :hover-stay-time="100"
- >
- <text
- class="u-keyboard__tooltip__item u-keyboard__tooltip__cancel"
- v-if="showCancel"
- @tap="onCancel"
- >{{showCancel && cancelText}}</text>
- </view>
- <view>
- <text
- v-if="showTips"
- class="u-keyboard__tooltip__item u-keyboard__tooltip__tips"
- >{{tips ? tips : mode == 'number' ? '数字键盘' : mode == 'card' ? '身份证键盘' : '车牌号键盘'}}</text>
- </view>
- <view
- hover-class="u-hover-class"
- :hover-stay-time="100"
- >
- <text
- v-if="showConfirm"
- @tap="onConfirm"
- class="u-keyboard__tooltip__item u-keyboard__tooltip__submit"
- hover-class="u-hover-class"
- >{{showConfirm && confirmText}}</text>
- </view>
- </view>
- <template v-if="mode == 'number' || mode == 'card'">
- <u-number-keyboard
- :random="random"
- @backspace="backspace"
- @change="change"
- :mode="mode"
- :dotDisabled="dotDisabled"
- ></u-number-keyboard>
- </template>
- <template v-else>
- <u-car-keyboard
- :random="random"
- :autoChange="autoChange"
- @backspace="backspace"
- @change="change"
- ></u-car-keyboard>
- </template>
- </view>
- </u-popup>
-</template>
-
-<script>
- import props from './props.js';
-
- /**
- * keyboard 键盘
- * @description 此为uViw自定义的键盘面板,内含了数字键盘,车牌号键,身份证号键盘3中模式,都有可以打乱按键顺序的选项。
- * @tutorial https://www.uviewui.com/components/keyboard.html
- * @property {String} mode 键盘类型,见官网基本使用的说明 (默认 'number' )
- * @property {Boolean} dotDisabled 是否显示"."按键,只在mode=number时有效 (默认 false )
- * @property {Boolean} tooltip 是否显示键盘顶部工具条 (默认 true )
- * @property {Boolean} showTips 是否显示工具条中间的提示 (默认 true )
- * @property {String} tips 工具条中间的提示文字,见上方基本使用的说明,如不需要,请传""空字符
- * @property {Boolean} showCancel 是否显示工具条左边的"取消"按钮 (默认 true )
- * @property {Boolean} showConfirm 是否显示工具条右边的"完成"按钮( 默认 true )
- * @property {Boolean} random 是否打乱键盘按键的顺序 (默认 false )
- * @property {Boolean} safeAreaInsetBottom 是否开启底部安全区适配 (默认 true )
- * @property {Boolean} closeOnClickOverlay 是否允许点击遮罩收起键盘 (默认 true )
- * @property {Boolean} show 控制键盘的弹出与收起(默认 false )
- * @property {Boolean} overlay 是否显示遮罩 (默认 true )
- * @property {String | Number} zIndex 弹出键盘的z-index值 (默认 1075 )
- * @property {String} cancelText 取消按钮的文字 (默认 '取消' )
- * @property {String} confirmText 确认按钮的文字 (默认 '确认' )
- * @property {Object} customStyle 自定义样式,对象形式
- * @event {Function} change 按键被点击(不包含退格键被点击)
- * @event {Function} cancel 键盘顶部工具条左边的"取消"按钮被点击
- * @event {Function} confirm 键盘顶部工具条右边的"完成"按钮被点击
- * @event {Function} backspace 键盘退格键被点击
- * @example <u-keyboard mode="number" v-model="show"></u-keyboard>
- */
- export default {
- name: "u-keyboard",
- data() {
- return {
-
- }
- },
- mixins: [uni.$u.mpMixin, uni.$u.mixin,props],
- methods: {
- change(e) {
- this.$emit('change', e);
- },
- // 键盘关闭
- popupClose() {
- this.$emit('close');
- },
- // 输入完成
- onConfirm() {
- this.$emit('confirm');
- },
- // 取消输入
- onCancel() {
- this.$emit('cancel');
- },
- // 退格键
- backspace() {
- this.$emit('backspace');
- }
- }
- }
-</script>
-
-<style lang="scss" scoped>
- @import "../../libs/css/components.scss";
-
- .u-keyboard {
-
- &__tooltip {
- @include flex;
- justify-content: space-between;
- background-color: #FFFFFF;
- padding: 14px 12px;
-
- &__item {
- color: #333333;
- flex: 1;
- text-align: center;
- font-size: 15px;
- }
-
- &__submit {
- text-align: right;
- color: $u-primary;
- }
-
- &__cancel {
- text-align: left;
- color: #888888;
- }
-
- &__tips {
- color: $u-tips-color;
- }
- }
- }
-</style>
diff --git a/uni_modules/uview-ui/components/u-line-progress/props.js b/uni_modules/uview-ui/components/u-line-progress/props.js
deleted file mode 100644
index a4210bd..0000000
--- a/uni_modules/uview-ui/components/u-line-progress/props.js
+++ /dev/null
@@ -1,28 +0,0 @@
-export default {
- props: {
- // 激活部分的颜色
- activeColor: {
- type: String,
- default: uni.$u.props.lineProgress.activeColor
- },
- inactiveColor: {
- type: String,
- default: uni.$u.props.lineProgress.color
- },
- // 进度百分比,数值
- percentage: {
- type: [String, Number],
- default: uni.$u.props.lineProgress.inactiveColor
- },
- // 是否在进度条内部显示百分比的值
- showText: {
- type: Boolean,
- default: uni.$u.props.lineProgress.showText
- },
- // 进度条的高度,单位px
- height: {
- type: [String, Number],
- default: uni.$u.props.lineProgress.height
- }
- }
-}
diff --git a/uni_modules/uview-ui/components/u-line-progress/u-line-progress.vue b/uni_modules/uview-ui/components/u-line-progress/u-line-progress.vue
deleted file mode 100644
index 4e27931..0000000
--- a/uni_modules/uview-ui/components/u-line-progress/u-line-progress.vue
+++ /dev/null
@@ -1,144 +0,0 @@
-<template>
- <view
- class="u-line-progress"
- :style="[$u.addStyle(customStyle)]"
- >
- <view
- class="u-line-progress__background"
- ref="u-line-progress__background"
- :style="[{
- backgroundColor: inactiveColor,
- height: $u.addUnit(height),
- }]"
- >
- </view>
- <view
- class="u-line-progress__line"
- :style="[progressStyle]"
- >
- <slot>
- <text v-if="showText && percentage >= 10" class="u-line-progress__text">{{innserPercentage + '%'}}</text>
- </slot>
- </view>
- </view>
-</template>
-
-<script>
- import props from './props.js';
- // #ifdef APP-NVUE
- const dom = uni.requireNativePlugin('dom')
- // #endif
- /**
- * lineProgress 线型进度条
- * @description 展示操作或任务的当前进度,比如上传文件,是一个线形的进度条。
- * @tutorial https://www.uviewui.com/components/lineProgress.html
- * @property {String} activeColor 激活部分的颜色 ( 默认 '#19be6b' )
- * @property {String} inactiveColor 背景色 ( 默认 '#ececec' )
- * @property {String | Number} percentage 进度百分比,数值 ( 默认 0 )
- * @property {Boolean} showText 是否在进度条内部显示百分比的值 ( 默认 true )
- * @property {String | Number} height 进度条的高度,单位px ( 默认 12 )
- *
- * @example <u-line-progress :percent="70" :show-percent="true"></u-line-progress>
- */
- export default {
- name: "u-line-progress",
- mixins: [uni.$u.mpMixin, uni.$u.mixin,props],
- data() {
- return {
- lineWidth: 0,
- }
- },
- watch: {
- percentage(n) {
- this.resizeProgressWidth()
- }
- },
- computed: {
- progressStyle() {
- let style = {}
- style.width = this.lineWidth
- style.backgroundColor = this.activeColor
- style.height = uni.$u.addUnit(this.height)
- return style
- },
- innserPercentage() {
- // 控制范围在0-100之间
- return uni.$u.range(0, 100, this.percentage)
- }
- },
- mounted() {
- this.init()
- },
- methods: {
- init() {
- uni.$u.sleep(20).then(() => {
- this.resizeProgressWidth()
- })
- },
- getProgressWidth() {
- // #ifndef APP-NVUE
- return this.$uGetRect('.u-line-progress__background')
- // #endif
-
- // #ifdef APP-NVUE
- // 返回一个promise
- return new Promise(resolve => {
- dom.getComponentRect(this.$refs['u-line-progress__background'], (res) => {
- resolve(res.size)
- })
- })
- // #endif
- },
- resizeProgressWidth() {
- this.getProgressWidth().then(size => {
- const {
- width
- } = size
- // 通过设置的percentage值,计算其所占总长度的百分比
- this.lineWidth = width * this.innserPercentage / 100 + 'px'
- })
- }
- }
- }
-</script>
-
-<style lang="scss" scoped>
- @import "../../libs/css/components.scss";
-
- .u-line-progress {
- align-items: stretch;
- position: relative;
- @include flex(row);
- flex: 1;
- overflow: hidden;
- border-radius: 100px;
-
- &__background {
- background-color: #ececec;
- border-radius: 100px;
- flex: 1;
- }
-
- &__line {
- position: absolute;
- top: 0;
- left: 0;
- bottom: 0;
- align-items: center;
- @include flex(row);
- color: #ffffff;
- border-radius: 100px;
- transition: width 0.5s ease;
- justify-content: flex-end;
- }
-
- &__text {
- font-size: 10px;
- align-items: center;
- text-align: right;
- color: #FFFFFF;
- margin-right: 5px;
- transform: scale(0.9);
- }
- }
-</style>
diff --git a/uni_modules/uview-ui/components/u-line/props.js b/uni_modules/uview-ui/components/u-line/props.js
deleted file mode 100644
index 2308cc3..0000000
--- a/uni_modules/uview-ui/components/u-line/props.js
+++ /dev/null
@@ -1,33 +0,0 @@
-export default {
- props: {
- color: {
- type: String,
- default: uni.$u.props.line.color
- },
- // 长度,竖向时表现为高度,横向时表现为长度,可以为百分比,带px单位的值等
- length: {
- type: [String, Number],
- default: uni.$u.props.line.length
- },
- // 线条方向,col-竖向,row-横向
- direction: {
- type: String,
- default: uni.$u.props.line.direction
- },
- // 是否显示细边框
- hairline: {
- type: Boolean,
- default: uni.$u.props.line.hairline
- },
- // 线条与上下左右元素的间距,字符串形式,如"30px"、"20px 30px"
- margin: {
- type: [String, Number],
- default: uni.$u.props.line.margin
- },
- // 是否虚线,true-虚线,false-实线
- dashed: {
- type: Boolean,
- default: uni.$u.props.line.dashed
- }
- }
-}
diff --git a/uni_modules/uview-ui/components/u-line/u-line.vue b/uni_modules/uview-ui/components/u-line/u-line.vue
deleted file mode 100644
index e0a6d92..0000000
--- a/uni_modules/uview-ui/components/u-line/u-line.vue
+++ /dev/null
@@ -1,62 +0,0 @@
-<template>
- <view
- class="u-line"
- :style="[lineStyle]"
- >
-
- </view>
-</template>
-
-<script>
- import props from './props.js';
- /**
- * line 线条
- * @description 此组件一般用于显示一根线条,用于分隔内容块,有横向和竖向两种模式,且能设置0.5px线条,使用也很简单
- * @tutorial https://www.uviewui.com/components/line.html
- * @property {String} color 线条的颜色 ( 默认 '#d6d7d9' )
- * @property {String | Number} length 长度,竖向时表现为高度,横向时表现为长度,可以为百分比,带px单位的值等 ( 默认 '100%' )
- * @property {String} direction 线条的方向,row-横向,col-竖向 (默认 'row' )
- * @property {Boolean} hairline 是否显示细线条 (默认 true )
- * @property {String | Number} margin 线条与上下左右元素的间距,字符串形式,如"30px" (默认 0 )
- * @property {Boolean} dashed 是否虚线,true-虚线,false-实线 (默认 false )
- * @property {Object} customStyle 定义需要用到的外部样式
- * @example <u-line color="red"></u-line>
- */
- export default {
- name: 'u-line',
- mixins: [uni.$u.mpMixin, uni.$u.mixin,props],
- computed: {
- lineStyle() {
- const style = {}
- style.margin = this.margin
- // 如果是水平线条,边框高度为1px,再通过transform缩小一半,就是0.5px了
- if (this.direction === 'row') {
- // 此处采用兼容分开写,兼容nvue的写法
- style.borderBottomWidth = '1px'
- style.borderBottomStyle = this.dashed ? 'dashed' : 'solid'
- style.width = uni.$u.addUnit(this.length)
- if (this.hairline) style.transform = 'scaleY(0.5)'
- } else {
- // 如果是竖向线条,边框宽度为1px,再通过transform缩小一半,就是0.5px了
- style.borderLeftWidth = '1px'
- style.borderLeftStyle = this.dashed ? 'dashed' : 'solid'
- style.height = uni.$u.addUnit(this.length)
- if (this.hairline) style.transform = 'scaleX(0.5)'
- }
-
- style.borderColor = this.color
- return uni.$u.deepMerge(style, uni.$u.addStyle(this.customStyle))
- }
- }
- }
-</script>
-
-<style lang="scss" scoped>
- @import "../../libs/css/components.scss";
-
- .u-line {
- /* #ifndef APP-NVUE */
- vertical-align: middle;
- /* #endif */
- }
-</style>
diff --git a/uni_modules/uview-ui/components/u-link/props.js b/uni_modules/uview-ui/components/u-link/props.js
deleted file mode 100644
index d39353f..0000000
--- a/uni_modules/uview-ui/components/u-link/props.js
+++ /dev/null
@@ -1,39 +0,0 @@
-export default {
- props: {
- // 文字颜色
- color: {
- type: String,
- default: uni.$u.props.link.color
- },
- // 字体大小,单位px
- fontSize: {
- type: [String, Number],
- default: uni.$u.props.link.fontSize
- },
- // 是否显示下划线
- underLine: {
- type: Boolean,
- default: uni.$u.props.link.underLine
- },
- // 要跳转的链接
- href: {
- type: String,
- default: uni.$u.props.link.href
- },
- // 小程序中复制到粘贴板的提示语
- mpTips: {
- type: String,
- default: uni.$u.props.link.mpTips
- },
- // 下划线颜色
- lineColor: {
- type: String,
- default: uni.$u.props.link.lineColor
- },
- // 超链接的问题,不使用slot形式传入,是因为nvue下无法修改颜色
- text: {
- type: String,
- default: uni.$u.props.link.text
- }
- }
-}
diff --git a/uni_modules/uview-ui/components/u-link/u-link.vue b/uni_modules/uview-ui/components/u-link/u-link.vue
deleted file mode 100644
index c6802a5..0000000
--- a/uni_modules/uview-ui/components/u-link/u-link.vue
+++ /dev/null
@@ -1,83 +0,0 @@
-<template>
- <text
- class="u-link"
- @tap.stop="openLink"
- :style="[linkStyle, $u.addStyle(customStyle)]"
- >{{text}}</text>
-</template>
-
-<script>
- import props from './props.js';
-
- /**
- * link 超链接
- * @description 该组件为超链接组件,在不同平台有不同表现形式:在APP平台会通过plus环境打开内置浏览器,在小程序中把链接复制到粘贴板,同时提示信息,在H5中通过window.open打开链接。
- * @tutorial https://www.uviewui.com/components/link.html
- * @property {String} color 文字颜色 (默认 color['u-primary'] )
- * @property {String | Number} fontSize 字体大小,单位px (默认 15 )
- * @property {Boolean} underLine 是否显示下划线 (默认 false )
- * @property {String} href 跳转的链接,要带上http(s)
- * @property {String} mpTips 各个小程序平台把链接复制到粘贴板后的提示语(默认“链接已复制,请在浏览器打开”)
- * @property {String} lineColor 下划线颜色,默认同color参数颜色
- * @property {String} text 超链接的问题,不使用slot形式传入,是因为nvue下无法修改颜色
- * @property {Object} customStyle 定义需要用到的外部样式
- *
- * @example <u-link href="http://www.uviewui.com">蜀道难,难于上青天</u-link>
- */
- export default {
- name: "u-link",
- mixins: [uni.$u.mpMixin, uni.$u.mixin,props],
- computed: {
- linkStyle() {
- const style = {
- color: this.color,
- fontSize: uni.$u.addUnit(this.fontSize),
- // line-height设置为比字体大小多2px
- lineHeight: uni.$u.addUnit(uni.$u.getPx(this.fontSize) + 2),
- textDecoration: this.underLine ? 'underline' : 'none'
- }
- // if (this.underLine) {
- // style.borderBottomColor = this.lineColor || this.color
- // style.borderBottomWidth = '1px'
- // }
- return style
- }
- },
- methods: {
- openLink() {
- // #ifdef APP-PLUS
- plus.runtime.openURL(this.href)
- // #endif
- // #ifdef H5
- window.open(this.href)
- // #endif
- // #ifdef MP
- uni.setClipboardData({
- data: this.href,
- success: () => {
- uni.hideToast();
- this.$nextTick(() => {
- uni.$u.toast(this.mpTips);
- })
- }
- });
- // #endif
- this.$emit('click')
- }
- }
- }
-</script>
-
-<style lang="scss" scoped>
- @import "../../libs/css/components.scss";
- $u-link-line-height:1 !default;
-
- .u-link {
- /* #ifndef APP-NVUE */
- line-height: $u-link-line-height;
- /* #endif */
- @include flex;
- flex-wrap: wrap;
- flex: 1;
- }
-</style>
diff --git a/uni_modules/uview-ui/components/u-list-item/props.js b/uni_modules/uview-ui/components/u-list-item/props.js
deleted file mode 100644
index 58ddc49..0000000
--- a/uni_modules/uview-ui/components/u-list-item/props.js
+++ /dev/null
@@ -1,9 +0,0 @@
-export default {
- props: {
- // 用于滚动到指定item
- anchor: {
- type: [String, Number],
- default: uni.$u.props.listItem.anchor
- }
- }
-}
diff --git a/uni_modules/uview-ui/components/u-list-item/u-list-item.vue b/uni_modules/uview-ui/components/u-list-item/u-list-item.vue
deleted file mode 100644
index 1a25db6..0000000
--- a/uni_modules/uview-ui/components/u-list-item/u-list-item.vue
+++ /dev/null
@@ -1,116 +0,0 @@
-<template>
- <!-- #ifdef APP-NVUE -->
- <cell>
- <!-- #endif -->
- <view
- class="u-list-item"
- :ref="`u-list-item-${anchor}`"
- :anchor="`u-list-item-${anchor}`"
- :class="[`u-list-item-${anchor}`]"
- >
- <slot />
- </view>
- <!-- #ifdef APP-NVUE -->
- </cell>
- <!-- #endif -->
-</template>
-
-<script>
- import props from './props.js';
- // #ifdef APP-NVUE
- const dom = uni.requireNativePlugin('dom')
- // #endif
- /**
- * List 列表
- * @description 该组件为高性能列表组件
- * @tutorial https://www.uviewui.com/components/list.html
- * @property {String | Number} anchor 用于滚动到指定item
- * @example <u-list-ite v-for="(item, index) in indexList" :key="index" ></u-list-item>
- */
- export default {
- name: 'u-list-item',
- mixins: [uni.$u.mpMixin, uni.$u.mixin,props],
- data() {
- return {
- // 节点信息
- rect: {},
- index: 0,
- show: true,
- sys: uni.$u.sys()
- }
- },
- computed: {
-
- },
- inject: ['uList'],
- watch: {
- // #ifndef APP-NVUE
- 'uList.innerScrollTop'(n) {
- const preLoadScreen = this.uList.preLoadScreen
- const windowHeight = this.sys.windowHeight
- if(n <= windowHeight * preLoadScreen) {
- this.parent.updateOffsetFromChild(0)
- } else if (this.rect.top <= n - windowHeight * preLoadScreen) {
- this.parent.updateOffsetFromChild(this.rect.top)
- }
- }
- // #endif
- },
- created() {
- this.parent = {}
- },
- mounted() {
- this.init()
- },
- methods: {
- init() {
- // 初始化数据
- this.updateParentData()
- this.index = this.parent.children.indexOf(this)
- this.resize()
- },
- updateParentData() {
- // 此方法在mixin中
- this.getParentData('u-list')
- },
- resize() {
- this.queryRect(`u-list-item-${this.anchor}`).then(size => {
- const lastChild = this.parent.children[this.index - 1]
- this.rect = size
- const preLoadScreen = this.uList.preLoadScreen
- const windowHeight = this.sys.windowHeight
- // #ifndef APP-NVUE
- if (lastChild) {
- this.rect.top = lastChild.rect.top + lastChild.rect.height
- }
- if (size.top >= this.uList.innerScrollTop + (1 + preLoadScreen) * windowHeight) this.show =
- false
- // #endif
- })
- },
- // 查询元素尺寸
- queryRect(el) {
- return new Promise(resolve => {
- // #ifndef APP-NVUE
- this.$uGetRect(`.${el}`).then(size => {
- resolve(size)
- })
- // #endif
-
- // #ifdef APP-NVUE
- const ref = this.$refs[el]
- dom.getComponentRect(ref, res => {
- resolve(res.size)
- })
- // #endif
- })
- }
- }
- }
-</script>
-
-<style lang="scss" scoped>
- @import "../../libs/css/components.scss";
-
- .u-list-item {}
-</style>
diff --git a/uni_modules/uview-ui/components/u-list/props.js b/uni_modules/uview-ui/components/u-list/props.js
deleted file mode 100644
index 25406f4..0000000
--- a/uni_modules/uview-ui/components/u-list/props.js
+++ /dev/null
@@ -1,76 +0,0 @@
-export default {
- props: {
- // 控制是否出现滚动条,仅nvue有效
- showScrollbar: {
- type: Boolean,
- default: uni.$u.props.list.showScrollbar
- },
- // 距底部多少时触发scrolltolower事件
- lowerThreshold: {
- type: [String, Number],
- default: uni.$u.props.list.lowerThreshold
- },
- // 距顶部多少时触发scrolltoupper事件,非nvue有效
- upperThreshold: {
- type: [String, Number],
- default: uni.$u.props.list.upperThreshold
- },
- // 设置竖向滚动条位置
- scrollTop: {
- type: [String, Number],
- default: uni.$u.props.list.scrollTop
- },
- // 控制 onscroll 事件触发的频率,仅nvue有效
- offsetAccuracy: {
- type: [String, Number],
- default: uni.$u.props.list.offsetAccuracy
- },
- // 启用 flexbox 布局。开启后,当前节点声明了display: flex就会成为flex container,并作用于其孩子节点,仅微信小程序有效
- enableFlex: {
- type: Boolean,
- default: uni.$u.props.list.enableFlex
- },
- // 是否按分页模式显示List,默认值false
- pagingEnabled: {
- type: Boolean,
- default: uni.$u.props.list.pagingEnabled
- },
- // 是否允许List滚动
- scrollable: {
- type: Boolean,
- default: uni.$u.props.list.scrollable
- },
- // 值应为某子元素id(id不能以数字开头)
- scrollIntoView: {
- type: String,
- default: uni.$u.props.list.scrollIntoView
- },
- // 在设置滚动条位置时使用动画过渡
- scrollWithAnimation: {
- type: Boolean,
- default: uni.$u.props.list.scrollWithAnimation
- },
- // iOS点击顶部状态栏、安卓双击标题栏时,滚动条返回顶部,只对微信小程序有效
- enableBackToTop: {
- type: Boolean,
- default: uni.$u.props.list.enableBackToTop
- },
- // 列表的高度
- height: {
- type: [String, Number],
- default: uni.$u.props.list.height
- },
- // 列表宽度
- width: {
- type: [String, Number],
- default: uni.$u.props.list.width
- },
- // 列表前后预渲染的屏数,1代表一个屏幕的高度,1.5代表1个半屏幕高度
- preLoadScreen: {
- type: [String, Number],
- default: uni.$u.props.list.preLoadScreen
- }
- // vue下,是否开启虚拟列表
-
- }
-}
diff --git a/uni_modules/uview-ui/components/u-list/u-list.vue b/uni_modules/uview-ui/components/u-list/u-list.vue
deleted file mode 100644
index 4447cab..0000000
--- a/uni_modules/uview-ui/components/u-list/u-list.vue
+++ /dev/null
@@ -1,157 +0,0 @@
-<template>
- <!-- #ifdef APP-NVUE -->
- <list
- class="u-list"
- :enableBackToTop="enableBackToTop"
- :loadmoreoffset="lowerThreshold"
- :showScrollbar="showScrollbar"
- :style="[listStyle]"
- :offset-accuracy="Number(offsetAccuracy)"
- @scroll="onScroll"
- @loadmore="scrolltolower"
- >
- <slot />
- </list>
- <!-- #endif -->
- <!-- #ifndef APP-NVUE -->
- <scroll-view
- class="u-list"
- :scroll-into-view="scrollIntoView"
- :style="[listStyle]"
- scroll-y
- :scroll-top="Number(scrollTop)"
- :lower-threshold="Number(lowerThreshold)"
- :upper-threshold="Number(upperThreshold)"
- :show-scrollbar="showScrollbar"
- :enable-back-to-top="enableBackToTop"
- :scroll-with-animation="scrollWithAnimation"
- @scroll="onScroll"
- @scrolltolower="scrolltolower"
- @scrolltoupper="scrolltoupper"
- >
- <view>
- <slot />
- </view>
- </scroll-view>
- <!-- #endif -->
-</template>
-
-<script>
- import props from './props.js';
- // #ifdef APP-NVUE
- const dom = uni.requireNativePlugin('dom')
- // #endif
- /**
- * List 列表
- * @description 该组件为高性能列表组件
- * @tutorial https://www.uviewui.com/components/list.html
- * @property {Boolean} showScrollbar 控制是否出现滚动条,仅nvue有效 (默认 false )
- * @property {String | Number} lowerThreshold 距底部多少时触发scrolltolower事件 (默认 50 )
- * @property {String | Number} upperThreshold 距顶部多少时触发scrolltoupper事件,非nvue有效 (默认 0 )
- * @property {String | Number} scrollTop 设置竖向滚动条位置(默认 0 )
- * @property {String | Number} offsetAccuracy 控制 onscroll 事件触发的频率,仅nvue有效(默认 10 )
- * @property {Boolean} enableFlex 启用 flexbox 布局。开启后,当前节点声明了display: flex就会成为flex container,并作用于其孩子节点,仅微信小程序有效(默认 false )
- * @property {Boolean} pagingEnabled 是否按分页模式显示List,(默认 false )
- * @property {Boolean} scrollable 是否允许List滚动(默认 true )
- * @property {String} scrollIntoView 值应为某子元素id(id不能以数字开头)
- * @property {Boolean} scrollWithAnimation 在设置滚动条位置时使用动画过渡 (默认 false )
- * @property {Boolean} enableBackToTop iOS点击顶部状态栏、安卓双击标题栏时,滚动条返回顶部,只对微信小程序有效 (默认 false )
- * @property {String | Number} height 列表的高度 (默认 0 )
- * @property {String | Number} width 列表宽度 (默认 0 )
- * @property {String | Number} preLoadScreen 列表前后预渲染的屏数,1代表一个屏幕的高度,1.5代表1个半屏幕高度 (默认 1 )
- * @property {Object} customStyle 定义需要用到的外部样式
- *
- * @example <u-list @scrolltolower="scrolltolower"></u-list>
- */
- export default {
- name: 'u-list',
- mixins: [uni.$u.mpMixin, uni.$u.mixin,props],
- watch: {
- scrollIntoView(n) {
- this.scrollIntoViewById(n)
- }
- },
- data() {
- return {
- // 记录内部滚动的距离
- innerScrollTop: 0,
- // vue下,scroll-view在上拉加载时的偏移值
- offset: 0,
- sys: uni.$u.sys()
- }
- },
- computed: {
- listStyle() {
- const style = {},
- addUnit = uni.$u.addUnit
- if (this.width != 0) style.width = addUnit(this.width)
- if (this.height != 0) style.height = addUnit(this.height)
- // 如果没有定义列表高度,则默认使用屏幕高度
- if (!style.height) style.height = addUnit(this.sys.windowHeight, 'px')
- return uni.$u.deepMerge(style, uni.$u.addStyle(this.customStyle))
- }
- },
- provide() {
- return {
- uList: this
- }
- },
- created() {
- this.refs = []
- this.children = []
- this.anchors = []
- },
- mounted() {},
- methods: {
- updateOffsetFromChild(top) {
- this.offset = top
- },
- onScroll(e) {
- let scrollTop = 0
- // #ifdef APP-NVUE
- scrollTop = e.contentOffset.y
- // #endif
- // #ifndef APP-NVUE
- scrollTop = e.detail.scrollTop
- // #endif
- this.innerScrollTop = scrollTop
- this.$emit('scroll', Math.abs(scrollTop))
- },
- scrollIntoViewById(id) {
- // #ifdef APP-NVUE
- // 根据id参数,找到所有u-list-item中匹配的节点,再通过dom模块滚动到对应的位置
- const item = this.refs.find(item => item.$refs[id] ? true : false)
- dom.scrollToElement(item.$refs[id], {
- // 是否需要滚动动画
- animated: this.scrollWithAnimation
- })
- // #endif
- },
- // 滚动到底部触发事件
- scrolltolower(e) {
- uni.$u.sleep(30).then(() => {
- this.$emit('scrolltolower')
- })
- },
- // #ifndef APP-NVUE
- // 滚动到底部时触发,非nvue有效
- scrolltoupper(e) {
- uni.$u.sleep(30).then(() => {
- this.$emit('scrolltoupper')
- // 这一句很重要,能绝对保证在性功能障碍的webview,滚动条到顶时,取消偏移值,让页面置顶
- this.offset = 0
- })
- }
- // #endif
- },
- }
-</script>
-
-<style lang="scss" scoped>
- @import "../../libs/css/components.scss";
-
- .u-list {
- @include flex(column);
-
- }
-</style>
diff --git a/uni_modules/uview-ui/components/u-loading-icon/props.js b/uni_modules/uview-ui/components/u-loading-icon/props.js
deleted file mode 100644
index c35524e..0000000
--- a/uni_modules/uview-ui/components/u-loading-icon/props.js
+++ /dev/null
@@ -1,59 +0,0 @@
-export default {
- props: {
- // 是否显示组件
- show: {
- type: Boolean,
- default: uni.$u.props.loadingIcon.show
- },
- // 颜色
- color: {
- type: String,
- default: uni.$u.props.loadingIcon.color
- },
- // 提示文字颜色
- textColor: {
- type: String,
- default: uni.$u.props.loadingIcon.textColor
- },
- // 文字和图标是否垂直排列
- vertical: {
- type: Boolean,
- default: uni.$u.props.loadingIcon.vertical
- },
- // 模式选择,circle-圆形,spinner-花朵形,semicircle-半圆形
- mode: {
- type: String,
- default: uni.$u.props.loadingIcon.mode
- },
- // 图标大小,单位默认px
- size: {
- type: [String, Number],
- default: uni.$u.props.loadingIcon.size
- },
- // 文字大小
- textSize: {
- type: [String, Number],
- default: uni.$u.props.loadingIcon.textSize
- },
- // 文字内容
- text: {
- type: [String, Number],
- default: uni.$u.props.loadingIcon.text
- },
- // 动画模式
- timingFunction: {
- type: String,
- default: uni.$u.props.loadingIcon.timingFunction
- },
- // 动画执行周期时间
- duration: {
- type: [String, Number],
- default: uni.$u.props.loadingIcon.duration
- },
- // mode=circle时的暗边颜色
- inactiveColor: {
- type: String,
- default: uni.$u.props.loadingIcon.inactiveColor
- }
- }
-}
diff --git a/uni_modules/uview-ui/components/u-loading-icon/u-loading-icon.vue b/uni_modules/uview-ui/components/u-loading-icon/u-loading-icon.vue
deleted file mode 100644
index 2ede5c3..0000000
--- a/uni_modules/uview-ui/components/u-loading-icon/u-loading-icon.vue
+++ /dev/null
@@ -1,343 +0,0 @@
-<template>
- <view
- class="u-loading-icon"
- :style="[$u.addStyle(customStyle)]"
- :class="[vertical && 'u-loading-icon--vertical']"
- v-if="show"
- >
- <view
- v-if="!webviewHide"
- class="u-loading-icon__spinner"
- :class="[`u-loading-icon__spinner--${mode}`]"
- ref="ani"
- :style="{
- color: color,
- width: $u.addUnit(size),
- height: $u.addUnit(size),
- borderTopColor: color,
- borderBottomColor: otherBorderColor,
- borderLeftColor: otherBorderColor,
- borderRightColor: otherBorderColor,
- 'animation-duration': `${duration}ms`,
- 'animation-timing-function': mode === 'semicircle' || mode === 'circle' ? timingFunction : ''
- }"
- >
- <block v-if="mode === 'spinner'">
- <!-- #ifndef APP-NVUE -->
- <view
- v-for="(item, index) in array12"
- :key="index"
- class="u-loading-icon__dot"
- >
- </view>
- <!-- #endif -->
- <!-- #ifdef APP-NVUE -->
- <!-- 此组件内部图标部分无法设置宽高,即使通过width和height配置了也无效 -->
- <loading-indicator
- v-if="!webviewHide"
- class="u-loading-indicator"
- :animating="true"
- :style="{
- color: color,
- width: $u.addUnit(size),
- height: $u.addUnit(size)
- }"
- />
- <!-- #endif -->
- </block>
- </view>
- <text
- v-if="text"
- class="u-loading-icon__text"
- :style="{
- fontSize: $u.addUnit(textSize),
- color: textColor,
- }"
- >{{text}}</text>
- </view>
-</template>
-
-<script>
- import props from './props.js';
- // #ifdef APP-NVUE
- const animation = weex.requireModule('animation');
- // #endif
- /**
- * loading 加载动画
- * @description 警此组件为一个小动画,目前用在uView的loadmore加载更多和switch开关等组件的正在加载状态场景。
- * @tutorial https://www.uviewui.com/components/loading.html
- * @property {Boolean} show 是否显示组件 (默认 true)
- * @property {String} color 动画活动区域的颜色,只对 mode = flower 模式有效(默认color['u-tips-color'])
- * @property {String} textColor 提示文本的颜色(默认color['u-tips-color'])
- * @property {Boolean} vertical 文字和图标是否垂直排列 (默认 false )
- * @property {String} mode 模式选择,见官网说明(默认 'circle' )
- * @property {String | Number} size 加载图标的大小,单位px (默认 24 )
- * @property {String | Number} textSize 文字大小(默认 15 )
- * @property {String | Number} text 文字内容
- * @property {String} timingFunction 动画模式 (默认 'ease-in-out' )
- * @property {String | Number} duration 动画执行周期时间(默认 1200)
- * @property {String} inactiveColor mode=circle时的暗边颜色
- * @property {Object} customStyle 定义需要用到的外部样式
- * @example <u-loading mode="circle"></u-loading>
- */
- export default {
- name: 'u-loading-icon',
- mixins: [uni.$u.mpMixin, uni.$u.mixin, props],
- data() {
- return {
- // Array.form可以通过一个伪数组对象创建指定长度的数组
- // https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/Array/from
- array12: Array.from({
- length: 12
- }),
- // 这里需要设置默认值为360,否则在安卓nvue上,会延迟一个duration周期后才执行
- // 在iOS nvue上,则会一开始默认执行两个周期的动画
- aniAngel: 360, // 动画旋转角度
- webviewHide: false, // 监听webview的状态,如果隐藏了页面,则停止动画,以免性能消耗
- loading: false, // 是否运行中,针对nvue使用
- }
- },
- computed: {
- // 当为circle类型时,给其另外三边设置一个更轻一些的颜色
- // 之所以需要这么做的原因是,比如父组件传了color为红色,那么需要另外的三个边为浅红色
- // 而不能是固定的某一个其他颜色(因为这个固定的颜色可能浅蓝,导致效果没有那么细腻良好)
- otherBorderColor() {
- const lightColor = uni.$u.colorGradient(this.color, '#ffffff', 100)[80]
- if (this.mode === 'circle') {
- return this.inactiveColor ? this.inactiveColor : lightColor
- } else {
- return 'transparent'
- }
- // return this.mode === 'circle' ? this.inactiveColor ? this.inactiveColor : lightColor : 'transparent'
- }
- },
- watch: {
- show(n) {
- // nvue中,show为true,且为非loading状态,就重新执行动画模块
- // #ifdef APP-NVUE
- if (n && !this.loading) {
- setTimeout(() => {
- this.startAnimate()
- }, 30)
- }
- // #endif
- }
- },
- mounted() {
- this.init()
- },
- methods: {
- init() {
- setTimeout(() => {
- // #ifdef APP-NVUE
- this.show && this.nvueAnimate()
- // #endif
- // #ifdef APP-PLUS
- this.show && this.addEventListenerToWebview()
- // #endif
- }, 20)
- },
- // 监听webview的显示与隐藏
- addEventListenerToWebview() {
- // webview的堆栈
- const pages = getCurrentPages()
- // 当前页面
- const page = pages[pages.length - 1]
- // 当前页面的webview实例
- const currentWebview = page.$getAppWebview()
- // 监听webview的显示与隐藏,从而停止或者开始动画(为了性能)
- currentWebview.addEventListener('hide', () => {
- this.webviewHide = true
- })
- currentWebview.addEventListener('show', () => {
- this.webviewHide = false
- })
- },
- // #ifdef APP-NVUE
- nvueAnimate() {
- // nvue下,非spinner类型时才需要旋转,因为nvue的spinner类型,使用了weex的
- // loading-indicator组件,自带旋转功能
- this.mode !== 'spinner' && this.startAnimate()
- },
- // 执行nvue的animate模块动画
- startAnimate() {
- this.loading = true
- const ani = this.$refs.ani
- if (!ani) return
- animation.transition(ani, {
- // 进行角度旋转
- styles: {
- transform: `rotate(${this.aniAngel}deg)`,
- transformOrigin: 'center center'
- },
- duration: this.duration,
- timingFunction: this.timingFunction,
- // delay: 10
- }, () => {
- // 每次增加360deg,为了让其重新旋转一周
- this.aniAngel += 360
- // 动画结束后,继续循环执行动画,需要同时判断webviewHide变量
- // nvue安卓,页面隐藏后依然会继续执行startAnimate方法
- this.show && !this.webviewHide ? this.startAnimate() : this.loading = false
- })
- }
- // #endif
- }
- }
-</script>
-
-<style lang="scss" scoped>
- @import "../../libs/css/components.scss";
- $u-loading-icon-color: #c8c9cc !default;
- $u-loading-icon-text-margin-left:4px !default;
- $u-loading-icon-text-color:$u-content-color !default;
- $u-loading-icon-text-font-size:14px !default;
- $u-loading-icon-text-line-height:20px !default;
- $u-loading-width:30px !default;
- $u-loading-height:30px !default;
- $u-loading-max-width:100% !default;
- $u-loading-max-height:100% !default;
- $u-loading-semicircle-border-width: 2px !default;
- $u-loading-semicircle-border-color:transparent !default;
- $u-loading-semicircle-border-top-right-radius: 100px !default;
- $u-loading-semicircle-border-top-left-radius: 100px !default;
- $u-loading-semicircle-border-bottom-left-radius: 100px !default;
- $u-loading-semicircle-border-bottom-right-radiu: 100px !default;
- $u-loading-semicircle-border-style: solid !default;
- $u-loading-circle-border-top-right-radius: 100px !default;
- $u-loading-circle-border-top-left-radius: 100px !default;
- $u-loading-circle-border-bottom-left-radius: 100px !default;
- $u-loading-circle-border-bottom-right-radiu: 100px !default;
- $u-loading-circle-border-width:2px !default;
- $u-loading-circle-border-top-color:#e5e5e5 !default;
- $u-loading-circle-border-right-color:$u-loading-circle-border-top-color !default;
- $u-loading-circle-border-bottom-color:$u-loading-circle-border-top-color !default;
- $u-loading-circle-border-left-color:$u-loading-circle-border-top-color !default;
- $u-loading-circle-border-style:solid !default;
- $u-loading-icon-host-font-size:0px !default;
- $u-loading-icon-host-line-height:1 !default;
- $u-loading-icon-vertical-margin:6px 0 0 !default;
- $u-loading-icon-dot-top:0 !default;
- $u-loading-icon-dot-left:0 !default;
- $u-loading-icon-dot-width:100% !default;
- $u-loading-icon-dot-height:100% !default;
- $u-loading-icon-dot-before-width:2px !default;
- $u-loading-icon-dot-before-height:25% !default;
- $u-loading-icon-dot-before-margin:0 auto !default;
- $u-loading-icon-dot-before-background-color:currentColor !default;
- $u-loading-icon-dot-before-border-radius:40% !default;
-
- .u-loading-icon {
- /* #ifndef APP-NVUE */
- // display: inline-flex;
- /* #endif */
- flex-direction: row;
- align-items: center;
- justify-content: center;
- color: $u-loading-icon-color;
-
- &__text {
- margin-left: $u-loading-icon-text-margin-left;
- color: $u-loading-icon-text-color;
- font-size: $u-loading-icon-text-font-size;
- line-height: $u-loading-icon-text-line-height;
- }
-
- &__spinner {
- width: $u-loading-width;
- height: $u-loading-height;
- position: relative;
- /* #ifndef APP-NVUE */
- box-sizing: border-box;
- max-width: $u-loading-max-width;
- max-height: $u-loading-max-height;
- animation: u-rotate 1s linear infinite;
- /* #endif */
- }
-
- &__spinner--semicircle {
- border-width: $u-loading-semicircle-border-width;
- border-color: $u-loading-semicircle-border-color;
- border-top-right-radius: $u-loading-semicircle-border-top-right-radius;
- border-top-left-radius: $u-loading-semicircle-border-top-left-radius;
- border-bottom-left-radius: $u-loading-semicircle-border-bottom-left-radius;
- border-bottom-right-radius: $u-loading-semicircle-border-bottom-right-radiu;
- border-style: $u-loading-semicircle-border-style;
- }
-
- &__spinner--circle {
- border-top-right-radius: $u-loading-circle-border-top-right-radius;
- border-top-left-radius: $u-loading-circle-border-top-left-radius;
- border-bottom-left-radius: $u-loading-circle-border-bottom-left-radius;
- border-bottom-right-radius: $u-loading-circle-border-bottom-right-radiu;
- border-width: $u-loading-circle-border-width;
- border-top-color: $u-loading-circle-border-top-color;
- border-right-color: $u-loading-circle-border-right-color;
- border-bottom-color: $u-loading-circle-border-bottom-color;
- border-left-color: $u-loading-circle-border-left-color;
- border-style: $u-loading-circle-border-style;
- }
-
- &--vertical {
- flex-direction: column
- }
- }
-
- /* #ifndef APP-NVUE */
- :host {
- font-size: $u-loading-icon-host-font-size;
- line-height: $u-loading-icon-host-line-height;
- }
-
- .u-loading-icon {
- &__spinner--spinner {
- animation-timing-function: steps(12)
- }
-
- &__text:empty {
- display: none
- }
-
- &--vertical &__text {
- margin: $u-loading-icon-vertical-margin;
- color: $u-content-color;
- }
-
- &__dot {
- position: absolute;
- top: $u-loading-icon-dot-top;
- left: $u-loading-icon-dot-left;
- width: $u-loading-icon-dot-width;
- height: $u-loading-icon-dot-height;
-
- &:before {
- display: block;
- width: $u-loading-icon-dot-before-width;
- height: $u-loading-icon-dot-before-height;
- margin: $u-loading-icon-dot-before-margin;
- background-color: $u-loading-icon-dot-before-background-color;
- border-radius: $u-loading-icon-dot-before-border-radius;
- content: " "
- }
- }
- }
-
- @for $i from 1 through 12 {
- .u-loading-icon__dot:nth-of-type(#{$i}) {
- transform: rotate($i * 30deg);
- opacity: 1 - 0.0625 * ($i - 1);
- }
- }
-
- @keyframes u-rotate {
- 0% {
- transform: rotate(0deg)
- }
-
- to {
- transform: rotate(1turn)
- }
- }
-
- /* #endif */
-</style>
diff --git a/uni_modules/uview-ui/components/u-loading-page/props.js b/uni_modules/uview-ui/components/u-loading-page/props.js
deleted file mode 100644
index e239b61..0000000
--- a/uni_modules/uview-ui/components/u-loading-page/props.js
+++ /dev/null
@@ -1,49 +0,0 @@
-export default {
- props: {
- // 提示内容
- loadingText: {
- type: [String, Number],
- default: uni.$u.props.loadingPage.loadingText
- },
- // 文字上方用于替换loading动画的图片
- image: {
- type: String,
- default: uni.$u.props.loadingPage.image
- },
- // 加载动画的模式,circle-圆形,spinner-花朵形,semicircle-半圆形
- loadingMode: {
- type: String,
- default: uni.$u.props.loadingPage.loadingMode
- },
- // 是否加载中
- loading: {
- type: Boolean,
- default: uni.$u.props.loadingPage.loading
- },
- // 背景色
- bgColor: {
- type: String,
- default: uni.$u.props.loadingPage.bgColor
- },
- // 文字颜色
- color: {
- type: String,
- default: uni.$u.props.loadingPage.color
- },
- // 文字大小
- fontSize: {
- type: [String, Number],
- default: uni.$u.props.loadingPage.fontSize
- },
- // 图标大小
- iconSize: {
- type: [String, Number],
- default: uni.$u.props.loadingPage.fontSize
- },
- // 加载中图标的颜色,只能rgb或者十六进制颜色值
- loadingColor: {
- type: String,
- default: uni.$u.props.loadingPage.loadingColor
- }
- }
-}
diff --git a/uni_modules/uview-ui/components/u-loading-page/u-loading-page.vue b/uni_modules/uview-ui/components/u-loading-page/u-loading-page.vue
deleted file mode 100644
index 03a78ad..0000000
--- a/uni_modules/uview-ui/components/u-loading-page/u-loading-page.vue
+++ /dev/null
@@ -1,115 +0,0 @@
-<template>
- <u-transition
- :show="loading"
- :custom-style="{
- position: 'fixed',
- top: 0,
- left: 0,
- right: 0,
- bottom: 0,
- backgroundColor: bgColor,
- display: 'flex',
- }"
- >
- <view class="u-loading-page">
- <view class="u-loading-page__warpper">
- <view class="u-loading-page__warpper__loading-icon">
- <image
- v-if="image"
- :src="image"
- class="u-loading-page__warpper__loading-icon__img"
- mode="widthFit"
- :style="{
- width: $u.addUnit(iconSize),
- height: $u.addUnit(iconSize)
- }"
- ></image>
- <u-loading-icon
- v-else
- :mode="loadingMode"
- :size="$u.addUnit(iconSize)"
- :color="loadingColor"
- ></u-loading-icon>
- </view>
- <slot>
- <text
- class="u-loading-page__warpper__text"
- :style="{
- fontSize: $u.addUnit(fontSize),
- color: color,
- }"
- >{{ loadingText }}</text
- >
- </slot>
- </view>
- </view>
- </u-transition>
-</template>
-
-<script>
-import props from "./props.js";
-/**
- * loadingPage 加载动画
- * @description 警此组件为一个小动画,目前用在uView的loadmore加载更多和switch开关等组件的正在加载状态场景。
- * @tutorial https://www.uviewui.com/components/loading.html
- * @property {String | Number} loadingText 提示内容 (默认 '正在加载' )
- * @property {String} image 文字上方用于替换loading动画的图片
- * @property {String} loadingMode 加载动画的模式,circle-圆形,spinner-花朵形,semicircle-半圆形 (默认 'circle' )
- * @property {Boolean} loading 是否加载中 (默认 false )
- * @property {String} bgColor 背景色 (默认 '#ffffff' )
- * @property {String} color 文字颜色 (默认 '#C8C8C8' )
- * @property {String | Number} fontSize 文字大小 (默认 19 )
- * @property {String | Number} iconSize 图标大小 (默认 28 )
- * @property {String} loadingColor 加载中图标的颜色,只能rgb或者十六进制颜色值 (默认 '#C8C8C8' )
- * @property {Object} customStyle 自定义样式
- * @example <u-loading mode="circle"></u-loading>
- */
-export default {
- name: "u-loading-page",
- mixins: [uni.$u.mpMixin, uni.$u.mixin, props],
- data() {
- return {};
- },
- methods: {},
-};
-</script>
-
-<style lang="scss" scoped>
-@import "../../libs/css/components.scss";
-
-$text-color: rgb(200, 200, 200) !default;
-$text-size: 19px !default;
-$u-loading-icon-margin-bottom: 10px !default;
-
-.u-loading-page {
- @include flex(column);
- flex: 1;
- align-items: center;
- justify-content: center;
-
- &__warpper {
- margin-top: -150px;
- justify-content: center;
- align-items: center;
- /* #ifndef APP-NVUE */
- color: $text-color;
- font-size: $text-size;
- /* #endif */
- @include flex(column);
-
- &__loading-icon {
- margin-bottom: $u-loading-icon-margin-bottom;
-
- &__img {
- width: 40px;
- height: 40px;
- }
- }
-
- &__text {
- font-size: $text-size;
- color: $text-color;
- }
- }
-}
-</style>
diff --git a/uni_modules/uview-ui/components/u-loadmore/props.js b/uni_modules/uview-ui/components/u-loadmore/props.js
deleted file mode 100644
index 1e67d89..0000000
--- a/uni_modules/uview-ui/components/u-loadmore/props.js
+++ /dev/null
@@ -1,94 +0,0 @@
-export default {
- props: {
- // 组件状态,loadmore-加载前的状态,loading-加载中的状态,nomore-没有更多的状态
- status: {
- type: String,
- default: uni.$u.props.loadmore.status
- },
- // 组件背景色
- bgColor: {
- type: String,
- default: uni.$u.props.loadmore.bgColor
- },
- // 是否显示加载中的图标
- icon: {
- type: Boolean,
- default: uni.$u.props.loadmore.icon
- },
- // 字体大小
- fontSize: {
- type: [String, Number],
- default: uni.$u.props.loadmore.fontSize
- },
- // 图标大小
- iconSize: {
- type: [String, Number],
- default: uni.$u.props.loadmore.iconSize
- },
- // 字体颜色
- color: {
- type: String,
- default: uni.$u.props.loadmore.color
- },
- // 加载中状态的图标,spinner-花朵状图标,circle-圆圈状,semicircle-半圆
- loadingIcon: {
- type: String,
- default: uni.$u.props.loadmore.loadingIcon
- },
- // 加载前的提示语
- loadmoreText: {
- type: String,
- default: uni.$u.props.loadmore.loadmoreText
- },
- // 加载中提示语
- loadingText: {
- type: String,
- default: uni.$u.props.loadmore.loadingText
- },
- // 没有更多的提示语
- nomoreText: {
- type: String,
- default: uni.$u.props.loadmore.nomoreText
- },
- // 在“没有更多”状态下,是否显示粗点
- isDot: {
- type: Boolean,
- default: uni.$u.props.loadmore.isDot
- },
- // 加载中图标的颜色
- iconColor: {
- type: String,
- default: uni.$u.props.loadmore.iconColor
- },
- // 上边距
- marginTop: {
- type: [String, Number],
- default: uni.$u.props.loadmore.marginTop
- },
- // 下边距
- marginBottom: {
- type: [String, Number],
- default: uni.$u.props.loadmore.marginBottom
- },
- // 高度,单位px
- height: {
- type: [String, Number],
- default: uni.$u.props.loadmore.height
- },
- // 是否显示左边分割线
- line: {
- type: Boolean,
- default: uni.$u.props.loadmore.line
- },
- // 线条颜色
- lineColor: {
- type: String,
- default: uni.$u.props.loadmore.lineColor
- },
- // 是否虚线,true-虚线,false-实线
- dashed: {
- type: Boolean,
- default: uni.$u.props.loadmore.dashed
- }
- }
-}
diff --git a/uni_modules/uview-ui/components/u-loadmore/u-loadmore.vue b/uni_modules/uview-ui/components/u-loadmore/u-loadmore.vue
deleted file mode 100644
index 73c79fe..0000000
--- a/uni_modules/uview-ui/components/u-loadmore/u-loadmore.vue
+++ /dev/null
@@ -1,150 +0,0 @@
-<template>
- <view
- class="u-loadmore"
- :style="[
- $u.addStyle(customStyle),
- {
- backgroundColor: bgColor,
- marginBottom: $u.addUnit(marginBottom),
- marginTop: $u.addUnit(marginTop),
- height: $u.addUnit(height),
- },
- ]"
- >
- <u-line
- length="140rpx"
- :color="lineColor"
- :hairline="false"
- :dashed="dashed"
- v-if="line"
- ></u-line>
- <!-- 加载中和没有更多的状态才显示两边的横线 -->
- <view
- :class="status == 'loadmore' || status == 'nomore' ? 'u-more' : ''"
- class="u-loadmore__content"
- >
- <view
- class="u-loadmore__content__icon-wrap"
- v-if="status === 'loading' && icon"
- >
- <u-loading-icon
- :color="iconColor"
- :size="iconSize"
- :mode="loadingIcon"
- ></u-loading-icon>
- </view>
- <!-- 如果没有更多的状态下,显示内容为dot(粗点),加载特定样式 -->
- <text
- class="u-line-1"
- :style="[loadTextStyle]"
- :class="[(status == 'nomore' && isDot == true) ? 'u-loadmore__content__dot-text' : 'u-loadmore__content__text']"
- @tap="loadMore"
- >{{ showText }}</text>
- </view>
- <u-line
- length="140rpx"
- :color="lineColor"
- :hairline="false"
- :dashed="dashed"
- v-if="line"
- ></u-line>
- </view>
-</template>
-
-<script>
- import props from './props.js';
-
- /**
- * loadmore 加载更多
- * @description 此组件一般用于标识页面底部加载数据时的状态。
- * @tutorial https://www.uviewui.com/components/loadMore.html
- * @property {String} status 组件状态(默认 'loadmore' )
- * @property {String} bgColor 组件背景颜色,在页面是非白色时会用到(默认 'transparent' )
- * @property {Boolean} icon 加载中时是否显示图标(默认 true )
- * @property {String | Number} fontSize 字体大小(默认 14 )
- * @property {String | Number} iconSize 图标大小(默认 17 )
- * @property {String} color 字体颜色(默认 '#606266' )
- * @property {String} loadingIcon 加载图标(默认 'circle' )
- * @property {String} loadmoreText 加载前的提示语(默认 '加载更多' )
- * @property {String} loadingText 加载中提示语(默认 '正在加载...' )
- * @property {String} nomoreText 没有更多的提示语(默认 '没有更多了' )
- * @property {Boolean} isDot 到上一个相邻元素的距离 (默认 false )
- * @property {String} iconColor 加载中图标的颜色 (默认 '#b7b7b7' )
- * @property {String} lineColor 线条颜色(默认 #E6E8EB )
- * @property {String | Number} marginTop 上边距 (默认 10 )
- * @property {String | Number} marginBottom 下边距 (默认 10 )
- * @property {String | Number} height 高度,单位px (默认 'auto' )
- * @property {Boolean} line 是否显示左边分割线 (默认 false )
- * @property {Boolean} dashed // 是否虚线,true-虚线,false-实线 (默认 false )
- * @event {Function} loadmore status为loadmore时,点击组件会发出此事件
- * @example <u-loadmore :status="status" icon-type="iconType" load-text="loadText" />
- */
- export default {
- name: "u-loadmore",
- mixins: [uni.$u.mpMixin, uni.$u.mixin,props],
- data() {
- return {
- // 粗点
- dotText: "●"
- }
- },
- computed: {
- // 加载的文字显示的样式
- loadTextStyle() {
- return {
- color: this.color,
- fontSize: uni.$u.addUnit(this.fontSize),
- lineHeight: uni.$u.addUnit(this.fontSize),
- backgroundColor: this.bgColor,
- }
- },
- // 显示的提示文字
- showText() {
- let text = '';
- if (this.status == 'loadmore') text = this.loadmoreText
- else if (this.status == 'loading') text = this.loadingText
- else if (this.status == 'nomore' && this.isDot) text = this.dotText;
- else text = this.nomoreText;
- return text;
- }
- },
- methods: {
- loadMore() {
- // 只有在“加载更多”的状态下才发送点击事件,内容不满一屏时无法触发底部上拉事件,所以需要点击来触发
- if (this.status == 'loadmore') this.$emit('loadmore');
- }
- }
- }
-</script>
-
-<style lang="scss" scoped>
- @import "../../libs/css/components.scss";
-
- .u-loadmore {
- @include flex(row);
- align-items: center;
- justify-content: center;
- flex: 1;
-
- &__content {
- margin: 0 15px;
- @include flex(row);
- align-items: center;
- justify-content: center;
-
- &__icon-wrap {
- margin-right: 8px;
- }
-
- &__text {
- font-size: 14px;
- color: $u-content-color;
- }
-
- &__dot-text {
- font-size: 15px;
- color: $u-tips-color;
- }
- }
- }
-</style>
diff --git a/uni_modules/uview-ui/components/u-modal/props.js b/uni_modules/uview-ui/components/u-modal/props.js
deleted file mode 100644
index 94b3078..0000000
--- a/uni_modules/uview-ui/components/u-modal/props.js
+++ /dev/null
@@ -1,89 +0,0 @@
-export default {
- props: {
- // 是否展示modal
- show: {
- type: Boolean,
- default: uni.$u.props.modal.show
- },
- // 标题
- title: {
- type: [String],
- default: uni.$u.props.modal.title
- },
- // 弹窗内容
- content: {
- type: String,
- default: uni.$u.props.modal.content
- },
- // 确认文案
- confirmText: {
- type: String,
- default: uni.$u.props.modal.confirmText
- },
- // 取消文案
- cancelText: {
- type: String,
- default: uni.$u.props.modal.cancelText
- },
- // 是否显示确认按钮
- showConfirmButton: {
- type: Boolean,
- default: uni.$u.props.modal.showConfirmButton
- },
- // 是否显示取消按钮
- showCancelButton: {
- type: Boolean,
- default: uni.$u.props.modal.showCancelButton
- },
- // 确认按钮颜色
- confirmColor: {
- type: String,
- default: uni.$u.props.modal.confirmColor
- },
- // 取消文字颜色
- cancelColor: {
- type: String,
- default: uni.$u.props.modal.cancelColor
- },
- // 对调确认和取消的位置
- buttonReverse: {
- type: Boolean,
- default: uni.$u.props.modal.buttonReverse
- },
- // 是否开启缩放效果
- zoom: {
- type: Boolean,
- default: uni.$u.props.modal.zoom
- },
- // 是否异步关闭,只对确定按钮有效
- asyncClose: {
- type: Boolean,
- default: uni.$u.props.modal.asyncClose
- },
- // 是否允许点击遮罩关闭modal
- closeOnClickOverlay: {
- type: Boolean,
- default: uni.$u.props.modal.closeOnClickOverlay
- },
- // 给一个负的margin-top,往上偏移,避免和键盘重合的情况
- negativeTop: {
- type: [String, Number],
- default: uni.$u.props.modal.negativeTop
- },
- // modal宽度,不支持百分比,可以数值,px,rpx单位
- width: {
- type: [String, Number],
- default: uni.$u.props.modal.width
- },
- // 确认按钮的样式,circle-圆形,square-方形,如设置,将不会显示取消按钮
- confirmButtonShape: {
- type: String,
- default: uni.$u.props.modal.confirmButtonShape
- },
- // 弹窗动画过度时间
- duration:{
- type:String | Number,
- default: uni.$u.props.modal.duration
- }
- }
-}
diff --git a/uni_modules/uview-ui/components/u-modal/u-modal.vue b/uni_modules/uview-ui/components/u-modal/u-modal.vue
deleted file mode 100644
index 72e1ed2..0000000
--- a/uni_modules/uview-ui/components/u-modal/u-modal.vue
+++ /dev/null
@@ -1,228 +0,0 @@
-<template>
- <u-popup
- mode="center"
- :zoom="zoom"
- :show="show"
- :customStyle="{
- borderRadius: '6px',
- overflow: 'hidden',
- marginTop: `-${$u.addUnit(negativeTop)}`
- }"
- :closeOnClickOverlay="closeOnClickOverlay"
- :safeAreaInsetBottom="false"
- :duration="duration"
- @click="clickHandler"
- >
- <view
- class="u-modal"
- :style="{
- width: $u.addUnit(width),
- }"
- >
- <text
- class="u-modal__title"
- v-if="title"
- >{{ title }}</text>
- <view
- class="u-modal__content"
- :style="{
- paddingTop: `${title ? 12 : 25}px`
- }"
- >
- <slot>
- <text class="u-modal__content__text">{{ content }}</text>
- </slot>
- </view>
- <view
- class="u-modal__button-group--confirm-button"
- v-if="$slots.confirmButton"
- >
- <slot name="confirmButton"></slot>
- </view>
- <template v-else>
- <u-line></u-line>
- <view
- class="u-modal__button-group"
- :style="{
- flexDirection: buttonReverse ? 'row-reverse' : 'row'
- }"
- >
- <view
- class="u-modal__button-group__wrapper u-modal__button-group__wrapper--cancel"
- :hover-stay-time="150"
- hover-class="u-modal__button-group__wrapper--hover"
- :class="[showCancelButton && !showConfirmButton && 'u-modal__button-group__wrapper--only-cancel']"
- v-if="showCancelButton"
- @tap="cancelHandler"
- >
- <text
- class="u-modal__button-group__wrapper__text"
- :style="{
- color: cancelColor
- }"
- >{{ cancelText }}</text>
- </view>
- <u-line
- direction="column"
- v-if="showConfirmButton && showCancelButton"
- ></u-line>
- <view
- class="u-modal__button-group__wrapper u-modal__button-group__wrapper--confirm"
- :hover-stay-time="150"
- hover-class="u-modal__button-group__wrapper--hover"
- :class="[!showCancelButton && showConfirmButton && 'u-modal__button-group__wrapper--only-confirm']"
- v-if="showConfirmButton"
- @tap="confirmHandler"
- >
- <u-loading-icon v-if="loading"></u-loading-icon>
- <text
- v-else
- class="u-modal__button-group__wrapper__text"
- :style="{
- color: confirmColor
- }"
- >{{ confirmText }}</text>
- </view>
- </view>
- </template>
- </view>
- </u-popup>
-</template>
-
-<script>
- import props from './props.js';
- /**
- * Modal 模态框
- * @description 弹出模态框,常用于消息提示、消息确认、在当前页面内完成特定的交互操作。
- * @tutorial https://www.uviewui.com/components/modul.html
- * @property {Boolean} show 是否显示模态框,请赋值给show (默认 false )
- * @property {String} title 标题内容
- * @property {String} content 模态框内容,如传入slot内容,则此参数无效
- * @property {String} confirmText 确认按钮的文字 (默认 '确认' )
- * @property {String} cancelText 取消按钮的文字 (默认 '取消' )
- * @property {Boolean} showConfirmButton 是否显示确认按钮 (默认 true )
- * @property {Boolean} showCancelButton 是否显示取消按钮 (默认 false )
- * @property {String} confirmColor 确认按钮的颜色 (默认 '#2979ff' )
- * @property {String} cancelColor 取消按钮的颜色 (默认 '#606266' )
- * @property {Number} duration 弹窗动画过度时间 (默认 400 )
- * @property {Boolean} buttonReverse 对调确认和取消的位置 (默认 false )
- * @property {Boolean} zoom 是否开启缩放模式 (默认 true )
- * @property {Boolean} asyncClose 是否异步关闭,只对确定按钮有效,见上方说明 (默认 false )
- * @property {Boolean} closeOnClickOverlay 是否允许点击遮罩关闭Modal (默认 false )
- * @property {String | Number} negativeTop 往上偏移的值,给一个负的margin-top,往上偏移,避免和键盘重合的情况,单位任意,数值则默认为px单位 (默认 0 )
- * @property {String | Number} width modal宽度,不支持百分比,可以数值,px,rpx单位 (默认 '650rpx' )
- * @property {String} confirmButtonShape 确认按钮的样式,如设置,将不会显示取消按钮
- * @event {Function} confirm 点击确认按钮时触发
- * @event {Function} cancel 点击取消按钮时触发
- * @event {Function} close 点击遮罩关闭出发,closeOnClickOverlay为true有效
- * @example <u-modal :show="true" title="title" content="content"></u-modal>
- */
- export default {
- name: 'u-modal',
- mixins: [uni.$u.mpMixin, uni.$u.mixin, props],
- data() {
- return {
- loading: false
- }
- },
- watch: {
- show(n) {
- // 为了避免第一次打开modal,又使用了异步关闭的loading
- // 第二次打开modal时,loading依然存在的情况
- if (n && this.loading) this.loading = false
- }
- },
- methods: {
- // 点击确定按钮
- confirmHandler() {
- // 如果配置了异步关闭,将按钮值为loading状态
- if (this.asyncClose) {
- this.loading = true;
- }
- this.$emit('confirm')
- },
- // 点击取消按钮
- cancelHandler() {
- this.$emit('cancel')
- },
- // 点击遮罩
- // 从原理上来说,modal的遮罩点击,并不是真的点击到了遮罩
- // 因为modal依赖于popup的中部弹窗类型,中部弹窗比较特殊,虽然有遮罩,但是为了让弹窗内容能flex居中
- // 多了一个透明的遮罩,此透明的遮罩会覆盖在灰色的遮罩上,所以实际上是点击不到灰色遮罩的,popup内部在
- // 透明遮罩的子元素做了.stop处理,所以点击内容区,也不会导致误触发
- clickHandler() {
- if (this.closeOnClickOverlay) {
- this.$emit('close')
- }
- }
- }
- }
-</script>
-
-<style lang="scss" scoped>
- @import "../../libs/css/components.scss";
- $u-modal-border-radius: 6px;
-
- .u-modal {
- width: 650rpx;
- border-radius: $u-modal-border-radius;
- overflow: hidden;
-
- &__title {
- font-size: 16px;
- font-weight: bold;
- color: $u-content-color;
- text-align: center;
- padding-top: 25px;
- }
-
- &__content {
- padding: 12px 25px 25px 25px;
- @include flex;
- justify-content: center;
-
- &__text {
- font-size: 15px;
- color: $u-content-color;
- flex: 1;
- }
- }
-
- &__button-group {
- @include flex;
-
- &--confirm-button {
- flex-direction: column;
- padding: 0px 25px 15px 25px;
- }
-
- &__wrapper {
- flex: 1;
- @include flex;
- justify-content: center;
- align-items: center;
- height: 48px;
-
- &--confirm,
- &--only-cancel {
- border-bottom-right-radius: $u-modal-border-radius;
- }
-
- &--cancel,
- &--only-confirm {
- border-bottom-left-radius: $u-modal-border-radius;
- }
-
- &--hover {
- background-color: $u-bg-color;
- }
-
- &__text {
- color: $u-content-color;
- font-size: 16px;
- text-align: center;
- }
- }
- }
- }
-</style>
diff --git a/uni_modules/uview-ui/components/u-navbar/props.js b/uni_modules/uview-ui/components/u-navbar/props.js
deleted file mode 100644
index 5398de2..0000000
--- a/uni_modules/uview-ui/components/u-navbar/props.js
+++ /dev/null
@@ -1,84 +0,0 @@
-export default {
- props: {
- // 是否开启顶部安全区适配
- safeAreaInsetTop: {
- type: Boolean,
- default: uni.$u.props.navbar.safeAreaInsetTop
- },
- // 固定在顶部时,是否生成一个等高元素,以防止塌陷
- placeholder: {
- type: Boolean,
- default: uni.$u.props.navbar.placeholder
- },
- // 是否固定在顶部
- fixed: {
- type: Boolean,
- default: uni.$u.props.navbar.fixed
- },
- // 是否显示下边框
- border: {
- type: Boolean,
- default: uni.$u.props.navbar.border
- },
- // 左边的图标
- leftIcon: {
- type: String,
- default: uni.$u.props.navbar.leftIcon
- },
- // 左边的提示文字
- leftText: {
- type: String,
- default: uni.$u.props.navbar.leftText
- },
- // 左右的提示文字
- rightText: {
- type: String,
- default: uni.$u.props.navbar.rightText
- },
- // 右边的图标
- rightIcon: {
- type: String,
- default: uni.$u.props.navbar.rightIcon
- },
- // 标题
- title: {
- type: [String, Number],
- default: uni.$u.props.navbar.title
- },
- // 背景颜色
- bgColor: {
- type: String,
- default: uni.$u.props.navbar.bgColor
- },
- // 标题的宽度
- titleWidth: {
- type: [String, Number],
- default: uni.$u.props.navbar.titleWidth
- },
- // 导航栏高度
- height: {
- type: [String, Number],
- default: uni.$u.props.navbar.height
- },
- // 左侧返回图标的大小
- leftIconSize: {
- type: [String, Number],
- default: uni.$u.props.navbar.leftIconSize
- },
- // 左侧返回图标的颜色
- leftIconColor: {
- type: String,
- default: uni.$u.props.navbar.leftIconColor
- },
- // 点击左侧区域(返回图标),是否自动返回上一页
- autoBack: {
- type: Boolean,
- default: uni.$u.props.navbar.autoBack
- },
- // 标题的样式,对象或字符串
- titleStyle: {
- type: [String, Object],
- default: uni.$u.props.navbar.titleStyle
- }
- }
-}
diff --git a/uni_modules/uview-ui/components/u-navbar/u-navbar.vue b/uni_modules/uview-ui/components/u-navbar/u-navbar.vue
deleted file mode 100644
index 2b206b7..0000000
--- a/uni_modules/uview-ui/components/u-navbar/u-navbar.vue
+++ /dev/null
@@ -1,186 +0,0 @@
-<template>
- <view class="u-navbar">
- <view
- class="u-navbar__placeholder"
- v-if="fixed && placeholder"
- :style="{
- height: $u.addUnit($u.getPx(height) + $u.sys().statusBarHeight,'px'),
- }"
- ></view>
- <view :class="[fixed && 'u-navbar--fixed']">
- <u-status-bar
- v-if="safeAreaInsetTop"
- :bgColor="bgColor"
- ></u-status-bar>
- <view
- class="u-navbar__content"
- :class="[border && 'u-border-bottom']"
- :style="{
- height: $u.addUnit(height),
- backgroundColor: bgColor,
- }"
- >
- <view
- class="u-navbar__content__left"
- hover-class="u-navbar__content__left--hover"
- hover-start-time="150"
- @tap="leftClick"
- >
- <slot name="left">
- <u-icon
- v-if="leftIcon"
- :name="leftIcon"
- :size="leftIconSize"
- :color="leftIconColor"
- ></u-icon>
- <text
- v-if="leftText"
- :style="{
- color: leftIconColor
- }"
- class="u-navbar__content__left__text"
- >{{ leftText }}</text>
- </slot>
- </view>
- <slot name="center">
- <text
- class="u-line-1 u-navbar__content__title"
- :style="[{
- width: $u.addUnit(titleWidth),
- }, $u.addStyle(titleStyle)]"
- >{{ title }}</text>
- </slot>
- <view
- class="u-navbar__content__right"
- v-if="$slots.right || rightIcon || rightText"
- @tap="rightClick"
- >
- <slot name="right">
- <u-icon
- v-if="rightIcon"
- :name="rightIcon"
- size="20"
- ></u-icon>
- <text
- v-if="rightText"
- class="u-navbar__content__right__text"
- >{{ rightText }}</text>
- </slot>
- </view>
- </view>
- </view>
- </view>
-</template>
-
-<script>
- import props from './props.js';
- /**
- * Navbar 自定义导航栏
- * @description 此组件一般用于在特殊情况下,需要自定义导航栏的时候用到,一般建议使用uni-app带的导航栏。
- * @tutorial https://www.uviewui.com/components/navbar.html
- * @property {Boolean} safeAreaInsetTop 是否开启顶部安全区适配 (默认 true )
- * @property {Boolean} placeholder 固定在顶部时,是否生成一个等高元素,以防止塌陷 (默认 false )
- * @property {Boolean} fixed 导航栏是否固定在顶部 (默认 false )
- * @property {Boolean} border 导航栏底部是否显示下边框 (默认 false )
- * @property {String} leftIcon 左边返回图标的名称,只能为uView自带的图标 (默认 'arrow-left' )
- * @property {String} leftText 左边的提示文字
- * @property {String} rightText 右边的提示文字
- * @property {String} rightIcon 右边返回图标的名称,只能为uView自带的图标
- * @property {String} title 导航栏标题,如设置为空字符,将会隐藏标题占位区域
- * @property {String} bgColor 导航栏背景设置 (默认 '#ffffff' )
- * @property {String | Number} titleWidth 导航栏标题的最大宽度,内容超出会以省略号隐藏 (默认 '400rpx' )
- * @property {String | Number} height 导航栏高度(不包括状态栏高度在内,内部自动加上)(默认 '44px' )
- * @property {String | Number} leftIconSize 左侧返回图标的大小(默认 20px )
- * @property {String | Number} leftIconColor 左侧返回图标的颜色(默认 #303133 )
- * @property {Boolean} autoBack 点击左侧区域(返回图标),是否自动返回上一页(默认 false )
- * @property {Object | String} titleStyle 标题的样式,对象或字符串
- * @event {Function} leftClick 点击左侧区域
- * @event {Function} rightClick 点击右侧区域
- * @example <u-navbar title="剑未配妥,出门已是江湖" left-text="返回" right-text="帮助" @click-left="onClickBack" @click-right="onClickRight"></u-navbar>
- */
- export default {
- name: 'u-navbar',
- mixins: [uni.$u.mpMixin, uni.$u.mixin, props],
- data() {
- return {
-
- }
- },
- methods: {
- // 点击左侧区域
- leftClick() {
- // 如果配置了autoBack,自动返回上一页
- this.$emit('leftClick')
- if(this.autoBack) {
- uni.navigateBack()
- }
- },
- // 点击右侧区域
- rightClick() {
- this.$emit('rightClick')
- },
- }
- }
-</script>
-
-<style lang="scss" scoped>
- @import "../../libs/css/components.scss";
-
- .u-navbar {
-
- &--fixed {
- position: fixed;
- left: 0;
- right: 0;
- top: 0;
- z-index: 11;
- }
-
- &__content {
- @include flex(row);
- align-items: center;
- height: 44px;
- background-color: #9acafc;
- position: relative;
- justify-content: center;
-
- &__left,
- &__right {
- padding: 0 13px;
- position: absolute;
- top: 0;
- bottom: 0;
- @include flex(row);
- align-items: center;
- }
-
- &__left {
- left: 0;
-
- &--hover {
- opacity: 0.7;
- }
-
- &__text {
- font-size: 15px;
- margin-left: 3px;
- }
- }
-
- &__title {
- text-align: center;
- font-size: 16px;
- color: $u-main-color;
- }
-
- &__right {
- right: 0;
-
- &__text {
- font-size: 15px;
- margin-left: 3px;
- }
- }
- }
- }
-</style>
diff --git a/uni_modules/uview-ui/components/u-no-network/props.js b/uni_modules/uview-ui/components/u-no-network/props.js
deleted file mode 100644
index 9f3af62..0000000
--- a/uni_modules/uview-ui/components/u-no-network/props.js
+++ /dev/null
@@ -1,19 +0,0 @@
-export default {
- props: {
- // 页面文字提示
- tips: {
- type: String,
- default: uni.$u.props.noNetwork.tips
- },
- // 一个z-index值,用于设置没有网络这个组件的层次,因为页面可能会有其他定位的元素层级过高,导致此组件被覆盖
- zIndex: {
- type: [String, Number],
- default: uni.$u.props.noNetwork.zIndex
- },
- // image 没有网络的图片提示
- image: {
- type: String,
- default: uni.$u.props.noNetwork.image
- }
- }
-}
diff --git a/uni_modules/uview-ui/components/u-no-network/u-no-network.vue b/uni_modules/uview-ui/components/u-no-network/u-no-network.vue
deleted file mode 100644
index 9710729..0000000
--- a/uni_modules/uview-ui/components/u-no-network/u-no-network.vue
+++ /dev/null
@@ -1,220 +0,0 @@
-<template>
- <u-overlay
- :show="!isConnected"
- :zIndex="zIndex"
- @touchmove.stop.prevent="noop"
- :customStyle="{
- backgroundColor: '#fff',
- display: 'flex',
- justifyContent: 'center',
- }"
- >
- <view
- class="u-no-network"
- >
- <u-icon
- :name="image"
- size="150"
- imgMode="widthFit"
- class="u-no-network__error-icon"
- ></u-icon>
- <text class="u-no-network__tips">{{tips}}</text>
- <!-- 只有APP平台,才能跳转设置页,因为需要调用plus环境 -->
- <!-- #ifdef APP-PLUS -->
- <view class="u-no-network__app">
- <text class="u-no-network__app__setting">请检查网络,或前往</text>
- <text
- class="u-no-network__app__to-setting"
- @tap="openSettings"
- >设置</text>
- </view>
- <!-- #endif -->
- <view class="u-no-network__retry">
- <u-button
- size="mini"
- text="重试"
- type="primary"
- plain
- @click="retry"
- ></u-button>
- </view>
- </view>
- </u-overlay>
-</template>
-
-<script>
- import props from './props.js';
-
- /**
- * noNetwork 无网络提示
- * @description 该组件无需任何配置,引入即可,内部自动处理所有功能和事件。
- * @tutorial https://www.uviewui.com/components/noNetwork.html
- * @property {String} tips 没有网络时的提示语 (默认:'哎呀,网络信号丢失' )
- * @property {String | Number} zIndex 组件的z-index值
- * @property {String} image 无网络的图片提示,可用的src地址或base64图片
- * @event {Function} retry 用户点击页面的"重试"按钮时触发
- * @example <u-no-network></u-no-network>
- */
- export default {
- name: "u-no-network",
- mixins: [uni.$u.mpMixin, uni.$u.mixin,props],
- data() {
- return {
- isConnected: true, // 是否有网络连接
- networkType: "none", // 网络类型
- }
- },
- mounted() {
- this.isIOS = (uni.getSystemInfoSync().platform === 'ios')
- uni.onNetworkStatusChange((res) => {
- this.isConnected = res.isConnected
- this.networkType = res.networkType
- this.emitEvent(this.networkType)
- })
- uni.getNetworkType({
- success: (res) => {
- this.networkType = res.networkType
- this.emitEvent(this.networkType)
- if (res.networkType == 'none') {
- this.isConnected = false
- } else {
- this.isConnected = true
- }
- }
- })
- },
- methods: {
- retry() {
- // 重新检查网络
- uni.getNetworkType({
- success: (res) => {
- this.networkType = res.networkType
- this.emitEvent(this.networkType)
- if (res.networkType == 'none') {
- uni.$u.toast('无网络连接')
- this.isConnected = false
- } else {
- uni.$u.toast('网络已连接')
- this.isConnected = true
- }
- }
- })
- this.$emit('retry')
- },
- // 发出事件给父组件
- emitEvent(networkType) {
- this.$emit(networkType === 'none' ? 'disconnected' : 'connected')
- },
- async openSettings() {
- if (this.networkType == "none") {
- this.openSystemSettings()
- return
- }
- },
- openAppSettings() {
- this.gotoAppSetting()
- },
- openSystemSettings() {
- // 以下方法来自5+范畴,如需深究,请自行查阅相关文档
- // https://ask.dcloud.net.cn/docs/
- if (this.isIOS) {
- this.gotoiOSSetting()
- } else {
- this.gotoAndroidSetting()
- }
- },
- network() {
- var result = null
- var cellularData = plus.ios.newObject("CTCellularData")
- var state = cellularData.plusGetAttribute("restrictedState")
- if (state == 0) {
- result = null
- } else if (state == 2) {
- result = 1
- } else if (state == 1) {
- result = 2
- }
- plus.ios.deleteObject(cellularData)
- return result
- },
- gotoAppSetting() {
- if (this.isIOS) {
- var UIApplication = plus.ios.import("UIApplication")
- var application2 = UIApplication.sharedApplication()
- var NSURL2 = plus.ios.import("NSURL")
- var setting2 = NSURL2.URLWithString("app-settings:")
- application2.openURL(setting2)
- plus.ios.deleteObject(setting2)
- plus.ios.deleteObject(NSURL2)
- plus.ios.deleteObject(application2)
- } else {
- var Intent = plus.android.importClass("android.content.Intent")
- var Settings = plus.android.importClass("android.provider.Settings")
- var Uri = plus.android.importClass("android.net.Uri")
- var mainActivity = plus.android.runtimeMainActivity()
- var intent = new Intent()
- intent.setAction(Settings.ACTION_APPLICATION_DETAILS_SETTINGS)
- var uri = Uri.fromParts("package", mainActivity.getPackageName(), null)
- intent.setData(uri)
- mainActivity.startActivity(intent)
- }
- },
- gotoiOSSetting() {
- var UIApplication = plus.ios.import("UIApplication")
- var application2 = UIApplication.sharedApplication()
- var NSURL2 = plus.ios.import("NSURL")
- var setting2 = NSURL2.URLWithString("App-prefs:root=General")
- application2.openURL(setting2)
- plus.ios.deleteObject(setting2)
- plus.ios.deleteObject(NSURL2)
- plus.ios.deleteObject(application2)
- },
- gotoAndroidSetting() {
- var Intent = plus.android.importClass("android.content.Intent")
- var Settings = plus.android.importClass("android.provider.Settings")
- var mainActivity = plus.android.runtimeMainActivity()
- var intent = new Intent(Settings.ACTION_SETTINGS)
- mainActivity.startActivity(intent)
- }
- }
- }
-</script>
-
-<style lang="scss" scoped>
- @import "../../libs/css/components.scss";
-
- .u-no-network {
- @include flex(column);
- justify-content: center;
- align-items: center;
- margin-top: -100px;
-
- &__tips {
- color: $u-tips-color;
- font-size: 14px;
- margin-top: 15px;
- }
-
- &__app {
- @include flex(row);
- margin-top: 6px;
-
- &__setting {
- color: $u-light-color;
- font-size: 13px;
- }
-
- &__to-setting {
- font-size: 13px;
- color: $u-primary;
- margin-left: 3px;
- }
- }
-
- &__retry {
- @include flex(row);
- justify-content: center;
- margin-top: 15px;
- }
- }
-</style>
diff --git a/uni_modules/uview-ui/components/u-notice-bar/props.js b/uni_modules/uview-ui/components/u-notice-bar/props.js
deleted file mode 100644
index 7040c29..0000000
--- a/uni_modules/uview-ui/components/u-notice-bar/props.js
+++ /dev/null
@@ -1,70 +0,0 @@
-export default {
- props: {
- // 显示的内容,数组
- text: {
- type: [Array, String],
- default: uni.$u.props.noticeBar.text
- },
- // 通告滚动模式,row-横向滚动,column-竖向滚动
- direction: {
- type: String,
- default: uni.$u.props.noticeBar.direction
- },
- // direction = row时,是否使用步进形式滚动
- step: {
- type: Boolean,
- default: uni.$u.props.noticeBar.step
- },
- // 是否显示左侧的音量图标
- icon: {
- type: String,
- default: uni.$u.props.noticeBar.icon
- },
- // 通告模式,link-显示右箭头,closable-显示右侧关闭图标
- mode: {
- type: String,
- default: uni.$u.props.noticeBar.mode
- },
- // 文字颜色,各图标也会使用文字颜色
- color: {
- type: String,
- default: uni.$u.props.noticeBar.color
- },
- // 背景颜色
- bgColor: {
- type: String,
- default: uni.$u.props.noticeBar.bgColor
- },
- // 水平滚动时的滚动速度,即每秒滚动多少px(px),这有利于控制文字无论多少时,都能有一个恒定的速度
- speed: {
- type: [String, Number],
- default: uni.$u.props.noticeBar.speed
- },
- // 字体大小
- fontSize: {
- type: [String, Number],
- default: uni.$u.props.noticeBar.fontSize
- },
- // 滚动一个周期的时间长,单位ms
- duration: {
- type: [String, Number],
- default: uni.$u.props.noticeBar.duration
- },
- // 是否禁止用手滑动切换
- // 目前HX2.6.11,只支持App 2.5.5+、H5 2.5.5+、支付宝小程序、字节跳动小程序
- disableTouch: {
- type: Boolean,
- default: uni.$u.props.noticeBar.disableTouch
- },
- // 跳转的页面路径
- url: {
- type: String,
- default: uni.$u.props.noticeBar.url
- },
- // 页面跳转的类型
- linkType: {
- type: String,
- default: uni.$u.props.noticeBar.linkType
- }
- }
-}
diff --git a/uni_modules/uview-ui/components/u-notice-bar/u-notice-bar.vue b/uni_modules/uview-ui/components/u-notice-bar/u-notice-bar.vue
deleted file mode 100644
index a06eb39..0000000
--- a/uni_modules/uview-ui/components/u-notice-bar/u-notice-bar.vue
+++ /dev/null
@@ -1,101 +0,0 @@
-<template>
- <view
- class="u-notice-bar"
- v-if="show"
- :style="[{
- backgroundColor: bgColor
- }, $u.addStyle(customStyle)]"
- >
- <template v-if="direction === 'column' || (direction === 'row' && step)">
- <u-column-notice
- :color="color"
- :bgColor="bgColor"
- :text="text"
- :mode="mode"
- :step="step"
- :icon="icon"
- :disable-touch="disableTouch"
- :fontSize="fontSize"
- :duration="duration"
- @close="close"
- @click="click"
- ></u-column-notice>
- </template>
- <template v-else>
- <u-row-notice
- :color="color"
- :bgColor="bgColor"
- :text="text"
- :mode="mode"
- :fontSize="fontSize"
- :speed="speed"
- :url="url"
- :linkType="linkType"
- :icon="icon"
- @close="close"
- @click="click"
- ></u-row-notice>
- </template>
- </view>
-</template>
-<script>
- import props from './props.js';
-
- /**
- * noticeBar 滚动通知
- * @description 该组件用于滚动通告场景,有多种模式可供选择
- * @tutorial https://www.uviewui.com/components/noticeBar.html
- * @property {Array | String} text 显示的内容,数组
- * @property {String} direction 通告滚动模式,row-横向滚动,column-竖向滚动 ( 默认 'row' )
- * @property {Boolean} step direction = row时,是否使用步进形式滚动 ( 默认 false )
- * @property {String} icon 是否显示左侧的音量图标 ( 默认 'volume' )
- * @property {String} mode 通告模式,link-显示右箭头,closable-显示右侧关闭图标
- * @property {String} color 文字颜色,各图标也会使用文字颜色 ( 默认 '#f9ae3d' )
- * @property {String} bgColor 背景颜色 ( 默认 '#fdf6ec' )
- * @property {String | Number} speed 水平滚动时的滚动速度,即每秒滚动多少px(px),这有利于控制文字无论多少时,都能有一个恒定的速度 ( 默认 80 )
- * @property {String | Number} fontSize 字体大小 ( 默认 14 )
- * @property {String | Number} duration 滚动一个周期的时间长,单位ms ( 默认 2000 )
- * @property {Boolean} disableTouch 是否禁止用手滑动切换 目前HX2.6.11,只支持App 2.5.5+、H5 2.5.5+、支付宝小程序、字节跳动小程序(默认34) ( 默认 true )
- * @property {String} url 跳转的页面路径
- * @property {String} linkType 页面跳转的类型 ( 默认 navigateTo )
- * @property {Object} customStyle 定义需要用到的外部样式
- *
- * @event {Function} click 点击通告文字触发
- * @event {Function} close 点击右侧关闭图标触发
- * @example <u-notice-bar :more-icon="true" :list="list"></u-notice-bar>
- */
- export default {
- name: "u-notice-bar",
- mixins: [uni.$u.mpMixin, uni.$u.mixin,props],
- data() {
- return {
- show: true
- }
- },
- methods: {
- // 点击通告栏
- click(index) {
- this.$emit('click', index)
- if (this.url && this.linkType) {
- // 此方法写在mixin中,另外跳转的url和linkType参数也在mixin的props中
- this.openPage()
- }
- },
- // 点击关闭按钮
- close() {
- this.show = false
- this.$emit('close')
- }
- }
- };
-</script>
-
-<style lang="scss" scoped>
- @import "../../libs/css/components.scss";
-
- .u-notice-bar {
- overflow: hidden;
- padding: 9px 12px;
- flex: 1;
- }
-</style>
diff --git a/uni_modules/uview-ui/components/u-notify/props.js b/uni_modules/uview-ui/components/u-notify/props.js
deleted file mode 100644
index 57a9d71..0000000
--- a/uni_modules/uview-ui/components/u-notify/props.js
+++ /dev/null
@@ -1,49 +0,0 @@
-export default {
- props: {
- // 到顶部的距离
- top: {
- type: [String, Number],
- default: uni.$u.props.notify.top
- },
- // 是否展示组件
- // show: {
- // type: Boolean,
- // default: uni.$u.props.notify.show
- // },
- // type主题,primary,success,warning,error
- type: {
- type: String,
- default: uni.$u.props.notify.type
- },
- // 字体颜色
- color: {
- type: String,
- default: uni.$u.props.notify.color
- },
- // 背景颜色
- bgColor: {
- type: String,
- default: uni.$u.props.notify.bgColor
- },
- // 展示的文字内容
- message: {
- type: String,
- default: uni.$u.props.notify.message
- },
- // 展示时长,为0时不消失,单位ms
- duration: {
- type: [String, Number],
- default: uni.$u.props.notify.duration
- },
- // 字体大小
- fontSize: {
- type: [String, Number],
- default: uni.$u.props.notify.fontSize
- },
- // 是否留出顶部安全距离(状态栏高度)
- safeAreaInsetTop: {
- type: Boolean,
- default: uni.$u.props.notify.safeAreaInsetTop
- }
- }
-}
diff --git a/uni_modules/uview-ui/components/u-notify/u-notify.vue b/uni_modules/uview-ui/components/u-notify/u-notify.vue
deleted file mode 100644
index 30adb72..0000000
--- a/uni_modules/uview-ui/components/u-notify/u-notify.vue
+++ /dev/null
@@ -1,211 +0,0 @@
-<template>
- <u-transition
- mode="slide-down"
- :customStyle="containerStyle"
- :show="open"
- >
- <view
- class="u-notify"
- :class="[`u-notify--${tmpConfig.type}`]"
- :style="[backgroundColor, $u.addStyle(customStyle)]"
- >
- <u-status-bar v-if="tmpConfig.safeAreaInsetTop"></u-status-bar>
- <view class="u-notify__warpper">
- <slot name="icon">
- <u-icon
- v-if="['success', 'warning', 'error'].includes(tmpConfig.type)"
- :name="tmpConfig.icon"
- :color="tmpConfig.color"
- :size="1.3 * tmpConfig.fontSize"
- :customStyle="{marginRight: '4px'}"
- ></u-icon>
- </slot>
- <text
- class="u-notify__warpper__text"
- :style="{
- fontSize: $u.addUnit(tmpConfig.fontSize),
- color: tmpConfig.color
- }"
- >{{ tmpConfig.message }}</text>
- </view>
- </view>
- </u-transition>
-</template>
-
-<script>
- import props from './props.js';
- /**
- * notify 顶部提示
- * @description 该组件一般用于页面顶部向下滑出一个提示,尔后自动收起的场景
- * @tutorial
- * @property {String | Number} top 到顶部的距离 ( 默认 0 )
- * @property {String} type 主题,primary,success,warning,error ( 默认 'primary' )
- * @property {String} color 字体颜色 ( 默认 '#ffffff' )
- * @property {String} bgColor 背景颜色
- * @property {String} message 展示的文字内容
- * @property {String | Number} duration 展示时长,为0时不消失,单位ms ( 默认 3000 )
- * @property {String | Number} fontSize 字体大小 ( 默认 15 )
- * @property {Boolean} safeAreaInsetTop 是否留出顶部安全距离(状态栏高度) ( 默认 false )
- * @property {Object} customStyle 组件的样式,对象形式
- * @event {Function} open 开启组件时调用的函数
- * @event {Function} close 关闭组件式调用的函数
- * @example <u-notify message="Hi uView"></u-notify>
- */
- export default {
- name: 'u-notify',
- mixins: [uni.$u.mpMixin, uni.$u.mixin,props],
- data() {
- return {
- // 是否展示组件
- open: false,
- timer: null,
- config: {
- // 到顶部的距离
- top: uni.$u.props.notify.top,
- // type主题,primary,success,warning,error
- type: uni.$u.props.notify.type,
- // 字体颜色
- color: uni.$u.props.notify.color,
- // 背景颜色
- bgColor: uni.$u.props.notify.bgColor,
- // 展示的文字内容
- message: uni.$u.props.notify.message,
- // 展示时长,为0时不消失,单位ms
- duration: uni.$u.props.notify.duration,
- // 字体大小
- fontSize: uni.$u.props.notify.fontSize,
- // 是否留出顶部安全距离(状态栏高度)
- safeAreaInsetTop: uni.$u.props.notify.safeAreaInsetTop
- },
- // 合并后的配置,避免多次调用组件后,可能会复用之前使用的配置参数
- tmpConfig: {}
- }
- },
- computed: {
- containerStyle() {
- let top = 0
- if (this.tmpConfig.top === 0) {
- // #ifdef H5
- // H5端,导航栏为普通元素,需要将组件移动到导航栏的下边沿
- // H5的导航栏高度为44px
- top = 44
- // #endif
- }
- const style = {
- top: uni.$u.addUnit(this.tmpConfig.top === 0 ? top : this.tmpConfig.top),
- // 因为组件底层为u-transition组件,必须将其设置为fixed定位
- // 让其出现在导航栏底部
- position: 'fixed',
- left: 0,
- right: 0,
- zIndex: 10076
- }
- return style
- },
- // 组件背景颜色
- backgroundColor() {
- const style = {}
- if (this.tmpConfig.bgColor) {
- style.backgroundColor = this.tmpConfig.bgColor
- }
- return style
- },
- // 默认主题下的图标
- icon() {
- let icon
- if (this.tmpConfig.type === 'success') {
- icon = 'checkmark-circle'
- } else if (this.tmpConfig.type === 'error') {
- icon = 'close-circle'
- } else if (this.tmpConfig.type === 'warning') {
- icon = 'error-circle'
- }
- return icon
- }
- },
- created() {
- // 通过主题的形式调用toast,批量生成方法函数
- ['primary', 'success', 'error', 'warning'].map(item => {
- this[item] = message => this.show({
- type: item,
- message
- })
- })
- },
- methods: {
- show(options) {
- // 不将结果合并到this.config变量,避免多次调用u-toast,前后的配置造成混乱
- this.tmpConfig = uni.$u.deepMerge(this.config, options)
- // 任何定时器初始化之前,都要执行清除操作,否则可能会造成混乱
- this.clearTimer()
- this.open = true
- if (this.tmpConfig.duration > 0) {
- this.timer = setTimeout(() => {
- this.open = false
- // 倒计时结束,清除定时器,隐藏toast组件
- this.clearTimer()
- // 判断是否存在callback方法,如果存在就执行
- typeof(this.tmpConfig.complete) === 'function' && this.tmpConfig.complete()
- }, this.tmpConfig.duration)
- }
- },
- // 关闭notify
- close() {
- this.clearTimer()
- },
- clearTimer() {
- this.open = false
- // 清除定时器
- clearTimeout(this.timer)
- this.timer = null
- }
- },
- beforeDestroy() {
- this.clearTimer()
- }
- }
-</script>
-
-<style lang="scss" scoped>
- @import "../../libs/css/components.scss";
-
- $u-notify-padding: 8px 10px !default;
- $u-notify-text-font-size: 15px !default;
- $u-notify-primary-bgColor: $u-primary !default;
- $u-notify-success-bgColor: $u-success !default;
- $u-notify-error-bgColor: $u-error !default;
- $u-notify-warning-bgColor: $u-warning !default;
-
-
- .u-notify {
- padding: $u-notify-padding;
-
- &__warpper {
- @include flex;
- align-items: center;
- text-align: center;
- justify-content: center;
-
- &__text {
- font-size: $u-notify-text-font-size;
- text-align: center;
- }
- }
-
- &--primary {
- background-color: $u-notify-primary-bgColor;
- }
-
- &--success {
- background-color: $u-notify-success-bgColor;
- }
-
- &--error {
- background-color: $u-notify-error-bgColor;
- }
-
- &--warning {
- background-color: $u-notify-warning-bgColor;
- }
- }
-</style>
diff --git a/uni_modules/uview-ui/components/u-number-box/props.js b/uni_modules/uview-ui/components/u-number-box/props.js
deleted file mode 100644
index fb0fa94..0000000
--- a/uni_modules/uview-ui/components/u-number-box/props.js
+++ /dev/null
@@ -1,109 +0,0 @@
-export default {
- props: {
- // 步进器标识符,在change回调返回
- name: {
- type: [String, Number],
- default: uni.$u.props.numberBox.name
- },
- // 用于双向绑定的值,初始化时设置设为默认min值(最小值)
- value: {
- type: [String, Number],
- default: uni.$u.props.numberBox.value
- },
- // 最小值
- min: {
- type: [String, Number],
- default: uni.$u.props.numberBox.min
- },
- // 最大值
- max: {
- type: [String, Number],
- default: uni.$u.props.numberBox.max
- },
- // 加减的步长,可为小数
- step: {
- type: [String, Number],
- default: uni.$u.props.numberBox.step
- },
- // 是否只允许输入整数
- integer: {
- type: Boolean,
- default: uni.$u.props.numberBox.integer
- },
- // 是否禁用,包括输入框,加减按钮
- disabled: {
- type: Boolean,
- default: uni.$u.props.numberBox.disabled
- },
- // 是否禁用输入框
- disabledInput: {
- type: Boolean,
- default: uni.$u.props.numberBox.disabledInput
- },
- // 是否开启异步变更,开启后需要手动控制输入值
- asyncChange: {
- type: Boolean,
- default: uni.$u.props.numberBox.asyncChange
- },
- // 输入框宽度,单位为px
- inputWidth: {
- type: [String, Number],
- default: uni.$u.props.numberBox.inputWidth
- },
- // 是否显示减少按钮
- showMinus: {
- type: Boolean,
- default: uni.$u.props.numberBox.showMinus
- },
- // 是否显示增加按钮
- showPlus: {
- type: Boolean,
- default: uni.$u.props.numberBox.showPlus
- },
- // 显示的小数位数
- decimalLength: {
- type: [String, Number, null],
- default: uni.$u.props.numberBox.decimalLength
- },
- // 是否开启长按加减手势
- longPress: {
- type: Boolean,
- default: uni.$u.props.numberBox.longPress
- },
- // 输入框文字和加减按钮图标的颜色
- color: {
- type: String,
- default: uni.$u.props.numberBox.color
- },
- // 按钮大小,宽高等于此值,单位px,输入框高度和此值保持一致
- buttonSize: {
- type: [String, Number],
- default: uni.$u.props.numberBox.buttonSize
- },
- // 输入框和按钮的背景颜色
- bgColor: {
- type: String,
- default: uni.$u.props.numberBox.bgColor
- },
- // 指定光标于键盘的距离,避免键盘遮挡输入框,单位px
- cursorSpacing: {
- type: [String, Number],
- default: uni.$u.props.numberBox.cursorSpacing
- },
- // 是否禁用增加按钮
- disablePlus: {
- type: Boolean,
- default: uni.$u.props.numberBox.disablePlus
- },
- // 是否禁用减少按钮
- disableMinus: {
- type: Boolean,
- default: uni.$u.props.numberBox.disableMinus
- },
- // 加减按钮图标的样式
- iconStyle: {
- type: [Object, String],
- default: uni.$u.props.numberBox.iconStyle
- }
- }
-}
diff --git a/uni_modules/uview-ui/components/u-number-box/u-number-box.vue b/uni_modules/uview-ui/components/u-number-box/u-number-box.vue
deleted file mode 100644
index 69211c5..0000000
--- a/uni_modules/uview-ui/components/u-number-box/u-number-box.vue
+++ /dev/null
@@ -1,416 +0,0 @@
-<template>
- <view class="u-number-box">
- <view
- class="u-number-box__slot"
- @tap.stop="clickHandler('minus')"
- @touchstart="onTouchStart('minus')"
- @touchend.stop="clearTimeout"
- v-if="showMinus && $slots.minus"
- >
- <slot name="minus" />
- </view>
- <view
- v-else-if="showMinus"
- class="u-number-box__minus"
- @tap.stop="clickHandler('minus')"
- @touchstart="onTouchStart('minus')"
- @touchend.stop="clearTimeout"
- hover-class="u-number-box__minus--hover"
- hover-stay-time="150"
- :class="{ 'u-number-box__minus--disabled': isDisabled('minus') }"
- :style="[buttonStyle('minus')]"
- >
- <u-icon
- name="minus"
- :color="isDisabled('minus') ? '#c8c9cc' : '#323233'"
- size="15"
- bold
- :customStyle="iconStyle"
- ></u-icon>
- </view>
-
- <slot name="input">
- <input
- :disabled="disabledInput || disabled"
- :cursor-spacing="getCursorSpacing"
- :class="{ 'u-number-box__input--disabled': disabled || disabledInput }"
- v-model="currentValue"
- class="u-number-box__input"
- @blur="onBlur"
- @focus="onFocus"
- @input="onInput"
- type="number"
- :style="[inputStyle]"
- />
- </slot>
- <view
- class="u-number-box__slot"
- @tap.stop="clickHandler('plus')"
- @touchstart="onTouchStart('plus')"
- @touchend.stop="clearTimeout"
- v-if="showPlus && $slots.plus"
- >
- <slot name="plus" />
- </view>
- <view
- v-else-if="showPlus"
- class="u-number-box__plus"
- @tap.stop="clickHandler('plus')"
- @touchstart="onTouchStart('plus')"
- @touchend.stop="clearTimeout"
- hover-class="u-number-box__plus--hover"
- hover-stay-time="150"
- :class="{ 'u-number-box__minus--disabled': isDisabled('plus') }"
- :style="[buttonStyle('plus')]"
- >
- <u-icon
- name="plus"
- :color="isDisabled('plus') ? '#c8c9cc' : '#323233'"
- size="15"
- bold
- :customStyle="iconStyle"
- ></u-icon>
- </view>
- </view>
-</template>
-
-<script>
- import props from './props.js';
- /**
- * numberBox 步进器
- * @description 该组件一般用于商城购物选择物品数量的场景。
- * @tutorial https://uviewui.com/components/numberBox.html
- * @property {String | Number} name 步进器标识符,在change回调返回
- * @property {String | Number} value 用于双向绑定的值,初始化时设置设为默认min值(最小值) (默认 0 )
- * @property {String | Number} min 最小值 (默认 1 )
- * @property {String | Number} max 最大值 (默认 Number.MAX_SAFE_INTEGER )
- * @property {String | Number} step 加减的步长,可为小数 (默认 1 )
- * @property {Boolean} integer 是否只允许输入整数 (默认 false )
- * @property {Boolean} disabled 是否禁用,包括输入框,加减按钮 (默认 false )
- * @property {Boolean} disabledInput 是否禁用输入框 (默认 false )
- * @property {Boolean} asyncChange 是否开启异步变更,开启后需要手动控制输入值 (默认 false )
- * @property {String | Number} inputWidth 输入框宽度,单位为px (默认 35 )
- * @property {Boolean} showMinus 是否显示减少按钮 (默认 true )
- * @property {Boolean} showPlus 是否显示增加按钮 (默认 true )
- * @property {String | Number} decimalLength 显示的小数位数
- * @property {Boolean} longPress 是否开启长按加减手势 (默认 true )
- * @property {String} color 输入框文字和加减按钮图标的颜色 (默认 '#323233' )
- * @property {String | Number} buttonSize 按钮大小,宽高等于此值,单位px,输入框高度和此值保持一致 (默认 30 )
- * @property {String} bgColor 输入框和按钮的背景颜色 (默认 '#EBECEE' )
- * @property {String | Number} cursorSpacing 指定光标于键盘的距离,避免键盘遮挡输入框,单位px (默认 100 )
- * @property {Boolean} disablePlus 是否禁用增加按钮 (默认 false )
- * @property {Boolean} disableMinus 是否禁用减少按钮 (默认 false )
- * @property {Object | String} iconStyle 加减按钮图标的样式
- *
- * @event {Function} onFocus 输入框活动焦点
- * @event {Function} onBlur 输入框失去焦点
- * @event {Function} onInput 输入框值发生变化
- * @event {Function} onChange
- * @example <u-number-box v-model="value" @change="valChange"></u-number-box>
- */
- export default {
- name: 'u-number-box',
- mixins: [uni.$u.mpMixin, uni.$u.mixin, props],
- data() {
- return {
- // 输入框实际操作的值
- currentValue: '',
- // 定时器
- longPressTimer: null
- }
- },
- watch: {
- // 多个值之间,只要一个值发生变化,都要重新检查check()函数
- watchChange(n) {
- this.check()
- },
- // 监听v-mode的变化,重新初始化内部的值
- value(n) {
- if (n !== this.currentValue) {
- this.currentValue = this.format(this.value)
- }
- }
- },
- computed: {
- getCursorSpacing() {
- // 判断传入的单位,如果为px单位,需要转成px
- return uni.$u.getPx(this.cursorSpacing)
- },
- // 按钮的样式
- buttonStyle() {
- return (type) => {
- const style = {
- backgroundColor: this.bgColor,
- height: uni.$u.addUnit(this.buttonSize),
- color: this.color
- }
- if (this.isDisabled(type)) {
- style.backgroundColor = '#f7f8fa'
- }
- return style
- }
- },
- // 输入框的样式
- inputStyle() {
- const disabled = this.disabled || this.disabledInput
- const style = {
- color: this.color,
- backgroundColor: this.bgColor,
- height: uni.$u.addUnit(this.buttonSize),
- width: uni.$u.addUnit(this.inputWidth)
- }
- return style
- },
- // 用于监听多个值发生变化
- watchChange() {
- return [this.integer, this.decimalLength, this.min, this.max]
- },
- isDisabled() {
- return (type) => {
- if (type === 'plus') {
- // 在点击增加按钮情况下,判断整体的disabled,是否单独禁用增加按钮,以及当前值是否大于最大的允许值
- return (
- this.disabled ||
- this.disablePlus ||
- this.currentValue >= this.max
- )
- }
- // 点击减少按钮同理
- return (
- this.disabled ||
- this.disableMinus ||
- this.currentValue <= this.min
- )
- }
- },
- },
- mounted() {
- this.init()
- },
- methods: {
- init() {
- this.currentValue = this.format(this.value)
- },
- // 格式化整理数据,限制范围
- format(value) {
- value = this.filter(value)
- // 如果为空字符串,那么设置为0,同时将值转为Number类型
- value = value === '' ? 0 : +value
- // 对比最大最小值,取在min和max之间的值
- value = Math.max(Math.min(this.max, value), this.min)
- // 如果设定了最大的小数位数,使用toFixed去进行格式化
- if (this.decimalLength !== null) {
- value = value.toFixed(this.decimalLength)
- }
- return value
- },
- // 过滤非法的字符
- filter(value) {
- // 只允许0-9之间的数字,"."为小数点,"-"为负数时候使用
- value = String(value).replace(/[^0-9.-]/g, '')
- // 如果只允许输入整数,则过滤掉小数点后的部分
- if (this.integer && value.indexOf('.') !== -1) {
- value = value.split('.')[0]
- }
- return value;
- },
- check() {
- // 格式化了之后,如果前后的值不相等,那么设置为格式化后的值
- const val = this.format(this.currentValue);
- if (val !== this.currentValue) {
- this.currentValue = val
- }
- },
- // 判断是否出于禁止操作状态
- // isDisabled(type) {
- // if (type === 'plus') {
- // // 在点击增加按钮情况下,判断整体的disabled,是否单独禁用增加按钮,以及当前值是否大于最大的允许值
- // return (
- // this.disabled ||
- // this.disablePlus ||
- // this.currentValue >= this.max
- // )
- // }
- // // 点击减少按钮同理
- // return (
- // this.disabled ||
- // this.disableMinus ||
- // this.currentValue <= this.min
- // )
- // },
- // 输入框活动焦点
- onFocus(event) {
- this.$emit('focus', {
- ...event.detail,
- name: this.name,
- })
- },
- // 输入框失去焦点
- onBlur(event) {
- // 对输入值进行格式化
- const value = this.format(event.detail.value)
- // 发出blur事件
- this.$emit(
- 'blur',{
- ...event.detail,
- name: this.name,
- }
- )
- },
- // 输入框值发生变化
- onInput(e) {
- const {
- value = ''
- } = e.detail || {}
- // 为空返回
- if (value === '') return
- let formatted = this.filter(value)
- // 最大允许的小数长度
- if (this.decimalLength !== null && formatted.indexOf('.') !== -1) {
- const pair = formatted.split('.');
- formatted = `${pair[0]}.${pair[1].slice(0, this.decimalLength)}`
- }
- formatted = this.format(formatted)
- this.emitChange(formatted);
- },
- // 发出change事件
- emitChange(value) {
- // 如果开启了异步变更值,则不修改内部的值,需要用户手动在外部通过v-model变更
- if (!this.asyncChange) {
- this.$nextTick(() => {
- this.$emit('input', value)
- this.currentValue = value
- this.$forceUpdate()
- })
- }
- this.$emit('change', {
- value,
- name: this.name,
- });
- },
- onChange() {
- const {
- type
- } = this
- if (this.isDisabled(type)) {
- return this.$emit('overlimit', type)
- }
- const diff = type === 'minus' ? -this.step : +this.step
- const value = this.format(this.add(+this.currentValue, diff))
- this.emitChange(value)
- this.$emit(type)
- },
- // 对值扩大后进行四舍五入,再除以扩大因子,避免出现浮点数操作的精度问题
- add(num1, num2) {
- const cardinal = Math.pow(10, 10);
- return Math.round((num1 + num2) * cardinal) / cardinal
- },
- // 点击加减按钮
- clickHandler(type) {
- this.type = type
- this.onChange()
- },
- longPressStep() {
- // 每隔一段时间,重新调用longPressStep方法,实现长按加减
- this.clearTimeout()
- this.longPressTimer = setTimeout(() => {
- this.onChange()
- this.longPressStep()
- }, 250);
- },
- onTouchStart(type) {
- if (!this.longPress) return
- this.clearTimeout()
- this.type = type
- // 一定时间后,默认达到长按状态
- this.longPressTimer = setTimeout(() => {
- this.onChange()
- this.longPressStep()
- }, 600)
- },
- // 触摸结束,清除定时器,停止长按加减
- onTouchEnd() {
- if (!this.longPress) return
- this.clearTimeout()
- },
- // 清除定时器
- clearTimeout() {
- clearTimeout(this.longPressTimer)
- this.longPressTimer = null
- }
- }
- }
-</script>
-
-<style lang="scss" scoped>
- @import '../../libs/css/components.scss';
-
- $u-numberBox-hover-bgColor: #E6E6E6 !default;
- $u-numberBox-disabled-color: #c8c9cc !default;
- $u-numberBox-disabled-bgColor: #f7f8fa !default;
- $u-numberBox-plus-radius: 4px !default;
- $u-numberBox-minus-radius: 4px !default;
- $u-numberBox-input-text-align: center !default;
- $u-numberBox-input-font-size: 15px !default;
- $u-numberBox-input-padding: 0 !default;
- $u-numberBox-input-margin: 0 2px !default;
- $u-numberBox-input-disabled-color: #c8c9cc !default;
- $u-numberBox-input-disabled-bgColor: #f2f3f5 !default;
-
- .u-number-box {
- @include flex(row);
- align-items: center;
-
- &__slot {
- /* #ifndef APP-NVUE */
- touch-action: none;
- /* #endif */
- }
-
- &__plus,
- &__minus {
- width: 35px;
- @include flex;
- justify-content: center;
- align-items: center;
- /* #ifndef APP-NVUE */
- touch-action: none;
- /* #endif */
-
- &--hover {
- background-color: $u-numberBox-hover-bgColor !important;
- }
-
- &--disabled {
- color: $u-numberBox-disabled-color;
- background-color: $u-numberBox-disabled-bgColor;
- }
- }
-
- &__plus {
- border-top-right-radius: $u-numberBox-plus-radius;
- border-bottom-right-radius: $u-numberBox-plus-radius;
- }
-
- &__minus {
- border-top-left-radius: $u-numberBox-minus-radius;
- border-bottom-left-radius: $u-numberBox-minus-radius;
- }
-
- &__input {
- position: relative;
- text-align: $u-numberBox-input-text-align;
- font-size: $u-numberBox-input-font-size;
- padding: $u-numberBox-input-padding;
- margin: $u-numberBox-input-margin;
- @include flex;
- align-items: center;
- justify-content: center;
-
- &--disabled {
- color: $u-numberBox-input-disabled-color;
- background-color: $u-numberBox-input-disabled-bgColor;
- }
- }
- }
-</style>
diff --git a/uni_modules/uview-ui/components/u-number-keyboard/props.js b/uni_modules/uview-ui/components/u-number-keyboard/props.js
deleted file mode 100644
index 5e3bf55..0000000
--- a/uni_modules/uview-ui/components/u-number-keyboard/props.js
+++ /dev/null
@@ -1,19 +0,0 @@
-export default {
- props: {
- // 键盘的类型,number-数字键盘,card-身份证键盘
- mode: {
- type: String,
- default: uni.$u.props.numberKeyboard.value
- },
- // 是否显示键盘的"."符号
- dotDisabled: {
- type: Boolean,
- default: uni.$u.props.numberKeyboard.dotDisabled
- },
- // 是否打乱键盘按键的顺序
- random: {
- type: Boolean,
- default: uni.$u.props.numberKeyboard.random
- }
- }
-}
diff --git a/uni_modules/uview-ui/components/u-number-keyboard/u-number-keyboard.vue b/uni_modules/uview-ui/components/u-number-keyboard/u-number-keyboard.vue
deleted file mode 100644
index 4f505c6..0000000
--- a/uni_modules/uview-ui/components/u-number-keyboard/u-number-keyboard.vue
+++ /dev/null
@@ -1,196 +0,0 @@
-<template>
- <view
- class="u-keyboard"
- @touchmove.stop.prevent="noop"
- >
- <view
- class="u-keyboard__button-wrapper"
- v-for="(item, index) in numList"
- :key="index"
- >
- <view
- class="u-keyboard__button-wrapper__button"
- :style="[itemStyle(index)]"
- @tap="keyboardClick(item)"
- hover-class="u-hover-class"
- :hover-stay-time="200"
- >
- <text class="u-keyboard__button-wrapper__button__text">{{ item }}</text>
- </view>
- </view>
- <view
- class="u-keyboard__button-wrapper"
- >
- <view
- class="u-keyboard__button-wrapper__button u-keyboard__button-wrapper__button--gray"
- hover-class="u-hover-class"
- :hover-stay-time="200"
- @touchstart.stop="backspaceClick"
- @touchend="clearTimer"
- >
- <u-icon
- name="backspace"
- color="#303133"
- size="28"
- ></u-icon>
- </view>
- </view>
- </view>
-</template>
-
-<script>
- import props from './props.js';
-
- /**
- * keyboard 键盘组件
- * @description
- * @tutorial
- * @property {String} mode 键盘的类型,number-数字键盘,card-身份证键盘
- * @property {Boolean} dotDisabled 是否显示键盘的"."符号
- * @property {Boolean} random 是否打乱键盘按键的顺序
- * @event {Function} change 点击键盘触发
- * @event {Function} backspace 点击退格键触发
- * @example
- */
- export default {
- mixins: [uni.$u.mpMixin, uni.$u.mixin, props],
- data() {
- return {
- backspace: 'backspace', // 退格键内容
- dot: '.', // 点
- timer: null, // 长按多次删除的事件监听
- cardX: 'X' // 身份证的X符号
- };
- },
- computed: {
- // 键盘需要显示的内容
- numList() {
- let tmp = [];
- if (this.dotDisabled && this.mode == 'number') {
- if (!this.random) {
- return [1, 2, 3, 4, 5, 6, 7, 8, 9, 0];
- } else {
- return uni.$u.randomArray([1, 2, 3, 4, 5, 6, 7, 8, 9, 0]);
- }
- } else if (!this.dotDisabled && this.mode == 'number') {
- if (!this.random) {
- return [1, 2, 3, 4, 5, 6, 7, 8, 9, this.dot, 0];
- } else {
- return uni.$u.randomArray([1, 2, 3, 4, 5, 6, 7, 8, 9, this.dot, 0]);
- }
- } else if (this.mode == 'card') {
- if (!this.random) {
- return [1, 2, 3, 4, 5, 6, 7, 8, 9, this.cardX, 0];
- } else {
- return uni.$u.randomArray([1, 2, 3, 4, 5, 6, 7, 8, 9, this.cardX, 0]);
- }
- }
- },
- // 按键的样式,在非乱序&&数字键盘&&不显示点按钮时,index为9时,按键占位两个空间
- itemStyle() {
- return index => {
- let style = {};
- if (this.mode == 'number' && this.dotDisabled && index == 9) style.width = '464rpx';
- return style;
- };
- },
- // 是否让按键显示灰色,只在非乱序&&数字键盘&&且允许点按键的时候
- btnBgGray() {
- return index => {
- if (!this.random && index == 9 && (this.mode != 'number' || (this.mode == 'number' && !this
- .dotDisabled))) return true;
- else return false;
- };
- },
- },
- created() {
-
- },
- methods: {
- // 点击退格键
- backspaceClick() {
- this.$emit('backspace');
- clearInterval(this.timer); //再次清空定时器,防止重复注册定时器
- this.timer = null;
- this.timer = setInterval(() => {
- this.$emit('backspace');
- }, 250);
- },
- clearTimer() {
- clearInterval(this.timer);
- this.timer = null;
- },
- // 获取键盘显示的内容
- keyboardClick(val) {
- // 允许键盘显示点模式和触发非点按键时,将内容转为数字类型
- if (!this.dotDisabled && val != this.dot && val != this.cardX) val = Number(val);
- this.$emit('change', val);
- }
- }
- };
-</script>
-
-<style lang="scss" scoped>
- @import "../../libs/css/components.scss";
- $u-number-keyboard-background-color:rgb(224, 228, 230) !default;
- $u-number-keyboard-padding:8px 10rpx 8px 10rpx !default;
- $u-number-keyboard-button-width:222rpx !default;
- $u-number-keyboard-button-margin:4px 6rpx !default;
- $u-number-keyboard-button-border-top-left-radius:4px !default;
- $u-number-keyboard-button-border-top-right-radius:4px !default;
- $u-number-keyboard-button-border-bottom-left-radius:4px !default;
- $u-number-keyboard-button-border-bottom-right-radius:4px !default;
- $u-number-keyboard-button-height: 90rpx!default;
- $u-number-keyboard-button-background-color:#FFFFFF !default;
- $u-number-keyboard-button-box-shadow:0 2px 0px #BBBCBE !default;
- $u-number-keyboard-text-font-size:20px !default;
- $u-number-keyboard-text-font-weight:500 !default;
- $u-number-keyboard-text-color:$u-main-color !default;
- $u-number-keyboard-gray-background-color:rgb(200, 202, 210) !default;
- $u-number-keyboard-u-hover-class-background-color: #BBBCC6 !default;
-
- .u-keyboard {
- @include flex;
- flex-direction: row;
- justify-content: space-around;
- background-color: $u-number-keyboard-background-color;
- flex-wrap: wrap;
- padding: $u-number-keyboard-padding;
-
- &__button-wrapper {
- box-shadow: $u-number-keyboard-button-box-shadow;
- margin: $u-number-keyboard-button-margin;
- border-top-left-radius: $u-number-keyboard-button-border-top-left-radius;
- border-top-right-radius: $u-number-keyboard-button-border-top-right-radius;
- border-bottom-left-radius: $u-number-keyboard-button-border-bottom-left-radius;
- border-bottom-right-radius: $u-number-keyboard-button-border-bottom-right-radius;
-
- &__button {
- width: $u-number-keyboard-button-width;
- height: $u-number-keyboard-button-height;
- background-color: $u-number-keyboard-button-background-color;
- @include flex;
- justify-content: center;
- align-items: center;
- border-top-left-radius: $u-number-keyboard-button-border-top-left-radius;
- border-top-right-radius: $u-number-keyboard-button-border-top-right-radius;
- border-bottom-left-radius: $u-number-keyboard-button-border-bottom-left-radius;
- border-bottom-right-radius: $u-number-keyboard-button-border-bottom-right-radius;
-
- &__text {
- font-size: $u-number-keyboard-text-font-size;
- font-weight: $u-number-keyboard-text-font-weight;
- color: $u-number-keyboard-text-color;
- }
-
- &--gray {
- background-color: $u-number-keyboard-gray-background-color;
- }
- }
- }
- }
-
- .u-hover-class {
- background-color: $u-number-keyboard-u-hover-class-background-color;
- }
-</style>
diff --git a/uni_modules/uview-ui/components/u-overlay/props.js b/uni_modules/uview-ui/components/u-overlay/props.js
deleted file mode 100644
index e6974df..0000000
--- a/uni_modules/uview-ui/components/u-overlay/props.js
+++ /dev/null
@@ -1,24 +0,0 @@
-export default {
- props: {
- // 是否显示遮罩
- show: {
- type: Boolean,
- default: uni.$u.props.overlay.show
- },
- // 层级z-index
- zIndex: {
- type: [String, Number],
- default: uni.$u.props.overlay.zIndex
- },
- // 遮罩的过渡时间,单位为ms
- duration: {
- type: [String, Number],
- default: uni.$u.props.overlay.duration
- },
- // 不透明度值,当做rgba的第四个参数
- opacity: {
- type: [String, Number],
- default: uni.$u.props.overlay.opacity
- }
- }
-}
diff --git a/uni_modules/uview-ui/components/u-overlay/u-overlay.vue b/uni_modules/uview-ui/components/u-overlay/u-overlay.vue
deleted file mode 100644
index 92de4e9..0000000
--- a/uni_modules/uview-ui/components/u-overlay/u-overlay.vue
+++ /dev/null
@@ -1,68 +0,0 @@
-<template>
- <u-transition
- :show="show"
- custom-class="u-overlay"
- :duration="duration"
- :custom-style="overlayStyle"
- @click="clickHandler"
- >
- <slot />
- </u-transition>
-</template>
-
-<script>
- import props from './props.js';
-
- /**
- * overlay 遮罩
- * @description 创建一个遮罩层,用于强调特定的页面元素,并阻止用户对遮罩下层的内容进行操作,一般用于弹窗场景
- * @tutorial https://www.uviewui.com/components/overlay.html
- * @property {Boolean} show 是否显示遮罩(默认 false )
- * @property {String | Number} zIndex zIndex 层级(默认 10070 )
- * @property {String | Number} duration 动画时长,单位毫秒(默认 300 )
- * @property {String | Number} opacity 不透明度值,当做rgba的第四个参数 (默认 0.5 )
- * @property {Object} customStyle 定义需要用到的外部样式
- * @event {Function} click 点击遮罩发送事件
- * @example <u-overlay :show="show" @click="show = false"></u-overlay>
- */
- export default {
- name: "u-overlay",
- mixins: [uni.$u.mpMixin, uni.$u.mixin,props],
- computed: {
- overlayStyle() {
- const style = {
- position: 'fixed',
- top: 0,
- left: 0,
- right: 0,
- zIndex: this.zIndex,
- bottom: 0,
- 'background-color': `rgba(0, 0, 0, ${this.opacity})`
- }
- return uni.$u.deepMerge(style, uni.$u.addStyle(this.customStyle))
- }
- },
- methods: {
- clickHandler() {
- this.$emit('click')
- }
- }
- }
-</script>
-
-<style lang="scss" scoped>
- @import "../../libs/css/components.scss";
- $u-overlay-top:0 !default;
- $u-overlay-left:0 !default;
- $u-overlay-width:100% !default;
- $u-overlay-height:100% !default;
- $u-overlay-background-color:rgba(0, 0, 0, .7) !default;
- .u-overlay {
- position: fixed;
- top:$u-overlay-top;
- left:$u-overlay-left;
- width: $u-overlay-width;
- height:$u-overlay-height;
- background-color:$u-overlay-background-color;
- }
-</style>
diff --git a/uni_modules/uview-ui/components/u-parse/node/node.vue b/uni_modules/uview-ui/components/u-parse/node/node.vue
deleted file mode 100644
index 73e30fd..0000000
--- a/uni_modules/uview-ui/components/u-parse/node/node.vue
+++ /dev/null
@@ -1,499 +0,0 @@
-<template>
- <view :id="attrs.id" :class="'_'+name+' '+attrs.class" :style="attrs.style">
- <block v-for="(n, i) in childs" v-bind:key="i">
- <!-- 图片 -->
- <!-- 占位图 -->
- <image v-if="n.name=='img'&&((opts[1]&&!ctrl[i])||ctrl[i]<0)" class="_img" :style="n.attrs.style" :src="ctrl[i]<0?opts[2]:opts[1]" mode="widthFix" />
- <!-- 显示图片 -->
- <!-- #ifdef H5 || APP-PLUS -->
- <img v-if="n.name=='img'" :id="n.attrs.id" :class="'_img '+n.attrs.class" :style="(ctrl[i]==-1?'display:none;':'')+n.attrs.style" :src="n.attrs.src||(ctrl.load?n.attrs['data-src']:'')" :data-i="i" @load="imgLoad" @error="mediaError" @tap.stop="imgTap" @longpress="imgLongTap"/>
- <!-- #endif -->
- <!-- #ifndef H5 || APP-PLUS -->
- <image v-if="n.name=='img'" :id="n.attrs.id" :class="'_img '+n.attrs.class" :style="(ctrl[i]==-1?'display:none;':'')+'width:'+(ctrl[i]||1)+'px;height:1px;'+n.attrs.style" :src="n.attrs.src" :mode="n.h?'':'widthFix'" :lazy-load="opts[0]" :webp="n.webp" :show-menu-by-longpress="opts[3]&&!n.attrs.ignore" :image-menu-prevent="!opts[3]||n.attrs.ignore" :data-i="i" @load="imgLoad" @error="mediaError" @tap.stop="imgTap" @longpress="imgLongTap" />
- <!-- #endif -->
- <!-- 文本 -->
- <!-- #ifndef MP-BAIDU -->
- <text v-else-if="n.type=='text'" decode>{{n.text}}</text>
- <!-- #endif -->
- <text v-else-if="n.name=='br'">\n</text>
- <!-- 链接 -->
- <view v-else-if="n.name=='a'" :id="n.attrs.id" :class="(n.attrs.href?'_a ':'')+n.attrs.class" hover-class="_hover" :style="'display:inline;'+n.attrs.style" :data-i="i" @tap.stop="linkTap">
- <node name="span" :childs="n.children" :opts="opts" style="display:inherit" />
- </view>
- <!-- 视频 -->
- <!-- #ifdef APP-PLUS -->
- <view v-else-if="n.html" :id="n.attrs.id" :class="'_video '+n.attrs.class" :style="n.attrs.style" v-html="n.html" />
- <!-- #endif -->
- <!-- #ifndef APP-PLUS -->
- <video v-else-if="n.name=='video'" :id="n.attrs.id" :class="n.attrs.class" :style="n.attrs.style" :autoplay="n.attrs.autoplay" :controls="n.attrs.controls" :loop="n.attrs.loop" :muted="n.attrs.muted" :poster="n.attrs.poster" :src="n.src[ctrl[i]||0]" :data-i="i" @play="play" @error="mediaError" />
- <!-- #endif -->
- <!-- #ifdef H5 || APP-PLUS -->
- <iframe v-else-if="n.name=='iframe'" :style="n.attrs.style" :allowfullscreen="n.attrs.allowfullscreen" :frameborder="n.attrs.frameborder" :src="n.attrs.src" />
- <embed v-else-if="n.name=='embed'" :style="n.attrs.style" :src="n.attrs.src" />
- <!-- #endif -->
- <!-- #ifndef MP-TOUTIAO -->
- <!-- 音频 -->
- <audio v-else-if="n.name=='audio'" :id="n.attrs.id" :class="n.attrs.class" :style="n.attrs.style" :author="n.attrs.author" :controls="n.attrs.controls" :loop="n.attrs.loop" :name="n.attrs.name" :poster="n.attrs.poster" :src="n.src[ctrl[i]||0]" :data-i="i" @play="play" @error="mediaError" />
- <!-- #endif -->
- <view v-else-if="(n.name=='table'&&n.c)||n.name=='li'" :id="n.attrs.id" :class="'_'+n.name+' '+n.attrs.class" :style="n.attrs.style">
- <node v-if="n.name=='li'" :childs="n.children" :opts="opts" />
- <view v-else v-for="(tbody, x) in n.children" v-bind:key="x" :class="'_'+tbody.name+' '+tbody.attrs.class" :style="tbody.attrs.style">
- <node v-if="tbody.name=='td'||tbody.name=='th'" :childs="tbody.children" :opts="opts" />
- <block v-else v-for="(tr, y) in tbody.children" v-bind:key="y">
- <view v-if="tr.name=='td'||tr.name=='th'" :class="'_'+tr.name+' '+tr.attrs.class" :style="tr.attrs.style">
- <node :childs="tr.children" :opts="opts" />
- </view>
- <view v-else :class="'_'+tr.name+' '+tr.attrs.class" :style="tr.attrs.style">
- <view v-for="(td, z) in tr.children" v-bind:key="z" :class="'_'+td.name+' '+td.attrs.class" :style="td.attrs.style">
- <node :childs="td.children" :opts="opts" />
- </view>
- </view>
- </block>
- </view>
- </view>
-
- <!-- 富文本 -->
- <!-- #ifdef H5 || MP-WEIXIN || MP-QQ || APP-PLUS || MP-360 -->
- <rich-text v-else-if="handler.use(n)" :id="n.attrs.id" :style="n.f" :nodes="[n]" />
- <!-- #endif -->
- <!-- #ifndef H5 || MP-WEIXIN || MP-QQ || APP-PLUS || MP-360 -->
- <rich-text v-else-if="!n.c" :id="n.attrs.id" :style="n.f+';display:inline'" :preview="false" :nodes="[n]" />
- <!-- #endif -->
- <!-- 继续递归 -->
- <view v-else-if="n.c==2" :id="n.attrs.id" :class="'_'+n.name+' '+n.attrs.class" :style="n.f+';'+n.attrs.style">
- <node v-for="(n2, j) in n.children" v-bind:key="j" :style="n2.f" :name="n2.name" :attrs="n2.attrs" :childs="n2.children" :opts="opts" />
- </view>
- <node v-else :style="n.f" :name="n.name" :attrs="n.attrs" :childs="n.children" :opts="opts" />
- </block>
- </view>
-</template>
-<script module="handler" lang="wxs">
-// 行内标签列表
-var inlineTags = {
- abbr: true,
- b: true,
- big: true,
- code: true,
- del: true,
- em: true,
- i: true,
- ins: true,
- label: true,
- q: true,
- small: true,
- span: true,
- strong: true,
- sub: true,
- sup: true
-}
-/**
- * @description 是否使用 rich-text 显示剩余内容
- */
-module.exports = {
- use: function (item) {
- // 微信和 QQ 的 rich-text inline 布局无效
- if (inlineTags[item.name] || (item.attrs.style || '').indexOf('display:inline') != -1)
- return false
- return !item.c
- }
-}
-</script>
-<script>
-
-import node from './node'
-export default {
- name: 'node',
- // #ifdef MP-WEIXIN
- options: {
- virtualHost: true
- },
- // #endif
- data() {
- return {
- ctrl: {}
- }
- },
- props: {
- name: String,
- attrs: {
- type: Object,
- default() {
- return {}
- }
- },
- childs: Array,
- opts: Array
- },
- components: {
-
- node
- },
- mounted() {
- for (this.root = this.$parent; this.root.$options.name != 'mp-html'; this.root = this.root.$parent);
- // #ifdef H5 || APP-PLUS
- if (this.opts[0]) {
- for (var i = this.childs.length; i--;)
- if (this.childs[i].name == 'img')
- break
- if (i != -1) {
- this.observer = uni.createIntersectionObserver(this).relativeToViewport({
- top: 500,
- bottom: 500
- })
- this.observer.observe('._img', res => {
- if (res.intersectionRatio) {
- this.$set(this.ctrl, 'load', 1)
- this.observer.disconnect()
- }
- })
- }
- }
- // #endif
- },
- beforeDestroy() {
- // #ifdef H5 || APP-PLUS
- if (this.observer)
- this.observer.disconnect()
- // #endif
- },
- methods:{
- // #ifdef MP-WEIXIN
- toJSON() { },
- // #endif
- /**
- * @description 播放视频事件
- * @param {Event} e
- */
- play(e) {
- // #ifndef APP-PLUS
- if (this.root.pauseVideo) {
- var flag = false, id = e.target.id
- for (var i = this.root._videos.length; i--;) {
- if (this.root._videos[i].id == id)
- flag = true
- else
- this.root._videos[i].pause() // 自动暂停其他视频
- }
- // 将自己加入列表
- if (!flag) {
- var ctx = uni.createVideoContext(id
- // #ifndef MP-BAIDU
- , this
- // #endif
- )
- ctx.id = id
- this.root._videos.push(ctx)
- }
- }
- // #endif
- },
-
- /**
- * @description 图片点击事件
- * @param {Event} e
- */
- imgTap(e) {
- var node = this.childs[e.currentTarget.dataset.i]
- if (node.a)
- return this.linkTap(node.a)
- if (node.attrs.ignore)
- return
- // #ifdef H5 || APP-PLUS
- node.attrs.src = node.attrs.src || node.attrs['data-src']
- // #endif
- this.root.$emit('imgTap', node.attrs)
- // 自动预览图片
- if (this.root.previewImg)
- uni.previewImage({
- current: parseInt(node.attrs.i),
- urls: this.root.imgList
- })
- },
-
- /**
- * @description 图片长按
- */
- imgLongTap(e) {
- // #ifdef APP-PLUS
- var attrs = this.childs[e.currentTarget.dataset.i].attrs
- if (!attrs.ignore)
- uni.showActionSheet({
- itemList: ['保存图片'],
- success: () => {
- uni.downloadFile({
- url: this.root.imgList[attrs.i],
- success: res => {
- uni.saveImageToPhotosAlbum({
- filePath: res.tempFilePath,
- success() {
- uni.showToast({
- title: '保存成功'
- })
- }
- })
- }
- })
- }
- })
- // #endif
- },
-
- /**
- * @description 图片加载完成事件
- * @param {Event} e
- */
- imgLoad(e) {
- var i = e.currentTarget.dataset.i
- // #ifndef H5 || APP-PLUS
- // 设置原宽度
- if (!this.childs[i].w)
- this.$set(this.ctrl, i, e.detail.width)
- else
- // #endif
- // 加载完毕,取消加载中占位图
- if ((this.opts[1] && !this.ctrl[i]) || this.ctrl[i] == -1)
- this.$set(this.ctrl, i, 1)
- },
-
- /**
- * @description 链接点击事件
- * @param {Event} e
- */
- linkTap(e) {
- var attrs = e.currentTarget ? this.childs[e.currentTarget.dataset.i].attrs : e,
- href = attrs.href
- this.root.$emit('linkTap', attrs)
- if (href) {
- // 跳转锚点
- if (href[0] == '#')
- this.root.navigateTo(href.substring(1)).catch(() => { })
- // 复制外部链接
- else if (href.includes('://')) {
- if (this.root.copyLink) {
- // #ifdef H5
- window.open(href)
- // #endif
- // #ifdef MP
- uni.setClipboardData({
- data: href,
- success: () =>
- uni.showToast({
- title: '链接已复制'
- })
- })
- // #endif
- // #ifdef APP-PLUS
- plus.runtime.openWeb(href)
- // #endif
- }
- }
- // 跳转页面
- else
- uni.navigateTo({
- url: href,
- fail() {
- uni.switchTab({
- url: href,
- fail() { }
- })
- }
- })
- }
- },
-
- /**
- * @description 错误事件
- * @param {Event} e
- */
- mediaError(e) {
- var i = e.currentTarget.dataset.i,
- node = this.childs[i]
- // 加载其他源
- if (node.name == 'video' || node.name == 'audio') {
- var index = (this.ctrl[i] || 0) + 1
- if (index > node.src.length)
- index = 0
- if (index < node.src.length)
- return this.$set(this.ctrl, i, index)
- }
- // 显示错误占位图
- else if (node.name == 'img' && this.opts[2])
- this.$set(this.ctrl, i, -1)
- if (this.root)
- this.root.$emit('error', {
- source: node.name,
- attrs: node.attrs,
- errMsg: e.detail.errMsg
- })
- }
- }
-}
-</script>
-<style>
-/* a 标签默认效果 */
-._a {
- padding: 1.5px 0 1.5px 0;
- color: #366092;
- word-break: break-all;
-}
-
-/* a 标签点击态效果 */
-._hover {
- text-decoration: underline;
- opacity: 0.7;
-}
-
-/* 图片默认效果 */
-._img {
- max-width: 100%;
- -webkit-touch-callout: none;
-}
-
-/* 内部样式 */
-
-._b,
-._strong {
- font-weight: bold;
-}
-
-._code {
- font-family: monospace;
-}
-
-._del {
- text-decoration: line-through;
-}
-
-._em,
-._i {
- font-style: italic;
-}
-
-._h1 {
- font-size: 2em;
-}
-
-._h2 {
- font-size: 1.5em;
-}
-
-._h3 {
- font-size: 1.17em;
-}
-
-._h5 {
- font-size: 0.83em;
-}
-
-._h6 {
- font-size: 0.67em;
-}
-
-._h1,
-._h2,
-._h3,
-._h4,
-._h5,
-._h6 {
- display: block;
- font-weight: bold;
-}
-
-._image {
- height: 1px;
-}
-
-._ins {
- text-decoration: underline;
-}
-
-._li {
- display: list-item;
-}
-
-._ol {
- list-style-type: decimal;
-}
-
-._ol,
-._ul {
- display: block;
- padding-left: 40px;
- margin: 1em 0;
-}
-
-._q::before {
- content: '"';
-}
-
-._q::after {
- content: '"';
-}
-
-._sub {
- font-size: smaller;
- vertical-align: sub;
-}
-
-._sup {
- font-size: smaller;
- vertical-align: super;
-}
-
-._thead,
-._tbody,
-._tfoot {
- display: table-row-group;
-}
-
-._tr {
- display: table-row;
-}
-
-._td,
-._th {
- display: table-cell;
- vertical-align: middle;
-}
-
-._th {
- font-weight: bold;
- text-align: center;
-}
-
-._ul {
- list-style-type: disc;
-}
-
-._ul ._ul {
- margin: 0;
- list-style-type: circle;
-}
-
-._ul ._ul ._ul {
- list-style-type: square;
-}
-
-._abbr,
-._b,
-._code,
-._del,
-._em,
-._i,
-._ins,
-._label,
-._q,
-._span,
-._strong,
-._sub,
-._sup {
- display: inline;
-}
-
-/* #ifdef APP-PLUS */
-._video {
- width: 300px;
- height: 225px;
-}
-/* #endif */
-</style>
diff --git a/uni_modules/uview-ui/components/u-parse/parser.js b/uni_modules/uview-ui/components/u-parse/parser.js
deleted file mode 100644
index a78a654..0000000
--- a/uni_modules/uview-ui/components/u-parse/parser.js
+++ /dev/null
@@ -1,1075 +0,0 @@
-'use strict'
-
-/**
- * @fileoverview html 解析器
- */
-// 配置
-const config = {
- // 信任的标签(保持标签名不变)
- trustTags: makeMap('a,abbr,ad,audio,b,blockquote,br,code,col,colgroup,dd,del,dl,dt,div,em,fieldset,h1,h2,h3,h4,h5,h6,hr,i,img,ins,label,legend,li,ol,p,q,ruby,rt,source,span,strong,sub,sup,table,tbody,td,tfoot,th,thead,tr,title,ul,video'),
- // 块级标签(转为 div,其他的非信任标签转为 span)
- blockTags: makeMap('address,article,aside,body,caption,center,cite,footer,header,html,nav,pre,section'),
- // 要移除的标签
- ignoreTags: makeMap('area,base,canvas,embed,frame,head,iframe,input,link,map,meta,param,rp,script,source,style,textarea,title,track,wbr'),
- // 自闭合的标签
- voidTags: makeMap('area,base,br,col,circle,ellipse,embed,frame,hr,img,input,line,link,meta,param,path,polygon,rect,source,track,use,wbr'),
- // html 实体
- entities: {
- lt: '<',
- gt: '>',
- quot: '"',
- apos: "'",
- ensp: '\u2002',
- emsp: '\u2003',
- nbsp: '\xA0',
- semi: ';',
- ndash: '–',
- mdash: '—',
- middot: '·',
- lsquo: '‘',
- rsquo: '’',
- ldquo: '“',
- rdquo: '”',
- bull: '•',
- hellip: '…'
- },
- // 默认的标签样式
- tagStyle: {
- // #ifndef APP-PLUS-NVUE
- address: 'font-style:italic',
- big: 'display:inline;font-size:1.2em',
- caption: 'display:table-caption;text-align:center',
- center: 'text-align:center',
- cite: 'font-style:italic',
- dd: 'margin-left:40px',
- mark: 'background-color:yellow',
- pre: 'font-family:monospace;white-space:pre',
- s: 'text-decoration:line-through',
- small: 'display:inline;font-size:0.8em',
- u: 'text-decoration:underline' // #endif
-
- }
-}
-const { windowWidth } = uni.getSystemInfoSync()
-const blankChar = makeMap(' ,\r,\n,\t,\f')
-let idIndex = 0 // #ifdef H5 || APP-PLUS
-
-config.ignoreTags.iframe = void 0
-config.trustTags.iframe = true
-config.ignoreTags.embed = void 0
-config.trustTags.embed = true // #endif
-// #ifdef APP-PLUS-NVUE
-
-config.ignoreTags.source = void 0
-config.ignoreTags.style = void 0 // #endif
-
-/**
- * @description 创建 map
- * @param {String} str 逗号分隔
- */
-
-function makeMap(str) {
- const map = Object.create(null)
- const list = str.split(',')
-
- for (let i = list.length; i--;) {
- map[list[i]] = true
- }
-
- return map
-}
-/**
- * @description 解码 html 实体
- * @param {String} str 要解码的字符串
- * @param {Boolean} amp 要不要解码 &
- * @returns {String} 解码后的字符串
- */
-
-function decodeEntity(str, amp) {
- let i = str.indexOf('&')
-
- while (i != -1) {
- const j = str.indexOf(';', i + 3)
- let code = void 0
- if (j == -1) break
-
- if (str[i + 1] == '#') {
- // { 形式的实体
- code = parseInt((str[i + 2] == 'x' ? '0' : '') + str.substring(i + 2, j))
- if (!isNaN(code)) str = str.substr(0, i) + String.fromCharCode(code) + str.substr(j + 1)
- } else {
- // 形式的实体
- code = str.substring(i + 1, j)
- if (config.entities[code] || code == 'amp' && amp) str = str.substr(0, i) + (config.entities[code] || '&') + str.substr(j + 1)
- }
-
- i = str.indexOf('&', i + 1)
- }
-
- return str
-}
-/**
- * @description html 解析器
- * @param {Object} vm 组件实例
- */
-
-function parser(vm) {
- this.options = vm || {}
- this.tagStyle = Object.assign(config.tagStyle, this.options.tagStyle)
- this.imgList = vm.imgList || []
- this.plugins = vm.plugins || []
- this.attrs = Object.create(null)
- this.stack = []
- this.nodes = []
-}
-/**
- * @description 执行解析
- * @param {String} content 要解析的文本
- */
-
-parser.prototype.parse = function (content) {
- // 插件处理
- for (let i = this.plugins.length; i--;) {
- if (this.plugins[i].onUpdate) content = this.plugins[i].onUpdate(content, config) || content
- }
-
- new lexer(this).parse(content) // 出栈未闭合的标签
-
- while (this.stack.length) {
- this.popNode()
- }
-
- return this.nodes
-}
-/**
- * @description 将标签暴露出来(不被 rich-text 包含)
- */
-
-parser.prototype.expose = function () {
- // #ifndef APP-PLUS-NVUE
- for (let i = this.stack.length; i--;) {
- const item = this.stack[i]
- if (item.name == 'a' || item.c) return
- item.c = 1
- } // #endif
-}
-/**
- * @description 处理插件
- * @param {Object} node 要处理的标签
- * @returns {Boolean} 是否要移除此标签
- */
-
-parser.prototype.hook = function (node) {
- for (let i = this.plugins.length; i--;) {
- if (this.plugins[i].onParse && this.plugins[i].onParse(node, this) == false) return false
- }
-
- return true
-}
-/**
- * @description 将链接拼接上主域名
- * @param {String} url 需要拼接的链接
- * @returns {String} 拼接后的链接
- */
-
-parser.prototype.getUrl = function (url) {
- const { domain } = this.options
-
- if (url[0] == '/') {
- // // 开头的补充协议名
- if (url[1] == '/') url = `${domain ? domain.split('://')[0] : 'http'}:${url}` // 否则补充整个域名
- else if (domain) url = domain + url
- } else if (domain && !url.includes('data:') && !url.includes('://')) url = `${domain}/${url}`
-
- return url
-}
-/**
- * @description 解析样式表
- * @param {Object} node 标签
- * @returns {Object}
- */
-
-parser.prototype.parseStyle = function (node) {
- const { attrs } = node
- const list = (this.tagStyle[node.name] || '').split(';').concat((attrs.style || '').split(';'))
- const styleObj = {}
- let tmp = ''
-
- if (attrs.id) {
- // 暴露锚点
- if (this.options.useAnchor) this.expose(); else if (node.name != 'img' && node.name != 'a' && node.name != 'video' && node.name != 'audio') attrs.id = void 0
- } // 转换 width 和 height 属性
-
- if (attrs.width) {
- styleObj.width = parseFloat(attrs.width) + (attrs.width.includes('%') ? '%' : 'px')
- attrs.width = void 0
- }
-
- if (attrs.height) {
- styleObj.height = parseFloat(attrs.height) + (attrs.height.includes('%') ? '%' : 'px')
- attrs.height = void 0
- }
-
- for (let i = 0, len = list.length; i < len; i++) {
- const info = list[i].split(':')
- if (info.length < 2) continue
- const key = info.shift().trim().toLowerCase()
- let value = info.join(':').trim() // 兼容性的 css 不压缩
-
- if (value[0] == '-' && value.lastIndexOf('-') > 0 || value.includes('safe')) tmp += ';'.concat(key, ':').concat(value) // 重复的样式进行覆盖
- else if (!styleObj[key] || value.includes('import') || !styleObj[key].includes('import')) {
- // 填充链接
- if (value.includes('url')) {
- let j = value.indexOf('(') + 1
-
- if (j) {
- while (value[j] == '"' || value[j] == "'" || blankChar[value[j]]) {
- j++
- }
-
- value = value.substr(0, j) + this.getUrl(value.substr(j))
- }
- } // 转换 rpx(rich-text 内部不支持 rpx)
- else if (value.includes('rpx')) {
- value = value.replace(/[0-9.]+\s*rpx/g, ($) => `${parseFloat($) * windowWidth / 750}px`)
- }
-
- styleObj[key] = value
- }
- }
-
- node.attrs.style = tmp
- return styleObj
-}
-/**
- * @description 解析到标签名
- * @param {String} name 标签名
- * @private
- */
-
-parser.prototype.onTagName = function (name) {
- this.tagName = this.xml ? name : name.toLowerCase()
- if (this.tagName == 'svg') this.xml = true // svg 标签内大小写敏感
-}
-/**
- * @description 解析到属性名
- * @param {String} name 属性名
- * @private
- */
-
-parser.prototype.onAttrName = function (name) {
- name = this.xml ? name : name.toLowerCase()
-
- if (name.substr(0, 5) == 'data-') {
- // data-src 自动转为 src
- if (name == 'data-src' && !this.attrs.src) this.attrName = 'src' // a 和 img 标签保留 data- 的属性,可以在 imgtap 和 linktap 事件中使用
- else if (this.tagName == 'img' || this.tagName == 'a') this.attrName = name // 剩余的移除以减小大小
- else this.attrName = void 0
- } else {
- this.attrName = name
- this.attrs[name] = 'T' // boolean 型属性缺省设置
- }
-}
-/**
- * @description 解析到属性值
- * @param {String} val 属性值
- * @private
- */
-
-parser.prototype.onAttrVal = function (val) {
- const name = this.attrName || '' // 部分属性进行实体解码
-
- if (name == 'style' || name == 'href') this.attrs[name] = decodeEntity(val, true) // 拼接主域名
- else if (name.includes('src')) this.attrs[name] = this.getUrl(decodeEntity(val, true)); else if (name) this.attrs[name] = val
-}
-/**
- * @description 解析到标签开始
- * @param {Boolean} selfClose 是否有自闭合标识 />
- * @private
- */
-
-parser.prototype.onOpenTag = function (selfClose) {
- // 拼装 node
- const node = Object.create(null)
- node.name = this.tagName
- node.attrs = this.attrs
- this.attrs = Object.create(null)
- const { attrs } = node
- const parent = this.stack[this.stack.length - 1]
- const siblings = parent ? parent.children : this.nodes
- const close = this.xml ? selfClose : config.voidTags[node.name] // 转换 embed 标签
-
- if (node.name == 'embed') {
- // #ifndef H5 || APP-PLUS
- const src = attrs.src || '' // 按照后缀名和 type 将 embed 转为 video 或 audio
-
- if (src.includes('.mp4') || src.includes('.3gp') || src.includes('.m3u8') || (attrs.type || '').includes('video')) node.name = 'video'; else if (src.includes('.mp3') || src.includes('.wav') || src.includes('.aac') || src.includes('.m4a') || (attrs.type || '').includes('audio')) node.name = 'audio'
- if (attrs.autostart) attrs.autoplay = 'T'
- attrs.controls = 'T' // #endif
- // #ifdef H5 || APP-PLUS
-
- this.expose() // #endif
- } // #ifndef APP-PLUS-NVUE
- // 处理音视频
-
- if (node.name == 'video' || node.name == 'audio') {
- // 设置 id 以便获取 context
- if (node.name == 'video' && !attrs.id) attrs.id = `v${idIndex++}` // 没有设置 controls 也没有设置 autoplay 的自动设置 controls
-
- if (!attrs.controls && !attrs.autoplay) attrs.controls = 'T' // 用数组存储所有可用的 source
-
- node.src = []
-
- if (attrs.src) {
- node.src.push(attrs.src)
- attrs.src = void 0
- }
-
- this.expose()
- } // #endif
- // 处理自闭合标签
-
- if (close) {
- if (!this.hook(node) || config.ignoreTags[node.name]) {
- // 通过 base 标签设置主域名
- if (node.name == 'base' && !this.options.domain) this.options.domain = attrs.href // #ifndef APP-PLUS-NVUE
- // 设置 source 标签(仅父节点为 video 或 audio 时有效)
- else if (node.name == 'source' && parent && (parent.name == 'video' || parent.name == 'audio') && attrs.src) parent.src.push(attrs.src) // #endif
-
- return
- } // 解析 style
-
- const styleObj = this.parseStyle(node) // 处理图片
-
- if (node.name == 'img') {
- if (attrs.src) {
- // 标记 webp
- if (attrs.src.includes('webp')) node.webp = 'T' // data url 图片如果没有设置 original-src 默认为不可预览的小图片
-
- if (attrs.src.includes('data:') && !attrs['original-src']) attrs.ignore = 'T'
-
- if (!attrs.ignore || node.webp || attrs.src.includes('cloud://')) {
- for (let i = this.stack.length; i--;) {
- const item = this.stack[i]
-
- if (item.name == 'a') {
- node.a = item.attrs
- break
- } // #ifndef H5 || APP-PLUS
-
- const style = item.attrs.style || ''
-
- if (style.includes('flex:') && !style.includes('flex:0') && !style.includes('flex: 0') && (!styleObj.width || !styleObj.width.includes('%'))) {
- styleObj.width = '100% !important'
- styleObj.height = ''
-
- for (let j = i + 1; j < this.stack.length; j++) {
- this.stack[j].attrs.style = (this.stack[j].attrs.style || '').replace('inline-', '')
- }
- } else if (style.includes('flex') && styleObj.width == '100%') {
- for (let _j = i + 1; _j < this.stack.length; _j++) {
- const _style = this.stack[_j].attrs.style || ''
-
- if (!_style.includes(';width') && !_style.includes(' width') && _style.indexOf('width') != 0) {
- styleObj.width = ''
- break
- }
- }
- } else if (style.includes('inline-block')) {
- if (styleObj.width && styleObj.width[styleObj.width.length - 1] == '%') {
- item.attrs.style += `;max-width:${styleObj.width}`
- styleObj.width = ''
- } else item.attrs.style += ';max-width:100%'
- } // #endif
-
- item.c = 1
- }
-
- attrs.i = this.imgList.length.toString()
-
- let _src = attrs['original-src'] || attrs.src // #ifndef H5 || MP-ALIPAY || APP-PLUS || MP-360
-
- if (this.imgList.includes(_src)) {
- // 如果有重复的链接则对域名进行随机大小写变换避免预览时错位
- let _i = _src.indexOf('://')
-
- if (_i != -1) {
- _i += 3
-
- let newSrc = _src.substr(0, _i)
-
- for (; _i < _src.length; _i++) {
- if (_src[_i] == '/') break
- newSrc += Math.random() > 0.5 ? _src[_i].toUpperCase() : _src[_i]
- }
-
- newSrc += _src.substr(_i)
- _src = newSrc
- }
- } // #endif
-
- this.imgList.push(_src) // #ifdef H5 || APP-PLUS
-
- if (this.options.lazyLoad) {
- attrs['data-src'] = attrs.src
- attrs.src = void 0
- } // #endif
- }
- }
-
- if (styleObj.display == 'inline') styleObj.display = '' // #ifndef APP-PLUS-NVUE
-
- if (attrs.ignore) {
- styleObj['max-width'] = styleObj['max-width'] || '100%'
- attrs.style += ';-webkit-touch-callout:none'
- } // #endif
- // 设置的宽度超出屏幕,为避免变形,高度转为自动
-
- if (parseInt(styleObj.width) > windowWidth) styleObj.height = void 0 // 记录是否设置了宽高
-
- if (styleObj.width) {
- if (styleObj.width.includes('auto')) styleObj.width = ''; else {
- node.w = 'T'
- if (styleObj.height && !styleObj.height.includes('auto')) node.h = 'T'
- }
- }
- } else if (node.name == 'svg') {
- siblings.push(node)
- this.stack.push(node)
- this.popNode()
- return
- }
-
- for (const key in styleObj) {
- if (styleObj[key]) attrs.style += ';'.concat(key, ':').concat(styleObj[key].replace(' !important', ''))
- }
-
- attrs.style = attrs.style.substr(1) || void 0
- } else {
- if (node.name == 'pre' || (attrs.style || '').includes('white-space') && attrs.style.includes('pre')) this.pre = node.pre = true
- node.children = []
- this.stack.push(node)
- } // 加入节点树
-
- siblings.push(node)
-}
-/**
- * @description 解析到标签结束
- * @param {String} name 标签名
- * @private
- */
-
-parser.prototype.onCloseTag = function (name) {
- // 依次出栈到匹配为止
- name = this.xml ? name : name.toLowerCase()
- let i
-
- for (i = this.stack.length; i--;) {
- if (this.stack[i].name == name) break
- }
-
- if (i != -1) {
- while (this.stack.length > i) {
- this.popNode()
- }
- } else if (name == 'p' || name == 'br') {
- const siblings = this.stack.length ? this.stack[this.stack.length - 1].children : this.nodes
- siblings.push({
- name,
- attrs: {}
- })
- }
-}
-/**
- * @description 处理标签出栈
- * @private
- */
-
-parser.prototype.popNode = function () {
- const node = this.stack.pop()
- let { attrs } = node
- const { children } = node
- const parent = this.stack[this.stack.length - 1]
- const siblings = parent ? parent.children : this.nodes
-
- if (!this.hook(node) || config.ignoreTags[node.name]) {
- // 获取标题
- if (node.name == 'title' && children.length && children[0].type == 'text' && this.options.setTitle) {
- uni.setNavigationBarTitle({
- title: children[0].text
- })
- }
- siblings.pop()
- return
- }
-
- if (node.pre) {
- // 是否合并空白符标识
- node.pre = this.pre = void 0
-
- for (let i = this.stack.length; i--;) {
- if (this.stack[i].pre) this.pre = true
- }
- }
-
- const styleObj = {} // 转换 svg
-
- if (node.name == 'svg') {
- // #ifndef APP-PLUS-NVUE
- let src = ''
- const { style } = attrs
- attrs.style = ''
- attrs.xmlns = 'http://www.w3.org/2000/svg';
-
- (function traversal(node) {
- src += `<${node.name}`
-
- for (let item in node.attrs) {
- const val = node.attrs[item]
-
- if (val) {
- if (item == 'viewbox') item = 'viewBox'
- src += ' '.concat(item, '="').concat(val, '"')
- }
- }
-
- if (!node.children) src += '/>'; else {
- src += '>'
-
- for (let _i2 = 0; _i2 < node.children.length; _i2++) {
- traversal(node.children[_i2])
- }
-
- src += `</${node.name}>`
- }
- }(node))
-
- node.name = 'img'
- node.attrs = {
- src: `data:image/svg+xml;utf8,${src.replace(/#/g, '%23')}`,
- style,
- ignore: 'T'
- }
- node.children = void 0 // #endif
-
- this.xml = false
- return
- } // #ifndef APP-PLUS-NVUE
- // 转换 align 属性
-
- if (attrs.align) {
- if (node.name == 'table') {
- if (attrs.align == 'center') styleObj['margin-inline-start'] = styleObj['margin-inline-end'] = 'auto'; else styleObj.float = attrs.align
- } else styleObj['text-align'] = attrs.align
-
- attrs.align = void 0
- } // 转换 font 标签的属性
-
- if (node.name == 'font') {
- if (attrs.color) {
- styleObj.color = attrs.color
- attrs.color = void 0
- }
-
- if (attrs.face) {
- styleObj['font-family'] = attrs.face
- attrs.face = void 0
- }
-
- if (attrs.size) {
- let size = parseInt(attrs.size)
-
- if (!isNaN(size)) {
- if (size < 1) size = 1; else if (size > 7) size = 7
- styleObj['font-size'] = ['xx-small', 'x-small', 'small', 'medium', 'large', 'x-large', 'xx-large'][size - 1]
- }
-
- attrs.size = void 0
- }
- } // #endif
- // 一些编辑器的自带 class
-
- if ((attrs.class || '').includes('align-center')) styleObj['text-align'] = 'center'
- Object.assign(styleObj, this.parseStyle(node))
-
- if (parseInt(styleObj.width) > windowWidth) {
- styleObj['max-width'] = '100%'
- styleObj['box-sizing'] = 'border-box'
- } // #ifndef APP-PLUS-NVUE
-
- if (config.blockTags[node.name]) node.name = 'div' // 未知标签转为 span,避免无法显示
- else if (!config.trustTags[node.name] && !this.xml) node.name = 'span'
- if (node.name == 'a' || node.name == 'ad' // #ifdef H5 || APP-PLUS
- || node.name == 'iframe' // #endif
- ) this.expose() // #ifdef APP-PLUS
- else if (node.name == 'video') {
- let str = '<video style="width:100%;height:100%"' // 空白图占位
-
- if (!attrs.poster && !attrs.autoplay) attrs.poster = "data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg'/>"
-
- for (const item in attrs) {
- if (attrs[item]) str += ` ${item}="${attrs[item]}"`
- }
-
- if (this.options.pauseVideo) str += ' onplay="for(var e=document.getElementsByTagName(\'video\'),t=0;t<e.length;t++)e[t]!=this&&e[t].pause()"'
- str += '>'
-
- for (let _i3 = 0; _i3 < node.src.length; _i3++) {
- str += `<source src="${node.src[_i3]}">`
- }
-
- str += '</video>'
- node.html = str
- } // #endif
- // 列表处理
- else if ((node.name == 'ul' || node.name == 'ol') && node.c) {
- const types = {
- a: 'lower-alpha',
- A: 'upper-alpha',
- i: 'lower-roman',
- I: 'upper-roman'
- }
-
- if (types[attrs.type]) {
- attrs.style += `;list-style-type:${types[attrs.type]}`
- attrs.type = void 0
- }
-
- for (let _i4 = children.length; _i4--;) {
- if (children[_i4].name == 'li') children[_i4].c = 1
- }
- } // 表格处理
- else if (node.name == 'table') {
- // cellpadding、cellspacing、border 这几个常用表格属性需要通过转换实现
- let padding = parseFloat(attrs.cellpadding)
- let spacing = parseFloat(attrs.cellspacing)
- const border = parseFloat(attrs.border)
-
- if (node.c) {
- // padding 和 spacing 默认 2
- if (isNaN(padding)) padding = 2
- if (isNaN(spacing)) spacing = 2
- }
-
- if (border) attrs.style += `;border:${border}px solid gray`
-
- if (node.flag && node.c) {
- // 有 colspan 或 rowspan 且含有链接的表格通过 grid 布局实现
- styleObj.display = 'grid'
-
- if (spacing) {
- styleObj['grid-gap'] = `${spacing}px`
- styleObj.padding = `${spacing}px`
- } // 无间隔的情况下避免边框重叠
- else if (border) attrs.style += ';border-left:0;border-top:0'
-
- const width = []
- // 表格的列宽
- const trList = []
- // tr 列表
- const cells = []
- // 保存新的单元格
- const map = {}; // 被合并单元格占用的格子
-
- (function traversal(nodes) {
- for (let _i5 = 0; _i5 < nodes.length; _i5++) {
- if (nodes[_i5].name == 'tr') trList.push(nodes[_i5]); else traversal(nodes[_i5].children || [])
- }
- }(children))
-
- for (let row = 1; row <= trList.length; row++) {
- let col = 1
-
- for (let j = 0; j < trList[row - 1].children.length; j++, col++) {
- const td = trList[row - 1].children[j]
-
- if (td.name == 'td' || td.name == 'th') {
- // 这个格子被上面的单元格占用,则列号++
- while (map[`${row}.${col}`]) {
- col++
- }
-
- let _style2 = td.attrs.style || ''
- const start = _style2.indexOf('width') ? _style2.indexOf(';width') : 0 // 提取出 td 的宽度
-
- if (start != -1) {
- let end = _style2.indexOf(';', start + 6)
-
- if (end == -1) end = _style2.length
- if (!td.attrs.colspan) width[col] = _style2.substring(start ? start + 7 : 6, end)
- _style2 = _style2.substr(0, start) + _style2.substr(end)
- }
-
- _style2 += (border ? ';border:'.concat(border, 'px solid gray') + (spacing ? '' : ';border-right:0;border-bottom:0') : '') + (padding ? ';padding:'.concat(padding, 'px') : '') // 处理列合并
-
- if (td.attrs.colspan) {
- _style2 += ';grid-column-start:'.concat(col, ';grid-column-end:').concat(col + parseInt(td.attrs.colspan))
- if (!td.attrs.rowspan) _style2 += ';grid-row-start:'.concat(row, ';grid-row-end:').concat(row + 1)
- col += parseInt(td.attrs.colspan) - 1
- } // 处理行合并
-
- if (td.attrs.rowspan) {
- _style2 += ';grid-row-start:'.concat(row, ';grid-row-end:').concat(row + parseInt(td.attrs.rowspan))
- if (!td.attrs.colspan) _style2 += ';grid-column-start:'.concat(col, ';grid-column-end:').concat(col + 1) // 记录下方单元格被占用
-
- for (let k = 1; k < td.attrs.rowspan; k++) {
- map[`${row + k}.${col}`] = 1
- }
- }
-
- if (_style2) td.attrs.style = _style2
- cells.push(td)
- }
- }
-
- if (row == 1) {
- let temp = ''
-
- for (let _i6 = 1; _i6 < col; _i6++) {
- temp += `${width[_i6] ? width[_i6] : 'auto'} `
- }
-
- styleObj['grid-template-columns'] = temp
- }
- }
-
- node.children = cells
- } else {
- // 没有使用合并单元格的表格通过 table 布局实现
- if (node.c) styleObj.display = 'table'
- if (!isNaN(spacing)) styleObj['border-spacing'] = `${spacing}px`
-
- if (border || padding) {
- // 遍历
- (function traversal(nodes) {
- for (let _i7 = 0; _i7 < nodes.length; _i7++) {
- const _td = nodes[_i7]
-
- if (_td.name == 'th' || _td.name == 'td') {
- if (border) _td.attrs.style = 'border:'.concat(border, 'px solid gray;').concat(_td.attrs.style || '')
- if (padding) _td.attrs.style = 'padding:'.concat(padding, 'px;').concat(_td.attrs.style || '')
- } else if (_td.children) traversal(_td.children)
- }
- }(children))
- }
- } // 给表格添加一个单独的横向滚动层
-
- if (this.options.scrollTable && !(attrs.style || '').includes('inline')) {
- const table = { ...node }
- node.name = 'div'
- node.attrs = {
- style: 'overflow:auto'
- }
- node.children = [table]
- attrs = table.attrs
- }
- } else if ((node.name == 'td' || node.name == 'th') && (attrs.colspan || attrs.rowspan)) {
- for (let _i8 = this.stack.length; _i8--;) {
- if (this.stack[_i8].name == 'table') {
- this.stack[_i8].flag = 1 // 指示含有合并单元格
-
- break
- }
- }
- } // 转换 ruby
- else if (node.name == 'ruby') {
- node.name = 'span'
-
- for (let _i9 = 0; _i9 < children.length - 1; _i9++) {
- if (children[_i9].type == 'text' && children[_i9 + 1].name == 'rt') {
- children[_i9] = {
- name: 'div',
- attrs: {
- style: 'display:inline-block'
- },
- children: [{
- name: 'div',
- attrs: {
- style: 'font-size:50%;text-align:start'
- },
- children: children[_i9 + 1].children
- }, children[_i9]]
- }
- children.splice(_i9 + 1, 1)
- }
- }
- } else if (node.c) {
- node.c = 2
-
- for (let _i10 = node.children.length; _i10--;) {
- if (!node.children[_i10].c || node.children[_i10].name == 'table') node.c = 1
- }
- }
- if ((styleObj.display || '').includes('flex') && !node.c) {
- for (let _i11 = children.length; _i11--;) {
- const _item = children[_i11]
-
- if (_item.f) {
- _item.attrs.style = (_item.attrs.style || '') + _item.f
- _item.f = void 0
- }
- }
- } // flex 布局时部分样式需要提取到 rich-text 外层
-
- const flex = parent && (parent.attrs.style || '').includes('flex') // #ifdef MP-WEIXIN
- // 检查基础库版本 virtualHost 是否可用
- && !(node.c && wx.getNFCAdapter) // #endif
- // #ifndef MP-WEIXIN || MP-QQ || MP-BAIDU || MP-TOUTIAO
- && !node.c // #endif
-
- if (flex) node.f = ';max-width:100%' // #endif
-
- for (const key in styleObj) {
- if (styleObj[key]) {
- const val = ';'.concat(key, ':').concat(styleObj[key].replace(' !important', '')) // #ifndef APP-PLUS-NVUE
-
- if (flex && (key.includes('flex') && key != 'flex-direction' || key == 'align-self' || styleObj[key][0] == '-' || key == 'width' && val.includes('%'))) {
- node.f += val
- if (key == 'width') attrs.style += ';width:100%'
- } else // #endif
- { attrs.style += val }
- }
- }
-
- attrs.style = attrs.style.substr(1) || void 0
-}
-/**
- * @description 解析到文本
- * @param {String} text 文本内容
- */
-
-parser.prototype.onText = function (text) {
- if (!this.pre) {
- // 合并空白符
- let trim = ''
- let flag
-
- for (let i = 0, len = text.length; i < len; i++) {
- if (!blankChar[text[i]]) trim += text[i]; else {
- if (trim[trim.length - 1] != ' ') trim += ' '
- if (text[i] == '\n' && !flag) flag = true
- }
- } // 去除含有换行符的空串
-
- if (trim == ' ' && flag) return
- text = trim
- }
-
- const node = Object.create(null)
- node.type = 'text'
- node.text = decodeEntity(text)
-
- if (this.hook(node)) {
- const siblings = this.stack.length ? this.stack[this.stack.length - 1].children : this.nodes
- siblings.push(node)
- }
-}
-/**
- * @description html 词法分析器
- * @param {Object} handler 高层处理器
- */
-
-function lexer(handler) {
- this.handler = handler
-}
-/**
- * @description 执行解析
- * @param {String} content 要解析的文本
- */
-
-lexer.prototype.parse = function (content) {
- this.content = content || ''
- this.i = 0 // 标记解析位置
-
- this.start = 0 // 标记一个单词的开始位置
-
- this.state = this.text // 当前状态
-
- for (let len = this.content.length; this.i != -1 && this.i < len;) {
- this.state()
- }
-}
-/**
- * @description 检查标签是否闭合
- * @param {String} method 如果闭合要进行的操作
- * @returns {Boolean} 是否闭合
- * @private
- */
-
-lexer.prototype.checkClose = function (method) {
- const selfClose = this.content[this.i] == '/'
-
- if (this.content[this.i] == '>' || selfClose && this.content[this.i + 1] == '>') {
- if (method) this.handler[method](this.content.substring(this.start, this.i))
- this.i += selfClose ? 2 : 1
- this.start = this.i
- this.handler.onOpenTag(selfClose)
-
- if (this.handler.tagName == 'script') {
- this.i = this.content.indexOf('</', this.i)
-
- if (this.i != -1) {
- this.i += 2
- this.start = this.i
- }
-
- this.state = this.endTag
- } else this.state = this.text
-
- return true
- }
-
- return false
-}
-/**
- * @description 文本状态
- * @private
- */
-
-lexer.prototype.text = function () {
- this.i = this.content.indexOf('<', this.i) // 查找最近的标签
-
- if (this.i == -1) {
- // 没有标签了
- if (this.start < this.content.length) this.handler.onText(this.content.substring(this.start, this.content.length))
- return
- }
-
- const c = this.content[this.i + 1]
-
- if (c >= 'a' && c <= 'z' || c >= 'A' && c <= 'Z') {
- // 标签开头
- if (this.start != this.i) this.handler.onText(this.content.substring(this.start, this.i))
- this.start = ++this.i
- this.state = this.tagName
- } else if (c == '/' || c == '!' || c == '?') {
- if (this.start != this.i) this.handler.onText(this.content.substring(this.start, this.i))
- const next = this.content[this.i + 2]
-
- if (c == '/' && (next >= 'a' && next <= 'z' || next >= 'A' && next <= 'Z')) {
- // 标签结尾
- this.i += 2
- this.start = this.i
- return this.state = this.endTag
- } // 处理注释
-
- let end = '-->'
- if (c != '!' || this.content[this.i + 2] != '-' || this.content[this.i + 3] != '-') end = '>'
- this.i = this.content.indexOf(end, this.i)
-
- if (this.i != -1) {
- this.i += end.length
- this.start = this.i
- }
- } else this.i++
-}
-/**
- * @description 标签名状态
- * @private
- */
-
-lexer.prototype.tagName = function () {
- if (blankChar[this.content[this.i]]) {
- // 解析到标签名
- this.handler.onTagName(this.content.substring(this.start, this.i))
-
- while (blankChar[this.content[++this.i]]) {
-
- }
-
- if (this.i < this.content.length && !this.checkClose()) {
- this.start = this.i
- this.state = this.attrName
- }
- } else if (!this.checkClose('onTagName')) this.i++
-}
-/**
- * @description 属性名状态
- * @private
- */
-
-lexer.prototype.attrName = function () {
- let c = this.content[this.i]
-
- if (blankChar[c] || c == '=') {
- // 解析到属性名
- this.handler.onAttrName(this.content.substring(this.start, this.i))
- let needVal = c == '='
- const len = this.content.length
-
- while (++this.i < len) {
- c = this.content[this.i]
-
- if (!blankChar[c]) {
- if (this.checkClose()) return
-
- if (needVal) {
- // 等号后遇到第一个非空字符
- this.start = this.i
- return this.state = this.attrVal
- }
-
- if (this.content[this.i] == '=') needVal = true; else {
- this.start = this.i
- return this.state = this.attrName
- }
- }
- }
- } else if (!this.checkClose('onAttrName')) this.i++
-}
-/**
- * @description 属性值状态
- * @private
- */
-
-lexer.prototype.attrVal = function () {
- const c = this.content[this.i]
- const len = this.content.length // 有冒号的属性
-
- if (c == '"' || c == "'") {
- this.start = ++this.i
- this.i = this.content.indexOf(c, this.i)
- if (this.i == -1) return
- this.handler.onAttrVal(this.content.substring(this.start, this.i))
- } // 没有冒号的属性
- else {
- for (; this.i < len; this.i++) {
- if (blankChar[this.content[this.i]]) {
- this.handler.onAttrVal(this.content.substring(this.start, this.i))
- break
- } else if (this.checkClose('onAttrVal')) return
- }
- }
-
- while (blankChar[this.content[++this.i]]) {
-
- }
-
- if (this.i < len && !this.checkClose()) {
- this.start = this.i
- this.state = this.attrName
- }
-}
-/**
- * @description 结束标签状态
- * @returns {String} 结束的标签名
- * @private
- */
-
-lexer.prototype.endTag = function () {
- const c = this.content[this.i]
-
- if (blankChar[c] || c == '>' || c == '/') {
- this.handler.onCloseTag(this.content.substring(this.start, this.i))
-
- if (c != '>') {
- this.i = this.content.indexOf('>', this.i)
- if (this.i == -1) return
- }
-
- this.start = ++this.i
- this.state = this.text
- } else this.i++
-}
-
-module.exports = parser
diff --git a/uni_modules/uview-ui/components/u-parse/props.js b/uni_modules/uview-ui/components/u-parse/props.js
deleted file mode 100644
index defd06c..0000000
--- a/uni_modules/uview-ui/components/u-parse/props.js
+++ /dev/null
@@ -1,45 +0,0 @@
-export default {
- props: {
- // #ifdef APP-PLUS-NVUE
- bgColor: String,
- // #endif
- content: String,
- copyLink: {
- type: Boolean,
- default: uni.$u.props.parse.copyLink
- },
- domain: String,
- errorImg: {
- type: String,
- default: uni.$u.props.parse.errorImg
- },
- lazyLoad: {
- type: Boolean,
- default: uni.$u.props.parse.lazyLoad
- },
- loadingImg: {
- type: String,
- default: uni.$u.props.parse.loadingImg
- },
- pauseVideo: {
- type: Boolean,
- default: uni.$u.props.parse.pauseVideo
- },
- previewImg: {
- type: Boolean,
- default: uni.$u.props.parse.previewImg
- },
- scrollTable: Boolean,
- selectable: Boolean,
- setTitle: {
- type: Boolean,
- default: uni.$u.props.parse.setTitle
- },
- showImgMenu: {
- type: Boolean,
- default: uni.$u.props.parse.showImgMenu
- },
- tagStyle: Object,
- useAnchor: null
- }
-}
diff --git a/uni_modules/uview-ui/components/u-parse/u-parse.vue b/uni_modules/uview-ui/components/u-parse/u-parse.vue
deleted file mode 100644
index 7bc8b3d..0000000
--- a/uni_modules/uview-ui/components/u-parse/u-parse.vue
+++ /dev/null
@@ -1,366 +0,0 @@
-<template>
- <view id="_root" :class="(selectable?'_select ':'')+'_root'">
- <slot v-if="!nodes[0]" />
- <!-- #ifndef APP-PLUS-NVUE -->
- <node v-else :childs="nodes" :opts="[lazyLoad,loadingImg,errorImg,showImgMenu]" />
- <!-- #endif -->
- <!-- #ifdef APP-PLUS-NVUE -->
- <web-view ref="web" src="/static/app-plus/mp-html/local.html" :style="'margin-top:-2px;height:' + height + 'px'" @onPostMessage="_onMessage" />
- <!-- #endif -->
- </view>
-</template>
-
-<script>
- import props from './props.js';
-/**
- * mp-html v2.0.4
- * @description 富文本组件
- * @tutorial https://github.com/jin-yufeng/mp-html
- * @property {String} bgColor 背景颜色,只适用与APP-PLUS-NVUE
- * @property {String} content 用于渲染的富文本字符串(默认 true )
- * @property {Boolean} copyLink 是否允许外部链接被点击时自动复制
- * @property {String} domain 主域名,用于拼接链接
- * @property {String} errorImg 图片出错时的占位图链接
- * @property {Boolean} lazyLoad 是否开启图片懒加载(默认 true )
- * @property {string} loadingImg 图片加载过程中的占位图链接
- * @property {Boolean} pauseVideo 是否在播放一个视频时自动暂停其它视频(默认 true )
- * @property {Boolean} previewImg 是否允许图片被点击时自动预览(默认 true )
- * @property {Boolean} scrollTable 是否给每个表格添加一个滚动层使其能单独横向滚动
- * @property {Boolean} selectable 是否开启长按复制
- * @property {Boolean} setTitle 是否将 title 标签的内容设置到页面标题(默认 true )
- * @property {Boolean} showImgMenu 是否允许图片被长按时显示菜单(默认 true )
- * @property {Object} tagStyle 标签的默认样式
- * @property {Boolean | Number} useAnchor 是否使用锚点链接
- *
- * @event {Function} load dom 结构加载完毕时触发
- * @event {Function} ready 所有图片加载完毕时触发
- * @event {Function} imgTap 图片被点击时触发
- * @event {Function} linkTap 链接被点击时触发
- * @event {Function} error 媒体加载出错时触发
- */
-const plugins=[]
-const parser = require('./parser')
-// #ifndef APP-PLUS-NVUE
-import node from './node/node'
-// #endif
-// #ifdef APP-PLUS-NVUE
-const dom = weex.requireModule('dom')
-// #endif
-export default {
- name: 'mp-html',
- data() {
- return {
- nodes: [],
- // #ifdef APP-PLUS-NVUE
- height: 0
- // #endif
- }
- },
- mixins:[props],
- // #ifndef APP-PLUS-NVUE
- components: {
- node
- },
- // #endif
- watch: {
- content(content) {
- this.setContent(content)
- }
- },
- created() {
- this.plugins = []
- for (let i = plugins.length; i--;)
- this.plugins.push(new plugins[i](this))
- },
- mounted() {
- if (this.content && !this.nodes.length)
- this.setContent(this.content)
- },
- beforeDestroy() {
- this._hook('onDetached')
- clearInterval(this._timer)
- },
- methods: {
- /**
- * @description 将锚点跳转的范围限定在一个 scroll-view 内
- * @param {Object} page scroll-view 所在页面的示例
- * @param {String} selector scroll-view 的选择器
- * @param {String} scrollTop scroll-view scroll-top 属性绑定的变量名
- */
- in(page, selector, scrollTop) {
- // #ifndef APP-PLUS-NVUE
- if (page && selector && scrollTop)
- this._in = {
- page,
- selector,
- scrollTop
- }
- // #endif
- },
-
- /**
- * @description 锚点跳转
- * @param {String} id 要跳转的锚点 id
- * @param {Number} offset 跳转位置的偏移量
- * @returns {Promise}
- */
- navigateTo(id, offset) {
- return new Promise((resolve, reject) => {
- if (!this.useAnchor)
- return reject('Anchor is disabled')
- offset = offset || parseInt(this.useAnchor) || 0
- // #ifdef APP-PLUS-NVUE
- if (!id) {
- dom.scrollToElement(this.$refs.web, {
- offset
- })
- resolve()
- } else {
- this._navigateTo = {
- resolve,
- reject,
- offset
- }
- this.$refs.web.evalJs('uni.postMessage({data:{action:"getOffset",offset:(document.getElementById(' + id + ')||{}).offsetTop}})')
- }
- // #endif
- // #ifndef APP-PLUS-NVUE
- let deep = ' '
- // #ifdef MP-WEIXIN || MP-QQ || MP-TOUTIAO
- deep = '>>>'
- // #endif
- const selector = uni.createSelectorQuery()
- // #ifndef MP-ALIPAY
- .in(this._in ? this._in.page : this)
- // #endif
- .select((this._in ? this._in.selector : '._root') + (id ? `${deep}#${id}` : '')).boundingClientRect()
- if (this._in)
- selector.select(this._in.selector).scrollOffset()
- .select(this._in.selector).boundingClientRect() // 获取 scroll-view 的位置和滚动距离
- else
- selector.selectViewport().scrollOffset() // 获取窗口的滚动距离
- selector.exec(res => {
- if (!res[0])
- return reject('Label not found')
- const scrollTop = res[1].scrollTop + res[0].top - (res[2] ? res[2].top : 0) + offset
- if (this._in)
- // scroll-view 跳转
- this._in.page[this._in.scrollTop] = scrollTop
- else
- // 页面跳转
- uni.pageScrollTo({
- scrollTop,
- duration: 300
- })
- resolve()
- })
- // #endif
- })
- },
-
- /**
- * @description 获取文本内容
- * @return {String}
- */
- getText() {
- let text = '';
- (function traversal(nodes) {
- for (let i = 0; i < nodes.length; i++) {
- const node = nodes[i]
- if (node.type == 'text')
- text += node.text.replace(/&/g, '&')
- else if (node.name == 'br')
- text += '\n'
- else {
- // 块级标签前后加换行
- const isBlock = node.name == 'p' || node.name == 'div' || node.name == 'tr' || node.name == 'li' || (node.name[0] == 'h' && node.name[1] > '0' && node.name[1] < '7')
- if (isBlock && text && text[text.length - 1] != '\n')
- text += '\n'
- // 递归获取子节点的文本
- if (node.children)
- traversal(node.children)
- if (isBlock && text[text.length - 1] != '\n')
- text += '\n'
- else if (node.name == 'td' || node.name == 'th')
- text += '\t'
- }
- }
- })(this.nodes)
- return text
- },
-
- /**
- * @description 获取内容大小和位置
- * @return {Promise}
- */
- getRect() {
- return new Promise((resolve, reject) => {
- uni.createSelectorQuery()
- // #ifndef MP-ALIPAY
- .in(this)
- // #endif
- .select('#_root').boundingClientRect().exec(res => res[0] ? resolve(res[0]) : reject('Root label not found'))
- })
- },
-
- /**
- * @description 设置内容
- * @param {String} content html 内容
- * @param {Boolean} append 是否在尾部追加
- */
- setContent(content, append) {
- if (!append || !this.imgList)
- this.imgList = []
- const nodes = new parser(this).parse(content)
- // #ifdef APP-PLUS-NVUE
- if (this._ready)
- this._set(nodes, append)
- // #endif
- this.$set(this, 'nodes', append ? (this.nodes || []).concat(nodes) : nodes)
-
- // #ifndef APP-PLUS-NVUE
- this._videos = []
- this.$nextTick(() => {
- this._hook('onLoad')
- this.$emit('load')
- })
-
- // 等待图片加载完毕
- let height
- clearInterval(this._timer)
- this._timer = setInterval(() => {
- this.getRect().then(rect => {
- // 350ms 总高度无变化就触发 ready 事件
- if (rect.height == height) {
- this.$emit('ready', rect)
- clearInterval(this._timer)
- }
- height = rect.height
- }).catch(() => { })
- }, 350)
- // #endif
- },
-
- /**
- * @description 调用插件钩子函数
- */
- _hook(name) {
- for (let i = plugins.length; i--;)
- if (this.plugins[i][name])
- this.plugins[i][name]()
- },
-
- // #ifdef APP-PLUS-NVUE
- /**
- * @description 设置内容
- */
- _set(nodes, append) {
- this.$refs.web.evalJs('setContent(' + JSON.stringify(nodes) + ',' + JSON.stringify([this.bgColor, this.errorImg, this.loadingImg, this.pauseVideo, this.scrollTable, this.selectable]) + ',' + append + ')')
- },
-
- /**
- * @description 接收到 web-view 消息
- */
- _onMessage(e) {
- const message = e.detail.data[0]
- switch (message.action) {
- // web-view 初始化完毕
- case 'onJSBridgeReady':
- this._ready = true
- if (this.nodes)
- this._set(this.nodes)
- break
- // 内容 dom 加载完毕
- case 'onLoad':
- this.height = message.height
- this._hook('onLoad')
- this.$emit('load')
- break
- // 所有图片加载完毕
- case 'onReady':
- this.getRect().then(res => {
- this.$emit('ready', res)
- }).catch(() => { })
- break
- // 总高度发生变化
- case 'onHeightChange':
- this.height = message.height
- break
- // 图片点击
- case 'onImgTap':
- this.$emit('imgTap', message.attrs)
- if (this.previewImg)
- uni.previewImage({
- current: parseInt(message.attrs.i),
- urls: this.imgList
- })
- break
- // 链接点击
- case 'onLinkTap':
- const href = message.attrs.href
- this.$emit('linkTap', message.attrs)
- if (href) {
- // 锚点跳转
- if (href[0] == '#') {
- if (this.useAnchor)
- dom.scrollToElement(this.$refs.web, {
- offset: message.offset
- })
- }
- // 打开外链
- else if (href.includes('://')) {
- if (this.copyLink)
- plus.runtime.openWeb(href)
- }
- else
- uni.navigateTo({
- url: href,
- fail() {
- wx.switchTab({
- url: href
- })
- }
- })
- }
- break
- // 获取到锚点的偏移量
- case 'getOffset':
- if (typeof message.offset == 'number') {
- dom.scrollToElement(this.$refs.web, {
- offset: message.offset + this._navigateTo.offset
- })
- this._navigateTo.resolve()
- } else
- this._navigateTo.reject('Label not found')
- break
- // 点击
- case 'onClick':
- this.$emit('tap')
- break
- // 出错
- case 'onError':
- this.$emit('error', {
- source: message.source,
- attrs: message.attrs
- })
- }
- }
- // #endif
- }
-}
-</script>
-
-<style>
-/* #ifndef APP-PLUS-NVUE */
-/* 根节点样式 */
-._root {
- overflow: auto;
- -webkit-overflow-scrolling: touch;
-}
-
-/* 长按复制 */
-._select {
- user-select: text;
-}
-/* #endif */
-</style>
diff --git a/uni_modules/uview-ui/components/u-picker-column/props.js b/uni_modules/uview-ui/components/u-picker-column/props.js
deleted file mode 100644
index 7c11331..0000000
--- a/uni_modules/uview-ui/components/u-picker-column/props.js
+++ /dev/null
@@ -1,5 +0,0 @@
-export default {
- props: {
-
- }
-}
diff --git a/uni_modules/uview-ui/components/u-picker-column/u-picker-column.vue b/uni_modules/uview-ui/components/u-picker-column/u-picker-column.vue
deleted file mode 100644
index 53553f3..0000000
--- a/uni_modules/uview-ui/components/u-picker-column/u-picker-column.vue
+++ /dev/null
@@ -1,27 +0,0 @@
-<template>
- <picker-view-column>
- <view class="u-picker-column">
-
- </view>
- </picker-view-column>
-</template>
-
-<script>
- import props from './props.js';
- /**
- * PickerColumn
- * @description
- * @tutorial url
- * @property {String}
- * @event {Function}
- * @example
- */
- export default {
- name: 'u-picker-column',
- mixins: [uni.$u.mpMixin, uni.$u.mixin,props],
- }
-</script>
-
-<style lang="scss" scoped>
- @import "../../libs/css/components.scss";
-</style>
diff --git a/uni_modules/uview-ui/components/u-picker/props.js b/uni_modules/uview-ui/components/u-picker/props.js
deleted file mode 100644
index 7b5d091..0000000
--- a/uni_modules/uview-ui/components/u-picker/props.js
+++ /dev/null
@@ -1,79 +0,0 @@
-export default {
- props: {
- // 是否展示picker弹窗
- show: {
- type: Boolean,
- default: uni.$u.props.picker.show
- },
- // 是否展示顶部的操作栏
- showToolbar: {
- type: Boolean,
- default: uni.$u.props.picker.showToolbar
- },
- // 顶部标题
- title: {
- type: String,
- default: uni.$u.props.picker.title
- },
- // 对象数组,设置每一列的数据
- columns: {
- type: Array,
- default: uni.$u.props.picker.columns
- },
- // 是否显示加载中状态
- loading: {
- type: Boolean,
- default: uni.$u.props.picker.loading
- },
- // 各列中,单个选项的高度
- itemHeight: {
- type: [String, Number],
- default: uni.$u.props.picker.itemHeight
- },
- // 取消按钮的文字
- cancelText: {
- type: String,
- default: uni.$u.props.picker.cancelText
- },
- // 确认按钮的文字
- confirmText: {
- type: String,
- default: uni.$u.props.picker.confirmText
- },
- // 取消按钮的颜色
- cancelColor: {
- type: String,
- default: uni.$u.props.picker.cancelColor
- },
- // 确认按钮的颜色
- confirmColor: {
- type: String,
- default: uni.$u.props.picker.confirmColor
- },
- // 每列中可见选项的数量
- visibleItemCount: {
- type: [String, Number],
- default: uni.$u.props.picker.visibleItemCount
- },
- // 选项对象中,需要展示的属性键名
- keyName: {
- type: String,
- default: uni.$u.props.picker.keyName
- },
- // 是否允许点击遮罩关闭选择器
- closeOnClickOverlay: {
- type: Boolean,
- default: uni.$u.props.picker.closeOnClickOverlay
- },
- // 各列的默认索引
- defaultIndex: {
- type: Array,
- default: uni.$u.props.picker.defaultIndex
- },
- // 是否在手指松开时立即触发 change 事件。若不开启则会在滚动动画结束后触发 change 事件,只在微信2.21.1及以上有效
- immediateChange: {
- type: Boolean,
- default: uni.$u.props.picker.immediateChange
- }
- }
-}
diff --git a/uni_modules/uview-ui/components/u-picker/u-picker.vue b/uni_modules/uview-ui/components/u-picker/u-picker.vue
deleted file mode 100644
index 322f91a..0000000
--- a/uni_modules/uview-ui/components/u-picker/u-picker.vue
+++ /dev/null
@@ -1,286 +0,0 @@
-<template>
- <u-popup
- :show="show"
- @close="closeHandler"
- >
- <view class="u-picker">
- <u-toolbar
- v-if="showToolbar"
- :cancelColor="cancelColor"
- :confirmColor="confirmColor"
- :cancelText="cancelText"
- :confirmText="confirmText"
- :title="title"
- @cancel="cancel"
- @confirm="confirm"
- ></u-toolbar>
- <picker-view
- class="u-picker__view"
- :indicatorStyle="`height: ${$u.addUnit(itemHeight)}`"
- :value="innerIndex"
- :immediateChange="immediateChange"
- :style="{
- height: `${$u.addUnit(visibleItemCount * itemHeight)}`
- }"
- @change="changeHandler"
- >
- <picker-view-column
- v-for="(item, index) in innerColumns"
- :key="index"
- class="u-picker__view__column"
- >
- <text
- v-if="$u.test.array(item)"
- class="u-picker__view__column__item u-line-1"
- v-for="(item1, index1) in item"
- :key="index1"
- :style="{
- height: $u.addUnit(itemHeight),
- lineHeight: $u.addUnit(itemHeight),
- fontWeight: index1 === innerIndex[index] ? 'bold' : 'normal',
- display: 'block'
- }"
- >{{ getItemText(item1) }}</text>
- </picker-view-column>
- </picker-view>
- <view
- v-if="loading"
- class="u-picker--loading"
- >
- <u-loading-icon mode="circle"></u-loading-icon>
- </view>
- </view>
- </u-popup>
-</template>
-
-<script>
-/**
- * u-picker
- * @description 选择器
- * @property {Boolean} show 是否显示picker弹窗(默认 false )
- * @property {Boolean} showToolbar 是否显示顶部的操作栏(默认 true )
- * @property {String} title 顶部标题
- * @property {Array} columns 对象数组,设置每一列的数据
- * @property {Boolean} loading 是否显示加载中状态(默认 false )
- * @property {String | Number} itemHeight 各列中,单个选项的高度(默认 44 )
- * @property {String} cancelText 取消按钮的文字(默认 '取消' )
- * @property {String} confirmText 确认按钮的文字(默认 '确定' )
- * @property {String} cancelColor 取消按钮的颜色(默认 '#909193' )
- * @property {String} confirmColor 确认按钮的颜色(默认 '#3c9cff' )
- * @property {String | Number} visibleItemCount 每列中可见选项的数量(默认 5 )
- * @property {String} keyName 选项对象中,需要展示的属性键名(默认 'text' )
- * @property {Boolean} closeOnClickOverlay 是否允许点击遮罩关闭选择器(默认 false )
- * @property {Array} defaultIndex 各列的默认索引
- * @property {Boolean} immediateChange 是否在手指松开时立即触发change事件(默认 false )
- * @event {Function} close 关闭选择器时触发
- * @event {Function} cancel 点击取消按钮触发
- * @event {Function} change 当选择值变化时触发
- * @event {Function} confirm 点击确定按钮,返回当前选择的值
- */
-import props from './props.js';
-export default {
- name: 'u-picker',
- mixins: [uni.$u.mpMixin, uni.$u.mixin, props],
- data() {
- return {
- // 上一次选择的列索引
- lastIndex: [],
- // 索引值 ,对应picker-view的value
- innerIndex: [],
- // 各列的值
- innerColumns: [],
- // 上一次的变化列索引
- columnIndex: 0,
- }
- },
- watch: {
- // 监听默认索引的变化,重新设置对应的值
- defaultIndex: {
- immediate: true,
- handler(n) {
- this.setIndexs(n, true)
- }
- },
- // 监听columns参数的变化
- columns: {
- immediate: true,
- handler(n) {
- this.setColumns(n)
- }
- },
- },
- methods: {
- // 获取item需要显示的文字,判别为对象还是文本
- getItemText(item) {
- if (uni.$u.test.object(item)) {
- return item[this.keyName]
- } else {
- return item
- }
- },
- // 关闭选择器
- closeHandler() {
- if (this.closeOnClickOverlay) {
- this.$emit('close')
- }
- },
- // 点击工具栏的取消按钮
- cancel() {
- this.$emit('cancel')
- },
- // 点击工具栏的确定按钮
- confirm() {
- this.$emit('confirm', {
- indexs: this.innerIndex,
- value: this.innerColumns.map((item, index) => item[this.innerIndex[index]]),
- values: this.innerColumns
- })
- },
- // 选择器某一列的数据发生变化时触发
- changeHandler(e) {
- const {
- value
- } = e.detail
- let index = 0,
- columnIndex = 0
- // 通过对比前后两次的列索引,得出当前变化的是哪一列
- for (let i = 0; i < value.length; i++) {
- let item = value[i]
- if (item !== (this.lastIndex[i] || 0)) { // 把undefined转为合法假值0
- // 设置columnIndex为当前变化列的索引
- columnIndex = i
- // index则为变化列中的变化项的索引
- index = item
- break // 终止循环,即使少一次循环,也是性能的提升
- }
- }
- this.columnIndex = columnIndex
- const values = this.innerColumns
- // 将当前的各项变化索引,设置为"上一次"的索引变化值
- this.setLastIndex(value)
- this.setIndexs(value)
-
- this.$emit('change', {
- // #ifndef MP-WEIXIN || MP-LARK || MP-TOUTIAO
- // 微信小程序不能传递this,会因为循环引用而报错
- picker: this,
- // #endif
- value: this.innerColumns.map((item, index) => item[value[index]]),
- index,
- indexs: value,
- // values为当前变化列的数组内容
- values,
- columnIndex
- })
- },
- // 设置index索引,此方法可被外部调用设置
- setIndexs(index, setLastIndex) {
- this.innerIndex = uni.$u.deepClone(index)
- if (setLastIndex) {
- this.setLastIndex(index)
- }
- },
- // 记录上一次的各列索引位置
- setLastIndex(index) {
- // 当能进入此方法,意味着当前设置的各列默认索引,即为“上一次”的选中值,需要记录,是因为changeHandler中
- // 需要拿前后的变化值进行对比,得出当前发生改变的是哪一列
- this.lastIndex = uni.$u.deepClone(index)
- },
- // 设置对应列选项的所有值
- setColumnValues(columnIndex, values) {
- // 替换innerColumns数组中columnIndex索引的值为values,使用的是数组的splice方法
- this.innerColumns.splice(columnIndex, 1, values)
- // 替换完成之后将修改列之后的已选值置空
- this.setLastIndex(this.innerIndex.slice(0,columnIndex))
- // 拷贝一份原有的innerIndex做临时变量,将大于当前变化列的所有的列的默认索引设置为0
- let tmpIndex = uni.$u.deepClone(this.innerIndex)
- for (let i = 0; i < this.innerColumns.length; i++) {
- if (i > this.columnIndex) {
- tmpIndex[i] = 0
- }
- }
- // 一次性赋值,不能单个修改,否则无效
- this.setIndexs(tmpIndex)
- },
- // 获取对应列的所有选项
- getColumnValues(columnIndex) {
- // 进行同步阻塞,因为外部得到change事件之后,可能需要执行setColumnValues更新列的值
- // 索引如果在外部change的回调中调用getColumnValues的话,可能无法得到变更后的列值,这里进行一定延时,保证值的准确性
- (async () => {
- await uni.$u.sleep()
- })()
- return this.innerColumns[columnIndex]
- },
- // 设置整体各列的columns的值
- setColumns(columns) {
- this.innerColumns = uni.$u.deepClone(columns)
- // 如果在设置各列数据时,没有被设置默认的各列索引defaultIndex,那么用0去填充它,数组长度为列的数量
- if (this.innerIndex.length === 0) {
- this.innerIndex = new Array(columns.length).fill(0)
- }
- },
- // 获取各列选中值对应的索引
- getIndexs() {
- return this.innerIndex
- },
- // 获取各列选中的值
- getValues() {
- // 进行同步阻塞,因为外部得到change事件之后,可能需要执行setColumnValues更新列的值
- // 索引如果在外部change的回调中调用getValues的话,可能无法得到变更后的列值,这里进行一定延时,保证值的准确性
- (async () => {
- await uni.$u.sleep()
- })()
- return this.innerColumns.map((item, index) => item[this.innerIndex[index]])
- }
- },
-}
-</script>
-
-<style lang="scss" scoped>
- @import "../../libs/css/components.scss";
-
- .u-picker {
- position: relative;
-
- &__view {
-
- &__column {
- @include flex;
- flex: 1;
- justify-content: center;
-
- &__item {
- @include flex;
- justify-content: center;
- align-items: center;
- font-size: 16px;
- text-align: center;
- /* #ifndef APP-NVUE */
- display: block;
- /* #endif */
- color: $u-main-color;
-
- &--disabled {
- /* #ifndef APP-NVUE */
- cursor: not-allowed;
- /* #endif */
- opacity: 0.35;
- }
- }
- }
- }
-
- &--loading {
- position: absolute;
- top: 0;
- right: 0;
- left: 0;
- bottom: 0;
- @include flex;
- justify-content: center;
- align-items: center;
- background-color: rgba(255, 255, 255, 0.87);
- z-index: 1000;
- }
- }
-</style>
diff --git a/uni_modules/uview-ui/components/u-popup/props.js b/uni_modules/uview-ui/components/u-popup/props.js
deleted file mode 100644
index d9fe952..0000000
--- a/uni_modules/uview-ui/components/u-popup/props.js
+++ /dev/null
@@ -1,79 +0,0 @@
-export default {
- props: {
- // 是否展示弹窗
- show: {
- type: Boolean,
- default: uni.$u.props.popup.show
- },
- // 是否显示遮罩
- overlay: {
- type: Boolean,
- default: uni.$u.props.popup.overlay
- },
- // 弹出的方向,可选值为 top bottom right left center
- mode: {
- type: String,
- default: uni.$u.props.popup.mode
- },
- // 动画时长,单位ms
- duration: {
- type: [String, Number],
- default: uni.$u.props.popup.duration
- },
- // 是否显示关闭图标
- closeable: {
- type: Boolean,
- default: uni.$u.props.popup.closeable
- },
- // 自定义遮罩的样式
- overlayStyle: {
- type: [Object, String],
- default: uni.$u.props.popup.overlayStyle
- },
- // 点击遮罩是否关闭弹窗
- closeOnClickOverlay: {
- type: Boolean,
- default: uni.$u.props.popup.closeOnClickOverlay
- },
- // 层级
- zIndex: {
- type: [String, Number],
- default: uni.$u.props.popup.zIndex
- },
- // 是否为iPhoneX留出底部安全距离
- safeAreaInsetBottom: {
- type: Boolean,
- default: uni.$u.props.popup.safeAreaInsetBottom
- },
- // 是否留出顶部安全距离(状态栏高度)
- safeAreaInsetTop: {
- type: Boolean,
- default: uni.$u.props.popup.safeAreaInsetTop
- },
- // 自定义关闭图标位置,top-left为左上角,top-right为右上角,bottom-left为左下角,bottom-right为右下角
- closeIconPos: {
- type: String,
- default: uni.$u.props.popup.closeIconPos
- },
- // 是否显示圆角
- round: {
- type: [Boolean, String, Number],
- default: uni.$u.props.popup.round
- },
- // mode=center,也即中部弹出时,是否使用缩放模式
- zoom: {
- type: Boolean,
- default: uni.$u.props.popup.zoom
- },
- // 弹窗背景色,设置为transparent可去除白色背景
- bgColor: {
- type: String,
- default: uni.$u.props.popup.bgColor
- },
- // 遮罩的透明度,0-1之间
- overlayOpacity: {
- type: [Number, String],
- default: uni.$u.props.popup.overlayOpacity
- }
- }
-}
diff --git a/uni_modules/uview-ui/components/u-popup/u-popup.vue b/uni_modules/uview-ui/components/u-popup/u-popup.vue
deleted file mode 100644
index 2ca51cc..0000000
--- a/uni_modules/uview-ui/components/u-popup/u-popup.vue
+++ /dev/null
@@ -1,304 +0,0 @@
-<template>
- <view class="u-popup">
- <u-overlay
- :show="show"
- @click="overlayClick"
- v-if="overlay"
- :duration="overlayDuration"
- :customStyle="overlayStyle"
- :opacity="overlayOpacity"
- ></u-overlay>
- <u-transition
- :show="show"
- :customStyle="transitionStyle"
- :mode="position"
- :duration="duration"
- @afterEnter="afterEnter"
- @click="clickHandler"
- >
- <view
- class="u-popup__content"
- :style="[contentStyle]"
- @tap.stop="noop"
- >
- <u-status-bar v-if="safeAreaInsetTop"></u-status-bar>
- <slot></slot>
- <view
- v-if="closeable"
- @tap.stop="close"
- class="u-popup__content__close"
- :class="['u-popup__content__close--' + closeIconPos]"
- hover-class="u-popup__content__close--hover"
- hover-stay-time="150"
- >
- <u-icon
- name="close"
- color="#909399"
- size="18"
- bold
- ></u-icon>
- </view>
- <u-safe-bottom v-if="safeAreaInsetBottom"></u-safe-bottom>
- </view>
- </u-transition>
- </view>
-</template>
-
-<script>
- import props from './props.js';
-
- /**
- * popup 弹窗
- * @description 弹出层容器,用于展示弹窗、信息提示等内容,支持上、下、左、右和中部弹出。组件只提供容器,内部内容由用户自定义
- * @tutorial https://www.uviewui.com/components/popup.html
- * @property {Boolean} show 是否展示弹窗 (默认 false )
- * @property {Boolean} overlay 是否显示遮罩 (默认 true )
- * @property {String} mode 弹出方向(默认 'bottom' )
- * @property {String | Number} duration 动画时长,单位ms (默认 300 )
- * @property {String | Number} overlayDuration 遮罩层动画时长,单位ms (默认 350 )
- * @property {Boolean} closeable 是否显示关闭图标(默认 false )
- * @property {Object | String} overlayStyle 自定义遮罩的样式
- * @property {String | Number} overlayOpacity 遮罩透明度,0-1之间(默认 0.5)
- * @property {Boolean} closeOnClickOverlay 点击遮罩是否关闭弹窗 (默认 true )
- * @property {String | Number} zIndex 层级 (默认 10075 )
- * @property {Boolean} safeAreaInsetBottom 是否为iPhoneX留出底部安全距离 (默认 true )
- * @property {Boolean} safeAreaInsetTop 是否留出顶部安全距离(状态栏高度) (默认 false )
- * @property {String} closeIconPos 自定义关闭图标位置(默认 'top-right' )
- * @property {String | Number} round 圆角值(默认 0)
- * @property {Boolean} zoom 当mode=center时 是否开启缩放(默认 true )
- * @property {Object} customStyle 组件的样式,对象形式
- * @event {Function} open 弹出层打开
- * @event {Function} close 弹出层收起
- * @example <u-popup v-model="show"><text>出淤泥而不染,濯清涟而不妖</text></u-popup>
- */
- export default {
- name: 'u-popup',
- mixins: [uni.$u.mpMixin, uni.$u.mixin, props],
- data() {
- return {
- overlayDuration: this.duration + 50
- }
- },
- watch: {
- show(newValue, oldValue) {
- if (newValue === true) {
- // #ifdef MP-WEIXIN
- const children = this.$children
- this.retryComputedComponentRect(children)
- // #endif
- }
- }
- },
- computed: {
- transitionStyle() {
- const style = {
- zIndex: this.zIndex,
- position: 'fixed',
- display: 'flex',
- }
- style[this.mode] = 0
- if (this.mode === 'left') {
- return uni.$u.deepMerge(style, {
- bottom: 0,
- top: 0,
- })
- } else if (this.mode === 'right') {
- return uni.$u.deepMerge(style, {
- bottom: 0,
- top: 0,
- })
- } else if (this.mode === 'top') {
- return uni.$u.deepMerge(style, {
- left: 0,
- right: 0
- })
- } else if (this.mode === 'bottom') {
- return uni.$u.deepMerge(style, {
- left: 0,
- right: 0,
- })
- } else if (this.mode === 'center') {
- return uni.$u.deepMerge(style, {
- alignItems: 'center',
- 'justify-content': 'center',
- top: 0,
- left: 0,
- right: 0,
- bottom: 0
- })
- }
- },
- contentStyle() {
- const style = {}
- // 通过设备信息的safeAreaInsets值来判断是否需要预留顶部状态栏和底部安全局的位置
- // 不使用css方案,是因为nvue不支持css的iPhoneX安全区查询属性
- const {
- safeAreaInsets
- } = uni.$u.sys()
- if (this.mode !== 'center') {
- style.flex = 1
- }
- // 背景色,一般用于设置为transparent,去除默认的白色背景
- if (this.bgColor) {
- style.backgroundColor = this.bgColor
- }
- if(this.round) {
- const value = uni.$u.addUnit(this.round)
- if(this.mode === 'top') {
- style.borderBottomLeftRadius = value
- style.borderBottomRightRadius = value
- } else if(this.mode === 'bottom') {
- style.borderTopLeftRadius = value
- style.borderTopRightRadius = value
- } else if(this.mode === 'center') {
- style.borderRadius = value
- }
- }
- return uni.$u.deepMerge(style, uni.$u.addStyle(this.customStyle))
- },
- position() {
- if (this.mode === 'center') {
- return this.zoom ? 'fade-zoom' : 'fade'
- }
- if (this.mode === 'left') {
- return 'slide-left'
- }
- if (this.mode === 'right') {
- return 'slide-right'
- }
- if (this.mode === 'bottom') {
- return 'slide-up'
- }
- if (this.mode === 'top') {
- return 'slide-down'
- }
- },
- },
- methods: {
- // 点击遮罩
- overlayClick() {
- if (this.closeOnClickOverlay) {
- this.$emit('close')
- }
- },
- close(e) {
- this.$emit('close')
- },
- afterEnter() {
- this.$emit('open')
- },
- clickHandler() {
- // 由于中部弹出时,其u-transition占据了整个页面相当于遮罩,此时需要发出遮罩点击事件,是否无法通过点击遮罩关闭弹窗
- if(this.mode === 'center') {
- this.overlayClick()
- }
- this.$emit('click')
- },
- // #ifdef MP-WEIXIN
- retryComputedComponentRect(children) {
- // 组件内部需要计算节点的组件
- const names = ['u-calendar-month', 'u-album', 'u-collapse-item', 'u-dropdown', 'u-index-item', 'u-index-list',
- 'u-line-progress', 'u-list-item', 'u-rate', 'u-read-more', 'u-row', 'u-row-notice', 'u-scroll-list',
- 'u-skeleton', 'u-slider', 'u-steps-item', 'u-sticky', 'u-subsection', 'u-swipe-action-item', 'u-tabbar',
- 'u-tabs', 'u-tooltip'
- ]
- // 历遍所有的子组件节点
- for (let i = 0; i < children.length; i++) {
- const child = children[i]
- // 拿到子组件的子组件
- const grandChild = child.$children
- // 判断如果在需要重新初始化的组件数组中名中,并且存在init方法的话,则执行
- if (names.includes(child.$options.name) && typeof child?.init === 'function') {
- // 需要进行一定的延时,因为初始化页面需要时间
- uni.$u.sleep(50).then(() => {
- child.init()
- })
- }
- // 如果子组件还有孙组件,进行递归历遍
- if (grandChild.length) {
- this.retryComputedComponentRect(grandChild)
- }
- }
- }
- // #endif
- }
- }
-</script>
-
-<style lang="scss" scoped>
- @import "../../libs/css/components.scss";
- $u-popup-flex:1 !default;
- $u-popup-content-background-color: #fff !default;
-
- .u-popup {
- flex: $u-popup-flex;
-
- &__content {
- background-color: $u-popup-content-background-color;
- position: relative;
-
- &--round-top {
- border-top-left-radius: 0;
- border-top-right-radius: 0;
- border-bottom-left-radius: 10px;
- border-bottom-right-radius: 10px;
- }
-
- &--round-left {
- border-top-left-radius: 0;
- border-top-right-radius: 10px;
- border-bottom-left-radius: 0;
- border-bottom-right-radius: 10px;
- }
-
- &--round-right {
- border-top-left-radius: 10px;
- border-top-right-radius: 0;
- border-bottom-left-radius: 10px;
- border-bottom-right-radius: 0;
- }
-
- &--round-bottom {
- border-top-left-radius: 10px;
- border-top-right-radius: 10px;
- border-bottom-left-radius: 0;
- border-bottom-right-radius: 0;
- }
-
- &--round-center {
- border-top-left-radius: 10px;
- border-top-right-radius: 10px;
- border-bottom-left-radius: 10px;
- border-bottom-right-radius: 10px;
- }
-
- &__close {
- position: absolute;
-
- &--hover {
- opacity: 0.4;
- }
- }
-
- &__close--top-left {
- top: 15px;
- left: 15px;
- }
-
- &__close--top-right {
- top: 15px;
- right: 15px;
- }
-
- &__close--bottom-left {
- bottom: 15px;
- left: 15px;
- }
-
- &__close--bottom-right {
- right: 15px;
- bottom: 15px;
- }
- }
- }
-</style>
diff --git a/uni_modules/uview-ui/components/u-radio-group/props.js b/uni_modules/uview-ui/components/u-radio-group/props.js
deleted file mode 100644
index bb86cba..0000000
--- a/uni_modules/uview-ui/components/u-radio-group/props.js
+++ /dev/null
@@ -1,85 +0,0 @@
-export default {
- props: {
- // 绑定的值
- value: {
- type: [String, Number, Boolean],
- default: uni.$u.props.radioGroup.value
- },
-
- // 是否禁用全部radio
- disabled: {
- type: Boolean,
- default: uni.$u.props.radioGroup.disabled
- },
- // 形状,circle-圆形,square-方形
- shape: {
- type: String,
- default: uni.$u.props.radioGroup.shape
- },
- // 选中状态下的颜色,如设置此值,将会覆盖parent的activeColor值
- activeColor: {
- type: String,
- default: uni.$u.props.radioGroup.activeColor
- },
- // 未选中的颜色
- inactiveColor: {
- type: String,
- default: uni.$u.props.radioGroup.inactiveColor
- },
- // 标识符
- name: {
- type: String,
- default: uni.$u.props.radioGroup.name
- },
- // 整个组件的尺寸,默认px
- size: {
- type: [String, Number],
- default: uni.$u.props.radioGroup.size
- },
- // 布局方式,row-横向,column-纵向
- placement: {
- type: String,
- default: uni.$u.props.radioGroup.placement
- },
- // label的文本
- label: {
- type: [String],
- default: uni.$u.props.radioGroup.label
- },
- // label的颜色 (默认 '#303133' )
- labelColor: {
- type: [String],
- default: uni.$u.props.radioGroup.labelColor
- },
- // label的字体大小,px单位
- labelSize: {
- type: [String, Number],
- default: uni.$u.props.radioGroup.labelSize
- },
- // 是否禁止点击文本操作checkbox(默认 false )
- labelDisabled: {
- type: Boolean,
- default: uni.$u.props.radioGroup.labelDisabled
- },
- // 图标颜色
- iconColor: {
- type: String,
- default: uni.$u.props.radioGroup.iconColor
- },
- // 图标的大小,单位px
- iconSize: {
- type: [String, Number],
- default: uni.$u.props.radioGroup.iconSize
- },
- // 竖向配列时,是否显示下划线
- borderBottom: {
- type: Boolean,
- default: uni.$u.props.radioGroup.borderBottom
- },
- // 图标与文字的对齐方式
- iconPlacement: {
- type: String,
- default: uni.$u.props.radio.iconPlacement
- }
- }
-}
diff --git a/uni_modules/uview-ui/components/u-radio-group/u-radio-group.vue b/uni_modules/uview-ui/components/u-radio-group/u-radio-group.vue
deleted file mode 100644
index 0d3c9b5..0000000
--- a/uni_modules/uview-ui/components/u-radio-group/u-radio-group.vue
+++ /dev/null
@@ -1,108 +0,0 @@
-<template>
- <view
- class="u-radio-group"
- :class="bemClass"
- >
- <slot></slot>
- </view>
-</template>
-
-<script>
- import props from './props.js';
-
- /**
- * radioRroup 单选框父组件
- * @description 单选框用于有一个选择,用户只能选择其中一个的场景。搭配u-radio使用
- * @tutorial https://www.uviewui.com/components/radio.html
- * @property {String | Number | Boolean} value 绑定的值
- * @property {Boolean} disabled 是否禁用所有radio(默认 false )
- * @property {String} shape 外观形状,shape-方形,circle-圆形(默认 circle )
- * @property {String} activeColor 选中时的颜色,应用到所有子Radio组件(默认 '#2979ff' )
- * @property {String} inactiveColor 未选中的颜色 (默认 '#c8c9cc' )
- * @property {String} name 标识符
- * @property {String | Number} size 组件整体的大小,单位px(默认 18 )
- * @property {String} placement 布局方式,row-横向,column-纵向 (默认 'row' )
- * @property {String} label 文本
- * @property {String} labelColor label的颜色 (默认 '#303133' )
- * @property {String | Number} labelSize label的字体大小,px单位 (默认 14 )
- * @property {Boolean} labelDisabled 是否禁止点击文本操作checkbox(默认 false )
- * @property {String} iconColor 图标颜色 (默认 '#ffffff' )
- * @property {String | Number} iconSize 图标的大小,单位px (默认 12 )
- * @property {Boolean} borderBottom placement为row时,是否显示下边框 (默认 false )
- * @property {String} iconPlacement 图标与文字的对齐方式 (默认 'left' )
- * @property {Object} customStyle 组件的样式,对象形式
- * @event {Function} change 任一个radio状态发生变化时触发
- * @example <u-radio-group v-model="value"></u-radio-group>
- */
- export default {
- name: 'u-radio-group',
- mixins: [uni.$u.mpMixin, uni.$u.mixin,props],
- computed: {
- // 这里computed的变量,都是子组件u-radio需要用到的,由于头条小程序的兼容性差异,子组件无法实时监听父组件参数的变化
- // 所以需要手动通知子组件,这里返回一个parentData变量,供watch监听,在其中去通知每一个子组件重新从父组件(u-radio-group)
- // 拉取父组件新的变化后的参数
- parentData() {
- return [this.value, this.disabled, this.inactiveColor, this.activeColor, this.size, this.labelDisabled, this.shape,
- this.iconSize, this.borderBottom, this.placement
- ]
- },
- bemClass() {
- // this.bem为一个computed变量,在mixin中
- return this.bem('radio-group', ['placement'])
- },
- },
- watch: {
- // 当父组件需要子组件需要共享的参数发生了变化,手动通知子组件
- parentData() {
- if (this.children.length) {
- this.children.map(child => {
- // 判断子组件(u-radio)如果有init方法的话,就就执行(执行的结果是子组件重新从父组件拉取了最新的值)
- typeof(child.init) === 'function' && child.init()
- })
- }
- },
- },
- data() {
- return {
-
- }
- },
- created() {
- this.children = []
- },
- methods: {
- // 将其他的radio设置为未选中的状态
- unCheckedOther(childInstance) {
- this.children.map(child => {
- // 所有子radio中,被操作组件实例的checked的值无需修改
- if (childInstance !== child) {
- child.checked = false
- }
- })
- const {
- name
- } = childInstance
- // 通过emit事件,设置父组件通过v-model双向绑定的值
- this.$emit('input', name)
- // 发出事件
- this.$emit('change', name)
- },
- }
- }
-</script>
-
-<style lang="scss" scoped>
- @import "../../libs/css/components.scss";
-
- .u-radio-group {
- flex: 1;
-
- &--row {
- @include flex;
- }
-
- &--column {
- @include flex(column);
- }
- }
-</style>
diff --git a/uni_modules/uview-ui/components/u-radio/props.js b/uni_modules/uview-ui/components/u-radio/props.js
deleted file mode 100644
index 3ec5f6b..0000000
--- a/uni_modules/uview-ui/components/u-radio/props.js
+++ /dev/null
@@ -1,64 +0,0 @@
-export default {
- props: {
- // radio的名称
- name: {
- type: [String, Number, Boolean],
- default: uni.$u.props.radio.name
- },
- // 形状,square为方形,circle为圆型
- shape: {
- type: String,
- default: uni.$u.props.radio.shape
- },
- // 是否禁用
- disabled: {
- type: [String, Boolean],
- default: uni.$u.props.radio.disabled
- },
- // 是否禁止点击提示语选中单选框
- labelDisabled: {
- type: [String, Boolean],
- default: uni.$u.props.radio.labelDisabled
- },
- // 选中状态下的颜色,如设置此值,将会覆盖parent的activeColor值
- activeColor: {
- type: String,
- default: uni.$u.props.radio.activeColor
- },
- // 未选中的颜色
- inactiveColor: {
- type: String,
- default: uni.$u.props.radio.inactiveColor
- },
- // 图标的大小,单位px
- iconSize: {
- type: [String, Number],
- default: uni.$u.props.radio.iconSize
- },
- // label的字体大小,px单位
- labelSize: {
- type: [String, Number],
- default: uni.$u.props.radio.labelSize
- },
- // label提示文字,因为nvue下,直接slot进来的文字,由于特殊的结构,无法修改样式
- label: {
- type: [String, Number],
- default: uni.$u.props.radio.label
- },
- // 整体的大小
- size: {
- type: [String, Number],
- default: uni.$u.props.radio.size
- },
- // 图标颜色
- color: {
- type: String,
- default: uni.$u.props.radio.color
- },
- // label的颜色
- labelColor: {
- type: String,
- default: uni.$u.props.radio.labelColor
- }
- }
-}
diff --git a/uni_modules/uview-ui/components/u-radio/u-radio.vue b/uni_modules/uview-ui/components/u-radio/u-radio.vue
deleted file mode 100644
index c0caab6..0000000
--- a/uni_modules/uview-ui/components/u-radio/u-radio.vue
+++ /dev/null
@@ -1,339 +0,0 @@
-<template>
- <view
- class="u-radio"
- @tap.stop="wrapperClickHandler"
- :style="[radioStyle]"
- :class="[`u-radio-label--${parentData.iconPlacement}`, parentData.borderBottom && parentData.placement === 'column' && 'u-border-bottom']"
- >
- <view
- class="u-radio__icon-wrap"
- @tap.stop="iconClickHandler"
- :class="iconClasses"
- :style="[iconWrapStyle]"
- >
- <slot name="icon">
- <u-icon
- class="u-radio__icon-wrap__icon"
- name="checkbox-mark"
- :size="elIconSize"
- :color="elIconColor"
- />
- </slot>
- </view>
- <slot>
- <text
- class="u-radio__text"
- @tap.stop="labelClickHandler"
- :style="{
- color: elDisabled ? elInactiveColor : elLabelColor,
- fontSize: elLabelSize,
- lineHeight: elLabelSize
- }"
- >{{label}}</text>
- </slot>
- </view>
-</template>
-
-<script>
- import props from './props.js';
- /**
- * radio 单选框
- * @description 单选框用于有一个选择,用户只能选择其中一个的场景。搭配u-radio-group使用
- * @tutorial https://www.uviewui.com/components/radio.html
- * @property {String | Number} name radio的名称
- * @property {String} shape 形状,square为方形,circle为圆型
- * @property {Boolean} disabled 是否禁用
- * @property {String | Boolean} labelDisabled 是否禁止点击提示语选中单选框
- * @property {String} activeColor 选中时的颜色,如设置parent的active-color将失效
- * @property {String} inactiveColor 未选中的颜色
- * @property {String | Number} iconSize 图标大小,单位px
- * @property {String | Number} labelSize label字体大小,单位px
- * @property {String | Number} label label提示文字,因为nvue下,直接slot进来的文字,由于特殊的结构,无法修改样式
- * @property {String | Number} size 整体的大小
- * @property {String} iconColor 图标颜色
- * @property {String} labelColor label的颜色
- * @property {Object} customStyle 组件的样式,对象形式
- *
- * @event {Function} change 某个radio状态发生变化时触发(选中状态)
- * @example <u-radio :labelDisabled="false">门掩黄昏,无计留春住</u-radio>
- */
- export default {
- name: "u-radio",
-
- mixins: [uni.$u.mpMixin, uni.$u.mixin,props],
- data() {
- return {
- checked: false,
- // 当你看到这段代码的时候,
- // 父组件的默认值,因为头条小程序不支持在computed中使用this.parent.shape的形式
- // 故只能使用如此方法
- parentData: {
- iconSize: 12,
- labelDisabled: null,
- disabled: null,
- shape: null,
- activeColor: null,
- inactiveColor: null,
- size: 18,
- value: null,
- iconColor: null,
- placement: 'row',
- borderBottom: false,
- iconPlacement: 'left'
- }
- }
- },
- computed: {
- // 是否禁用,如果父组件u-raios-group禁用的话,将会忽略子组件的配置
- elDisabled() {
- return this.disabled !== '' ? this.disabled : this.parentData.disabled !== null ? this.parentData.disabled : false;
- },
- // 是否禁用label点击
- elLabelDisabled() {
- return this.labelDisabled !== '' ? this.labelDisabled : this.parentData.labelDisabled !== null ? this.parentData.labelDisabled :
- false;
- },
- // 组件尺寸,对应size的值,默认值为21px
- elSize() {
- return this.size ? this.size : (this.parentData.size ? this.parentData.size : 21);
- },
- // 组件的勾选图标的尺寸,默认12px
- elIconSize() {
- return this.iconSize ? this.iconSize : (this.parentData.iconSize ? this.parentData.iconSize : 12);
- },
- // 组件选中激活时的颜色
- elActiveColor() {
- return this.activeColor ? this.activeColor : (this.parentData.activeColor ? this.parentData.activeColor : '#2979ff');
- },
- // 组件选未中激活时的颜色
- elInactiveColor() {
- return this.inactiveColor ? this.inactiveColor : (this.parentData.inactiveColor ? this.parentData.inactiveColor :
- '#c8c9cc');
- },
- // label的颜色
- elLabelColor() {
- return this.labelColor ? this.labelColor : (this.parentData.labelColor ? this.parentData.labelColor : '#606266')
- },
- // 组件的形状
- elShape() {
- return this.shape ? this.shape : (this.parentData.shape ? this.parentData.shape : 'circle');
- },
- // label大小
- elLabelSize() {
- return uni.$u.addUnit(this.labelSize ? this.labelSize : (this.parentData.labelSize ? this.parentData.labelSize :
- '15'))
- },
- elIconColor() {
- const iconColor = this.iconColor ? this.iconColor : (this.parentData.iconColor ? this.parentData.iconColor :
- '#ffffff');
- // 图标的颜色
- if (this.elDisabled) {
- // disabled状态下,已勾选的radio图标改为elInactiveColor
- return this.checked ? this.elInactiveColor : 'transparent'
- } else {
- return this.checked ? iconColor : 'transparent'
- }
- },
- iconClasses() {
- let classes = []
- // 组件的形状
- classes.push('u-radio__icon-wrap--' + this.elShape)
- if (this.elDisabled) {
- classes.push('u-radio__icon-wrap--disabled')
- }
- if (this.checked && this.elDisabled) {
- classes.push('u-radio__icon-wrap--disabled--checked')
- }
- // 支付宝,头条小程序无法动态绑定一个数组类名,否则解析出来的结果会带有",",而导致失效
- // #ifdef MP-ALIPAY || MP-TOUTIAO
- classes = classes.join(' ')
- // #endif
- return classes
- },
- iconWrapStyle() {
- // radio的整体样式
- const style = {}
- style.backgroundColor = this.checked && !this.elDisabled ? this.elActiveColor : '#ffffff'
- style.borderColor = this.checked && !this.elDisabled ? this.elActiveColor : this.elInactiveColor
- style.width = uni.$u.addUnit(this.elSize)
- style.height = uni.$u.addUnit(this.elSize)
- // 如果是图标在右边的话,移除它的右边距
- if (this.parentData.iconPlacement === 'right') {
- style.marginRight = 0
- }
- return style
- },
- radioStyle() {
- const style = {}
- if(this.parentData.borderBottom && this.parentData.placement === 'row') {
- uni.$u.error('检测到您将borderBottom设置为true,需要同时将u-radio-group的placement设置为column才有效')
- }
- // 当父组件设置了显示下边框并且排列形式为纵向时,给内容和边框之间加上一定间隔
- if(this.parentData.borderBottom && this.parentData.placement === 'column') {
- // ios像素密度高,需要多一点的距离
- style.paddingBottom = uni.$u.os() === 'ios' ? '12px' : '8px'
- }
- return uni.$u.deepMerge(style, uni.$u.addStyle(this.customStyle))
- }
- },
- mounted() {
- this.init()
- },
- methods: {
- init() {
- // 支付宝小程序不支持provide/inject,所以使用这个方法获取整个父组件,在created定义,避免循环引用
- this.updateParentData()
- if (!this.parent) {
- uni.$u.error('u-radio必须搭配u-radio-group组件使用')
- }
- // 设置初始化时,是否默认选中的状态
- this.checked = this.name === this.parentData.value
- },
- updateParentData() {
- this.getParentData('u-radio-group')
- },
- // 点击图标
- iconClickHandler(e) {
- this.preventEvent(e)
- // 如果整体被禁用,不允许被点击
- if (!this.elDisabled) {
- this.setRadioCheckedStatus()
- }
- },
- // 横向两端排列时,点击组件即可触发选中事件
- wrapperClickHandler(e) {
- this.parentData.iconPlacement === 'right' && this.iconClickHandler(e)
- },
- // 点击label
- labelClickHandler(e) {
- this.preventEvent(e)
- // 如果按钮整体被禁用或者label被禁用,则不允许点击文字修改状态
- if (!this.elLabelDisabled && !this.elDisabled) {
- this.setRadioCheckedStatus()
- }
- },
- emitEvent() {
- // u-radio的checked不为true时(意味着未选中),才发出事件,避免多次点击触发事件
- if (!this.checked) {
- this.$emit('change', this.name)
- // 尝试调用u-form的验证方法,进行一定延迟,否则微信小程序更新可能会不及时
- this.$nextTick(() => {
- uni.$u.formValidate(this, 'change')
- })
- }
- },
- // 改变组件选中状态
- // 这里的改变的依据是,更改本组件的checked值为true,同时通过父组件遍历所有u-radio实例
- // 将本组件外的其他u-radio的checked都设置为false(都被取消选中状态),因而只剩下一个为选中状态
- setRadioCheckedStatus() {
- this.emitEvent()
- // 将本组件标记为选中状态
- this.checked = true
- typeof this.parent.unCheckedOther === 'function' && this.parent.unCheckedOther(this)
- }
- }
- }
-</script>
-
-<style lang="scss" scoped>
- @import "../../libs/css/components.scss";
- $u-radio-wrap-margin-right:6px !default;
- $u-radio-wrap-font-size:20px !default;
- $u-radio-wrap-border-width:1px !default;
- $u-radio-wrap-border-color: #c8c9cc !default;
- $u-radio-line-height:0 !default;
- $u-radio-circle-border-radius:100% !default;
- $u-radio-square-border-radius:3px !default;
- $u-radio-checked-color:#fff !default;
- $u-radio-checked-background-color:red !default;
- $u-radio-checked-border-color: #2979ff !default;
- $u-radio-disabled-background-color:#ebedf0 !default;
- $u-radio-disabled--checked-color:#c8c9cc !default;
- $u-radio-label-margin-left: 5px !default;
- $u-radio-label-margin-right:12px !default;
- $u-radio-label-color:$u-content-color !default;
- $u-radio-label-font-size:15px !default;
- $u-radio-label-disabled-color:#c8c9cc !default;
-
- .u-radio {
- /* #ifndef APP-NVUE */
- @include flex(row);
- /* #endif */
- overflow: hidden;
- flex-direction: row;
- align-items: center;
-
- &-label--left {
- flex-direction: row
- }
-
- &-label--right {
- flex-direction: row-reverse;
- justify-content: space-between
- }
-
- &__icon-wrap {
- /* #ifndef APP-NVUE */
- box-sizing: border-box;
- // nvue下,border-color过渡有问题
- transition-property: border-color, background-color, color;
- transition-duration: 0.2s;
- /* #endif */
- color: $u-content-color;
- @include flex;
- align-items: center;
- justify-content: center;
- color: transparent;
- text-align: center;
- margin-right: $u-radio-wrap-margin-right;
- font-size: $u-radio-wrap-font-size;
- border-width: $u-radio-wrap-border-width;
- border-color: $u-radio-wrap-border-color;
- border-style: solid;
-
- /* #ifdef MP-TOUTIAO */
- // 头条小程序兼容性问题,需要设置行高为0,否则图标偏下
- &__icon {
- line-height: $u-radio-line-height;
- }
-
- /* #endif */
-
- &--circle {
- border-radius: $u-radio-circle-border-radius;
- }
-
- &--square {
- border-radius: $u-radio-square-border-radius;
- }
-
- &--checked {
- color: $u-radio-checked-color;
- background-color: $u-radio-checked-background-color;
- border-color: $u-radio-checked-border-color;
- }
-
- &--disabled {
- background-color: $u-radio-disabled-background-color !important;
- }
-
- &--disabled--checked {
- color: $u-radio-disabled--checked-color !important;
- }
- }
-
- &__label {
- /* #ifndef APP-NVUE */
- word-wrap: break-word;
- /* #endif */
- margin-left: $u-radio-label-margin-left;
- margin-right: $u-radio-label-margin-right;
- color: $u-radio-label-color;
- font-size: $u-radio-label-font-size;
-
- &--disabled {
- color: $u-radio-label-disabled-color;
- }
- }
- }
-</style>
diff --git a/uni_modules/uview-ui/components/u-rate/props.js b/uni_modules/uview-ui/components/u-rate/props.js
deleted file mode 100644
index 2a56350..0000000
--- a/uni_modules/uview-ui/components/u-rate/props.js
+++ /dev/null
@@ -1,69 +0,0 @@
-export default {
- props: {
- // 用于v-model双向绑定选中的星星数量
- value: {
- type: [String, Number],
- default: uni.$u.props.rate.value
- },
- // 要显示的星星数量
- count: {
- type: [String, Number],
- default: uni.$u.props.rate.count
- },
- // 是否不可选中
- disabled: {
- type: Boolean,
- default: uni.$u.props.rate.disabled
- },
- // 是否只读
- readonly: {
- type: Boolean,
- default: uni.$u.props.rate.readonly
- },
- // 星星的大小,单位px
- size: {
- type: [String, Number],
- default: uni.$u.props.rate.size
- },
- // 未选中时的颜色
- inactiveColor: {
- type: String,
- default: uni.$u.props.rate.inactiveColor
- },
- // 选中的颜色
- activeColor: {
- type: String,
- default: uni.$u.props.rate.activeColor
- },
- // 星星之间的间距,单位px
- gutter: {
- type: [String, Number],
- default: uni.$u.props.rate.gutter
- },
- // 最少能选择的星星个数
- minCount: {
- type: [String, Number],
- default: uni.$u.props.rate.minCount
- },
- // 是否允许半星
- allowHalf: {
- type: Boolean,
- default: uni.$u.props.rate.allowHalf
- },
- // 选中时的图标(星星)
- activeIcon: {
- type: String,
- default: uni.$u.props.rate.activeIcon
- },
- // 未选中时的图标(星星)
- inactiveIcon: {
- type: String,
- default: uni.$u.props.rate.inactiveIcon
- },
- // 是否可以通过滑动手势选择评分
- touchable: {
- type: Boolean,
- default: uni.$u.props.rate.touchable
- }
- }
-}
diff --git a/uni_modules/uview-ui/components/u-rate/u-rate.vue b/uni_modules/uview-ui/components/u-rate/u-rate.vue
deleted file mode 100644
index 1aa5dd0..0000000
--- a/uni_modules/uview-ui/components/u-rate/u-rate.vue
+++ /dev/null
@@ -1,306 +0,0 @@
-<template>
- <view
- class="u-rate"
- :id="elId"
- ref="u-rate"
- :style="[$u.addStyle(customStyle)]"
- >
- <view
- class="u-rate__content"
- @touchmove.stop="touchMove"
- @touchend.stop="touchEnd"
- >
- <view
- class="u-rate__content__item"
- v-for="(item, index) in Number(count)"
- :key="index"
- :class="[elClass]"
- >
- <view
- class="u-rate__content__item__icon-wrap"
- ref="u-rate__content__item__icon-wrap"
- @tap.stop="clickHandler($event, index + 1)"
- >
- <u-icon
- :name="
- Math.floor(activeIndex) > index
- ? activeIcon
- : inactiveIcon
- "
- :color="
- disabled
- ? '#c8c9cc'
- : Math.floor(activeIndex) > index
- ? activeColor
- : inactiveColor
- "
- :custom-style="{
- 'padding-left': $u.addUnit(gutter / 2),
- 'padding-right': $u.addUnit(gutter / 2)
- }"
- :size="size"
- ></u-icon>
- </view>
- <view
- v-if="allowHalf"
- @tap.stop="clickHandler($event, index + 1)"
- class="u-rate__content__item__icon-wrap u-rate__content__item__icon-wrap--half"
- :style="[{
- width: $u.addUnit(rateWidth / 2),
- }]"
- ref="u-rate__content__item__icon-wrap"
- >
- <u-icon
- :name="
- Math.ceil(activeIndex) > index
- ? activeIcon
- : inactiveIcon
- "
- :color="
- disabled
- ? '#c8c9cc'
- : Math.ceil(activeIndex) > index
- ? activeColor
- : inactiveColor
- "
- :custom-style="{
- 'padding-left': $u.addUnit(gutter / 2),
- 'padding-right': $u.addUnit(gutter / 2)
- }"
- :size="size"
- ></u-icon>
- </view>
- </view>
- </view>
- </view>
-</template>
-
-<script>
- import props from './props.js';
-
- // #ifdef APP-NVUE
- const dom = weex.requireModule("dom");
- // #endif
- /**
- * rate 评分
- * @description 该组件一般用于满意度调查,星型评分的场景
- * @tutorial https://www.uviewui.com/components/rate.html
- * @property {String | Number} value 用于v-model双向绑定选中的星星数量 (默认 1 )
- * @property {String | Number} count 最多可选的星星数量 (默认 5 )
- * @property {Boolean} disabled 是否禁止用户操作 (默认 false )
- * @property {Boolean} readonly 是否只读 (默认 false )
- * @property {String | Number} size 星星的大小,单位px (默认 18 )
- * @property {String} inactiveColor 未选中星星的颜色 (默认 '#b2b2b2' )
- * @property {String} activeColor 选中的星星颜色 (默认 '#FA3534' )
- * @property {String | Number} gutter 星星之间的距离 (默认 4 )
- * @property {String | Number} minCount 最少选中星星的个数 (默认 1 )
- * @property {Boolean} allowHalf 是否允许半星选择 (默认 false )
- * @property {String} activeIcon 选中时的图标名,只能为uView的内置图标 (默认 'star-fill' )
- * @property {String} inactiveIcon 未选中时的图标名,只能为uView的内置图标 (默认 'star' )
- * @property {Boolean} touchable 是否可以通过滑动手势选择评分 (默认 'true' )
- * @property {Object} customStyle 组件的样式,对象形式
- * @event {Function} change 选中的星星发生变化时触发
- * @example <u-rate :count="count" :value="2"></u-rate>
- */
- export default {
- name: "u-rate",
- mixins: [uni.$u.mpMixin, uni.$u.mixin,props],
- data() {
- return {
- // 生成一个唯一id,否则一个页面多个评分组件,会造成冲突
- elId: uni.$u.guid(),
- elClass: uni.$u.guid(),
- rateBoxLeft: 0, // 评分盒子左边到屏幕左边的距离,用于滑动选择时计算距离
- activeIndex: this.value,
- rateWidth: 0, // 每个星星的宽度
- // 标识是否正在滑动,由于iOS事件上touch比click先触发,导致快速滑动结束后,接着触发click,导致事件混乱而出错
- moving: false,
- };
- },
- watch: {
- value(val) {
- this.activeIndex = val;
- },
- activeIndex: 'emitEvent'
- },
- methods: {
- init() {
- uni.$u.sleep().then(() => {
- this.getRateItemRect();
- this.getRateIconWrapRect();
- })
- },
- // 获取评分组件盒子的布局信息
- async getRateItemRect() {
- await uni.$u.sleep();
- // uView封装的获取节点的方法,详见文档
- // #ifndef APP-NVUE
- this.$uGetRect("#" + this.elId).then((res) => {
- this.rateBoxLeft = res.left;
- });
- // #endif
- // #ifdef APP-NVUE
- dom.getComponentRect(this.$refs["u-rate"], (res) => {
- this.rateBoxLeft = res.size.left;
- });
- // #endif
- },
- // 获取单个星星的尺寸
- getRateIconWrapRect() {
- // uView封装的获取节点的方法,详见文档
- // #ifndef APP-NVUE
- this.$uGetRect("." + this.elClass).then((res) => {
- this.rateWidth = res.width;
- });
- // #endif
- // #ifdef APP-NVUE
- dom.getComponentRect(
- this.$refs["u-rate__content__item__icon-wrap"][0],
- (res) => {
- this.rateWidth = res.size.width;
- }
- );
- // #endif
- },
- // 手指滑动
- touchMove(e) {
- // 如果禁止通过手动滑动选择,返回
- if (!this.touchable) {
- return;
- }
- this.preventEvent(e);
- const x = e.changedTouches[0].pageX;
- this.getActiveIndex(x);
- },
- // 停止滑动
- touchEnd(e) {
- // 如果禁止通过手动滑动选择,返回
- if (!this.touchable) {
- return;
- }
- this.preventEvent(e);
- const x = e.changedTouches[0].pageX;
- this.getActiveIndex(x);
- },
- // 通过点击,直接选中
- clickHandler(e, index) {
- // ios上,moving状态取消事件触发
- if (uni.$u.os() === "ios" && this.moving) {
- return;
- }
- this.preventEvent(e);
- let x = 0;
- // 点击时,在nvue上,无法获得点击的坐标,所以无法实现点击半星选择
- // #ifndef APP-NVUE
- x = e.changedTouches[0].pageX;
- // #endif
- // #ifdef APP-NVUE
- // nvue下,无法通过点击获得坐标信息,这里通过元素的位置尺寸值模拟坐标
- x = index * this.rateWidth + this.rateBoxLeft;
- // #endif
- this.getActiveIndex(x,true);
- },
- // 发出事件
- emitEvent() {
- // 发出change事件
- this.$emit("change", this.activeIndex);
- // 同时修改双向绑定的value的值
- this.$emit("input", this.activeIndex);
- },
- // 获取当前激活的评分图标
- getActiveIndex(x,isClick = false) {
- if (this.disabled || this.readonly) {
- return;
- }
- // 判断当前操作的点的x坐标值,是否在允许的边界范围内
- const allRateWidth = this.rateWidth * this.count + this.rateBoxLeft;
- // 如果小于第一个图标的左边界,设置为最小值,如果大于所有图标的宽度,则设置为最大值
- x = uni.$u.range(this.rateBoxLeft, allRateWidth, x) - this.rateBoxLeft
- // 滑动点相对于评分盒子左边的距离
- const distance = x;
- // 滑动的距离,相当于多少颗星星
- let index;
- // 判断是否允许半星
- if (this.allowHalf) {
- index = Math.floor(distance / this.rateWidth);
- // 取余,判断小数的区间范围
- const decimal = distance % this.rateWidth;
- if (decimal <= this.rateWidth / 2 && decimal > 0) {
- index += 0.5;
- } else if (decimal > this.rateWidth / 2) {
- index++;
- }
- } else {
- index = Math.floor(distance / this.rateWidth);
- // 取余,判断小数的区间范围
- const decimal = distance % this.rateWidth;
- // 非半星时,只有超过了图标的一半距离,才认为是选择了这颗星
- if (isClick){
- if (decimal > 0) index++;
- } else {
- if (decimal > this.rateWidth / 2) index++;
- }
-
- }
- this.activeIndex = Math.min(index, this.count);
- // 对最少颗星星的限制
- if (this.activeIndex < this.minCount) {
- this.activeIndex = this.minCount;
- }
-
- // 设置延时为了让click事件在touchmove之前触发
- setTimeout(() => {
- this.moving = true;
- }, 10);
- // 一定时间后,取消标识为移动中状态,是为了让click事件无效
- setTimeout(() => {
- this.moving = false;
- }, 10);
- },
- },
- mounted() {
- this.init();
- },
- };
-</script>
-
-<style lang="scss" scoped>
-@import "../../libs/css/components.scss";
-$u-rate-margin: 0 !default;
-$u-rate-padding: 0 !default;
-$u-rate-item-icon-wrap-half-top: 0 !default;
-$u-rate-item-icon-wrap-half-left: 0 !default;
-
-.u-rate {
- @include flex;
- align-items: center;
- margin: $u-rate-margin;
- padding: $u-rate-padding;
- /* #ifndef APP-NVUE */
- touch-action: none;
- /* #endif */
-
- &__content {
- @include flex;
-
- &__item {
- position: relative;
-
- &__icon-wrap {
- &--half {
- position: absolute;
- overflow: hidden;
- top: $u-rate-item-icon-wrap-half-top;
- left: $u-rate-item-icon-wrap-half-left;
- }
- }
- }
- }
-}
-
-.u-icon {
- /* #ifndef APP-NVUE */
- box-sizing: border-box;
- /* #endif */
-}
-</style>
diff --git a/uni_modules/uview-ui/components/u-read-more/props.js b/uni_modules/uview-ui/components/u-read-more/props.js
deleted file mode 100644
index b444e74..0000000
--- a/uni_modules/uview-ui/components/u-read-more/props.js
+++ /dev/null
@@ -1,61 +0,0 @@
-export default {
- props: {
- // 默认的显示占位高度
- showHeight: {
- type: [String, Number],
- default: uni.$u.props.readMore.showHeight
- },
- // 展开后是否显示"收起"按钮
- toggle: {
- type: Boolean,
- default: uni.$u.props.readMore.toggle
- },
- // 关闭时的提示文字
- closeText: {
- type: String,
- default: uni.$u.props.readMore.closeText
- },
- // 展开时的提示文字
- openText: {
- type: String,
- default: uni.$u.props.readMore.openText
- },
- // 提示的文字颜色
- color: {
- type: String,
- default: uni.$u.props.readMore.color
- },
- // 提示文字的大小
- fontSize: {
- type: [String, Number],
- default: uni.$u.props.readMore.fontSize
- },
- // 是否显示阴影
- // 此参数不能写在props/readMore.js中进行默认配置,因为使用了条件编译,在外部js中
- // uni无法准确识别当前是否处于nvue还是非nvue下
- shadowStyle: {
- type: Object,
- default: () => ({
- // #ifndef APP-NVUE
- backgroundImage: 'linear-gradient(-180deg, rgba(255, 255, 255, 0) 0%, #fff 80%)',
- // #endif
- // #ifdef APP-NVUE
- // nvue上不支持设置复杂的backgroundImage属性
- backgroundImage: 'linear-gradient(to top, #fff, rgba(255, 255, 255, 0.5))',
- // #endif
- paddingTop: '100px',
- marginTop: '-100px'
- })
- },
- // 段落首行缩进的字符个数
- textIndent: {
- type: String,
- default: uni.$u.props.readMore.textIndent
- },
- // open和close事件时,将此参数返回在回调参数中
- name: {
- type: [String, Number],
- default: uni.$u.props.readMore.name
- }
- }
-}
diff --git a/uni_modules/uview-ui/components/u-read-more/u-read-more.vue b/uni_modules/uview-ui/components/u-read-more/u-read-more.vue
deleted file mode 100644
index 9104e40..0000000
--- a/uni_modules/uview-ui/components/u-read-more/u-read-more.vue
+++ /dev/null
@@ -1,157 +0,0 @@
-<template>
- <view class="u-read-more">
- <view
- class="u-read-more__content"
- :style="{
- height: isLongContent && status === 'close' ? $u.addUnit(showHeight) : $u.addUnit(contentHeight),
- textIndent: textIndent
- }"
- >
- <view
- class="u-read-more__content__inner"
- ref="u-read-more__content__inner"
- :class="[elId]"
- >
- <slot></slot>
- </view>
- </view>
- <view
- class="u-read-more__toggle"
- :style="[innerShadowStyle]"
- v-if="isLongContent"
- >
- <slot name="toggle">
- <view
- class="u-read-more__toggle__text"
- @tap="toggleReadMore"
- >
- <u--text
- :text="status === 'close' ? closeText : openText"
- :color="color"
- :size="fontSize"
- :lineHeight="fontSize"
- margin="0 5px 0 0"
- ></u--text>
- <view class="u-read-more__toggle__icon">
- <u-icon
- :color="color"
- :size="fontSize + 2"
- :name="status === 'close' ? 'arrow-down' : 'arrow-up'"
- ></u-icon>
- </view>
- </view>
- </slot>
- </view>
- </view>
-</template>
-
-<script>
- // #ifdef APP-NVUE
- const dom = uni.requireNativePlugin('dom')
- // #endif
- import props from './props.js';
- /**
- * readMore 阅读更多
- * @description 该组件一般用于内容较长,预先收起一部分,点击展开全部内容的场景。
- * @tutorial https://www.uviewui.com/components/readMore.html
- * @property {String | Number} showHeight 内容超出此高度才会显示展开全文按钮,单位px(默认 400 )
- * @property {Boolean} toggle 展开后是否显示收起按钮(默认 false )
- * @property {String} closeText 关闭时的提示文字(默认 '展开阅读全文' )
- * @property {String} openText 展开时的提示文字(默认 '收起' )
- * @property {String} color 提示文字的颜色(默认 '#2979ff' )
- * @property {String | Number} fontSize 提示文字的大小,单位px (默认 14 )
- * @property {Object} shadowStyle 显示阴影的样式
- * @property {String} textIndent 段落首行缩进的字符个数 (默认 '2em' )
- * @property {String | Number} name 用于在 open 和 close 事件中当作回调参数返回
- * @event {Function} open 内容被展开时触发
- * @event {Function} close 内容被收起时触发
- * @example <u-read-more><rich-text :nodes="content"></rich-text></u-read-more>
- */
- export default {
- name: 'u-read-more',
- mixins: [uni.$u.mpMixin, uni.$u.mixin, props],
- data() {
- return {
- isLongContent: false, // 是否需要隐藏一部分内容
- status: 'close', // 当前隐藏与显示的状态,close-收起状态,open-展开状态
- elId: uni.$u.guid(), // 生成唯一class
- contentHeight: 100, // 内容高度
- }
- },
- computed: {
- // 展开后无需阴影,收起时才需要阴影样式
- innerShadowStyle() {
- if (this.status === 'open') return {}
- else return this.shadowStyle
- }
- },
- mounted() {
- this.init()
- },
- methods: {
- async init() {
- this.getContentHeight().then(height => {
- this.contentHeight = height
- // 判断高度,如果真实内容高度大于占位高度,则显示收起与展开的控制按钮
- if (height > uni.$u.getPx(this.showHeight)) {
- this.isLongContent = true
- this.status = 'close'
- }
- })
- },
- // 获取内容的高度
- async getContentHeight() {
- // 延时一定时间再获取节点
- await uni.$u.sleep(30)
- return new Promise(resolve => {
- // #ifndef APP-NVUE
- this.$uGetRect('.' + this.elId).then(res => {
- resolve(res.height)
- })
- // #endif
-
- // #ifdef APP-NVUE
- const ref = this.$refs['u-read-more__content__inner']
- dom.getComponentRect(ref, (res) => {
- resolve(res.size.height)
- })
- // #endif
- })
- },
- // 展开或者收起
- toggleReadMore() {
- this.status = this.status === 'close' ? 'open' : 'close'
- // 如果toggle为false,隐藏"收起"部分的内容
- if (this.toggle == false) this.isLongContent = false
- // 发出打开或者收齐的事件
- this.$emit(this.status, this.name)
- }
- }
- }
-</script>
-
-<style lang="scss" scoped>
-@import "../../libs/css/components.scss";
-
-.u-read-more {
-
- &__content {
- overflow: hidden;
- color: $u-content-color;
- font-size: 15px;
- text-align: left;
- }
-
- &__toggle {
- @include flex;
- justify-content: center;
-
- &__text {
- @include flex;
- align-items: center;
- justify-content: center;
- margin-top: 5px;
- }
- }
-}
-</style>
diff --git a/uni_modules/uview-ui/components/u-row-notice/props.js b/uni_modules/uview-ui/components/u-row-notice/props.js
deleted file mode 100644
index 107bd70..0000000
--- a/uni_modules/uview-ui/components/u-row-notice/props.js
+++ /dev/null
@@ -1,39 +0,0 @@
-export default {
- props: {
- // 显示的内容,字符串
- text: {
- type: String,
- default: uni.$u.props.rowNotice.text
- },
- // 是否显示左侧的音量图标
- icon: {
- type: String,
- default: uni.$u.props.rowNotice.icon
- },
- // 通告模式,link-显示右箭头,closable-显示右侧关闭图标
- mode: {
- type: String,
- default: uni.$u.props.rowNotice.mode
- },
- // 文字颜色,各图标也会使用文字颜色
- color: {
- type: String,
- default: uni.$u.props.rowNotice.color
- },
- // 背景颜色
- bgColor: {
- type: String,
- default: uni.$u.props.rowNotice.bgColor
- },
- // 字体大小,单位px
- fontSize: {
- type: [String, Number],
- default: uni.$u.props.rowNotice.fontSize
- },
- // 水平滚动时的滚动速度,即每秒滚动多少px(rpx),这有利于控制文字无论多少时,都能有一个恒定的速度
- speed: {
- type: [String, Number],
- default: uni.$u.props.rowNotice.speed
- }
- }
-}
diff --git a/uni_modules/uview-ui/components/u-row-notice/u-row-notice.vue b/uni_modules/uview-ui/components/u-row-notice/u-row-notice.vue
deleted file mode 100644
index 20f43c3..0000000
--- a/uni_modules/uview-ui/components/u-row-notice/u-row-notice.vue
+++ /dev/null
@@ -1,330 +0,0 @@
-<template>
- <view
- class="u-notice"
- @tap="clickHandler"
- >
- <slot name="icon">
- <view
- class="u-notice__left-icon"
- v-if="icon"
- >
- <u-icon
- :name="icon"
- :color="color"
- size="19"
- ></u-icon>
- </view>
- </slot>
- <view
- class="u-notice__content"
- ref="u-notice__content"
- >
- <view
- ref="u-notice__content__text"
- class="u-notice__content__text"
- :style="[animationStyle]"
- >
- <text
- v-for="(item, index) in innerText"
- :key="index"
- :style="[textStyle]"
- >{{item}}</text>
- </view>
- </view>
- <view
- class="u-notice__right-icon"
- v-if="['link', 'closable'].includes(mode)"
- >
- <u-icon
- v-if="mode === 'link'"
- name="arrow-right"
- :size="17"
- :color="color"
- ></u-icon>
- <u-icon
- v-if="mode === 'closable'"
- @click="close"
- name="close"
- :size="16"
- :color="color"
- ></u-icon>
- </view>
- </view>
-</template>
-<script>
- import props from './props.js';
- // #ifdef APP-NVUE
- const animation = uni.requireNativePlugin('animation')
- const dom = uni.requireNativePlugin('dom')
- // #endif
- /**
- * RowNotice 滚动通知中的水平滚动模式
- * @description 水平滚动
- * @tutorial https://www.uviewui.com/components/noticeBar.html
- * @property {String | Number} text 显示的内容,字符串
- * @property {String} icon 是否显示左侧的音量图标 (默认 'volume' )
- * @property {String} mode 通告模式,link-显示右箭头,closable-显示右侧关闭图标
- * @property {String} color 文字颜色,各图标也会使用文字颜色 (默认 '#f9ae3d' )
- * @property {String} bgColor 背景颜色 (默认 ''#fdf6ec' )
- * @property {String | Number} fontSize 字体大小,单位px (默认 14 )
- * @property {String | Number} speed 水平滚动时的滚动速度,即每秒滚动多少px(rpx),这有利于控制文字无论多少时,都能有一个恒定的速度 (默认 80 )
- *
- * @event {Function} click 点击通告文字触发
- * @event {Function} close 点击右侧关闭图标触发
- * @example
- */
- export default {
- name: 'u-row-notice',
- mixins: [uni.$u.mpMixin, uni.$u.mixin,props],
- data() {
- return {
- animationDuration: '0', // 动画执行时间
- animationPlayState: 'paused', // 动画的开始和结束执行
- // nvue下,内容发生变化,导致滚动宽度也变化,需要标志为是否需要重新计算宽度
- // 不能在内容变化时直接重新计算,因为nvue的animation模块上一次的滚动不是刚好结束,会有影响
- nvueInit: true,
- show: true
- };
- },
- watch: {
- text: {
- immediate: true,
- handler(newValue, oldValue) {
- // #ifdef APP-NVUE
- this.nvueInit = true
- // #endif
- // #ifndef APP-NVUE
- this.vue()
- // #endif
-
- if(!uni.$u.test.string(newValue)) {
- uni.$u.error('noticebar组件direction为row时,要求text参数为字符串形式')
- }
- }
- },
- fontSize() {
- // #ifdef APP-NVUE
- this.nvueInit = true
- // #endif
- // #ifndef APP-NVUE
- this.vue()
- // #endif
- },
- speed() {
- // #ifdef APP-NVUE
- this.nvueInit = true
- // #endif
- // #ifndef APP-NVUE
- this.vue()
- // #endif
- }
- },
- computed: {
- // 文字内容的样式
- textStyle() {
- let style = {}
- style.color = this.color
- style.fontSize = uni.$u.addUnit(this.fontSize)
- return style
- },
- animationStyle() {
- let style = {}
- style.animationDuration = this.animationDuration
- style.animationPlayState = this.animationPlayState
- return style
- },
- // 内部对用户传入的数据进一步分割,放到多个text标签循环,否则如果用户传入的字符串很长(100个字符以上)
- // 放在一个text标签中进行滚动,在低端安卓机上,动画可能会出现抖动现象,需要分割到多个text中可解决此问题
- innerText() {
- let result = [],
- // 每组text标签的字符长度
- len = 20
- const textArr = this.text.split('')
- for (let i = 0; i < textArr.length; i += len) {
- // 对拆分的后的text进行slice分割,得到的为数组再进行join拼接为字符串
- result.push(textArr.slice(i, i + len).join(''))
- }
- return result
- }
- },
- mounted() {
- // #ifdef APP-PLUS
- // 在APP上(含nvue),监听当前webview是否处于隐藏状态(进入下一页时即为hide状态)
- // 如果webivew隐藏了,为了节省性能的损耗,应停止动画的执行,同时也是为了保持进入下一页返回后,滚动位置保持不变
- var pages = getCurrentPages()
- var page = pages[pages.length - 1]
- var currentWebview = page.$getAppWebview()
- currentWebview.addEventListener('hide', () => {
- this.webviewHide = true
- })
- currentWebview.addEventListener('show', () => {
- this.webviewHide = false
- })
- // #endif
-
- this.init()
- },
- methods: {
- init() {
- // #ifdef APP-NVUE
- this.nvue()
- // #endif
-
- // #ifndef APP-NVUE
- this.vue()
- // #endif
-
- if(!uni.$u.test.string(this.text)) {
- uni.$u.error('noticebar组件direction为row时,要求text参数为字符串形式')
- }
- },
- // vue版处理
- async vue() {
- // #ifndef APP-NVUE
- let boxWidth = 0,
- textWidth = 0
- // 进行一定的延时
- await uni.$u.sleep()
- // 查询盒子和文字的宽度
- textWidth = (await this.$uGetRect('.u-notice__content__text')).width
- boxWidth = (await this.$uGetRect('.u-notice__content')).width
- // 根据t=s/v(时间=路程/速度),这里为何不需要加上#u-notice-box的宽度,因为中设置了.u-notice-content样式中设置了padding-left: 100%
- // 恰巧计算出来的结果中已经包含了#u-notice-box的宽度
- this.animationDuration = `${textWidth / uni.$u.getPx(this.speed)}s`
- // 这里必须这样开始动画,否则在APP上动画速度不会改变
- this.animationPlayState = 'paused'
- setTimeout(() => {
- this.animationPlayState = 'running'
- }, 10)
- // #endif
- },
- // nvue版处理
- async nvue() {
- // #ifdef APP-NVUE
- this.nvueInit = false
- let boxWidth = 0,
- textWidth = 0
- // 进行一定的延时
- await uni.$u.sleep()
- // 查询盒子和文字的宽度
- textWidth = (await this.getNvueRect('u-notice__content__text')).width
- boxWidth = (await this.getNvueRect('u-notice__content')).width
- // 将文字移动到盒子的右边沿,之所以需要这么做,是因为nvue不支持100%单位,否则可以通过css设置
- animation.transition(this.$refs['u-notice__content__text'], {
- styles: {
- transform: `translateX(${boxWidth}px)`
- },
- }, () => {
- // 如果非禁止动画,则开始滚动
- !this.stopAnimation && this.loopAnimation(textWidth, boxWidth)
- });
- // #endif
- },
- loopAnimation(textWidth, boxWidth) {
- // #ifdef APP-NVUE
- animation.transition(this.$refs['u-notice__content__text'], {
- styles: {
- // 目标移动终点为-textWidth,也即当文字的最右边贴到盒子的左边框的位置
- transform: `translateX(-${textWidth}px)`
- },
- // 滚动时间的计算为,时间 = 路程(boxWidth + textWidth) / 速度,最后转为毫秒
- duration: (boxWidth + textWidth) / uni.$u.getPx(this.speed) * 1000,
- delay: 10
- }, () => {
- animation.transition(this.$refs['u-notice__content__text'], {
- styles: {
- // 重新将文字移动到盒子的右边沿
- transform: `translateX(${this.stopAnimation ? 0 : boxWidth}px)`
- },
- }, () => {
- // 如果非禁止动画,则继续下一轮滚动
- if (!this.stopAnimation) {
- // 判断是否需要初始化计算尺寸
- if (this.nvueInit) {
- this.nvue()
- } else {
- this.loopAnimation(textWidth, boxWidth)
- }
- }
- });
- })
- // #endif
- },
- getNvueRect(el) {
- // #ifdef APP-NVUE
- // 返回一个promise
- return new Promise(resolve => {
- dom.getComponentRect(this.$refs[el], (res) => {
- resolve(res.size)
- })
- })
- // #endif
- },
- // 点击通告栏
- clickHandler(index) {
- this.$emit('click')
- },
- // 点击右侧按钮,需要判断点击的是关闭图标还是箭头图标
- close() {
- this.$emit('close')
- }
- },
- // #ifdef APP-NVUE
- beforeDestroy() {
- this.stopAnimation = true
- },
- // #endif
- };
-</script>
-
-<style lang="scss" scoped>
- @import "../../libs/css/components.scss";
-
- .u-notice {
- @include flex;
- align-items: center;
- justify-content: space-between;
-
- &__left-icon {
- align-items: center;
- margin-right: 5px;
- }
-
- &__right-icon {
- margin-left: 5px;
- align-items: center;
- }
-
- &__content {
- text-align: right;
- flex: 1;
- @include flex;
- flex-wrap: nowrap;
- overflow: hidden;
-
- &__text {
- font-size: 14px;
- color: $u-warning;
- /* #ifndef APP-NVUE */
- // 这一句很重要,为了能让滚动左右连接起来
- padding-left: 100%;
- word-break: keep-all;
- white-space: nowrap;
- animation: u-loop-animation 10s linear infinite both;
- /* #endif */
- @include flex(row);
- }
- }
-
- }
-
- @keyframes u-loop-animation {
- 0% {
- transform: translate3d(0, 0, 0);
- }
-
- 100% {
- transform: translate3d(-100%, 0, 0);
- }
- }
-</style>
diff --git a/uni_modules/uview-ui/components/u-row/props.js b/uni_modules/uview-ui/components/u-row/props.js
deleted file mode 100644
index 4b71b87..0000000
--- a/uni_modules/uview-ui/components/u-row/props.js
+++ /dev/null
@@ -1,19 +0,0 @@
-export default {
- props: {
- // 给col添加间距,左右边距各占一半
- gutter: {
- type: [String, Number],
- default: uni.$u.props.row.gutter
- },
- // 水平排列方式,可选值为`start`(或`flex-start`)、`end`(或`flex-end`)、`center`、`around`(或`space-around`)、`between`(或`space-between`)
- justify: {
- type: String,
- default: uni.$u.props.row.justify
- },
- // 垂直对齐方式,可选值为top、center、bottom
- align: {
- type: String,
- default: uni.$u.props.row.align
- }
- }
-}
diff --git a/uni_modules/uview-ui/components/u-row/u-row.vue b/uni_modules/uview-ui/components/u-row/u-row.vue
deleted file mode 100644
index e608fc5..0000000
--- a/uni_modules/uview-ui/components/u-row/u-row.vue
+++ /dev/null
@@ -1,93 +0,0 @@
-<template>
- <view
- class="u-row"
- ref="u-row"
- :style="[rowStyle]"
- @tap="clickHandler"
- >
- <slot />
- </view>
-</template>
-
-<script>
- // #ifdef APP-NVUE
- const dom = uni.requireNativePlugin('dom')
- // #endif
- import props from './props.js';
- /**
- * Row 栅格系统中的行
- * @description 通过基础的 12 分栏,迅速简便地创建布局
- * @tutorial https://www.uviewui.com/components/layout.html
- * @property {String | Number} gutter 栅格间隔,左右各为此值的一半,单位px (默认 0 )
- * @property {String} justify 水平排列方式(微信小程序暂不支持) 可选值为`start`(或`flex-start`)、`end`(或`flex-end`)、`center`、`around`(或`space-around`)、`between`(或`space-between`) (默认 'start' )
- * @property {String} align 垂直排列方式 (默认 'center' )
- * @property {Object} customStyle 定义需要用到的外部样式
- *
- * @event {Function} click row被点击
- * @example <u-row justify="space-between" customStyle="margin-bottom: 10px"></u-row>
- */
- export default {
- name: "u-row",
- mixins: [uni.$u.mpMixin, uni.$u.mixin, props],
- data() {
- return {
-
- }
- },
- computed: {
- uJustify() {
- if (this.justify == 'end' || this.justify == 'start') return 'flex-' + this.justify
- else if (this.justify == 'around' || this.justify == 'between') return 'space-' + this.justify
- else return this.justify
- },
- uAlignItem() {
- if (this.align == 'top') return 'flex-start'
- if (this.align == 'bottom') return 'flex-end'
- else return this.align
- },
- rowStyle() {
- const style = {
- alignItems: this.uAlignItem,
- justifyContent: this.uJustify
- }
- // 通过给u-row左右两边的负外边距,消除u-col在有gutter时,第一个和最后一个元素的左内边距和右内边距造成的影响
- if(this.gutter) {
- style.marginLeft = uni.$u.addUnit(-Number(this.gutter)/2)
- style.marginRight = uni.$u.addUnit(-Number(this.gutter)/2)
- }
- return uni.$u.deepMerge(style, uni.$u.addStyle(this.customStyle))
- }
- },
- methods: {
- clickHandler(e) {
- this.$emit('click')
- },
- async getComponentWidth() {
- // 延时一定时间,以确保节点渲染完成
- await uni.$u.sleep()
- return new Promise(resolve => {
- // uView封装的获取节点的方法,详见文档
- // #ifndef APP-NVUE
- this.$uGetRect('.u-row').then(res => {
- resolve(res.width)
- })
- // #endif
- // #ifdef APP-NVUE
- // nvue的dom模块用于获取节点
- dom.getComponentRect(this.$refs['u-row'], (res) => {
- resolve(res.size.width)
- })
- // #endif
- })
- },
- }
- }
-</script>
-
-<style lang="scss" scoped>
- @import "../../libs/css/components.scss";
-
- .u-row {
- @include flex;
- }
-</style>
diff --git a/uni_modules/uview-ui/components/u-safe-bottom/props.js b/uni_modules/uview-ui/components/u-safe-bottom/props.js
deleted file mode 100644
index 7c11331..0000000
--- a/uni_modules/uview-ui/components/u-safe-bottom/props.js
+++ /dev/null
@@ -1,5 +0,0 @@
-export default {
- props: {
-
- }
-}
diff --git a/uni_modules/uview-ui/components/u-safe-bottom/u-safe-bottom.vue b/uni_modules/uview-ui/components/u-safe-bottom/u-safe-bottom.vue
deleted file mode 100644
index fb858ea..0000000
--- a/uni_modules/uview-ui/components/u-safe-bottom/u-safe-bottom.vue
+++ /dev/null
@@ -1,56 +0,0 @@
-<template>
- <view
- class="u-safe-bottom"
- :style="[style]"
- :class="[!isNvue && 'u-safe-area-inset-bottom']"
- >
- </view>
-</template>
-
-<script>
- import props from "./props.js";
- /**
- * SafeBottom 底部安全区
- * @description 这个适配,主要是针对IPhone X等一些底部带指示条的机型,指示条的操作区域与页面底部存在重合,容易导致用户误操作,因此我们需要针对这些机型进行底部安全区适配。
- * @tutorial https://www.uviewui.com/components/safeAreaInset.html
- * @property {type} prop_name
- * @property {Object} customStyle 定义需要用到的外部样式
- *
- * @event {Function()}
- * @example <u-status-bar></u-status-bar>
- */
- export default {
- name: "u-safe-bottom",
- mixins: [uni.$u.mpMixin, uni.$u.mixin, props],
- data() {
- return {
- safeAreaBottomHeight: 0,
- isNvue: false,
- };
- },
- computed: {
- style() {
- const style = {};
- // #ifdef APP-NVUE
- // nvue下,高度使用js计算填充
- style.height = uni.$u.addUnit(uni.$u.sys().safeAreaInsets.bottom, 'px');
- // #endif
- return uni.$u.deepMerge(style, uni.$u.addStyle(this.customStyle));
- },
- },
- mounted() {
- // #ifdef APP-NVUE
- // 标识为是否nvue
- this.isNvue = true;
- // #endif
- },
- };
-</script>
-
-<style lang="scss" scoped>
- .u-safe-bottom {
- /* #ifndef APP-NVUE */
- width: 100%;
- /* #endif */
- }
-</style>
diff --git a/uni_modules/uview-ui/components/u-scroll-list/nvue.js b/uni_modules/uview-ui/components/u-scroll-list/nvue.js
deleted file mode 100644
index 94bb056..0000000
--- a/uni_modules/uview-ui/components/u-scroll-list/nvue.js
+++ /dev/null
@@ -1,28 +0,0 @@
-// 引入bindingx,此库类似于微信小程序wxs,目的是让js运行在视图层,减少视图层和逻辑层的通信折损
-const BindingX = uni.requireNativePlugin('bindingx')
-
-export default {
- methods: {
- // 此处不写注释,请自行体会
- nvueScrollHandler(e) {
- const anchor = this.$refs['u-scroll-list__scroll-view'].ref
- const element = this.$refs['u-scroll-list__indicator__line__bar'].ref
- const scrollLeft = e.contentOffset.x
- const contentSize = e.contentSize.width
- const { scrollWidth } = this
- const barAllMoveWidth = this.indicatorWidth - this.indicatorBarWidth
- // 在安卓和iOS上,需要除的倍数不一样,iOS需要除以2
- const actionNum = uni.$u.os() === 'ios' ? 2 : 1
- const expression = `(x / ${actionNum}) / ${contentSize - scrollWidth} * ${barAllMoveWidth}`
- BindingX.bind({
- anchor,
- eventType: 'scroll',
- props: [{
- element,
- property: 'transform.translateX',
- expression
- }]
- })
- }
- }
-}
diff --git a/uni_modules/uview-ui/components/u-scroll-list/props.js b/uni_modules/uview-ui/components/u-scroll-list/props.js
deleted file mode 100644
index 765be54..0000000
--- a/uni_modules/uview-ui/components/u-scroll-list/props.js
+++ /dev/null
@@ -1,34 +0,0 @@
-export default {
- props: {
- // 指示器的整体宽度
- indicatorWidth: {
- type: [String, Number],
- default: uni.$u.props.scrollList.indicatorWidth
- },
- // 滑块的宽度
- indicatorBarWidth: {
- type: [String, Number],
- default: uni.$u.props.scrollList.indicatorBarWidth
- },
- // 是否显示面板指示器
- indicator: {
- type: Boolean,
- default: uni.$u.props.scrollList.indicator
- },
- // 指示器非激活颜色
- indicatorColor: {
- type: String,
- default: uni.$u.props.scrollList.indicatorColor
- },
- // 指示器的激活颜色
- indicatorActiveColor: {
- type: String,
- default: uni.$u.props.scrollList.indicatorActiveColor
- },
- // 指示器样式,可通过bottom,left,right进行定位
- indicatorStyle: {
- type: [String, Object],
- default: uni.$u.props.scrollList.indicatorStyle
- }
- }
-}
diff --git a/uni_modules/uview-ui/components/u-scroll-list/scrollWxs.wxs b/uni_modules/uview-ui/components/u-scroll-list/scrollWxs.wxs
deleted file mode 100644
index ce94f1d..0000000
--- a/uni_modules/uview-ui/components/u-scroll-list/scrollWxs.wxs
+++ /dev/null
@@ -1,50 +0,0 @@
-function scroll(event, ownerInstance) {
- // detail中含有scroll-view的信息,比如scroll-view的实际宽度,当前时间点scroll-view的移动距离等
- var detail = event.detail
- var scrollWidth = detail.scrollWidth
- var scrollLeft = detail.scrollLeft
- // 获取当前组件的dataset,说白了就是祸国殃民的腾xun搞出来的垃ji
- var dataset = event.currentTarget.dataset
- // 此为scroll-view外部包裹元素的宽度
- // 某些HX版本(3.1.18),发现view元素中大写的data-scrollWidth,在wxs中,变成了全部小写,所以这里需要特别处理
- var scrollComponentWidth = dataset.scrollWidth || dataset.scrollwidth || 0
- // 指示器和滑块的宽度
- var indicatorWidth = dataset.indicatorWidth || dataset.indicatorwidth || 0
- var barWidth = dataset.barWidth || dataset.barwidth || 0
- // 此处的计算理由为:scroll-view的滚动距离与目标滚动距离(scroll-view的实际宽度减去包裹元素的宽度)之比,等于滑块当前移动距离与总需
- // 滑动距离(指示器的总宽度减去滑块宽度)的比值
- var x = scrollLeft / (scrollWidth - scrollComponentWidth) * (indicatorWidth - barWidth)
- setBarStyle(ownerInstance, x)
-}
-
-// 由于webview的无能,无法保证scroll-view在滑动过程中,一直触发scroll事件,会导致
-// 无法监听到某些滚动值,当在首尾临界值无法监听到时,这是致命的,因为错失这些值会导致滑块无法回到起点和终点
-// 所以这里需要对临界值做监听并处理
-function scrolltolower(event, ownerInstance) {
- ownerInstance.callMethod('scrollEvent', 'right')
- // 获取当前组件的dataset
- var dataset = event.currentTarget.dataset
- // 指示器和滑块的宽度
- var indicatorWidth = dataset.indicatorWidth || dataset.indicatorwidth || 0
- var barWidth = dataset.barWidth || dataset.barwidth || 0
- // scroll-view滚动到右边终点时,将滑块也设置为到右边的终点,它所需移动的距离为:指示器宽度 - 滑块宽度
- setBarStyle(ownerInstance, indicatorWidth - barWidth)
-}
-
-function scrolltoupper(event, ownerInstance) {
- ownerInstance.callMethod('scrollEvent', 'left')
- // 滚动到左边时,将滑块设置为0的偏移距离,回到起点
- setBarStyle(ownerInstance, 0)
-}
-
-function setBarStyle(ownerInstance, x) {
- ownerInstance.selectComponent('.u-scroll-list__indicator__line__bar') && ownerInstance.selectComponent('.u-scroll-list__indicator__line__bar').setStyle({
- transform: 'translateX(' + x + 'px)'
- })
-}
-
-module.exports = {
- scroll: scroll,
- scrolltolower: scrolltolower,
- scrolltoupper: scrolltoupper
-}
diff --git a/uni_modules/uview-ui/components/u-scroll-list/u-scroll-list.vue b/uni_modules/uview-ui/components/u-scroll-list/u-scroll-list.vue
deleted file mode 100644
index 4fe885a..0000000
--- a/uni_modules/uview-ui/components/u-scroll-list/u-scroll-list.vue
+++ /dev/null
@@ -1,224 +0,0 @@
-<template>
- <view
- class="u-scroll-list"
- ref="u-scroll-list"
- >
- <!-- #ifdef APP-NVUE -->
- <!-- nvue使用bindingX实现,以得到更好的性能 -->
- <scroller
- class="u-scroll-list__scroll-view"
- ref="u-scroll-list__scroll-view"
- scroll-direction="horizontal"
- :show-scrollbar="false"
- :offset-accuracy="1"
- @scroll="nvueScrollHandler"
- >
- <view class="u-scroll-list__scroll-view__content">
- <slot />
- </view>
- </scroller>
- <!-- #endif -->
- <!-- #ifndef APP-NVUE -->
- <!-- #ifdef MP-WEIXIN || APP-VUE || H5 || MP-QQ -->
- <!-- 以上平台,支持wxs -->
- <scroll-view
- class="u-scroll-list__scroll-view"
- scroll-x
- @scroll="wxs.scroll"
- @scrolltoupper="wxs.scrolltoupper"
- @scrolltolower="wxs.scrolltolower"
- :data-scrollWidth="scrollWidth"
- :data-barWidth="$u.getPx(indicatorBarWidth)"
- :data-indicatorWidth="$u.getPx(indicatorWidth)"
- :show-scrollbar="false"
- :upper-threshold="0"
- :lower-threshold="0"
- >
- <!-- #endif -->
- <!-- #ifndef APP-NVUE || MP-WEIXIN || H5 || APP-VUE || MP-QQ -->
- <!-- 非以上平台,只能使用普通js实现 -->
- <scroll-view
- class="u-scroll-list__scroll-view"
- scroll-x
- @scroll="scrollHandler"
- @scrolltoupper="scrolltoupperHandler"
- @scrolltolower="scrolltolowerHandler"
- :show-scrollbar="false"
- :upper-threshold="0"
- :lower-threshold="0"
- >
- <!-- #endif -->
- <view class="u-scroll-list__scroll-view__content">
- <slot />
- </view>
- </scroll-view>
- <!-- #endif -->
- <view
- class="u-scroll-list__indicator"
- v-if="indicator"
- :style="[$u.addStyle(indicatorStyle)]"
- >
- <view
- class="u-scroll-list__indicator__line"
- :style="[lineStyle]"
- >
- <view
- class="u-scroll-list__indicator__line__bar"
- :style="[barStyle]"
- ref="u-scroll-list__indicator__line__bar"
- ></view>
- </view>
- </view>
- </view>
-</template>
-
-<script
- src="./scrollWxs.wxs"
- module="wxs"
- lang="wxs"
-></script>
-
-<script>
-/**
- * scrollList 横向滚动列表
- * @description 该组件一般用于同时展示多个商品、分类的场景,也可以完成左右滑动的列表。
- * @tutorial https://www.uviewui.com/components/scrollList.html
- * @property {String | Number} indicatorWidth 指示器的整体宽度 (默认 50 )
- * @property {String | Number} indicatorBarWidth 滑块的宽度 (默认 20 )
- * @property {Boolean} indicator 是否显示面板指示器 (默认 true )
- * @property {String} indicatorColor 指示器非激活颜色 (默认 '#f2f2f2' )
- * @property {String} indicatorActiveColor 指示器的激活颜色 (默认 '#3c9cff' )
- * @property {String | Object} indicatorStyle 指示器样式,可通过bottom,left,right进行定位
- * @event {Function} left 滑动到左边时触发
- * @event {Function} right 滑动到右边时触发
- * @example
- */
-// #ifdef APP-NVUE
-const dom = uni.requireNativePlugin('dom')
-import nvueMixin from "./nvue.js"
-// #endif
-import props from './props.js';
-export default {
- name: 'u-scroll-list',
- mixins: [uni.$u.mpMixin, uni.$u.mixin, props],
- // #ifdef APP-NVUE
- mixins: [uni.$u.mpMixin, uni.$u.mixin, nvueMixin, props],
- // #endif
- data() {
- return {
- scrollInfo: {
- scrollLeft: 0,
- scrollWidth: 0
- },
- scrollWidth: 0
- }
- },
- computed: {
- // 指示器为线型的样式
- barStyle() {
- const style = {}
- // #ifndef APP-NVUE || MP-WEIXIN || H5 || APP-VUE || MP-QQ
- // 此为普通js方案,只有在非nvue和不支持wxs方案的端才使用、
- // 此处的计算理由为:scroll-view的滚动距离与目标滚动距离(scroll-view的实际宽度减去包裹元素的宽度)之比,等于滑块当前移动距离与总需
- // 滑动距离(指示器的总宽度减去滑块宽度)的比值
- const scrollLeft = this.scrollInfo.scrollLeft,
- scrollWidth = this.scrollInfo.scrollWidth,
- barAllMoveWidth = this.indicatorWidth - this.indicatorBarWidth
- const x = scrollLeft / (scrollWidth - this.scrollWidth) * barAllMoveWidth
- style.transform = `translateX(${ x }px)`
- // #endif
- // 设置滑块的宽度和背景色,是每个平台都需要的
- style.width = uni.$u.addUnit(this.indicatorBarWidth)
- style.backgroundColor = this.indicatorActiveColor
- return style
- },
- lineStyle() {
- const style = {}
- // 指示器整体的样式,需要设置其宽度和背景色
- style.width = uni.$u.addUnit(this.indicatorWidth)
- style.backgroundColor = this.indicatorColor
- return style
- }
- },
- mounted() {
- this.init()
- },
- methods: {
- init() {
- this.getComponentWidth()
- },
- // #ifndef APP-NVUE || MP-WEIXIN || H5 || APP-VUE || MP-QQ
- // scroll-view触发滚动事件
- scrollHandler(e) {
- this.scrollInfo = e.detail
- },
- scrolltoupperHandler() {
- this.scrollEvent('left')
- this.scrollInfo.scrollLeft = 0
- },
- scrolltolowerHandler() {
- this.scrollEvent('right')
- // 在普通js方案中,滚动到右边时,通过设置this.scrollInfo,模拟出滚动到右边的情况
- // 因为上方是用过computed计算的,设置后,会自动调整滑块的位置
- this.scrollInfo.scrollLeft = uni.$u.getPx(this.indicatorWidth) - uni.$u.getPx(this.indicatorBarWidth)
- },
- // #endif
- //
- scrollEvent(status) {
- this.$emit(status)
- },
- // 获取组件的宽度
- async getComponentWidth() {
- // 延时一定时间,以获取dom尺寸
- await uni.$u.sleep(30)
- // #ifndef APP-NVUE
- this.$uGetRect('.u-scroll-list').then(size => {
- this.scrollWidth = size.width
- })
- // #endif
-
- // #ifdef APP-NVUE
- const ref = this.$refs['u-scroll-list']
- ref && dom.getComponentRect(ref, (res) => {
- this.scrollWidth = res.size.width
- })
- // #endif
- },
- }
-}
-</script>
-
-<style lang="scss" scoped>
-@import "../../libs/css/components.scss";
-
-.u-scroll-list {
- padding-bottom: 10px;
-
- &__scroll-view {
- @include flex;
-
- &__content {
- @include flex;
- }
- }
-
- &__indicator {
- @include flex;
- justify-content: center;
- margin-top: 15px;
-
- &__line {
- width: 60px;
- height: 4px;
- border-radius: 100px;
- overflow: hidden;
-
- &__bar {
- width: 20px;
- height: 4px;
- border-radius: 100px;
- }
- }
- }
-}
-</style>
diff --git a/uni_modules/uview-ui/components/u-search/props.js b/uni_modules/uview-ui/components/u-search/props.js
deleted file mode 100644
index df1b342..0000000
--- a/uni_modules/uview-ui/components/u-search/props.js
+++ /dev/null
@@ -1,118 +0,0 @@
-export default {
- props: {
- // 搜索框形状,round-圆形,square-方形
- shape: {
- type: String,
- default: uni.$u.props.search.shape
- },
- // 搜索框背景色,默认值#f2f2f2
- bgColor: {
- type: String,
- default: uni.$u.props.search.bgColor
- },
- // 占位提示文字
- placeholder: {
- type: String,
- default: uni.$u.props.search.placeholder
- },
- // 是否启用清除控件
- clearabled: {
- type: Boolean,
- default: uni.$u.props.search.clearabled
- },
- // 是否自动聚焦
- focus: {
- type: Boolean,
- default: uni.$u.props.search.focus
- },
- // 是否在搜索框右侧显示取消按钮
- showAction: {
- type: Boolean,
- default: uni.$u.props.search.showAction
- },
- // 右边控件的样式
- actionStyle: {
- type: Object,
- default: uni.$u.props.search.actionStyle
- },
- // 取消按钮文字
- actionText: {
- type: String,
- default: uni.$u.props.search.actionText
- },
- // 输入框内容对齐方式,可选值为 left|center|right
- inputAlign: {
- type: String,
- default: uni.$u.props.search.inputAlign
- },
- // input输入框的样式,可以定义文字颜色,大小等,对象形式
- inputStyle: {
- type: Object,
- default: uni.$u.props.search.inputStyle
- },
- // 是否启用输入框
- disabled: {
- type: Boolean,
- default: uni.$u.props.search.disabled
- },
- // 边框颜色
- borderColor: {
- type: String,
- default: uni.$u.props.search.borderColor
- },
- // 搜索图标的颜色,默认同输入框字体颜色
- searchIconColor: {
- type: String,
- default: uni.$u.props.search.searchIconColor
- },
- // 输入框字体颜色
- color: {
- type: String,
- default: uni.$u.props.search.color
- },
- // placeholder的颜色
- placeholderColor: {
- type: String,
- default: uni.$u.props.search.placeholderColor
- },
- // 左边输入框的图标,可以为uView图标名称或图片路径
- searchIcon: {
- type: String,
- default: uni.$u.props.search.searchIcon
- },
- searchIconSize: {
- type: [Number, String],
- default: uni.$u.props.search.searchIconSize
- },
- // 组件与其他上下左右元素之间的距离,带单位的字符串形式,如"30px"、"30px 20px"等写法
- margin: {
- type: String,
- default: uni.$u.props.search.margin
- },
- // 开启showAction时,是否在input获取焦点时才显示
- animation: {
- type: Boolean,
- default: uni.$u.props.search.animation
- },
- // 输入框的初始化内容
- value: {
- type: String,
- default: uni.$u.props.search.value
- },
- // 输入框最大能输入的长度,-1为不限制长度(来自uniapp文档)
- maxlength: {
- type: [String, Number],
- default: uni.$u.props.search.maxlength
- },
- // 搜索框高度,单位px
- height: {
- type: [String, Number],
- default: uni.$u.props.search.height
- },
- // 搜索框左侧文本
- label: {
- type: [String, Number, null],
- default: uni.$u.props.search.label
- }
- }
-}
diff --git a/uni_modules/uview-ui/components/u-search/u-search.vue b/uni_modules/uview-ui/components/u-search/u-search.vue
deleted file mode 100644
index f169c7f..0000000
--- a/uni_modules/uview-ui/components/u-search/u-search.vue
+++ /dev/null
@@ -1,303 +0,0 @@
-<template>
- <view
- class="u-search"
- @tap="clickHandler"
- :style="[{
- margin: margin,
- }, $u.addStyle(customStyle)]"
- >
- <view
- class="u-search__content"
- :style="{
- backgroundColor: bgColor,
- borderRadius: shape == 'round' ? '100px' : '4px',
- borderColor: borderColor,
- }"
- >
- <template v-if="$slots.label || label !== null">
- <slot name="label">
- <text class="u-search__content__label">{{ label }}</text>
- </slot>
- </template>
- <view class="u-search__content__icon">
- <u-icon
- @tap="clickIcon"
- :size="searchIconSize"
- :name="searchIcon"
- :color="searchIconColor ? searchIconColor : color"
- ></u-icon>
- </view>
- <input
- confirm-type="search"
- @blur="blur"
- :value="value"
- @confirm="search"
- @input="inputChange"
- :disabled="disabled"
- @focus="getFocus"
- :focus="focus"
- :maxlength="maxlength"
- placeholder-class="u-search__content__input--placeholder"
- :placeholder="placeholder"
- :placeholder-style="`color: ${placeholderColor}`"
- class="u-search__content__input"
- type="text"
- :style="[{
- textAlign: inputAlign,
- color: color,
- backgroundColor: bgColor,
- height: $u.addUnit(height)
- }, inputStyle]"
- />
- <view
- class="u-search__content__icon u-search__content__close"
- v-if="keyword && clearabled && focused"
- @tap="clear"
- >
- <u-icon
- name="close"
- size="11"
- color="#ffffff"
- customStyle="line-height: 12px"
- ></u-icon>
- </view>
- </view>
- <text
- :style="[actionStyle]"
- class="u-search__action"
- :class="[(showActionBtn || show) && 'u-search__action--active']"
- @tap.stop.prevent="custom"
- >{{ actionText }}</text>
- </view>
-</template>
-
-<script>
- import props from './props.js';
-
- /**
- * search 搜索框
- * @description 搜索组件,集成了常见搜索框所需功能,用户可以一键引入,开箱即用。
- * @tutorial https://www.uviewui.com/components/search.html
- * @property {String} shape 搜索框形状,round-圆形,square-方形(默认 'round' )
- * @property {String} bgColor 搜索框背景颜色(默认 '#f2f2f2' )
- * @property {String} placeholder 占位文字内容(默认 '请输入关键字' )
- * @property {Boolean} clearabled 是否启用清除控件(默认 true )
- * @property {Boolean} focus 是否自动获得焦点(默认 false )
- * @property {Boolean} showAction 是否显示右侧控件(默认 true )
- * @property {Object} actionStyle 右侧控件的样式,对象形式
- * @property {String} actionText 右侧控件文字(默认 '搜索' )
- * @property {String} inputAlign 输入框内容水平对齐方式 (默认 'left' )
- * @property {Object} inputStyle 自定义输入框样式,对象形式
- * @property {Boolean} disabled 是否启用输入框(默认 false )
- * @property {String} borderColor 边框颜色,配置了颜色,才会有边框 (默认 'transparent' )
- * @property {String} searchIconColor 搜索图标的颜色,默认同输入框字体颜色 (默认 '#909399' )
- * @property {Number | String} searchIconSize 搜索图标的字体,默认22
- * @property {String} color 输入框字体颜色(默认 '#606266' )
- * @property {String} placeholderColor placeholder的颜色(默认 '#909399' )
- * @property {String} searchIcon 输入框左边的图标,可以为uView图标名称或图片路径 (默认 'search' )
- * @property {String} margin 组件与其他上下左右元素之间的距离,带单位的字符串形式,如"30px" (默认 '0' )
- * @property {Boolean} animation 是否开启动画,见上方说明(默认 false )
- * @property {String} value 输入框初始值
- * @property {String | Number} maxlength 输入框最大能输入的长度,-1为不限制长度 (默认 '-1' )
- * @property {String | Number} height 输入框高度,单位px(默认 64 )
- * @property {String | Number} label 搜索框左边显示内容
- * @property {Object} customStyle 定义需要用到的外部样式
- *
- * @event {Function} change 输入框内容发生变化时触发
- * @event {Function} search 用户确定搜索时触发,用户按回车键,或者手机键盘右下角的"搜索"键时触发
- * @event {Function} custom 用户点击右侧控件时触发
- * @event {Function} clear 用户点击清除按钮时触发
- * @example <u-search placeholder="日照香炉生紫烟" v-model="keyword"></u-search>
- */
- export default {
- name: "u-search",
- mixins: [uni.$u.mpMixin, uni.$u.mixin,props],
- data() {
- return {
- keyword: '',
- showClear: false, // 是否显示右边的清除图标
- show: false,
- // 标记input当前状态是否处于聚焦中,如果是,才会显示右侧的清除控件
- focused: this.focus
- // 绑定输入框的值
- // inputValue: this.value
- };
- },
- watch: {
- keyword(nVal) {
- // 双向绑定值,让v-model绑定的值双向变化
- this.$emit('input', nVal);
- // 触发change事件,事件效果和v-model双向绑定的效果一样,让用户多一个选择
- this.$emit('change', nVal);
- },
- value: {
- immediate: true,
- handler(nVal) {
- this.keyword = nVal;
- }
- }
- },
- computed: {
- showActionBtn() {
- return !this.animation && this.showAction
- }
- },
- methods: {
- // 目前HX2.6.9 v-model双向绑定无效,故监听input事件获取输入框内容的变化
- inputChange(e) {
- this.keyword = e.detail.value;
- },
- // 清空输入
- // 也可以作为用户通过this.$refs形式调用清空输入框内容
- clear() {
- this.keyword = '';
- // 延后发出事件,避免在父组件监听clear事件时,value为更新前的值(不为空)
- this.$nextTick(() => {
- this.$emit('clear');
- })
- },
- // 确定搜索
- search(e) {
- this.$emit('search', e.detail.value);
- try {
- // 收起键盘
- uni.hideKeyboard();
- } catch (e) {}
- },
- // 点击右边自定义按钮的事件
- custom() {
- this.$emit('custom', this.keyword);
- try {
- // 收起键盘
- uni.hideKeyboard();
- } catch (e) {}
- },
- // 获取焦点
- getFocus() {
- this.focused = true;
- // 开启右侧搜索按钮展开的动画效果
- if (this.animation && this.showAction) this.show = true;
- this.$emit('focus', this.keyword);
- },
- // 失去焦点
- blur() {
- // 最开始使用的是监听图标@touchstart事件,自从hx2.8.4后,此方法在微信小程序出错
- // 这里改为监听点击事件,手点击清除图标时,同时也发生了@blur事件,导致图标消失而无法点击,这里做一个延时
- setTimeout(() => {
- this.focused = false;
- }, 100)
- this.show = false;
- this.$emit('blur', this.keyword);
- },
- // 点击搜索框,只有disabled=true时才发出事件,因为禁止了输入,意味着是想跳转真正的搜索页
- clickHandler() {
- if (this.disabled) this.$emit('click');
- },
- // 点击左边图标
- clickIcon() {
- this.$emit('clickIcon');
- }
- }
- }
-</script>
-
-<style lang="scss" scoped>
-@import "../../libs/css/components.scss";
-$u-search-content-padding: 0 10px !default;
-$u-search-label-color: $u-main-color !default;
-$u-search-label-font-size: 14px !default;
-$u-search-label-margin: 0 4px !default;
-$u-search-close-size: 20px !default;
-$u-search-close-radius: 100px !default;
-$u-search-close-bgColor: #C6C7CB !default;
-$u-search-close-transform: scale(0.82) !default;
-$u-search-input-font-size: 14px !default;
-$u-search-input-margin: 0 5px !default;
-$u-search-input-color: $u-main-color !default;
-$u-search-input-placeholder-color: $u-tips-color !default;
-$u-search-action-font-size: 14px !default;
-$u-search-action-color: $u-main-color !default;
-$u-search-action-width: 0 !default;
-$u-search-action-active-width: 40px !default;
-$u-search-action-margin-left: 5px !default;
-
-/* #ifdef H5 */
-// iOS15在H5下,hx的某些版本,input type=search时,会多了一个搜索图标,进行移除
-[type="search"]::-webkit-search-decoration {
- display: none;
-}
-/* #endif */
-
-.u-search {
- @include flex(row);
- align-items: center;
- flex: 1;
-
- &__content {
- @include flex;
- align-items: center;
- padding: $u-search-content-padding;
- flex: 1;
- justify-content: space-between;
- border-width: 1px;
- border-color: transparent;
- border-style: solid;
- overflow: hidden;
-
- &__icon {
- @include flex;
- align-items: center;
- }
-
- &__label {
- color: $u-search-label-color;
- font-size: $u-search-label-font-size;
- margin: $u-search-label-margin;
- }
-
- &__close {
- width: $u-search-close-size;
- height: $u-search-close-size;
- border-top-left-radius: $u-search-close-radius;
- border-top-right-radius: $u-search-close-radius;
- border-bottom-left-radius: $u-search-close-radius;
- border-bottom-right-radius: $u-search-close-radius;
- background-color: $u-search-close-bgColor;
- @include flex(row);
- align-items: center;
- justify-content: center;
- transform: $u-search-close-transform;
- }
-
- &__input {
- flex: 1;
- font-size: $u-search-input-font-size;
- line-height: 1;
- margin: $u-search-input-margin;
- color: $u-search-input-color;
-
- &--placeholder {
- color: $u-search-input-placeholder-color;
- }
- }
- }
-
- &__action {
- font-size: $u-search-action-font-size;
- color: $u-search-action-color;
- width: $u-search-action-width;
- overflow: hidden;
- transition-property: width;
- transition-duration: 0.3s;
- /* #ifndef APP-NVUE */
- white-space: nowrap;
- /* #endif */
- text-align: center;
-
- &--active {
- width: $u-search-action-active-width;
- margin-left: $u-search-action-margin-left;
- }
- }
-}
-</style>
diff --git a/uni_modules/uview-ui/components/u-skeleton/props.js b/uni_modules/uview-ui/components/u-skeleton/props.js
deleted file mode 100644
index ed3ba5a..0000000
--- a/uni_modules/uview-ui/components/u-skeleton/props.js
+++ /dev/null
@@ -1,59 +0,0 @@
-export default {
- props: {
- // 是否展示骨架组件
- loading: {
- type: Boolean,
- default: uni.$u.props.skeleton.loading
- },
- // 是否开启动画效果
- animate: {
- type: Boolean,
- default: uni.$u.props.skeleton.animate
- },
- // 段落占位图行数
- rows: {
- type: [String, Number],
- default: uni.$u.props.skeleton.rows
- },
- // 段落占位图的宽度
- rowsWidth: {
- type: [String, Number, Array],
- default: uni.$u.props.skeleton.rowsWidth
- },
- // 段落占位图的高度
- rowsHeight: {
- type: [String, Number, Array],
- default: uni.$u.props.skeleton.rowsHeight
- },
- // 是否展示标题占位图
- title: {
- type: Boolean,
- default: uni.$u.props.skeleton.title
- },
- // 段落标题的宽度
- titleWidth: {
- type: [String, Number],
- default: uni.$u.props.skeleton.titleWidth
- },
- // 段落标题的高度
- titleHeight: {
- type: [String, Number],
- default: uni.$u.props.skeleton.titleHeight
- },
- // 是否展示头像占位图
- avatar: {
- type: Boolean,
- default: uni.$u.props.skeleton.avatar
- },
- // 头像占位图大小
- avatarSize: {
- type: [String, Number],
- default: uni.$u.props.skeleton.avatarSize
- },
- // 头像占位图的形状,circle-圆形,square-方形
- avatarShape: {
- type: String,
- default: uni.$u.props.skeleton.avatarShape
- }
- }
-}
diff --git a/uni_modules/uview-ui/components/u-skeleton/u-skeleton.vue b/uni_modules/uview-ui/components/u-skeleton/u-skeleton.vue
deleted file mode 100644
index efa649e..0000000
--- a/uni_modules/uview-ui/components/u-skeleton/u-skeleton.vue
+++ /dev/null
@@ -1,244 +0,0 @@
-<template>
- <view class="u-skeleton">
- <view
- class="u-skeleton__wrapper"
- ref="u-skeleton__wrapper"
- v-if="loading"
- style="display: flex; flex-direction: row;"
- >
- <view
- class="u-skeleton__wrapper__avatar"
- v-if="avatar"
- :class="[`u-skeleton__wrapper__avatar--${avatarShape}`, animate && 'animate']"
- :style="{
- height: $u.addUnit(avatarSize),
- width: $u.addUnit(avatarSize)
- }"
- ></view>
- <view
- class="u-skeleton__wrapper__content"
- ref="u-skeleton__wrapper__content"
- style="flex: 1;"
- >
- <view
- class="u-skeleton__wrapper__content__title"
- v-if="title"
- :style="{
- width: uTitleWidth,
- height: $u.addUnit(titleHeight),
- }"
- :class="[animate && 'animate']"
- ></view>
- <view
- class="u-skeleton__wrapper__content__rows"
- :class="[animate && 'animate']"
- v-for="(item, index) in rowsArray"
- :key="index"
- :style="{
- width: item.width,
- height: item.height,
- marginTop: item.marginTop
- }"
- >
-
- </view>
- </view>
- </view>
- <slot v-else />
- </view>
-</template>
-
-<script>
- import props from './props.js';
- // #ifdef APP-NVUE
- // 由于weex为阿里的KPI业绩考核的产物,所以不支持百分比单位,这里需要通过dom查询组件的宽度
- const dom = uni.requireNativePlugin('dom')
- const animation = uni.requireNativePlugin('animation')
- // #endif
- /**
- * Skeleton 骨架屏
- * @description 骨架屏一般用于页面在请求远程数据尚未完成时,页面用灰色块预显示本来的页面结构,给用户更好的体验。
- * @tutorial https://www.uviewui.com/components/skeleton.html
- * @property {Boolean} loading 是否显示骨架占位图,设置为false将会展示子组件内容 (默认 true )
- * @property {Boolean} animate 是否开启动画效果 (默认 true )
- * @property {String | Number} rows 段落占位图行数 (默认 0 )
- * @property {String | Number | Array} rowsWidth 段落占位图的宽度,可以为百分比,数值,带单位字符串等,可通过数组传入指定每个段落行的宽度 (默认 '100%' )
- * @property {String | Number | Array} rowsHeight 段落的高度 (默认 18 )
- * @property {Boolean} title 是否展示标题占位图 (默认 true )
- * @property {String | Number} titleWidth 标题的宽度 (默认 '50%' )
- * @property {String | Number} titleHeight 标题的高度 (默认 18 )
- * @property {Boolean} avatar 是否展示头像占位图 (默认 false )
- * @property {String | Number} avatarSize 头像占位图大小 (默认 32 )
- * @property {String} avatarShape 头像占位图的形状,circle-圆形,square-方形 (默认 'circle' )
- * @example <u-search placeholder="日照香炉生紫烟" v-model="keyword"></u-search>
- */
- export default {
- name: 'u-skeleton',
- mixins: [uni.$u.mpMixin, uni.$u.mixin, props],
- data() {
- return {
- width: 0,
- }
- },
- watch: {
- loading() {
- this.getComponentWidth()
- }
- },
- computed: {
- rowsArray() {
- if (/%$/.test(this.rowsHeight)) {
- uni.$u.error('rowsHeight参数不支持百分比单位')
- }
- const rows = []
- for (let i = 0; i < this.rows; i++) {
- let item = {},
- // 需要预防超出数组边界的情况
- rowWidth = uni.$u.test.array(this.rowsWidth) ? (this.rowsWidth[i] || (i === this.row - 1 ? '70%' : '100%')) : i ===
- this.rows - 1 ? '70%' : this.rowsWidth,
- rowHeight = uni.$u.test.array(this.rowsHeight) ? (this.rowsHeight[i] || '18px') : this.rowsHeight
- // 如果有title占位图,第一个段落占位图的外边距需要大一些,如果没有title占位图,第一个段落占位图则无需外边距
- // 之所以需要这么做,是因为weex的无能,以提升性能为借口不支持css的一些伪类
- item.marginTop = !this.title && i === 0 ? 0 : this.title && i === 0 ? '20px' : '12px'
- // 如果设置的为百分比的宽度,转换为px值,因为nvue不支持百分比单位
- if (/%$/.test(rowWidth)) {
- // 通过parseInt提取出百分比单位中的数值部分,除以100得到百分比的小数值
- item.width = uni.$u.addUnit(this.width * parseInt(rowWidth) / 100)
- } else {
- item.width = uni.$u.addUnit(rowWidth)
- }
- item.height = uni.$u.addUnit(rowHeight)
- rows.push(item)
- }
- // console.log(rows);
- return rows
- },
- uTitleWidth() {
- let tWidth = 0
- if (/%$/.test(this.titleWidth)) {
- // 通过parseInt提取出百分比单位中的数值部分,除以100得到百分比的小数值
- tWidth = uni.$u.addUnit(this.width * parseInt(this.titleWidth) / 100)
- } else {
- tWidth = uni.$u.addUnit(this.titleWidth)
- }
- return uni.$u.addUnit(tWidth)
- },
-
- },
- mounted() {
- this.init()
- },
- methods: {
- init() {
- this.getComponentWidth()
- // #ifdef APP-NVUE
- this.loading && this.animate && this.setNvueAnimation()
- // #endif
- },
- async setNvueAnimation() {
- // #ifdef APP-NVUE
- // 为了让opacity:1的状态保持一定时间,这里做一个延时
- await uni.$u.sleep(500)
- const skeleton = this.$refs['u-skeleton__wrapper'];
- skeleton && this.loading && this.animate && animation.transition(skeleton, {
- styles: {
- opacity: 0.5
- },
- duration: 600,
- }, () => {
- // 这里无需判断是否loading和开启动画状态,因为最终的状态必须达到opacity: 1,否则可能
- // 会停留在opacity: 0.5的状态中
- animation.transition(skeleton, {
- styles: {
- opacity: 1
- },
- duration: 600,
- }, () => {
- // 只有在loading中时,才执行动画
- this.loading && this.animate && this.setNvueAnimation()
- })
- })
- // #endif
- },
- // 获取组件的宽度
- async getComponentWidth() {
- // 延时一定时间,以获取dom尺寸
- await uni.$u.sleep(20)
- // #ifndef APP-NVUE
- this.$uGetRect('.u-skeleton__wrapper__content').then(size => {
- this.width = size.width
- })
- // #endif
-
- // #ifdef APP-NVUE
- const ref = this.$refs['u-skeleton__wrapper__content']
- ref && dom.getComponentRect(ref, (res) => {
- this.width = res.size.width
- })
- // #endif
- }
- }
- }
-</script>
-
-<style lang="scss" scoped>
- @import "../../libs/css/components.scss";
-
- @mixin background {
- /* #ifdef APP-NVUE */
- background-color: #F1F2F4;
- /* #endif */
- /* #ifndef APP-NVUE */
- background: linear-gradient(90deg, #F1F2F4 25%, #e6e6e6 37%, #F1F2F4 50%);
- background-size: 400% 100%;
- /* #endif */
- }
-
- .u-skeleton {
- flex: 1;
-
- &__wrapper {
- @include flex(row);
-
- &__avatar {
- @include background;
- margin-right: 15px;
-
- &--circle {
- border-radius: 100px;
- }
-
- &--square {
- border-radius: 4px;
- }
- }
-
- &__content {
- flex: 1;
-
- &__rows,
- &__title {
- @include background;
- border-radius: 3px;
- }
- }
- }
- }
-
- /* #ifndef APP-NVUE */
- .animate {
- animation: skeleton 1.8s ease infinite
- }
-
- @keyframes skeleton {
- 0% {
- background-position: 100% 50%
- }
-
- 100% {
- background-position: 0 50%
- }
- }
-
- /* #endif */
-</style>
diff --git a/uni_modules/uview-ui/components/u-slider/mpother.js b/uni_modules/uview-ui/components/u-slider/mpother.js
deleted file mode 100644
index 040c848..0000000
--- a/uni_modules/uview-ui/components/u-slider/mpother.js
+++ /dev/null
@@ -1,113 +0,0 @@
-/**
- * 使用普通的js方案实现slider
- */
-export default {
- watch: {
- value(n) {
- // 只有在非滑动状态时,才可以通过value更新滑块值,这里监听,是为了让用户触发
- if (this.status === 'end') {
- this.updateSliderPlacement(n, true)
- }
- }
- },
- mounted() {
- this.init()
- },
- methods: {
- init() {
- this.getSliderRect()
- },
- // 获取slider尺寸
- getSliderRect() {
- // 获取滑块条的尺寸信息
- setTimeout(() => {
- this.$uGetRect('.u-slider').then((rect) => {
- this.sliderRect = rect
- this.updateSliderPlacement(this.value, true)
- })
- }, 10)
- },
- // 是否可以操作
- canNotDo() {
- return this.disabled
- },
- // 获取当前手势点的X轴位移值
- getTouchX(e) {
- return e.touches[0].clientX
- },
- formatStep(value) {
- // 移动点占总长度的百分比
- return Math.round(Math.max(this.min, Math.min(value, this.max)) / this.step) * this.step
- },
- // 发出事件
- emitEvent(event, value) {
- this.$emit(event, value || this.value)
- },
- // 标记当前手势的状态
- setTouchStatus(status) {
- this.status = status
- },
- onTouchStart(e) {
- if (this.canNotDo()) {
- return
- }
- // 标示当前的状态为开始触摸滑动
- this.emitEvent('start')
- this.setTouchStatus('start')
- },
- onTouchMove(e) {
- if (this.canNotDo()) {
- return
- }
- // 滑块的左边不一定跟屏幕左边接壤,所以需要减去最外层父元素的左边值
- const x = this.getTouchX(e)
- const { left, width } = this.sliderRect
- const distanceX = x - left
- // 获得移动距离对整个滑块的百分比值,此为带有多位小数的值,不能用此更新视图
- // 否则造成通信阻塞,需要每改变一个step值时修改一次视图
- const percent = (distanceX / width) * 100
- this.setTouchStatus('moving')
- this.updateSliderPlacement(percent, true, 'moving')
- },
- onTouchEnd() {
- if (this.canNotDo()) {
- return
- }
- this.emitEvent('end')
- this.setTouchStatus('end')
- },
- // 设置滑点的位置
- updateSliderPlacement(value, drag, event) {
- // 去掉小数部分,同时也是对step步进的处理
- const { width } = this.sliderRect
- const percent = this.formatStep(value)
- // 设置移动的值
- const barStyle = {
- width: `${percent / 100 * width}px`
- }
- // 移动期间无需过渡动画
- if (drag === true) {
- barStyle.transition = 'none'
- } else {
- // 非移动期间,删掉对过渡为空的声明,让css中的声明起效
- delete barStyle.transition
- }
- // 修改value值
- this.$emit('input', percent)
- // 事件的名称
- if (event) {
- this.emitEvent(event, percent)
- }
- this.barStyle = barStyle
- },
- onClick(e) {
- if (this.canNotDo()) {
- return
- }
- // 直接点击滑块的情况,计算方式与onTouchMove方法相同
- const { left, width } = this.sliderRect
- const value = ((e.detail.x - left) / width) * 100
- this.updateSliderPlacement(value, false, 'click')
- }
- }
-}
diff --git a/uni_modules/uview-ui/components/u-slider/mpwxs.js b/uni_modules/uview-ui/components/u-slider/mpwxs.js
deleted file mode 100644
index f263911..0000000
--- a/uni_modules/uview-ui/components/u-slider/mpwxs.js
+++ /dev/null
@@ -1,42 +0,0 @@
-export default {
- data() {
- return {
- sliderRect: {},
- info: {
- width: null,
- left: null,
- step: this.step,
- disabled: this.disabled,
- min: this.min,
- max: this.max,
- value: this.value
- }
- }
- },
- mounted() {
- this.init()
- },
- methods: {
- init() {
- this.getSliderRect()
- },
- // 获取slider尺寸
- getSliderRect() {
- // 获取滑块条的尺寸信息
- uni.$u.sleep().then(() => {
- this.$uGetRect('.u-slider').then((rect) => {
- this.info.width = rect.width
- this.info.left = rect.left
- })
- })
- },
- // 此方法由wxs调用,用于修改v-model绑定的值
- updateValue(value) {
- this.$emit('input', value)
- },
- // 此方法由wxs调用,发出事件
- emitEvent(e) {
- this.$emit(e.event, e.value ? e.value : this.value)
- }
- }
-}
diff --git a/uni_modules/uview-ui/components/u-slider/mpwxs.wxs b/uni_modules/uview-ui/components/u-slider/mpwxs.wxs
deleted file mode 100644
index 847df4a..0000000
--- a/uni_modules/uview-ui/components/u-slider/mpwxs.wxs
+++ /dev/null
@@ -1,121 +0,0 @@
-/**
- * 使用wxs方案实现slider
- * 兼容微信,QQ,H5,Vue版的安卓和iOS
- */
-/**
- * 开始滑动操作
- * @param {Object} e
- * @param {Object} ownerInstance
- */
-function onTouchMove(e, ownerInstance) {
- // wxs事件对象下有一个instance属性,表示当前触发此事件的组件的实例,通过该实例,可以获取相关的dataset,设置样式等信息
- // https://developers.weixin.qq.com/miniprogram/dev/framework/view/interactive-animation.html
- var instance = e.instance;
- // getState()为一个对象,挂载在instance上,类似组件的data一样,可以存放一些变量,供以后的触发事件中使用
- var state = instance.getState()
-
- // 滑块组件的整体尺寸信息
- var mp = state.mp
- if(mp.disabled) {
- return
- }
-
- var distanceX = getTouchX(e) - mp.left
- // 获得移动距离对整个滑块的百分比值,此为带有多位小数的值,step大于1时,不能用此更新视图
- var percent = (distanceX / mp.width) * 100
-
- updateSliderPlacement(instance, ownerInstance, percent, 'moving')
-
- // 阻止页面滚动,可以保证在滑动过程中,不让页面可以上下滚动,造成不好的体验
- e.stopPropagation && e.stopPropagation()
- e.preventDefault && e.preventDefault()
-}
-
-function onClick(e, ownerInstance) {
- var instance = e.instance
- var state = instance.getState()
- var mp = state.mp
- if(mp.disabled) {
- return
- }
-
- // 直接点击滑块的情况,计算方式与onTouchMove方法相同
- var value = ((e.detail.x - mp.left) / mp.width) * 100
- updateSliderPlacement(instance, ownerInstance, value, 'click')
-}
-
-function sizeReady(newValue, oldValue, ownerInstance, instance) {
- // 页面初始化时候,也会触发此方法,传递的值为空,这里不执行往后的逻辑
- if(!newValue || newValue.disabled) {
- return
- }
- var state = instance.getState()
- state.mp = newValue
- updateSliderPlacement(instance, ownerInstance, newValue.value)
-}
-
-// 设置滑点的位置
-function updateSliderPlacement(instance, ownerInstance, value, event) {
- var state = instance.getState()
- var mp = state.mp
- if(mp.disabled) {
- return
- }
-
- var percent = 0
- if (mp.step > 1) {
- // 如果step步进大于1,需要跳步,所以需要使用Math.round进行取整
- percent = Math.round(Math.max(mp.min, Math.min(value, mp.max)) / mp.step) * mp.step
- } else {
- // 当step=1时,无需跳步,充分利用wxs性能,滑块实时跟随手势,达到丝滑的效果
- percent = Math.max(mp.min, Math.min(value, mp.max))
- }
- // 返回组件的实例
- var gapInstance = ownerInstance.selectComponent('.u-slider__gap')
- // 在移动期间,不允许transition动画,否则会造成卡顿
- gapInstance[event === 'click' ? 'addClass' : 'removeClass']('u-slider__gap--ani')
- // 调用逻辑层的方法,修改v-model绑定的值
- ownerInstance.callMethod('updateValue', Math.round(percent))
- if(event) {
- ownerInstance.callMethod('emitEvent', {
- event: event,
- value: Math.round(percent)
- })
- }
-
- // 设置移动的值
- gapInstance.requestAnimationFrame(function() {
- gapInstance.setStyle({
- width: percent / 100 * mp.width + 'px',
- })
- })
-}
-
-// 开始滑动
-function onTouchStart(e, ownerInstance) {
- ownerInstance.callMethod('emitEvent', {
- event: 'start',
- value: null
- })
-}
-
-// 停止滑动
-function onTouchEnd(e, ownerInstance) {
- ownerInstance.callMethod('emitEvent', {
- event: 'end',
- value: null
- })
-}
-
-// 获取当前手势点的X轴位移值
-function getTouchX(e) {
- return e.touches[0].clientX
-}
-
-module.exports = {
- onTouchStart: onTouchStart,
- onTouchMove: onTouchMove,
- onTouchEnd: onTouchEnd,
- sizeReady: sizeReady,
- onClick: onClick
-}
diff --git "a/uni_modules/uview-ui/components/u-slider/nvue - \345\211\257\346\234\254.js" "b/uni_modules/uview-ui/components/u-slider/nvue - \345\211\257\346\234\254.js"
deleted file mode 100644
index df62349..0000000
--- "a/uni_modules/uview-ui/components/u-slider/nvue - \345\211\257\346\234\254.js"
+++ /dev/null
@@ -1,180 +0,0 @@
-/**
- * 使用bindingx方案实现slider
- * 只能使用于nvue下
- */
-// 引入bindingx,此库类似于微信小程序wxs,目的是让js运行在视图层,减少视图层和逻辑层的通信折损
-const BindingX = uni.requireNativePlugin('bindingx')
-// nvue操作dom的库,用于获取dom的尺寸信息
-const dom = uni.requireNativePlugin('dom')
-// nvue中用于操作元素动画的库,类似于uni.animation,只不过uni.animation不能用于nvue
-const animation = uni.requireNativePlugin('animation')
-
-export default {
- data() {
- return {
- // bindingx的回调值,用于取消绑定
- panEvent: null,
- // 标记是否移动状态
- moving: false,
- // 位移的偏移量
- x: 0,
- // 是否正在触摸过程中,用于标记动画类是否添加或移除
- touching: false,
- changeFromInside: false
- }
- },
- watch: {
- // 监听vlaue的变化,此变化可能是由于内部修改v-model的值,或者外部
- // 从服务端获取一个值后,赋值给slider的v-model而导致的
- value(n) {
- if (!this.changeFromInside) {
- this.initX()
- } else {
- this.changeFromInside = false
- }
- }
- },
- mounted() {
- this.init()
- },
- methods: {
- init() {
- this.getSliderRect()
- },
- // 获取节点信息
- // 获取slider尺寸
- getSliderRect() {
- // 获取滑块条的尺寸信息
- // 通过nvue的dom模块,查询节点信息
- setTimeout(() => {
- dom.getComponentRect(this.$refs['slider'], res => {
- this.sliderRect = res.size
- this.initX()
- })
- }, 10)
- },
- // 初始化按钮位置
- initButtonStyle({
- barStyle,
- buttonWrapperStyle
- }) {
- this.barStyle = barStyle
- this.buttonWrapperStyle = buttonWrapperStyle
- },
- emitEvent(event, value) {
- this.$emit(event, value ? value : this.value)
- },
- formatStep(value) {
- // 移动点占总长度的百分比
- return Math.round(Math.max(this.min, Math.min(value, this.max)) / this.step) * this.step
- },
- // 滑动开始
- onTouchStart(e) {
- // 阻止页面滚动,可以保证在滑动过程中,不让页面可以上下滚动,造成不好的体验
- e.stopPropagation && e.stopPropagation()
- e.preventDefault && e.preventDefault()
- if (this.moving || this.disabled) {
- // 释放上一次的资源
- if (this.panEvent?.token != 0) {
- BindingX.unbind({
- token: this.panEvent.token,
- // pan为手势事件
- eventType: 'pan'
- })
- this.gesToken = 0
- }
- return
- }
-
- this.moving = true
- this.touching = true
-
- // 获取元素ref
- const button = this.$refs['nvue-button'].ref
- const gap = this.$refs['nvue-gap'].ref
-
- const {
- min,
- max,
- step
- } = this
- const {
- left,
- width
- } = this.sliderRect
-
- // 初始值为本次偏移量x,加上次停止滑动时的结束值
- let exporession = `(${this.x} + x)`
- // 将偏移的x值,转为总位移的百分比值,为了和min和max进行判断
- exporession = `(${exporession} / ${width}) * 100`
- if (step > 1) {
- // 如果step步进大于1,需要跳步,所以需要使用Math.round进行取整
- exporession = `round(max(${min}, min(${exporession}, ${max})) / ${step}) * ${step}`
- } else {
- // 当step=1时,无需跳步,充分利用bindingx性能,滑块实时跟随手势,达到丝滑的效果
- exporession = `max(${min}, min(${exporession}, ${max}))`
- }
- // 将百分比最后转化为对应的px值
- exporession = `${exporession} / 100 * ${width}`
- // 最大值不允许超过轨迹的宽度
- const {
- sliderWidth
- } = this.sliderRect
- exporession = `min(${sliderWidth}, ${exporession})`
- // 滑块点总是需要一个左偏移的值,为自身宽度的一半
- const buttonExpression = `${exporession} - ${this.blockHeight / 2}`
- // 阿里为了KPI而开源的BindingX
- this.panEvent = BindingX.bind({
- anchor: button,
- eventType: 'pan',
- props: [{
- element: gap,
- // 绑定width属性,设置其宽度值
- property: 'width',
- expression
- }, {
- element: button,
- // 绑定width属性,设置其宽度值
- property: 'transform.translateX',
- expression: buttonExpression
- }]
- }, (e) => {
- if (e.state === 'end' || e.state === 'exit') {
- //
- this.x = uni.$u.range(0, left + width, e.deltaX + this.x)
- // 根据偏移值,得出移动的百分比,进而修改双向绑定的v-model的值
- const value = (this.x / width) * 100
- const percent = this.formatStep(value)
- // 修改value值
- this.$emit('input', percent)
- // 标记下一次触发value的watch时,这个值的变化,是由内部改变的
- this.changeFromInside = true
- this.moving = false
- this.touching = false
- }
- })
- },
- // 从value的变化,倒推得出x的值该为多少
- initX() {
- const {
- left,
- width
- } = this.sliderRect
- // 得出x的初始偏移值,之所以需要这么做,是因为在bindingX中,触摸滑动时,只能的值本次移动的偏移值
- // 而无法的值准确的前后移动的两个点的坐标值,weex纯粹为阿里巴巴的KPI(部门业绩考核)产物,也就这样了
- this.x = this.value / 100 * width
- // 设置移动的值
- const barStyle = {
- width: this.x + 'px'
- }
- // 按钮的初始值
- const buttonWrapperStyle = {
- transform: `translateX(${this.x - this.blockHeight / 2}px)`
- }
- this.initButtonStyle({
- barStyle,
- buttonWrapperStyle
- })
- }
- }
-}
diff --git a/uni_modules/uview-ui/components/u-slider/nvue.js b/uni_modules/uview-ui/components/u-slider/nvue.js
deleted file mode 100644
index 344dce8..0000000
--- a/uni_modules/uview-ui/components/u-slider/nvue.js
+++ /dev/null
@@ -1,193 +0,0 @@
-/**
- * 使用bindingx方案实现slider
- * 只能使用于nvue下
- */
-// 引入bindingx,此库类似于微信小程序wxs,目的是让js运行在视图层,减少视图层和逻辑层的通信折损
-const BindingX = uni.requireNativePlugin('bindingx')
-// nvue操作dom的库,用于获取dom的尺寸信息
-const dom = uni.requireNativePlugin('dom')
-// nvue中用于操作元素动画的库,类似于uni.animation,只不过uni.animation不能用于nvue
-const animation = uni.requireNativePlugin('animation')
-
-export default {
- data() {
- return {
- // 位移的偏移量
- x: 0,
- // 是否正在触摸过程中,用于标记动画类是否添加或移除
- touching: false,
- changeFromInside: false
- }
- },
- watch: {
- // 监听vlaue的变化,此变化可能是由于内部修改v-model的值,或者外部
- // 从服务端获取一个值后,赋值给slider的v-model而导致的
- value(n) {
- if (!this.changeFromInside) {
- this.initX()
- } else {
- this.changeFromInside = false
- }
- }
- },
- mounted() {
- this.init()
- },
- methods: {
- init() {
- // 更新滑块尺寸信息
- this.getSliderRect().then((size) => {
- this.sliderRect = size
- this.initX()
- })
- },
- // 获取节点信息
- // 获取slider尺寸
- getSliderRect() {
- // 获取滑块条的尺寸信息
- // 通过nvue的dom模块,查询节点信息
- return new Promise((resolve) => {
- this.$nextTick(() => {
- dom.getComponentRect(this.$refs.slider, (res) => {
- resolve(res.size)
- })
- })
- })
- },
- // 初始化按钮位置
- initButtonStyle({
- barStyle,
- buttonWrapperStyle
- }) {
- this.barStyle = barStyle
- this.buttonWrapperStyle = buttonWrapperStyle
- },
- emitEvent(event, value) {
- this.$emit(event, value || this.value)
- },
- // 滑动开始
- async onTouchStart(e) {
- // if (this.disabled) return
- // // 阻止页面滚动,可以保证在滑动过程中,不让页面可以上下滚动,造成不好的体验
- // e.stopPropagation && e.stopPropagation()
- // e.preventDefault && e.preventDefault()
- // // 更新滑块的尺寸信息
- // this.sliderRect = await this.getSliderRect()
- // // 标记滑动过程中触摸点的信息
- // this.touchStart(e)
- // this.startValue = this.format(this.value)
- // this.dragStatus = 'start'
-
- // 标记滑动过程中触摸点的信息
- // this.touchStart(e)
- },
- // 开始滑动
- onTouchMove(e) {
- // if (this.disabled) return;
- // if (this.dragStatus === 'start') {
- // this.$emit('drag-start')
- // }
- // // 标记当前滑动过程中的触点信息,此方法在touch mixin中
- // this.touchMove(e)
- // this.dragStatus = 'draging'
- // const {
- // width: sliderWidth
- // } = this.sliderRect
- // const diff = (this.deltaX / sliderWidth) * this.getRange()
- // this.newValue = this.startValue + diff
- // this.updateValue(this.newValue, false, true)
- // 获取元素ref
- // const button = this.$refs['nvue-button'].ref
- // const gap = this.$refs['nvue-gap'].ref
-
- // animation.transition(gap, {
- // styles: {
- // width: `${this.startX + this.deltaX}px`
- // }
- // })
- // // console.log(this.startX + this.deltaX);
- // animation.transition(button, {
- // styles: {
- // transform: `translateX(${this.startX + this.deltaX}px)`
- // }
- // })
- // this.barStyle = {
- // width: `${this.startX + this.deltaX}px`
- // }
- const {
- x
- } = this.getTouchPoint(e)
- this.buttonWrapperStyle = {
- transform: `translateX(${x}px)`
- }
- // this.buttonWrapperStyle = {
- // transform: `translateX(${this.format(this.startX + this.deltaX)}px)`
- // }
- },
- // onTouchEnd() {
- // if (this.disabled) return;
- // if (this.dragStatus === 'draging') {
- // this.updateValue(this.newValue, true)
- // this.$emit('drag-end');
- // }
- // },
- updateValue(value, end, drag) {
- value = this.format(value)
- const {
- width: sliderWidth
- } = this.sliderRect
- const width = `${((value - this.min) * sliderWidth) / this.getRange()}`
- this.value = value
- this.barStyle = {
- width: `${width}px`
- }
- // console.log('width', width);
- if (drag) {
- this.$emit('drag', {
- value
- })
- }
- if (end) {
- this.$emit('change', value)
- }
- if ((drag || end)) {
- this.changeFromInside = true
- this.$emit('update', value)
- }
- },
- // 从value的变化,倒推得出x的值该为多少
- initX() {
- const {
- left,
- width
- } = this.sliderRect
- // 得出x的初始偏移值,之所以需要这么做,是因为在bindingX中,触摸滑动时,只能的值本次移动的偏移值
- // 而无法的值准确的前后移动的两个点的坐标值,weex纯粹为阿里巴巴的KPI(部门业绩考核)产物,也就这样了
- this.x = this.value / 100 * width
- // 设置移动的值
- const barStyle = {
- width: `${this.x}px`
- }
- // 按钮的初始值
- const buttonWrapperStyle = {
- transform: `translateX(${this.x - this.blockHeight / 2}px)`
- }
- this.initButtonStyle({
- barStyle,
- buttonWrapperStyle
- })
- },
- // 移动点占总长度的百分比,此处需要先除以step,是为了保证step大于1时,比如10,那么在滑动11,12px这样的
- // 距离时,实际上滑块是不会滑动的,到了16,17px,经过四舍五入后,就变成了20px,进行了下一个跳变
- format(value) {
- return Math.round(uni.$u.range(this.min, this.max, value) / this.step) * this.step
- },
- getRange() {
- const {
- max,
- min
- } = this
- return max - min
- }
- }
-}
diff --git a/uni_modules/uview-ui/components/u-slider/props.js b/uni_modules/uview-ui/components/u-slider/props.js
deleted file mode 100644
index 433a7b5..0000000
--- a/uni_modules/uview-ui/components/u-slider/props.js
+++ /dev/null
@@ -1,54 +0,0 @@
-export default {
- props: {
- // 最小可选值
- min: {
- type: [Number, String],
- default: uni.$u.props.slider.min
- },
- // 最大可选值
- max: {
- type: [Number, String],
- default: uni.$u.props.slider.max
- },
- // 步长,取值必须大于 0,并且可被(max - min)整除
- step: {
- type: [Number, String],
- default: uni.$u.props.slider.step
- },
- // 当前取值
- value: {
- type: [Number, String],
- default: uni.$u.props.slider.value
- },
- // 滑块右侧已选择部分的背景色
- activeColor: {
- type: String,
- default: uni.$u.props.slider.activeColor
- },
- // 滑块左侧未选择部分的背景色
- inactiveColor: {
- type: String,
- default: uni.$u.props.slider.inactiveColor
- },
- // 滑块的大小,取值范围为 12 - 28
- blockSize: {
- type: [Number, String],
- default: uni.$u.props.slider.blockSize
- },
- // 滑块的颜色
- blockColor: {
- type: String,
- default: uni.$u.props.slider.blockColor
- },
- // 禁用状态
- disabled: {
- type: Boolean,
- default: uni.$u.props.slider.disabled
- },
- // 是否显示当前的选择值
- showValue: {
- type: Boolean,
- default: uni.$u.props.slider.showValue
- }
- }
-}
diff --git a/uni_modules/uview-ui/components/u-slider/u-slider.vue b/uni_modules/uview-ui/components/u-slider/u-slider.vue
deleted file mode 100644
index 80ebbed..0000000
--- a/uni_modules/uview-ui/components/u-slider/u-slider.vue
+++ /dev/null
@@ -1,55 +0,0 @@
-<template>
- <view
- class="u-slider"
- :style="[$u.addStyle(customStyle)]"
- >
- <slider
- :min="min"
- :max="max"
- :step="step"
- :value="value"
- :activeColor="activeColor"
- :inactiveColor="inactiveColor"
- :blockSize="$u.getPx(blockSize)"
- :blockColor="blockColor"
- :showValue="showValue"
- :disabled="disabled"
- @changing="changingHandler"
- @change="changeHandler"
- ></slider>
- </view>
-</template>
-
-<script>
- import props from './props.js'
- export default {
- name: 'u--slider',
- mixins: [uni.$u.mpMixin, uni.$u.mixin, props],
- methods: {
- // 拖动过程中触发
- changingHandler(e) {
- const {
- value
- } = e.detail
- // 更新v-model的值
- this.$emit('input', value)
- // 触发事件
- this.$emit('changing', value)
- },
- // 滑动结束时触发
- changeHandler(e) {
- const {
- value
- } = e.detail
- // 更新v-model的值
- this.$emit('input', value)
- // 触发事件
- this.$emit('change', value)
- }
- },
- }
-</script>
-
-<style lang="scss" scoped>
- @import "../../libs/css/components.scss";
-</style>
diff --git a/uni_modules/uview-ui/components/u-status-bar/props.js b/uni_modules/uview-ui/components/u-status-bar/props.js
deleted file mode 100644
index 64b9e63..0000000
--- a/uni_modules/uview-ui/components/u-status-bar/props.js
+++ /dev/null
@@ -1,8 +0,0 @@
-export default {
- props: {
- bgColor: {
- type: String,
- default: uni.$u.props.statusBar.bgColor
- }
- }
-}
diff --git a/uni_modules/uview-ui/components/u-status-bar/u-status-bar.vue b/uni_modules/uview-ui/components/u-status-bar/u-status-bar.vue
deleted file mode 100644
index ed91373..0000000
--- a/uni_modules/uview-ui/components/u-status-bar/u-status-bar.vue
+++ /dev/null
@@ -1,46 +0,0 @@
-<template>
- <view
- :style="[style]"
- class="u-status-bar"
- >
- <slot />
- </view>
-</template>
-
-<script>
- import props from './props.js';
- /**
- * StatbusBar 状态栏占位
- * @description 本组件主要用于状态填充,比如在自定导航栏的时候,它会自动适配一个恰当的状态栏高度。
- * @tutorial https://uviewui.com/components/statusBar.html
- * @property {String} bgColor 背景色 (默认 'transparent' )
- * @property {String | Object} customStyle 自定义样式
- * @example <u-status-bar></u-status-bar>
- */
- export default {
- name: 'u-status-bar',
- mixins: [uni.$u.mpMixin, uni.$u.mixin, props],
- data() {
- return {
- }
- },
- computed: {
- style() {
- const style = {}
- // 状态栏高度,由于某些安卓和微信开发工具无法识别css的顶部状态栏变量,所以使用js获取的方式
- style.height = uni.$u.addUnit(uni.$u.sys().statusBarHeight, 'px')
- style.backgroundColor = this.bgColor
- return uni.$u.deepMerge(style, uni.$u.addStyle(this.customStyle))
- }
- },
- }
-</script>
-
-<style lang="scss" scoped>
- .u-status-bar {
- // nvue会默认100%,如果nvue下,显式写100%的话,会导致宽度不为100%而异常
- /* #ifndef APP-NVUE */
- width: 100%;
- /* #endif */
- }
-</style>
diff --git a/uni_modules/uview-ui/components/u-steps-item/props.js b/uni_modules/uview-ui/components/u-steps-item/props.js
deleted file mode 100644
index 825727a..0000000
--- a/uni_modules/uview-ui/components/u-steps-item/props.js
+++ /dev/null
@@ -1,24 +0,0 @@
-export default {
- props: {
- // 标题
- title: {
- type: [String, Number],
- default: uni.$u.props.stepsItem.title
- },
- // 描述文本
- desc: {
- type: [String, Number],
- default: uni.$u.props.stepsItem.desc
- },
- // 图标大小
- iconSize: {
- type: [String, Number],
- default: uni.$u.props.stepsItem.iconSize
- },
- // 当前步骤是否处于失败状态
- error: {
- type: Boolean,
- default: uni.$u.props.stepsItem.error
- }
- }
-}
diff --git a/uni_modules/uview-ui/components/u-steps-item/u-steps-item.vue b/uni_modules/uview-ui/components/u-steps-item/u-steps-item.vue
deleted file mode 100644
index 342fa63..0000000
--- a/uni_modules/uview-ui/components/u-steps-item/u-steps-item.vue
+++ /dev/null
@@ -1,316 +0,0 @@
-<template>
- <view class="u-steps-item" ref="u-steps-item" :class="[`u-steps-item--${parentData.direction}`]">
- <view class="u-steps-item__line" v-if="index + 1 < childLength"
- :class="[`u-steps-item__line--${parentData.direction}`]" :style="[lineStyle]"></view>
- <view class="u-steps-item__wrapper"
- :class="[`u-steps-item__wrapper--${parentData.direction}`, parentData.dot && `u-steps-item__wrapper--${parentData.direction}--dot`]">
- <slot name="icon">
- <view class="u-steps-item__wrapper__dot" v-if="parentData.dot" :style="{
- backgroundColor: statusColor
- }">
-
- </view>
- <view class="u-steps-item__wrapper__icon" v-else-if="parentData.activeIcon || parentData.inactiveIcon">
- <u-icon :name="index <= parentData.current ? parentData.activeIcon : parentData.inactiveIcon"
- :size="iconSize"
- :color="index <= parentData.current ? parentData.activeColor : parentData.inactiveColor">
- </u-icon>
- </view>
- <view v-else :style="{
- backgroundColor: statusClass === 'process' ? parentData.activeColor : 'transparent',
- borderColor: statusColor
- }" class="u-steps-item__wrapper__circle">
- <text v-if="statusClass === 'process' || statusClass === 'wait'"
- class="u-steps-item__wrapper__circle__text" :style="{
- color: index == parentData.current ? '#ffffff' : parentData.inactiveColor
- }">{{ index + 1}}</text>
- <u-icon v-else :color="statusClass === 'error' ? 'error' : parentData.activeColor" size="12"
- :name="statusClass === 'error' ? 'close' : 'checkmark'"></u-icon>
- </view>
- </slot>
- </view>
- <view class="u-steps-item__content" :class="[`u-steps-item__content--${parentData.direction}`]"
- :style="[contentStyle]">
- <u--text :text="title" :type="parentData.current == index ? 'main' : 'content'" lineHeight="20px"
- :size="parentData.current == index ? 14 : 13"></u--text>
- <slot name="desc">
- <u--text :text="desc" type="tips" size="12"></u--text>
- </slot>
- </view>
- <!-- <view
- class="u-steps-item__line"
- v-if="showLine && parentData.direction === 'column'"
- :class="[`u-steps-item__line--${parentData.direction}`]"
- :style="[lineStyle]"
- ></view> -->
- </view>
-</template>
-
-<script>
- import props from './props.js';
- // #ifdef APP-NVUE
- const dom = uni.requireNativePlugin('dom')
- // #endif
- /**
- * StepsItem 步骤条的子组件
- * @description 本组件需要和u-steps配合使用
- * @tutorial https://uviewui.com/components/steps.html
- * @property {String} title 标题文字
- * @property {String} current 描述文本
- * @property {String | Number} iconSize 图标大小 (默认 17 )
- * @property {Boolean} error 当前步骤是否处于失败状态 (默认 false )
- * @example <u-steps current="0"><u-steps-item title="已出库" desc="10:35" ></u-steps-item></u-steps>
- */
- export default {
- name: 'u-steps-item',
- mixins: [uni.$u.mpMixin, uni.$u.mixin, props],
- data() {
- return {
- index: 0,
- childLength: 0,
- showLine: false,
- size: {
- height: 0,
- width: 0
- },
- parentData: {
- direction: 'row',
- current: 0,
- activeColor: '',
- inactiveColor: '',
- activeIcon: '',
- inactiveIcon: '',
- dot: false
- }
- }
- },
- watch: {
- 'parentData'(newValue, oldValue) {
- }
- },
- created() {
- this.init()
- },
- computed: {
- lineStyle() {
- const style = {}
- if (this.parentData.direction === 'row') {
- style.width = this.size.width + 'px'
- style.left = this.size.width / 2 + 'px'
- } else {
- style.height = this.size.height + 'px'
- // style.top = this.size.height / 2 + 'px'
- }
- style.backgroundColor = this.parent.children?.[this.index + 1]?.error ? uni.$u.color.error : this.index <
- this
- .parentData
- .current ? this.parentData.activeColor : this.parentData.inactiveColor
- return style
- },
- statusClass() {
- const {
- index,
- error
- } = this
- const {
- current
- } = this.parentData
- if (current == index) {
- return error === true ? 'error' : 'process'
- } else if (error) {
- return 'error'
- } else if (current > index) {
- return 'finish'
- } else {
- return 'wait'
- }
- },
- statusColor() {
- let color = ''
- switch (this.statusClass) {
- case 'finish':
- color = this.parentData.activeColor
- break
- case 'error':
- color = uni.$u.color.error
- break
- case 'process':
- color = this.parentData.dot ? this.parentData.activeColor : 'transparent'
- break
- default:
- color = this.parentData.inactiveColor
- break
- }
- return color
- },
- contentStyle() {
- const style = {}
- if (this.parentData.direction === 'column') {
- style.marginLeft = this.parentData.dot ? '2px' : '6px'
- style.marginTop = this.parentData.dot ? '0px' : '6px'
- } else {
- style.marginTop = this.parentData.dot ? '2px' : '6px'
- style.marginLeft = this.parentData.dot ? '2px' : '6px'
- }
-
- return style
- }
- },
- mounted() {
- this.parent && this.parent.updateFromChild()
- uni.$u.sleep().then(() => {
- this.getStepsItemRect()
- })
- },
- methods: {
- init() {
- // 初始化数据
- this.updateParentData()
- if (!this.parent) {
- return uni.$u.error('u-steps-item必须要搭配u-steps组件使用')
- }
- this.index = this.parent.children.indexOf(this)
- this.childLength = this.parent.children.length
- },
- updateParentData() {
- // 此方法在mixin中
- this.getParentData('u-steps')
- },
- // 父组件数据发生变化
- updateFromParent() {
- this.init()
- },
- // 获取组件的尺寸,用于设置横线的位置
- getStepsItemRect() {
- // #ifndef APP-NVUE
- this.$uGetRect('.u-steps-item').then(size => {
- this.size = size
- })
- // #endif
-
- // #ifdef APP-NVUE
- dom.getComponentRect(this.$refs['u-steps-item'], res => {
- const {
- size
- } = res
- this.size = size
- })
- // #endif
- }
- }
- }
-</script>
-
-<style lang="scss" scoped>
- @import "../../libs/css/components.scss";
-
- .u-steps-item {
- flex: 1;
- @include flex;
-
- &--row {
- flex-direction: column;
- align-items: center;
- position: relative;
- }
-
- &--column {
- position: relative;
- flex-direction: row;
- justify-content: flex-start;
- padding-bottom: 5px;
- }
-
- &__wrapper {
- @include flex;
- justify-content: center;
- align-items: center;
- position: relative;
- background-color: #fff;
-
- &--column {
- width: 20px;
- height: 32px;
-
- &--dot {
- height: 20px;
- width: 20px;
- }
- }
-
- &--row {
- width: 32px;
- height: 20px;
-
- &--dot {
- width: 20px;
- height: 20px;
- }
- }
-
- &__circle {
- width: 20px;
- height: 20px;
- /* #ifndef APP-NVUE */
- box-sizing: border-box;
- flex-shrink: 0;
- /* #endif */
- border-radius: 100px;
- border-width: 1px;
- border-color: $u-tips-color;
- border-style: solid;
- @include flex(row);
- align-items: center;
- justify-content: center;
- transition: background-color 0.3s;
-
- &__text {
- color: $u-tips-color;
- font-size: 11px;
- @include flex(row);
- align-items: center;
- justify-content: center;
- text-align: center;
- line-height: 11px;
- }
- }
-
- &__dot {
- width: 10px;
- height: 10px;
- border-radius: 100px;
- background-color: $u-content-color;
- }
- }
-
- &__content {
- @include flex;
- flex: 1;
-
- &--row {
- flex-direction: column;
- align-items: center;
- }
-
- &--column {
- flex-direction: column;
- margin-left: 6px;
- }
- }
-
- &__line {
- position: absolute;
- background: $u-tips-color;
-
- &--row {
- top: 10px;
- height: 1px;
- }
-
- &--column {
- width: 1px;
- left: 10px;
- }
- }
- }
-</style>
diff --git a/uni_modules/uview-ui/components/u-steps/props.js b/uni_modules/uview-ui/components/u-steps/props.js
deleted file mode 100644
index 6d4c768..0000000
--- a/uni_modules/uview-ui/components/u-steps/props.js
+++ /dev/null
@@ -1,39 +0,0 @@
-export default {
- props: {
- // 排列方向
- direction: {
- type: String,
- default: uni.$u.props.steps.direction
- },
- // 设置第几个步骤
- current: {
- type: [String, Number],
- default: uni.$u.props.steps.current
- },
- // 激活状态颜色
- activeColor: {
- type: String,
- default: uni.$u.props.steps.activeColor
- },
- // 未激活状态颜色
- inactiveColor: {
- type: String,
- default: uni.$u.props.steps.inactiveColor
- },
- // 激活状态的图标
- activeIcon: {
- type: String,
- default: uni.$u.props.steps.activeIcon
- },
- // 未激活状态图标
- inactiveIcon: {
- type: String,
- default: uni.$u.props.steps.inactiveIcon
- },
- // 是否显示点类型
- dot: {
- type: Boolean,
- default: uni.$u.props.steps.dot
- }
- }
-}
diff --git a/uni_modules/uview-ui/components/u-steps/u-steps.vue b/uni_modules/uview-ui/components/u-steps/u-steps.vue
deleted file mode 100644
index 3ab7764..0000000
--- a/uni_modules/uview-ui/components/u-steps/u-steps.vue
+++ /dev/null
@@ -1,80 +0,0 @@
-<template>
- <view
- class="u-steps"
- :class="[`u-steps--${direction}`]"
- >
- <slot></slot>
- </view>
-</template>
-
-<script>
- import props from './props.js';
- /**
- * Steps 步骤条
- * @description 该组件一般用于完成一个任务要分几个步骤,标识目前处于第几步的场景。
- * @tutorial https://uviewui.com/components/steps.html
- * @property {String} direction row-横向,column-竖向 (默认 'row' )
- * @property {String | Number} current 设置当前处于第几步 (默认 0 )
- * @property {String} activeColor 激活状态颜色 (默认 '#3c9cff' )
- * @property {String} inactiveColor 未激活状态颜色 (默认 '#969799' )
- * @property {String} activeIcon 激活状态的图标
- * @property {String} inactiveIcon 未激活状态图标
- * @property {Boolean} dot 是否显示点类型 (默认 false )
- * @example <u-steps current="0"><u-steps-item title="已出库" desc="10:35" ></u-steps-item></u-steps>
- */
- export default {
- name: 'u-steps',
- mixins: [uni.$u.mpMixin, uni.$u.mixin, props],
- data() {
- return {
- }
- },
- watch: {
- children() {
- this.updateChildData()
- },
- parentData() {
- this.updateChildData()
- }
- },
- computed: {
- // 监听参数的变化,通过watch中,手动去更新子组件的数据,否则子组件不会自动变化
- parentData() {
- return [this.current, this.direction, this.activeColor, this.inactiveColor, this.activeIcon, this.inactiveIcon, this.dot]
- }
- },
- methods: {
- // 更新子组件的数据
- updateChildData() {
- this.children.map(child => {
- // 先判断子组件是否存在对应的方法
- uni.$u.test.func((child || {}).updateFromParent()) && child.updateFromParent()
- })
- },
- // 接受子组件的通知,去修改其他子组件的数据
- updateFromChild() {
- this.updateChildData()
- }
- },
- created() {
- this.children = []
- }
- }
-</script>
-
-<style lang="scss" scoped>
- @import "../../libs/css/components.scss";
-
- .u-steps {
- @include flex;
-
- &--column {
- flex-direction: column
- }
-
- &--row {
- flex-direction: row;
- flex: 1;
- }
- }
-</style>
diff --git a/uni_modules/uview-ui/components/u-sticky/props.js b/uni_modules/uview-ui/components/u-sticky/props.js
deleted file mode 100644
index c2ca8da..0000000
--- a/uni_modules/uview-ui/components/u-sticky/props.js
+++ /dev/null
@@ -1,40 +0,0 @@
-export default {
- props: {
- // 吸顶容器到顶部某个距离的时候,进行吸顶,在H5平台,NavigationBar为44px
- offsetTop: {
- type: [String, Number],
- default: uni.$u.props.sticky.offsetTop
- },
- // 自定义导航栏的高度
- customNavHeight: {
- type: [String, Number],
- // #ifdef H5
- // H5端的导航栏属于“自定义”导航栏的范畴,因为它是非原生的,与普通元素一致
- default: 44,
- // #endif
- // #ifndef H5
- default: uni.$u.props.sticky.customNavHeight
- // #endif
- },
- // 是否开启吸顶功能
- disabled: {
- type: Boolean,
- default: uni.$u.props.sticky.disabled
- },
- // 吸顶区域的背景颜色
- bgColor: {
- type: String,
- default: uni.$u.props.sticky.bgColor
- },
- // z-index值
- zIndex: {
- type: [String, Number],
- default: uni.$u.props.sticky.zIndex
- },
- // 列表中的索引值
- index: {
- type: [String, Number],
- default: uni.$u.props.sticky.index
- }
- }
-}
diff --git a/uni_modules/uview-ui/components/u-sticky/u-sticky.vue b/uni_modules/uview-ui/components/u-sticky/u-sticky.vue
deleted file mode 100644
index ff74688..0000000
--- a/uni_modules/uview-ui/components/u-sticky/u-sticky.vue
+++ /dev/null
@@ -1,212 +0,0 @@
-<template>
- <view
- class="u-sticky"
- :id="elId"
- :style="[style]"
- >
- <view
- :style="[stickyContent]"
- class="u-sticky__content"
- >
- <slot />
- </view>
- </view>
-</template>
-
-<script>
- import props from './props.js';;
- /**
- * sticky 吸顶
- * @description 该组件与CSS中position: sticky属性实现的效果一致,当组件达到预设的到顶部距离时, 就会固定在指定位置,组件位置大于预设的顶部距离时,会重新按照正常的布局排列。
- * @tutorial https://www.uviewui.com/components/sticky.html
- * @property {String | Number} offsetTop 吸顶时与顶部的距离,单位px(默认 0 )
- * @property {String | Number} customNavHeight 自定义导航栏的高度 (h5 默认44 其他默认 0 )
- * @property {Boolean} disabled 是否开启吸顶功能 (默认 false )
- * @property {String} bgColor 组件背景颜色(默认 '#ffffff' )
- * @property {String | Number} zIndex 吸顶时的z-index值
- * @property {String | Number} index 自定义标识,用于区分是哪一个组件
- * @property {Object} customStyle 组件的样式,对象形式
- * @event {Function} fixed 组件吸顶时触发
- * @event {Function} unfixed 组件取消吸顶时触发
- * @example <u-sticky offsetTop="200"><view>塞下秋来风景异,衡阳雁去无留意</view></u-sticky>
- */
- export default {
- name: 'u-sticky',
- mixins: [uni.$u.mpMixin, uni.$u.mixin, props],
- data() {
- return {
- cssSticky: false, // 是否使用css的sticky实现
- stickyTop: 0, // 吸顶的top值,因为可能受自定义导航栏影响,最终的吸顶值非offsetTop值
- elId: uni.$u.guid(),
- left: 0, // js模式时,吸顶的内容因为处于postition: fixed模式,为了和原来保持一致的样式,需要记录并重新设置它的left,height,width属性
- width: 'auto',
- height: 'auto',
- fixed: false, // js模式时,是否处于吸顶模式
- }
- },
- computed: {
- style() {
- const style = {}
- if(!this.disabled) {
- if (this.cssSticky) {
- style.position = 'sticky'
- style.zIndex = this.uZindex
- style.top = uni.$u.addUnit(this.stickyTop)
- } else {
- style.height = this.fixed ? this.height + 'px' : 'auto'
- }
- } else {
- // 无需吸顶时,设置会默认的relative(nvue)和非nvue的static静态模式即可
- // #ifdef APP-NVUE
- style.position = 'relative'
- // #endif
- // #ifndef APP-NVUE
- style.position = 'static'
- // #endif
- }
- style.backgroundColor = this.bgColor
- return uni.$u.deepMerge(uni.$u.addStyle(this.customStyle), style)
- },
- // 吸顶内容的样式
- stickyContent() {
- const style = {}
- if (!this.cssSticky) {
- style.position = this.fixed ? 'fixed' : 'static'
- style.top = this.stickyTop + 'px'
- style.left = this.left + 'px'
- style.width = this.width == 'auto' ? 'auto' : this.width + 'px'
- style.zIndex = this.uZindex
- }
- return style
- },
- uZindex() {
- return this.zIndex ? this.zIndex : uni.$u.zIndex.sticky
- }
- },
- mounted() {
- this.init()
- },
- methods: {
- init() {
- this.getStickyTop()
- // 判断使用的模式
- this.checkSupportCssSticky()
- // 如果不支持css sticky,则使用js方案,此方案性能比不上css方案
- if (!this.cssSticky) {
- !this.disabled && this.initObserveContent()
- }
- },
- initObserveContent() {
- // 获取吸顶内容的高度,用于在js吸顶模式时,给父元素一个填充高度,防止"塌陷"
- this.$uGetRect('#' + this.elId).then((res) => {
- this.height = res.height
- this.left = res.left
- this.width = res.width
- this.$nextTick(() => {
- this.observeContent()
- })
- })
- },
- observeContent() {
- // 先断掉之前的观察
- this.disconnectObserver('contentObserver')
- const contentObserver = uni.createIntersectionObserver({
- // 检测的区间范围
- thresholds: [0.95, 0.98, 1]
- })
- // 到屏幕顶部的高度时触发
- contentObserver.relativeToViewport({
- top: -this.stickyTop
- })
- // 绑定观察的元素
- contentObserver.observe(`#${this.elId}`, res => {
- this.setFixed(res.boundingClientRect.top)
- })
- this.contentObserver = contentObserver
- },
- setFixed(top) {
- // 判断是否出于吸顶条件范围
- const fixed = top <= this.stickyTop
- this.fixed = fixed
- },
- disconnectObserver(observerName) {
- // 断掉观察,释放资源
- const observer = this[observerName]
- observer && observer.disconnect()
- },
- getStickyTop() {
- this.stickyTop = uni.$u.getPx(this.offsetTop) + uni.$u.getPx(this.customNavHeight)
- },
- async checkSupportCssSticky() {
- // #ifdef H5
- // H5,一般都是现代浏览器,是支持css sticky的,这里使用创建元素嗅探的形式判断
- if (this.checkCssStickyForH5()) {
- this.cssSticky = true
- }
- // #endif
-
- // 如果安卓版本高于8.0,依然认为是支持css sticky的(因为安卓7在某些机型,可能不支持sticky)
- if (uni.$u.os() === 'android' && Number(uni.$u.sys().system) > 8) {
- this.cssSticky = true
- }
-
- // APP-Vue和微信平台,通过computedStyle判断是否支持css sticky
- // #ifdef APP-VUE || MP-WEIXIN
- this.cssSticky = await this.checkComputedStyle()
- // #endif
-
- // ios上,从ios6开始,都是支持css sticky的
- if (uni.$u.os() === 'ios') {
- this.cssSticky = true
- }
-
- // nvue,是支持css sticky的
- // #ifdef APP-NVUE
- this.cssSticky = true
- // #endif
- },
- // 在APP和微信小程序上,通过uni.createSelectorQuery可以判断是否支持css sticky
- checkComputedStyle() {
- // 方法内进行判断,避免在其他平台生成无用代码
- // #ifdef APP-VUE || MP-WEIXIN
- return new Promise(resolve => {
- uni.createSelectorQuery().in(this).select('.u-sticky').fields({
- computedStyle: ["position"]
- }).exec(e => {
- resolve('sticky' === e[0].position)
- })
- })
- // #endif
- },
- // H5通过创建元素的形式嗅探是否支持css sticky
- // 判断浏览器是否支持sticky属性
- checkCssStickyForH5() {
- // 方法内进行判断,避免在其他平台生成无用代码
- // #ifdef H5
- const vendorList = ['', '-webkit-', '-ms-', '-moz-', '-o-'],
- vendorListLength = vendorList.length,
- stickyElement = document.createElement('div')
- for (let i = 0; i < vendorListLength; i++) {
- stickyElement.style.position = vendorList[i] + 'sticky'
- if (stickyElement.style.position !== '') {
- return true
- }
- }
- return false;
- // #endif
- }
- },
- beforeDestroy() {
- this.disconnectObserver('contentObserver')
- }
- }
-</script>
-
-<style lang="scss" scoped>
- .u-sticky {
- /* #ifdef APP-VUE || MP-WEIXIN */
- // 此处默认写sticky属性,是为了给微信和APP通过uni.createSelectorQuery查询是否支持css sticky使用
- position: sticky;
- /* #endif */
- }
-</style>
diff --git a/uni_modules/uview-ui/components/u-subsection/props.js b/uni_modules/uview-ui/components/u-subsection/props.js
deleted file mode 100644
index 5675eaa..0000000
--- a/uni_modules/uview-ui/components/u-subsection/props.js
+++ /dev/null
@@ -1,49 +0,0 @@
-export default {
- props: {
- // tab的数据
- list: {
- type: Array,
- default: uni.$u.props.subsection.list
- },
- // 当前活动的tab的index
- current: {
- type: [String, Number],
- default: uni.$u.props.subsection.current
- },
- // 激活的颜色
- activeColor: {
- type: String,
- default: uni.$u.props.subsection.activeColor
- },
- // 未激活的颜色
- inactiveColor: {
- type: String,
- default: uni.$u.props.subsection.inactiveColor
- },
- // 模式选择,mode=button为按钮形式,mode=subsection时为分段模式
- mode: {
- type: String,
- default: uni.$u.props.subsection.mode
- },
- // 字体大小
- fontSize: {
- type: [String, Number],
- default: uni.$u.props.subsection.fontSize
- },
- // 激活tab的字体是否加粗
- bold: {
- type: Boolean,
- default: uni.$u.props.subsection.bold
- },
- // mode = button时,组件背景颜色
- bgColor: {
- type: String,
- default: uni.$u.props.subsection.bgColor
- },
- // 从list元素对象中读取的键名
- keyName: {
- type: String,
- default: uni.$u.props.subsection.keyName
- }
- }
-}
diff --git a/uni_modules/uview-ui/components/u-subsection/u-subsection.vue b/uni_modules/uview-ui/components/u-subsection/u-subsection.vue
deleted file mode 100644
index cc4d540..0000000
--- a/uni_modules/uview-ui/components/u-subsection/u-subsection.vue
+++ /dev/null
@@ -1,299 +0,0 @@
-<template>
- <view
- class="u-subsection"
- ref="u-subsection"
- :class="[`u-subsection--${mode}`]"
- :style="[$u.addStyle(customStyle), wrapperStyle]"
- >
- <view
- class="u-subsection__bar"
- ref="u-subsection__bar"
- :style="[barStyle]"
- :class="[
- mode === 'button' && 'u-subsection--button__bar',
- current === 0 &&
- mode === 'subsection' &&
- 'u-subsection__bar--first',
- current > 0 &&
- current < list.length - 1 &&
- mode === 'subsection' &&
- 'u-subsection__bar--center',
- current === list.length - 1 &&
- mode === 'subsection' &&
- 'u-subsection__bar--last',
- ]"
- ></view>
- <view
- class="u-subsection__item"
- :class="[
- `u-subsection__item--${index}`,
- index < list.length - 1 &&
- 'u-subsection__item--no-border-right',
- index === 0 && 'u-subsection__item--first',
- index === list.length - 1 && 'u-subsection__item--last',
- ]"
- :ref="`u-subsection__item--${index}`"
- :style="[itemStyle(index)]"
- @tap="clickHandler(index)"
- v-for="(item, index) in list"
- :key="index"
- >
- <text
- class="u-subsection__item__text"
- :style="[textStyle(index)]"
- >{{ getText(item) }}</text
- >
- </view>
- </view>
-</template>
-
-<script>
-// #ifdef APP-NVUE
-const dom = uni.requireNativePlugin("dom");
-const animation = uni.requireNativePlugin("animation");
-// #endif
-import props from "./props.js";
-/**
- * Subsection 分段器
- * @description 该分段器一般用于用户从几个选项中选择某一个的场景
- * @tutorial https://www.uviewui.com/components/subsection.html
- * @property {Array} list tab的数据
- * @property {String | Number} current 当前活动的tab的index(默认 0 )
- * @property {String} activeColor 激活时的颜色(默认 '#3c9cff' )
- * @property {String} inactiveColor 未激活时的颜色(默认 '#303133' )
- * @property {String} mode 模式选择,mode=button为按钮形式,mode=subsection时为分段模式(默认 'button' )
- * @property {String | Number} fontSize 字体大小,单位px(默认 12 )
- * @property {Boolean} bold 激活选项的字体是否加粗(默认 true )
- * @property {String} bgColor 组件背景颜色,mode为button时有效(默认 '#eeeeef' )
- * @property {Object} customStyle 定义需要用到的外部样式
- * @property {String} keyName 从`list`元素对象中读取的键名(默认 'name' )
- *
- * @event {Function} change 分段器选项发生改变时触发 回调 index:选项的index索引值,从0开始
- * @example <u-subsection :list="list" :current="curNow" @change="sectionChange"></u-subsection>
- */
-export default {
- name: "u-subsection",
- mixins: [uni.$u.mpMixin, uni.$u.mixin, props],
- data() {
- return {
- // 组件尺寸
- itemRect: {
- width: 0,
- height: 0,
- },
- };
- },
- watch: {
- list(newValue, oldValue) {
- this.init();
- },
- current: {
- immediate: true,
- handler(n) {
- // #ifdef APP-NVUE
- // 在安卓nvue上,如果通过translateX进行位移,到最后一个时,会导致右侧无法绘制圆角
- // 故用animation模块进行位移
- const ref = this.$refs?.["u-subsection__bar"]?.ref;
- // 不存在ref的时候(理解为第一次初始化时,需要渲染dom,进行一定延时再获取ref),这里的100ms是经过测试得出的结果(某些安卓需要延时久一点),勿随意修改
- uni.$u.sleep(ref ? 0 : 100).then(() => {
- animation.transition(this.$refs["u-subsection__bar"].ref, {
- styles: {
- transform: `translateX(${
- n * this.itemRect.width
- }px)`,
- transformOrigin: "center center",
- },
- duration: 300,
- });
- });
- // #endif
- },
- },
- },
- computed: {
- wrapperStyle() {
- const style = {};
- // button模式时,设置背景色
- if (this.mode === "button") {
- style.backgroundColor = this.bgColor;
- }
- return style;
- },
- // 滑块的样式
- barStyle() {
- const style = {};
- style.width = `${this.itemRect.width}px`;
- style.height = `${this.itemRect.height}px`;
- // 通过translateX移动滑块,其移动的距离为索引*item的宽度
- // #ifndef APP-NVUE
- style.transform = `translateX(${
- this.current * this.itemRect.width
- }px)`;
- // #endif
- if (this.mode === "subsection") {
- // 在subsection模式下,需要动态设置滑块的圆角,因为移动滑块使用的是translateX,无法通过父元素设置overflow: hidden隐藏滑块的直角
- style.backgroundColor = this.activeColor;
- }
- return style;
- },
- // 分段器item的样式
- itemStyle(index) {
- return (index) => {
- const style = {};
- if (this.mode === "subsection") {
- // 设置border的样式
- style.borderColor = this.activeColor;
- style.borderWidth = "1px";
- style.borderStyle = "solid";
- }
- return style;
- };
- },
- // 分段器文字颜色
- textStyle(index) {
- return (index) => {
- const style = {};
- style.fontWeight =
- this.bold && this.current === index ? "bold" : "normal";
- style.fontSize = uni.$u.addUnit(this.fontSize);
- // subsection模式下,激活时默认为白色的文字
- if (this.mode === "subsection") {
- style.color =
- this.current === index ? "#fff" : this.inactiveColor;
- } else {
- // button模式下,激活时文字颜色默认为activeColor
- style.color =
- this.current === index
- ? this.activeColor
- : this.inactiveColor;
- }
- return style;
- };
- },
- },
- mounted() {
- this.init();
- },
- methods: {
- init() {
- uni.$u.sleep().then(() => this.getRect());
- },
- // 判断展示文本
- getText(item) {
- return typeof item === 'object' ? item[this.keyName] : item
- },
- // 获取组件的尺寸
- getRect() {
- // #ifndef APP-NVUE
- this.$uGetRect(".u-subsection__item--0").then((size) => {
- this.itemRect = size;
- });
- // #endif
-
- // #ifdef APP-NVUE
- const ref = this.$refs["u-subsection__item--0"][0];
- ref &&
- dom.getComponentRect(ref, (res) => {
- this.itemRect = res.size;
- });
- // #endif
- },
- clickHandler(index) {
- this.$emit("change", index);
- },
- },
-};
-</script>
-
-<style lang="scss" scoped>
-@import "../../libs/css/components.scss";
-
-.u-subsection {
- @include flex;
- position: relative;
- overflow: hidden;
- /* #ifndef APP-NVUE */
- width: 100%;
- box-sizing: border-box;
- /* #endif */
-
- &--button {
- height: 32px;
- background-color: rgb(238, 238, 239);
- padding: 3px;
- border-radius: 3px;
- align-items: stretch;
-
- &__bar {
- background-color: #ffffff;
- border-radius: 3px !important;
- }
- }
-
- &--subsection {
- height: 30px;
- }
-
- &__bar {
- position: absolute;
- /* #ifndef APP-NVUE */
- transition-property: transform, color;
- transition-duration: 0.3s;
- transition-timing-function: ease-in-out;
- /* #endif */
-
- &--first {
- border-top-left-radius: 3px;
- border-bottom-left-radius: 3px;
- border-top-right-radius: 0px;
- border-bottom-right-radius: 0px;
- }
-
- &--center {
- border-top-left-radius: 0px;
- border-bottom-left-radius: 0px;
- border-top-right-radius: 0px;
- border-bottom-right-radius: 0px;
- }
-
- &--last {
- border-top-left-radius: 0px;
- border-bottom-left-radius: 0px;
- border-top-right-radius: 3px;
- border-bottom-right-radius: 3px;
- }
- }
-
- &__item {
- @include flex;
- flex: 1;
- justify-content: center;
- align-items: center;
- // vue环境下,需要设置相对定位,因为滑块为绝对定位,item需要在滑块的上面
- position: relative;
-
- &--no-border-right {
- border-right-width: 0 !important;
- }
-
- &--first {
- border-top-left-radius: 3px;
- border-bottom-left-radius: 3px;
- }
-
- &--last {
- border-top-right-radius: 3px;
- border-bottom-right-radius: 3px;
- }
-
- &__text {
- font-size: 12px;
- line-height: 12px;
- @include flex;
- align-items: center;
- transition-property: color;
- transition-duration: 0.3s;
- }
- }
-}
-</style>
diff --git a/uni_modules/uview-ui/components/u-swipe-action-item/index - backup.wxs b/uni_modules/uview-ui/components/u-swipe-action-item/index - backup.wxs
deleted file mode 100644
index 04cab92..0000000
--- a/uni_modules/uview-ui/components/u-swipe-action-item/index - backup.wxs
+++ /dev/null
@@ -1,256 +0,0 @@
-/**
- * 此为wxs模块,只支持APP-VUE,微信和QQ小程序以及H5平台
- * wxs内部不支持es6语法,变量只能使用var定义,无法使用解构,箭头函数等特性
- */
-
-// 开始触摸
-function touchstart(event, ownerInstance) {
- // 触发事件的组件的ComponentDescriptor实例
- var instance = event.instance
- // wxs内的局部变量快照,此快照是属于整个组件的,在touchstart和touchmove事件中都能获取到相同的结果
- var state = instance.getState()
- if (state.disable) return
- var touches = event.touches
- // 如果进行的是多指触控,不允许进行操作
- if (touches && touches.length > 1) return
- // 标识当前为滑动中状态
- state.moving = true
- // 记录触摸开始点的坐标值
- state.startX = touches[0].pageX
- state.startY = touches[0].pageY
-}
-
-// 触摸滑动
-function touchmove(event, ownerInstance) {
- // 触发事件的组件的ComponentDescriptor实例
- var instance = event.instance
- // wxs内的局部变量快照
- var state = instance.getState()
- if (state.disabled || !state.moving) return
-
- var touches = event.touches
- var pageX = touches[0].pageX
- var pageY = touches[0].pageY
- var moveX = pageX - state.startX
- var moveY = pageY - state.startY
- var buttonsWidth = state.buttonsWidth
-
- // 移动的X轴距离大于Y轴距离,也即终点与起点位置连线,与X轴夹角小于45度时,禁止页面滚动
- if (Math.abs(moveX) > Math.abs(moveY) || Math.abs(moveX) > state.threshold) {
- event.preventDefault()
- event.stopPropagation()
- }
- // 如果移动的X轴距离小于Y轴距离,也即终点位置与起点位置连线,与Y轴夹角小于45度时,认为是页面上下滑动,而不是左右滑动单元格
- if (Math.abs(moveX) < Math.abs(moveY)) return
-
- // 限制右滑的距离,不允许内容部分往右偏移,右滑会导致X轴偏移值大于0,以此做判断
- // 此处不能直接return,因为滑动过程中会缺失某些关键点坐标,会导致错乱,最好的办法就是
- // 在超出后,设置为0
- if (state.status === 'open') {
- // 在开启状态下,向左滑动,需忽略
- if (moveX < 0) moveX = 0
- // 想要收起菜单,最大能移动的距离为按钮的总宽度
- if (moveX > buttonsWidth) moveX = buttonsWidth
- // 如果是已经打开了的状态,向左滑动时,移动收起菜单
- moveSwipeAction(-buttonsWidth + moveX, instance, ownerInstance)
- } else {
- // 关闭状态下,右滑动需忽略
- if (moveX > 0) moveX = 0
- // 滑动的距离不允许超过所有按钮的总宽度,此时只能是左滑,最终设置按钮的总宽度,同时为负数
- if (Math.abs(moveX) > buttonsWidth) moveX = -buttonsWidth
- // 只要是在滑过程中,就不断移动菜单的内容部分,从而使隐藏的菜单显示出来
- moveSwipeAction(moveX, instance, ownerInstance)
- }
-}
-
-// 触摸结束
-function touchend(event, ownerInstance) {
- // 触发事件的组件的ComponentDescriptor实例
- var instance = event.instance
- // wxs内的局部变量快照
- var state = instance.getState()
- if (!state.moving || state.disabled) return
- var touches = event.changedTouches ? event.changedTouches[0] : {}
- var pageX = touches.pageX
- var pageY = touches.pageY
- var moveX = pageX - state.startX
- if (state.status === 'open') {
- // 在展开的状态下,继续左滑,无需操作
- if (moveX < 0) return
- // 在开启状态下,点击一下内容区域,moveX为0,也即没有进行移动,这时执行收起菜单逻辑
- if (moveX === 0) {
- return closeSwipeAction(instance, ownerInstance)
- }
- // 在开启状态下,滑动距离小于阈值,则默认为不关闭,同时恢复原来的打开状态
- if (Math.abs(moveX) < state.threshold) {
- openSwipeAction(instance, ownerInstance)
- } else {
- // 如果滑动距离大于阈值,则执行收起逻辑
- closeSwipeAction(instance, ownerInstance)
- }
- } else {
- // 在关闭的状态下,右滑,无需操作
- if (moveX > 0) return
- // 理由同上
- if (Math.abs(moveX) < state.threshold) {
- closeSwipeAction(instance, ownerInstance)
- } else {
- openSwipeAction(instance, ownerInstance)
- }
- }
-}
-
-// 获取过渡时间
-function getDuration(value) {
- if (value.toString().indexOf('s') >= 0) return value
- return value > 30 ? value + 'ms' : value + 's'
-}
-
-// 滑动结束时判断滑动的方向
-function getMoveDirection(instance, ownerInstance) {
- var state = instance.getState()
-}
-
-// 移动滑动选择器内容区域,同时显示出其隐藏的菜单
-function moveSwipeAction(moveX, instance, ownerInstance) {
- var state = instance.getState()
- // 获取所有按钮的实例,需要通过它去设置按钮的位移
- var buttons = ownerInstance.selectAllComponents('.u-swipe-action-item__right__button')
- var len = buttons.length
- var previewButtonsMoveX = 0
-
- // 设置菜单内容部分的偏移
- instance.requestAnimationFrame(function() {
- instance.setStyle({
- // 设置translateX的值
- 'transition': 'none',
- transform: 'translateX(' + moveX + 'px)',
- '-webkit-transform': 'translateX(' + moveX + 'px)'
- })
- // 折叠按钮动画
- for (var i = len - 1; i >= 0; i--) {
- // 通过比例,得出元素自身该移动的距离
- var translateX = state.buttons[i].width / state.buttonsWidth * moveX
- // 最终移动的距离,是通过自身比例算出的距离,再加上在它之前所有按钮移动的距离之和
- var realTranslateX = translateX + previewButtonsMoveX
- buttons[i].setStyle({
- // 在移动期间,不能使用过渡效果,否则会造成卡顿,本质原因是每次移动一点,就要花一定时间去过渡这个过程
- 'transition': 'none',
- 'transform': 'translateX(' + realTranslateX + 'px)',
- '-webkit-transform': 'translateX(' + realTranslateX + 'px)'
- })
- // 记录本按钮之前的所有按钮的移动距离之和
- previewButtonsMoveX += translateX
- }
- })
-}
-
-// 一次性展开滑动菜单
-function openSwipeAction(instance, ownerInstance) {
- var state = instance.getState()
- // 获取所有按钮的实例,需要通过它去设置按钮的位移
- var buttons = ownerInstance.selectAllComponents('.u-swipe-action-item__right__button')
- var len = buttons.length
- // 处理duration单位问题
- const duration = getDuration(state.duration)
- // 展开过程中,是向左移动,所以X的偏移应该为负值
- var buttonsWidth = -state.buttonsWidth
- var previewButtonsMoveX = 0
- instance.requestAnimationFrame(function() {
- // 设置菜单主体内容
- instance.setStyle({
- 'transition': 'transform ' + duration,
- 'transform': 'translateX(' + buttonsWidth + 'px)',
- '-webkit-transform': 'translateX(' + buttonsWidth + 'px)',
- })
- // 设置各个隐藏的按钮为展开的状态
- for (var i = len - 1; i >= 0; i--) {
- // 通过比例,得出元素自身该移动的距离
- var translateX = state.buttons[i].width / state.buttonsWidth * buttonsWidth
- // 最终移动的距离,是通过自身比例算出的距离,再加上在它之前所有按钮移动的距离之和
- var realTranslateX = translateX + previewButtonsMoveX
- buttons[i].setStyle({
- // 在移动期间,需要加上动画效果
- 'transition': 'transform ' + duration,
- 'transform': 'translateX(' + realTranslateX + 'px)',
- '-webkit-transform': 'translateX(' + realTranslateX + 'px)'
- })
- // 记录本按钮之前的所有按钮的移动距离之和
- previewButtonsMoveX += translateX
- }
- })
- setStatus('open', instance)
-}
-
-// 标记菜单的当前状态,open-已经打开,close-已经关闭
-function setStatus(status, instance) {
- var state = instance.getState()
- state.status = status
-}
-
-// 一次性收起滑动菜单
-function closeSwipeAction(instance, ownerInstance) {
- var state = instance.getState()
- // 获取所有按钮的实例,需要通过它去设置按钮的位移
- var buttons = ownerInstance.selectAllComponents('.u-swipe-action-item__right__button')
- var len = buttons.length
- // 处理duration单位问题
- const duration = getDuration(state.duration)
- instance.requestAnimationFrame(function() {
- // 设置菜单主体内容
- instance.setStyle({
- 'transition': 'transform ' + duration,
- 'transform': 'translateX(0px)',
- '-webkit-transform': 'translateX(0px)'
- })
- // 设置各个隐藏的按钮为收起的状态
- for (var i = len - 1; i >= 0; i--) {
- buttons[i].setStyle({
- 'transition': 'transform ' + duration,
- 'transform': 'translateX(0px)',
- '-webkit-transform': 'translateX(0px)'
- })
- }
- })
- setStatus('close', instance)
-}
-
-// show的状态发生变化
-function showChange(newValue, oldValue, ownerInstance, instance) {
- var state = instance.getState()
- if (state.disabled) return
- // 打开或关闭单元格
- if (newValue) {
- openSwipeAction(instance, ownerInstance)
- } else {
- closeSwipeAction(instance, ownerInstance)
- }
-}
-
-// 菜单尺寸发生变化
-function sizeChange(newValue, oldValue, ownerInstance, instance) {
- // wxs内的局部变量快照
- var state = instance.getState()
- state.disabled = newValue.disabled
- state.duration = newValue.duration
- state.show = newValue.show
- state.threshold = newValue.threshold
- state.buttons = newValue.buttons
-
- var len = state.buttons.length
- if (len) {
- var buttonsWidth = 0
- var buttons = newValue.buttons
- for (var i = 0; i < len; i++) {
- buttonsWidth += buttons[i].width
- }
- }
- state.buttonsWidth = buttonsWidth
-}
-
-module.exports = {
- touchstart: touchstart,
- touchmove: touchmove,
- touchend: touchend,
- sizeChange: sizeChange
-}
diff --git a/uni_modules/uview-ui/components/u-swipe-action-item/index.wxs b/uni_modules/uview-ui/components/u-swipe-action-item/index.wxs
deleted file mode 100644
index 728275f..0000000
--- a/uni_modules/uview-ui/components/u-swipe-action-item/index.wxs
+++ /dev/null
@@ -1,225 +0,0 @@
-/**
- * 此为wxs模块,只支持APP-VUE,微信和QQ小程序以及H5平台
- * wxs内部不支持es6语法,变量只能使用var定义,无法使用解构,箭头函数等特性
- */
-
-// 开始触摸
-function touchstart(event, ownerInstance) {
- // 触发事件的组件的ComponentDescriptor实例
- var instance = event.instance
- // wxs内的局部变量快照,此快照是属于整个组件的,在touchstart和touchmove事件中都能获取到相同的结果
- var state = instance.getState()
- if (state.disabled) return
- var touches = event.touches
- // 如果进行的是多指触控,不允许进行操作
- if (touches && touches.length > 1) return
- // 标识当前为滑动中状态
- state.moving = true
- // 记录触摸开始点的坐标值
- state.startX = touches[0].pageX
- state.startY = touches[0].pageY
-
- ownerInstance.callMethod('closeOther')
-}
-
-// 触摸滑动
-function touchmove(event, ownerInstance) {
- // 触发事件的组件的ComponentDescriptor实例
- var instance = event.instance
- // wxs内的局部变量快照
- var state = instance.getState()
- if (state.disabled || !state.moving) return
- var touches = event.touches
- var pageX = touches[0].pageX
- var pageY = touches[0].pageY
- var moveX = pageX - state.startX
- var moveY = pageY - state.startY
- var buttonsWidth = state.buttonsWidth
-
- // 移动的X轴距离大于Y轴距离,也即终点与起点位置连线,与X轴夹角小于45度时,禁止页面滚动
- if (Math.abs(moveX) > Math.abs(moveY) || Math.abs(moveX) > state.threshold) {
- event.preventDefault && event.preventDefault()
- event.stopPropagation && event.stopPropagation()
- }
- // 如果移动的X轴距离小于Y轴距离,也即终点位置与起点位置连线,与Y轴夹角小于45度时,认为是页面上下滑动,而不是左右滑动单元格
- if (Math.abs(moveX) < Math.abs(moveY)) return
-
- // 限制右滑的距离,不允许内容部分往右偏移,右滑会导致X轴偏移值大于0,以此做判断
- // 此处不能直接return,因为滑动过程中会缺失某些关键点坐标,会导致错乱,最好的办法就是
- // 在超出后,设置为0
- if (state.status === 'open') {
- // 在开启状态下,向左滑动,需忽略
- if (moveX < 0) moveX = 0
- // 想要收起菜单,最大能移动的距离为按钮的总宽度
- if (moveX > buttonsWidth) moveX = buttonsWidth
- // 如果是已经打开了的状态,向左滑动时,移动收起菜单
- moveSwipeAction(-buttonsWidth + moveX, instance, ownerInstance)
- } else {
- // 关闭状态下,右滑动需忽略
- if (moveX > 0) moveX = 0
- // 滑动的距离不允许超过所有按钮的总宽度,此时只能是左滑,最终设置按钮的总宽度,同时为负数
- if (Math.abs(moveX) > buttonsWidth) moveX = -buttonsWidth
- // 只要是在滑过程中,就不断移动单元格内容部分,从而使隐藏的菜单显示出来
- moveSwipeAction(moveX, instance, ownerInstance)
- }
-}
-
-// 触摸结束
-function touchend(event, ownerInstance) {
- // 触发事件的组件的ComponentDescriptor实例
- var instance = event.instance
- // wxs内的局部变量快照
- var state = instance.getState()
- if (!state.moving || state.disabled) return
- var touches = event.changedTouches ? event.changedTouches[0] : {}
- var pageX = touches.pageX
- var pageY = touches.pageY
- var moveX = pageX - state.startX
- if (state.status === 'open') {
- // 在展开的状态下,继续左滑,无需操作
- if (moveX < 0) return
- // 在开启状态下,点击一下内容区域,moveX为0,也即没有进行移动,这时执行收起菜单逻辑
- if (moveX === 0) {
- return closeSwipeAction(instance, ownerInstance)
- }
- // 在开启状态下,滑动距离小于阈值,则默认为不关闭,同时恢复原来的打开状态
- if (Math.abs(moveX) < state.threshold) {
- openSwipeAction(instance, ownerInstance)
- } else {
- // 如果滑动距离大于阈值,则执行收起逻辑
- closeSwipeAction(instance, ownerInstance)
- }
- } else {
- // 在关闭的状态下,右滑,无需操作
- if (moveX > 0) return
- // 理由同上
- if (Math.abs(moveX) < state.threshold) {
- closeSwipeAction(instance, ownerInstance)
- } else {
- openSwipeAction(instance, ownerInstance)
- }
- }
-}
-
-// 获取过渡时间
-function getDuration(value) {
- if (value.toString().indexOf('s') >= 0) return value
- return value > 30 ? value + 'ms' : value + 's'
-}
-
-// 滑动结束时判断滑动的方向
-function getMoveDirection(instance, ownerInstance) {
- var state = instance.getState()
-}
-
-// 移动滑动选择器内容区域,同时显示出其隐藏的菜单
-function moveSwipeAction(moveX, instance, ownerInstance) {
- var state = instance.getState()
- // 获取所有按钮的实例,需要通过它去设置按钮的位移
- var buttons = ownerInstance.selectAllComponents('.u-swipe-action-item__right__button')
-
- // 设置菜单内容部分的偏移
- instance.requestAnimationFrame(function() {
- instance.setStyle({
- // 设置translateX的值
- 'transition': 'none',
- transform: 'translateX(' + moveX + 'px)',
- '-webkit-transform': 'translateX(' + moveX + 'px)'
- })
- })
-}
-
-// 一次性展开滑动菜单
-function openSwipeAction(instance, ownerInstance) {
- var state = instance.getState()
- // 获取所有按钮的实例,需要通过它去设置按钮的位移
- var buttons = ownerInstance.selectAllComponents('.u-swipe-action-item__right__button')
- // 处理duration单位问题
- var duration = getDuration(state.duration)
- // 展开过程中,是向左移动,所以X的偏移应该为负值
- var buttonsWidth = -state.buttonsWidth
- instance.requestAnimationFrame(function() {
- // 设置菜单主体内容
- instance.setStyle({
- 'transition': 'transform ' + duration,
- 'transform': 'translateX(' + buttonsWidth + 'px)',
- '-webkit-transform': 'translateX(' + buttonsWidth + 'px)',
- })
- })
- setStatus('open', instance, ownerInstance)
-}
-
-// 标记菜单的当前状态,open-已经打开,close-已经关闭
-function setStatus(status, instance, ownerInstance) {
- var state = instance.getState()
- state.status = status
- ownerInstance.callMethod('setState', status)
-}
-
-// 一次性收起滑动菜单
-function closeSwipeAction(instance, ownerInstance) {
- var state = instance.getState()
- // 获取所有按钮的实例,需要通过它去设置按钮的位移
- var buttons = ownerInstance.selectAllComponents('.u-swipe-action-item__right__button')
- var len = buttons.length
- // 处理duration单位问题
- var duration = getDuration(state.duration)
- instance.requestAnimationFrame(function() {
- // 设置菜单主体内容
- instance.setStyle({
- 'transition': 'transform ' + duration,
- 'transform': 'translateX(0px)',
- '-webkit-transform': 'translateX(0px)'
- })
- // 设置各个隐藏的按钮为收起的状态
- for (var i = len - 1; i >= 0; i--) {
- buttons[i].setStyle({
- 'transition': 'transform ' + duration,
- 'transform': 'translateX(0px)',
- '-webkit-transform': 'translateX(0px)'
- })
- }
- })
- setStatus('close', instance, ownerInstance)
-}
-
-// status的状态发生变化
-function statusChange(newValue, oldValue, ownerInstance, instance) {
- var state = instance.getState()
- if (state.disabled) return
- // 打开或关闭单元格
- if (newValue === 'close' && state.status === 'open') {
- closeSwipeAction(instance, ownerInstance)
- } else if(newValue === 'open' && state.status === 'close') {
- openSwipeAction(instance, ownerInstance)
- }
-}
-
-// 菜单尺寸发生变化
-function sizeChange(newValue, oldValue, ownerInstance, instance) {
- // wxs内的局部变量快照
- var state = instance.getState()
- state.disabled = newValue.disabled
- state.duration = newValue.duration
- state.show = newValue.show
- state.threshold = newValue.threshold
- state.buttons = newValue.buttons
-
- if (state.buttons) {
- var len = state.buttons.length
- var buttonsWidth = 0
- var buttons = newValue.buttons
- for (var i = 0; i < len; i++) {
- buttonsWidth += buttons[i].width
- }
- }
- state.buttonsWidth = buttonsWidth
-}
-
-module.exports = {
- touchstart: touchstart,
- touchmove: touchmove,
- touchend: touchend,
- sizeChange: sizeChange,
- statusChange: statusChange
-}
diff --git a/uni_modules/uview-ui/components/u-swipe-action-item/nvue - backup.js b/uni_modules/uview-ui/components/u-swipe-action-item/nvue - backup.js
deleted file mode 100644
index 6b9f116..0000000
--- a/uni_modules/uview-ui/components/u-swipe-action-item/nvue - backup.js
+++ /dev/null
@@ -1,270 +0,0 @@
-// nvue操作dom的库,用于获取dom的尺寸信息
-const dom = uni.requireNativePlugin('dom')
-// nvue中用于操作元素动画的库,类似于uni.animation,只不过uni.animation不能用于nvue
-const animation = uni.requireNativePlugin('animation')
-
-export default {
- data() {
- return {
- // 是否滑动中
- moving: false,
- // 状态,open-打开状态,close-关闭状态
- status: 'close',
- // 开始触摸点的X和Y轴坐标
- startX: 0,
- startY: 0,
- // 所有隐藏按钮的尺寸信息数组
- buttons: [],
- // 所有按钮的总宽度
- buttonsWidth: 0,
- // 记录上一次移动的位置值
- moveX: 0,
- // 记录上一次滑动的位置,用于前后两次做对比,如果移动的距离小于某一阈值,则认为前后之间没有移动,为了解决可能存在的通信阻塞问题
- lastX: 0
- }
- },
- computed: {
- // 获取过渡时间
- getDuratin() {
- let duration = String(this.duration)
- // 如果ms为单位,返回ms的数值部分
- if (duration.indexOf('ms') >= 0) return parseInt(duration)
- // 如果s为单位,为了得到ms的数值,需要乘以1000
- if (duration.indexOf('s') >= 0) return parseInt(duration) * 1000
- // 如果值传了数值,且小于30,认为是s单位
- duration = Number(duration)
- return duration < 30 ? duration * 1000 : duration
- }
- },
- watch: {
- show: {
- immediate: true,
- handler(n) {
- // if(n === true) {
- // uni.$u.sleep(50).then(() => {
- // this.openSwipeAction()
- // })
- // } else {
- // this.closeSwipeAction()
- // }
- }
- }
- },
- mounted() {
- uni.$u.sleep(20).then(() => {
- this.queryRect()
- })
- },
- methods: {
- close() {
- this.closeSwipeAction()
- },
- // 触摸单元格
- touchstart(event) {
- if (this.disabled) return
- this.closeOther()
- const { touches } = event
- // 记录触摸开始点的坐标值
- this.startX = touches[0].pageX
- this.startY = touches[0].pageY
- },
- // // 触摸滑动
- touchmove(event) {
- if (this.disabled) return
- const { touches } = event
- const { pageX } = touches[0]
- const { pageY } = touches[0]
- let moveX = pageX - this.startX
- const moveY = pageY - this.startY
- const { buttonsWidth } = this
- const len = this.buttons.length
-
- // 判断前后两次的移动距离,如果小于一定值,则不进行移动处理
- if (Math.abs(pageX - this.lastX) < 0.3) return
- this.lastX = pageX
-
- // 移动的X轴距离大于Y轴距离,也即终点与起点位置连线,与X轴夹角小于45度时,禁止页面滚动
- if (Math.abs(moveX) > Math.abs(moveY) || Math.abs(moveX) > this.threshold) {
- event.stopPropagation()
- }
- // 如果移动的X轴距离小于Y轴距离,也即终点位置与起点位置连线,与Y轴夹角小于45度时,认为是页面上下滑动,而不是左右滑动单元格
- if (Math.abs(moveX) < Math.abs(moveY)) return
-
- // 限制右滑的距离,不允许内容部分往右偏移,右滑会导致X轴偏移值大于0,以此做判断
- // 此处不能直接return,因为滑动过程中会缺失某些关键点坐标,会导致错乱,最好的办法就是
- // 在超出后,设置为0
- if (this.status === 'open') {
- // 在开启状态下,向左滑动,需忽略
- if (moveX < 0) moveX = 0
- // 想要收起菜单,最大能移动的距离为按钮的总宽度
- if (moveX > buttonsWidth) moveX = buttonsWidth
- // 如果是已经打开了的状态,向左滑动时,移动收起菜单
- this.moveSwipeAction(-buttonsWidth + moveX)
- } else {
- // 关闭状态下,右滑动需忽略
- if (moveX > 0) moveX = 0
- // 滑动的距离不允许超过所有按钮的总宽度,此时只能是左滑,最终设置按钮的总宽度,同时为负数
- if (Math.abs(moveX) > buttonsWidth) moveX = -buttonsWidth
- // 只要是在滑过程中,就不断移动菜单的内容部分,从而使隐藏的菜单显示出来
- this.moveSwipeAction(moveX)
- }
- },
- // 单元格结束触摸
- touchend(event) {
- if (this.disabled) return
- const touches = event.changedTouches ? event.changedTouches[0] : {}
- const { pageX } = touches
- const { pageY } = touches
- const { buttonsWidth } = this
- this.moveX = pageX - this.startX
- if (this.status === 'open') {
- // 在展开的状态下,继续左滑,无需操作
- if (this.moveX < 0) this.moveX = 0
- if (this.moveX > buttonsWidth) this.moveX = buttonsWidth
- // 在开启状态下,点击一下内容区域,moveX为0,也即没有进行移动,这时执行收起菜单逻辑
- if (this.moveX === 0) {
- return this.closeSwipeAction()
- }
- // 在开启状态下,滑动距离小于阈值,则默认为不关闭,同时恢复原来的打开状态
- if (Math.abs(this.moveX) < this.threshold) {
- this.openSwipeAction()
- } else {
- // 如果滑动距离大于阈值,则执行收起逻辑
- this.closeSwipeAction()
- }
- } else {
- // 在关闭的状态下,右滑,无需操作
- if (this.moveX >= 0) this.moveX = 0
- if (this.moveX <= -buttonsWidth) this.moveX = -buttonsWidth
- // 理由同上
- if (Math.abs(this.moveX) < this.threshold) {
- this.closeSwipeAction()
- } else {
- this.openSwipeAction()
- }
- }
- },
- // 移动滑动选择器内容区域,同时显示出其隐藏的菜单
- moveSwipeAction(moveX) {
- if (this.moving) return
- this.moving = true
-
- let previewButtonsMoveX = 0
- const len = this.buttons.length
- animation.transition(this.$refs['u-swipe-action-item__content'].ref, {
- styles: {
- transform: `translateX(${moveX}px)`
- },
- timingFunction: 'linear'
- }, () => {
- this.moving = false
- })
- // 按钮的组的长度
- for (let i = len - 1; i >= 0; i--) {
- const buttonRef = this.$refs[`u-swipe-action-item__right__button-${i}`][0].ref
- // 通过比例,得出元素自身该移动的距离
- const translateX = this.buttons[i].width / this.buttonsWidth * moveX
- // 最终移动的距离,是通过自身比例算出的距离,再加上在它之前所有按钮移动的距离之和
- const realTranslateX = translateX + previewButtonsMoveX
- animation.transition(buttonRef, {
- styles: {
- transform: `translateX(${realTranslateX}px)`
- },
- duration: 0,
- delay: 0,
- timingFunction: 'linear'
- }, () => {})
- // 记录本按钮之前的所有按钮的移动距离之和
- previewButtonsMoveX += translateX
- }
- },
- // 关闭菜单
- closeSwipeAction() {
- if (this.status === 'close') return
- this.moving = true
- const { buttonsWidth } = this
- animation.transition(this.$refs['u-swipe-action-item__content'].ref, {
- styles: {
- transform: 'translateX(0px)'
- },
- duration: this.getDuratin,
- timingFunction: 'ease-in-out'
- }, () => {
- this.status = 'close'
- this.moving = false
- this.closeHandler()
- })
- // 按钮的组的长度
- const len = this.buttons.length
- for (let i = len - 1; i >= 0; i--) {
- const buttonRef = this.$refs[`u-swipe-action-item__right__button-${i}`][0].ref
- // 如果不满足边界条件,返回
- if (this.buttons.length === 0 || !this.buttons[i] || !this.buttons[i].width) return
-
- animation.transition(buttonRef, {
- styles: {
- transform: 'translateX(0px)'
- },
- duration: this.getDuratin,
- timingFunction: 'ease-in-out'
- }, () => {})
- }
- },
- // 打开菜单
- openSwipeAction() {
- if (this.status === 'open') return
- this.moving = true
- const buttonsWidth = -this.buttonsWidth
- let previewButtonsMoveX = 0
- animation.transition(this.$refs['u-swipe-action-item__content'].ref, {
- styles: {
- transform: `translateX(${buttonsWidth}px)`
- },
- duration: this.getDuratin,
- timingFunction: 'ease-in-out'
- }, () => {
- this.status = 'open'
- this.moving = false
- this.openHandler()
- })
- // 按钮的组的长度
- const len = this.buttons.length
- for (let i = len - 1; i >= 0; i--) {
- const buttonRef = this.$refs[`u-swipe-action-item__right__button-${i}`][0].ref
- // 如果不满足边界条件,返回
- if (this.buttons.length === 0 || !this.buttons[i] || !this.buttons[i].width) return
- // 通过比例,得出元素自身该移动的距离
- const translateX = this.buttons[i].width / this.buttonsWidth * buttonsWidth
- // 最终移动的距离,是通过自身比例算出的距离,再加上在它之前所有按钮移动的距离之和
- const realTranslateX = translateX + previewButtonsMoveX
- animation.transition(buttonRef, {
- styles: {
- transform: `translateX(${realTranslateX}px)`
- },
- duration: this.getDuratin,
- timingFunction: 'ease-in-out'
- }, () => {})
- previewButtonsMoveX += translateX
- }
- },
- // 查询按钮节点信息
- queryRect() {
- // 历遍所有按钮数组,通过getRectByDom返回一个promise
- const promiseAll = this.rightOptions.map((item, index) => this.getRectByDom(this.$refs[`u-swipe-action-item__right__button-${index}`][0]))
- // 通过promise.all方法,让所有按钮的查询结果返回一个数组的形式
- Promise.all(promiseAll).then((sizes) => {
- this.buttons = sizes
- // 计算所有按钮总宽度
- this.buttonsWidth = sizes.reduce((sum, cur) => sum + cur.width, 0)
- })
- },
- // 通过nvue的dom模块,查询节点信息
- getRectByDom(ref) {
- return new Promise((resolve) => {
- dom.getComponentRect(ref, (res) => {
- resolve(res.size)
- })
- })
- }
- }
-}
diff --git a/uni_modules/uview-ui/components/u-swipe-action-item/nvue.js b/uni_modules/uview-ui/components/u-swipe-action-item/nvue.js
deleted file mode 100644
index 118e4cf..0000000
--- a/uni_modules/uview-ui/components/u-swipe-action-item/nvue.js
+++ /dev/null
@@ -1,174 +0,0 @@
-// nvue操作dom的库,用于获取dom的尺寸信息
-const dom = uni.requireNativePlugin('dom');
-const bindingX = uni.requireNativePlugin('bindingx');
-const animation = uni.requireNativePlugin('animation');
-
-export default {
- data() {
- return {
- // 所有按钮的总宽度
- buttonsWidth: 0,
- // 是否正在移动中
- moving: false
- }
- },
- computed: {
- // 获取过渡时间
- getDuratin() {
- let duration = String(this.duration)
- // 如果ms为单位,返回ms的数值部分
- if (duration.indexOf('ms') >= 0) return parseInt(duration)
- // 如果s为单位,为了得到ms的数值,需要乘以1000
- if (duration.indexOf('s') >= 0) return parseInt(duration) * 1000
- // 如果值传了数值,且小于30,认为是s单位
- duration = Number(duration)
- return duration < 30 ? duration * 1000 : duration
- }
- },
- watch: {
- show(n) {
- if(n) {
- this.moveCellByAnimation('open')
- } else {
- this.moveCellByAnimation('close')
- }
- }
- },
- mounted() {
- this.initialize()
- },
- methods: {
- initialize() {
- this.queryRect()
- },
- // 关闭单元格,用于打开一个,自动关闭其他单元格的场景
- closeHandler() {
- if(this.status === 'open') {
- // 如果在打开状态下,进行点击的话,直接关闭单元格
- return this.moveCellByAnimation('close') && this.unbindBindingX()
- }
- },
- // 点击单元格
- clickHandler() {
- // 如果在移动中被点击,进行忽略
- if(this.moving) return
- // 尝试关闭其他打开的单元格
- this.parent && this.parent.closeOther(this)
- if(this.status === 'open') {
- // 如果在打开状态下,进行点击的话,直接关闭单元格
- return this.moveCellByAnimation('close') && this.unbindBindingX()
- }
- },
- // 滑动单元格
- onTouchstart(e) {
- // 如果当前正在移动中,或者disabled状态,则返回
- if(this.moving || this.disabled) {
- return this.unbindBindingX()
- }
- if(this.status === 'open') {
- // 如果在打开状态下,进行点击的话,直接关闭单元格
- return this.moveCellByAnimation('close') && this.unbindBindingX()
- }
- // 特殊情况下,e可能不为一个对象
- e?.stopPropagation && e.stopPropagation()
- e?.preventDefault && e.preventDefault()
- this.moving = true
- // 获取元素ref
- const content = this.getContentRef()
- let expression = `min(max(${-this.buttonsWidth}, x), 0)`
- // 尝试关闭其他打开的单元格
- this.parent && this.parent.closeOther(this)
-
- // 阿里为了KPI而开源的BindingX
- this.panEvent = bindingX.bind({
- anchor: content,
- eventType: 'pan',
- props: [{
- element: content,
- // 绑定width属性,设置其宽度值
- property: 'transform.translateX',
- expression
- }]
- }, (res) => {
- this.moving = false
- if (res.state === 'end' || res.state === 'exit') {
- const deltaX = res.deltaX
- if(deltaX <= -this.buttonsWidth || deltaX >= 0) {
- // 如果触摸滑动的过程中,大于单元格的总宽度,或者大于0,意味着已经动过滑动达到了打开或者关闭的状态
- // 这里直接进行状态的标记
- this.$nextTick(() => {
- this.status = deltaX <= -this.buttonsWidth ? 'open' : 'close'
- })
- } else if(Math.abs(deltaX) > uni.$u.getPx(this.threshold)) {
- // 在移动大于阈值、并且小于总按钮宽度时,进行自动打开或者关闭
- // 移动距离大于0时,意味着需要关闭状态
- if(Math.abs(deltaX) < this.buttonsWidth) {
- this.moveCellByAnimation(deltaX > 0 ? 'close' : 'open')
- }
- } else {
- // 在小于阈值时,进行关闭操作(如果在打开状态下,将不会执行bindingX)
- this.moveCellByAnimation('close')
- }
- }
- })
- },
- // 释放bindingX
- unbindBindingX() {
- // 释放上一次的资源
- if (this?.panEvent?.token != 0) {
- bindingX.unbind({
- token: this.panEvent?.token,
- // pan为手势事件
- eventType: 'pan'
- })
- }
- },
- // 查询按钮节点信息
- queryRect() {
- // 历遍所有按钮数组,通过getRectByDom返回一个promise
- const promiseAll = this.options.map((item, index) => {
- return this.getRectByDom(this.$refs[`u-swipe-action-item__right__button-${index}`][0])
- })
- // 通过promise.all方法,让所有按钮的查询结果返回一个数组的形式
- Promise.all(promiseAll).then(sizes => {
- this.buttons = sizes
- // 计算所有按钮总宽度
- this.buttonsWidth = sizes.reduce((sum, cur) => sum + cur.width, 0)
- })
- },
- // 通过nvue的dom模块,查询节点信息
- getRectByDom(ref) {
- return new Promise(resolve => {
- dom.getComponentRect(ref, res => {
- resolve(res.size)
- })
- })
- },
- // 移动单元格到左边或者右边尽头
- moveCellByAnimation(status = 'open') {
- if(this.moving) return
- // 标识当前状态
- this.moveing = true
- const content = this.getContentRef()
- const x = status === 'open' ? -this.buttonsWidth : 0
- animation.transition(content, {
- styles: {
- transform: `translateX(${x}px)`,
- },
- duration: uni.$u.getDuration(this.duration, false),
- timingFunction: 'ease-in-out'
- }, () => {
- this.moving = false
- this.status = status
- this.unbindBindingX()
- })
- },
- // 获取元素ref
- getContentRef() {
- return this.$refs['u-swipe-action-item__content'].ref
- },
- beforeDestroy() {
- this.unbindBindingX()
- }
- }
-}
diff --git a/uni_modules/uview-ui/components/u-swipe-action-item/props.js b/uni_modules/uview-ui/components/u-swipe-action-item/props.js
deleted file mode 100644
index ed82a42..0000000
--- a/uni_modules/uview-ui/components/u-swipe-action-item/props.js
+++ /dev/null
@@ -1,41 +0,0 @@
-export default {
- props: {
- // 控制打开或者关闭
- show: {
- type: Boolean,
- default: uni.$u.props.swipeActionItem.show
- },
- // 标识符,如果是v-for,可用index索引值
- name: {
- type: [String, Number],
- default: uni.$u.props.swipeActionItem.name
- },
- // 是否禁用
- disabled: {
- type: Boolean,
- default: uni.$u.props.swipeActionItem.disabled
- },
- // 是否自动关闭其他swipe按钮组
- autoClose: {
- type: Boolean,
- default: uni.$u.props.swipeActionItem.autoClose
- },
- // 滑动距离阈值,只有大于此值,才被认为是要打开菜单
- threshold: {
- type: Number,
- default: uni.$u.props.swipeActionItem.threshold
- },
- // 右侧按钮内容
- options: {
- type: Array,
- default() {
- return uni.$u.props.swipeActionItem.rightOptions
- }
- },
- // 动画过渡时间,单位ms
- duration: {
- type: [String, Number],
- default: uni.$u.props.swipeActionItem.duration
- }
- }
-}
diff --git a/uni_modules/uview-ui/components/u-swipe-action-item/u-swipe-action-item.vue b/uni_modules/uview-ui/components/u-swipe-action-item/u-swipe-action-item.vue
deleted file mode 100644
index 1fab304..0000000
--- a/uni_modules/uview-ui/components/u-swipe-action-item/u-swipe-action-item.vue
+++ /dev/null
@@ -1,190 +0,0 @@
-<template>
- <view class="u-swipe-action-item" ref="u-swipe-action-item">
- <view class="u-swipe-action-item__right">
- <slot name="button">
- <view v-for="(item,index) in options" :key="index" class="u-swipe-action-item__right__button"
- :ref="`u-swipe-action-item__right__button-${index}`" :style="[{
- alignItems: item.style && item.style.borderRadius ? 'center' : 'stretch'
- }]" @tap="buttonClickHandler(item, index)">
- <view class="u-swipe-action-item__right__button__wrapper" :style="[{
- backgroundColor: item.style && item.style.backgroundColor ? item.style.backgroundColor : '#C7C6CD',
- borderRadius: item.style && item.style.borderRadius ? item.style.borderRadius : '0',
- padding: item.style && item.style.borderRadius ? '0' : '0 15px',
- }, item.style]">
- <u-icon v-if="item.icon" :name="item.icon"
- :color="item.style && item.style.color ? item.style.color : '#ffffff'"
- :size="item.iconSize ? $u.addUnit(item.iconSize) : item.style && item.style.fontSize ? $u.getPx(item.style.fontSize) * 1.2 : 17"
- :customStyle="{
- marginRight: item.text ? '2px' : 0
- }"></u-icon>
- <text v-if="item.text" class="u-swipe-action-item__right__button__wrapper__text u-line-1"
- :style="[{
- color: item.style && item.style.color ? item.style.color : '#ffffff',
- fontSize: item.style && item.style.fontSize ? item.style.fontSize : '16px',
- lineHeight: item.style && item.style.fontSize ? item.style.fontSize : '16px',
- }]">{{ item.text }}</text>
- </view>
- </view>
- </slot>
- </view>
- <!-- #ifdef APP-VUE || MP-WEIXIN || H5 || MP-QQ -->
- <view class="u-swipe-action-item__content" @touchstart="wxs.touchstart" @touchmove="wxs.touchmove"
- @touchend="wxs.touchend" :status="status" :change:status="wxs.statusChange" :size="size"
- :change:size="wxs.sizeChange">
- <!-- #endif -->
- <!-- #ifdef APP-NVUE -->
- <view class="u-swipe-action-item__content" ref="u-swipe-action-item__content" @panstart="onTouchstart"
- @tap="clickHandler">
- <!-- #endif -->
- <slot />
- </view>
- </view>
-</template>
-<!-- #ifdef APP-VUE || MP-WEIXIN || H5 || MP-QQ -->
-<script src="./index.wxs" module="wxs" lang="wxs"></script>
-<!-- #endif -->
-<script>
- import touch from '../../libs/mixin/touch.js'
- import props from './props.js';
- // #ifdef APP-NVUE
- import nvue from './nvue.js';
- // #endif
- // #ifdef APP-VUE || MP-WEIXIN || H5 || MP-QQ
- import wxs from './wxs.js';
- // #endif
- /**
- * SwipeActionItem 滑动单元格子组件
- * @description 该组件一般用于左滑唤出操作菜单的场景,用的最多的是左滑删除操作
- * @tutorial https://www.uviewui.com/components/swipeAction.html
- * @property {Boolean} show 控制打开或者关闭(默认 false )
- * @property {String | Number} index 标识符,如果是v-for,可用index索引
- * @property {Boolean} disabled 是否禁用(默认 false )
- * @property {Boolean} autoClose 是否自动关闭其他swipe按钮组(默认 true )
- * @property {Number} threshold 滑动距离阈值,只有大于此值,才被认为是要打开菜单(默认 30 )
- * @property {Array} options 右侧按钮内容
- * @property {String | Number} duration 动画过渡时间,单位ms(默认 350 )
- * @event {Function(index)} open 组件打开时触发
- * @event {Function(index)} close 组件关闭时触发
- * @example <u-swipe-action><u-swipe-action-item :options="options1" ></u-swipe-action-item></u-swipe-action>
- */
- export default {
- name: 'u-swipe-action-item',
- mixins: [uni.$u.mpMixin, uni.$u.mixin, props, touch],
- // #ifdef APP-NVUE
- mixins: [uni.$u.mpMixin, uni.$u.mixin, props, nvue, touch],
- // #endif
- // #ifdef APP-VUE || MP-WEIXIN || H5 || MP-QQ
- mixins: [uni.$u.mpMixin, uni.$u.mixin, props, touch, wxs],
- // #endif
- data() {
- return {
- // 按钮的尺寸信息
- size: {},
- // 父组件u-swipe-action的参数
- parentData: {
- autoClose: true,
- },
- // 当前状态,open-打开,close-关闭
- status: 'close',
- }
- },
- watch: {
- // 由于wxs无法直接读取外部的值,需要在外部值变化时,重新执行赋值逻辑
- wxsInit(newValue, oldValue) {
- this.queryRect()
- }
- },
- computed: {
- wxsInit() {
- return [this.disabled, this.autoClose, this.threshold, this.options, this.duration]
- }
- },
- mounted() {
- this.init()
- },
- methods: {
- init() {
- // 初始化父组件数据
- this.updateParentData()
- // #ifndef APP-NVUE
- uni.$u.sleep().then(() => {
- this.queryRect()
- })
- // #endif
- },
- updateParentData() {
- // 此方法在mixin中
- this.getParentData('u-swipe-action')
- },
- // #ifndef APP-NVUE
- // 查询节点
- queryRect() {
- this.$uGetRect('.u-swipe-action-item__right__button', true).then(buttons => {
- this.size = {
- buttons,
- show: this.show,
- disabled: this.disabled,
- threshold: this.threshold,
- duration: this.duration
- }
- })
- },
- // #endif
- // 按钮被点击
- buttonClickHandler(item, index) {
- this.$emit('click', {
- index,
- name: this.name
- })
- }
- },
- }
-</script>
-
-<style lang="scss" scoped>
- @import "../../libs/css/components.scss";
-
- .u-swipe-action-item {
- position: relative;
- overflow: hidden;
- /* #ifndef APP-NVUE || MP-WEIXIN */
- touch-action: pan-y;
- /* #endif */
-
- &__content {
- background-color: #FFFFFF;
- z-index: 10;
- }
-
- &__right {
- position: absolute;
- top: 0;
- bottom: 0;
- right: 0;
- @include flex;
-
- &__button {
- @include flex;
- justify-content: center;
- overflow: hidden;
- align-items: center;
-
- &__wrapper {
- @include flex;
- align-items: center;
- justify-content: center;
- padding: 0 15px;
-
- &__text {
- @include flex;
- align-items: center;
- color: #FFFFFF;
- font-size: 15px;
- text-align: center;
- justify-content: center;
- }
- }
- }
- }
- }
-</style>
diff --git a/uni_modules/uview-ui/components/u-swipe-action-item/wxs.js b/uni_modules/uview-ui/components/u-swipe-action-item/wxs.js
deleted file mode 100644
index ee49c10..0000000
--- a/uni_modules/uview-ui/components/u-swipe-action-item/wxs.js
+++ /dev/null
@@ -1,15 +0,0 @@
-export default {
- methods: {
- // 关闭时执行
- closeHandler() {
- this.status = 'close'
- },
- setState(status) {
- this.status = status
- },
- closeOther() {
- // 尝试关闭其他打开的单元格
- this.parent && this.parent.closeOther(this)
- }
- }
-}
diff --git a/uni_modules/uview-ui/components/u-swipe-action/props.js b/uni_modules/uview-ui/components/u-swipe-action/props.js
deleted file mode 100644
index 3a84536..0000000
--- a/uni_modules/uview-ui/components/u-swipe-action/props.js
+++ /dev/null
@@ -1,9 +0,0 @@
-export default {
- props: {
- // 是否自动关闭其他swipe按钮组
- autoClose: {
- type: Boolean,
- default: uni.$u.props.swipeAction.autoClose
- }
- }
-}
diff --git a/uni_modules/uview-ui/components/u-swipe-action/u-swipe-action.vue b/uni_modules/uview-ui/components/u-swipe-action/u-swipe-action.vue
deleted file mode 100644
index ad8f019..0000000
--- a/uni_modules/uview-ui/components/u-swipe-action/u-swipe-action.vue
+++ /dev/null
@@ -1,67 +0,0 @@
-<template>
- <view class="u-swipe-action">
- <slot></slot>
- </view>
-</template>
-
-<script>
- import props from './props.js';
- /**
- * SwipeAction 滑动单元格
- * @description 该组件一般用于左滑唤出操作菜单的场景,用的最多的是左滑删除操作
- * @tutorial https://www.uviewui.com/components/swipeAction.html
- * @property {Boolean} autoClose 是否自动关闭其他swipe按钮组
- * @event {Function(index)} click 点击组件时触发
- * @example <u-swipe-action><u-swipe-action-item :rightOptions="options1" ></u-swipe-action-item></u-swipe-action>
- */
- export default {
- name: 'u-swipe-action',
- mixins: [uni.$u.mpMixin, uni.$u.mixin, props],
- data() {
- return {}
- },
- provide() {
- return {
- swipeAction: this
- }
- },
- computed: {
- // 这里computed的变量,都是子组件u-swipe-action-item需要用到的,由于头条小程序的兼容性差异,子组件无法实时监听父组件参数的变化
- // 所以需要手动通知子组件,这里返回一个parentData变量,供watch监听,在其中去通知每一个子组件重新从父组件(u-swipe-action-item)
- // 拉取父组件新的变化后的参数
- parentData() {
- return [this.autoClose]
- }
- },
- watch: {
- // 当父组件需要子组件需要共享的参数发生了变化,手动通知子组件
- parentData() {
- if (this.children.length) {
- this.children.map(child => {
- // 判断子组件(u-swipe-action-item)如果有updateParentData方法的话,就就执行(执行的结果是子组件重新从父组件拉取了最新的值)
- typeof(child.updateParentData) === 'function' && child.updateParentData()
- })
- }
- },
- },
- created() {
- this.children = []
- },
- methods: {
- closeOther(child) {
- if (this.autoClose) {
- // 历遍所有的单元格,找出非当前操作中的单元格,进行关闭
- this.children.map((item, index) => {
- if (child !== item) {
- item.closeHandler()
- }
- })
- }
- }
- }
- }
-</script>
-
-<style lang="scss" scoped>
-
-</style>
diff --git a/uni_modules/uview-ui/components/u-swiper-indicator/props.js b/uni_modules/uview-ui/components/u-swiper-indicator/props.js
deleted file mode 100644
index 302aca7..0000000
--- a/uni_modules/uview-ui/components/u-swiper-indicator/props.js
+++ /dev/null
@@ -1,29 +0,0 @@
-export default {
- props: {
- // 轮播的长度
- length: {
- type: [String, Number],
- default: uni.$u.props.swiperIndicator.length
- },
- // 当前处于活动状态的轮播的索引
- current: {
- type: [String, Number],
- default: uni.$u.props.swiperIndicator.current
- },
- // 指示器非激活颜色
- indicatorActiveColor: {
- type: String,
- default: uni.$u.props.swiperIndicator.indicatorActiveColor
- },
- // 指示器的激活颜色
- indicatorInactiveColor: {
- type: String,
- default: uni.$u.props.swiperIndicator.indicatorInactiveColor
- },
- // 指示器模式,line-线型,dot-点型
- indicatorMode: {
- type: String,
- default: uni.$u.props.swiperIndicator.indicatorMode
- }
- }
-}
diff --git a/uni_modules/uview-ui/components/u-swiper-indicator/u-swiper-indicator.vue b/uni_modules/uview-ui/components/u-swiper-indicator/u-swiper-indicator.vue
deleted file mode 100644
index 8923e13..0000000
--- a/uni_modules/uview-ui/components/u-swiper-indicator/u-swiper-indicator.vue
+++ /dev/null
@@ -1,110 +0,0 @@
-<template>
- <view class="u-swiper-indicator">
- <view
- class="u-swiper-indicator__wrapper"
- v-if="indicatorMode === 'line'"
- :class="[`u-swiper-indicator__wrapper--${indicatorMode}`]"
- :style="{
- width: $u.addUnit(lineWidth * length),
- backgroundColor: indicatorInactiveColor
- }"
- >
- <view
- class="u-swiper-indicator__wrapper--line__bar"
- :style="[lineStyle]"
- ></view>
- </view>
- <view
- class="u-swiper-indicator__wrapper"
- v-if="indicatorMode === 'dot'"
- >
- <view
- class="u-swiper-indicator__wrapper__dot"
- v-for="(item, index) in length"
- :key="index"
- :class="[index === current && 'u-swiper-indicator__wrapper__dot--active']"
- :style="[dotStyle(index)]"
- >
-
- </view>
- </view>
- </view>
-</template>
-
-<script>
- import props from './props.js';
- /**
- * SwiperIndicator 轮播图指示器
- * @description 该组件一般用于导航轮播,广告展示等场景,可开箱即用,
- * @tutorial https://www.uviewui.com/components/swiper.html
- * @property {String | Number} length 轮播的长度(默认 0 )
- * @property {String | Number} current 当前处于活动状态的轮播的索引(默认 0 )
- * @property {String} indicatorActiveColor 指示器非激活颜色
- * @property {String} indicatorInactiveColor 指示器的激活颜色
- * @property {String} indicatorMode 指示器模式(默认 'line' )
- * @example <u-swiper :list="list4" indicator keyName="url" :autoplay="false"></u-swiper>
- */
- export default {
- name: 'u-swiper-indicator',
- mixins: [uni.$u.mpMixin, uni.$u.mixin, props],
- data() {
- return {
- lineWidth: 22
- }
- },
- computed: {
- // 指示器为线型的样式
- lineStyle() {
- let style = {}
- style.width = uni.$u.addUnit(this.lineWidth)
- style.transform = `translateX(${ uni.$u.addUnit(this.current * this.lineWidth) })`
- style.backgroundColor = this.indicatorActiveColor
- return style
- },
- // 指示器为点型的样式
- dotStyle() {
- return index => {
- let style = {}
- style.backgroundColor = index === this.current ? this.indicatorActiveColor : this.indicatorInactiveColor
- return style
- }
- }
- },
- }
-</script>
-
-<style lang="scss" scoped>
- @import "../../libs/css/components.scss";
-
- .u-swiper-indicator {
-
- &__wrapper {
- @include flex;
-
- &--line {
- border-radius: 100px;
- height: 4px;
-
- &__bar {
- width: 22px;
- height: 4px;
- border-radius: 100px;
- background-color: #FFFFFF;
- transition: transform 0.3s;
- }
- }
-
- &__dot {
- width: 5px;
- height: 5px;
- border-radius: 100px;
- margin: 0 4px;
-
- &--active {
- width: 12px;
- }
- }
-
- }
- }
-</style>
diff --git a/uni_modules/uview-ui/components/u-swiper/props.js b/uni_modules/uview-ui/components/u-swiper/props.js
deleted file mode 100644
index bac6d31..0000000
--- a/uni_modules/uview-ui/components/u-swiper/props.js
+++ /dev/null
@@ -1,125 +0,0 @@
-export default {
- props: {
- // 列表数组,元素可为字符串,如为对象可通过keyName指定目标属性名
- list: {
- type: Array,
- default: uni.$u.props.swiper.list
- },
- // 是否显示面板指示器
- indicator: {
- type: Boolean,
- default: uni.$u.props.swiper.indicator
- },
- // 指示器非激活颜色
- indicatorActiveColor: {
- type: String,
- default: uni.$u.props.swiper.indicatorActiveColor
- },
- // 指示器的激活颜色
- indicatorInactiveColor: {
- type: String,
- default: uni.$u.props.swiper.indicatorInactiveColor
- },
- // 指示器样式,可通过bottom,left,right进行定位
- indicatorStyle: {
- type: [String, Object],
- default: uni.$u.props.swiper.indicatorStyle
- },
- // 指示器模式,line-线型,dot-点型
- indicatorMode: {
- type: String,
- default: uni.$u.props.swiper.indicatorMode
- },
- // 是否自动切换
- autoplay: {
- type: Boolean,
- default: uni.$u.props.swiper.autoplay
- },
- // 当前所在滑块的 index
- current: {
- type: [String, Number],
- default: uni.$u.props.swiper.current
- },
- // 当前所在滑块的 item-id ,不能与 current 被同时指定
- currentItemId: {
- type: String,
- default: uni.$u.props.swiper.currentItemId
- },
- // 滑块自动切换时间间隔
- interval: {
- type: [String, Number],
- default: uni.$u.props.swiper.interval
- },
- // 滑块切换过程所需时间
- duration: {
- type: [String, Number],
- default: uni.$u.props.swiper.duration
- },
- // 播放到末尾后是否重新回到开头
- circular: {
- type: Boolean,
- default: uni.$u.props.swiper.circular
- },
- // 前边距,可用于露出前一项的一小部分,nvue和支付宝不支持
- previousMargin: {
- type: [String, Number],
- default: uni.$u.props.swiper.previousMargin
- },
- // 后边距,可用于露出后一项的一小部分,nvue和支付宝不支持
- nextMargin: {
- type: [String, Number],
- default: uni.$u.props.swiper.nextMargin
- },
- // 当开启时,会根据滑动速度,连续滑动多屏,支付宝不支持
- acceleration: {
- type: Boolean,
- default: uni.$u.props.swiper.acceleration
- },
- // 同时显示的滑块数量,nvue、支付宝小程序不支持
- displayMultipleItems: {
- type: Number,
- default: uni.$u.props.swiper.displayMultipleItems
- },
- // 指定swiper切换缓动动画类型,有效值:default、linear、easeInCubic、easeOutCubic、easeInOutCubic
- // 只对微信小程序有效
- easingFunction: {
- type: String,
- default: uni.$u.props.swiper.easingFunction
- },
- // list数组中指定对象的目标属性名
- keyName: {
- type: String,
- default: uni.$u.props.swiper.keyName
- },
- // 图片的裁剪模式
- imgMode: {
- type: String,
- default: uni.$u.props.swiper.imgMode
- },
- // 组件高度
- height: {
- type: [String, Number],
- default: uni.$u.props.swiper.height
- },
- // 背景颜色
- bgColor: {
- type: String,
- default: uni.$u.props.swiper.bgColor
- },
- // 组件圆角,数值或带单位的字符串
- radius: {
- type: [String, Number],
- default: uni.$u.props.swiper.radius
- },
- // 是否加载中
- loading: {
- type: Boolean,
- default: uni.$u.props.swiper.loading
- },
- // 是否显示标题,要求数组对象中有title属性
- showTitle: {
- type: Boolean,
- default: uni.$u.props.swiper.showTitle
- }
- }
-}
diff --git a/uni_modules/uview-ui/components/u-swiper/u-swiper.vue b/uni_modules/uview-ui/components/u-swiper/u-swiper.vue
deleted file mode 100644
index 0cfb229..0000000
--- a/uni_modules/uview-ui/components/u-swiper/u-swiper.vue
+++ /dev/null
@@ -1,255 +0,0 @@
-<template>
- <view
- class="u-swiper"
- :style="{
- backgroundColor: bgColor,
- height: $u.addUnit(height),
- borderRadius: $u.addUnit(radius)
- }"
- >
- <view
- class="u-swiper__loading"
- v-if="loading"
- >
- <u-loading-icon mode="circle"></u-loading-icon>
- </view>
- <swiper
- v-else
- class="u-swiper__wrapper"
- :style="{
- height: $u.addUnit(height),
- }"
- @change="change"
- :circular="circular"
- :interval="interval"
- :duration="duration"
- :autoplay="autoplay"
- :current="current"
- :currentItemId="currentItemId"
- :previousMargin="$u.addUnit(previousMargin)"
- :nextMargin="$u.addUnit(nextMargin)"
- :acceleration="acceleration"
- :displayMultipleItems="displayMultipleItems"
- :easingFunction="easingFunction"
- >
- <swiper-item
- class="u-swiper__wrapper__item"
- v-for="(item, index) in list"
- :key="index"
- >
- <view
- class="u-swiper__wrapper__item__wrapper"
- :style="[itemStyle(index)]"
- >
- <!-- 在nvue中,image图片的宽度默认为屏幕宽度,需要通过flex:1撑开,另外必须设置高度才能显示图片 -->
- <image
- class="u-swiper__wrapper__item__wrapper__image"
- v-if="getItemType(item) === 'image'"
- :src="getSource(item)"
- :mode="imgMode"
- @tap="clickHandler(index)"
- :style="{
- height: $u.addUnit(height),
- borderRadius: $u.addUnit(radius)
- }"
- ></image>
- <video
- class="u-swiper__wrapper__item__wrapper__video"
- v-if="getItemType(item) === 'video'"
- :id="`video-${index}`"
- :enable-progress-gesture="false"
- :src="getSource(item)"
- :poster="getPoster(item)"
- :title="showTitle && $u.test.object(item) && item.title ? item.title : ''"
- :style="{
- height: $u.addUnit(height)
- }"
- controls
- @tap="clickHandler(index)"
- ></video>
- <text
- v-if="showTitle && $u.test.object(item) && item.title && $u.test.image(getSource(item))"
- class="u-swiper__wrapper__item__wrapper__title u-line-1"
- >{{ item.title }}</text>
- </view>
- </swiper-item>
- </swiper>
- <view class="u-swiper__indicator" :style="[$u.addStyle(indicatorStyle)]">
- <slot name="indicator">
- <u-swiper-indicator
- v-if="!loading && indicator && !showTitle"
- :indicatorActiveColor="indicatorActiveColor"
- :indicatorInactiveColor="indicatorInactiveColor"
- :length="list.length"
- :current="currentIndex"
- :indicatorMode="indicatorMode"
- ></u-swiper-indicator>
- </slot>
- </view>
- </view>
-</template>
-
-<script>
- import props from './props.js';
- /**
- * Swiper 轮播图
- * @description 该组件一般用于导航轮播,广告展示等场景,可开箱即用,
- * @tutorial https://www.uviewui.com/components/swiper.html
- * @property {Array} list 轮播图数据
- * @property {Boolean} indicator 是否显示面板指示器(默认 false )
- * @property {String} indicatorActiveColor 指示器非激活颜色(默认 '#FFFFFF' )
- * @property {String} indicatorInactiveColor 指示器的激活颜色(默认 'rgba(255, 255, 255, 0.35)' )
- * @property {String | Object} indicatorStyle 指示器样式,可通过bottom,left,right进行定位
- * @property {String} indicatorMode 指示器模式(默认 'line' )
- * @property {Boolean} autoplay 是否自动切换(默认 true )
- * @property {String | Number} current 当前所在滑块的 index(默认 0 )
- * @property {String} currentItemId 当前所在滑块的 item-id ,不能与 current 被同时指定
- * @property {String | Number} interval 滑块自动切换时间间隔(ms)(默认 3000 )
- * @property {String | Number} duration 滑块切换过程所需时间(ms)(默认 300 )
- * @property {Boolean} circular 播放到末尾后是否重新回到开头(默认 false )
- * @property {String | Number} previousMargin 前边距,可用于露出前一项的一小部分,nvue和支付宝不支持(默认 0 )
- * @property {String | Number} nextMargin 后边距,可用于露出后一项的一小部分,nvue和支付宝不支持(默认 0 )
- * @property {Boolean} acceleration 当开启时,会根据滑动速度,连续滑动多屏,支付宝不支持(默认 false )
- * @property {Number} displayMultipleItems 同时显示的滑块数量,nvue、支付宝小程序不支持(默认 1 )
- * @property {String} easingFunction 指定swiper切换缓动动画类型, 只对微信小程序有效(默认 'default' )
- * @property {String} keyName list数组中指定对象的目标属性名(默认 'url' )
- * @property {String} imgMode 图片的裁剪模式(默认 'aspectFill' )
- * @property {String | Number} height 组件高度(默认 130 )
- * @property {String} bgColor 背景颜色(默认 '#f3f4f6' )
- * @property {String | Number} radius 组件圆角,数值或带单位的字符串(默认 4 )
- * @property {Boolean} loading 是否加载中(默认 false )
- * @property {Boolean} showTitle 是否显示标题,要求数组对象中有title属性(默认 false )
- * @event {Function(index)} click 点击轮播图时触发 index:点击了第几张图片,从0开始
- * @event {Function(index)} change 轮播图切换时触发(自动或者手动切换) index:切换到了第几张图片,从0开始
- * @example <u-swiper :list="list4" keyName="url" :autoplay="false"></u-swiper>
- */
- export default {
- name: 'u-swiper',
- mixins: [uni.$u.mpMixin, uni.$u.mixin, props],
- data() {
- return {
- currentIndex: 0
- }
- },
- watch: {
- current(val, preVal) {
- if(val === preVal) return;
- this.currentIndex = val; // 和上游数据关联上
- }
- },
- computed: {
- itemStyle() {
- return index => {
- const style = {}
- // #ifndef APP-NVUE || MP-TOUTIAO
- // 左右流出空间的写法不支持nvue和头条
- // 只有配置了此二值,才加上对应的圆角,以及缩放
- if (this.nextMargin && this.previousMargin) {
- style.borderRadius = uni.$u.addUnit(this.radius)
- if (index !== this.currentIndex) style.transform = 'scale(0.92)'
- }
- // #endif
- return style
- }
- }
- },
- methods: {
- getItemType(item) {
- if (typeof item === 'string') return uni.$u.test.video(this.getSource(item)) ? 'video' : 'image'
- if (typeof item === 'object' && this.keyName) {
- if (!item.type) return uni.$u.test.video(this.getSource(item)) ? 'video' : 'image'
- if (item.type === 'image') return 'image'
- if (item.type === 'video') return 'video'
- return 'image'
- }
- },
- // 获取目标路径,可能数组中为字符串,对象的形式,额外可指定对象的目标属性名keyName
- getSource(item) {
- if (typeof item === 'string') return item
- if (typeof item === 'object' && this.keyName) return item[this.keyName]
- else uni.$u.error('请按格式传递列表参数')
- return ''
- },
- // 轮播切换事件
- change(e) {
- // 当前的激活索引
- const {
- current
- } = e.detail
- this.pauseVideo(this.currentIndex)
- this.currentIndex = current
- this.$emit('change', e.detail)
- },
- // 切换轮播时,暂停视频播放
- pauseVideo(index) {
- const lastItem = this.getSource(this.list[index])
- if (uni.$u.test.video(lastItem)) {
- // 当视频隐藏时,暂停播放
- const video = uni.createVideoContext(`video-${index}`, this)
- video.pause()
- }
- },
- // 当一个轮播item为视频时,获取它的视频海报
- getPoster(item) {
- return typeof item === 'object' && item.poster ? item.poster : ''
- },
- // 点击某个item
- clickHandler(index) {
- this.$emit('click', index)
- }
- },
- }
-</script>
-
-<style lang="scss" scoped>
- @import "../../libs/css/components.scss";
-
- .u-swiper {
- @include flex;
- justify-content: center;
- align-items: center;
- position: relative;
- overflow: hidden;
-
- &__wrapper {
- flex: 1;
-
- &__item {
- flex: 1;
-
- &__wrapper {
- @include flex;
- position: relative;
- overflow: hidden;
- transition: transform 0.3s;
- flex: 1;
-
- &__image {
- flex: 1;
- }
-
- &__video {
- flex: 1;
- }
-
- &__title {
- position: absolute;
- background-color: rgba(0, 0, 0, 0.3);
- bottom: 0;
- left: 0;
- right: 0;
- font-size: 28rpx;
- padding: 12rpx 24rpx;
- color: #FFFFFF;
- flex: 1;
- }
- }
- }
- }
-
- &__indicator {
- position: absolute;
- bottom: 10px;
- }
- }
-</style>
diff --git a/uni_modules/uview-ui/components/u-switch/props.js b/uni_modules/uview-ui/components/u-switch/props.js
deleted file mode 100644
index 4eef963..0000000
--- a/uni_modules/uview-ui/components/u-switch/props.js
+++ /dev/null
@@ -1,54 +0,0 @@
-export default {
- props: {
- // 是否为加载中状态
- loading: {
- type: Boolean,
- default: uni.$u.props.switch.loading
- },
- // 是否为禁用装填
- disabled: {
- type: Boolean,
- default: uni.$u.props.switch.disabled
- },
- // 开关尺寸,单位px
- size: {
- type: [String, Number],
- default: uni.$u.props.switch.size
- },
- // 打开时的背景颜色
- activeColor: {
- type: String,
- default: uni.$u.props.switch.activeColor
- },
- // 关闭时的背景颜色
- inactiveColor: {
- type: String,
- default: uni.$u.props.switch.inactiveColor
- },
- // 通过v-model双向绑定的值
- value: {
- type: [Boolean, String, Number],
- default: uni.$u.props.switch.value
- },
- // switch打开时的值
- activeValue: {
- type: [String, Number, Boolean],
- default: uni.$u.props.switch.activeValue
- },
- // switch关闭时的值
- inactiveValue: {
- type: [String, Number, Boolean],
- default: uni.$u.props.switch.inactiveValue
- },
- // 是否开启异步变更,开启后需要手动控制输入值
- asyncChange: {
- type: Boolean,
- default: uni.$u.props.switch.asyncChange
- },
- // 圆点与外边框的距离
- space: {
- type: [String, Number],
- default: uni.$u.props.switch.space
- }
- }
-}
diff --git a/uni_modules/uview-ui/components/u-switch/u-switch.vue b/uni_modules/uview-ui/components/u-switch/u-switch.vue
deleted file mode 100644
index 6f8577b..0000000
--- a/uni_modules/uview-ui/components/u-switch/u-switch.vue
+++ /dev/null
@@ -1,177 +0,0 @@
-<template>
- <view
- class="u-switch"
- :class="[disabled && 'u-switch--disabled']"
- :style="[switchStyle, $u.addStyle(customStyle)]"
- @tap="clickHandler"
- >
- <view
- class="u-switch__bg"
- :style="[bgStyle]"
- >
- </view>
- <view
- class="u-switch__node"
- :class="[value && 'u-switch__node--on']"
- :style="[nodeStyle]"
- ref="u-switch__node"
- >
- <u-loading-icon
- :show="loading"
- mode="circle"
- timingFunction='linear'
- :color="value ? activeColor : '#AAABAD'"
- :size="size * 0.6"
- />
- </view>
- </view>
-</template>
-
-<script>
- import props from './props.js';
- /**
- * switch 开关选择器
- * @description 选择开关一般用于只有两个选择,且只能选其一的场景。
- * @tutorial https://www.uviewui.com/components/switch.html
- * @property {Boolean} loading 是否处于加载中(默认 false )
- * @property {Boolean} disabled 是否禁用(默认 false )
- * @property {String | Number} size 开关尺寸,单位px (默认 25 )
- * @property {String} activeColor 打开时的背景色 (默认 '#2979ff' )
- * @property {String} inactiveColor 关闭时的背景色 (默认 '#ffffff' )
- * @property {Boolean | String | Number} value 通过v-model双向绑定的值 (默认 false )
- * @property {Boolean | String | Number} activeValue 打开选择器时通过change事件发出的值 (默认 true )
- * @property {Boolean | String | Number} inactiveValue 关闭选择器时通过change事件发出的值 (默认 false )
- * @property {Boolean} asyncChange 是否开启异步变更,开启后需要手动控制输入值 (默认 false )
- * @property {String | Number} space 圆点与外边框的距离 (默认 0 )
- * @property {Object} customStyle 定义需要用到的外部样式
- *
- * @event {Function} change 在switch打开或关闭时触发
- * @example <u-switch v-model="checked" active-color="red" inactive-color="#eee"></u-switch>
- */
- export default {
- name: "u-switch",
- mixins: [uni.$u.mpMixin, uni.$u.mixin,props],
- watch: {
- value: {
- immediate: true,
- handler(n) {
- if(n !== this.inactiveValue && n !== this.activeValue) {
- uni.$u.error('v-model绑定的值必须为inactiveValue、activeValue二者之一')
- }
- }
- }
- },
- data() {
- return {
- bgColor: '#ffffff'
- }
- },
- computed: {
- isActive(){
- return this.value === this.activeValue;
- },
- switchStyle() {
- let style = {}
- // 这里需要加2,是为了腾出边框的距离,否则圆点node会和外边框紧贴在一起
- style.width = uni.$u.addUnit(this.size * 2 + 2)
- style.height = uni.$u.addUnit(Number(this.size) + 2)
- // style.borderColor = this.value ? 'rgba(0, 0, 0, 0)' : 'rgba(0, 0, 0, 0.12)'
- // 如果自定义了“非激活”演示,name边框颜色设置为透明(跟非激活颜色一致)
- // 这里不能简单的设置为非激活的颜色,否则打开状态时,会有边框,所以需要透明
- if(this.customInactiveColor) {
- style.borderColor = 'rgba(0, 0, 0, 0)'
- }
- style.backgroundColor = this.isActive ? this.activeColor : this.inactiveColor
- return style;
- },
- nodeStyle() {
- let style = {}
- // 如果自定义非激活颜色,将node圆点的尺寸减少两个像素,让其与外边框距离更大一点
- style.width = uni.$u.addUnit(this.size - this.space)
- style.height = uni.$u.addUnit(this.size - this.space)
- const translateX = this.isActive ? uni.$u.addUnit(this.space) : uni.$u.addUnit(this.size);
- style.transform = `translateX(-${translateX})`
- return style
- },
- bgStyle() {
- let style = {}
- // 这里配置一个多余的元素在HTML中,是为了让switch切换时,有更良好的背景色扩充体验(见实际效果)
- style.width = uni.$u.addUnit(Number(this.size) * 2 - this.size / 2)
- style.height = uni.$u.addUnit(this.size)
- style.backgroundColor = this.inactiveColor
- // 打开时,让此元素收缩,否则反之
- style.transform = `scale(${this.isActive ? 0 : 1})`
- return style
- },
- customInactiveColor() {
- // 之所以需要判断是否自定义了“非激活”颜色,是为了让node圆点离外边框更宽一点的距离
- return this.inactiveColor !== '#fff' && this.inactiveColor !== '#ffffff'
- }
- },
- methods: {
- clickHandler() {
- if (!this.disabled && !this.loading) {
- const oldValue = this.isActive ? this.inactiveValue : this.activeValue
- if(!this.asyncChange) {
- this.$emit('input', oldValue)
- }
- // 放到下一个生命周期,因为双向绑定的value修改父组件状态需要时间,且是异步的
- this.$nextTick(() => {
- this.$emit('change', oldValue)
- })
- }
- }
- }
- };
-</script>
-
-<style lang="scss" scoped>
- @import "../../libs/css/components.scss";
-
- .u-switch {
- @include flex(row);
- /* #ifndef APP-NVUE */
- box-sizing: border-box;
- /* #endif */
- position: relative;
- background-color: #fff;
- border-width: 1px;
- border-radius: 100px;
- transition: background-color 0.4s;
- border-color: rgba(0, 0, 0, 0.12);
- border-style: solid;
- justify-content: flex-end;
- align-items: center;
- // 由于weex为阿里逗着玩的KPI项目,导致bug奇多,这必须要写这一行,
- // 否则在iOS上,点击页面任意地方,都会触发switch的点击事件
- overflow: hidden;
-
- &__node {
- @include flex(row);
- align-items: center;
- justify-content: center;
- border-radius: 100px;
- background-color: #fff;
- border-radius: 100px;
- box-shadow: 1px 1px 1px 0 rgba(0, 0, 0, 0.25);
- transition-property: transform;
- transition-duration: 0.4s;
- transition-timing-function: cubic-bezier(0.3, 1.05, 0.4, 1.05);
- }
-
- &__bg {
- position: absolute;
- border-radius: 100px;
- background-color: #FFFFFF;
- transition-property: transform;
- transition-duration: 0.4s;
- border-top-left-radius: 0;
- border-bottom-left-radius: 0;
- transition-timing-function: ease;
- }
-
- &--disabled {
- opacity: 0.6;
- }
- }
-</style>
diff --git a/uni_modules/uview-ui/components/u-tabbar-item/props.js b/uni_modules/uview-ui/components/u-tabbar-item/props.js
deleted file mode 100644
index a2e6a24..0000000
--- a/uni_modules/uview-ui/components/u-tabbar-item/props.js
+++ /dev/null
@@ -1,35 +0,0 @@
-export default {
- props: {
- // item标签的名称,作为与u-tabbar的value参数匹配的标识符
- name: {
- type: [String, Number, null],
- default: uni.$u.props.tabbarItem.name
- },
- // uView内置图标或者绝对路径的图片
- icon: {
- icon: String,
- default: uni.$u.props.tabbarItem.icon
- },
- // 右上角的角标提示信息
- badge: {
- type: [String, Number, null],
- default: uni.$u.props.tabbarItem.badge
- },
- // 是否显示圆点,将会覆盖badge参数
- dot: {
- type: Boolean,
- default: uni.$u.props.tabbarItem.dot
- },
- // 描述文本
- text: {
- type: String,
- default: uni.$u.props.tabbarItem.text
- },
- // 控制徽标的位置,对象或者字符串形式,可以设置top和right属性
- badgeStyle: {
- type: [Object, String],
- default: uni.$u.props.tabbarItem.badgeStyle
- }
-
- }
-}
diff --git a/uni_modules/uview-ui/components/u-tabbar-item/u-tabbar-item.vue b/uni_modules/uview-ui/components/u-tabbar-item/u-tabbar-item.vue
deleted file mode 100644
index 8ee00cf..0000000
--- a/uni_modules/uview-ui/components/u-tabbar-item/u-tabbar-item.vue
+++ /dev/null
@@ -1,142 +0,0 @@
-<template>
- <view
- class="u-tabbar-item"
- :style="[$u.addStyle(customStyle)]"
- @tap="clickHandler"
- >
- <view class="u-tabbar-item__icon">
- <u-icon
- v-if="icon"
- :name="icon"
- :color="isActive? parentData.activeColor : parentData.inactiveColor"
- :size="20"
- ></u-icon>
- <template v-else>
- <slot
- v-if="isActive"
- name="active-icon"
- />
- <slot
- v-else
- name="inactive-icon"
- />
- </template>
- <u-badge
- absolute
- :offset="[0, dot ? '34rpx' : badge > 9 ? '14rpx' : '20rpx']"
- :customStyle="badgeStyle"
- :isDot="dot"
- :value="badge || (dot ? 1 : null)"
- :show="dot || badge > 0"
- ></u-badge>
- </view>
-
- <slot name="text">
- <text
- class="u-tabbar-item__text"
- :style="{
- color: isActive? parentData.activeColor : parentData.inactiveColor
- }"
- >{{ text }}</text>
- </slot>
- </view>
-</template>
-
-<script>
- import props from './props.js';
- /**
- * TabbarItem 底部导航栏子组件
- * @description 此组件提供了自定义tabbar的能力。
- * @tutorial https://www.uviewui.com/components/tabbar.html
- * @property {String | Number} name item标签的名称,作为与u-tabbar的value参数匹配的标识符
- * @property {String} icon uView内置图标或者绝对路径的图片
- * @property {String | Number} badge 右上角的角标提示信息
- * @property {Boolean} dot 是否显示圆点,将会覆盖badge参数(默认 false )
- * @property {String} text 描述文本
- * @property {Object | String} badgeStyle 控制徽标的位置,对象或者字符串形式,可以设置top和right属性(默认 'top: 6px;right:2px;' )
- * @property {Object} customStyle 定义需要用到的外部样式
- *
- * @example <u-tabbar :value="value2" :placeholder="false" @change="name => value2 = name" :fixed="false" :safeAreaInsetBottom="false"><u-tabbar-item text="首页" icon="home" dot ></u-tabbar-item></u-tabbar>
- */
- export default {
- name: 'u-tabbar-item',
- mixins: [uni.$u.mpMixin, uni.$u.mixin,props],
- data() {
- return {
- isActive: false, // 是否处于激活状态
- parentData: {
- value: null,
- activeColor: '',
- inactiveColor: ''
- }
- }
- },
- created() {
- this.init()
- },
- methods: {
- init() {
- // 支付宝小程序不支持provide/inject,所以使用这个方法获取整个父组件,在created定义,避免循环引用
- this.updateParentData()
- if (!this.parent) {
- uni.$u.error('u-tabbar-item必须搭配u-tabbar组件使用')
- }
- // 本子组件在u-tabbar的children数组中的索引
- const index = this.parent.children.indexOf(this)
- // 判断本组件的name(如果没有定义name,就用index索引)是否等于父组件的value参数
- this.isActive = (this.name || index) === this.parentData.value
- },
- updateParentData() {
- // 此方法在mixin中
- this.getParentData('u-tabbar')
- },
- // 此方法将会被父组件u-tabbar调用
- updateFromParent() {
- // 重新初始化
- this.init()
- },
- clickHandler() {
- this.$nextTick(() => {
- const index = this.parent.children.indexOf(this)
- const name = this.name || index
- // 点击的item为非激活的item才发出change事件
- if (name !== this.parent.value) {
- this.parent.$emit('change', name)
- }
- this.$emit('click', name)
- })
- }
- },
- }
-</script>
-
-<style lang="scss" scoped>
- @import "../../libs/css/components.scss";
-
- .u-tabbar-item {
- @include flex(column);
- align-items: center;
- justify-content: center;
- flex: 1;
-
- &__icon {
- @include flex;
- position: relative;
- width: 150rpx;
- justify-content: center;
- }
-
- &__text {
- margin-top: 2px;
- font-size: 12px;
- color: $u-content-color;
- }
- }
-
- /* #ifdef MP */
- // 由于小程序都使用shadow DOM形式实现,需要给影子宿主设置flex: 1才能让其撑开
- :host {
- flex: 1
- }
- /* #endif */
-</style>
diff --git a/uni_modules/uview-ui/components/u-tabbar/props.js b/uni_modules/uview-ui/components/u-tabbar/props.js
deleted file mode 100644
index 7f8171c..0000000
--- a/uni_modules/uview-ui/components/u-tabbar/props.js
+++ /dev/null
@@ -1,44 +0,0 @@
-export default {
- props: {
- // 当前匹配项的name
- value: {
- type: [String, Number, null],
- default: uni.$u.props.tabbar.value
- },
- // 是否为iPhoneX留出底部安全距离
- safeAreaInsetBottom: {
- type: Boolean,
- default: uni.$u.props.tabbar.safeAreaInsetBottom
- },
- // 是否显示上方边框
- border: {
- type: Boolean,
- default: uni.$u.props.tabbar.border
- },
- // 元素层级z-index
- zIndex: {
- type: [String, Number],
- default: uni.$u.props.tabbar.zIndex
- },
- // 选中标签的颜色
- activeColor: {
- type: String,
- default: uni.$u.props.tabbar.activeColor
- },
- // 未选中标签的颜色
- inactiveColor: {
- type: String,
- default: uni.$u.props.tabbar.inactiveColor
- },
- // 是否固定在底部
- fixed: {
- type: Boolean,
- default: uni.$u.props.tabbar.fixed
- },
- // fixed定位固定在底部时,是否生成一个等高元素防止塌陷
- placeholder: {
- type: Boolean,
- default: uni.$u.props.tabbar.placeholder
- }
- }
-}
diff --git a/uni_modules/uview-ui/components/u-tabbar/u-tabbar.vue b/uni_modules/uview-ui/components/u-tabbar/u-tabbar.vue
deleted file mode 100644
index 953f33a..0000000
--- a/uni_modules/uview-ui/components/u-tabbar/u-tabbar.vue
+++ /dev/null
@@ -1,141 +0,0 @@
-<template>
- <view class="u-tabbar">
- <view
- class="u-tabbar__content"
- ref="u-tabbar__content"
- @touchmove.stop.prevent="noop"
- :class="[border && 'u-border-top', fixed && 'u-tabbar--fixed']"
- :style="[tabbarStyle]"
- >
- <view class="u-tabbar__content__item-wrapper">
- <slot />
- </view>
- <u-safe-bottom v-if="safeAreaInsetBottom"></u-safe-bottom>
- </view>
- <view
- class="u-tabbar__placeholder"
- v-if="placeholder"
- :style="{
- height: placeholderHeight + 'px',
- }"
- ></view>
- </view>
-</template>
-
-<script>
- import props from './props.js';
- // #ifdef APP-NVUE
- const dom = uni.requireNativePlugin('dom')
- // #endif
- /**
- * Tabbar 底部导航栏
- * @description 此组件提供了自定义tabbar的能力。
- * @tutorial https://www.uviewui.com/components/tabbar.html
- * @property {String | Number} value 当前匹配项的name
- * @property {Boolean} safeAreaInsetBottom 是否为iPhoneX留出底部安全距离(默认 true )
- * @property {Boolean} border 是否显示上方边框(默认 true )
- * @property {String | Number} zIndex 元素层级z-index(默认 1 )
- * @property {String} activeColor 选中标签的颜色(默认 '#1989fa' )
- * @property {String} inactiveColor 未选中标签的颜色(默认 '#7d7e80' )
- * @property {Boolean} fixed 是否固定在底部(默认 true )
- * @property {Boolean} placeholder fixed定位固定在底部时,是否生成一个等高元素防止塌陷(默认 true )
- * @property {Object} customStyle 定义需要用到的外部样式
- *
- * @example <u-tabbar :value="value2" :placeholder="false" @change="name => value2 = name" :fixed="false" :safeAreaInsetBottom="false"><u-tabbar-item text="首页" icon="home" dot ></u-tabbar-item></u-tabbar>
- */
- export default {
- name: 'u-tabbar',
- mixins: [uni.$u.mpMixin, uni.$u.mixin,props],
- data() {
- return {
- placeholderHeight: 0
- }
- },
- computed: {
- tabbarStyle() {
- const style = {
- zIndex: this.zIndex
- }
- // 合并来自父组件的customStyle样式
- return uni.$u.deepMerge(style, uni.$u.addStyle(this.customStyle))
- },
- // 监听多个参数的变化,通过在computed执行对应的操作
- updateChild() {
- return [this.value, this.activeColor, this.inactiveColor]
- },
- updatePlaceholder() {
- return [this.fixed, this.placeholder]
- }
- },
- watch: {
- updateChild() {
- // 如果updateChildren中的元素发生了变化,则执行子元素初始化操作
- this.updateChildren()
- },
- updatePlaceholder() {
- // 如果fixed,placeholder等参数发生变化,重新计算占位元素的高度
- this.setPlaceholderHeight()
- }
- },
- created() {
- this.children = []
- },
- mounted() {
- this.setPlaceholderHeight()
- },
- methods: {
- updateChildren() {
- // 如果存在子元素,则执行子元素的updateFromParent进行更新数据
- this.children.length && this.children.map(child => child.updateFromParent())
- },
- // 设置用于防止塌陷元素的高度
- async setPlaceholderHeight() {
- if (!this.fixed || !this.placeholder) return
- // 延时一定时间
- await uni.$u.sleep(20)
- // #ifndef APP-NVUE
- this.$uGetRect('.u-tabbar__content').then(({height = 50}) => {
- // 修复IOS safearea bottom 未填充高度
- this.placeholderHeight = height
- })
- // #endif
-
- // #ifdef APP-NVUE
- dom.getComponentRect(this.$refs['u-tabbar__content'], (res) => {
- const {
- size
- } = res
- this.placeholderHeight = size.height
- })
- // #endif
- }
- }
- }
-</script>
-
-<style lang="scss" scoped>
- @import "../../libs/css/components.scss";
-
- .u-tabbar {
- @include flex(column);
- flex: 1;
- justify-content: center;
-
- &__content {
- @include flex(column);
- background-color: #fff;
-
- &__item-wrapper {
- height: 50px;
- @include flex(row);
- }
- }
-
- &--fixed {
- position: fixed;
- bottom: 0;
- left: 0;
- right: 0;
- }
- }
-</style>
diff --git a/uni_modules/uview-ui/components/u-table/props.js b/uni_modules/uview-ui/components/u-table/props.js
deleted file mode 100644
index 7c11331..0000000
--- a/uni_modules/uview-ui/components/u-table/props.js
+++ /dev/null
@@ -1,5 +0,0 @@
-export default {
- props: {
-
- }
-}
diff --git a/uni_modules/uview-ui/components/u-table/u-table.vue b/uni_modules/uview-ui/components/u-table/u-table.vue
deleted file mode 100644
index b64ce69..0000000
--- a/uni_modules/uview-ui/components/u-table/u-table.vue
+++ /dev/null
@@ -1,29 +0,0 @@
-<template>
- <view class="u-table">
-
- </view>
-</template>
-
-<script>
- import props from './props.js';
- /**
- * Table 表格
- * @description 表格组件一般用于展示大量结构化数据的场景 本组件标签类似HTML的table表格,由table、tr、th、td四个组件组成
- * @tutorial https://www.uviewui.com/components/table.html
- * @example <u-table><u-tr><u-th>学校</u-th </u-tr> <u-tr><u-td>浙江大学</u-td> </u-tr> <u-tr><u-td>清华大学</u-td> </u-tr></u-table>
- */
- export default {
- name: 'u-table',
- mixins: [uni.$u.mpMixin, uni.$u.mixin,props],
- data() {
- return {
-
- }
- }
- }
-</script>
-
-<style lang="scss" scoped>
- @import "../../libs/css/components.scss";
-
-</style>
diff --git a/uni_modules/uview-ui/components/u-tabs-item/props.js b/uni_modules/uview-ui/components/u-tabs-item/props.js
deleted file mode 100644
index 7c11331..0000000
--- a/uni_modules/uview-ui/components/u-tabs-item/props.js
+++ /dev/null
@@ -1,5 +0,0 @@
-export default {
- props: {
-
- }
-}
diff --git a/uni_modules/uview-ui/components/u-tabs-item/u-tabs-item.vue b/uni_modules/uview-ui/components/u-tabs-item/u-tabs-item.vue
deleted file mode 100644
index effb796..0000000
--- a/uni_modules/uview-ui/components/u-tabs-item/u-tabs-item.vue
+++ /dev/null
@@ -1,29 +0,0 @@
-<template>
- <swiper-item>
- <slot />
- </swiper-item>
-</template>
-
-<script>
- import props from './props.js';
- /**
- * TabsItem tabs标签组件的自组件
- * @description tabs标签组件,在标签多的时候,可以配置为左右滑动,标签少的时候,可以禁止滑动。 该组件的一个特点是配置为滚动模式时,激活的tab会自动移动到组件的中间位置。
- * @tutorial https://www.uviewui.com/components/tabs.html
- * @property {type} prop_name
- * @event {Function()}
- * @example
- */
- export default {
- name: 'u-tabs-item',
- mixins: [uni.$u.mpMixin, uni.$u.mixin,props],
- data() {
- return {
-
- }
- }
- }
-</script>
-
-<style>
-</style>
diff --git a/uni_modules/uview-ui/components/u-tabs/props.js b/uni_modules/uview-ui/components/u-tabs/props.js
deleted file mode 100644
index 2cfa41f..0000000
--- a/uni_modules/uview-ui/components/u-tabs/props.js
+++ /dev/null
@@ -1,64 +0,0 @@
-export default {
- props: {
- // 滑块的移动过渡时间,单位ms
- duration: {
- type: Number,
- default: uni.$u.props.tabs.duration
- },
- // tabs标签数组
- list: {
- type: Array,
- default: uni.$u.props.tabs.list
- },
- // 滑块颜色
- lineColor: {
- type: String,
- default: uni.$u.props.tabs.lineColor
- },
- // 菜单选择中时的样式
- activeStyle: {
- type: [String, Object],
- default: uni.$u.props.tabs.activeStyle
- },
- // 菜单非选中时的样式
- inactiveStyle: {
- type: [String, Object],
- default: uni.$u.props.tabs.inactiveStyle
- },
- // 滑块长度
- lineWidth: {
- type: [String, Number],
- default: uni.$u.props.tabs.lineWidth
- },
- // 滑块高度
- lineHeight: {
- type: [String, Number],
- default: uni.$u.props.tabs.lineHeight
- },
- // 滑块背景显示大小,当滑块背景设置为图片时使用
- lineBgSize: {
- type: String,
- default: uni.$u.props.tabs.lineBgSize
- },
- // 菜单item的样式
- itemStyle: {
- type: [String, Object],
- default: uni.$u.props.tabs.itemStyle
- },
- // 菜单是否可滚动
- scrollable: {
- type: Boolean,
- default: uni.$u.props.tabs.scrollable
- },
- // 当前选中标签的索引
- current: {
- type: [Number, String],
- default: uni.$u.props.tabs.current
- },
- // 默认读取的键名
- keyName: {
- type: String,
- default: uni.$u.props.tabs.keyName
- }
- }
-}
diff --git a/uni_modules/uview-ui/components/u-tabs/u-tabs.vue b/uni_modules/uview-ui/components/u-tabs/u-tabs.vue
deleted file mode 100644
index d2b3b03..0000000
--- a/uni_modules/uview-ui/components/u-tabs/u-tabs.vue
+++ /dev/null
@@ -1,363 +0,0 @@
-<template>
- <view class="u-tabs">
- <view class="u-tabs__wrapper">
- <slot name="left" />
- <view class="u-tabs__wrapper__scroll-view-wrapper">
- <scroll-view
- :scroll-x="scrollable"
- :scroll-left="scrollLeft"
- scroll-with-animation
- class="u-tabs__wrapper__scroll-view"
- :show-scrollbar="false"
- ref="u-tabs__wrapper__scroll-view"
- >
- <view
- class="u-tabs__wrapper__nav"
- ref="u-tabs__wrapper__nav"
- >
- <view
- class="u-tabs__wrapper__nav__item"
- v-for="(item, index) in list"
- :key="index"
- @tap="clickHandler(item, index)"
- @longpress="longPressHandler(item,index)"
- :ref="`u-tabs__wrapper__nav__item-${index}`"
- :style="[$u.addStyle(itemStyle), {flex: scrollable ? '' : 1}]"
- :class="[`u-tabs__wrapper__nav__item-${index}`, item.disabled && 'u-tabs__wrapper__nav__item--disabled']"
- >
- <text
- :class="[item.disabled && 'u-tabs__wrapper__nav__item__text--disabled']"
- class="u-tabs__wrapper__nav__item__text"
- :style="[textStyle(index)]"
- >{{ item[keyName] }}</text>
- <u-badge
- :show="!!(item.badge && (item.badge.show || item.badge.isDot || item.badge.value))"
- :isDot="item.badge && item.badge.isDot || propsBadge.isDot"
- :value="item.badge && item.badge.value || propsBadge.value"
- :max="item.badge && item.badge.max || propsBadge.max"
- :type="item.badge && item.badge.type || propsBadge.type"
- :showZero="item.badge && item.badge.showZero || propsBadge.showZero"
- :bgColor="item.badge && item.badge.bgColor || propsBadge.bgColor"
- :color="item.badge && item.badge.color || propsBadge.color"
- :shape="item.badge && item.badge.shape || propsBadge.shape"
- :numberType="item.badge && item.badge.numberType || propsBadge.numberType"
- :inverted="item.badge && item.badge.inverted || propsBadge.inverted"
- customStyle="margin-left: 4px;"
- ></u-badge>
- </view>
- <!-- #ifdef APP-NVUE -->
- <view
- class="u-tabs__wrapper__nav__line"
- ref="u-tabs__wrapper__nav__line"
- :style="[{
- width: $u.addUnit(lineWidth),
- height: $u.addUnit(lineHeight),
- background: lineColor,
- backgroundSize: lineBgSize,
- }]"
- >
- <!-- #endif -->
- <!-- #ifndef APP-NVUE -->
- <view
- class="u-tabs__wrapper__nav__line"
- ref="u-tabs__wrapper__nav__line"
- :style="[{
- width: $u.addUnit(lineWidth),
- transform: `translate(${lineOffsetLeft}px)`,
- transitionDuration: `${firstTime ? 0 : duration}ms`,
- height: $u.addUnit(lineHeight),
- background: lineColor,
- backgroundSize: lineBgSize,
- }]"
- >
- <!-- #endif -->
- </view>
- </view>
- </scroll-view>
- </view>
- <slot name="right" />
- </view>
- </view>
-</template>
-
-<script>
- // #ifdef APP-NVUE
- const animation = uni.requireNativePlugin('animation')
- const dom = uni.requireNativePlugin('dom')
- // #endif
- import props from './props.js';
- /**
- * Tabs 标签
- * @description tabs标签组件,在标签多的时候,可以配置为左右滑动,标签少的时候,可以禁止滑动。 该组件的一个特点是配置为滚动模式时,激活的tab会自动移动到组件的中间位置。
- * @tutorial https://www.uviewui.com/components/tabs.html
- * @property {String | Number} duration 滑块移动一次所需的时间,单位秒(默认 200 )
- * @property {String | Number} swierWidth swiper的宽度(默认 '750rpx' )
- * @property {String} keyName 从`list`元素对象中读取的键名(默认 'name' )
- * @event {Function(index)} change 标签改变时触发 index: 点击了第几个tab,索引从0开始
- * @event {Function(index)} click 点击标签时触发 index: 点击了第几个tab,索引从0开始
- * @event {Function(index)} longPress 长按标签时触发 index: 点击了第几个tab,索引从0开始
- * @example <u-tabs :list="list" :is-scroll="false" :current="current" @change="change" @longPress="longPress"></u-tabs>
- */
- export default {
- name: 'u-tabs',
- mixins: [uni.$u.mpMixin, uni.$u.mixin, props],
- data() {
- return {
- firstTime: true,
- scrollLeft: 0,
- scrollViewWidth: 0,
- lineOffsetLeft: 0,
- tabsRect: {
- left: 0
- },
- innerCurrent: 0,
- moving: false,
- }
- },
- watch: {
- current: {
- immediate: true,
- handler (newValue, oldValue) {
- // 内外部值不相等时,才尝试移动滑块
- if (newValue !== this.innerCurrent) {
- this.innerCurrent = newValue
- this.$nextTick(() => {
- this.resize()
- })
- }
- }
- },
- // list变化时,重新渲染list各项信息
- list() {
- this.$nextTick(() => {
- this.resize()
- })
- }
- },
- computed: {
- textStyle() {
- return index => {
- const style = {}
- // 取当期是否激活的样式
- const customeStyle = index === this.innerCurrent ? uni.$u.addStyle(this.activeStyle) : uni.$u
- .addStyle(
- this.inactiveStyle)
- // 如果当前菜单被禁用,则加上对应颜色,需要在此做处理,是因为nvue下,无法在style样式中通过!import覆盖标签的内联样式
- if (this.list[index].disabled) {
- style.color = '#c8c9cc'
- }
- return uni.$u.deepMerge(customeStyle, style)
- }
- },
- propsBadge() {
- return uni.$u.props.badge
- }
- },
- async mounted() {
- this.init()
- },
- methods: {
- setLineLeft() {
- const tabItem = this.list[this.innerCurrent];
- if (!tabItem) {
- return;
- }
- // 获取滑块该移动的位置
- let lineOffsetLeft = this.list
- .slice(0, this.innerCurrent)
- .reduce((total, curr) => total + curr.rect.width, 0);
- // 获取下划线的数值px表示法
- const lineWidth = uni.$u.getPx(this.lineWidth);
- this.lineOffsetLeft = lineOffsetLeft + (tabItem.rect.width - lineWidth) / 2
- // #ifdef APP-NVUE
- // 第一次移动滑块,无需过渡时间
- this.animation(this.lineOffsetLeft, this.firstTime ? 0 : parseInt(this.duration))
- // #endif
-
- // 如果是第一次执行此方法,让滑块在初始化时,瞬间滑动到第一个tab item的中间
- // 这里需要一个定时器,因为在非nvue下,是直接通过style绑定过渡时间,需要等其过渡完成后,再设置为false(非第一次移动滑块)
- if (this.firstTime) {
- setTimeout(() => {
- this.firstTime = false
- }, 10);
- }
- },
- // nvue下设置滑块的位置
- animation(x, duration = 0) {
- // #ifdef APP-NVUE
- const ref = this.$refs['u-tabs__wrapper__nav__line']
- animation.transition(ref, {
- styles: {
- transform: `translateX(${x}px)`
- },
- duration
- })
- // #endif
- },
- // 点击某一个标签
- clickHandler(item, index) {
- // 因为标签可能为disabled状态,所以click是一定会发出的,但是change事件是需要可用的状态才发出
- this.$emit('click', {
- ...item,
- index
- })
- // 如果disabled状态,返回
- if (item.disabled) return
- this.innerCurrent = index
- this.resize()
- this.$emit('change', {
- ...item,
- index
- })
- },
- // 长按事件
- longPressHandler(item, index) {
- this.$emit('longPress', {
- ...item,
- index
- })
- },
- init() {
- uni.$u.sleep().then(() => {
- this.resize()
- })
- },
- setScrollLeft() {
- // 当前活动tab的布局信息,有tab菜单的width和left(为元素左边界到父元素左边界的距离)等信息
- const tabRect = this.list[this.innerCurrent]
- // 累加得到当前item到左边的距离
- const offsetLeft = this.list
- .slice(0, this.innerCurrent)
- .reduce((total, curr) => {
- return total + curr.rect.width
- }, 0)
- // 此处为屏幕宽度
- const windowWidth = uni.$u.sys().windowWidth
- // 将活动的tabs-item移动到屏幕正中间,实际上是对scroll-view的移动
- let scrollLeft = offsetLeft - (this.tabsRect.width - tabRect.rect.width) / 2 - (windowWidth - this.tabsRect
- .right) / 2 + this.tabsRect.left / 2
- // 这里做一个限制,限制scrollLeft的最大值为整个scroll-view宽度减去tabs组件的宽度
- scrollLeft = Math.min(scrollLeft, this.scrollViewWidth - this.tabsRect.width)
- this.scrollLeft = Math.max(0, scrollLeft)
- },
- // 获取所有标签的尺寸
- resize() {
- // 如果不存在list,则不处理
- if(this.list.length === 0) {
- return
- }
- Promise.all([this.getTabsRect(), this.getAllItemRect()]).then(([tabsRect, itemRect = []]) => {
- this.tabsRect = tabsRect
- this.scrollViewWidth = 0
- itemRect.map((item, index) => {
- // 计算scroll-view的宽度,这里
- this.scrollViewWidth += item.width
- // 另外计算每一个item的中心点X轴坐标
- this.list[index].rect = item
- })
- // 获取了tabs的尺寸之后,设置滑块的位置
- this.setLineLeft()
- this.setScrollLeft()
- })
- },
- // 获取导航菜单的尺寸
- getTabsRect() {
- return new Promise(resolve => {
- this.queryRect('u-tabs__wrapper__scroll-view').then(size => resolve(size))
- })
- },
- // 获取所有标签的尺寸
- getAllItemRect() {
- return new Promise(resolve => {
- const promiseAllArr = this.list.map((item, index) => this.queryRect(
- `u-tabs__wrapper__nav__item-${index}`, true))
- Promise.all(promiseAllArr).then(sizes => resolve(sizes))
- })
- },
- // 获取各个标签的尺寸
- queryRect(el, item) {
- // #ifndef APP-NVUE
- // $uGetRect为uView自带的节点查询简化方法,详见文档介绍:https://www.uviewui.com/js/getRect.html
- // 组件内部一般用this.$uGetRect,对外的为uni.$u.getRect,二者功能一致,名称不同
- return new Promise(resolve => {
- this.$uGetRect(`.${el}`).then(size => {
- resolve(size)
- })
- })
- // #endif
-
- // #ifdef APP-NVUE
- // nvue下,使用dom模块查询元素高度
- // 返回一个promise,让调用此方法的主体能使用then回调
- return new Promise(resolve => {
- dom.getComponentRect(item ? this.$refs[el][0] : this.$refs[el], res => {
- resolve(res.size)
- })
- })
- // #endif
- },
- },
- }
-</script>
-
-<style lang="scss" scoped>
- @import "../../libs/css/components.scss";
-
- .u-tabs {
-
- &__wrapper {
- @include flex;
- align-items: center;
-
- &__scroll-view-wrapper {
- flex: 1;
- /* #ifndef APP-NVUE */
- overflow: auto hidden;
- /* #endif */
- }
-
- &__scroll-view {
- @include flex;
- flex: 1;
- }
-
- &__nav {
- @include flex;
- position: relative;
-
- &__item {
- padding: 0 11px;
- @include flex;
- align-items: center;
- justify-content: center;
-
- &--disabled {
- /* #ifndef APP-NVUE */
- cursor: not-allowed;
- /* #endif */
- }
-
- &__text {
- font-size: 15px;
- color: $u-content-color;
-
- &--disabled {
- color: $u-disabled-color !important;
- }
- }
- }
-
- &__line {
- height: 3px;
- background: $u-primary;
- width: 30px;
- position: absolute;
- bottom: 2px;
- border-radius: 100px;
- transition-property: transform;
- transition-duration: 300ms;
- }
- }
- }
- }
-</style>
diff --git a/uni_modules/uview-ui/components/u-tag/props.js b/uni_modules/uview-ui/components/u-tag/props.js
deleted file mode 100644
index 6bffaa2..0000000
--- a/uni_modules/uview-ui/components/u-tag/props.js
+++ /dev/null
@@ -1,84 +0,0 @@
-export default {
- props: {
- // 标签类型info、primary、success、warning、error
- type: {
- type: String,
- default: uni.$u.props.tag.type
- },
- // 不可用
- disabled: {
- type: [Boolean, String],
- default: uni.$u.props.tag.disabled
- },
- // 标签的大小,large,medium,mini
- size: {
- type: String,
- default: uni.$u.props.tag.size
- },
- // tag的形状,circle(两边半圆形), square(方形,带圆角)
- shape: {
- type: String,
- default: uni.$u.props.tag.shape
- },
- // 标签文字
- text: {
- type: [String, Number],
- default: uni.$u.props.tag.text
- },
- // 背景颜色,默认为空字符串,即不处理
- bgColor: {
- type: String,
- default: uni.$u.props.tag.bgColor
- },
- // 标签字体颜色,默认为空字符串,即不处理
- color: {
- type: String,
- default: uni.$u.props.tag.color
- },
- // 标签的边框颜色
- borderColor: {
- type: String,
- default: uni.$u.props.tag.borderColor
- },
- // 关闭按钮图标的颜色
- closeColor: {
- type: String,
- default: uni.$u.props.tag.closeColor
- },
- // 点击时返回的索引值,用于区分例遍的数组哪个元素被点击了
- name: {
- type: [String, Number],
- default: uni.$u.props.tag.name
- },
- // // 模式选择,dark|light|plain
- // mode: {
- // type: String,
- // default: 'light'
- // },
- // 镂空时是否填充背景色
- plainFill: {
- type: Boolean,
- default: uni.$u.props.tag.plainFill
- },
- // 是否镂空
- plain: {
- type: Boolean,
- default: uni.$u.props.tag.plain
- },
- // 是否可关闭
- closable: {
- type: Boolean,
- default: uni.$u.props.tag.closable
- },
- // 是否显示
- show: {
- type: Boolean,
- default: uni.$u.props.tag.show
- },
- // 内置图标,或绝对路径的图片
- icon: {
- type: String,
- default: uni.$u.props.tag.icon
- }
- }
-}
diff --git a/uni_modules/uview-ui/components/u-tag/u-tag.vue b/uni_modules/uview-ui/components/u-tag/u-tag.vue
deleted file mode 100644
index 95f33c4..0000000
--- a/uni_modules/uview-ui/components/u-tag/u-tag.vue
+++ /dev/null
@@ -1,358 +0,0 @@
-<template>
- <u-transition
- mode="fade"
- :show="show"
- >
- <view class="u-tag-wrapper">
- <view
- class="u-tag"
- :class="[`u-tag--${shape}`, !plain && `u-tag--${type}`, plain && `u-tag--${type}--plain`, `u-tag--${size}`, plain && plainFill && `u-tag--${type}--plain--fill`]"
- @tap.stop="clickHandler"
- :style="[{
- marginRight: closable ? '10px' : 0,
- marginTop: closable ? '10px' : 0,
- }, style]"
- >
- <slot name="icon">
- <view
- class="u-tag__icon"
- v-if="icon"
- >
- <image
- v-if="$u.test.image(icon)"
- :src="icon"
- :style="[imgStyle]"
- ></image>
- <u-icon
- v-else
- :color="elIconColor"
- :name="icon"
- :size="iconSize"
- ></u-icon>
- </view>
- </slot>
- <text
- class="u-tag__text"
- :style="[textColor]"
- :class="[`u-tag__text--${type}`, plain && `u-tag__text--${type}--plain`, `u-tag__text--${size}`]"
- >{{ text }}</text>
- </view>
- <view
- class="u-tag__close"
- :class="[`u-tag__close--${size}`]"
- v-if="closable"
- @tap.stop="closeHandler"
- :style="{backgroundColor: closeColor}"
- >
- <u-icon
- name="close"
- :size="closeSize"
- color="#ffffff"
- ></u-icon>
- </view>
- </view>
- </u-transition>
-</template>
-
-<script>
- import props from './props.js';
- /**
- * Tag 标签
- * @description tag组件一般用于标记和选择,我们提供了更加丰富的表现形式,能够较全面的涵盖您的使用场景
- * @tutorial https://www.uviewui.com/components/tag.html
- * @property {String} type 标签类型info、primary、success、warning、error (默认 'primary' )
- * @property {Boolean | String} disabled 不可用(默认 false )
- * @property {String} size 标签的大小,large,medium,mini (默认 'medium' )
- * @property {String} shape tag的形状,circle(两边半圆形), square(方形,带圆角)(默认 'square' )
- * @property {String | Number} text 标签的文字内容
- * @property {String} bgColor 背景颜色,默认为空字符串,即不处理
- * @property {String} color 标签字体颜色,默认为空字符串,即不处理
- * @property {String} borderColor 镂空形式标签的边框颜色
- * @property {String} closeColor 关闭按钮图标的颜色(默认 #C6C7CB)
- * @property {String | Number} name 点击时返回的索引值,用于区分例遍的数组哪个元素被点击了
- * @property {Boolean} plainFill 镂空时是否填充背景色(默认 false )
- * @property {Boolean} plain 是否镂空(默认 false )
- * @property {Boolean} closable 是否可关闭,设置为true,文字右边会出现一个关闭图标(默认 false )
- * @property {Boolean} show 标签显示与否(默认 true )
- * @property {String} icon 内置图标,或绝对路径的图片
- * @event {Function(index)} click 点击标签时触发 index: 传递的index参数值
- * @event {Function(index)} close closable为true时,点击标签关闭按钮触发 index: 传递的index参数值
- * @example <u-tag text="标签" type="error" plain plainFill></u-tag>
- */
- export default {
- name: 'u-tag',
- mixins: [uni.$u.mpMixin, uni.$u.mixin, props],
- data() {
- return {
-
- }
- },
- computed: {
- style() {
- const style = {}
- if (this.bgColor) {
- style.backgroundColor = this.bgColor
- }
- if (this.color) {
- style.color = this.color
- }
- if(this.borderColor) {
- style.borderColor = this.borderColor
- }
- return style
- },
- // nvue下,文本颜色无法继承父元素
- textColor() {
- const style = {}
- if (this.color) {
- style.color = this.color
- }
- return style
- },
- imgStyle() {
- const width = this.size === 'large' ? '17px' : this.size === 'medium' ? '15px' : '13px'
- return {
- width,
- height: width
- }
- },
- // 文本的样式
- closeSize() {
- const size = this.size === 'large' ? 15 : this.size === 'medium' ? 13 : 12
- return size
- },
- // 图标大小
- iconSize() {
- const size = this.size === 'large' ? 21 : this.size === 'medium' ? 19 : 16
- return size
- },
- // 图标颜色
- elIconColor() {
- return this.iconColor ? this.iconColor : this.plain ? this.type : '#ffffff'
- }
- },
- methods: {
- // 点击关闭按钮
- closeHandler() {
- this.$emit('close', this.name)
- },
- // 点击标签
- clickHandler() {
- this.$emit('click', this.name)
- }
- }
- }
-</script>
-
-<style
- lang="scss"
- scoped
->
- @import "../../libs/css/components.scss";
-
- .u-tag-wrapper {
- position: relative;
- }
-
- .u-tag {
- @include flex;
- align-items: center;
- border-style: solid;
-
- &--circle {
- border-radius: 100px;
- }
-
- &--square {
- border-radius: 3px;
- }
-
- &__icon {
- margin-right: 4px;
- }
-
- &__text {
- &--mini {
- font-size: 12px;
- line-height: 12px;
- }
-
- &--medium {
- font-size: 13px;
- line-height: 13px;
- }
-
- &--large {
- font-size: 15px;
- line-height: 15px;
- }
- }
-
- &--mini {
- height: 22px;
- line-height: 22px;
- padding: 0 5px;
- }
-
- &--medium {
- height: 26px;
- line-height: 22px;
- padding: 0 10px;
- }
-
- &--large {
- height: 32px;
- line-height: 32px;
- padding: 0 15px;
- }
-
- &--primary {
- background-color: $u-primary;
- border-width: 1px;
- border-color: $u-primary;
- }
-
- &--primary--plain {
- border-width: 1px;
- border-color: $u-primary;
- }
-
- &--primary--plain--fill {
- background-color: #ecf5ff;
- }
-
- &__text--primary {
- color: #FFFFFF;
- }
-
- &__text--primary--plain {
- color: $u-primary;
- }
-
- &--error {
- background-color: $u-error;
- border-width: 1px;
- border-color: $u-error;
- }
-
- &--error--plain {
- border-width: 1px;
- border-color: $u-error;
- }
-
- &--error--plain--fill {
- background-color: #fef0f0;
- }
-
- &__text--error {
- color: #FFFFFF;
- }
-
- &__text--error--plain {
- color: $u-error;
- }
-
- &--warning {
- background-color: $u-warning;
- border-width: 1px;
- border-color: $u-warning;
- }
-
- &--warning--plain {
- border-width: 1px;
- border-color: $u-warning;
- }
-
- &--warning--plain--fill {
- background-color: #fdf6ec;
- }
-
- &__text--warning {
- color: #FFFFFF;
- }
-
- &__text--warning--plain {
- color: $u-warning;
- }
-
- &--success {
- background-color: $u-success;
- border-width: 1px;
- border-color: $u-success;
- }
-
- &--success--plain {
- border-width: 1px;
- border-color: $u-success;
- }
-
- &--success--plain--fill {
- background-color: #f5fff0;
- }
-
- &__text--success {
- color: #FFFFFF;
- }
-
- &__text--success--plain {
- color: $u-success;
- }
-
- &--info {
- background-color: $u-info;
- border-width: 1px;
- border-color: $u-info;
- }
-
- &--info--plain {
- border-width: 1px;
- border-color: $u-info;
- }
-
- &--info--plain--fill {
- background-color: #f4f4f5;
- }
-
- &__text--info {
- color: #FFFFFF;
- }
-
- &__text--info--plain {
- color: $u-info;
- }
-
- &__close {
- position: absolute;
- z-index: 999;
- top: 10px;
- right: 10px;
- border-radius: 100px;
- background-color: #C6C7CB;
- @include flex(row);
- align-items: center;
- justify-content: center;
- /* #ifndef APP-NVUE */
- transform: scale(0.6) translate(80%, -80%);
- /* #endif */
- /* #ifdef APP-NVUE */
- transform: scale(0.6) translate(50%, -50%);
- /* #endif */
-
- &--mini {
- width: 18px;
- height: 18px;
- }
-
- &--medium {
- width: 22px;
- height: 22px;
- }
-
- &--large {
- width: 25px;
- height: 25px;
- }
- }
-
- }
-</style>
diff --git a/uni_modules/uview-ui/components/u-td/props.js b/uni_modules/uview-ui/components/u-td/props.js
deleted file mode 100644
index 7c11331..0000000
--- a/uni_modules/uview-ui/components/u-td/props.js
+++ /dev/null
@@ -1,5 +0,0 @@
-export default {
- props: {
-
- }
-}
diff --git a/uni_modules/uview-ui/components/u-td/u-td.vue b/uni_modules/uview-ui/components/u-td/u-td.vue
deleted file mode 100644
index 600dce5..0000000
--- a/uni_modules/uview-ui/components/u-td/u-td.vue
+++ /dev/null
@@ -1,31 +0,0 @@
-<template>
- <view class="u-td">
-
- </view>
-</template>
-
-<script>
- import props from './props.js';
- /**
- * Td 表格中的单元格
- * @description
- * @tutorial url
- * @property {String | Number}
- * @event {Function}
- * @example
- */
- export default {
- name: 'u-td',
- mixins: [uni.$u.mpMixin, uni.$u.mixin,props],
- data() {
- return {
-
- }
- }
- }
-</script>
-
-<style lang="scss" scoped>
- @import "../../libs/css/components.scss";
-
-</style>
diff --git a/uni_modules/uview-ui/components/u-text/props.js b/uni_modules/uview-ui/components/u-text/props.js
deleted file mode 100644
index d330075..0000000
--- a/uni_modules/uview-ui/components/u-text/props.js
+++ /dev/null
@@ -1,110 +0,0 @@
-export default {
- props: {
- // 主题颜色
- type: {
- type: String,
- default: uni.$u.props.text.type
- },
- // 是否显示
- show: {
- type: Boolean,
- default: uni.$u.props.text.show
- },
- // 显示的值
- text: {
- type: [String, Number],
- default: uni.$u.props.text.text
- },
- // 前置图标
- prefixIcon: {
- type: String,
- default: uni.$u.props.text.prefixIcon
- },
- // 后置图标
- suffixIcon: {
- type: String,
- default: uni.$u.props.text.suffixIcon
- },
- // 文本处理的匹配模式
- // text-普通文本,price-价格,phone-手机号,name-姓名,date-日期,link-超链接
- mode: {
- type: String,
- default: uni.$u.props.text.mode
- },
- // mode=link下,配置的链接
- href: {
- type: String,
- default: uni.$u.props.text.href
- },
- // 格式化规则
- format: {
- type: [String, Function],
- default: uni.$u.props.text.format
- },
- // mode=phone时,点击文本是否拨打电话
- call: {
- type: Boolean,
- default: uni.$u.props.text.call
- },
- // 小程序的打开方式
- openType: {
- type: String,
- default: uni.$u.props.text.openType
- },
- // 是否粗体,默认normal
- bold: {
- type: Boolean,
- default: uni.$u.props.text.bold
- },
- // 是否块状
- block: {
- type: Boolean,
- default: uni.$u.props.text.block
- },
- // 文本显示的行数,如果设置,超出此行数,将会显示省略号
- lines: {
- type: [String, Number],
- default: uni.$u.props.text.lines
- },
- // 文本颜色
- color: {
- type: String,
- default: uni.$u.props.text.color
- },
- // 字体大小
- size: {
- type: [String, Number],
- default: uni.$u.props.text.size
- },
- // 图标的样式
- iconStyle: {
- type: [Object, String],
- default: uni.$u.props.text.iconStyle
- },
- // 文字装饰,下划线,中划线等,可选值 none|underline|line-through
- decoration: {
- type: String,
- default: uni.$u.props.text.decoration
- },
- // 外边距,对象、字符串,数值形式均可
- margin: {
- type: [Object, String, Number],
- default: uni.$u.props.text.margin
- },
- // 文本行高
- lineHeight: {
- type: [String, Number],
- default: uni.$u.props.text.lineHeight
- },
- // 文本对齐方式,可选值left|center|right
- align: {
- type: String,
- default: uni.$u.props.text.align
- },
- // 文字换行,可选值break-word|normal|anywhere
- wordWrap: {
- type: String,
- default: uni.$u.props.text.wordWrap
- }
- }
-}
diff --git a/uni_modules/uview-ui/components/u-text/u-text.vue b/uni_modules/uview-ui/components/u-text/u-text.vue
deleted file mode 100644
index 99d0809..0000000
--- a/uni_modules/uview-ui/components/u-text/u-text.vue
+++ /dev/null
@@ -1,223 +0,0 @@
-<template>
- <view
- class="u-text"
- :class="[]"
- v-if="show"
- :style="{
- margin: margin,
- justifyContent: align === 'left' ? 'flex-start' : align === 'center' ? 'center' : 'flex-end'
- }"
- @tap="clickHandler"
- >
- <text
- :class="['u-text__price', type && `u-text__value--${type}`]"
- v-if="mode === 'price'"
- :style="[valueStyle]"
- >¥</text
- >
- <view class="u-text__prefix-icon" v-if="prefixIcon">
- <u-icon
- :name="prefixIcon"
- :customStyle="$u.addStyle(iconStyle)"
- ></u-icon>
- </view>
- <u-link
- v-if="mode === 'link'"
- :text="value"
- :href="href"
- underLine
- ></u-link>
- <template v-else-if="openType && isMp">
- <button
- class="u-reset-button u-text__value"
- :style="[valueStyle]"
- :data-index="index"
- :openType="openType"
- @getuserinfo="onGetUserInfo"
- @contact="onContact"
- @getphonenumber="onGetPhoneNumber"
- @error="onError"
- @launchapp="onLaunchApp"
- @opensetting="onOpenSetting"
- :lang="lang"
- :session-from="sessionFrom"
- :send-message-title="sendMessageTitle"
- :send-message-path="sendMessagePath"
- :send-message-img="sendMessageImg"
- :show-message-card="showMessageCard"
- :app-parameter="appParameter"
- >
- {{ value }}
- </button>
- </template>
- <text
- v-else
- class="u-text__value"
- :style="[valueStyle]"
- :class="[
- type && `u-text__value--${type}`,
- lines && `u-line-${lines}`
- ]"
- >{{ value }}</text
- >
- <view class="u-text__suffix-icon" v-if="suffixIcon">
- <u-icon
- :name="suffixIcon"
- :customStyle="$u.addStyle(iconStyle)"
- ></u-icon>
- </view>
- </view>
-</template>
-
-<script>
-import value from './value.js'
-import button from '../../libs/mixin/button.js'
-import openType from '../../libs/mixin/openType.js'
-import props from './props.js'
-/**
- * Text 文本
- * @description 此组件集成了文本类在项目中的常用功能,包括状态,拨打电话,格式化日期,*替换,超链接...等功能。 您大可不必在使用特殊文本时自己定义,text组件几乎涵盖您能使用的大部分场景。
- * @tutorial https://www.uviewui.com/components/loading.html
- * @property {String} type 主题颜色
- * @property {Boolean} show 是否显示(默认 true )
- * @property {String | Number} text 显示的值
- * @property {String} prefixIcon 前置图标
- * @property {String} suffixIcon 后置图标
- * @property {String} mode 文本处理的匹配模式 text-普通文本,price-价格,phone-手机号,name-姓名,date-日期,link-超链接
- * @property {String} href mode=link下,配置的链接
- * @property {String | Function} format 格式化规则
- * @property {Boolean} call mode=phone时,点击文本是否拨打电话(默认 false )
- * @property {String} openType 小程序的打开方式
- * @property {Boolean} bold 是否粗体,默认normal(默认 false )
- * @property {Boolean} block 是否块状(默认 false )
- * @property {String | Number} lines 文本显示的行数,如果设置,超出此行数,将会显示省略号
- * @property {String} color 文本颜色(默认 '#303133' )
- * @property {String | Number} size 字体大小(默认 15 )
- * @property {Object | String} iconStyle 图标的样式 (默认 {fontSize: '15px'} )
- * @property {String} decoration 文字装饰,下划线,中划线等,可选值 none|underline|line-through(默认 'none' )
- * @property {Object | String | Number} margin 外边距,对象、字符串,数值形式均可(默认 0 )
- * @property {String | Number} lineHeight 文本行高
- * @property {String} align 文本对齐方式,可选值left|center|right(默认 'left' )
- * @property {String} wordWrap 文字换行,可选值break-word|normal|anywhere(默认 'normal' )
- * @event {Function} click 点击触发事件
- * @example <u--text text="我用十年青春,赴你最后之约"></u--text>
- */
-export default {
- name: 'u--text',
- // #ifdef MP
- mixins: [uni.$u.mpMixin, uni.$u.mixin, value, button, openType, props],
- // #endif
- // #ifndef MP
- mixins: [uni.$u.mpMixin, uni.$u.mixin, value, props],
- // #endif
- computed: {
- valueStyle() {
- const style = {
- textDecoration: this.decoration,
- fontWeight: this.bold ? 'bold' : 'normal',
- wordWrap: this.wordWrap,
- fontSize: uni.$u.addUnit(this.size)
- }
- !this.type && (style.color = this.color)
- this.isNvue && this.lines && (style.lines = this.lines)
- this.lineHeight &&
- (style.lineHeight = uni.$u.addUnit(this.lineHeight))
- !this.isNvue && this.block && (style.display = 'block')
- return uni.$u.deepMerge(style, uni.$u.addStyle(this.customStyle))
- },
- isNvue() {
- let nvue = false
- // #ifdef APP-NVUE
- nvue = true
- // #endif
- return nvue
- },
- isMp() {
- let mp = false
- // #ifdef MP
- mp = true
- // #endif
- return mp
- }
- },
- data() {
- return {}
- },
- methods: {
- clickHandler() {
- // 如果为手机号模式,拨打电话
- if (this.call && this.mode === 'phone') {
- uni.makePhoneCall({
- phoneNumber: this.text
- })
- }
- this.$emit('click')
- }
- }
-}
-</script>
-
-<style lang="scss" scoped>
-@import '../../libs/css/components.scss';
-
-.u-text {
- @include flex(row);
- align-items: center;
- flex-wrap: nowrap;
- flex: 1;
- /* #ifndef APP-NVUE */
- width: 100%;
- /* #endif */
-
- &__price {
- font-size: 14px;
- color: $u-content-color;
- }
-
- &__value {
- font-size: 14px;
- @include flex;
- color: $u-content-color;
- flex-wrap: wrap;
- // flex: 1;
- text-overflow: ellipsis;
- align-items: center;
-
- &--primary {
- color: $u-primary;
- }
-
- &--warning {
- color: $u-warning;
- }
-
- &--success {
- color: $u-success;
- }
-
- &--info {
- color: $u-info;
- }
-
- &--error {
- color: $u-error;
- }
-
- &--main {
- color: $u-main-color;
- }
-
- &--content {
- color: $u-content-color;
- }
-
- &--tips {
- color: $u-tips-color;
- }
-
- &--light {
- color: $u-light-color;
- }
- }
-}
-</style>
diff --git a/uni_modules/uview-ui/components/u-text/value.js b/uni_modules/uview-ui/components/u-text/value.js
deleted file mode 100644
index 9859bbb..0000000
--- a/uni_modules/uview-ui/components/u-text/value.js
+++ /dev/null
@@ -1,85 +0,0 @@
-export default {
- computed: {
- // 经处理后需要显示的值
- value() {
- const {
- text,
- mode,
- format,
- href
- } = this
- // 价格类型
- if (mode === 'price') {
- // 如果text不为金额进行提示
- if (!/^\d+(\.\d+)?$/.test(text)) {
- uni.$u.error('金额模式下,text参数需要为金额格式');
- }
- // 进行格式化,判断用户传入的format参数为正则,或者函数,如果没有传入format,则使用默认的金额格式化处理
- if (uni.$u.test.func(format)) {
- // 如果用户传入的是函数,使用函数格式化
- return format(text)
- }
- // 如果format非正则,非函数,则使用默认的金额格式化方法进行操作
- return uni.$u.priceFormat(text, 2)
- } if (mode === 'date') {
- // 判断是否合法的日期或者时间戳
- !uni.$u.test.date(text) && uni.$u.error('日期模式下,text参数需要为日期或时间戳格式')
- // 进行格式化,判断用户传入的format参数为正则,或者函数,如果没有传入format,则使用默认的格式化处理
- if (uni.$u.test.func(format)) {
- // 如果用户传入的是函数,使用函数格式化
- return format(text)
- } if (format) {
- // 如果format非正则,非函数,则使用默认的时间格式化方法进行操作
- return uni.$u.timeFormat(text, format)
- }
- // 如果没有设置format,则设置为默认的时间格式化形式
- return uni.$u.timeFormat(text, 'yyyy-mm-dd')
- } if (mode === 'phone') {
- // 判断是否合法的手机号
- // !uni.$u.test.mobile(text) && uni.$u.error('手机号模式下,text参数需要为手机号码格式')
- if (uni.$u.test.func(format)) {
- // 如果用户传入的是函数,使用函数格式化
- return format(text)
- } if (format === 'encrypt') {
- // 如果format为encrypt,则将手机号进行星号加密处理
- return `${text.substr(0, 3)}****${text.substr(7)}`
- }
- return text
- } if (mode === 'name') {
- // 判断是否合法的字符粗
- !(typeof (text) === 'string') && uni.$u.error('姓名模式下,text参数需要为字符串格式')
- if (uni.$u.test.func(format)) {
- // 如果用户传入的是函数,使用函数格式化
- return format(text)
- } if (format === 'encrypt') {
- // 如果format为encrypt,则将姓名进行星号加密处理
- return this.formatName(text)
- }
- return text
- } if (mode === 'link') {
- // 判断是否合法的字符粗
- !uni.$u.test.url(href) && uni.$u.error('超链接模式下,href参数需要为URL格式')
- return text
- }
- return text
- }
- },
- methods: {
- // 默认的姓名脱敏规则
- formatName(name) {
- let value = ''
- if (name.length === 2) {
- value = name.substr(0, 1) + '*'
- } else if (name.length > 2) {
- let char = ''
- for (let i = 0, len = name.length - 2; i < len; i++) {
- char += '*'
- }
- value = name.substr(0, 1) + char + name.substr(-1, 1)
- } else {
- value = name
- }
- return value
- }
- }
-}
diff --git a/uni_modules/uview-ui/components/u-textarea/props.js b/uni_modules/uview-ui/components/u-textarea/props.js
deleted file mode 100644
index d0e16d5..0000000
--- a/uni_modules/uview-ui/components/u-textarea/props.js
+++ /dev/null
@@ -1,119 +0,0 @@
-export default {
- props: {
- // 输入框的内容
- value: {
- type: [String, Number],
- default: uni.$u.props.textarea.value
- },
- // 输入框为空时占位符
- placeholder: {
- type: [String, Number],
- default: uni.$u.props.textarea.placeholder
- },
- // 指定placeholder的样式类,注意页面或组件的style中写了scoped时,需要在类名前写/deep/
- placeholderClass: {
- type: String,
- default: uni.$u.props.input.placeholderClass
- },
- // 指定placeholder的样式
- placeholderStyle: {
- type: [String, Object],
- default: uni.$u.props.input.placeholderStyle
- },
- // 输入框高度
- height: {
- type: [String, Number],
- default: uni.$u.props.textarea.height
- },
- // 设置键盘右下角按钮的文字,仅微信小程序,App-vue和H5有效
- confirmType: {
- type: String,
- default: uni.$u.props.textarea.confirmType
- },
- // 是否禁用
- disabled: {
- type: Boolean,
- default: uni.$u.props.textarea.disabled
- },
- // 是否显示统计字数
- count: {
- type: Boolean,
- default: uni.$u.props.textarea.count
- },
- // 是否自动获取焦点,nvue不支持,H5取决于浏览器的实现
- focus: {
- type: Boolean,
- default: uni.$u.props.textarea.focus
- },
- // 是否自动增加高度
- autoHeight: {
- type: Boolean,
- default: uni.$u.props.textarea.autoHeight
- },
- // 如果textarea是在一个position:fixed的区域,需要显示指定属性fixed为true
- fixed: {
- type: Boolean,
- default: uni.$u.props.textarea.fixed
- },
- // 指定光标与键盘的距离
- cursorSpacing: {
- type: Number,
- default: uni.$u.props.textarea.cursorSpacing
- },
- // 指定focus时的光标位置
- cursor: {
- type: [String, Number],
- default: uni.$u.props.textarea.cursor
- },
- // 是否显示键盘上方带有”完成“按钮那一栏,
- showConfirmBar: {
- type: Boolean,
- default: uni.$u.props.textarea.showConfirmBar
- },
- // 光标起始位置,自动聚焦时有效,需与selection-end搭配使用
- selectionStart: {
- type: Number,
- default: uni.$u.props.textarea.selectionStart
- },
- // 光标结束位置,自动聚焦时有效,需与selection-start搭配使用
- selectionEnd: {
- type: Number,
- default: uni.$u.props.textarea.selectionEnd
- },
- // 键盘弹起时,是否自动上推页面
- adjustPosition: {
- type: Boolean,
- default: uni.$u.props.textarea.adjustPosition
- },
- // 是否去掉 iOS 下的默认内边距,只微信小程序有效
- disableDefaultPadding: {
- type: Boolean,
- default: uni.$u.props.textarea.disableDefaultPadding
- },
- // focus时,点击页面的时候不收起键盘,只微信小程序有效
- holdKeyboard: {
- type: Boolean,
- default: uni.$u.props.textarea.holdKeyboard
- },
- // 最大输入长度,设置为 -1 的时候不限制最大长度
- maxlength: {
- type: [String, Number],
- default: uni.$u.props.textarea.maxlength
- },
- // 边框类型,surround-四周边框,bottom-底部边框
- border: {
- type: String,
- default: uni.$u.props.textarea.border
- },
- // 用于处理或者过滤输入框内容的方法
- formatter: {
- type: [Function, null],
- default: uni.$u.props.textarea.formatter
- },
- // 是否忽略组件内对文本合成系统事件的处理
- ignoreCompositionEvent: {
- type: Boolean,
- default: true
- }
- }
-}
diff --git a/uni_modules/uview-ui/components/u-textarea/u-textarea.vue b/uni_modules/uview-ui/components/u-textarea/u-textarea.vue
deleted file mode 100644
index 2cd5fdc..0000000
--- a/uni_modules/uview-ui/components/u-textarea/u-textarea.vue
+++ /dev/null
@@ -1,239 +0,0 @@
-<template>
- <view class="u-textarea" :class="textareaClass" :style="[textareaStyle]">
- <textarea
- class="u-textarea__field"
- :value="innerValue"
- :style="{ height: $u.addUnit(height) }"
- :placeholder="placeholder"
- :placeholder-style="$u.addStyle(placeholderStyle, 'string')"
- :placeholder-class="placeholderClass"
- :disabled="disabled"
- :focus="focus"
- :autoHeight="autoHeight"
- :fixed="fixed"
- :cursorSpacing="cursorSpacing"
- :cursor="cursor"
- :showConfirmBar="showConfirmBar"
- :selectionStart="selectionStart"
- :selectionEnd="selectionEnd"
- :adjustPosition="adjustPosition"
- :disableDefaultPadding="disableDefaultPadding"
- :holdKeyboard="holdKeyboard"
- :maxlength="maxlength"
- :confirmType="confirmType"
- :ignoreCompositionEvent="ignoreCompositionEvent"
- @focus="onFocus"
- @blur="onBlur"
- @linechange="onLinechange"
- @input="onInput"
- @confirm="onConfirm"
- @keyboardheightchange="onKeyboardheightchange"
- ></textarea>
- <text
- class="u-textarea__count"
- :style="{
- 'background-color': disabled ? 'transparent' : '#fff',
- }"
- v-if="count"
- >{{ innerValue.length }}/{{ maxlength }}</text
- >
- </view>
-</template>
-
-<script>
-import props from "./props.js";
-/**
- * Textarea 文本域
- * @description 文本域此组件满足了可能出现的表单信息补充,编辑等实际逻辑的功能,内置了字数校验等
- * @tutorial https://www.uviewui.com/components/textarea.html
- *
- * @property {String | Number} value 输入框的内容
- * @property {String | Number} placeholder 输入框为空时占位符
- * @property {String} placeholderClass 指定placeholder的样式类,注意页面或组件的style中写了scoped时,需要在类名前写/deep/ ( 默认 'input-placeholder' )
- * @property {String | Object} placeholderStyle 指定placeholder的样式,字符串/对象形式,如"color: red;"
- * @property {String | Number} height 输入框高度(默认 70 )
- * @property {String} confirmType 设置键盘右下角按钮的文字,仅微信小程序,App-vue和H5有效(默认 'done' )
- * @property {Boolean} disabled 是否禁用(默认 false )
- * @property {Boolean} count 是否显示统计字数(默认 false )
- * @property {Boolean} focus 是否自动获取焦点,nvue不支持,H5取决于浏览器的实现(默认 false )
- * @property {Boolean | Function} autoHeight 是否自动增加高度(默认 false )
- * @property {Boolean} fixed 如果textarea是在一个position:fixed的区域,需要显示指定属性fixed为true(默认 false )
- * @property {Number} cursorSpacing 指定光标与键盘的距离(默认 0 )
- * @property {String | Number} cursor 指定focus时的光标位置
- * @property {Function} formatter 内容式化函数
- * @property {Boolean} showConfirmBar 是否显示键盘上方带有”完成“按钮那一栏,(默认 true )
- * @property {Number} selectionStart 光标起始位置,自动聚焦时有效,需与selection-end搭配使用,(默认 -1 )
- * @property {Number | Number} selectionEnd 光标结束位置,自动聚焦时有效,需与selection-start搭配使用(默认 -1 )
- * @property {Boolean} adjustPosition 键盘弹起时,是否自动上推页面(默认 true )
- * @property {Boolean | Number} disableDefaultPadding 是否去掉 iOS 下的默认内边距,只微信小程序有效(默认 false )
- * @property {Boolean} holdKeyboard focus时,点击页面的时候不收起键盘,只微信小程序有效(默认 false )
- * @property {String | Number} maxlength 最大输入长度,设置为 -1 的时候不限制最大长度(默认 140 )
- * @property {String} border 边框类型,surround-四周边框,none-无边框,bottom-底部边框(默认 'surround' )
- * @property {Boolean} ignoreCompositionEvent 是否忽略组件内对文本合成系统事件的处理
- *
- * @event {Function(e)} focus 输入框聚焦时触发,event.detail = { value, height },height 为键盘高度
- * @event {Function(e)} blur 输入框失去焦点时触发,event.detail = {value, cursor}
- * @event {Function(e)} linechange 输入框行数变化时调用,event.detail = {height: 0, heightRpx: 0, lineCount: 0}
- * @event {Function(e)} input 当键盘输入时,触发 input 事件
- * @event {Function(e)} confirm 点击完成时, 触发 confirm 事件
- * @event {Function(e)} keyboardheightchange 键盘高度发生变化的时候触发此事件
- * @example <u--textarea v-model="value1" placeholder="请输入内容" ></u--textarea>
- */
-export default {
- name: "u-textarea",
- mixins: [uni.$u.mpMixin, uni.$u.mixin, props],
- data() {
- return {
- // 输入框的值
- innerValue: "",
- // 是否处于获得焦点状态
- focused: false,
- // value是否第一次变化,在watch中,由于加入immediate属性,会在第一次触发,此时不应该认为value发生了变化
- firstChange: true,
- // value绑定值的变化是由内部还是外部引起的
- changeFromInner: false,
- // 过滤处理方法
- innerFormatter: value => value
- }
- },
- watch: {
- value: {
- immediate: true,
- handler(newVal, oldVal) {
- this.innerValue = newVal;
- /* #ifdef H5 */
- // 在H5中,外部value变化后,修改input中的值,不会触发@input事件,此时手动调用值变化方法
- if (
- this.firstChange === false &&
- this.changeFromInner === false
- ) {
- this.valueChange();
- }
- /* #endif */
- this.firstChange = false;
- // 重置changeFromInner的值为false,标识下一次引起默认为外部引起的
- this.changeFromInner = false;
- },
- },
- },
- computed: {
- // 组件的类名
- textareaClass() {
- let classes = [],
- { border, disabled, shape } = this;
- border === "surround" &&
- (classes = classes.concat(["u-border", "u-textarea--radius"]));
- border === "bottom" &&
- (classes = classes.concat([
- "u-border-bottom",
- "u-textarea--no-radius",
- ]));
- disabled && classes.push("u-textarea--disabled");
- return classes.join(" ");
- },
- // 组件的样式
- textareaStyle() {
- const style = {};
- // #ifdef APP-NVUE
- // 由于textarea在安卓nvue上的差异性,需要额外再调整其内边距
- if (uni.$u.os() === "android") {
- style.paddingTop = "6px";
- style.paddingLeft = "9px";
- style.paddingBottom = "3px";
- style.paddingRight = "6px";
- }
- // #endif
- return uni.$u.deepMerge(style, uni.$u.addStyle(this.customStyle));
- },
- },
- methods: {
- // 在微信小程序中,不支持将函数当做props参数,故只能通过ref形式调用
- setFormatter(e) {
- this.innerFormatter = e
- },
- onFocus(e) {
- this.$emit("focus", e);
- },
- onBlur(e) {
- this.$emit("blur", e);
- // 尝试调用u-form的验证方法
- uni.$u.formValidate(this, "blur");
- },
- onLinechange(e) {
- this.$emit("linechange", e);
- },
- onInput(e) {
- let { value = "" } = e.detail || {};
- // 格式化过滤方法
- const formatter = this.formatter || this.innerFormatter
- const formatValue = formatter(value)
- // 为了避免props的单向数据流特性,需要先将innerValue值设置为当前值,再在$nextTick中重新赋予设置后的值才有效
- this.innerValue = value
- this.$nextTick(() => {
- this.innerValue = formatValue;
- this.valueChange();
- })
- },
- // 内容发生变化,进行处理
- valueChange() {
- const value = this.innerValue;
- this.$nextTick(() => {
- this.$emit("input", value);
- // 标识value值的变化是由内部引起的
- this.changeFromInner = true;
- this.$emit("change", value);
- // 尝试调用u-form的验证方法
- uni.$u.formValidate(this, "change");
- });
- },
- onConfirm(e) {
- this.$emit("confirm", e);
- },
- onKeyboardheightchange(e) {
- this.$emit("keyboardheightchange", e);
- },
- },
-};
-</script>
-
-<style lang="scss" scoped>
-@import "../../libs/css/components.scss";
-
-.u-textarea {
- border-radius: 4px;
- background-color: #fff;
- position: relative;
- @include flex;
- flex: 1;
- padding: 9px;
-
- &--radius {
- border-radius: 4px;
- }
-
- &--no-radius {
- border-radius: 0;
- }
-
- &--disabled {
- background-color: #f5f7fa;
- }
-
- &__field {
- flex: 1;
- font-size: 15px;
- color: $u-content-color;
- width: 100%;
- }
-
- &__count {
- position: absolute;
- right: 5px;
- bottom: 2px;
- font-size: 12px;
- color: $u-tips-color;
- background-color: #ffffff;
- padding: 1px 4px;
- }
-}
-</style>
diff --git a/uni_modules/uview-ui/components/u-toast/u-toast.vue b/uni_modules/uview-ui/components/u-toast/u-toast.vue
deleted file mode 100644
index f194830..0000000
--- a/uni_modules/uview-ui/components/u-toast/u-toast.vue
+++ /dev/null
@@ -1,291 +0,0 @@
-<template>
- <view class="u-toast">
- <u-overlay
- :show="isShow"
- :custom-style="overlayStyle"
- >
- <view
- class="u-toast__content"
- :style="[contentStyle]"
- :class="['u-type-' + tmpConfig.type, (tmpConfig.type === 'loading' || tmpConfig.loading) ? 'u-toast__content--loading' : '']"
- >
- <u-loading-icon
- v-if="tmpConfig.type === 'loading'"
- mode="circle"
- color="rgb(255, 255, 255)"
- inactiveColor="rgb(120, 120, 120)"
- size="25"
- ></u-loading-icon>
- <u-icon
- v-else-if="tmpConfig.type !== 'defalut' && iconName"
- :name="iconName"
- size="17"
- :color="tmpConfig.type"
- :customStyle="iconStyle"
- ></u-icon>
- <u-gap
- v-if="tmpConfig.type === 'loading' || tmpConfig.loading"
- height="12"
- bgColor="transparent"
- ></u-gap>
- <text
- class="u-toast__content__text"
- :class="['u-toast__content__text--' + tmpConfig.type]"
- style="max-width: 400rpx;"
- >{{ tmpConfig.message }}</text>
- </view>
- </u-overlay>
- </view>
-</template>
-
-<script>
- /**
- * toast 消息提示
- * @description 此组件表现形式类似uni的uni.showToastAPI,但也有不同的地方。
- * @tutorial https://www.uviewui.com/components/toast.html
- * @property {String | Number} zIndex toast展示时的zIndex值 (默认 10090 )
- * @property {Boolean} loading 是否加载中 (默认 false )
- * @property {String | Number} message 显示的文字内容
- * @property {String} icon 图标,或者绝对路径的图片
- * @property {String} type 主题类型 (默认 default)
- * @property {Boolean} show 是否显示该组件 (默认 false)
- * @property {Boolean} overlay 是否显示透明遮罩,防止点击穿透 (默认 false )
- * @property {String} position 位置 (默认 'center' )
- * @property {Object} params 跳转的参数
- * @property {String | Number} duration 展示时间,单位ms (默认 2000 )
- * @property {Boolean} isTab 是否返回的为tab页面 (默认 false )
- * @property {String} url toast消失后是否跳转页面,有则跳转,优先级高于back参数
- * @property {Function} complete 执行完后的回调函数
- * @property {Boolean} back 结束toast是否自动返回上一页 (默认 false )
- * @property {Object} customStyle 组件的样式,对象形式
- * @event {Function} show 显示toast,如需一进入页面就显示toast,请在onReady生命周期调用
- * @example <u-toast ref="uToast" />
- */
- export default {
- name: 'u-toast',
- mixins: [uni.$u.mpMixin, uni.$u.mixin],
- data() {
- return {
- isShow: false,
- timer: null, // 定时器
- config: {
- message: '', // 显示文本
- type: '', // 主题类型,primary,success,error,warning,black
- duration: 2000, // 显示的时间,毫秒
- icon: true, // 显示的图标
- position: 'center', // toast出现的位置
- complete: null, // 执行完后的回调函数
- overlay: false, // 是否防止触摸穿透
- loading: false, // 是否加载中状态
- },
- tmpConfig: {}, // 将用户配置和内置配置合并后的临时配置变量
- }
- },
- computed: {
- iconName() {
- // 只有不为none,并且type为error|warning|succes|info时候,才显示图标
- if(!this.tmpConfig.icon || this.tmpConfig.icon == 'none') {
- return '';
- }
- if (['error', 'warning', 'success', 'primary'].includes(this.tmpConfig.type)) {
- return uni.$u.type2icon(this.tmpConfig.type)
- } else {
- return ''
- }
- },
- overlayStyle() {
- const style = {
- justifyContent: 'center',
- alignItems: 'center',
- display: 'flex'
- }
- // 将遮罩设置为100%透明度,避免出现灰色背景
- style.backgroundColor = 'rgba(0, 0, 0, 0)'
- return style
- },
- iconStyle() {
- const style = {}
- // 图标需要一个右边距,以跟右边的文字有隔开的距离
- style.marginRight = '4px'
- // #ifdef APP-NVUE
- // iOSAPP下,图标有1px的向下偏移,这里进行修正
- if (uni.$u.os() === 'ios') {
- style.marginTop = '-1px'
- }
- // #endif
- return style
- },
- loadingIconColor() {
- let color = 'rgb(255, 255, 255)'
- if (['error', 'warning', 'success', 'primary'].includes(this.tmpConfig.type)) {
- // loading-icon组件内部会对color参数进行一个透明度处理,该方法要求传入的颜色值
- // 必须为rgb格式的,所以这里做一个处理
- color = uni.$u.hexToRgb(uni.$u.color[this.tmpConfig.type])
- }
- return color
- },
- // 内容盒子的样式
- contentStyle() {
- const windowHeight = uni.$u.sys().windowHeight, style = {}
- let value = 0
- // 根据top和bottom,对Y轴进行窗体高度的百分比偏移
- if(this.tmpConfig.position === 'top') {
- value = - windowHeight * 0.25
- } else if(this.tmpConfig.position === 'bottom') {
- value = windowHeight * 0.25
- }
- style.transform = `translateY(${value}px)`
- return style
- }
- },
- created() {
- // 通过主题的形式调用toast,批量生成方法函数
- ['primary', 'success', 'error', 'warning', 'default', 'loading'].map(item => {
- this[item] = message => this.show({
- type: item,
- message
- })
- })
- },
- methods: {
- // 显示toast组件,由父组件通过this.$refs.xxx.show(options)形式调用
- show(options) {
- // 不将结果合并到this.config变量,避免多次调用u-toast,前后的配置造成混乱
- this.tmpConfig = uni.$u.deepMerge(this.config, options)
- // 清除定时器
- this.clearTimer()
- this.isShow = true
- this.timer = setTimeout(() => {
- // 倒计时结束,清除定时器,隐藏toast组件
- this.clearTimer()
- // 判断是否存在callback方法,如果存在就执行
- typeof(this.tmpConfig.complete) === 'function' && this.tmpConfig.complete()
- }, this.tmpConfig.duration)
- },
- // 隐藏toast组件,由父组件通过this.$refs.xxx.hide()形式调用
- hide() {
- this.clearTimer()
- },
- clearTimer() {
- this.isShow = false
- // 清除定时器
- clearTimeout(this.timer)
- this.timer = null
- }
- },
- beforeDestroy() {
- this.clearTimer()
- }
- }
-</script>
-
-<style lang="scss" scoped>
- @import "../../libs/css/components.scss";
-
- $u-toast-color:#fff !default;
- $u-toast-border-radius:4px !default;
- $u-toast-border-background-color:#585858 !default;
- $u-toast-border-font-size:14px !default;
- $u-toast-border-padding:12px 20px !default;
- $u-toast-loading-border-padding: 20px 20px !default;
- $u-toast-content-text-color:#fff !default;
- $u-toast-content-text-font-size:15px !default;
- $u-toast-u-icon:10rpx !default;
- $u-toast-u-type-primary-color:$u-primary !default;
- $u-toast-u-type-primary-background-color:#ecf5ff !default;
- $u-toast-u-type-primary-border-color:rgb(215, 234, 254) !default;
- $u-toast-u-type-primary-border-width:1px !default;
- $u-toast-u-type-success-color: $u-success !default;
- $u-toast-u-type-success-background-color: #dbf1e1 !default;
- $u-toast-u-type-success-border-color: #BEF5C8 !default;
- $u-toast-u-type-success-border-width: 1px !default;
- $u-toast-u-type-error-color:$u-error !default;
- $u-toast-u-type-error-background-color:#fef0f0 !default;
- $u-toast-u-type-error-border-color:#fde2e2 !default;
- $u-toast-u-type-error-border-width: 1px !default;
- $u-toast-u-type-warning-color:$u-warning !default;
- $u-toast-u-type-warning-background-color:#fdf6ec !default;
- $u-toast-u-type-warning-border-color:#faecd8 !default;
- $u-toast-u-type-warning-border-width: 1px !default;
- $u-toast-u-type-default-color:#fff !default;
- $u-toast-u-type-default-background-color:#585858 !default;
-
- .u-toast {
- &__content {
- @include flex;
- padding: $u-toast-border-padding;
- border-radius: $u-toast-border-radius;
- background-color: $u-toast-border-background-color;
- color: $u-toast-color;
- align-items: center;
- /* #ifndef APP-NVUE */
- max-width: 600rpx;
- /* #endif */
- position: relative;
-
- &--loading {
- flex-direction: column;
- padding: $u-toast-loading-border-padding;
- }
-
- &__text {
- color: $u-toast-content-text-color;
- font-size: $u-toast-content-text-font-size;
- line-height: $u-toast-content-text-font-size;
-
- &--default {
- color: $u-toast-content-text-color;
- }
-
- &--error {
- color: $u-error;
- }
-
- &--primary {
- color: $u-primary;
- }
-
- &--success {
- color: $u-success;
- }
-
- &--warning {
- color: $u-warning;
- }
- }
- }
- }
-
- .u-type-primary {
- color: $u-toast-u-type-primary-color;
- background-color: $u-toast-u-type-primary-background-color;
- border-color: $u-toast-u-type-primary-border-color;
- border-width: $u-toast-u-type-primary-border-width;
- }
-
- .u-type-success {
- color: $u-toast-u-type-success-color;
- background-color: $u-toast-u-type-success-background-color;
- border-color: $u-toast-u-type-success-border-color;
- border-width: 1px;
- }
-
- .u-type-error {
- color: $u-toast-u-type-error-color;
- background-color: $u-toast-u-type-error-background-color;
- border-color: $u-toast-u-type-error-border-color;
- border-width: $u-toast-u-type-error-border-width;
- }
-
- .u-type-warning {
- color: $u-toast-u-type-warning-color;
- background-color: $u-toast-u-type-warning-background-color;
- border-color: $u-toast-u-type-warning-border-color;
- border-width: 1px;
- }
-
- .u-type-default {
- color: $u-toast-u-type-default-color;
- background-color: $u-toast-u-type-default-background-color;
- }
-</style>
diff --git a/uni_modules/uview-ui/components/u-toolbar/props.js b/uni_modules/uview-ui/components/u-toolbar/props.js
deleted file mode 100644
index 1b72966..0000000
--- a/uni_modules/uview-ui/components/u-toolbar/props.js
+++ /dev/null
@@ -1,34 +0,0 @@
-export default {
- props: {
- // 是否展示工具条
- show: {
- type: Boolean,
- default: uni.$u.props.toolbar.show
- },
- // 取消按钮的文字
- cancelText: {
- type: String,
- default: uni.$u.props.toolbar.cancelText
- },
- // 确认按钮的文字
- confirmText: {
- type: String,
- default: uni.$u.props.toolbar.confirmText
- },
- // 取消按钮的颜色
- cancelColor: {
- type: String,
- default: uni.$u.props.toolbar.cancelColor
- },
- // 确认按钮的颜色
- confirmColor: {
- type: String,
- default: uni.$u.props.toolbar.confirmColor
- },
- // 标题文字
- title: {
- type: String,
- default: uni.$u.props.toolbar.title
- }
- }
-}
diff --git a/uni_modules/uview-ui/components/u-toolbar/u-toolbar.vue b/uni_modules/uview-ui/components/u-toolbar/u-toolbar.vue
deleted file mode 100644
index 290b771..0000000
--- a/uni_modules/uview-ui/components/u-toolbar/u-toolbar.vue
+++ /dev/null
@@ -1,102 +0,0 @@
-<template>
- <view
- class="u-toolbar"
- @touchmove.stop.prevent="noop"
- v-if="show"
- >
- <view
- class="u-toolbar__cancel__wrapper"
- hover-class="u-hover-class"
- >
- <text
- class="u-toolbar__wrapper__cancel"
- @tap="cancel"
- :style="{
- color: cancelColor
- }"
- >{{ cancelText }}</text>
- </view>
- <text
- class="u-toolbar__title u-line-1"
- v-if="title"
- >{{ title }}</text>
- <view
- class="u-toolbar__confirm__wrapper"
- hover-class="u-hover-class"
- >
- <text
- class="u-toolbar__wrapper__confirm"
- @tap="confirm"
- :style="{
- color: confirmColor
- }"
- >{{ confirmText }}</text>
- </view>
- </view>
-</template>
-
-<script>
- import props from './props.js';
- /**
- * Toolbar 工具条
- * @description
- * @tutorial https://www.uviewui.com/components/toolbar.html
- * @property {Boolean} show 是否展示工具条(默认 true )
- * @property {String} cancelText 取消按钮的文字(默认 '取消' )
- * @property {String} confirmText 确认按钮的文字(默认 '确认' )
- * @property {String} cancelColor 取消按钮的颜色(默认 '#909193' )
- * @property {String} confirmColor 确认按钮的颜色(默认 '#3c9cff' )
- * @property {String} title 标题文字
- * @event {Function}
- * @example
- */
- export default {
- name: 'u-toolbar',
- mixins: [uni.$u.mpMixin, uni.$u.mixin,props],
- methods: {
- // 点击取消按钮
- cancel() {
- this.$emit('cancel')
- },
- // 点击确定按钮
- confirm() {
- this.$emit('confirm')
- }
- },
- }
-</script>
-
-<style lang="scss" scoped>
- @import "../../libs/css/components.scss";
-
- .u-toolbar {
- height: 42px;
- @include flex;
- justify-content: space-between;
- align-items: center;
-
- &__wrapper {
- &__cancel {
- color: $u-tips-color;
- font-size: 15px;
- padding: 0 15px;
- }
- }
-
- &__title {
- color: $u-main-color;
- padding: 0 60rpx;
- font-size: 16px;
- flex: 1;
- text-align: center;
- }
-
- &__wrapper {
- &__confirm {
- color: $u-primary;
- font-size: 15px;
- padding: 0 15px;
- }
- }
- }
-</style>
diff --git a/uni_modules/uview-ui/components/u-tooltip/clipboard.min.js b/uni_modules/uview-ui/components/u-tooltip/clipboard.min.js
deleted file mode 100644
index b7bff12..0000000
--- a/uni_modules/uview-ui/components/u-tooltip/clipboard.min.js
+++ /dev/null
@@ -1,58 +0,0 @@
-/*!
- * clipboard.js v1.6.1
- * https://zenorocha.github.io/clipboard.js
- *
- * Licensed MIT © Zeno Rocha
- */
-!(function (e) { if (typeof exports === 'object' && typeof module !== 'undefined')module.exports = e(); else if (typeof define === 'function' && define.amd)define([], e); else { let t; t = typeof window !== 'undefined' ? window : typeof global !== 'undefined' ? global : typeof self !== 'undefined' ? self : this, t.Clipboard = e() } }(() => {
- let e; let t; let n; return (function e(t, n, o) { function i(a, c) { if (!n[a]) { if (!t[a]) { const l = typeof require === 'function' && require; if (!c && l) return l(a, !0); if (r) return r(a, !0); const u = new Error(`Cannot find module '${a}'`); throw u.code = 'MODULE_NOT_FOUND', u } const s = n[a] = { exports: {} }; t[a][0].call(s.exports, (e) => { const n = t[a][1][e]; return i(n || e) }, s, s.exports, e, t, n, o) } return n[a].exports } for (var r = typeof require === 'function' && require, a = 0; a < o.length; a++)i(o[a]); return i }({
- 1: [function (e, t, n) { function o(e, t) { for (;e && e.nodeType !== i;) { if (e.matches(t)) return e; e = e.parentNode } } var i = 9; if (typeof Element !== 'undefined' && !Element.prototype.matches) { const r = Element.prototype; r.matches = r.matchesSelector || r.mozMatchesSelector || r.msMatchesSelector || r.oMatchesSelector || r.webkitMatchesSelector }t.exports = o }, {}],
- 2: [function (e, t, n) { function o(e, t, n, o, r) { const a = i.apply(this, arguments); return e.addEventListener(n, a, r), { destroy() { e.removeEventListener(n, a, r) } } } function i(e, t, n, o) { return function (n) { n.delegateTarget = r(n.target, t), n.delegateTarget && o.call(e, n) } } var r = e('./closest'); t.exports = o }, { './closest': 1 }],
- 3: [function (e, t, n) { n.node = function (e) { return void 0 !== e && e instanceof HTMLElement && e.nodeType === 1 }, n.nodeList = function (e) { const t = Object.prototype.toString.call(e); return void 0 !== e && (t === '[object NodeList]' || t === '[object HTMLCollection]') && 'length' in e && (e.length === 0 || n.node(e[0])) }, n.string = function (e) { return typeof e === 'string' || e instanceof String }, n.fn = function (e) { const t = Object.prototype.toString.call(e); return t === '[object Function]' } }, {}],
- 4: [function (e, t, n) { function o(e, t, n) { if (!e && !t && !n) throw new Error('Missing required arguments'); if (!c.string(t)) throw new TypeError('Second argument must be a String'); if (!c.fn(n)) throw new TypeError('Third argument must be a Function'); if (c.node(e)) return i(e, t, n); if (c.nodeList(e)) return r(e, t, n); if (c.string(e)) return a(e, t, n); throw new TypeError('First argument must be a String, HTMLElement, HTMLCollection, or NodeList') } function i(e, t, n) { return e.addEventListener(t, n), { destroy() { e.removeEventListener(t, n) } } } function r(e, t, n) { return Array.prototype.forEach.call(e, (e) => { e.addEventListener(t, n) }), { destroy() { Array.prototype.forEach.call(e, (e) => { e.removeEventListener(t, n) }) } } } function a(e, t, n) { return l(document.body, e, t, n) } var c = e('./is'); var l = e('delegate'); t.exports = o }, { './is': 3, delegate: 2 }],
- 5: [function (e, t, n) { function o(e) { let t; if (e.nodeName === 'SELECT')e.focus(), t = e.value; else if (e.nodeName === 'INPUT' || e.nodeName === 'TEXTAREA') { const n = e.hasAttribute('readonly'); n || e.setAttribute('readonly', ''), e.select(), e.setSelectionRange(0, e.value.length), n || e.removeAttribute('readonly'), t = e.value } else { e.hasAttribute('contenteditable') && e.focus(); const o = window.getSelection(); const i = document.createRange(); i.selectNodeContents(e), o.removeAllRanges(), o.addRange(i), t = o.toString() } return t }t.exports = o }, {}],
- 6: [function (e, t, n) {
- function o() {}o.prototype = {
- on(e, t, n) { const o = this.e || (this.e = {}); return (o[e] || (o[e] = [])).push({ fn: t, ctx: n }), this }, once(e, t, n) { function o() { i.off(e, o), t.apply(n, arguments) } var i = this; return o._ = t, this.on(e, o, n) }, emit(e) { const t = [].slice.call(arguments, 1); const n = ((this.e || (this.e = {}))[e] || []).slice(); let o = 0; const i = n.length; for (o; o < i; o++)n[o].fn.apply(n[o].ctx, t); return this }, off(e, t) { const n = this.e || (this.e = {}); const o = n[e]; const i = []; if (o && t) for (let r = 0, a = o.length; r < a; r++)o[r].fn !== t && o[r].fn._ !== t && i.push(o[r]); return i.length ? n[e] = i : delete n[e], this }
- }, t.exports = o
- }, {}],
- 7: [function (t, n, o) {
- !(function (i, r) { if (typeof e === 'function' && e.amd)e(['module', 'select'], r); else if (typeof o !== 'undefined')r(n, t('select')); else { const a = { exports: {} }; r(a, i.select), i.clipboardAction = a.exports } }(this, (e, t) => {
- 'use strict'
-
- function n(e) { return e && e.__esModule ? e : { default: e } } function o(e, t) { if (!(e instanceof t)) throw new TypeError('Cannot call a class as a function') } const i = n(t); const r = typeof Symbol === 'function' && typeof Symbol.iterator === 'symbol' ? function (e) { return typeof e } : function (e) { return e && typeof Symbol === 'function' && e.constructor === Symbol && e !== Symbol.prototype ? 'symbol' : typeof e }; const a = (function () { function e(e, t) { for (let n = 0; n < t.length; n++) { const o = t[n]; o.enumerable = o.enumerable || !1, o.configurable = !0, 'value' in o && (o.writable = !0), Object.defineProperty(e, o.key, o) } } return function (t, n, o) { return n && e(t.prototype, n), o && e(t, o), t } }()); const c = (function () {
- function e(t) { o(this, e), this.resolveOptions(t), this.initSelection() } return a(e, [{ key: 'resolveOptions', value: function e() { const t = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : {}; this.action = t.action, this.emitter = t.emitter, this.target = t.target, this.text = t.text, this.trigger = t.trigger, this.selectedText = '' } }, { key: 'initSelection', value: function e() { this.text ? this.selectFake() : this.target && this.selectTarget() } }, { key: 'selectFake', value: function e() { const t = this; const n = document.documentElement.getAttribute('dir') == 'rtl'; this.removeFake(), this.fakeHandlerCallback = function () { return t.removeFake() }, this.fakeHandler = document.body.addEventListener('click', this.fakeHandlerCallback) || !0, this.fakeElem = document.createElement('textarea'), this.fakeElem.style.fontSize = '12pt', this.fakeElem.style.border = '0', this.fakeElem.style.padding = '0', this.fakeElem.style.margin = '0', this.fakeElem.style.position = 'absolute', this.fakeElem.style[n ? 'right' : 'left'] = '-9999px'; const o = window.pageYOffset || document.documentElement.scrollTop; this.fakeElem.style.top = `${o}px`, this.fakeElem.setAttribute('readonly', ''), this.fakeElem.value = this.text, document.body.appendChild(this.fakeElem), this.selectedText = (0, i.default)(this.fakeElem), this.copyText() } }, { key: 'removeFake', value: function e() { this.fakeHandler && (document.body.removeEventListener('click', this.fakeHandlerCallback), this.fakeHandler = null, this.fakeHandlerCallback = null), this.fakeElem && (document.body.removeChild(this.fakeElem), this.fakeElem = null) } }, { key: 'selectTarget', value: function e() { this.selectedText = (0, i.default)(this.target), this.copyText() } }, { key: 'copyText', value: function e() { let t = void 0; try { t = document.execCommand(this.action) } catch (e) { t = !1 } this.handleResult(t) } }, {
- key: 'handleResult',
- value: function e(t) {
- this.emitter.emit(t ? 'success' : 'error', {
- action: this.action, text: this.selectedText, trigger: this.trigger, clearSelection: this.clearSelection.bind(this)
- })
- }
- }, { key: 'clearSelection', value: function e() { this.target && this.target.blur(), window.getSelection().removeAllRanges() } }, { key: 'destroy', value: function e() { this.removeFake() } }, { key: 'action', set: function e() { const t = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : 'copy'; if (this._action = t, this._action !== 'copy' && this._action !== 'cut') throw new Error('Invalid "action" value, use either "copy" or "cut"') }, get: function e() { return this._action } }, { key: 'target', set: function e(t) { if (void 0 !== t) { if (!t || (typeof t === 'undefined' ? 'undefined' : r(t)) !== 'object' || t.nodeType !== 1) throw new Error('Invalid "target" value, use a valid Element'); if (this.action === 'copy' && t.hasAttribute('disabled')) throw new Error('Invalid "target" attribute. Please use "readonly" instead of "disabled" attribute'); if (this.action === 'cut' && (t.hasAttribute('readonly') || t.hasAttribute('disabled'))) throw new Error('Invalid "target" attribute. You can\'t cut text from elements with "readonly" or "disabled" attributes'); this._target = t } }, get: function e() { return this._target } }]), e
- }()); e.exports = c
- }))
- }, { select: 5 }],
- 8: [function (t, n, o) {
- !(function (i, r) { if (typeof e === 'function' && e.amd)e(['module', './clipboard-action', 'tiny-emitter', 'good-listener'], r); else if (typeof o !== 'undefined')r(n, t('./clipboard-action'), t('tiny-emitter'), t('good-listener')); else { const a = { exports: {} }; r(a, i.clipboardAction, i.tinyEmitter, i.goodListener), i.clipboard = a.exports } }(this, (e, t, n, o) => {
- 'use strict'
-
- function i(e) { return e && e.__esModule ? e : { default: e } } function r(e, t) { if (!(e instanceof t)) throw new TypeError('Cannot call a class as a function') } function a(e, t) { if (!e) throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); return !t || typeof t !== 'object' && typeof t !== 'function' ? e : t } function c(e, t) {
- if (typeof t !== 'function' && t !== null) throw new TypeError(`Super expression must either be null or a function, not ${typeof t}`); e.prototype = Object.create(t && t.prototype, {
- constructor: {
- value: e, enumerable: !1, writable: !0, configurable: !0
- }
- }), t && (Object.setPrototypeOf ? Object.setPrototypeOf(e, t) : e.__proto__ = t)
- } function l(e, t) { const n = `data-clipboard-${e}`; if (t.hasAttribute(n)) return t.getAttribute(n) } const u = i(t); const s = i(n); const f = i(o); const d = (function () { function e(e, t) { for (let n = 0; n < t.length; n++) { const o = t[n]; o.enumerable = o.enumerable || !1, o.configurable = !0, 'value' in o && (o.writable = !0), Object.defineProperty(e, o.key, o) } } return function (t, n, o) { return n && e(t.prototype, n), o && e(t, o), t } }()); const h = (function (e) {
- function t(e, n) { r(this, t); const o = a(this, (t.__proto__ || Object.getPrototypeOf(t)).call(this)); return o.resolveOptions(n), o.listenClick(e), o } return c(t, e), d(t, [{ key: 'resolveOptions', value: function e() { const t = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : {}; this.action = typeof t.action === 'function' ? t.action : this.defaultAction, this.target = typeof t.target === 'function' ? t.target : this.defaultTarget, this.text = typeof t.text === 'function' ? t.text : this.defaultText } }, { key: 'listenClick', value: function e(t) { const n = this; this.listener = (0, f.default)(t, 'click', (e) => n.onClick(e)) } }, {
- key: 'onClick',
- value: function e(t) {
- const n = t.delegateTarget || t.currentTarget; this.clipboardAction && (this.clipboardAction = null), this.clipboardAction = new u.default({
- action: this.action(n), target: this.target(n), text: this.text(n), trigger: n, emitter: this
- })
- }
- }, { key: 'defaultAction', value: function e(t) { return l('action', t) } }, { key: 'defaultTarget', value: function e(t) { const n = l('target', t); if (n) return document.querySelector(n) } }, { key: 'defaultText', value: function e(t) { return l('text', t) } }, { key: 'destroy', value: function e() { this.listener.destroy(), this.clipboardAction && (this.clipboardAction.destroy(), this.clipboardAction = null) } }], [{ key: 'isSupported', value: function e() { const t = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : ['copy', 'cut']; const n = typeof t === 'string' ? [t] : t; let o = !!document.queryCommandSupported; return n.forEach((e) => { o = o && !!document.queryCommandSupported(e) }), o } }]), t
- }(s.default)); e.exports = h
- }))
- }, { './clipboard-action': 7, 'good-listener': 4, 'tiny-emitter': 6 }]
- }, {}, [8]))(8)
-}))
diff --git a/uni_modules/uview-ui/components/u-tooltip/props.js b/uni_modules/uview-ui/components/u-tooltip/props.js
deleted file mode 100644
index 16aecbc..0000000
--- a/uni_modules/uview-ui/components/u-tooltip/props.js
+++ /dev/null
@@ -1,59 +0,0 @@
-export default {
- props: {
- // 需要显示的提示文字
- text: {
- type: [String, Number],
- default: uni.$u.props.tooltip.text
- },
- // 点击复制按钮时,复制的文本,为空则使用text值
- copyText: {
- type: [String, Number],
- default: uni.$u.props.tooltip.copyText
- },
- // 文本大小
- size: {
- type: [String, Number],
- default: uni.$u.props.tooltip.size
- },
- // 字体颜色
- color: {
- type: String,
- default: uni.$u.props.tooltip.color
- },
- // 弹出提示框时,文本的背景色
- bgColor: {
- type: String,
- default: uni.$u.props.tooltip.bgColor
- },
- // 弹出提示的方向,top-上方,bottom-下方
- direction: {
- type: String,
- default: uni.$u.props.tooltip.direction
- },
- // 弹出提示的z-index,nvue无效
- zIndex: {
- type: [String, Number],
- default: uni.$u.props.tooltip.zIndex
- },
- // 是否显示复制按钮
- showCopy: {
- type: Boolean,
- default: uni.$u.props.tooltip.showCopy
- },
- // 扩展的按钮组
- buttons: {
- type: Array,
- default: uni.$u.props.tooltip.buttons
- },
- // 是否显示透明遮罩以防止触摸穿透
- overlay: {
- type: Boolean,
- default: uni.$u.props.tooltip.overlay
- },
- // 是否显示复制成功或者失败的toast
- showToast: {
- type: Boolean,
- default: uni.$u.props.tooltip.showToast
- }
- }
-}
diff --git a/uni_modules/uview-ui/components/u-tooltip/u-tooltip.vue b/uni_modules/uview-ui/components/u-tooltip/u-tooltip.vue
deleted file mode 100644
index 4bd8fc9..0000000
--- a/uni_modules/uview-ui/components/u-tooltip/u-tooltip.vue
+++ /dev/null
@@ -1,365 +0,0 @@
-<template>
- <view
- class="u-tooltip"
- :style="[$u.addStyle(customStyle)]"
- >
- <u-overlay
- :show="showTooltip && tooltipTop !== -10000 && overlay"
- customStyle="backgroundColor: rgba(0, 0, 0, 0)"
- @click="overlayClickHandler"
- ></u-overlay>
- <view class="u-tooltip__wrapper">
- <text
- class="u-tooltip__wrapper__text"
- :id="textId"
- :ref="textId"
- :userSelect="false"
- :selectable="false"
- @longpress.stop="longpressHandler"
- :style="{
- color: color,
- backgroundColor: bgColor && showTooltip && tooltipTop !== -10000 ? bgColor : 'transparent'
- }"
- >{{ text }}</text>
- <u-transition
- mode="fade"
- :show="showTooltip"
- duration="300"
- :customStyle="{
- position: 'absolute',
- top: $u.addUnit(tooltipTop),
- zIndex: zIndex,
- ...tooltipStyle
- }"
- >
- <view
- class="u-tooltip__wrapper__popup"
- :id="tooltipId"
- :ref="tooltipId"
- >
- <view
- class="u-tooltip__wrapper__popup__indicator"
- hover-class="u-tooltip__wrapper__popup__indicator--hover"
- v-if="showCopy || buttons.length"
- :style="[indicatorStyle, {
- width: $u.addUnit(indicatorWidth),
- height: $u.addUnit(indicatorWidth),
- }]"
- >
- <!-- 由于nvue不支持三角形绘制,这里就做一个四方形,再旋转45deg,得到露出的一个三角 -->
- </view>
- <view class="u-tooltip__wrapper__popup__list">
- <view
- v-if="showCopy"
- class="u-tooltip__wrapper__popup__list__btn"
- hover-class="u-tooltip__wrapper__popup__list__btn--hover"
- @tap="setClipboardData"
- >
- <text
- class="u-tooltip__wrapper__popup__list__btn__text"
- >复制</text>
- </view>
- <u-line
- direction="column"
- color="#8d8e90"
- v-if="showCopy && buttons.length > 0"
- length="18"
- ></u-line>
- <block v-for="(item , index) in buttons" :key="index">
- <view
- class="u-tooltip__wrapper__popup__list__btn"
- hover-class="u-tooltip__wrapper__popup__list__btn--hover"
- >
- <text
- class="u-tooltip__wrapper__popup__list__btn__text"
- @tap="btnClickHandler(index)"
- >{{ item }}</text>
- </view>
- <u-line
- direction="column"
- color="#8d8e90"
- v-if="index < buttons.length - 1"
- length="18"
- ></u-line>
- </block>
- </view>
- </view>
- </u-transition>
- </view>
- </view>
-</template>
-
-<script>
- import props from './props.js';
- // #ifdef APP-NVUE
- const dom = uni.requireNativePlugin('dom')
- // #endif
- // #ifdef H5
- import ClipboardJS from "./clipboard.min.js"
- // #endif
- /**
- * Tooltip
- * @description
- * @tutorial https://www.uviewui.com/components/tooltip.html
- * @property {String | Number} text 需要显示的提示文字
- * @property {String | Number} copyText 点击复制按钮时,复制的文本,为空则使用text值
- * @property {String | Number} size 文本大小(默认 14 )
- * @property {String} color 字体颜色(默认 '#606266' )
- * @property {String} bgColor 弹出提示框时,文本的背景色(默认 'transparent' )
- * @property {String} direction 弹出提示的方向,top-上方,bottom-下方(默认 'top' )
- * @property {String | Number} zIndex 弹出提示的z-index,nvue无效(默认 10071 )
- * @property {Boolean} showCopy 是否显示复制按钮(默认 true )
- * @property {Array} buttons 扩展的按钮组
- * @property {Boolean} overlay 是否显示透明遮罩以防止触摸穿透(默认 true )
- * @property {Object} customStyle 定义需要用到的外部样式
- *
- * @event {Function}
- * @example
- */
- export default {
- name: 'u-tooltip',
- mixins: [uni.$u.mpMixin, uni.$u.mixin, props],
- data() {
- return {
- // 是否展示气泡
- showTooltip: true,
- // 生成唯一id,防止一个页面多个组件,造成干扰
- textId: uni.$u.guid(),
- tooltipId: uni.$u.guid(),
- // 初始时甚至为很大的值,让其移到屏幕外面,为了计算元素的尺寸
- tooltipTop: -10000,
- // 气泡的位置信息
- tooltipInfo: {
- width: 0,
- left: 0
- },
- // 文本的位置信息
- textInfo: {
- width: 0,
- left: 0
- },
- // 三角形指示器的样式
- indicatorStyle: {},
- // 气泡在可能超出屏幕边沿范围时,重新定位后,距离屏幕边沿的距离
- screenGap: 12,
- // 三角形指示器的宽高,由于对元素进行了角度旋转,精确计算指示器位置时,需要用到其尺寸信息
- indicatorWidth: 14,
- }
- },
- watch: {
- propsChange() {
- this.getElRect()
- }
- },
- computed: {
- // 特别处理H5的复制,因为H5浏览器是自带系统复制功能的,在H5环境
- // 当一些依赖参数变化时,需要重新计算气泡和指示器的位置信息
- propsChange() {
- return [this.text, this.buttons]
- },
- // 计算气泡和指示器的位置信息
- tooltipStyle() {
- const style = {
- transform: `translateY(${this.direction === 'top' ? '-100%' : '100%'})`,
- },
- sys = uni.$u.sys(),
- getPx = uni.$u.getPx,
- addUnit = uni.$u.addUnit
- if (this.tooltipInfo.width / 2 > this.textInfo.left + this.textInfo.width / 2 - this.screenGap) {
- this.indicatorStyle = {}
- style.left = `-${addUnit(this.textInfo.left - this.screenGap)}`
- this.indicatorStyle.left = addUnit(this.textInfo.width / 2 - getPx(style.left) - this.indicatorWidth /
- 2)
- } else if (this.tooltipInfo.width / 2 > sys.windowWidth - this.textInfo.right + this.textInfo.width / 2 -
- this.screenGap) {
- this.indicatorStyle = {}
- style.right = `-${addUnit(sys.windowWidth - this.textInfo.right - this.screenGap)}`
- this.indicatorStyle.right = addUnit(this.textInfo.width / 2 - getPx(style.right) - this
- .indicatorWidth / 2)
- } else {
- const left = Math.abs(this.textInfo.width / 2 - this.tooltipInfo.width / 2)
- style.left = this.textInfo.width > this.tooltipInfo.width ? addUnit(left) : -addUnit(left)
- this.indicatorStyle = {}
- }
- if (this.direction === 'top') {
- style.marginTop = '-10px'
- this.indicatorStyle.bottom = '-4px'
- } else {
- style.marginBottom = '-10px'
- this.indicatorStyle.top = '-4px'
- }
- return style
- }
- },
- mounted() {
- this.init()
- },
- methods: {
- init() {
- this.getElRect()
- },
- // 长按触发事件
- async longpressHandler() {
- this.tooltipTop = 0
- this.showTooltip = true
- },
- // 点击透明遮罩
- overlayClickHandler() {
- this.showTooltip = false
- },
- // 点击弹出按钮
- btnClickHandler(index) {
- this.showTooltip = false
- // 如果需要展示复制按钮,此处index需要加1,因为复制按钮在第一个位置
- this.$emit('click', this.showCopy ? index + 1 : index)
- },
- // 查询内容高度
- queryRect(ref) {
- // #ifndef APP-NVUE
- // $uGetRect为uView自带的节点查询简化方法,详见文档介绍:https://www.uviewui.com/js/getRect.html
- // 组件内部一般用this.$uGetRect,对外的为uni.$u.getRect,二者功能一致,名称不同
- return new Promise(resolve => {
- this.$uGetRect(`#${ref}`).then(size => {
- resolve(size)
- })
- })
- // #endif
-
- // #ifdef APP-NVUE
- // nvue下,使用dom模块查询元素高度
- // 返回一个promise,让调用此方法的主体能使用then回调
- return new Promise(resolve => {
- dom.getComponentRect(this.$refs[ref], res => {
- resolve(res.size)
- })
- })
- // #endif
- },
- // 元素尺寸
- getElRect() {
- // 调用之前,先将指示器调整到屏幕外,方便获取尺寸
- this.showTooltip = true
- this.tooltipTop = -10000
- uni.$u.sleep(500).then(() => {
- this.queryRect(this.tooltipId).then(size => {
- this.tooltipInfo = size
- // 获取气泡尺寸之后,将其隐藏,为了让下次切换气泡显示与隐藏时,有淡入淡出的效果
- this.showTooltip = false
- })
- this.queryRect(this.textId).then(size => {
- this.textInfo = size
- })
- })
- },
- // 复制文本到粘贴板
- setClipboardData() {
- // 关闭组件
- this.showTooltip = false
- this.$emit('click', 0)
- // #ifndef H5
- uni.setClipboardData({
- // 优先使用copyText字段,如果没有,则默认使用text字段当做复制的内容
- data: this.copyText || this.text,
- success: () => {
- this.showToast && uni.$u.toast('复制成功')
- },
- fail: () => {
- this.showToast && uni.$u.toast('复制失败')
- },
- complete: () => {
- this.showTooltip = false
- }
- })
- // #endif
-
- // #ifdef H5
- let event = window.event || e || {}
- let clipboard = new ClipboardJS('', {
- text: () => this.copyText || this.text
- })
- clipboard.on('success', (e) => {
- this.showToast && uni.$u.toast('复制成功')
- clipboard.off('success')
- clipboard.off('error')
- // 在单页应用中,需要销毁DOM的监听
- clipboard.destroy()
- })
- clipboard.on('error', (e) => {
- this.showToast && uni.$u.toast('复制失败')
- clipboard.off('success')
- clipboard.off('error')
- // 在单页应用中,需要销毁DOM的监听
- clipboard.destroy()
- })
- clipboard.onClick(event)
- // #endif
- }
- }
- }
-</script>
-
-<style lang="scss" scoped>
- @import "../../libs/css/components.scss";
-
- .u-tooltip {
- position: relative;
- @include flex;
-
- &__wrapper {
- @include flex;
- justify-content: center;
- /* #ifndef APP-NVUE */
- white-space: nowrap;
- /* #endif */
-
- &__text {
- font-size: 14px;
- }
-
- &__popup {
- @include flex;
- justify-content: center;
-
- &__list {
- background-color: #060607;
- position: relative;
- flex: 1;
- border-radius: 5px;
- padding: 0px 0;
- @include flex(row);
- align-items: center;
- overflow: hidden;
-
- &__btn {
- padding: 11px 13px;
-
- &--hover {
- background-color: #58595B;
- }
-
- &__text {
- line-height: 12px;
- font-size: 13px;
- color: #FFFFFF;
- }
- }
- }
-
- &__indicator {
- position: absolute;
- background-color: #060607;
- width: 14px;
- height: 14px;
- bottom: -4px;
- transform: rotate(45deg);
- border-radius: 2px;
- z-index: -1;
-
- &--hover {
- background-color: #58595B;
- }
- }
- }
- }
- }
-</style>
diff --git a/uni_modules/uview-ui/components/u-tr/props.js b/uni_modules/uview-ui/components/u-tr/props.js
deleted file mode 100644
index 7c11331..0000000
--- a/uni_modules/uview-ui/components/u-tr/props.js
+++ /dev/null
@@ -1,5 +0,0 @@
-export default {
- props: {
-
- }
-}
diff --git a/uni_modules/uview-ui/components/u-tr/u-tr.vue b/uni_modules/uview-ui/components/u-tr/u-tr.vue
deleted file mode 100644
index dbbca08..0000000
--- a/uni_modules/uview-ui/components/u-tr/u-tr.vue
+++ /dev/null
@@ -1,31 +0,0 @@
-<template>
- <view class="u-tr">
-
- </view>
-</template>
-
-<script>
- import props from './props.js';
- /**
- * Tr
- * @description
- * @tutorial url
- * @property {String}
- * @event {Function}
- * @example
- */
- export default {
- name: 'u-tr',
- mixins: [uni.$u.mpMixin, uni.$u.mixin,props],
- data() {
- return {
-
- }
- }
- }
-</script>
-
-<style lang="scss" scoped>
- @import "../../libs/css/components.scss";
-
-</style>
diff --git a/uni_modules/uview-ui/components/u-transition/nvue.ani-map.js b/uni_modules/uview-ui/components/u-transition/nvue.ani-map.js
deleted file mode 100644
index b86b962..0000000
--- a/uni_modules/uview-ui/components/u-transition/nvue.ani-map.js
+++ /dev/null
@@ -1,68 +0,0 @@
-export default {
- fade: {
- enter: { opacity: 0 },
- 'enter-to': { opacity: 1 },
- leave: { opacity: 1 },
- 'leave-to': { opacity: 0 }
- },
- 'fade-up': {
- enter: { opacity: 0, transform: 'translateY(100%)' },
- 'enter-to': { opacity: 1, transform: 'translateY(0)' },
- leave: { opacity: 1, transform: 'translateY(0)' },
- 'leave-to': { opacity: 0, transform: 'translateY(100%)' }
- },
- 'fade-down': {
- enter: { opacity: 0, transform: 'translateY(-100%)' },
- 'enter-to': { opacity: 1, transform: 'translateY(0)' },
- leave: { opacity: 1, transform: 'translateY(0)' },
- 'leave-to': { opacity: 0, transform: 'translateY(-100%)' }
- },
- 'fade-left': {
- enter: { opacity: 0, transform: 'translateX(-100%)' },
- 'enter-to': { opacity: 1, transform: 'translateY(0)' },
- leave: { opacity: 1, transform: 'translateY(0)' },
- 'leave-to': { opacity: 0, transform: 'translateX(-100%)' }
- },
- 'fade-right': {
- enter: { opacity: 0, transform: 'translateX(100%)' },
- 'enter-to': { opacity: 1, transform: 'translateY(0)' },
- leave: { opacity: 1, transform: 'translateY(0)' },
- 'leave-to': { opacity: 0, transform: 'translateX(100%)' }
- },
- 'slide-up': {
- enter: { transform: 'translateY(100%)' },
- 'enter-to': { transform: 'translateY(0)' },
- leave: { transform: 'translateY(0)' },
- 'leave-to': { transform: 'translateY(100%)' }
- },
- 'slide-down': {
- enter: { transform: 'translateY(-100%)' },
- 'enter-to': { transform: 'translateY(0)' },
- leave: { transform: 'translateY(0)' },
- 'leave-to': { transform: 'translateY(-100%)' }
- },
- 'slide-left': {
- enter: { transform: 'translateX(-100%)' },
- 'enter-to': { transform: 'translateY(0)' },
- leave: { transform: 'translateY(0)' },
- 'leave-to': { transform: 'translateX(-100%)' }
- },
- 'slide-right': {
- enter: { transform: 'translateX(100%)' },
- 'enter-to': { transform: 'translateY(0)' },
- leave: { transform: 'translateY(0)' },
- 'leave-to': { transform: 'translateX(100%)' }
- },
- zoom: {
- enter: { transform: 'scale(0.95)' },
- 'enter-to': { transform: 'scale(1)' },
- leave: { transform: 'scale(1)' },
- 'leave-to': { transform: 'scale(0.95)' }
- },
- 'fade-zoom': {
- enter: { opacity: 0, transform: 'scale(0.95)' },
- 'enter-to': { opacity: 1, transform: 'scale(1)' },
- leave: { opacity: 1, transform: 'scale(1)' },
- 'leave-to': { opacity: 0, transform: 'scale(0.95)' }
- }
-}
diff --git a/uni_modules/uview-ui/components/u-transition/props.js b/uni_modules/uview-ui/components/u-transition/props.js
deleted file mode 100644
index f7b1c22..0000000
--- a/uni_modules/uview-ui/components/u-transition/props.js
+++ /dev/null
@@ -1,24 +0,0 @@
-export default {
- props: {
- // 是否展示组件
- show: {
- type: Boolean,
- default: uni.$u.props.transition.show
- },
- // 使用的动画模式
- mode: {
- type: String,
- default: uni.$u.props.transition.mode
- },
- // 动画的执行时间,单位ms
- duration: {
- type: [String, Number],
- default: uni.$u.props.transition.duration
- },
- // 使用的动画过渡函数
- timingFunction: {
- type: String,
- default: uni.$u.props.transition.timingFunction
- }
- }
-}
diff --git a/uni_modules/uview-ui/components/u-transition/transition.js b/uni_modules/uview-ui/components/u-transition/transition.js
deleted file mode 100644
index 92e5681..0000000
--- a/uni_modules/uview-ui/components/u-transition/transition.js
+++ /dev/null
@@ -1,157 +0,0 @@
-// 定义一个一定时间后自动成功的promise,让调用nextTick方法处,进入下一个then方法
-const nextTick = () => new Promise(resolve => setTimeout(resolve, 1000 / 50))
-// nvue动画模块实现细节抽离在外部文件
-import animationMap from './nvue.ani-map.js'
-
-// #ifndef APP-NVUE
-// 定义类名,通过给元素动态切换类名,赋予元素一定的css动画样式
-const getClassNames = (name) => ({
- enter: `u-${name}-enter u-${name}-enter-active`,
- 'enter-to': `u-${name}-enter-to u-${name}-enter-active`,
- leave: `u-${name}-leave u-${name}-leave-active`,
- 'leave-to': `u-${name}-leave-to u-${name}-leave-active`
-})
-// #endif
-
-// #ifdef APP-NVUE
-// 引入nvue(weex)的animation动画模块,文档见:
-// https://weex.apache.org/zh/docs/modules/animation.html#transition
-const animation = uni.requireNativePlugin('animation')
-const getStyle = (name) => animationMap[name]
-// #endif
-
-export default {
- methods: {
- // 组件被点击发出事件
- clickHandler() {
- this.$emit('click')
- },
- // #ifndef APP-NVUE
- // vue版本的组件进场处理
- vueEnter() {
- // 动画进入时的类名
- const classNames = getClassNames(this.mode)
- // 定义状态和发出动画进入前事件
- this.status = 'enter'
- this.$emit('beforeEnter')
- this.inited = true
- this.display = true
- this.classes = classNames.enter
- this.$nextTick(async () => {
- // #ifdef H5
- await uni.$u.sleep(20)
- // #endif
- // 标识动画尚未结束
- this.$emit('enter')
- this.transitionEnded = false
- // 组件动画进入后触发的事件
- this.$emit('afterEnter')
- // 赋予组件enter-to类名
- this.classes = classNames['enter-to']
- })
- },
- // 动画离场处理
- vueLeave() {
- // 如果不是展示状态,无需执行逻辑
- if (!this.display) return
- const classNames = getClassNames(this.mode)
- // 标记离开状态和发出事件
- this.status = 'leave'
- this.$emit('beforeLeave')
- // 获得类名
- this.classes = classNames.leave
-
- this.$nextTick(() => {
- // 动画正在离场的状态
- this.transitionEnded = false
- this.$emit('leave')
- // 组件执行动画,到了执行的执行时间后,执行一些额外处理
- setTimeout(this.onTransitionEnd, this.duration)
- this.classes = classNames['leave-to']
- })
- },
- // #endif
- // #ifdef APP-NVUE
- // nvue版本动画进场
- nvueEnter() {
- // 获得样式的名称
- const currentStyle = getStyle(this.mode)
- // 组件动画状态和发出事件
- this.status = 'enter'
- this.$emit('beforeEnter')
- // 展示生成组件元素
- this.inited = true
- this.display = true
- // 在nvue安卓上,由于渲染速度慢,在弹窗,键盘,日历等组件中,渲染其中的内容需要时间
- // 导致出现弹窗卡顿,这里让其一开始为透明状态,等一定时间渲染完成后,再让其隐藏起来,再让其按正常逻辑出现
- this.viewStyle = {
- opacity: 0
- }
- // 等待弹窗内容渲染完成
- this.$nextTick(() => {
- // 合并样式
- this.viewStyle = currentStyle.enter
- Promise.resolve()
- .then(nextTick)
- .then(() => {
- // 组件开始进入前的事件
- this.$emit('enter')
- // nvue的transition动画模块需要通过ref调用组件,注意此处的ref不同于vue的this.$refs['u-transition']用法
- animation.transition(this.$refs['u-transition'].ref, {
- styles: currentStyle['enter-to'],
- duration: this.duration,
- timingFunction: this.timingFunction,
- needLayout: false,
- delay: 0
- }, () => {
- // 动画执行完毕,发出事件
- this.$emit('afterEnter')
- })
- })
- .catch(() => {})
- })
- },
- nvueLeave() {
- if (!this.display) {
- return
- }
- const currentStyle = getStyle(this.mode)
- // 定义状态和事件
- this.status = 'leave'
- this.$emit('beforeLeave')
- // 合并样式
- this.viewStyle = currentStyle.leave
- // 放到promise中处理执行过程
- Promise.resolve()
- .then(nextTick) // 等待几十ms
- .then(() => {
- this.transitionEnded = false
- // 动画正在离场的状态
- this.$emit('leave')
- animation.transition(this.$refs['u-transition'].ref, {
- styles: currentStyle['leave-to'],
- duration: this.duration,
- timingFunction: this.timingFunction,
- needLayout: false,
- delay: 0
- }, () => {
- this.onTransitionEnd()
- })
- })
- .catch(() => {})
- },
- // #endif
- // 完成过渡后触发
- onTransitionEnd() {
- // 如果已经是结束的状态,无需再处理
- if (this.transitionEnded) return
- this.transitionEnded = true
- // 发出组件动画执行后的事件
- this.$emit(this.status === 'leave' ? 'afterLeave' : 'afterEnter')
- if (!this.show && this.display) {
- this.display = false
- this.inited = false
- }
- }
- }
-}
diff --git a/uni_modules/uview-ui/components/u-transition/u-transition.vue b/uni_modules/uview-ui/components/u-transition/u-transition.vue
deleted file mode 100644
index 22831dc..0000000
--- a/uni_modules/uview-ui/components/u-transition/u-transition.vue
+++ /dev/null
@@ -1,92 +0,0 @@
-<template>
- <view
- v-if="inited"
- class="u-transition"
- ref="u-transition"
- @tap="clickHandler"
- :class="classes"
- :style="[mergeStyle]"
- @touchmove="noop"
- >
- <slot />
- </view>
-</template>
-
-<script>
-import props from './props.js';
-// 组件的methods方法,由于内容较长,写在外部文件中通过mixin引入
-import transition from "./transition.js";
-/**
- * transition 动画组件
- * @description
- * @tutorial
- * @property {String} show 是否展示组件 (默认 false )
- * @property {String} mode 使用的动画模式 (默认 'fade' )
- * @property {String | Number} duration 动画的执行时间,单位ms (默认 '300' )
- * @property {String} timingFunction 使用的动画过渡函数 (默认 'ease-out' )
- * @property {Object} customStyle 自定义样式
- * @event {Function} before-enter 进入前触发
- * @event {Function} enter 进入中触发
- * @event {Function} after-enter 进入后触发
- * @event {Function} before-leave 离开前触发
- * @event {Function} leave 离开中触发
- * @event {Function} after-leave 离开后触发
- * @example
- */
-export default {
- name: 'u-transition',
- data() {
- return {
- inited: false, // 是否显示/隐藏组件
- viewStyle: {}, // 组件内部的样式
- status: '', // 记录组件动画的状态
- transitionEnded: false, // 组件是否结束的标记
- display: false, // 组件是否展示
- classes: '', // 应用的类名
- }
- },
- computed: {
- mergeStyle() {
- const { viewStyle, customStyle } = this
- return {
- // #ifndef APP-NVUE
- transitionDuration: `${this.duration}ms`,
- // display: `${this.display ? '' : 'none'}`,
- transitionTimingFunction: this.timingFunction,
- // #endif
- // 避免自定义样式影响到动画属性,所以写在viewStyle前面
- ...uni.$u.addStyle(customStyle),
- ...viewStyle
- }
- }
- },
- // 将mixin挂在到组件中,uni.$u.mixin实际上为一个vue格式对象
- mixins: [uni.$u.mpMixin, uni.$u.mixin, transition, props],
- watch: {
- show: {
- handler(newVal) {
- // vue和nvue分别执行不同的方法
- // #ifdef APP-NVUE
- newVal ? this.nvueEnter() : this.nvueLeave()
- // #endif
- // #ifndef APP-NVUE
- newVal ? this.vueEnter() : this.vueLeave()
- // #endif
- },
- // 表示同时监听初始化时的props的show的意思
- immediate: true
- }
- }
-}
-</script>
-
-<style lang="scss" scoped>
-@import '../../libs/css/components.scss';
-
-/* #ifndef APP-NVUE */
-// vue版本动画相关的样式抽离在外部文件
-@import './vue.ani-style.scss';
-/* #endif */
-
-.u-transition {}
-</style>
diff --git a/uni_modules/uview-ui/components/u-transition/vue.ani-style.scss b/uni_modules/uview-ui/components/u-transition/vue.ani-style.scss
deleted file mode 100644
index a31d88b..0000000
--- a/uni_modules/uview-ui/components/u-transition/vue.ani-style.scss
+++ /dev/null
@@ -1,113 +0,0 @@
-/**
- * vue版本动画内置的动画模式有如下:
- * fade:淡入
- * zoom:缩放
- * fade-zoom:缩放淡入
- * fade-up:上滑淡入
- * fade-down:下滑淡入
- * fade-left:左滑淡入
- * fade-right:右滑淡入
- * slide-up:上滑进入
- * slide-down:下滑进入
- * slide-left:左滑进入
- * slide-right:右滑进入
- */
-
-$u-zoom-scale: scale(0.95);
-
-.u-fade-enter-active,
-.u-fade-leave-active {
- transition-property: opacity;
-}
-
-.u-fade-enter,
-.u-fade-leave-to {
- opacity: 0
-}
-
-.u-fade-zoom-enter,
-.u-fade-zoom-leave-to {
- transform: $u-zoom-scale;
- opacity: 0;
-}
-
-.u-fade-zoom-enter-active,
-.u-fade-zoom-leave-active {
- transition-property: transform, opacity;
-}
-
-.u-fade-down-enter-active,
-.u-fade-down-leave-active,
-.u-fade-left-enter-active,
-.u-fade-left-leave-active,
-.u-fade-right-enter-active,
-.u-fade-right-leave-active,
-.u-fade-up-enter-active,
-.u-fade-up-leave-active {
- transition-property: opacity, transform;
-}
-
-.u-fade-up-enter,
-.u-fade-up-leave-to {
- transform: translate3d(0, 100%, 0);
- opacity: 0
-}
-
-.u-fade-down-enter,
-.u-fade-down-leave-to {
- transform: translate3d(0, -100%, 0);
- opacity: 0
-}
-
-.u-fade-left-enter,
-.u-fade-left-leave-to {
- transform: translate3d(-100%, 0, 0);
- opacity: 0
-}
-
-.u-fade-right-enter,
-.u-fade-right-leave-to {
- transform: translate3d(100%, 0, 0);
- opacity: 0
-}
-
-.u-slide-down-enter-active,
-.u-slide-down-leave-active,
-.u-slide-left-enter-active,
-.u-slide-left-leave-active,
-.u-slide-right-enter-active,
-.u-slide-right-leave-active,
-.u-slide-up-enter-active,
-.u-slide-up-leave-active {
- transition-property: transform;
-}
-
-.u-slide-up-enter,
-.u-slide-up-leave-to {
- transform: translate3d(0, 100%, 0)
-}
-
-.u-slide-down-enter,
-.u-slide-down-leave-to {
- transform: translate3d(0, -100%, 0)
-}
-
-.u-slide-left-enter,
-.u-slide-left-leave-to {
- transform: translate3d(-100%, 0, 0)
-}
-
-.u-slide-right-enter,
-.u-slide-right-leave-to {
- transform: translate3d(100%, 0, 0)
-}
-
-.u-zoom-enter-active,
-.u-zoom-leave-active {
- transition-property: transform
-}
-
-.u-zoom-enter,
-.u-zoom-leave-to {
- transform: $u-zoom-scale
-}
diff --git a/uni_modules/uview-ui/components/u-upload/mixin.js b/uni_modules/uview-ui/components/u-upload/mixin.js
deleted file mode 100644
index 410c775..0000000
--- a/uni_modules/uview-ui/components/u-upload/mixin.js
+++ /dev/null
@@ -1,21 +0,0 @@
-export default {
- watch: {
- // 监听accept的变化,判断是否符合个平台要求
- // 只有微信小程序才支持选择媒体,文件类型,所以这里做一个判断提示
- accept: {
- immediate: true,
- handler(val) {
- // #ifndef MP-WEIXIN
- if (val === 'all' || val === 'media') {
- uni.$u.error('只有微信小程序才支持把accept配置为all、media之一')
- }
- // #endif
- // #ifndef H5 || MP-WEIXIN
- if (val === 'file') {
- uni.$u.error('只有微信小程序和H5(HX2.9.9)才支持把accept配置为file')
- }
- // #endif
- }
- }
- }
-}
diff --git a/uni_modules/uview-ui/components/u-upload/props.js b/uni_modules/uview-ui/components/u-upload/props.js
deleted file mode 100644
index b106ae7..0000000
--- a/uni_modules/uview-ui/components/u-upload/props.js
+++ /dev/null
@@ -1,124 +0,0 @@
-export default {
- props: {
- // 接受的文件类型, 可选值为all media image file video
- accept: {
- type: String,
- default: uni.$u.props.upload.accept
- },
- // 图片或视频拾取模式,当accept为image类型时设置capture可选额外camera可以直接调起摄像头
- capture: {
- type: [String, Array],
- default: uni.$u.props.upload.capture
- },
- // 当accept为video时生效,是否压缩视频,默认为true
- compressed: {
- type: Boolean,
- default: uni.$u.props.upload.compressed
- },
- // 当accept为video时生效,可选值为back或front
- camera: {
- type: String,
- default: uni.$u.props.upload.camera
- },
- // 当accept为video时生效,拍摄视频最长拍摄时间,单位秒
- maxDuration: {
- type: Number,
- default: uni.$u.props.upload.maxDuration
- },
- // 上传区域的图标,只能内置图标
- uploadIcon: {
- type: String,
- default: uni.$u.props.upload.uploadIcon
- },
- // 上传区域的图标的颜色,默认
- uploadIconColor: {
- type: String,
- default: uni.$u.props.upload.uploadIconColor
- },
- // 是否开启文件读取前事件
- useBeforeRead: {
- type: Boolean,
- default: uni.$u.props.upload.useBeforeRead
- },
- // 读取后的处理函数
- afterRead: {
- type: Function,
- default: null
- },
- // 读取前的处理函数
- beforeRead: {
- type: Function,
- default: null
- },
- // 是否显示组件自带的图片预览功能
- previewFullImage: {
- type: Boolean,
- default: uni.$u.props.upload.previewFullImage
- },
- // 最大上传数量
- maxCount: {
- type: [String, Number],
- default: uni.$u.props.upload.maxCount
- },
- // 是否启用
- disabled: {
- type: Boolean,
- default: uni.$u.props.upload.disabled
- },
- // 预览上传的图片时的裁剪模式,和image组件mode属性一致
- imageMode: {
- type: String,
- default: uni.$u.props.upload.imageMode
- },
- // 标识符,可以在回调函数的第二项参数中获取
- name: {
- type: String,
- default: uni.$u.props.upload.name
- },
- // 所选的图片的尺寸, 可选值为original compressed
- sizeType: {
- type: Array,
- default: uni.$u.props.upload.sizeType
- },
- // 是否开启图片多选,部分安卓机型不支持
- multiple: {
- type: Boolean,
- default: uni.$u.props.upload.multiple
- },
- // 是否展示删除按钮
- deletable: {
- type: Boolean,
- default: uni.$u.props.upload.deletable
- },
- // 文件大小限制,单位为byte
- maxSize: {
- type: [String, Number],
- default: uni.$u.props.upload.maxSize
- },
- // 显示已上传的文件列表
- fileList: {
- type: Array,
- default: uni.$u.props.upload.fileList
- },
- // 上传区域的提示文字
- uploadText: {
- type: String,
- default: uni.$u.props.upload.uploadText
- },
- // 内部预览图片区域和选择图片按钮的区域宽度
- width: {
- type: [String, Number],
- default: uni.$u.props.upload.width
- },
- // 内部预览图片区域和选择图片按钮的区域高度
- height: {
- type: [String, Number],
- default: uni.$u.props.upload.height
- },
- // 是否在上传完成后展示预览图
- previewImage: {
- type: Boolean,
- default: uni.$u.props.upload.previewImage
- }
- }
-}
diff --git a/uni_modules/uview-ui/components/u-upload/u-upload.vue b/uni_modules/uview-ui/components/u-upload/u-upload.vue
deleted file mode 100644
index 1dac8a7..0000000
--- a/uni_modules/uview-ui/components/u-upload/u-upload.vue
+++ /dev/null
@@ -1,558 +0,0 @@
-<template>
- <view class="u-upload" :style="[$u.addStyle(customStyle)]">
- <view class="u-upload__wrap" >
- <template v-if="previewImage">
- <view
- class="u-upload__wrap__preview"
- v-for="(item, index) in lists"
- :key="index"
- >
- <image
- v-if="item.isImage || (item.type && item.type === 'image')"
- :src="item.thumb || item.url"
- :mode="imageMode"
- class="u-upload__wrap__preview__image"
- @tap="onPreviewImage(item)"
- :style="[{
- width: $u.addUnit(width),
- height: $u.addUnit(height)
- }]"
- />
- <view
- v-else
- class="u-upload__wrap__preview__other"
- >
- <u-icon
- color="#80CBF9"
- size="26"
- :name="item.isVideo || (item.type && item.type === 'video') ? 'movie' : 'folder'"
- ></u-icon>
- <text class="u-upload__wrap__preview__other__text">{{item.isVideo || (item.type && item.type === 'video') ? '视频' : '文件'}}</text>
- </view>
- <view
- class="u-upload__status"
- v-if="item.status === 'uploading' || item.status === 'failed'"
- >
- <view class="u-upload__status__icon">
- <u-icon
- v-if="item.status === 'failed'"
- name="close-circle"
- color="#ffffff"
- size="25"
- />
- <u-loading-icon
- size="22"
- mode="circle"
- color="#ffffff"
- v-else
- />
- </view>
- <text
- v-if="item.message"
- class="u-upload__status__message"
- >{{ item.message }}</text>
- </view>
- <view
- class="u-upload__deletable"
- v-if="item.status !== 'uploading' && (deletable || item.deletable)"
- @tap.stop="deleteItem(index)"
- >
- <view class="u-upload__deletable__icon">
- <u-icon
- name="close"
- color="#ffffff"
- size="10"
- ></u-icon>
- </view>
- </view>
- <view
- class="u-upload__success"
- v-if="item.status === 'success'"
- >
- <!-- #ifdef APP-NVUE -->
- <image
- :src="successIcon"
- class="u-upload__success__icon"
- ></image>
- <!-- #endif -->
- <!-- #ifndef APP-NVUE -->
- <view class="u-upload__success__icon">
- <u-icon
- name="checkmark"
- color="#ffffff"
- size="12"
- ></u-icon>
- </view>
- <!-- #endif -->
- </view>
- </view>
-
- </template>
-
- <template v-if="isInCount">
- <view
- v-if="$slots.default || $slots.$default"
- @tap="chooseFile"
- >
- <slot />
- </view>
- <view
- v-else
- class="u-upload__button"
- :hover-class="!disabled ? 'u-upload__button--hover' : ''"
- hover-stay-time="150"
- @tap="chooseFile"
- :class="[disabled && 'u-upload__button--disabled']"
- :style="[{
- width: $u.addUnit(width),
- height: $u.addUnit(height)
- }]"
- >
- <u-icon
- :name="uploadIcon"
- size="26"
- :color="uploadIconColor"
- ></u-icon>
- <text
- v-if="uploadText"
- class="u-upload__button__text"
- >{{ uploadText }}</text>
- </view>
- </template>
- </view>
-
- </view>
-</template>
-
-<script>
- import {
- chooseFile
- } from './utils';
- import mixin from './mixin.js';
- import props from './props.js';
-
- /**
- * upload 上传
- * @description 该组件用于上传图片场景
- * @tutorial https://uviewui.com/components/upload.html
- * @property {String} accept 接受的文件类型, 可选值为all media image file video (默认 'image' )
- * @property {String | Array} capture 图片或视频拾取模式,当accept为image类型时设置capture可选额外camera可以直接调起摄像头(默认 ['album', 'camera'] )
- * @property {Boolean} compressed 当accept为video时生效,是否压缩视频,默认为true(默认 true )
- * @property {String} camera 当accept为video时生效,可选值为back或front(默认 'back' )
- * @property {Number} maxDuration 当accept为video时生效,拍摄视频最长拍摄时间,单位秒(默认 60 )
- * @property {String} uploadIcon 上传区域的图标,只能内置图标(默认 'camera-fill' )
- * @property {String} uploadIconColor 上传区域的图标的字体颜色,只能内置图标(默认 #D3D4D6 )
- * @property {Boolean} useBeforeRead 是否开启文件读取前事件(默认 false )
- * @property {Boolean} previewFullImage 是否显示组件自带的图片预览功能(默认 true )
- * @property {String | Number} maxCount 最大上传数量(默认 52 )
- * @property {Boolean} disabled 是否启用(默认 false )
- * @property {String} imageMode 预览上传的图片时的裁剪模式,和image组件mode属性一致(默认 'aspectFill' )
- * @property {String} name 标识符,可以在回调函数的第二项参数中获取
- * @property {Array} sizeType 所选的图片的尺寸, 可选值为original compressed(默认 ['original', 'compressed'] )
- * @property {Boolean} multiple 是否开启图片多选,部分安卓机型不支持 (默认 false )
- * @property {Boolean} deletable 是否展示删除按钮(默认 true )
- * @property {String | Number} maxSize 文件大小限制,单位为byte (默认 Number.MAX_VALUE )
- * @property {Array} fileList 显示已上传的文件列表
- * @property {String} uploadText 上传区域的提示文字
- * @property {String | Number} width 内部预览图片区域和选择图片按钮的区域宽度(默认 80 )
- * @property {String | Number} height 内部预览图片区域和选择图片按钮的区域高度(默认 80 )
- * @property {Object} customStyle 组件的样式,对象形式
- * @event {Function} afterRead 读取后的处理函数
- * @event {Function} beforeRead 读取前的处理函数
- * @event {Function} oversize 文件超出大小限制
- * @event {Function} clickPreview 点击预览图片
- * @event {Function} delete 删除图片
- * @example <u-upload :action="action" :fileList="fileList" ></u-upload>
- */
- export default {
- name: "u-upload",
- mixins: [uni.$u.mpMixin, uni.$u.mixin, mixin,props],
- data() {
- return {
- // #ifdef APP-NVUE
- successIcon: 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACgAAAAoCAYAAACM/rhtAAAAAXNSR0IArs4c6QAAAERlWElmTU0AKgAAAAgAAYdpAAQAAAABAAAAGgAAAAAAA6ABAAMAAAABAAEAAKACAAQAAAABAAAAKKADAAQAAAABAAAAKAAAAAB65masAAACP0lEQVRYCc3YXygsURwH8K/dpcWyG3LF5u/6/+dKVylSypuUl6uUPMifKMWL8oKEB1EUT1KeUPdR3uTNUsSLxb2udG/cbvInNuvf2rVnazZ/ZndmZ87snjM1Z+Z3zpzfp9+Z5mEAhlvjRtZgCKs+gnPAOcAkkMOR4jEHfItjDvgRxxSQD8cM0BuOCaAvXNCBQrigAsXgggYUiwsK0B9cwIH+4gIKlIILGFAqLiBAOTjFgXJxigJp4BQD0sIpAqSJow6kjSNAFTnRaHJwLenD6Mud52VQAcrBfTd2oyq+HtGaGGWAcnAVcXWoM3bCZrdi+ncPfaAcXE5UKVpdW/vitGPqqAtn98d0gXJwX7Qp6MmegUYVhvmTIezdmHlxJCjpHRTCFerLkRRu4k0aqdajN3sWOo0BK//msHa+xDuPC/oNFMKRhTtM4xjIX0SCNpXL4+7VIaHuyiWEp2L7ahWLf8fejfPdqPmC3mJicORZUp1CQzm+GiphvljGk+PBvWRbxii+xVTj5M6CiZ/tsDufvaXyxEUDxeLIyvu3m0iOyEFWVAkydcVYdyFrE9tQk9iMq6f/GNlvwt3LjQfh60LUrw9/cFyyMJUW/XkLSNMV4Mi6C5ML+ui4x5ClAX9sB9w0wV6wglJwJCv5fOxcr6EstgbGiEw4XcfUry4cWrcEUW8n+ARKxXEJHhw2WG43UKSvwI/TSZgvl7kh0b3XLZaLEy0QmMgLZAVH7J+ALOE+AVnDvQOyiPMAWcW5gSzjCPAV+78S5WE0GrQAAAAASUVORK5CYII=',
- // #endif
- lists: [],
- isInCount: true,
- }
- },
- watch: {
- // 监听文件列表的变化,重新整理内部数据
- fileList: {
- immediate: true,
- handler() {
- this.formatFileList()
- }
- },
- },
- methods: {
- formatFileList() {
- const {
- fileList = [], maxCount
- } = this;
- const lists = fileList.map((item) =>
- Object.assign(Object.assign({}, item), {
- // 如果item.url为本地选择的blob文件的话,无法判断其为video还是image,此处优先通过accept做判断处理
- isImage: this.accept === 'image' || uni.$u.test.image(item.url || item.thumb),
- isVideo: this.accept === 'video' || uni.$u.test.video(item.url || item.thumb),
- deletable: typeof(item.deletable) === 'boolean' ? item.deletable : this.deletable,
- })
- );
- this.lists = lists
- this.isInCount = lists.length < maxCount
- },
- chooseFile() {
- const {
- maxCount,
- multiple,
- lists,
- disabled
- } = this;
- if (disabled) return;
- // 如果用户传入的是字符串,需要格式化成数组
- let capture;
- try {
- capture = uni.$u.test.array(this.capture) ? this.capture : this.capture.split(',');
- }catch(e) {
- capture = [];
- }
- chooseFile(
- Object.assign({
- accept: this.accept,
- multiple: this.multiple,
- capture: capture,
- compressed: this.compressed,
- maxDuration: this.maxDuration,
- sizeType: this.sizeType,
- camera: this.camera,
- }, {
- maxCount: maxCount - lists.length,
- })
- )
- .then((res) => {
- this.onBeforeRead(multiple ? res : res[0]);
- })
- .catch((error) => {
- this.$emit('error', error);
- });
- },
- // 文件读取之前
- onBeforeRead(file) {
- const {
- beforeRead,
- useBeforeRead,
- } = this;
- let res = true
- // beforeRead是否为一个方法
- if (uni.$u.test.func(beforeRead)) {
- // 如果用户定义了此方法,则去执行此方法,并传入读取的文件回调
- res = beforeRead(file, this.getDetail());
- }
- if (useBeforeRead) {
- res = new Promise((resolve, reject) => {
- this.$emit(
- 'beforeRead',
- Object.assign(Object.assign({
- file
- }, this.getDetail()), {
- callback: (ok) => {
- ok ? resolve() : reject();
- },
- })
- );
- });
- }
- if (!res) {
- return;
- }
- if (uni.$u.test.promise(res)) {
- res.then((data) => this.onAfterRead(data || file));
- } else {
- this.onAfterRead(file);
- }
- },
- getDetail(index) {
- return {
- name: this.name,
- index: index == null ? this.fileList.length : index,
- };
- },
- onAfterRead(file) {
- const {
- maxSize,
- afterRead
- } = this;
- const oversize = Array.isArray(file) ?
- file.some((item) => item.size > maxSize) :
- file.size > maxSize;
- if (oversize) {
- this.$emit('oversize', Object.assign({
- file
- }, this.getDetail()));
- return;
- }
- if (typeof afterRead === 'function') {
- afterRead(file, this.getDetail());
- }
- this.$emit('afterRead', Object.assign({
- file
- }, this.getDetail()));
- },
- deleteItem(index) {
- this.$emit(
- 'delete',
- Object.assign(Object.assign({}, this.getDetail(index)), {
- file: this.fileList[index],
- })
- );
- },
- // 预览图片
- onPreviewImage(item) {
- if (!item.isImage || !this.previewFullImage) return
- uni.previewImage({
- // 先filter找出为图片的item,再返回filter结果中的图片url
- urls: this.lists.filter((item) => this.accept === 'image' || uni.$u.test.image(item.url || item.thumb)).map((item) => item.url || item.thumb),
- current: item.url || item.thumb,
- fail() {
- uni.$u.toast('预览图片失败')
- },
- });
- },
- onPreviewVideo(event) {
- if (!this.data.previewFullImage) return;
- const {
- index
- } = event.currentTarget.dataset;
- const {
- lists
- } = this.data;
- wx.previewMedia({
- sources: lists
- .filter((item) => isVideoFile(item))
- .map((item) =>
- Object.assign(Object.assign({}, item), {
- type: 'video'
- })
- ),
- current: index,
- fail() {
- uni.$u.toast('预览视频失败')
- },
- });
- },
- onClickPreview(event) {
- const {
- index
- } = event.currentTarget.dataset;
- const item = this.data.lists[index];
- this.$emit(
- 'clickPreview',
- Object.assign(Object.assign({}, item), this.getDetail(index))
- );
- }
- }
- }
-</script>
-
-<style lang="scss" scoped>
- @import '../../libs/css/components.scss';
- $u-upload-preview-border-radius: 2px !default;
- $u-upload-preview-margin: 0 8px 8px 0 !default;
- $u-upload-image-width:80px !default;
- $u-upload-image-height:$u-upload-image-width;
- $u-upload-other-bgColor: rgb(242, 242, 242) !default;
- $u-upload-other-flex:1 !default;
- $u-upload-text-font-size:11px !default;
- $u-upload-text-color:$u-tips-color !default;
- $u-upload-text-margin-top:2px !default;
- $u-upload-deletable-right:0 !default;
- $u-upload-deletable-top:0 !default;
- $u-upload-deletable-bgColor:rgb(55, 55, 55) !default;
- $u-upload-deletable-height:14px !default;
- $u-upload-deletable-width:$u-upload-deletable-height;
- $u-upload-deletable-boder-bottom-left-radius:100px !default;
- $u-upload-deletable-zIndex:3 !default;
- $u-upload-success-bottom:0 !default;
- $u-upload-success-right:0 !default;
- $u-upload-success-border-style:solid !default;
- $u-upload-success-border-top-color:transparent !default;
- $u-upload-success-border-left-color:transparent !default;
- $u-upload-success-border-bottom-color: $u-success !default;
- $u-upload-success-border-right-color:$u-upload-success-border-bottom-color;
- $u-upload-success-border-width:9px !default;
- $u-upload-icon-top:0px !default;
- $u-upload-icon-right:0px !default;
- $u-upload-icon-h5-top:1px !default;
- $u-upload-icon-h5-right:0 !default;
- $u-upload-icon-width:16px !default;
- $u-upload-icon-height:$u-upload-icon-width;
- $u-upload-success-icon-bottom:-10px !default;
- $u-upload-success-icon-right:-10px !default;
- $u-upload-status-right:0 !default;
- $u-upload-status-left:0 !default;
- $u-upload-status-bottom:0 !default;
- $u-upload-status-top:0 !default;
- $u-upload-status-bgColor:rgba(0, 0, 0, 0.5) !default;
- $u-upload-status-icon-Zindex:1 !default;
- $u-upload-message-font-size:12px !default;
- $u-upload-message-color:#FFFFFF !default;
- $u-upload-message-margin-top:5px !default;
- $u-upload-button-width:80px !default;
- $u-upload-button-height:$u-upload-button-width;
- $u-upload-button-bgColor:rgb(244, 245, 247) !default;
- $u-upload-button-border-radius:2px !default;
- $u-upload-botton-margin: 0 8px 8px 0 !default;
- $u-upload-text-font-size:11px !default;
- $u-upload-text-color:$u-tips-color !default;
- $u-upload-text-margin-top: 2px !default;
- $u-upload-hover-bgColor:rgb(230, 231, 233) !default;
- $u-upload-disabled-opacity:.5 !default;
-
- .u-upload {
- @include flex(column);
- flex: 1;
-
- &__wrap {
- @include flex;
- flex-wrap: wrap;
- flex: 1;
-
- &__preview {
- border-radius: $u-upload-preview-border-radius;
- margin: $u-upload-preview-margin;
- position: relative;
- overflow: hidden;
- @include flex;
-
- &__image {
- width: $u-upload-image-width;
- height: $u-upload-image-height;
- }
-
- &__other {
- width: $u-upload-image-width;
- height: $u-upload-image-height;
- background-color: $u-upload-other-bgColor;
- flex: $u-upload-other-flex;
- @include flex(column);
- justify-content: center;
- align-items: center;
-
- &__text {
- font-size: $u-upload-text-font-size;
- color: $u-upload-text-color;
- margin-top: $u-upload-text-margin-top;
- }
- }
- }
- }
-
- &__deletable {
- position: absolute;
- top: $u-upload-deletable-top;
- right: $u-upload-deletable-right;
- background-color: $u-upload-deletable-bgColor;
- height: $u-upload-deletable-height;
- width: $u-upload-deletable-width;
- @include flex;
- border-bottom-left-radius: $u-upload-deletable-boder-bottom-left-radius;
- align-items: center;
- justify-content: center;
- z-index: $u-upload-deletable-zIndex;
-
- &__icon {
- position: absolute;
- transform: scale(0.7);
- top: $u-upload-icon-top;
- right: $u-upload-icon-right;
- /* #ifdef H5 */
- top: $u-upload-icon-h5-top;
- right: $u-upload-icon-h5-right;
- /* #endif */
- }
- }
-
- &__success {
- position: absolute;
- bottom: $u-upload-success-bottom;
- right: $u-upload-success-right;
- @include flex;
- // 由于weex(nvue)为阿里巴巴的KPI(部门业绩考核)的laji产物,不支持css绘制三角形
- // 所以在nvue下使用图片,非nvue下使用css实现
- /* #ifndef APP-NVUE */
- border-style: $u-upload-success-border-style;
- border-top-color: $u-upload-success-border-top-color;
- border-left-color: $u-upload-success-border-left-color;
- border-bottom-color: $u-upload-success-border-bottom-color;
- border-right-color: $u-upload-success-border-right-color;
- border-width: $u-upload-success-border-width;
- align-items: center;
- justify-content: center;
- /* #endif */
-
- &__icon {
- /* #ifndef APP-NVUE */
- position: absolute;
- transform: scale(0.7);
- bottom: $u-upload-success-icon-bottom;
- right: $u-upload-success-icon-right;
- /* #endif */
- /* #ifdef APP-NVUE */
- width: $u-upload-icon-width;
- height: $u-upload-icon-height;
- /* #endif */
- }
- }
-
- &__status {
- position: absolute;
- top: $u-upload-status-top;
- bottom: $u-upload-status-bottom;
- left: $u-upload-status-left;
- right: $u-upload-status-right;
- background-color: $u-upload-status-bgColor;
- @include flex(column);
- align-items: center;
- justify-content: center;
-
- &__icon {
- position: relative;
- z-index: $u-upload-status-icon-Zindex;
- }
-
- &__message {
- font-size: $u-upload-message-font-size;
- color: $u-upload-message-color;
- margin-top: $u-upload-message-margin-top;
- }
- }
-
- &__button {
- @include flex(column);
- align-items: center;
- justify-content: center;
- width: $u-upload-button-width;
- height: $u-upload-button-height;
- background-color: $u-upload-button-bgColor;
- border-radius: $u-upload-button-border-radius;
- margin: $u-upload-botton-margin;
- /* #ifndef APP-NVUE */
- box-sizing: border-box;
- /* #endif */
-
- &__text {
- font-size: $u-upload-text-font-size;
- color: $u-upload-text-color;
- margin-top: $u-upload-text-margin-top;
- }
-
- &--hover {
- background-color: $u-upload-hover-bgColor;
- }
-
- &--disabled {
- opacity: $u-upload-disabled-opacity;
- }
- }
- }
-</style>
diff --git a/uni_modules/uview-ui/components/u-upload/utils.js b/uni_modules/uview-ui/components/u-upload/utils.js
deleted file mode 100644
index 88cb602..0000000
--- a/uni_modules/uview-ui/components/u-upload/utils.js
+++ /dev/null
@@ -1,151 +0,0 @@
-function pickExclude(obj, keys) {
- // 某些情况下,type可能会为
- if (!['[object Object]', '[object File]'].includes(Object.prototype.toString.call(obj))) {
- return {}
- }
- return Object.keys(obj).reduce((prev, key) => {
- if (!keys.includes(key)) {
- prev[key] = obj[key]
- }
- return prev
- }, {})
-}
-
-function formatImage(res) {
- return res.tempFiles.map((item) => ({
- ...pickExclude(item, ['path']),
- type: 'image',
- url: item.path,
- thumb: item.path,
- size: item.size,
- // #ifdef H5
- name: item.name
- // #endif
- }))
-}
-
-function formatVideo(res) {
- return [
- {
- ...pickExclude(res, ['tempFilePath', 'thumbTempFilePath', 'errMsg']),
- type: 'video',
- url: res.tempFilePath,
- thumb: res.thumbTempFilePath,
- size: res.size,
- // #ifdef H5
- name: res.name
- // #endif
- }
- ]
-}
-
-function formatMedia(res) {
- return res.tempFiles.map((item) => ({
- ...pickExclude(item, ['fileType', 'thumbTempFilePath', 'tempFilePath']),
- type: res.type,
- url: item.tempFilePath,
- thumb: res.type === 'video' ? item.thumbTempFilePath : item.tempFilePath,
- size: item.size
- }))
-}
-
-function formatFile(res) {
- return res.tempFiles.map((item) => ({
- ...pickExclude(item, ['path']),
- url: item.path,
- size:item.size,
- // #ifdef H5
- name: item.name,
- type: item.type
- // #endif
- }))
-}
-export function chooseFile({
- accept,
- multiple,
- capture,
- compressed,
- maxDuration,
- sizeType,
- camera,
- maxCount
-}) {
- return new Promise((resolve, reject) => {
- switch (accept) {
- case 'image':
- uni.chooseImage({
- count: multiple ? Math.min(maxCount, 9) : 1,
- sourceType: capture,
- sizeType,
- success: (res) => resolve(formatImage(res)),
- fail: reject
- })
- break
- // #ifdef MP-WEIXIN
- // 只有微信小程序才支持chooseMedia接口
- case 'media':
- wx.chooseMedia({
- count: multiple ? Math.min(maxCount, 9) : 1,
- sourceType: capture,
- maxDuration,
- sizeType,
- camera,
- success: (res) => resolve(formatMedia(res)),
- fail: reject
- })
- break
- // #endif
- case 'video':
- uni.chooseVideo({
- sourceType: capture,
- compressed,
- maxDuration,
- camera,
- success: (res) => resolve(formatVideo(res)),
- fail: reject
- })
- break
- // #ifdef MP-WEIXIN || H5
- // 只有微信小程序才支持chooseMessageFile接口
- case 'file':
- // #ifdef MP-WEIXIN
- wx.chooseMessageFile({
- count: multiple ? maxCount : 1,
- type: accept,
- success: (res) => resolve(formatFile(res)),
- fail: reject
- })
- // #endif
- // #ifdef H5
- // 需要hx2.9.9以上才支持uni.chooseFile
- uni.chooseFile({
- count: multiple ? maxCount : 1,
- type: accept,
- success: (res) => resolve(formatFile(res)),
- fail: reject
- })
- // #endif
- break
- // #endif
- default:
- // 此为保底选项,在accept不为上面任意一项的时候选取全部文件
- // #ifdef MP-WEIXIN
- wx.chooseMessageFile({
- count: multiple ? maxCount : 1,
- type: 'all',
- success: (res) => resolve(formatFile(res)),
- fail: reject
- })
- // #endif
- // #ifdef H5
- // 需要hx2.9.9以上才支持uni.chooseFile
- uni.chooseFile({
- count: multiple ? maxCount : 1,
- type: 'all',
- success: (res) => resolve(formatFile(res)),
- fail: reject
- })
- // #endif
- }
- })
-}
diff --git a/uni_modules/uview-ui/components/uview-ui/uview-ui.vue b/uni_modules/uview-ui/components/uview-ui/uview-ui.vue
deleted file mode 100644
index bcd3662..0000000
--- a/uni_modules/uview-ui/components/uview-ui/uview-ui.vue
+++ /dev/null
@@ -1,15 +0,0 @@
-<template>
-</template>
-
-<template>
- <view></view>
-</template>
-
-<script>
- export default {
-
- }
-</script>
-
-<style>
-</style>
diff --git a/uni_modules/uview-ui/index.js b/uni_modules/uview-ui/index.js
deleted file mode 100644
index 651c090..0000000
--- a/uni_modules/uview-ui/index.js
+++ /dev/null
@@ -1,79 +0,0 @@
-// 看到此报错,是因为没有配置vue.config.js的【transpileDependencies】,详见:https://www.uviewui.com/components/npmSetting.html#_5-cli模式额外配置
-const pleaseSetTranspileDependencies = {}, babelTest = pleaseSetTranspileDependencies?.test
-
-
-
-// 引入全局mixin
-import mixin from './libs/mixin/mixin.js'
-// 小程序特有的mixin
-import mpMixin from './libs/mixin/mpMixin.js'
-// 全局挂载引入http相关请求拦截插件
-import Request from './libs/luch-request'
-
-// 路由封装
-import route from './libs/util/route.js'
-// 颜色渐变相关,colorGradient-颜色渐变,hexToRgb-十六进制颜色转rgb颜色,rgbToHex-rgb转十六进制
-import colorGradient from './libs/function/colorGradient.js'
-
-// 规则检验
-import test from './libs/function/test.js'
-// 防抖方法
-import debounce from './libs/function/debounce.js'
-// 节流方法
-import throttle from './libs/function/throttle.js'
-// 公共文件写入的方法
-import index from './libs/function/index.js'
-
-// 配置信息
-import config from './libs/config/config.js'
-// props配置信息
-import props from './libs/config/props.js'
-// 各个需要fixed的地方的z-index配置文件
-import zIndex from './libs/config/zIndex.js'
-// 关于颜色的配置,特殊场景使用
-import color from './libs/config/color.js'
-// 平台
-import platform from './libs/function/platform'
-
-const $u = {
- route,
- date: index.timeFormat, // 另名date
- colorGradient: colorGradient.colorGradient,
- hexToRgb: colorGradient.hexToRgb,
- rgbToHex: colorGradient.rgbToHex,
- colorToRgba: colorGradient.colorToRgba,
- test,
- type: ['primary', 'success', 'error', 'warning', 'info'],
- http: new Request(),
- config, // uView配置信息相关,比如版本号
- zIndex,
- debounce,
- throttle,
- mixin,
- mpMixin,
- props,
- ...index,
- color,
- platform
-}
-
-// $u挂载到uni对象上
-uni.$u = $u
-
-const install = (Vue) => {
- // 时间格式化,同时两个名称,date和timeFormat
- Vue.filter('timeFormat', (timestamp, format) => uni.$u.timeFormat(timestamp, format))
- Vue.filter('date', (timestamp, format) => uni.$u.timeFormat(timestamp, format))
- // 将多久以前的方法,注入到全局过滤器
- Vue.filter('timeFrom', (timestamp, format) => uni.$u.timeFrom(timestamp, format))
- // 同时挂载到uni和Vue.prototype中
- // #ifndef APP-NVUE
- // 只有vue,挂载到Vue.prototype才有意义,因为nvue中全局Vue.prototype和Vue.mixin是无效的
- Vue.prototype.$u = $u
- Vue.mixin(mixin)
- // #endif
-}
-
-export default {
- install
-}
diff --git a/uni_modules/uview-ui/index.scss b/uni_modules/uview-ui/index.scss
deleted file mode 100644
index 8fcfa83..0000000
--- a/uni_modules/uview-ui/index.scss
+++ /dev/null
@@ -1,23 +0,0 @@
-// 引入公共基础类
-@import "./libs/css/common.scss";
-@import "./libs/css/color.scss";
-
-// 非nvue的样式
-/* #ifndef APP-NVUE */
-@import "./libs/css/vue.scss";
-/* #endif */
-
-// nvue的特有样式
-/* #ifdef APP-NVUE */
-@import "./libs/css/nvue.scss";
-/* #endif */
-
-// 小程序特有的样式
-/* #ifdef MP */
-@import "./libs/css/mp.scss";
-/* #endif */
-
-// H5特有的样式
-/* #ifdef H5 */
-@import "./libs/css/h5.scss";
-/* #endif */
\ No newline at end of file
diff --git a/uni_modules/uview-ui/libs/config/color.js b/uni_modules/uview-ui/libs/config/color.js
deleted file mode 100644
index 56b4187..0000000
--- a/uni_modules/uview-ui/libs/config/color.js
+++ /dev/null
@@ -1,17 +0,0 @@
-// 为了让用户能够自定义主题,会逐步弃用此文件,各颜色通过css提供
-// 为了给某些特殊场景使用和向后兼容,无需删除此文件(2020-06-20)
-const color = {
- primary: '#3c9cff',
- info: '#909399',
- default: '#909399',
- warning: '#f9ae3d',
- error: '#f56c6c',
- success: '#5ac725',
- mainColor: '#303133',
- contentColor: '#606266',
- tipsColor: '#909399',
- lightColor: '#c0c4cc',
- borderColor: '#e4e7ed'
-}
-
-export default color
diff --git a/uni_modules/uview-ui/libs/config/config.js b/uni_modules/uview-ui/libs/config/config.js
deleted file mode 100644
index 82b3c69..0000000
--- a/uni_modules/uview-ui/libs/config/config.js
+++ /dev/null
@@ -1,34 +0,0 @@
-// 此版本发布于2024-03-17
-const version = '2.0.37'
-
-// 开发环境才提示,生产环境不会提示
-if (process.env.NODE_ENV === 'development') {
- console.log(`\n %c uView V${version} %c https://uviewui.com/ \n\n`, 'color: #ffffff; background: #3c9cff; padding:5px 0; border-radius: 5px;');
-}
-
-export default {
- v: version,
- version,
- // 主题名称
- type: [
- 'primary',
- 'success',
- 'info',
- 'error',
- 'warning'
- ],
- // 颜色部分,本来可以通过scss的:export导出供js使用,但是奈何nvue不支持
- color: {
- 'u-primary': '#2979ff',
- 'u-warning': '#ff9900',
- 'u-success': '#19be6b',
- 'u-error': '#fa3534',
- 'u-info': '#909399',
- 'u-main-color': '#303133',
- 'u-content-color': '#606266',
- 'u-tips-color': '#909399',
- 'u-light-color': '#c0c4cc'
- },
- // 默认单位,可以通过配置为rpx,那么在用于传入组件大小参数为数值时,就默认为rpx
- unit: 'px'
-}
diff --git a/uni_modules/uview-ui/libs/config/props.js b/uni_modules/uview-ui/libs/config/props.js
deleted file mode 100644
index 6930d48..0000000
--- a/uni_modules/uview-ui/libs/config/props.js
+++ /dev/null
@@ -1,190 +0,0 @@
-/**
- * 此文件的作用为统一配置所有组件的props参数
- * 借此用户可以全局覆盖组件的props默认值
- * 无需在每个引入组件的页面中都配置一次
- */
-import config from './config'
-
-import actionSheet from './props/actionSheet.js'
-import album from './props/album.js'
-import alert from './props/alert.js'
-import avatar from './props/avatar'
-import avatarGroup from './props/avatarGroup'
-import backtop from './props/backtop'
-import badge from './props/badge'
-import button from './props/button'
-import calendar from './props/calendar'
-import carKeyboard from './props/carKeyboard'
-import cell from './props/cell'
-import cellGroup from './props/cellGroup'
-import checkbox from './props/checkbox'
-import checkboxGroup from './props/checkboxGroup'
-import circleProgress from './props/circleProgress'
-import code from './props/code'
-import codeInput from './props/codeInput'
-import col from './props/col'
-import collapse from './props/collapse'
-import collapseItem from './props/collapseItem'
-import columnNotice from './props/columnNotice'
-import countDown from './props/countDown'
-import countTo from './props/countTo'
-import datetimePicker from './props/datetimePicker'
-import divider from './props/divider'
-import empty from './props/empty'
-import form from './props/form'
-import formItem from './props/formItem'
-import gap from './props/gap'
-import grid from './props/grid'
-import gridItem from './props/gridItem'
-import icon from './props/icon'
-import image from './props/image'
-import indexAnchor from './props/indexAnchor'
-import indexList from './props/indexList'
-import input from './props/input'
-import keyboard from './props/keyboard'
-import line from './props/line'
-import lineProgress from './props/lineProgress'
-import link from './props/link'
-import list from './props/list'
-import listItem from './props/listItem'
-import loadingIcon from './props/loadingIcon'
-import loadingPage from './props/loadingPage'
-import loadmore from './props/loadmore'
-import modal from './props/modal'
-import navbar from './props/navbar'
-import noNetwork from './props/noNetwork'
-import noticeBar from './props/noticeBar'
-import notify from './props/notify'
-import numberBox from './props/numberBox'
-import numberKeyboard from './props/numberKeyboard'
-import overlay from './props/overlay'
-import parse from './props/parse'
-import picker from './props/picker'
-import popup from './props/popup'
-import radio from './props/radio'
-import radioGroup from './props/radioGroup'
-import rate from './props/rate'
-import readMore from './props/readMore'
-import row from './props/row'
-import rowNotice from './props/rowNotice'
-import scrollList from './props/scrollList'
-import search from './props/search'
-import section from './props/section'
-import skeleton from './props/skeleton'
-import slider from './props/slider'
-import statusBar from './props/statusBar'
-import steps from './props/steps'
-import stepsItem from './props/stepsItem'
-import sticky from './props/sticky'
-import subsection from './props/subsection'
-import swipeAction from './props/swipeAction'
-import swipeActionItem from './props/swipeActionItem'
-import swiper from './props/swiper'
-import swipterIndicator from './props/swipterIndicator'
-import _switch from './props/switch'
-import tabbar from './props/tabbar'
-import tabbarItem from './props/tabbarItem'
-import tabs from './props/tabs'
-import tag from './props/tag'
-import text from './props/text'
-import textarea from './props/textarea'
-import toast from './props/toast'
-import toolbar from './props/toolbar'
-import tooltip from './props/tooltip'
-import transition from './props/transition'
-import upload from './props/upload'
-
-const {
- color
-} = config
-
-export default {
- ...actionSheet,
- ...album,
- ...alert,
- ...avatar,
- ...avatarGroup,
- ...backtop,
- ...badge,
- ...button,
- ...calendar,
- ...carKeyboard,
- ...cell,
- ...cellGroup,
- ...checkbox,
- ...checkboxGroup,
- ...circleProgress,
- ...code,
- ...codeInput,
- ...col,
- ...collapse,
- ...collapseItem,
- ...columnNotice,
- ...countDown,
- ...countTo,
- ...datetimePicker,
- ...divider,
- ...empty,
- ...form,
- ...formItem,
- ...gap,
- ...grid,
- ...gridItem,
- ...icon,
- ...image,
- ...indexAnchor,
- ...indexList,
- ...input,
- ...keyboard,
- ...line,
- ...lineProgress,
- ...link,
- ...list,
- ...listItem,
- ...loadingIcon,
- ...loadingPage,
- ...loadmore,
- ...modal,
- ...navbar,
- ...noNetwork,
- ...noticeBar,
- ...notify,
- ...numberBox,
- ...numberKeyboard,
- ...overlay,
- ...parse,
- ...picker,
- ...popup,
- ...radio,
- ...radioGroup,
- ...rate,
- ...readMore,
- ...row,
- ...rowNotice,
- ...scrollList,
- ...search,
- ...section,
- ...skeleton,
- ...slider,
- ...statusBar,
- ...steps,
- ...stepsItem,
- ...sticky,
- ...subsection,
- ...swipeAction,
- ...swipeActionItem,
- ...swiper,
- ...swipterIndicator,
- ..._switch,
- ...tabbar,
- ...tabbarItem,
- ...tabs,
- ...tag,
- ...text,
- ...textarea,
- ...toast,
- ...toolbar,
- ...tooltip,
- ...transition,
- ...upload
-}
diff --git a/uni_modules/uview-ui/libs/config/props/actionSheet.js b/uni_modules/uview-ui/libs/config/props/actionSheet.js
deleted file mode 100644
index d8061a7..0000000
--- a/uni_modules/uview-ui/libs/config/props/actionSheet.js
+++ /dev/null
@@ -1,25 +0,0 @@
-/*
- * @Author : LQ
- * @Description :
- * @version : 1.0
- * @Date : 2021-08-20 16:44:21
- * @LastAuthor : LQ
- * @lastTime : 2021-08-20 16:44:35
- * @FilePath : /u-view2.0/uview-ui/libs/config/props/actionSheet.js
- */
-export default {
- // action-sheet组件
- actionSheet: {
- show: false,
- title: '',
- description: '',
- actions: () => [],
- index: '',
- cancelText: '',
- closeOnClickAction: true,
- safeAreaInsetBottom: true,
- openType: '',
- closeOnClickOverlay: true,
- round: 0
- }
-}
diff --git a/uni_modules/uview-ui/libs/config/props/album.js b/uni_modules/uview-ui/libs/config/props/album.js
deleted file mode 100644
index 8877326..0000000
--- a/uni_modules/uview-ui/libs/config/props/album.js
+++ /dev/null
@@ -1,25 +0,0 @@
-/*
- * @Author : LQ
- * @Description :
- * @version : 1.0
- * @Date : 2021-08-20 16:44:21
- * @LastAuthor : LQ
- * @lastTime : 2021-08-20 16:47:24
- * @FilePath : /u-view2.0/uview-ui/libs/config/props/album.js
- */
-export default {
- // album 组件
- album: {
- urls: () => [],
- keyName: '',
- singleSize: 180,
- multipleSize: 70,
- space: 6,
- singleMode: 'scaleToFill',
- multipleMode: 'aspectFill',
- maxCount: 9,
- previewFullImage: true,
- rowCount: 3,
- showMore: true
- }
-}
diff --git a/uni_modules/uview-ui/libs/config/props/alert.js b/uni_modules/uview-ui/libs/config/props/alert.js
deleted file mode 100644
index 8f8182c..0000000
--- a/uni_modules/uview-ui/libs/config/props/alert.js
+++ /dev/null
@@ -1,22 +0,0 @@
-/*
- * @Author : LQ
- * @Description :
- * @version : 1.0
- * @Date : 2021-08-20 16:44:21
- * @LastAuthor : LQ
- * @lastTime : 2021-08-20 16:48:53
- * @FilePath : /u-view2.0/uview-ui/libs/config/props/alert.js
- */
-export default {
- // alert警告组件
- alert: {
- title: '',
- type: 'warning',
- description: '',
- closable: false,
- showIcon: false,
- effect: 'light',
- center: false,
- fontSize: 14
- }
-}
diff --git a/uni_modules/uview-ui/libs/config/props/avatar.js b/uni_modules/uview-ui/libs/config/props/avatar.js
deleted file mode 100644
index c097d4e..0000000
--- a/uni_modules/uview-ui/libs/config/props/avatar.js
+++ /dev/null
@@ -1,28 +0,0 @@
-/*
- * @Author : LQ
- * @Description :
- * @version : 1.0
- * @Date : 2021-08-20 16:44:21
- * @LastAuthor : LQ
- * @lastTime : 2021-08-20 16:49:22
- * @FilePath : /u-view2.0/uview-ui/libs/config/props/avatar.js
- */
-export default {
- // avatar 组件
- avatar: {
- src: '',
- shape: 'circle',
- size: 40,
- mode: 'scaleToFill',
- text: '',
- bgColor: '#c0c4cc',
- color: '#ffffff',
- fontSize: 18,
- icon: '',
- mpAvatar: false,
- randomBgColor: false,
- defaultUrl: '',
- colorIndex: '',
- name: ''
- }
-}
diff --git a/uni_modules/uview-ui/libs/config/props/avatarGroup.js b/uni_modules/uview-ui/libs/config/props/avatarGroup.js
deleted file mode 100644
index f4a66c3..0000000
--- a/uni_modules/uview-ui/libs/config/props/avatarGroup.js
+++ /dev/null
@@ -1,23 +0,0 @@
-/*
- * @Author : LQ
- * @Description :
- * @version : 1.0
- * @Date : 2021-08-20 16:44:21
- * @LastAuthor : LQ
- * @lastTime : 2021-08-20 16:49:55
- * @FilePath : /u-view2.0/uview-ui/libs/config/props/avatarGroup.js
- */
-export default {
- // avatarGroup 组件
- avatarGroup: {
- urls: () => [],
- maxCount: 5,
- shape: 'circle',
- mode: 'scaleToFill',
- showMore: true,
- size: 40,
- keyName: '',
- gap: 0.5,
- extraValue: 0
- }
-}
diff --git a/uni_modules/uview-ui/libs/config/props/backtop.js b/uni_modules/uview-ui/libs/config/props/backtop.js
deleted file mode 100644
index 80f17d0..0000000
--- a/uni_modules/uview-ui/libs/config/props/backtop.js
+++ /dev/null
@@ -1,27 +0,0 @@
-/*
- * @Author : LQ
- * @Description :
- * @version : 1.0
- * @Date : 2021-08-20 16:44:21
- * @LastAuthor : LQ
- * @lastTime : 2021-08-20 16:50:18
- * @FilePath : /u-view2.0/uview-ui/libs/config/props/backtop.js
- */
-export default {
- // backtop组件
- backtop: {
- mode: 'circle',
- icon: 'arrow-upward',
- text: '',
- duration: 100,
- scrollTop: 0,
- top: 400,
- bottom: 100,
- right: 20,
- zIndex: 9,
- iconStyle: () => ({
- color: '#909399',
- fontSize: '19px'
- })
- }
-}
diff --git a/uni_modules/uview-ui/libs/config/props/badge.js b/uni_modules/uview-ui/libs/config/props/badge.js
deleted file mode 100644
index 44ee7cc..0000000
--- a/uni_modules/uview-ui/libs/config/props/badge.js
+++ /dev/null
@@ -1,27 +0,0 @@
-/*
- * @Author : LQ
- * @Description :
- * @version : 1.0
- * @Date : 2021-08-20 16:44:21
- * @LastAuthor : LQ
- * @lastTime : 2021-08-23 19:51:50
- * @FilePath : /u-view2.0/uview-ui/libs/config/props/badge.js
- */
-export default {
- // 徽标数组件
- badge: {
- isDot: false,
- value: '',
- show: true,
- max: 999,
- type: 'error',
- showZero: false,
- bgColor: null,
- color: null,
- shape: 'circle',
- numberType: 'overflow',
- offset: () => [],
- inverted: false,
- absolute: false
- }
-}
diff --git a/uni_modules/uview-ui/libs/config/props/button.js b/uni_modules/uview-ui/libs/config/props/button.js
deleted file mode 100644
index acd65fc..0000000
--- a/uni_modules/uview-ui/libs/config/props/button.js
+++ /dev/null
@@ -1,42 +0,0 @@
-/*
- * @Author : LQ
- * @Description :
- * @version : 1.0
- * @Date : 2021-08-20 16:44:21
- * @LastAuthor : LQ
- * @lastTime : 2021-08-20 16:51:27
- * @FilePath : /u-view2.0/uview-ui/libs/config/props/button.js
- */
-export default {
- // button组件
- button: {
- hairline: false,
- type: 'info',
- size: 'normal',
- shape: 'square',
- plain: false,
- disabled: false,
- loading: false,
- loadingText: '',
- loadingMode: 'spinner',
- loadingSize: 15,
- openType: '',
- formType: '',
- appParameter: '',
- hoverStopPropagation: true,
- lang: 'en',
- sessionFrom: '',
- sendMessageTitle: '',
- sendMessagePath: '',
- sendMessageImg: '',
- showMessageCard: false,
- dataName: '',
- throttleTime: 0,
- hoverStartTime: 0,
- hoverStayTime: 200,
- text: '',
- icon: '',
- iconColor: '',
- color: ''
- }
-}
diff --git a/uni_modules/uview-ui/libs/config/props/calendar.js b/uni_modules/uview-ui/libs/config/props/calendar.js
deleted file mode 100644
index bfd2bd6..0000000
--- a/uni_modules/uview-ui/libs/config/props/calendar.js
+++ /dev/null
@@ -1,42 +0,0 @@
-/*
- * @Author : LQ
- * @Description :
- * @version : 1.0
- * @Date : 2021-08-20 16:44:21
- * @LastAuthor : LQ
- * @lastTime : 2021-08-20 16:52:43
- * @FilePath : /u-view2.0/uview-ui/libs/config/props/calendar.js
- */
-export default {
- // calendar 组件
- calendar: {
- title: '日期选择',
- showTitle: true,
- showSubtitle: true,
- mode: 'single',
- startText: '开始',
- endText: '结束',
- customList: () => [],
- color: '#3c9cff',
- minDate: 0,
- maxDate: 0,
- defaultDate: null,
- maxCount: Number.MAX_SAFE_INTEGER, // Infinity
- rowHeight: 56,
- formatter: null,
- showLunar: false,
- showMark: true,
- confirmText: '确定',
- confirmDisabledText: '确定',
- show: false,
- closeOnClickOverlay: false,
- readonly: false,
- showConfirm: true,
- maxRange: Number.MAX_SAFE_INTEGER, // Infinity
- rangePrompt: '',
- showRangePrompt: true,
- allowSameDay: false,
- round: 0,
- monthNum: 3
- }
-}
diff --git a/uni_modules/uview-ui/libs/config/props/carKeyboard.js b/uni_modules/uview-ui/libs/config/props/carKeyboard.js
deleted file mode 100644
index af1baa0..0000000
--- a/uni_modules/uview-ui/libs/config/props/carKeyboard.js
+++ /dev/null
@@ -1,15 +0,0 @@
-/*
- * @Author : LQ
- * @Description :
- * @version : 1.0
- * @Date : 2021-08-20 16:44:21
- * @LastAuthor : LQ
- * @lastTime : 2021-08-20 16:53:20
- * @FilePath : /u-view2.0/uview-ui/libs/config/props/carKeyboard.js
- */
-export default {
- // 车牌号键盘
- carKeyboard: {
- random: false
- }
-}
diff --git a/uni_modules/uview-ui/libs/config/props/cell.js b/uni_modules/uview-ui/libs/config/props/cell.js
deleted file mode 100644
index 425ea3f..0000000
--- a/uni_modules/uview-ui/libs/config/props/cell.js
+++ /dev/null
@@ -1,35 +0,0 @@
-/*
- * @Author : LQ
- * @Description :
- * @version : 1.0
- * @Date : 2021-08-20 16:44:21
- * @LastAuthor : LQ
- * @lastTime : 2021-08-23 20:53:09
- * @FilePath : /u-view2.0/uview-ui/libs/config/props/cell.js
- */
-export default {
- // cell组件的props
- cell: {
- customClass: '',
- title: '',
- label: '',
- value: '',
- icon: '',
- disabled: false,
- border: true,
- center: false,
- url: '',
- linkType: 'navigateTo',
- clickable: false,
- isLink: false,
- required: false,
- arrowDirection: '',
- iconStyle: {},
- rightIconStyle: {},
- rightIcon: 'arrow-right',
- titleStyle: {},
- size: '',
- stop: true,
- name: ''
- }
-}
diff --git a/uni_modules/uview-ui/libs/config/props/cellGroup.js b/uni_modules/uview-ui/libs/config/props/cellGroup.js
deleted file mode 100644
index d48a9cd..0000000
--- a/uni_modules/uview-ui/libs/config/props/cellGroup.js
+++ /dev/null
@@ -1,17 +0,0 @@
-/*
- * @Author : LQ
- * @Description :
- * @version : 1.0
- * @Date : 2021-08-20 16:44:21
- * @LastAuthor : LQ
- * @lastTime : 2021-08-20 16:54:16
- * @FilePath : /u-view2.0/uview-ui/libs/config/props/cellGroup.js
- */
-export default {
- // cell-group组件的props
- cellGroup: {
- title: '',
- border: true,
- customStyle: {}
- }
-}
diff --git a/uni_modules/uview-ui/libs/config/props/checkbox.js b/uni_modules/uview-ui/libs/config/props/checkbox.js
deleted file mode 100644
index 2310901..0000000
--- a/uni_modules/uview-ui/libs/config/props/checkbox.js
+++ /dev/null
@@ -1,27 +0,0 @@
-/*
- * @Author : LQ
- * @Description :
- * @version : 1.0
- * @Date : 2021-08-20 16:44:21
- * @LastAuthor : LQ
- * @lastTime : 2021-08-23 21:06:59
- * @FilePath : /u-view2.0/uview-ui/libs/config/props/checkbox.js
- */
-export default {
- // checkbox组件
- checkbox: {
- name: '',
- shape: '',
- size: '',
- checkbox: false,
- disabled: '',
- activeColor: '',
- inactiveColor: '',
- iconSize: '',
- iconColor: '',
- label: '',
- labelSize: '',
- labelColor: '',
- labelDisabled: ''
- }
-}
diff --git a/uni_modules/uview-ui/libs/config/props/checkboxGroup.js b/uni_modules/uview-ui/libs/config/props/checkboxGroup.js
deleted file mode 100644
index 8798fa4..0000000
--- a/uni_modules/uview-ui/libs/config/props/checkboxGroup.js
+++ /dev/null
@@ -1,29 +0,0 @@
-/*
- * @Author : LQ
- * @Description :
- * @version : 1.0
- * @Date : 2021-08-20 16:44:21
- * @LastAuthor : LQ
- * @lastTime : 2021-08-20 16:54:47
- * @FilePath : /u-view2.0/uview-ui/libs/config/props/checkboxGroup.js
- */
-export default {
- // checkbox-group组件
- checkboxGroup: {
- name: '',
- value: () => [],
- shape: 'square',
- disabled: false,
- activeColor: '#2979ff',
- inactiveColor: '#c8c9cc',
- size: 18,
- placement: 'row',
- labelSize: 14,
- labelColor: '#303133',
- labelDisabled: false,
- iconColor: '#ffffff',
- iconSize: 12,
- iconPlacement: 'left',
- borderBottom: false
- }
-}
diff --git a/uni_modules/uview-ui/libs/config/props/circleProgress.js b/uni_modules/uview-ui/libs/config/props/circleProgress.js
deleted file mode 100644
index b3a9b43..0000000
--- a/uni_modules/uview-ui/libs/config/props/circleProgress.js
+++ /dev/null
@@ -1,15 +0,0 @@
-/*
- * @Author : LQ
- * @Description :
- * @version : 1.0
- * @Date : 2021-08-20 16:44:21
- * @LastAuthor : LQ
- * @lastTime : 2021-08-20 16:55:02
- * @FilePath : /u-view2.0/uview-ui/libs/config/props/circleProgress.js
- */
-export default {
- // circleProgress 组件
- circleProgress: {
- percentage: 30
- }
-}
diff --git a/uni_modules/uview-ui/libs/config/props/code.js b/uni_modules/uview-ui/libs/config/props/code.js
deleted file mode 100644
index 693417a..0000000
--- a/uni_modules/uview-ui/libs/config/props/code.js
+++ /dev/null
@@ -1,21 +0,0 @@
-/*
- * @Author : LQ
- * @Description :
- * @version : 1.0
- * @Date : 2021-08-20 16:44:21
- * @LastAuthor : LQ
- * @lastTime : 2021-08-20 16:55:27
- * @FilePath : /u-view2.0/uview-ui/libs/config/props/code.js
- */
-
-export default {
- // code 组件
- code: {
- seconds: 60,
- startText: '获取验证码',
- changeText: 'X秒重新获取',
- endText: '重新获取',
- keepRunning: false,
- uniqueKey: ''
- }
-}
diff --git a/uni_modules/uview-ui/libs/config/props/codeInput.js b/uni_modules/uview-ui/libs/config/props/codeInput.js
deleted file mode 100644
index cac9265..0000000
--- a/uni_modules/uview-ui/libs/config/props/codeInput.js
+++ /dev/null
@@ -1,29 +0,0 @@
-/*
- * @Author : LQ
- * @Description :
- * @version : 1.0
- * @Date : 2021-08-20 16:44:21
- * @LastAuthor : LQ
- * @lastTime : 2021-08-20 16:55:58
- * @FilePath : /u-view2.0/uview-ui/libs/config/props/codeInput.js
- */
-export default {
- // codeInput 组件
- codeInput: {
- adjustPosition: true,
- maxlength: 6,
- dot: false,
- mode: 'box',
- hairline: false,
- space: 10,
- value: '',
- focus: false,
- bold: false,
- color: '#606266',
- fontSize: 18,
- size: 35,
- disabledKeyboard: false,
- borderColor: '#c9cacc',
- disabledDot: true
- }
-}
diff --git a/uni_modules/uview-ui/libs/config/props/col.js b/uni_modules/uview-ui/libs/config/props/col.js
deleted file mode 100644
index 7621653..0000000
--- a/uni_modules/uview-ui/libs/config/props/col.js
+++ /dev/null
@@ -1,19 +0,0 @@
-/*
- * @Author : LQ
- * @Description :
- * @version : 1.0
- * @Date : 2021-08-20 16:44:21
- * @LastAuthor : LQ
- * @lastTime : 2021-08-20 16:56:12
- * @FilePath : /u-view2.0/uview-ui/libs/config/props/col.js
- */
-export default {
- // col 组件
- col: {
- span: 12,
- offset: 0,
- justify: 'start',
- align: 'stretch',
- textAlign: 'left'
- }
-}
diff --git a/uni_modules/uview-ui/libs/config/props/collapse.js b/uni_modules/uview-ui/libs/config/props/collapse.js
deleted file mode 100644
index c2b9fdd..0000000
--- a/uni_modules/uview-ui/libs/config/props/collapse.js
+++ /dev/null
@@ -1,17 +0,0 @@
-/*
- * @Author : LQ
- * @Description :
- * @version : 1.0
- * @Date : 2021-08-20 16:44:21
- * @LastAuthor : LQ
- * @lastTime : 2021-08-20 16:56:30
- * @FilePath : /u-view2.0/uview-ui/libs/config/props/collapse.js
- */
-export default {
- // collapse 组件
- collapse: {
- value: null,
- accordion: false,
- border: true
- }
-}
diff --git a/uni_modules/uview-ui/libs/config/props/collapseItem.js b/uni_modules/uview-ui/libs/config/props/collapseItem.js
deleted file mode 100644
index 74ce682..0000000
--- a/uni_modules/uview-ui/libs/config/props/collapseItem.js
+++ /dev/null
@@ -1,25 +0,0 @@
-/*
- * @Author : LQ
- * @Description :
- * @version : 1.0
- * @Date : 2021-08-20 16:44:21
- * @LastAuthor : LQ
- * @lastTime : 2021-08-20 16:56:42
- * @FilePath : /u-view2.0/uview-ui/libs/config/props/collapseItem.js
- */
-export default {
- // collapseItem 组件
- collapseItem: {
- title: '',
- value: '',
- label: '',
- disabled: false,
- isLink: true,
- clickable: true,
- border: true,
- align: 'left',
- name: '',
- icon: '',
- duration: 300
- }
-}
diff --git a/uni_modules/uview-ui/libs/config/props/columnNotice.js b/uni_modules/uview-ui/libs/config/props/columnNotice.js
deleted file mode 100644
index 147c0aa..0000000
--- a/uni_modules/uview-ui/libs/config/props/columnNotice.js
+++ /dev/null
@@ -1,24 +0,0 @@
-/*
- * @Author : LQ
- * @Description :
- * @version : 1.0
- * @Date : 2021-08-20 16:44:21
- * @LastAuthor : LQ
- * @lastTime : 2021-08-20 16:57:16
- * @FilePath : /u-view2.0/uview-ui/libs/config/props/columnNotice.js
- */
-export default {
- // columnNotice 组件
- columnNotice: {
- text: '',
- icon: 'volume',
- mode: '',
- color: '#f9ae3d',
- bgColor: '#fdf6ec',
- fontSize: 14,
- speed: 80,
- step: false,
- duration: 1500,
- disableTouch: true
- }
-}
diff --git a/uni_modules/uview-ui/libs/config/props/countDown.js b/uni_modules/uview-ui/libs/config/props/countDown.js
deleted file mode 100644
index 81e33b1..0000000
--- a/uni_modules/uview-ui/libs/config/props/countDown.js
+++ /dev/null
@@ -1,18 +0,0 @@
-/*
- * @Author : LQ
- * @Description :
- * @version : 1.0
- * @Date : 2021-08-20 16:44:21
- * @LastAuthor : LQ
- * @lastTime : 2021-08-20 17:11:29
- * @FilePath : /u-view2.0/uview-ui/libs/config/props/countDown.js
- */
-export default {
- // u-count-down 计时器组件
- countDown: {
- time: 0,
- format: 'HH:mm:ss',
- autoStart: true,
- millisecond: false
- }
-}
diff --git a/uni_modules/uview-ui/libs/config/props/countTo.js b/uni_modules/uview-ui/libs/config/props/countTo.js
deleted file mode 100644
index a536cde..0000000
--- a/uni_modules/uview-ui/libs/config/props/countTo.js
+++ /dev/null
@@ -1,25 +0,0 @@
-/*
- * @Author : LQ
- * @Description :
- * @version : 1.0
- * @Date : 2021-08-20 16:44:21
- * @LastAuthor : LQ
- * @lastTime : 2021-08-20 16:57:32
- * @FilePath : /u-view2.0/uview-ui/libs/config/props/countTo.js
- */
-export default {
- // countTo 组件
- countTo: {
- startVal: 0,
- endVal: 0,
- duration: 2000,
- autoplay: true,
- decimals: 0,
- useEasing: true,
- decimal: '.',
- color: '#606266',
- fontSize: 22,
- bold: false,
- separator: ''
- }
-}
diff --git a/uni_modules/uview-ui/libs/config/props/datetimePicker.js b/uni_modules/uview-ui/libs/config/props/datetimePicker.js
deleted file mode 100644
index 4f90966..0000000
--- a/uni_modules/uview-ui/libs/config/props/datetimePicker.js
+++ /dev/null
@@ -1,36 +0,0 @@
-/*
- * @Author : LQ
- * @Description :
- * @version : 1.0
- * @Date : 2021-08-20 16:44:21
- * @LastAuthor : LQ
- * @lastTime : 2021-08-20 16:57:48
- * @FilePath : /u-view2.0/uview-ui/libs/config/props/datetimePicker.js
- */
-export default {
- // datetimePicker 组件
- datetimePicker: {
- show: false,
- showToolbar: true,
- value: '',
- title: '',
- mode: 'datetime',
- maxDate: new Date(new Date().getFullYear() + 10, 0, 1).getTime(),
- minDate: new Date(new Date().getFullYear() - 10, 0, 1).getTime(),
- minHour: 0,
- maxHour: 23,
- minMinute: 0,
- maxMinute: 59,
- filter: null,
- formatter: null,
- loading: false,
- itemHeight: 44,
- cancelText: '取消',
- confirmText: '确认',
- cancelColor: '#909193',
- confirmColor: '#3c9cff',
- visibleItemCount: 5,
- closeOnClickOverlay: false,
- defaultIndex: () => []
- }
-}
diff --git a/uni_modules/uview-ui/libs/config/props/divider.js b/uni_modules/uview-ui/libs/config/props/divider.js
deleted file mode 100644
index 55a8ce4..0000000
--- a/uni_modules/uview-ui/libs/config/props/divider.js
+++ /dev/null
@@ -1,23 +0,0 @@
-/*
- * @Author : LQ
- * @Description :
- * @version : 1.0
- * @Date : 2021-08-20 16:44:21
- * @LastAuthor : LQ
- * @lastTime : 2021-08-20 16:58:03
- * @FilePath : /u-view2.0/uview-ui/libs/config/props/divider.js
- */
-export default {
- // divider组件
- divider: {
- dashed: false,
- hairline: true,
- dot: false,
- textPosition: 'center',
- text: '',
- textSize: 14,
- textColor: '#909399',
- lineColor: '#dcdfe6'
- }
-
-}
diff --git a/uni_modules/uview-ui/libs/config/props/empty.js b/uni_modules/uview-ui/libs/config/props/empty.js
deleted file mode 100644
index fe20445..0000000
--- a/uni_modules/uview-ui/libs/config/props/empty.js
+++ /dev/null
@@ -1,26 +0,0 @@
-/*
- * @Author : LQ
- * @Description :
- * @version : 1.0
- * @Date : 2021-08-20 16:44:21
- * @LastAuthor : LQ
- * @lastTime : 2021-08-20 17:03:27
- * @FilePath : /u-view2.0/uview-ui/libs/config/props/empty.js
- */
-export default {
- // empty组件
- empty: {
- icon: '',
- text: '',
- textColor: '#c0c4cc',
- textSize: 14,
- iconColor: '#c0c4cc',
- iconSize: 90,
- mode: 'data',
- width: 160,
- height: 160,
- show: true,
- marginTop: 0
- }
-
-}
diff --git a/uni_modules/uview-ui/libs/config/props/form.js b/uni_modules/uview-ui/libs/config/props/form.js
deleted file mode 100644
index 41b122e..0000000
--- a/uni_modules/uview-ui/libs/config/props/form.js
+++ /dev/null
@@ -1,22 +0,0 @@
-/*
- * @Author : LQ
- * @Description :
- * @version : 1.0
- * @Date : 2021-08-20 16:44:21
- * @LastAuthor : LQ
- * @lastTime : 2021-08-20 17:03:49
- * @FilePath : /u-view2.0/uview-ui/libs/config/props/form.js
- */
-export default {
- // form 组件
- form: {
- model: () => ({}),
- rules: () => ({}),
- errorType: 'message',
- borderBottom: true,
- labelPosition: 'left',
- labelWidth: 45,
- labelAlign: 'left',
- labelStyle: () => ({})
- }
-}
diff --git a/uni_modules/uview-ui/libs/config/props/formItem.js b/uni_modules/uview-ui/libs/config/props/formItem.js
deleted file mode 100644
index 4b7c90a..0000000
--- a/uni_modules/uview-ui/libs/config/props/formItem.js
+++ /dev/null
@@ -1,23 +0,0 @@
-/*
- * @Author : LQ
- * @Description :
- * @version : 1.0
- * @Date : 2021-08-20 16:44:21
- * @LastAuthor : LQ
- * @lastTime : 2021-08-20 17:04:32
- * @FilePath : /u-view2.0/uview-ui/libs/config/props/formItem.js
- */
-export default {
- // formItem 组件
- formItem: {
- label: '',
- prop: '',
- borderBottom: '',
- labelPosition: '',
- labelWidth: '',
- rightIcon: '',
- leftIcon: '',
- required: false,
- leftIconStyle: '',
- }
-}
diff --git a/uni_modules/uview-ui/libs/config/props/gap.js b/uni_modules/uview-ui/libs/config/props/gap.js
deleted file mode 100644
index 60a21af..0000000
--- a/uni_modules/uview-ui/libs/config/props/gap.js
+++ /dev/null
@@ -1,19 +0,0 @@
-/*
- * @Author : LQ
- * @Description :
- * @version : 1.0
- * @Date : 2021-08-20 16:44:21
- * @LastAuthor : LQ
- * @lastTime : 2021-08-20 17:05:25
- * @FilePath : /u-view2.0/uview-ui/libs/config/props/gap.js
- */
-export default {
- // gap组件
- gap: {
- bgColor: 'transparent',
- height: 20,
- marginTop: 0,
- marginBottom: 0,
- customStyle: {}
- }
-}
diff --git a/uni_modules/uview-ui/libs/config/props/grid.js b/uni_modules/uview-ui/libs/config/props/grid.js
deleted file mode 100644
index 60abeb7..0000000
--- a/uni_modules/uview-ui/libs/config/props/grid.js
+++ /dev/null
@@ -1,17 +0,0 @@
-/*
- * @Author : LQ
- * @Description :
- * @version : 1.0
- * @Date : 2021-08-20 16:44:21
- * @LastAuthor : LQ
- * @lastTime : 2021-08-20 17:05:57
- * @FilePath : /u-view2.0/uview-ui/libs/config/props/grid.js
- */
-export default {
- // grid组件
- grid: {
- col: 3,
- border: false,
- align: 'left'
- }
-}
diff --git a/uni_modules/uview-ui/libs/config/props/gridItem.js b/uni_modules/uview-ui/libs/config/props/gridItem.js
deleted file mode 100644
index 1b747f4..0000000
--- a/uni_modules/uview-ui/libs/config/props/gridItem.js
+++ /dev/null
@@ -1,16 +0,0 @@
-/*
- * @Author : LQ
- * @Description :
- * @version : 1.0
- * @Date : 2021-08-20 16:44:21
- * @LastAuthor : LQ
- * @lastTime : 2021-08-20 17:06:13
- * @FilePath : /u-view2.0/uview-ui/libs/config/props/gridItem.js
- */
-export default {
- // grid-item组件
- gridItem: {
- name: null,
- bgColor: 'transparent'
- }
-}
diff --git a/uni_modules/uview-ui/libs/config/props/icon.js b/uni_modules/uview-ui/libs/config/props/icon.js
deleted file mode 100644
index 1d81d2d..0000000
--- a/uni_modules/uview-ui/libs/config/props/icon.js
+++ /dev/null
@@ -1,36 +0,0 @@
-/*
- * @Author : LQ
- * @Description :
- * @version : 1.0
- * @Date : 2021-08-20 16:44:21
- * @LastAuthor : LQ
- * @lastTime : 2021-08-20 18:00:14
- * @FilePath : /u-view2.0/uview-ui/libs/config/props/icon.js
- */
-import config from '../config'
-
-const {
- color
-} = config
-export default {
- // icon组件
- icon: {
- name: '',
- color: color['u-content-color'],
- size: '16px',
- bold: false,
- index: '',
- hoverClass: '',
- customPrefix: 'uicon',
- label: '',
- labelPos: 'right',
- labelSize: '15px',
- labelColor: color['u-content-color'],
- space: '3px',
- imgMode: '',
- width: '',
- height: '',
- top: 0,
- stop: false
- }
-}
diff --git a/uni_modules/uview-ui/libs/config/props/image.js b/uni_modules/uview-ui/libs/config/props/image.js
deleted file mode 100644
index 2552db6..0000000
--- a/uni_modules/uview-ui/libs/config/props/image.js
+++ /dev/null
@@ -1,30 +0,0 @@
-/*
- * @Author : LQ
- * @Description :
- * @version : 1.0
- * @Date : 2021-08-20 16:44:21
- * @LastAuthor : LQ
- * @lastTime : 2021-08-20 17:01:51
- * @FilePath : /u-view2.0/uview-ui/libs/config/props/image.js
- */
-export default {
- // image组件
- image: {
- src: '',
- mode: 'aspectFill',
- width: '300',
- height: '225',
- shape: 'square',
- radius: 0,
- lazyLoad: true,
- showMenuByLongpress: true,
- loadingIcon: 'photo',
- errorIcon: 'error-circle',
- showLoading: true,
- showError: true,
- fade: true,
- webp: false,
- duration: 500,
- bgColor: '#f3f4f6'
- }
-}
diff --git a/uni_modules/uview-ui/libs/config/props/indexAnchor.js b/uni_modules/uview-ui/libs/config/props/indexAnchor.js
deleted file mode 100644
index bb20d46..0000000
--- a/uni_modules/uview-ui/libs/config/props/indexAnchor.js
+++ /dev/null
@@ -1,19 +0,0 @@
-/*
- * @Author : LQ
- * @Description :
- * @version : 1.0
- * @Date : 2021-08-20 16:44:21
- * @LastAuthor : LQ
- * @lastTime : 2021-08-20 17:13:15
- * @FilePath : /u-view2.0/uview-ui/libs/config/props/indexAnchor.js
- */
-export default {
- // indexAnchor 组件
- indexAnchor: {
- text: '',
- color: '#606266',
- size: 14,
- bgColor: '#dedede',
- height: 32
- }
-}
diff --git a/uni_modules/uview-ui/libs/config/props/indexList.js b/uni_modules/uview-ui/libs/config/props/indexList.js
deleted file mode 100644
index dc6ce94..0000000
--- a/uni_modules/uview-ui/libs/config/props/indexList.js
+++ /dev/null
@@ -1,19 +0,0 @@
-/*
- * @Author : LQ
- * @Description :
- * @version : 1.0
- * @Date : 2021-08-20 16:44:21
- * @LastAuthor : LQ
- * @lastTime : 2021-08-20 17:13:35
- * @FilePath : /u-view2.0/uview-ui/libs/config/props/indexList.js
- */
-export default {
- // indexList 组件
- indexList: {
- inactiveColor: '#606266',
- activeColor: '#5677fc',
- indexList: () => [],
- sticky: true,
- customNavHeight: 0
- }
-}
diff --git a/uni_modules/uview-ui/libs/config/props/input.js b/uni_modules/uview-ui/libs/config/props/input.js
deleted file mode 100644
index 4f0edc6..0000000
--- a/uni_modules/uview-ui/libs/config/props/input.js
+++ /dev/null
@@ -1,48 +0,0 @@
-/*
- * @Author : LQ
- * @Description :
- * @version : 1.0
- * @Date : 2021-08-20 16:44:21
- * @LastAuthor : LQ
- * @lastTime : 2021-08-20 17:13:55
- * @FilePath : /u-view2.0/uview-ui/libs/config/props/input.js
- */
-export default {
- // index 组件
- input: {
- value: '',
- type: 'text',
- fixed: false,
- disabled: false,
- disabledColor: '#f5f7fa',
- clearable: false,
- password: false,
- maxlength: -1,
- placeholder: null,
- placeholderClass: 'input-placeholder',
- placeholderStyle: 'color: #c0c4cc',
- showWordLimit: false,
- confirmType: 'done',
- confirmHold: false,
- holdKeyboard: false,
- focus: false,
- autoBlur: false,
- disableDefaultPadding: false,
- cursor: -1,
- cursorSpacing: 30,
- selectionStart: -1,
- selectionEnd: -1,
- adjustPosition: true,
- inputAlign: 'left',
- fontSize: '15px',
- color: '#303133',
- prefixIcon: '',
- prefixIconStyle: '',
- suffixIcon: '',
- suffixIconStyle: '',
- border: 'surround',
- readonly: false,
- shape: 'square',
- formatter: null
- }
-}
diff --git a/uni_modules/uview-ui/libs/config/props/keyboard.js b/uni_modules/uview-ui/libs/config/props/keyboard.js
deleted file mode 100644
index 57182bd..0000000
--- a/uni_modules/uview-ui/libs/config/props/keyboard.js
+++ /dev/null
@@ -1,30 +0,0 @@
-/*
- * @Author : LQ
- * @Description :
- * @version : 1.0
- * @Date : 2021-08-20 16:44:21
- * @LastAuthor : LQ
- * @lastTime : 2021-08-20 17:07:49
- * @FilePath : /u-view2.0/uview-ui/libs/config/props/keyboard.js
- */
-export default {
- // 键盘组件
- keyboard: {
- mode: 'number',
- dotDisabled: false,
- tooltip: true,
- showTips: true,
- tips: '',
- showCancel: true,
- showConfirm: true,
- random: false,
- safeAreaInsetBottom: true,
- closeOnClickOverlay: true,
- show: false,
- overlay: true,
- zIndex: 10075,
- cancelText: '取消',
- confirmText: '确定',
- autoChange: false
- }
-}
diff --git a/uni_modules/uview-ui/libs/config/props/line.js b/uni_modules/uview-ui/libs/config/props/line.js
deleted file mode 100644
index 2c87af2..0000000
--- a/uni_modules/uview-ui/libs/config/props/line.js
+++ /dev/null
@@ -1,20 +0,0 @@
-/*
- * @Author : LQ
- * @Description :
- * @version : 1.0
- * @Date : 2021-08-20 16:44:21
- * @LastAuthor : LQ
- * @lastTime : 2021-08-20 17:04:49
- * @FilePath : /u-view2.0/uview-ui/libs/config/props/line.js
- */
-export default {
- // line组件
- line: {
- color: '#d6d7d9',
- length: '100%',
- direction: 'row',
- hairline: true,
- margin: 0,
- dashed: false
- }
-}
diff --git a/uni_modules/uview-ui/libs/config/props/lineProgress.js b/uni_modules/uview-ui/libs/config/props/lineProgress.js
deleted file mode 100644
index cdfcb0e..0000000
--- a/uni_modules/uview-ui/libs/config/props/lineProgress.js
+++ /dev/null
@@ -1,19 +0,0 @@
-/*
- * @Author : LQ
- * @Description :
- * @version : 1.0
- * @Date : 2021-08-20 16:44:21
- * @LastAuthor : LQ
- * @lastTime : 2021-08-20 17:14:11
- * @FilePath : /u-view2.0/uview-ui/libs/config/props/lineProgress.js
- */
-export default {
- // lineProgress 组件
- lineProgress: {
- activeColor: '#19be6b',
- inactiveColor: '#ececec',
- percentage: 0,
- showText: true,
- height: 12
- }
-}
diff --git a/uni_modules/uview-ui/libs/config/props/link.js b/uni_modules/uview-ui/libs/config/props/link.js
deleted file mode 100644
index 6c4c883..0000000
--- a/uni_modules/uview-ui/libs/config/props/link.js
+++ /dev/null
@@ -1,26 +0,0 @@
-/*
- * @Author : LQ
- * @Description :
- * @version : 1.0
- * @Date : 2021-08-20 16:44:21
- * @LastAuthor : LQ
- * @lastTime : 2021-08-20 17:45:36
- * @FilePath : /u-view2.0/uview-ui/libs/config/props/link.js
- */
-import config from '../config'
-
-const {
- color
-} = config
-export default {
- // link超链接组件props参数
- link: {
- color: color['u-primary'],
- fontSize: 15,
- underLine: false,
- href: '',
- mpTips: '链接已复制,请在浏览器打开',
- lineColor: '',
- text: ''
- }
-}
diff --git a/uni_modules/uview-ui/libs/config/props/list.js b/uni_modules/uview-ui/libs/config/props/list.js
deleted file mode 100644
index a830c32..0000000
--- a/uni_modules/uview-ui/libs/config/props/list.js
+++ /dev/null
@@ -1,28 +0,0 @@
-/*
- * @Author : LQ
- * @Description :
- * @version : 1.0
- * @Date : 2021-08-20 16:44:21
- * @LastAuthor : LQ
- * @lastTime : 2021-08-20 17:14:53
- * @FilePath : /u-view2.0/uview-ui/libs/config/props/list.js
- */
-export default {
- // list 组件
- list: {
- showScrollbar: false,
- lowerThreshold: 50,
- upperThreshold: 0,
- scrollTop: 0,
- offsetAccuracy: 10,
- enableFlex: false,
- pagingEnabled: false,
- scrollable: true,
- scrollIntoView: '',
- scrollWithAnimation: false,
- enableBackToTop: false,
- height: 0,
- width: 0,
- preLoadScreen: 1
- }
-}
diff --git a/uni_modules/uview-ui/libs/config/props/listItem.js b/uni_modules/uview-ui/libs/config/props/listItem.js
deleted file mode 100644
index 7fe2166..0000000
--- a/uni_modules/uview-ui/libs/config/props/listItem.js
+++ /dev/null
@@ -1,15 +0,0 @@
-/*
- * @Author : LQ
- * @Description :
- * @version : 1.0
- * @Date : 2021-08-20 16:44:21
- * @LastAuthor : LQ
- * @lastTime : 2021-08-20 17:15:40
- * @FilePath : /u-view2.0/uview-ui/libs/config/props/listItem.js
- */
-export default {
- // listItem 组件
- listItem: {
- anchor: ''
- }
-}
diff --git a/uni_modules/uview-ui/libs/config/props/loadingIcon.js b/uni_modules/uview-ui/libs/config/props/loadingIcon.js
deleted file mode 100644
index f4739c4..0000000
--- a/uni_modules/uview-ui/libs/config/props/loadingIcon.js
+++ /dev/null
@@ -1,30 +0,0 @@
-/*
- * @Author : LQ
- * @Description :
- * @version : 1.0
- * @Date : 2021-08-20 16:44:21
- * @LastAuthor : LQ
- * @lastTime : 2021-08-20 17:45:47
- * @FilePath : /u-view2.0/uview-ui/libs/config/props/loadingIcon.js
- */
-import config from '../config'
-
-const {
- color
-} = config
-export default {
- // loading-icon加载中图标组件
- loadingIcon: {
- show: true,
- color: color['u-tips-color'],
- textColor: color['u-tips-color'],
- vertical: false,
- mode: 'spinner',
- size: 24,
- textSize: 15,
- text: '',
- timingFunction: 'ease-in-out',
- duration: 1200,
- inactiveColor: ''
- }
-}
diff --git a/uni_modules/uview-ui/libs/config/props/loadingPage.js b/uni_modules/uview-ui/libs/config/props/loadingPage.js
deleted file mode 100644
index dc53109..0000000
--- a/uni_modules/uview-ui/libs/config/props/loadingPage.js
+++ /dev/null
@@ -1,23 +0,0 @@
-/*
- * @Author : LQ
- * @Description :
- * @version : 1.0
- * @Date : 2021-08-20 16:44:21
- * @LastAuthor : LQ
- * @lastTime : 2021-08-20 17:00:23
- * @FilePath : /u-view2.0/uview-ui/libs/config/props/loadingPage.js
- */
-export default {
- // loading-page组件
- loadingPage: {
- loadingText: '正在加载',
- image: '',
- loadingMode: 'circle',
- loading: false,
- bgColor: '#ffffff',
- color: '#C8C8C8',
- fontSize: 19,
- iconSize: 28,
- loadingColor: '#C8C8C8'
- }
-}
diff --git a/uni_modules/uview-ui/libs/config/props/loadmore.js b/uni_modules/uview-ui/libs/config/props/loadmore.js
deleted file mode 100644
index 67c1160..0000000
--- a/uni_modules/uview-ui/libs/config/props/loadmore.js
+++ /dev/null
@@ -1,32 +0,0 @@
-/*
- * @Author : LQ
- * @Description :
- * @version : 1.0
- * @Date : 2021-08-20 16:44:21
- * @LastAuthor : LQ
- * @lastTime : 2021-08-20 17:15:26
- * @FilePath : /u-view2.0/uview-ui/libs/config/props/loadmore.js
- */
-export default {
- // loadmore 组件
- loadmore: {
- status: 'loadmore',
- bgColor: 'transparent',
- icon: true,
- fontSize: 14,
- iconSize: 17,
- color: '#606266',
- loadingIcon: 'spinner',
- loadmoreText: '加载更多',
- loadingText: '正在加载...',
- nomoreText: '没有更多了',
- isDot: false,
- iconColor: '#b7b7b7',
- marginTop: 10,
- marginBottom: 10,
- height: 'auto',
- line: false,
- lineColor: '#E6E8EB',
- dashed: false,
- }
-}
diff --git a/uni_modules/uview-ui/libs/config/props/modal.js b/uni_modules/uview-ui/libs/config/props/modal.js
deleted file mode 100644
index a6db667..0000000
--- a/uni_modules/uview-ui/libs/config/props/modal.js
+++ /dev/null
@@ -1,31 +0,0 @@
-/*
- * @Author : LQ
- * @Description :
- * @version : 1.0
- * @Date : 2021-08-20 16:44:21
- * @LastAuthor : LQ
- * @lastTime : 2021-08-20 17:15:59
- * @FilePath : /u-view2.0/uview-ui/libs/config/props/modal.js
- */
-export default {
- // modal 组件
- modal: {
- show: false,
- title: '',
- content: '',
- confirmText: '确认',
- cancelText: '取消',
- showConfirmButton: true,
- showCancelButton: false,
- confirmColor: '#2979ff',
- cancelColor: '#606266',
- buttonReverse: false,
- zoom: true,
- asyncClose: false,
- closeOnClickOverlay: false,
- negativeTop: 0,
- width: '650rpx',
- confirmButtonShape: '',
- duration:400,
- }
-}
diff --git a/uni_modules/uview-ui/libs/config/props/navbar.js b/uni_modules/uview-ui/libs/config/props/navbar.js
deleted file mode 100644
index 614a99d..0000000
--- a/uni_modules/uview-ui/libs/config/props/navbar.js
+++ /dev/null
@@ -1,32 +0,0 @@
-/*
- * @Author : LQ
- * @Description :
- * @version : 1.0
- * @Date : 2021-08-20 16:44:21
- * @LastAuthor : LQ
- * @lastTime : 2021-08-20 17:16:18
- * @FilePath : /u-view2.0/uview-ui/libs/config/props/navbar.js
- */
-import color from '../color'
-export default {
- // navbar 组件
- navbar: {
- safeAreaInsetTop: true,
- placeholder: false,
- fixed: true,
- border: false,
- leftIcon: 'arrow-left',
- leftText: '',
- rightText: '',
- rightIcon: '',
- title: '',
- bgColor: '#ffffff',
- titleWidth: '400rpx',
- height: '44px',
- leftIconSize: 20,
- leftIconColor: color.mainColor,
- autoBack: false,
- titleStyle: ''
- }
-
-}
diff --git a/uni_modules/uview-ui/libs/config/props/noNetwork.js b/uni_modules/uview-ui/libs/config/props/noNetwork.js
deleted file mode 100644
index 74dba1b..0000000
--- a/uni_modules/uview-ui/libs/config/props/noNetwork.js
+++ /dev/null
@@ -1,18 +0,0 @@
-/*
- * @Author : LQ
- * @Description :
- * @version : 1.0
- * @Date : 2021-08-20 16:44:21
- * @LastAuthor : LQ
- * @lastTime : 2021-08-20 17:16:39
- * @FilePath : /u-view2.0/uview-ui/libs/config/props/noNetwork.js
- */
-export default {
- // noNetwork
- noNetwork: {
- tips: '哎呀,网络信号丢失',
- zIndex: '',
- image: 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAASwAAAEsCAYAAAB5fY51AAAAAXNSR0IArs4c6QAAAERlWElmTU0AKgAAAAgAAYdpAAQAAAABAAAAGgAAAAAAA6ABAAMAAAABAAEAAKACAAQAAAABAAABLKADAAQAAAABAAABLAAAAADYYILnAABAAElEQVR4Ae29CZhkV3kefNeq6m2W7tn3nl0aCbHIAgmQPGB+sLCNzSID9g9PYrAf57d/+4+DiW0cy8QBJ06c2In/PLFDHJ78+MGCGNsYgyxwIwktwEijAc1ohtmnZ+2Z7p5eq6vu9r/vuXWrq25VdVV1V3dXVX9Hmj73nv285963vvOd75yraeIEAUFAEBAEBAFBQBAQBAQBQUAQEAQEAUFAEBAEBAFBQBAQBAQBQUAQEAQEAUFAEBAEBAFBQBAQBAQBQUAQEAQEAUFAEBAEBAFBQBAQBAQBQUAQEAQEAUFAEBAEBAFBQBAQBAQBQUAQEAQEAUFAEBAEBAFBQBAQBAQBQUAQEAQEAUFAEBAEBAFBQBAQBAQBQUAQEAQEAUFAEBAEBAFBQBAQBAQBQUAQEAQEAUFAEBAEBAFBQBAQBAQBQUAQEAQEAUFAEBAEBAFBQBAQBAQBQUAQEAQEAUFAEBAEBAFBQBAQBAQBQUAQEAQEAUFAEBAEBAFBQBAQBAQBQUAQEAQEAUFAEBAEBAFBQBAQBAQBQUAQEAQEAUFAEBAEBAFBQBAQBAQBQUAQEAQEAUFAEBAEBAFBQBAQBAQBQUAQEAQEAUFAEBAEBAFBQBAQBAQBQUAQEAQEAUFAEBAEBAFBQBAQBAQBQUAQaD8E9PbrkvRopSMwMBBYRs+5O/yJS68cPnzYXel4tFP/jXbqjPRFEAiCQNe6Bw/6gdFn9Oy9Q90LLG2DgBBW2wyldIQIPPPCte2a5q3jtR+4ff/4wuBuXotrDwSEsNpjHKUXQODppy+udYJMEUEZgbd94DvnNwlA7YGAEFZ7jOOK78Xp06eTTkq7sxwQhmXuf/754VXl4iSstRAQwmqt8ZLWlkHg0UcD49qYfUjXfLtMtOZ7npExJu4iqZWLl7DWQUAIq3XGSlpaAYHD77q8xwuCOSUoXw8Sl0eMux977DGzQjES3AIICGG1wCBJEysj8PXnz230XXdr5RQFMYbRvWnv6w8UhMhliyGwYghr4Pjg3oEXL34ey9zyC9tiD2ml5h47dr1LN7S6CMjz/A3PvHh1Z6UyJby5EVgRhKUe7Kz/JU0LfvrJo5f+Y3MPibSuFgQGBgasYSd9l6GDsup0WS/T/9RTp9fXmU2SNwECdQ92E7S57iaMeJnPQLK6ixkDLfjlb7546RfrLkQyNBcC3dsP6oHWMd9G+V3JgwPHh7rnm1/yLQ8CbU9Y33zp0j+nZFUMb/DHmB7+SHGY3LUKAk8cObtD00xlHDrfNge+Z2ozU3c9dvx4Yr5lSL6lR6CtCWvg6OAPw9z538ZhhZRl6XrwhW8du1KX/iNejtwvPQIDR8+vSRqJ/obU7GupjdNdh2gW0ZDypJBFR6BtB2rg2OVtuub9JcmpHIpBoK1xfffLzx4f7C0XL2HNiYDp6bs9z23Ypn1fC1Y/9PCFDc3ZW2lVHIG2JKzTp4Ok7nv/G6Q054MIvda+bNb74pEgKGtwGAdL7pcfAa8vOKEZ2kyjWuLr7uDh+/qvN6o8KWdxEWhLwroyeek/g4zuqwU6kNrhyZcu/UktaSXN8iNwuL9/RuvVXtJ9PbPQ1vhmcP6t9+47u9ByJP/SIdB2hDVw9MJHQFYfrQdCph84evFX68kjaZcPAZJWwjMXRFpJ2zr91tfuvrh8vZCa54NA2xGWrunvmg8QWCJ/N4ir7fCYDxatkOeBB7an501agXbygVdvv9IK/ZQ2FiPQdi9osGbH+zRNf7y4m9Xu9Me7N9nv0HXdr5ZS4psHgXpJC9P/wDRTx0Vn1TxjWG9LGrbaUm/Fi5meSvcrkxf/Cg/ow9XqAUk91v3qHT97r6471dJKfHMi8Oyzgx1Z03t1YAQVT2MwgsC3u+yXHzi0faQ5eyGtqgWBtpOw2Ol9+/TM+sTOn8L08MtzgQCy+tOHXr3jA0JWc6HU/HF5Scssr4jXcYqfP6V/T8iq+ceyWgvbUsKKOn38eJAYyl56TAuCEr2WYei//9Crd/5GlFb81kdASVopSFrerKRlaoZj9HR+700H10+0fg+lB21NWBxe2lhNHsUpDZr27mi4dV379R9+za4/iO7Fbx8ECknLCPTsTDJ17O33bJpqnx6u7J60PWFxeAcCbMV56dJfQKf1bkMLfuGh1+76zMoe9vbuPUnLsb2DtmOe5HSxvXsrvWtLBEhaTx29+Ma27Jx0ShAQBAQBQUAQEAQEAUFAEBAEBAFBQBAQBAQBQUAQEAQEAUFAEBAEBAFBQBAQBAQBQUAQaEsEVoQdVluO3BJ06ptHL34b1XRjp4Ch6Rq24+kmjG4Nwwg+9uA9u/73EjRBqhAEihAoe3xwUQq5WTYEzp0b3ZnV/Ncf6O/9AvY9wlh/6dy3X7ncN512Zw9BVLXjuAP4np44vnQtkZoEgVkEhLBmsWiKqwsXpjbPBOn3gRfenwnc+7GBe+zsjclvonFDS9nA9Iy/u3x9+vAP3735VPk4CRUEFhcBIazFxbfm0k9fHD7k+v4nQFaPQIrx8Gmyx/GJ0J/t7ez7mw0b9MmaC2pQQgh0/ZSm4g5TwueWWtqLt0HuVy4CQljLPPYnB0depTn+b3t+8B4t0AdBUv93h2H9xc6da0aXs2m+r1WQsLRnl7NdUvfKRkAIa5nG//r1oGtsZvjTgev/kqYHF/TA+AXoqv4npJemOEiQU1Eo2l+G0movBK1UBBPU7s9E1+ILAkuNgKwSLjXiqO/khVtvARH8dxDBRkMzPrF/V+9/BlG5y9CUqlXinHv9mRPXtvuus88L9H3JPv2zD2yXExCqAicJBIFWRwAvv3Xqwq0/Pnn+lv/K+ZvfPH3p9p5W75O0fxaBp793ce3AwIDMWmYhafiVgNtwSMsXeHp4eNXJC8Nf0PAdRCiuf/XgrnWUqsqotcvnl9DmRkCdweX4b9N7+m/ih+mbMraLM14yJVwcXItKpT1VRve+ArC3Qqn+3gM7132jKEGZm6tXg86J7OhDfuA/iHwPUpfUZSfu2L59tXxEoQxeyxkEgjKeOnLxHb4RqC+NY5H3+2953d4XlrNN7Vq3ENYij+yZwbG9jpt9GkBPQ5H9zgP9607OVeWp87cOQtn9zwJf+xDMNFfj+jryPqXpxj8c2Nn7P+SXey70lidu4IXzb0DNB4tr9751+HV7zxSHyd1CERDCWiiCc+QPjUCnsaqmZ62O5IN7N/VUNP48ee7mAZDTf4Tt049iUG4Guv4ZfNLos9UIbo7qJWoJEHjy+bP7fNsoOcnW0A0/aacef8PdG28sQTNWTBVCWIs01OfPj66BpfqTmq732UnjgT1bei+Vq4pTv7HM8Ceg2/o1qLQug7T+FaaM3IqTLZdewpoHgYEjV9fphvOj+OShWa5V+CxvZtpzv/LwG/aNl4uXsPoRwI+4uEYjAJ2GmdG8L0FK2mYa+tsrkdXZy+P7x2ZuHdW14P+BLdank9q6Qwd3rf+ckFWjR6Tx5Q2cP58K9Jm3VCIr1ogt48lO237r3//96YofeG18y9q7RFklXITxPXV+5DchKb3ZDMy37Nu5tuxG4R9cHH6b42QfAzlds+3EPXu2rfrBIjRFilwkBIIR7SHoJDurFU89ZOd680Gke6JaWomvjoBIWNUxqivFD87fej0e0n8Fwvr0/t1rnyqX+QfnRz7g+8FX8Rv8vL3auF/IqhxKzR2WCPxXqKeq3krDTdj2ierpJEUtCIgOqxaUakwzNBR0D09yiqePHOjveyOkpxLr9VMXb73V97S/h3nDXx7Y2fdPkAYbncW1IgIDxy5vM7LZt/hgrnLtxyaBrJNxv/72N+6tuNhSLp+EVUZACKsyNnXHvHL+1qcgNf2KbSXu2bt9dcmS9qlzo/fARgcmCtpzB3b1/Vg5QiuslLowENyDWDn8cSjl98PgdBviu03N+rl9/WufLEwr18uDwLdevLTF1YK3xnVZ2HI1bUxrT7z5zTuXdRP78qCyeLUKYTUI25OXbm4JPO00TBj+6I7+db8ZL3ZwMOiYdG4dA1lN9HWte2iuI2NAVPapC8O/CGPR34Ip/AZIbIMo7yX8G9QMbcS09P+2b1vf5XgdrXaPfiYns9oeLLEd8D1/B7Dp0E1jGP042pXQj7RKf546cmGzp+tv1TRf6YQD35/QO3seP3xow5IfC9QqmM23naJ0ny9ysXwgq98BWc0kVhv/Nhalbqe8kd/Fr8MOSEr3zEVWrwyO3I29hl+E9LUHGf+nAXI6sGPdd8uV2YphIKnE5IyL6bLxk7cn3bdkHHefrpvJAExMZ1uBZmqeNzXtfzUzk/m/ens7LjV7Px+8d9e1579/44l0duZtge+Np5zEEw8c2pBu9na3YvtEwmrAqNE8IZvNHsep5//yjl3r/0O8yFOXbv0QCO05gP0JGIL+fjw+uj91YeRh/Dp/PtCDM7Zpfmjvjt6Xo7hW9ycmJjaYduf7Hdf/8HTGfa3rG9rYxLSWnsloPg7fijZV8oFM2Ja2a9t6EJd7bCztvHP7us4rrdD/r3/7ct9I99jEI4cOiQ3dIg2YEFYDgOUJDFj1e8TqX7cT4kImXuQr5279A4DeBEX8ayvprU4N3rovcALot/TH13T0fXDTJn0qXk4r3k9OTm4y7a6PzjjORzOOvn1kbEqbnEprPhRzwAKzwFLHk05hv6Yd6N+o3R6beG50aPSdr3qV6IJKkVp5ITIlXOCYn4Yexr0w/DO6YXymHFlR0e5r7tsM3fxgJbI6fW1ivTeT+SsYmr54cFff+5Cu5X+hb94Merp6/J/PusGvTE6724eGJ7RpSFOkKPCUZvBPBccoHBet3Rwe13rX9tw/PjXzZ5hKvr8SfhWKkeA2REAIa4GD6p0feRdWBnvxjv2PckVhVfBf4A29uG/X2i+Ui2eYn8n8NryuDr3jPfWSFV5k44UT137eshIP2K7/64cObbheqZ6lCp+Ydt8TBO7vTM5od1+/NR4SFVhoLpKKt410lnE8LTMzo3V2dLznxLkhYgQ9obiVjEDln7mVjEodfYcpw+MAsftg/7qSDbAnb97sCSb0Yei2fqOcbovVqKNnNO8HmAE9Cv3Wp+uoWjt27HpXNqH9WTKR+kBHKqEFbvo5y3N/avfu4g23R45f3WGa1k9ZicTd0zPTf/f6O7f8dT311Jp2fHzmgJlI/N70jPPe4bEZ6Kg4qw0lqlrLiNKBiLWerpTW25PUbkPXZViW62ecHz+4d8PXojTirzwEyhq8rTwYFtRjvpX/rlwJ+iSXugPbMuyKBOHo3geRJtuT7PujcmVUCuPJlhnL/9NUqvMD2eyM5sxMaIlE4n7XML907tyNjcxHQjty4sZv66Z1xEok/xNW5n4uZSf+8sT5m++vVO58wkEu5sR09pd9w/rWyET2vReujiqygrSopn/zKZN5qMeirotKeTyolm7p/+X06Wvr51ue5Gt9BISwFjiGsLl6N6SrvylXDNTK70D4mX071pwtF88w6Jd/DG/1E1u26NOV0pQL71y3/8PJVOcHMzPTWkcCH2YGOaTTaS2RTN6f1fQvvvDK1bdnbO2JZCr1SeRfn05Pa1PTU0gXJBKW+ecnzlxvCGndhFQ1NRP8bcY1/vjS9bF1V26MwHwsVKiXa3etYVw1TNhYJ3TDjQCO42jJVMcez7J+t9YyJF37ISCEtahjGjxkGDr2DJZ31D8h5vUQJL5RPkXlUMM07u3qSGidICvkzzuSlmlZb0olrK9hD9v9JCrPC196JoPMAolFg6CV+PPj54YeyWecx8Vk2v1Q0rSfhFT18LnBmzBRyNalp5qrSuq7kiAsh4SFa7oZ9M0wzI+cPHOjZPo9V1kS1z4ICGEt4lhiCvZrSa2jol7qzPXJPk6nIGbVbWfUvcr7hO9MP97ZVXpggOu6ajplYStj7l1XvbRMXbPAbp6HzSSBlkraNknrvfVCcPt2sHYi7f3pTDb47KUbYxuvKqkKpYBXKBnV869c3WgbDEixAck0FGFFfEzJzbIsO9C1TyrcymWWsLZGIHoW2rqTzdo5dXyykz0NC8l779i5vu4zwM+eHVntGP5jqVTq/6AkVc5NZ3wNH2lVxNWZNIukMSjiNd9z0+CHp5DXAdX4SAg203w8GB5IATtODHzdK8C15kEjhXvNS9rWA11dnfcMDY9prscss48RySakrOLWqODCoIKAgkuVgsS0urtD60haeV1YYVbbtjUn6/74HXvW/11huFy3PwKzT1r797Upe3jq4sib9u9Y+wxe+vh7W1N7jx49v6ZzbffnQD4/Cj1Pfjx54XiBls6GVuTUc9mQsOIO9mPQFdkIRlz4fy5JLm2ZMOqTcJaXIqpcqnixVe+rdbZ3dbc2OT0D0wZIibHSksmklslknvx+//q3PiKnXcTQae/b+LPQ3r1t0969cOL6G7o6E09qgZegdMJBpVQ1DbKCpyUt6oPKz/4NEJalCAuZFIuEVBJd+jgLh4rvAiFqUVGkhJZMWFp3Z0obGSu/d5gSnWmavuO6h+/cvYHSobgVgoAYjrb4QPMUiGtj1/79jBMkLBwiTlMASlYzTkhWCJyTrGAyMOFkst/BoYMmuIIyGJYcMXMMdNwHPhYN1qWS1t6ZLGaKZL8yzFXTr15BooLLMugHMBRNKgW+It8y9TEcJGt4rvcRFCCEVQbFdg0Swmrxkb0+cf2XOzq73kgdFieEXF2jdEUJKQH6SVWQrNjtZDKlpTPp38U58iUbthk/Ph7sN6zg/xudSGvD4xkq6otcnnjyF0XRRTflkyC0IIJE1JG0QbqGNpMNp5xFhRTcZDNoj66988SFm5vv3LX+WkGUXLYxAuXnCW3c4XbqGs9hwjv+a9lsuN+ahOJSCoLjNDAFvVUll0p1aNPp6adTweSflEszPO48oFn+4yOTmR+6enOshKyYhzWpf/jDuuf6x2aV/qNRaPG/1d0gUXWCA0uu7GhMmkqmerEc8KOVU0lMuyFQ+Ylut562YX9Sncmf7Ojo3BDZWbGLtMkiUVXSWTFNuMqWuYG530f7+/tnGFboxsfdd9mm8XdDo9O7rg6NFq0CFqZr5DWlK9qV0fZqGvZchSuPlevB2VmG/hOV4yWm3RAQwmrhEcW64qu4ykfJho52Vp3J8quBYQooqWDKADftBd6HD+5efyoKj/zR8ew/hWXY56/cnFh7a3RCTTGjuMX0SVB9qzu1qfQM+jO3dBW1g6uVSHv/qVNX10Vh4rc3AkJYLTy+WA/8ou9kJjo7bOh+DLVFZ64TEbCyBktxI5PJZj56R//Gx+NdH5vM4vuI+p8NXh9LjU1iw3EZhXc8TyPuuV9wDaaCfBjTM06N0hVWQmHBDzvSDZ5tvqYR7ZAymh8BIazmH6OKLbzv0KZvJEz3ZzEFnEolaEtV2XEaCLKadrIz//TQnk1/EU85NuH8th8Yf4j9gMZUOrNkZEVZCnsbtTU9KW18GqcKFyjh420sd2+j33pg3F8uTsLaDwEhrBYf04O7N/2t7/o/C2FoGnsIy/YGlvAwSfCvZzLOe+8oR1ZT3u/5uvHJC9dGtJlMrfqjslXVHwjpat2aLi2rjFFLjUSrFUjlO0juddXSSXx7ICCE1QbjiHO0/hofbPgwpnDTOR2V6hWNQqGUx34890noet5yaO+Gko3Y45PO7/uB/lvnrwxrWdha1absbgxo1FWtwplXqYSJY5Nn5lU3bLHQmGA/yko0plVSSjMjIITVzKNTR9sO7dv8RSeb/T9BWmMkKv4D+YzBXuljV7yxd+zfte6VeHGKrHTz4+cv38JWmyUmKzSGG5z7VndoE7kz3uPtq+Welvhwm39weVjOyaoFsBZPI4TV4gNY2Pw79mz8KyebeRIH+VEZTaX0sf27+v794TKmCxNTzr/2NOPj5wZBVjjdYSklq6jN69dyKuhqmWztivYob+RTSkPbe/xMdlMUJn77IiCE1W5jq+s4dYEO6mzsYAmvi/+CrH7LDYxPcBq4HGTFVcG1ULLT5orS1ULIkoSFI2cMHKG8obiXcteOCAhhtdmo6gaOh4EWWlkyYU9gvHswXfgV19d/7+LVkSWfBrItJJhObL/p7elQR8fUZnEV70XxPc01sM+xrzhU7toRgZIHuh07uZL6xA3LBaYB+Ar8rBsfz34YX1j+D5eu317QNGy2xPquSE4mDuXb2IujY2AgytNE67RiKFshzuwCR5s9ZSMlsK0QEMJqq+GkBKOF5yFzRoidK5BoFCeMjM/8mG+a//Xy0Li55KYLBRiTrGjwOQ1br4VMBQuKVJeQKVPxMLlvPwSEsNpsTEECmBLSgbHUpwD1YGwse59l2p+9fmuig4fiNZIowrqq/6Xeqm9Vh9JbjcOKvqFtACX7gV8kTVZvkaRoRQSEsFpx1OZoM2iKxxuHLtDcsZlgLzYZfv7m7XSv+r7fIm234XSP/8o5ktWqzqSyZr89PoXPYDTYkZvziw0NLluKayoEyq4iNVULpTF1IaDjHHZmoAW4aep9geN8fiLt998cGYdtVp7K6iqzXGJFUCAi7jdkuapsBJKcPBwgyP8YRyV7B04Q3dDbpY3jg6gupoMNla5U41BbUN9n0sr1ScKaHwEhrOYfo7paCAW0WiWknihhW/0Tabf/6tDtxpIVSIhGnz1dSXUkDL8fSHKi4/lWPId9Kp3Vxqegp8J/m9f14D6DQ/nmb281FwgkZ1Dj7bnSSFx7ICCE1R7jmO8FJJr8jCvjeNrIxFjDJBpKVaSlXhwDw384MyucBoLAGEfHI5ptO6n1YAq4FjorH9IWjUOnFlF3pj62aui3whbI33ZGQAir/UY3XCVEvzgdw/8NcSyGUhSlpVWQrFg2p39xp0JYLyIohaXxdZ2FGofG6yi85/QS32F0Asu8URgu1+2JgCjd22xcsVElPC85169Gaa1YTkRWJKpSqooBiQQzONvq9sRULKKxtzzAEJw1api2EFZjoW3K0oSwmnJY5tcoSD09HanEDztubnfO/IopyUWC6sUmZUpW5aSqkgwgK04DxxaZrFivacCaIdAuH9zaM1rSDgloOwSEsNpoSMenvU93dXb+EE5taFivKElRqd67qrNmsqIF+yjMF/i56MV2JqadYKxXMDXM6+4Wu04pf/kQEMJaPuwbWvPticwj4Il/NnTrdl7JrqaDC5wTUle1GmdWWVCw1+JotjA6PgnThsIdQrXknF8arkJi/+R355dbcrUaArU9ha3WqxXW3tHR9C5dN//T9eEJ3aGdUwP7T0V7F86Mr0VW4mF6o2NTS/ilaB2HDmb8wA2+08AuS1FNjIAQVhMPTi1NgwRkGKbxRxMz3uaJSRzVUkumOtLwo6Zc7aOkVdEhynN9NQ1cyuNqeEqD67mX9TXGyxXbJhFthYAQVosP58S0909czfqJqzdGODVqaG/IUbCWr2p0yukfp4FUtDfeir1yl8IPUGjPHFy/fqJyKolpJwSEsFp4NEfT6Z3YBvOp8MvMc0hAi9hHNQ1cBrJil5TUZxhfXsTuSdFNhoAQVpMNSD3NMTzzU1PZYAM/ProYkg3UV5rHT8lXmA7SwnwEq4FLLVkRI04HM+n0LdvzvlEPZpK2tREQwmrR8ZucCd7hePr7rw2N5PfxLUZXON1zHKz4kb0KnIttP6Njk8tyaimbwXPrsW/yq3v3bhoqaJZctjkCQlgtOMCYCnU4GedTI+NpQ32XbxH7QOmKG5nzdIWZJz8HNkKygqI9TmSL2JSiovGVn0A39c8WBcpN2yMghNWCQ4zPc0HRbr6GEs6chJFnmfl3knZO4/hmII1B6fiFG9br0s6qAeXPp2WUrhzHeXH/jr6n5pNf8rQuAkJYLTZ2kK7Wul7w6zeGx9DyUsZovOodOizosTg1TM9k1Wogpa7lIisOF+w48E/7E5B1Y/cgtdizsBKbK6c1tNioT6X9n3MDcyePOo7OoJqrC6S0+ZIYV+GSOHxvc18PJCxXG4ed13I727axqTp9yk9rX1jutkj9S4+ASFhLj/m8axwdDdbgELxfGsLpoZyqVXPVU1QugVJUV0dC27p+FaaBWWxknq6ceAljTNMiAf/BoUMbJpewWqmqSRAQCatJBqKWZpgJ731Zx9pJM4aK0hXe5vlKVFEbKFlxs3PvqpSSqpbzKztRm+gnEkktnU6/2GFMfa4wXK5XDgJCWC0y1iAR6/Z49iOjY7C5qkG6mk+3SFQGlEP8FFdnygrNFqBsn1OxP5+K5pGHbcBhqhT8fqu/v39mHkVIljZAQAirRQYx7Wj3Zj3tddQjVVJ4l50CMjHe8mqOTJCCvmoTyIrENXx7Uinbm4Gs2PZUqkObnp76i0N7N36tWl8kvn0RaGnCGhgILKPn3B3+xKVXDh8+nPseX3sOlpt13+P4uonv71WeDqLr1ampFB8S1JrulNaHc9rTMxltcpofOeWns0rTLkeIZUHRnpm5YibMf7kc9UudzYNAyyrd8ZLpWvfgQT8w+oyevXeo++bBtaEtQd9s1/ffRsV3I6eDJCp+nourgH04UZQnhIYfWm1o8xdUGCU8/E/bil89sH3dlQUVJplbHoGWJaxnXri2HTvd1nEEcCBS3z++MLi75UejQgcmJjL92ax/gNJPo6QekhVXAbdvXI3D+XQ1Bcxiu02zTAEjKFIdHTQS/S8Hd2/4YhQm/spFoCUJ6+mnL651gkwRQRmBt33gO+c3teNQYin/oG6aKX5rcKEukqqoWN+Ij5vy81v8UATDG0WGC21jlJ96K6wKPpWd8H8jChN/ZSPQcoR1+vTppJPS7iw3bIZl7n/++eFV5eJaOczX9Z2YvM1LPxWpocBHKv8qHHdMqSphGUqqahaThfj40ITBcbLnsDj6oXvu2bS4n96JVy73TYtASxHWo48GxrUx+5Cu+XY5RH3PMzLGxF0ktXLxrRoGNVPPfNtOolIrgElLGYH2wbZqcipdIFVFlDbfGhqfj9bskCaHHS/7gTt3r73Y+BqkxFZFoKUI6/C7Lu/Bl1jmlKB8PUhcHjHufuyxx/g5lbZw+BL7bX4EoiZqyS0T0uM0j1+82QSl+ua+bhxj7GjD2LicwWkLzaarigbKsmDJ7gcTmezMBw/t3ixntUfAiK8QaBmzhq8/f26j77pbaxo3w+jetPf1B5D2RE3pmzyR4/nH+Mti4Wx1dUrCHO0lSVGqskFUnakkpn6mhu086jgYHkWTW3Wbo4Tli6L5gqYHE47vfeDufVv+YflaIjU3KwItIWEdO3a9Szc0ElDNDqcLbHjmxas7a87QxAnX9ljfxcr+Mzs29ykpi1O8iJjoR/cm5o7dnUl89LRLW93dyWmVIip+Kp7pmlWqIvQ8Mga9Gslm3Efu3LX+K008HNK0ZUSgplnGMrZPGxgYsIKeXa/TA61jPu0w0+7xBx/cd3M+eZspD0wbDgWm+RXP13cODY/jWGKuGAb48jG+agNpilbqlKZoWDqDY2AyjtNUlupzYZlKpXgaxIVMNv0zd+/d+uxcaSVuZSPQ/IT13TN34QRvZW81n6HSDdMLUqmjh9tgd//Fi8OHEl3JL3Z2dh3MzGA7XU664llVWRz/QhLjNYmsmaWp/DjCjqIDdlaZTOZZ1/A+fGj7hjP5OLkQBMog0NSE9cSRszuswNhdpt31BRnazM3U9IuPHDrUuG+419eChqU+cvzqjp7u5P9KJpMPpqc51Zv9QntLkFQBEqZluVCw/7nhaP9i376+8YIouRQEyiLQtIQ1cPT8GjOw7vE8tyFtxBrb2MBXdh579FF99g0vC0nzB548ebNHT2l/aFmJj1BPBYyav9EFLaQ+jdPAVNL8/pZ13a8qiJLLOhAAjvrTRy/d0enbF+69d0tzHFhWR/vnk7Rple6mp+9uFFkRGF8LVj/08IUN8wGp2fIcPLh+4sCu9R+F3ucj0MLf4vaVVnChqYWmdaQS2jpY2vd0djh86Vqh7c3Yxm8dudTPxaW0lrn7yJEjZW0Tm7HdC2lT0xKW1xecgHE3FDWNcb7uDh6+r/96Y0prjlIO7ur7TOD5b3ayzt9ylY0Gl83qKFXZsCXrXdOlrV3djf2LBr556JOshLDmMWhPPXV6vav5O5jVxYLUhNl3iIbV8yiqpbI0bQcP85C2Xu0l3dczC0XUN4Pzb71339mFltOM+Q/0rzu5f2fvu1zH+QDOt3uZ0pbVRMRFouJK5qqeTkhVqyBdtdUmhGV5JI4cudrpd5kHiyp3tTU/8s6r+4rC2vCmaQmLWJO0Ep65INJK2tbpt75298U2HLuiLh3oX/95L+0/kHUyvwTieiUJHVEimVzy1UKeWMqv2pCoKEVFRNXT1aHawnBx80eAZj7TwcxdAc5Gi5fiaNnNT37nCk4xaV/X1IRF2B94YHt63qQVaCcfePX2K+07fMU9U7qtHev+xE/7r3cc70O+6w1gxuV0dHZiusgvJS/O7IskRXLs6KCxqj+B26t9a3uUREWi4plbQlTFYzXvu+7tB3EIUGel/L6e3TNw5NS8zYAqldss4YvzBC9C7559drAja3qvDoyg6pwCP+KBZaVOPPjazS1vMLpQKE9fuPnawDB+EqehPwzWuAuSl8LPg90WVxhJJPWQCUmPBAWTBEz1TFUGpqO3wYYvIPgr2az35a2b1/50V6f1e1NTlVcvEzB0xRekj67usu5FmS2/crvQcaol/zeeObfTSOj91dIq28PxiaOHDx9quy8LtQxhcZBqIS0Dhkl2l/3yA4e2j1Qb2JUUD1Iyz1waOQib0vsxKXsAFvH3wMB0JySwtZC+DBPTN5BOCEnhrI1BuKe9l6tIzsVCiD6E0DOabrwI2elZ09aP7N3aNxjheXvK+a1OENa0EFYEyYL9rz072Ju03ZpNQKj7Xd899cKhNrA9LASvZTY/s9GcHoK0XsrakLS8UklLxyl+/rj+/Qfu2367sJNyTS7SuZfneO7ffweBGScu3NwAqWgrTvTc5jjBZmw87tMCfRXYKQWOgula4OiBOQUZ7DZuhrAGdQXxV0zPuCaGnkv3VPGHOpPw7+QPR62OM5HhdNddGOeX2kmCbSnC4mDlSStVTFr4eLljdHV+702vWz9R66Cu5HS5h5hmHvz3QiOxwJTRo2BGgY06dm7OVhewYGAY6s75oD+ZDs4JPY9JyqSCQ7ABqftd5VFM3/j2Ja4mtsWpJQSq6ZXu5UZTKeJnsHpohiYPRqBn04nkS2+CQWW59BK2dAjwS0Y4IHDz2ERWG8Gnwm7iK9W3sFmbvrqGPzw6gW8eTmvTM07XmTPX28KYd7EQ3rjnvv1QFHbPt3zT9DcMPHd+13zzN1s+/hC2rKOo7NjeQdsxT5LEWrYjbdLw05eHtwWe9jl0542u62HZHZIVpalY/yIlP5X3MHYddLLZfy4fmYiBhNuB509vw+rG3tKY+kOwGHLi7W/cS91jS7v4s9TSnZHGLx8CICH9lXNDX+zpWfXuycnaBV2e3e567nAm4973qv0bzy1fD5qr5oEB7KXt0u7B3Loh7yhWVfypbOalh9+wr6U3mbfklLC5Hi1pDRE4ef7Wj+EEiZ+amqpvJT2bzWjJRLIPR3n9riA5i4DZg720DSIrlsrvHXSZ9p7ZGlrzSgirNcetqVp9/vz5FJTqj6JRejTdq6eBMzNpHP9s//QrF4bvrydfO6f1JrCX1mvcXlo98Kembjotr3wXwmrnp36J+pYNeh5JdqRem83O77gxkpxtW3bgOZ/g1HKJmt3U1Rw+3D+zrc89aunagnWzpq6PdxujLz388L4F78tdbtCEsJZ7BFq8/sHBoMPX/I9hyrGgnuDUUZzrnnz7yQu3HlxQQW2Ued++fZmJ1e5LoPB5k5ZpWCPXz+08du+99zrtAI0QVjuM4jL2YcIZeh+2+9wF49MFtYJSlgmHE0g/JlLWLJQPg7RmhtyXsJ18eja0tivsXhj6xy9ve/mRR5TRcG2ZmjyViN9NPkDN3Dz1FW5z9XM4i+s1ME1YcFNpUIrVLHzJzHnwjl0bn1twgW1UwPHjxxPXpztejR0HFTc+F3YXRwxdfdM9W08D0zrs4wtLaM5rkbCac1xaolWOvurhZIPIih0OdVm2haNTfqUlAFjCRnJP4HBn+iUqz6tVa2nGpTe/etsP2o2s2G8hrGqjL/FlEQC5GHghfplSUSMdvwaEA/9+4vjpa3c2stx2KIsfUek2dr+EuXNF2xEjSJx98w/tbFt7NiGsdniSl6EPp84O3W/Z1oPzXRms1GRKWdCJdeCIlJ+vlGYlh997r+70+EPH8NHJEtLCauCph+7bmj81ox1xEsJqx1Fdij4Zxi9AT2KSYBrtslgxhOD2gWOyz7AstFzx6zFHj1mGobYUYAgC9cHge3ddK5uhjQKFsNpoMJeqK6+8cm0X6noXiWUxHA8WxAdWNyQM45HFKL8dyiRpueM7jllmMGpnjO+1w9fNaxmXxiogaqlR0jQdAkeOBPjczrnOiQ6jw88ESSOA6KT7iQzOHEvavu1pZsLQg4QPP/DdZG9Xx/vWrOr+mfR03SvtNffdxleAQIgvTzjBT0w409Mpu2faufZy+vDhw5WPMa25dEnYqggIYbXqyNXY7i/jCyvdfmaVb5hdVsLp9LJGp43j1/1A7/RdvdMwPRzEboRnLVHe9vEvL3eXBOB4ZMta22H+TiqV2LJQ26u5u6Bju44Z3J7O/Lvp6cwPmBanOwQ4uNHRTWMK21bSvh1Mm642nTWCtKkH07rnTE72aOO0XZq7bIltVQSEsFp15HLthg5J/+aJE12m3tVjOPYq1/dW4cTjHnwMYhXOce8xDd3y/PJW6OpMdsTRVy4iK/rKMR/jwvz825VIHFzT3fkx13UW/dnhRy3GJyeeHEs7n1XNibUPFvY6vtGDw5vV9w0Vofn81qGhZfDhi3HX8SfQ/3HPMse9CWcCX0gel2OIFJIt+2fRH7qWRaYJG85NxldGzV4tGayFSLQ24+q9ULyu9gJfMU5ELTn6wUISTl03NHz1KzyiJLqmX657OLLdSJgoXTO7cBxyN172blier4YCvBsFdSNXV2dC35tKJrbzfPfFdjwvC/qs9MSMxxNRsSqmT6LhUDQHE+jUBE7UnATXTuLsrRn01K2l/x6+qItiR3TNG8V59KNB0DGSfNXGUXwJY2Gm+osNhpSvEBDCasIHgVLTt75/aQ0MnXpBNb2QgNYEntfr4wu/nBYpKQLtxtdwAh0SBX3VDe7nM/Ha5vf1Fb/CURS2bCTAWWuxR229qRsbQQQbUed61LfW14JVKKsTJ5sk8WUcHbtlNANyTOhgcmAGKH7p3m1FWpqtuZCu+LByVdKHVMjpKEQrBwIW9tnpXOIH+QTDSH/D9f0bmCLewDn1I4HmwtAypPDZ/oe9oXKf/aMPsWxSs/RR13FHrURiZE1gDR86tKHEdCDMKX+XCwEhrOVCvqBeHNaW6ui11/mWDtLQ1kEiWodXE4rwYgepAPssTPCMOjIdAk94TZ8pMZjch8HjDorGFUTUAwlkh64be0A9/ZCatiDZWtOyE7ClQmIdJICJFYhA+TRV4Fo5/QIHiUvrTEbkVRCxiJfsSBbfYk87OTExXxdazY5yUgiRKfpHQ1YSkONmAZY+gV4NIeVFfCXoLNA5h/Plb5LzWAyzF+IVXdNnvO/6GcsyhjC1vmWZ7s2pO3fdOqzriy9asnJxZREoerDLppDAhiIAEtCfO3F5rW0a6z1PX4/nf53nG5RqqrpieSnULEVh8cx4E7ugH78H8tG9eP/24oVezY+pkpA8b/abhPF8le75BqdsXUtaFeaTlTI2IByEoU1l8oq1mkokcZHElIRoWmpejMMCMyCvQXyy7JjjuUcgOl4tLCzCMpTHgFpcgkViX/dH/ax2Szf8m2Yqc/MN+1r7BM/C/rfCtRDWEozSkbMjq7NTY5t13dqE6dhG3wsSqlp+C9DDi0ifLrqmT1f6BgUaPjiHN0lJAGAfvpWcI4XjiHIMF6ocO/EjmMa9HeelQ1LT1PRpoce/sJwOTCQtc+kfGQp6Uxl+9JWtmL+jNEaJ0gKBgbsygR58B4sHfwV5aliVWg3vCHv6ymHcdG868IzrVsK6pnd71+/dsmXxbD3m3/W2ybn0T1/bQFe5I8euX+9ybuqbXMPbDA7ZCKV4uMOecyz+9OfmWvj9x9zEw6JW+JuOX298WhE6qtwLEV3TL1tb/AWj7sqwfqaro/sdmcyM+vBp2XzzDEzaBiQsNH+e+eeTjQ+ohwqnG0BYhfVzNYKrkOmpyauYYH8KvD8G6RPBszrC6Jq+ystl0ghzXEZjR5+O4+iZwTh+eG7Yqa5rq/3hGzzTSkXKn4YgIITVABjBP+ZzP7i8ydasrZCetuCHvIvFRs92SEdlpnCYE2LOQi12OA7RNf1yjrphHIyE9yOXPnfNMDg70DpdTf8DWDKs5rRvMVwChAWrUgh21HzllD0NrigqlxKVC7bKQuOOWeGiuI7OTkhb6T8C/Xw3xkel9cXxj6eIxiY3Hhx3X9dHsWJwDaa3l1+zd9Mt/F4tUk/ijWnP+/DBb8++LWqvnh0c7NDGta0pO7kl6zpb8AJzEUr91kYEFdeBRCt69Nm4+AsSl6jwjVGckY6VwPwUpLhLURx9xliWvxFHi/w+zB0SWCnLsVpxnoXesSI2ngp4zmRJXPgf/0IleGH51R6uwjeX5MR76qtITh7+8N9Cp4GF7Sm8Zl1s35pVXVomm/5c1vG+Wm284njHJeJq44/FjixUAld8w7uijW6+xo3MhW2S6+oIVHumqpewglJ87+LFtcFUcqur+1vxwPcZJqYPMOyhXw6GKI4+4/GwQpjCBhe+6XDIpFb06PM+np5hhS5eXzw9bLJ2pBLGv4Fe36BU4kA6IQGw8MUY6MJywVeqDs54Z69zrWdY7jI3G1ZtUiSV6zzDI3IqLLew/wu9jspl+yywrA1pEed5QceXPT3jBb/DLrA5ua5UHZ/4eMTbFx+fwvE3DJO8fANrjlctL7giJhRx9MrfR89R+VgJ1Y6currONuwd0FNsxwtV02mPlWGLy1TxlPHf6Hh8PH9xesvw9yRM+5PIRT2ZIgVKKZxWUY/PT8aTFPji0i3m4Ed1hDWV/7uY9bNGtiGqAyorJRWSqCgdkrQiR5KddrwPlsq8xfhG6efvx8dvtiQczDdmmPaldDBxSVYeZ3GJXxUMWzxq5d4fPz7Ym7X1HTAL2A7NqtJHEQ3qtCPjw3LoxB/v+OMZ5VVzR5aHWRuErYA+y4uu6fM+Xl9J/lh7bFvbY+vmv0bWos9tsXAWSLIiaSnyApHxJz6SbFSFuXTw8i86r5vVRW1m+6IHmUREAuI0lcREP5q2ztWPrO9/YK54xsXHI56+cePvj3qBfimZNS+J5FWMcrjptThsRd4dPX9+DcwEd5iQphwozfkCwJKaLv9ewHYKeicfSudwShcnJDBBOD3MTwGRO0cqLIj73jQTaejDBYaPHTBgJ/i5+HyYijd95sFhRzkzB7yL2IrCtGwezj9nOQVTUlfPwiicifnu5J0qHHd8mXHIG6ZD7JQqIk9kJK6QwAokMWRUhMaSeJ0vcfaiXNhs7PyuwpYV51Vh+EM/Pu2M9GckpyiOuZm2Wvtom+Y4me8xPbvIIujzPu6Wbvyt1ejL3U7Sv/v754ZHsORwaX3KGdwiJhO5pzY+Mivk/urVq52jTnIXlEc78LKu8qAMx/G8kHhyOicosz0ovM3IrIDKb15HSvDoOoqv+hMLYCOWI8ash0vmufryZVcqLz4u8fym3ov1xT/EVp4UDUTn4/iS0xW+sZTMojASmLqGp64iH4FRXJQ2TKj+lv7JVRTVxwQkm9APyaboGnGMzSVR6VR87ipsVT645ovOzi5tamb6zzB1/nqzjz+s9YetwLioZW5C8jq08K9+1IxS8yQsfF6ap1WL2BK8VOaJc6NbPcPrx7wJ++hmHQUPvOaQgMJ3ETtVlERDP0wVsQ19uPgcLQyt/Dc+p4jlL6k/1xa2qVyh5ApEzEoErm/DsPOTXV3de6anq36roFyRdYWVbVSshHJEMt98saIXfIu9koplYZL6m/hUz7kS/Jt0/PE8+Jj6X/Y6k+fv2tA1BKIvB/OC8WnGAmp5dpqx3XW36fjgYK/upXbhFd+BrRlqn16MfkrspkoC4hnirYjbUVWzs4rHx8uL3cerjwt0TA4RcBcsuX8Rn97q54okVsCKJJ9YkSvy1gJR4aOtnAr6OJP+L13d+BKBKMEzHhAfgDh6yzD+vqHjTDDvYpAxLqwEfVdbE9bpIEi6V27tdLP+LnzPrWS/XrRTnz5d4e79+LNY7r4kP+Z7Jv7z1LyPL0B4Tb+ci9cXLy+eJ54e8Rw//rqqcUR+HOrgYVprJbBl5E2w63oI64J7k8mUDZLGhmAXs19ucVkxP8gKQu4ptCxbMy2TW3KAGI4u1P207ztH3CDx/7bL+Cdse8h1Zy5ev7Dp8uHD7blJuy0J69TV8XW6l92Dl3cbLG6g98idbhDgdANcY1ZY9o2N4mpNr96GRf1Da3Wui0RW69F1bWslvp81LD2xDTOGu9DhQzBc7AcYfYlkAqo6A6ozqHNBYJTESGitTGShsp0qQSxT4AcoPJQw0LBlEPhBFakHDjoLvY+XgVIyg7WK77tG8n9pvpHXBbXL+OMBd7FN6KLu+uf27esbX9RHdIkLbxvCGhgYsDb3v2a7obt7YHakpKmYiqgE2ioqJbzIOszXcSov/DAzRRNehyJKvPx4+igv/ZLKEaCkoZxUFMYXE1I8f7Xyq/UHp9CkAlfbCF3NdlhS7IQguA0N2wiJYy1ktC5IISb1Okr5jSYruy2SGlYkIkKLSC3yy/WrUWGzSnjaTUX/QEhYQuNewLCdwBFKRkpOuAfr4sBnwwfDg6B0MHagORhBHNqHw5WxTwYav6lAt/42MBLfrYZXHO9w3Ftr/B0Hp0pY+tkD29ddAz5ln8NGjddSlNPyhHV8aKjbzAS7Dd3egRcvgRHJWyrHASw9Pyp+vlSxEluH0jWAGQF9VVZMpxHVRZ/xSKQU4PR5Xy0+/sLQZCFS9DN/XKtSeh5WrL2x+sMyZv+W67+vwz5eC7oDx12rm9pakNg639B68XL3Qh+2Bm94DySxHhg0daBHSQhiCbyyyMS9SDi8RhEHyYP1qD9qak0S4VGn5VYrSTRKEkKHWYYiHuQmCYb/YKYLqS+3H5LYckxJmz6qhSYJ5yNgzgtuclESpncBfN8Fj3lgJdCSGpHcGECoxrouMoHjzO+4evLLMB1VKxJV8Wyj8Q80Ix043jnTu32hlTdkh08Yn7UWcnio9Qs3pzZm0lN7LCOxIdIZxbuQ1+lAVFFxJB7aMeUIiPkiPRPjo2v6dPF4FVjHnxi/oQK0Az/bymf5uI7ayGLj6eM63nrbF5VNXzV7nv3HViQL3JAEaSV1z0iBNJIgJBCYkSKJYbdjEiSHw7a0BI5s6QBBbINUswMUsQ6E11UojZGccA9dcZDBdQY+TgyFTgkiEKYyIBvstAQzIRk8cBJ+A2j4gZFDFWAqjAp3V5IhQYYwwUJ57ByS0QINzMYK8FyrRxt3KNbXb2qG/UVNT5wDyCt6/A0boGbdqzPA4tD21SPquWihPy1FWHjQzYs3xnZkM95ePIZd8RccBx1xez/UPowp46I4+uVcLD9/8Plq0Gfy6Jp+uez5uqPyY+UtNN5DuVQc06drpv4bIDXsjtsMpdkOSC79QK4Xog3PzwF4IBNCBiIhpBSpoE8jioqWaM2KCRuOqwLXgIQItKIe0lCYD/lZjoqgGIo0+J++SsmMKA8eqQ21qHuUh2PfzQHN6vgG6vVK8GfmQhcbr3Yff+AEi3rtdCtNF8u/eIWD2ATXx4Mg0XH1Vr/hm7sDQw8PvyvTrriKWocEE0C6oM/kJRJHrAykgj6WGlq+JUifu6YfS6pu4/UVa6AgQcXKi78ApekhcWFBwMstEkTX9MvVHw+Lt2ex+4+Pg62CxgsHEwZbAdgWIJfA+ICkfDRYtyAwWWB7Ay8F8VT/KB0bOJ4Gx/CQfUKSwZGrJJs8iZHYgB0zMB+zk8hopQ8hEcEog2ERASIBAOL5fIrVIKLxXKtzKPZLgZUckvGf+/nH5HsK0+Uz3316zeAjj3D23Lwu90w0ZwNpiZ72UnvwfO/AXIFnXfLBxLOsHn6yiLqmr3oQ04LHX9hq6TFHI6txrlYWkHj98UT1lh8vryR/rIKq6aO204drdP8hRWF3itmLUw42QnW1CSTSA2IAIXkWOBYKLWw8wjVqNkEaFqjFwLQNJhWI4ZiFoiq6QX0SbsEo6HMoWVFCYprwjw6FP65BXCSoXJwiOwpnFK9A6yiWkQhRDwA9XAfpwLS/AqnqSKP7jwapquiznXFXMn6x8Yg/X/HySvLHKqiaPlZfvf0H6BloAM/v3tpzHkJwUx59Uxb4GE5Lfnt2ZGS16SX3+F5mq4llfegtwnaSR6J5EC8hPUV6IDaS6aDnoZ5DpYe6AtdgOr4pyhXLNPH0KKCo/DDP7N+S+mI6qHzbQr7AbdgW+iylWn0l5cf6E29ftfSN6L9lGl04x30tOtMHklmLhxpClW9BL4S1T+i2uNPRp+0FflD0AN9A9LHnmHGBBfJCE3QL9ALiguoJqiu+64gDzWGIIAlhzhaSDsMV/yjJi3BxyY9khP9BXBSzEMY/AFORGMmM1yyKZfmm+ZKuJf4uMHV1THEj+o+S864E7zYd/8Dliqp2MamvPbt9uw4dY/M4DnXTuMuXx/scK9iHLcbryzfKwvOJBSGNPl10Tb8WV0xYyMFymDdXXv46Kq+ueChJQI4WlSUqf8StOf5CNdXqr9afxe8/Gm6AoLAqGKyCGLSG350ACFzKM2FvaeOseEhFOsjItdQ2S6wYYmkOdl2+CfLBvmpIV55vYY2Qn6uAxAWC40zbhxSmWArcQj0TSIiSU37mx0kgVesgLereOSz8E5EWJa6Qzyh1hZEcO7xY4Ct9WLfNvwa+5xA2h6uGP6vMPxMsZ8WNf0Gf+cOCw9usq51a5+kNG9Sn1IjJsjoO0LI7EpVra/vxhPdFs7JyjYriohlbTAKGxO1C6oJEljseOLqmTxfPX66OucJK66OUNzuDjK7p05UIbGwX25I/vrj4BYrnD0uZ/Rtvfzz9fPsPIkgkbL0DZNMFRVEHFEY2ZCBTcwMLdfCsCCVN4SwpE9YG+ARNgD24IDHYSYB1yNCYDkLRFoC8oOUG40AKQx5IYyAmlQ6SF7dDoSof0hbJiApzqLs43aPc5UG+AvVQ/4T7nGQFQiJ5kdbAkmgH2Sz0FaWB4gLrad22v4nmuvPt/yzCc1+V4t0e4z93r8PYwDCvNANxLSthkai0jmCf5+jq6y6Y4SkjTfoKprgWufj9Dg3AozBmiK7pl3H8WDH3u0YfLY6u6c/HVS2vSvsxoygyTF2q/qNenEyjJ5NJPYGPRidME1M1/JYqwyoNq32Ihu4J0z5M+WA2DoqwEI9wfmEaEhQJzPNsKNOh0jJwrfRVJqbnNOrC6IGwQFzgHiKrpCuq2kE+FizrMXWE7IWCEKemg7hSiimOQchNIC3EchqpHlBO95TshQThkwF5TL9k+Mm/MZLGzVo3AlQdLzagDle1vCYd/wU9/5Z5ZcyZPnNow/J8ZHZZCGtsbKw3rdn7nIzTx42o0WfP1cPKuYJ6XPFs5q7p8zmKx5v8cdcxDeMPOR1fj+gh4X10TV/dukiC+nJPeLy8eH1hrtm/UVvpKxcrP2oL/dlcs1eQ9PCeo73wGcp+R2Xyvlp74vH19B9EkoA2CYKUlcQqJCQj6vkoyBjh/IurcJiy4Zxy2FMptRBO7sK3kClR0UYUZAX+wMqfC1ICiYHMYBsKSQsSFKaAUEqZLoiK00ASFsgpN0UEUWE6yOkiiArE6NmUb91OWwAAEuNJREFUszCNxA0c/uBoF04W86YOarWQAYjGmHBBEIkUiXEqib025hNmInWknv6zKo77Sh3/RvcfSx5Xl4O4yr5Y7NxiuEEQFT4uvs8yrF5VvosX28LLS185vsiRHkc9YPiJtrCbJIzHyx3gJdfpl80flZWPR6qIxJghus7xjSqj4E9UNn2VvN76Csqq6XIR+48OYEeGlcAaXhLfQwxNQcgQEI9IErOOxBUuCuDLz9Arm5iyOTaYy7Jty8hAb2VCm43ZmwnwQTbgFpAWyA4SGEKhaMdgYNpngKAcpeMCAfFjYGE4yAqco3RZ0LorUqOkxVkf6AgzvFBPFbISSsOUD+WRrWijpcwbmI4Gomj4yxAIv4bPVU+q9sfxk/EP36UlfP49N3vNWr/m9CZdX/zzjDDofAoW3XHVr9NPHdB8p2+uORl/mjFLUktMbBTtkSJbpLCRxYyD5OpJps/4+DJuvq5IIgoLqfi3pLzcRuloM7QSzKImsBSWG80LVKkxkSvOkFHaCjL5QvrPN9rwvaSVtEg2ICmQCNRQkGjwnlOpNktMxdds+GxcRFrIyCmhTQMEUJjl4qwtzPbAOVC8o0DUZroGiMmBpEUfRBZ4DvRUJC4/1GOpij1ML9XU0PJdFxIZGsOpJkkOQ0YdFh5CPodKl0WfRqQkVUhTIEf1iN4GkdJU4Rx/xsJfHkpfMv4cd+IAUJb1+YdkfSU7NXp6+/bti7qquKiEdfVq0Gl2TO2DonYzAcUTCv0slCB8FuGia/q8j7iAPl30aNIPHVKq55w+00MvjFLo05WmV8H5P9XLzydVF/H0xbGl9UGfjm226B98po2u6fO+0f3H9M7SbT1h+FoS00ybSmm+5/RZHxzbwWvVHtSvNuLRR4BKl0vPtHRhWh1SESUsNBkH0qjvNiAx4MA1JDBc4yBmTPmwJArJCFM+dA1SE5XsmFIqRTzKUrZYkMio78IUkauFoW6Mcbin1GWrOR8nqOEUEUQFmuK3ZdEw6NFg92s9j3XLp0CIsAuS8VdPkcKhCZ9/KAc81x/c3NdzFjy6KHZc0YPNh7VhDg9jYnh4co9n2dvx1nLalys7Rimx2xLGigfEJBQ0Xr149FkBVb04BQiTlPAFbTiDxRGKM1pJf5AgarPKG0sQu413N07hkCANO5m0fSebtCwziW5DqMISHTRMJCDF23inYbmsauNCHq+Vn1ta5dErzKN8psP/RiIXVpAegKJQ30Y06AQSEXdAIpdL0wbTNsLpoSIeCwRJHZYBpTusIFAIlPC0iqL5AxoCcmLPQkkLdITRCc0dSFqQD1A51g4pLOXmhZCwDMO2BpH9q6ZtDoU4oKQIy5yEynFnv+mzw+0+/q3Sf5yT4aYs89zq1alLIK7wYeQANcCpgW5AOaqIARzxcudrXrMTz+cuFAxBI1Rw06eLKz3xsnDikt+Mmr9mWBlXrbySeJAlTt8MXJImXHRNv0zx2GpWZ3r0KKqzXHlRHH26+fQf+mkbg56ADjppUuihMJl7BEhGtmnj+4Phj1lEUAzjaQcgJkzcqPPmlI/yjdJV8Trf/+hbeYyP0uMS0zSVF8SEaSELxkhR6a7IC1IVHkNMBWEkCljxYQ7YXgWKrDCHw2ohJDDKSkr5Tst3TANBp7DdgkTFKSOpxYMtV2i3hXQoJjwbBo3L4oibAajdXmSbCl01PEvi6x3PetMvwfi3cv+xHpPRk8GZvo6Oq5y5FvZlvtfqQZ5v5igfH7iRdHqrn/H24McyEb6ejCUxkCwqEATi8JDNKtWRIxI6wrLj+aOyQgIqLT/KTZ+OLYnCFGHE60PdSgzIgVmcfrbt5evjYkB97VeNyv8plx/UYoChElhYgB7KtD3PAUWRpejIVNzNAjNzyDuYRqnrMF5dIx4CkTrlAJQRps2FhZIX5lqYwfFLOygTBeSmkUhDEgNvIC7MR5ML6JhozoCpn+858G1utbH4j7BRT0Z9VlZzbTyOKJCKeCjkqYbkFBJh+DXCPVcKuXKIFURlm8WBoZSFOBCYmk6i33ioT+Kw1CegEMspcFfe+M8+rRySNum/YUwm9I7TPT04NWOBDg/nwtz16xMbEp3mPswIOuI6G7wBSlynz1pQWZEIP0smIcEEWN3QsfJDn+nj9FFSPh73wilgdE2f+eOumo4pPqWI2kI/LKu4RVXLq7H/kJopRUFhnkj4joNT9KC/BlZgAIVD1I+cwASVUBgCIsF1KEQxJLpGPKHGP5LYrAs5ikREnmJ61KF4K5cG1+REVS6HC1JauGroYYcOrLWUEp6MSF0UpoZgK5hV2dgEzeNLYbMBnRQZEUPnOwGMT6GOp57Kg/0WTCMYjnsQHpDmlJFTR5IcNt/alvV1PdF5NsKcLSpGG03L6QcjnWDpeIXqgFYb//A9wGi1+fMPDeqY7nae6uvT530KKp+JebkhHJyX6Fqz33X83tCgRr1d6gXBH+XnFtEwDmEVMBfAtbK7UvHxVTb1gGLQokbFVBZMDtUJHmT+dsPxmqSRU2nkrxkWxhfbOfEVwLov4sIaonSRr1qZy6vy8xliPbn+qPjYHxSm6mJwdB357DfaVtJ/BMLeW0/ayVQSR6TA5AB7h8kwmFeRrFBUSFYkJk7GsM+F5SuiCQmFBEriCskHYcxfEM9ozBjBS/yaKD//rBzndjD3BHswAcmqwFdhOWGugCw5owwpEt9sxMlVGWQEK4GlcAOi1XAcL6eLICfdcMFmNDnH7xdO/YTCHTkxM2B6EiSPbuXmHrZO5eJy4Iu6lfo2Gu8orFfA+PM9UMjnHpBIx9v+/Q9Wm8nMfcMTE1d7u7vP4Ec6fzy1wqOGP3xI63JHjgT2/rsy/boTbMP0pe78dVUWS5wjK0VUjIqNN3kA62ZYeIcfxofXDFNFUZBTT4W6m71mWBlXrb4yWSoEYWh0jVIUdJEmzA6o18mRDN7dCplCEkK8IiP4WRAU9OO8j5wimZB3SAhKYlJEphLkJCaSEP7PEdxsfVG5UWFxP6qPPngTlvBED6IWLN8dTPmg8ocFPPRXWBdlFWqqCEmLlhAgLRtKdLaAkpQNfRUM6DUQGOUiTimNEaT7FvRVw/F6K91XG4/mHf9KPaovvJ36jzfSS1mpc6mUdhnvhZL4a0GjZsKBKK+n0+kt0AHvztCAsIzjeeAeUKVPF1l101cBWCICxcGmcPalUeHRnyguIsJYej79fFnpKxdjrKhu+spVK69Ke+OW6SXlh7Xk/8b7D5umJKY6nUiQAEmp5ZKoD5Ay8kTFzcAsJIrL+ZREYCWAaU4ubXRNP8wfpuSuGubHMwCJhSuGPCiYJIMw5GV6xkfY0Wd+WoPiBAlEhvnzNluw3SKZYTkQHIQ5J1RQDg7Lw/QQGUIdFp4wcC9KgQ/7KkxjucEHROVmc3ZaCFfEjMxUvlPvBZ0WhT1Q1zG06hQKyGPA9qEh4bPRJuO/0p//WvoPyXpa77BPr9L1mn64QiJRT0vlP3jg1oyn0/th1dnN6VOkQyh8wVRuPpLUH9GHi+sckD4vLaj43NSHLwfv8cKjbGxdgc97JUpFpIRbpovKYHTUltkpHYkyEqNYf1gWfZU+Vn+JiMZERS4qKyTAMv1hmwoItLT/aL6OL9cn8A4mknhDkR5CUuh43ExhAXjnIQVxRQ9UwnU1JM73meHISINzlY/1Ir3jwNQBtui5IpU3K2mFZbEUEhgJiHlZhkqI8rws7hPFxBHlZ5romu1CGRSv2HyQEQiLPkwefJcSk2o0mU+F8Z46KswbKd8qvRUWiq7BsuoYlF/q+Jd839p4/KNnFHhw+Fbc819r/y3dHO7qsk9D2lLPBvEq59SLXC6CYSCq1OTk5F48g+FxLyQSvvyzhFK8taaYL1ACiYdkkSOg/HVO4irmAySLlR8+yHy5wnaWysTF7YmnRxdyecMXFDcxx3KjNCUEGUtb2r4Iixwh5qebxEG58v2Hkh0ERqlLp5kClNLkngLSyF8XExrZi089SYbFm9DRg1FCbEKyoxQE8sqFkTOgTwrDVIPCP/k8qpRcGrxMEXmxnpwjUeXbhjpgA2bBNsp0HPQWOiwNOnddw5YcNIdSFyzTlUKehEbrLDxDNn7osjCXPw5FO22qgPfKHn/pf8XxxxetvSvYlX8BxBVKCdGDmPPDhz0W+Oijjxof//jHt+Hh2oko/qKqFx4l0BJQmQIwS3RNn/fxZXqGFbq4nQzimI9tKFs+S1S1KJ9XoQkEfUQwtKg98fSzefMMwmx5F28/IqK2RLjM2b54/gX0H0v6+IiDZSVgHJogfYWNzDMUpCtsUkKg4pKIUJAsnNTlkjNWzfBCPMOhi8JAiCSqPBmyMFVQ1OdctQwLywNZ5cPCpDl80D6IhjzBASQF0sUeREpSJCyE4ceSpJXbEO2612AHepaTSRn/YrtEAD3n8xV/ntv4+S96nyGRO9gccQZmEPiBK3bRi5kPHcG+v2T32n2+53bxNY8oQyWIB0SR9OmqxMeTh5lm/8azx8srEbCQNSqTpUTX+eagwCiPqiWeQAXO/olHV2tPaYUFjWCxsQJjt7MV564K6iOB2Xj1adNGa3PqDMFl4XwSSnAQCUIibqFPlwtTwbiOkoSR+JvLx3KYv9BXaSrlLyifSegQBNMFTAWhiIeFArRZnoX+8Y2EzKhbnuNlYO9wFpZXkwoH5Kmj/6qOFTz+0n8+Y4Y/2pVIcJqY35+YJ6wjEN33ZzL9kPY3hWjx6Sv+RcByLIQAZZYQJSn2C944FRF/QkvjQ31XZDcV04GVPOGl+WdJEhVGbaNPV3d7Va7ZP83U/1ACgzTjkg4gjUFvHhGWkrPAPnnBLNeFSEKKfAbzOu9yBAUdVj6cZURpZuU3XOUILioD93x2IEnxxFGc9c6M+M93cHSNZVzHquBQDeMn4x898wQ2us7pgGvAbyU8/z5e5EupVEqtJirCgp4KHxVI7sbrQIYKHyKF3+yvIvEEX8FsQNk9qXwgBpgQwNo7p9OKrukzfdzF08+WTmYrV35YF+tU8bEpYImInGtLVH+8PkzZ8iQcVpjrawXCLOHH5uo/9JmWjbXHJMQcNhVW8bOklbsumnJw7Q+cgtVK2mJxAUNNKKncp54KHuzAwnjCE01B1UIHA1A80ik/IkdIfTj6mE8MXh2sSKZhdHUd+IcDykwFLj4eMv7Fv+il75c8/xEmeHaojD+jZ4LgbsPVVvO5iutg4oSAFCCiAqVp/jrUKRU8mzVexsube05ff3tiD0Q1wkP/ojrYgeiaftiheHsjLKL4GrudTxYvb0H9h94bpzeAwCD4cAqJf5SmlBjFH5D8ChVC1Q8KyIkrjtgbE64y4lqtINJHel5Hq4q4ZdsYzsWBWaU+rkFWtFzQbiNNnWciNbT/qD4+Hitq/FdE/3mWzmvQU+W4hZZPenQuRHRNfylcvfVjpUqz0Tj6dNE1/fm4euufTx1z5am3/hr6z6lj9A9ElneKwPJ3IYEVEpqKys0YFeUhoDBP4TV/+bjVIkfqKuu8/ixC/+tqR73111V4DYnrrb+G8a+h1tkk9dY/m7MxV7XUzwdP3ApBgCYG6Co+L6/+kcB4X0g0ERFFzwXjojBc5q8ZhqOKtWEoROmLEwSWBIHowVySyqSS5kIABEYhisRFEov8SgRWGD6K9OMgq8IwBIkTBBYXASGsxcW3pUoHgfF5iIiLPv9x+03kuLxMqaqsUj1KJL4gsFgICGEtFrJtUG6OwDhtJHHhqLOl+dBAG0AnXRAEBAFBQBAQBAQBQUAQEAQEAUFAEBAEBAFBQBAQBAQBQUAQEAQEAUFAEBAEBAFBQBAQBAQBQUAQEAQEAUFAEBAEBAFBQBAQBAQBQUAQEAQEAUFAEBAEBAFBQBAQBAQBQUAQEAQEAUFAEBAEBAFBQBAQBAQBQUAQEAQEAUFAEBAEBAFBQBAQBAQBQUAQEAQEAUFAEBAEBAFBQBAQBAQBQUAQEAQEAUFAEBAEBAFBQBAQBAQBQUAQEAQEAUFAEBAEBAFBQBAQBAQBQUAQEAQEAUFAEBAEBAFBQBAQBAQBQUAQEAQEAUFAEBAEBAFBQBAQBAQBQUAQEAQEAUFAEBAEBAFBQBAQBAQBQUAQEAQEAUFAEBAEBAFBQBAQBAQBQUAQEAQEAUFAEBAEBAFBQBAQBAQBQUAQEAQEAUFAEBAEBAFBQBAQBAQBQUAQEAQEAUFAEBAEBAFBQBAQBAQBQUAQEAQEAUFAEBAEBAFBQBAQBAQBQUAQEAQEAUFAEBAEBAFBQBAQBAQBQUAQEAQEAUFAEBAEBAFBQBAQBAQBQUAQEAQEAUFAEBAEBAFBQBAQBAQBQUAQEAQEAUFAEBAEBAFBQBAQBAQBQUAQEAQEAUFAEBAEBAFBQBAQBAQBQUAQEAQEAUFAEBAEBAFBQBAQBAQBQUAQEAQEAUFAEBAEBAFBQBAQBAQBQUAQEAQEAUFAEBAEBIGVhMD/D0fV/fpMMM+gAAAAAElFTkSuQmCC'
- }
-
-}
diff --git a/uni_modules/uview-ui/libs/config/props/noticeBar.js b/uni_modules/uview-ui/libs/config/props/noticeBar.js
deleted file mode 100644
index 02c660a..0000000
--- a/uni_modules/uview-ui/libs/config/props/noticeBar.js
+++ /dev/null
@@ -1,27 +0,0 @@
-/*
- * @Author : LQ
- * @Description :
- * @version : 1.0
- * @Date : 2021-08-20 16:44:21
- * @LastAuthor : LQ
- * @lastTime : 2021-08-20 17:17:13
- * @FilePath : /u-view2.0/uview-ui/libs/config/props/noticeBar.js
- */
-export default {
- // noticeBar
- noticeBar: {
- text: () => [],
- direction: 'row',
- step: false,
- icon: 'volume',
- mode: '',
- color: '#f9ae3d',
- bgColor: '#fdf6ec',
- speed: 80,
- fontSize: 14,
- duration: 2000,
- disableTouch: true,
- url: '',
- linkType: 'navigateTo'
- }
-}
diff --git a/uni_modules/uview-ui/libs/config/props/notify.js b/uni_modules/uview-ui/libs/config/props/notify.js
deleted file mode 100644
index 1042d2a..0000000
--- a/uni_modules/uview-ui/libs/config/props/notify.js
+++ /dev/null
@@ -1,22 +0,0 @@
-/*
- * @Author : LQ
- * @Description :
- * @version : 1.0
- * @Date : 2021-08-20 16:44:21
- * @LastAuthor : LQ
- * @lastTime : 2021-08-20 17:10:21
- * @FilePath : /u-view2.0/uview-ui/libs/config/props/notify.js
- */
-export default {
- // notify组件
- notify: {
- top: 0,
- type: 'primary',
- color: '#ffffff',
- bgColor: '',
- message: '',
- duration: 3000,
- fontSize: 15,
- safeAreaInsetTop: false
- }
-}
diff --git a/uni_modules/uview-ui/libs/config/props/numberBox.js b/uni_modules/uview-ui/libs/config/props/numberBox.js
deleted file mode 100644
index 424f0ca..0000000
--- a/uni_modules/uview-ui/libs/config/props/numberBox.js
+++ /dev/null
@@ -1,35 +0,0 @@
-/*
- * @Author : LQ
- * @Description :
- * @version : 1.0
- * @Date : 2021-08-20 16:44:21
- * @LastAuthor : LQ
- * @lastTime : 2021-08-20 17:11:46
- * @FilePath : /u-view2.0/uview-ui/libs/config/props/numberBox.js
- */
-export default {
- // 步进器组件
- numberBox: {
- name: '',
- value: 0,
- min: 1,
- max: Number.MAX_SAFE_INTEGER,
- step: 1,
- integer: false,
- disabled: false,
- disabledInput: false,
- asyncChange: false,
- inputWidth: 35,
- showMinus: true,
- showPlus: true,
- decimalLength: null,
- longPress: true,
- color: '#323233',
- buttonSize: 30,
- bgColor: '#EBECEE',
- cursorSpacing: 100,
- disableMinus: false,
- disablePlus: false,
- iconStyle: ''
- }
-}
diff --git a/uni_modules/uview-ui/libs/config/props/numberKeyboard.js b/uni_modules/uview-ui/libs/config/props/numberKeyboard.js
deleted file mode 100644
index 7b45065..0000000
--- a/uni_modules/uview-ui/libs/config/props/numberKeyboard.js
+++ /dev/null
@@ -1,17 +0,0 @@
-/*
- * @Author : LQ
- * @Description :
- * @version : 1.0
- * @Date : 2021-08-20 16:44:21
- * @LastAuthor : LQ
- * @lastTime : 2021-08-20 17:08:05
- * @FilePath : /u-view2.0/uview-ui/libs/config/props/numberKeyboard.js
- */
-export default {
- // 数字键盘
- numberKeyboard: {
- mode: 'number',
- dotDisabled: false,
- random: false
- }
-}
diff --git a/uni_modules/uview-ui/libs/config/props/overlay.js b/uni_modules/uview-ui/libs/config/props/overlay.js
deleted file mode 100644
index c26d068..0000000
--- a/uni_modules/uview-ui/libs/config/props/overlay.js
+++ /dev/null
@@ -1,18 +0,0 @@
-/*
- * @Author : LQ
- * @Description :
- * @version : 1.0
- * @Date : 2021-08-20 16:44:21
- * @LastAuthor : LQ
- * @lastTime : 2021-08-20 17:06:50
- * @FilePath : /u-view2.0/uview-ui/libs/config/props/overlay.js
- */
-export default {
- // overlay组件
- overlay: {
- show: false,
- zIndex: 10070,
- duration: 300,
- opacity: 0.5
- }
-}
diff --git a/uni_modules/uview-ui/libs/config/props/parse.js b/uni_modules/uview-ui/libs/config/props/parse.js
deleted file mode 100644
index feb22b9..0000000
--- a/uni_modules/uview-ui/libs/config/props/parse.js
+++ /dev/null
@@ -1,22 +0,0 @@
-/*
- * @Author : LQ
- * @Description :
- * @version : 1.0
- * @Date : 2021-08-20 16:44:21
- * @LastAuthor : LQ
- * @lastTime : 2021-08-20 17:17:33
- * @FilePath : /u-view2.0/uview-ui/libs/config/props/parse.js
- */
-export default {
- // parse
- parse: {
- copyLink: true,
- errorImg: '',
- lazyLoad: false,
- loadingImg: '',
- pauseVideo: true,
- previewImg: true,
- setTitle: true,
- showImgMenu: true
- }
-}
diff --git a/uni_modules/uview-ui/libs/config/props/picker.js b/uni_modules/uview-ui/libs/config/props/picker.js
deleted file mode 100644
index f06b321..0000000
--- a/uni_modules/uview-ui/libs/config/props/picker.js
+++ /dev/null
@@ -1,29 +0,0 @@
-/*
- * @Author : LQ
- * @Description :
- * @version : 1.0
- * @Date : 2021-08-20 16:44:21
- * @LastAuthor : LQ
- * @lastTime : 2021-08-20 17:18:20
- * @FilePath : /u-view2.0/uview-ui/libs/config/props/picker.js
- */
-export default {
- // picker
- picker: {
- show: false,
- showToolbar: true,
- title: '',
- columns: () => [],
- loading: false,
- itemHeight: 44,
- cancelText: '取消',
- confirmText: '确定',
- cancelColor: '#909193',
- confirmColor: '#3c9cff',
- visibleItemCount: 5,
- keyName: 'text',
- closeOnClickOverlay: false,
- defaultIndex: () => [],
- immediateChange: false
- }
-}
diff --git a/uni_modules/uview-ui/libs/config/props/popup.js b/uni_modules/uview-ui/libs/config/props/popup.js
deleted file mode 100644
index 0cc1bc0..0000000
--- a/uni_modules/uview-ui/libs/config/props/popup.js
+++ /dev/null
@@ -1,29 +0,0 @@
-/*
- * @Author : LQ
- * @Description :
- * @version : 1.0
- * @Date : 2021-08-20 16:44:21
- * @LastAuthor : LQ
- * @lastTime : 2021-08-20 17:06:33
- * @FilePath : /u-view2.0/uview-ui/libs/config/props/popup.js
- */
-export default {
- // popup组件
- popup: {
- show: false,
- overlay: true,
- mode: 'bottom',
- duration: 300,
- closeable: false,
- overlayStyle: () => {},
- closeOnClickOverlay: true,
- zIndex: 10075,
- safeAreaInsetBottom: true,
- safeAreaInsetTop: false,
- closeIconPos: 'top-right',
- round: 0,
- zoom: true,
- bgColor: '',
- overlayOpacity: 0.5
- }
-}
diff --git a/uni_modules/uview-ui/libs/config/props/radio.js b/uni_modules/uview-ui/libs/config/props/radio.js
deleted file mode 100644
index 4df200f..0000000
--- a/uni_modules/uview-ui/libs/config/props/radio.js
+++ /dev/null
@@ -1,27 +0,0 @@
-/*
- * @Author : LQ
- * @Description :
- * @version : 1.0
- * @Date : 2021-08-20 16:44:21
- * @LastAuthor : LQ
- * @lastTime : 2021-08-20 17:02:34
- * @FilePath : /u-view2.0/uview-ui/libs/config/props/radio.js
- */
-export default {
- // radio组件
- radio: {
- name: '',
- shape: '',
- disabled: '',
- labelDisabled: '',
- activeColor: '',
- inactiveColor: '',
- iconSize: '',
- labelSize: '',
- label: '',
- labelColor: '',
- size: '',
- iconColor: '',
- placement: ''
- }
-}
diff --git a/uni_modules/uview-ui/libs/config/props/radioGroup.js b/uni_modules/uview-ui/libs/config/props/radioGroup.js
deleted file mode 100644
index 728e9db..0000000
--- a/uni_modules/uview-ui/libs/config/props/radioGroup.js
+++ /dev/null
@@ -1,30 +0,0 @@
-/*
- * @Author : LQ
- * @Description :
- * @version : 1.0
- * @Date : 2021-08-20 16:44:21
- * @LastAuthor : LQ
- * @lastTime : 2021-08-20 17:03:12
- * @FilePath : /u-view2.0/uview-ui/libs/config/props/radioGroup.js
- */
-export default {
- // radio-group组件
- radioGroup: {
- value: '',
- disabled: false,
- shape: 'circle',
- activeColor: '#2979ff',
- inactiveColor: '#c8c9cc',
- name: '',
- size: 18,
- placement: 'row',
- label: '',
- labelColor: '#303133',
- labelSize: 14,
- labelDisabled: false,
- iconColor: '#ffffff',
- iconSize: 12,
- borderBottom: false,
- iconPlacement: 'left'
- }
-}
diff --git a/uni_modules/uview-ui/libs/config/props/rate.js b/uni_modules/uview-ui/libs/config/props/rate.js
deleted file mode 100644
index d31c61a..0000000
--- a/uni_modules/uview-ui/libs/config/props/rate.js
+++ /dev/null
@@ -1,26 +0,0 @@
-/*
- * @Author : LQ
- * @Description :
- * @version : 1.0
- * @Date : 2021-08-20 16:44:21
- * @LastAuthor : LQ
- * @lastTime : 2021-08-20 17:05:09
- * @FilePath : /u-view2.0/uview-ui/libs/config/props/rate.js
- */
-export default {
- // rate组件
- rate: {
- value: 1,
- count: 5,
- disabled: false,
- size: 18,
- inactiveColor: '#b2b2b2',
- activeColor: '#FA3534',
- gutter: 4,
- minCount: 1,
- allowHalf: false,
- activeIcon: 'star-fill',
- inactiveIcon: 'star',
- touchable: true
- }
-}
diff --git a/uni_modules/uview-ui/libs/config/props/readMore.js b/uni_modules/uview-ui/libs/config/props/readMore.js
deleted file mode 100644
index 09b11cc..0000000
--- a/uni_modules/uview-ui/libs/config/props/readMore.js
+++ /dev/null
@@ -1,22 +0,0 @@
-/*
- * @Author : LQ
- * @Description :
- * @version : 1.0
- * @Date : 2021-08-20 16:44:21
- * @LastAuthor : LQ
- * @lastTime : 2021-08-20 17:18:41
- * @FilePath : /u-view2.0/uview-ui/libs/config/props/readMore.js
- */
-export default {
- // readMore
- readMore: {
- showHeight: 400,
- toggle: false,
- closeText: '展开阅读全文',
- openText: '收起',
- color: '#2979ff',
- fontSize: 14,
- textIndent: '2em',
- name: ''
- }
-}
diff --git a/uni_modules/uview-ui/libs/config/props/row.js b/uni_modules/uview-ui/libs/config/props/row.js
deleted file mode 100644
index 573a431..0000000
--- a/uni_modules/uview-ui/libs/config/props/row.js
+++ /dev/null
@@ -1,17 +0,0 @@
-/*
- * @Author : LQ
- * @Description :
- * @version : 1.0
- * @Date : 2021-08-20 16:44:21
- * @LastAuthor : LQ
- * @lastTime : 2021-08-20 17:18:58
- * @FilePath : /u-view2.0/uview-ui/libs/config/props/row.js
- */
-export default {
- // row
- row: {
- gutter: 0,
- justify: 'start',
- align: 'center'
- }
-}
diff --git a/uni_modules/uview-ui/libs/config/props/rowNotice.js b/uni_modules/uview-ui/libs/config/props/rowNotice.js
deleted file mode 100644
index cd9d0a0..0000000
--- a/uni_modules/uview-ui/libs/config/props/rowNotice.js
+++ /dev/null
@@ -1,21 +0,0 @@
-/*
- * @Author : LQ
- * @Description :
- * @version : 1.0
- * @Date : 2021-08-20 16:44:21
- * @LastAuthor : LQ
- * @lastTime : 2021-08-20 17:19:13
- * @FilePath : /u-view2.0/uview-ui/libs/config/props/rowNotice.js
- */
-export default {
- // rowNotice
- rowNotice: {
- text: '',
- icon: 'volume',
- mode: '',
- color: '#f9ae3d',
- bgColor: '#fdf6ec',
- fontSize: 14,
- speed: 80
- }
-}
diff --git a/uni_modules/uview-ui/libs/config/props/scrollList.js b/uni_modules/uview-ui/libs/config/props/scrollList.js
deleted file mode 100644
index 441e63a..0000000
--- a/uni_modules/uview-ui/libs/config/props/scrollList.js
+++ /dev/null
@@ -1,20 +0,0 @@
-/*
- * @Author : LQ
- * @Description :
- * @version : 1.0
- * @Date : 2021-08-20 16:44:21
- * @LastAuthor : LQ
- * @lastTime : 2021-08-20 17:19:28
- * @FilePath : /u-view2.0/uview-ui/libs/config/props/scrollList.js
- */
-export default {
- // scrollList
- scrollList: {
- indicatorWidth: 50,
- indicatorBarWidth: 20,
- indicator: true,
- indicatorColor: '#f2f2f2',
- indicatorActiveColor: '#3c9cff',
- indicatorStyle: ''
- }
-}
diff --git a/uni_modules/uview-ui/libs/config/props/search.js b/uni_modules/uview-ui/libs/config/props/search.js
deleted file mode 100644
index 2699954..0000000
--- a/uni_modules/uview-ui/libs/config/props/search.js
+++ /dev/null
@@ -1,37 +0,0 @@
-/*
- * @Author : LQ
- * @Description :
- * @version : 1.0
- * @Date : 2021-08-20 16:44:21
- * @LastAuthor : LQ
- * @lastTime : 2021-08-20 17:19:45
- * @FilePath : /u-view2.0/uview-ui/libs/config/props/search.js
- */
-export default {
- // search
- search: {
- shape: 'round',
- bgColor: '#f2f2f2',
- placeholder: '请输入关键字',
- clearabled: true,
- focus: false,
- showAction: true,
- actionStyle: () => ({}),
- actionText: '搜索',
- inputAlign: 'left',
- inputStyle: () => ({}),
- disabled: false,
- borderColor: 'transparent',
- searchIconColor: '#909399',
- searchIconSize: 22,
- color: '#606266',
- placeholderColor: '#909399',
- searchIcon: 'search',
- margin: '0',
- animation: false,
- value: '',
- maxlength: '-1',
- height: 32,
- label: null
- }
-}
diff --git a/uni_modules/uview-ui/libs/config/props/section.js b/uni_modules/uview-ui/libs/config/props/section.js
deleted file mode 100644
index f432648..0000000
--- a/uni_modules/uview-ui/libs/config/props/section.js
+++ /dev/null
@@ -1,24 +0,0 @@
-/*
- * @Author : LQ
- * @Description :
- * @version : 1.0
- * @Date : 2021-08-20 16:44:21
- * @LastAuthor : LQ
- * @lastTime : 2021-08-20 17:07:33
- * @FilePath : /u-view2.0/uview-ui/libs/config/props/section.js
- */
-export default {
- // u-section组件
- section: {
- title: '',
- subTitle: '更多',
- right: true,
- fontSize: 15,
- bold: true,
- color: '#303133',
- subColor: '#909399',
- showLine: true,
- lineColor: '',
- arrow: true
- }
-}
diff --git a/uni_modules/uview-ui/libs/config/props/skeleton.js b/uni_modules/uview-ui/libs/config/props/skeleton.js
deleted file mode 100644
index 83b777d..0000000
--- a/uni_modules/uview-ui/libs/config/props/skeleton.js
+++ /dev/null
@@ -1,25 +0,0 @@
-/*
- * @Author : LQ
- * @Description :
- * @version : 1.0
- * @Date : 2021-08-20 16:44:21
- * @LastAuthor : LQ
- * @lastTime : 2021-08-20 17:20:14
- * @FilePath : /u-view2.0/uview-ui/libs/config/props/skeleton.js
- */
-export default {
- // skeleton
- skeleton: {
- loading: true,
- animate: true,
- rows: 0,
- rowsWidth: '100%',
- rowsHeight: 18,
- title: true,
- titleWidth: '50%',
- titleHeight: 18,
- avatar: false,
- avatarSize: 32,
- avatarShape: 'circle'
- }
-}
diff --git a/uni_modules/uview-ui/libs/config/props/slider.js b/uni_modules/uview-ui/libs/config/props/slider.js
deleted file mode 100644
index 50cc37f..0000000
--- a/uni_modules/uview-ui/libs/config/props/slider.js
+++ /dev/null
@@ -1,25 +0,0 @@
-/*
- * @Author : LQ
- * @Description :
- * @version : 1.0
- * @Date : 2021-08-20 16:44:21
- * @LastAuthor : LQ
- * @lastTime : 2021-08-20 17:08:25
- * @FilePath : /u-view2.0/uview-ui/libs/config/props/slider.js
- */
-export default {
- // slider组件
- slider: {
- value: 0,
- blockSize: 18,
- min: 0,
- max: 100,
- step: 1,
- activeColor: '#2979ff',
- inactiveColor: '#c0c4cc',
- blockColor: '#ffffff',
- showValue: false,
- disabled:false,
- blockStyle: () => {}
- }
-}
diff --git a/uni_modules/uview-ui/libs/config/props/statusBar.js b/uni_modules/uview-ui/libs/config/props/statusBar.js
deleted file mode 100644
index d237a83..0000000
--- a/uni_modules/uview-ui/libs/config/props/statusBar.js
+++ /dev/null
@@ -1,15 +0,0 @@
-/*
- * @Author : LQ
- * @Description :
- * @version : 1.0
- * @Date : 2021-08-20 16:44:21
- * @LastAuthor : LQ
- * @lastTime : 2021-08-20 17:20:39
- * @FilePath : /u-view2.0/uview-ui/libs/config/props/statusBar.js
- */
-export default {
- // statusBar
- statusBar: {
- bgColor: 'transparent'
- }
-}
diff --git a/uni_modules/uview-ui/libs/config/props/steps.js b/uni_modules/uview-ui/libs/config/props/steps.js
deleted file mode 100644
index 881c39e..0000000
--- a/uni_modules/uview-ui/libs/config/props/steps.js
+++ /dev/null
@@ -1,21 +0,0 @@
-/*
- * @Author : LQ
- * @Description :
- * @version : 1.0
- * @Date : 2021-08-20 16:44:21
- * @LastAuthor : LQ
- * @lastTime : 2021-08-20 17:12:37
- * @FilePath : /u-view2.0/uview-ui/libs/config/props/steps.js
- */
-export default {
- // steps组件
- steps: {
- direction: 'row',
- current: 0,
- activeColor: '#3c9cff',
- inactiveColor: '#969799',
- activeIcon: '',
- inactiveIcon: '',
- dot: false
- }
-}
diff --git a/uni_modules/uview-ui/libs/config/props/stepsItem.js b/uni_modules/uview-ui/libs/config/props/stepsItem.js
deleted file mode 100644
index 5dba8f4..0000000
--- a/uni_modules/uview-ui/libs/config/props/stepsItem.js
+++ /dev/null
@@ -1,18 +0,0 @@
-/*
- * @Author : LQ
- * @Description :
- * @version : 1.0
- * @Date : 2021-08-20 16:44:21
- * @LastAuthor : LQ
- * @lastTime : 2021-08-20 17:12:55
- * @FilePath : /u-view2.0/uview-ui/libs/config/props/stepsItem.js
- */
-export default {
- // steps-item组件
- stepsItem: {
- title: '',
- desc: '',
- iconSize: 17,
- error: false
- }
-}
diff --git a/uni_modules/uview-ui/libs/config/props/sticky.js b/uni_modules/uview-ui/libs/config/props/sticky.js
deleted file mode 100644
index b034604..0000000
--- a/uni_modules/uview-ui/libs/config/props/sticky.js
+++ /dev/null
@@ -1,20 +0,0 @@
-/*
- * @Author : LQ
- * @Description :
- * @version : 1.0
- * @Date : 2021-08-20 16:44:21
- * @LastAuthor : LQ
- * @lastTime : 2021-08-20 17:01:30
- * @FilePath : /u-view2.0/uview-ui/libs/config/props/sticky.js
- */
-export default {
- // sticky组件
- sticky: {
- offsetTop: 0,
- customNavHeight: 0,
- disabled: false,
- bgColor: 'transparent',
- zIndex: '',
- index: ''
- }
-}
diff --git a/uni_modules/uview-ui/libs/config/props/subsection.js b/uni_modules/uview-ui/libs/config/props/subsection.js
deleted file mode 100644
index 9a165ff..0000000
--- a/uni_modules/uview-ui/libs/config/props/subsection.js
+++ /dev/null
@@ -1,23 +0,0 @@
-/*
- * @Author : LQ
- * @Description :
- * @version : 1.0
- * @Date : 2021-08-20 16:44:21
- * @LastAuthor : LQ
- * @lastTime : 2021-08-20 17:12:20
- * @FilePath : /u-view2.0/uview-ui/libs/config/props/subsection.js
- */
-export default {
- // subsection组件
- subsection: {
- list: [],
- current: 0,
- activeColor: '#3c9cff',
- inactiveColor: '#303133',
- mode: 'button',
- fontSize: 12,
- bold: true,
- bgColor: '#eeeeef',
- keyName: 'name'
- }
-}
diff --git a/uni_modules/uview-ui/libs/config/props/swipeAction.js b/uni_modules/uview-ui/libs/config/props/swipeAction.js
deleted file mode 100644
index 25051b8..0000000
--- a/uni_modules/uview-ui/libs/config/props/swipeAction.js
+++ /dev/null
@@ -1,15 +0,0 @@
-/*
- * @Author : LQ
- * @Description :
- * @version : 1.0
- * @Date : 2021-08-20 16:44:21
- * @LastAuthor : LQ
- * @lastTime : 2021-08-20 17:00:42
- * @FilePath : /u-view2.0/uview-ui/libs/config/props/swipeAction.js
- */
-export default {
- // swipe-action组件
- swipeAction: {
- autoClose: true
- }
-}
diff --git a/uni_modules/uview-ui/libs/config/props/swipeActionItem.js b/uni_modules/uview-ui/libs/config/props/swipeActionItem.js
deleted file mode 100644
index 40ef27c..0000000
--- a/uni_modules/uview-ui/libs/config/props/swipeActionItem.js
+++ /dev/null
@@ -1,21 +0,0 @@
-/*
- * @Author : LQ
- * @Description :
- * @version : 1.0
- * @Date : 2021-08-20 16:44:21
- * @LastAuthor : LQ
- * @lastTime : 2021-08-20 17:01:13
- * @FilePath : /u-view2.0/uview-ui/libs/config/props/swipeActionItem.js
- */
-export default {
- // swipeActionItem 组件
- swipeActionItem: {
- show: false,
- name: '',
- disabled: false,
- threshold: 20,
- autoClose: true,
- options: [],
- duration: 300
- }
-}
diff --git a/uni_modules/uview-ui/libs/config/props/swiper.js b/uni_modules/uview-ui/libs/config/props/swiper.js
deleted file mode 100644
index 0e6a3b7..0000000
--- a/uni_modules/uview-ui/libs/config/props/swiper.js
+++ /dev/null
@@ -1,39 +0,0 @@
-/*
- * @Author : LQ
- * @Description :
- * @version : 1.0
- * @Date : 2021-08-20 16:44:21
- * @LastAuthor : LQ
- * @lastTime : 2021-08-20 17:21:38
- * @FilePath : /u-view2.0/uview-ui/libs/config/props/swiper.js
- */
-export default {
- // swiper 组件
- swiper: {
- list: () => [],
- indicator: false,
- indicatorActiveColor: '#FFFFFF',
- indicatorInactiveColor: 'rgba(255, 255, 255, 0.35)',
- indicatorStyle: '',
- indicatorMode: 'line',
- autoplay: true,
- current: 0,
- currentItemId: '',
- interval: 3000,
- duration: 300,
- circular: false,
- previousMargin: 0,
- nextMargin: 0,
- acceleration: false,
- displayMultipleItems: 1,
- easingFunction: 'default',
- keyName: 'url',
- imgMode: 'aspectFill',
- height: 130,
- bgColor: '#f3f4f6',
- radius: 4,
- loading: false,
- showTitle: false
- }
-
-}
diff --git a/uni_modules/uview-ui/libs/config/props/swipterIndicator.js b/uni_modules/uview-ui/libs/config/props/swipterIndicator.js
deleted file mode 100644
index 4b59e6e..0000000
--- a/uni_modules/uview-ui/libs/config/props/swipterIndicator.js
+++ /dev/null
@@ -1,19 +0,0 @@
-/*
- * @Author : LQ
- * @Description :
- * @version : 1.0
- * @Date : 2021-08-20 16:44:21
- * @LastAuthor : LQ
- * @lastTime : 2021-08-20 17:22:07
- * @FilePath : /u-view2.0/uview-ui/libs/config/props/swiperIndicator.js
- */
-export default {
- // swiperIndicator 组件
- swiperIndicator: {
- length: 0,
- current: 0,
- indicatorActiveColor: '',
- indicatorInactiveColor: '',
- indicatorMode: 'line'
- }
-}
diff --git a/uni_modules/uview-ui/libs/config/props/switch.js b/uni_modules/uview-ui/libs/config/props/switch.js
deleted file mode 100644
index e6400b4..0000000
--- a/uni_modules/uview-ui/libs/config/props/switch.js
+++ /dev/null
@@ -1,24 +0,0 @@
-/*
- * @Author : LQ
- * @Description :
- * @version : 1.0
- * @Date : 2021-08-20 16:44:21
- * @LastAuthor : LQ
- * @lastTime : 2021-08-20 17:22:24
- * @FilePath : /u-view2.0/uview-ui/libs/config/props/switch.js
- */
-export default {
- // switch
- switch: {
- loading: false,
- disabled: false,
- size: 25,
- activeColor: '#2979ff',
- inactiveColor: '#ffffff',
- value: false,
- activeValue: true,
- inactiveValue: false,
- asyncChange: false,
- space: 0
- }
-}
diff --git a/uni_modules/uview-ui/libs/config/props/tabbar.js b/uni_modules/uview-ui/libs/config/props/tabbar.js
deleted file mode 100644
index 187112d..0000000
--- a/uni_modules/uview-ui/libs/config/props/tabbar.js
+++ /dev/null
@@ -1,22 +0,0 @@
-/*
- * @Author : LQ
- * @Description :
- * @version : 1.0
- * @Date : 2021-08-20 16:44:21
- * @LastAuthor : LQ
- * @lastTime : 2021-08-20 17:22:40
- * @FilePath : /u-view2.0/uview-ui/libs/config/props/tabbar.js
- */
-export default {
- // tabbar
- tabbar: {
- value: null,
- safeAreaInsetBottom: true,
- border: true,
- zIndex: 1,
- activeColor: '#1989fa',
- inactiveColor: '#7d7e80',
- fixed: true,
- placeholder: true
- }
-}
diff --git a/uni_modules/uview-ui/libs/config/props/tabbarItem.js b/uni_modules/uview-ui/libs/config/props/tabbarItem.js
deleted file mode 100644
index d036ce5..0000000
--- a/uni_modules/uview-ui/libs/config/props/tabbarItem.js
+++ /dev/null
@@ -1,20 +0,0 @@
-/*
- * @Author : LQ
- * @Description :
- * @version : 1.0
- * @Date : 2021-08-20 16:44:21
- * @LastAuthor : LQ
- * @lastTime : 2021-08-20 17:22:55
- * @FilePath : /u-view2.0/uview-ui/libs/config/props/tabbarItem.js
- */
-export default {
- //
- tabbarItem: {
- name: null,
- icon: '',
- badge: null,
- dot: false,
- text: '',
- badgeStyle: 'top: 6px;right:2px;'
- }
-}
diff --git a/uni_modules/uview-ui/libs/config/props/tabs.js b/uni_modules/uview-ui/libs/config/props/tabs.js
deleted file mode 100644
index 81c794a..0000000
--- a/uni_modules/uview-ui/libs/config/props/tabs.js
+++ /dev/null
@@ -1,32 +0,0 @@
-/*
- * @Author : LQ
- * @Description :
- * @version : 1.0
- * @Date : 2021-08-20 16:44:21
- * @LastAuthor : LQ
- * @lastTime : 2021-08-20 17:23:14
- * @FilePath : /u-view2.0/uview-ui/libs/config/props/tabs.js
- */
-export default {
- //
- tabs: {
- duration: 300,
- list: () => [],
- lineColor: '#3c9cff',
- activeStyle: () => ({
- color: '#303133'
- }),
- inactiveStyle: () => ({
- color: '#606266'
- }),
- lineWidth: 20,
- lineHeight: 3,
- lineBgSize: 'cover',
- itemStyle: () => ({
- height: '44px'
- }),
- scrollable: true,
- current: 0,
- keyName: 'name'
- }
-}
diff --git a/uni_modules/uview-ui/libs/config/props/tag.js b/uni_modules/uview-ui/libs/config/props/tag.js
deleted file mode 100644
index 125ce94..0000000
--- a/uni_modules/uview-ui/libs/config/props/tag.js
+++ /dev/null
@@ -1,29 +0,0 @@
-/*
- * @Author : LQ
- * @Description :
- * @version : 1.0
- * @Date : 2021-08-20 16:44:21
- * @LastAuthor : LQ
- * @lastTime : 2021-08-20 17:23:37
- * @FilePath : /u-view2.0/uview-ui/libs/config/props/tag.js
- */
-export default {
- // tag 组件
- tag: {
- type: 'primary',
- disabled: false,
- size: 'medium',
- shape: 'square',
- text: '',
- bgColor: '',
- color: '',
- borderColor: '',
- closeColor: '#C6C7CB',
- name: '',
- plainFill: false,
- plain: false,
- closable: false,
- show: true,
- icon: ''
- }
-}
diff --git a/uni_modules/uview-ui/libs/config/props/text.js b/uni_modules/uview-ui/libs/config/props/text.js
deleted file mode 100644
index 7e73606..0000000
--- a/uni_modules/uview-ui/libs/config/props/text.js
+++ /dev/null
@@ -1,38 +0,0 @@
-/*
- * @Author : LQ
- * @Description :
- * @version : 1.0
- * @Date : 2021-08-20 16:44:21
- * @LastAuthor : LQ
- * @lastTime : 2021-08-20 17:23:58
- * @FilePath : /u-view2.0/uview-ui/libs/config/props/text.js
- */
-export default {
- // text 组件
- text: {
- type: '',
- show: true,
- text: '',
- prefixIcon: '',
- suffixIcon: '',
- mode: '',
- href: '',
- format: '',
- call: false,
- openType: '',
- bold: false,
- block: false,
- lines: '',
- color: '#303133',
- size: 15,
- iconStyle: () => ({
- fontSize: '15px'
- }),
- decoration: 'none',
- margin: 0,
- lineHeight: '',
- align: 'left',
- wordWrap: 'normal'
- }
-
-}
diff --git a/uni_modules/uview-ui/libs/config/props/textarea.js b/uni_modules/uview-ui/libs/config/props/textarea.js
deleted file mode 100644
index 44519f9..0000000
--- a/uni_modules/uview-ui/libs/config/props/textarea.js
+++ /dev/null
@@ -1,36 +0,0 @@
-/*
- * @Author : LQ
- * @Description :
- * @version : 1.0
- * @Date : 2021-08-20 16:44:21
- * @LastAuthor : LQ
- * @lastTime : 2021-08-20 17:24:32
- * @FilePath : /u-view2.0/uview-ui/libs/config/props/textarea.js
- */
-export default {
- // textarea 组件
- textarea: {
- value: '',
- placeholder: '',
- placeholderClass: 'textarea-placeholder',
- placeholderStyle: 'color: #c0c4cc',
- height: 70,
- confirmType: 'done',
- disabled: false,
- count: false,
- focus: false,
- autoHeight: false,
- fixed: false,
- cursorSpacing: 0,
- cursor: '',
- showConfirmBar: true,
- selectionStart: -1,
- selectionEnd: -1,
- adjustPosition: true,
- disableDefaultPadding: false,
- holdKeyboard: false,
- maxlength: 140,
- border: 'surround',
- formatter: null
- }
-}
diff --git a/uni_modules/uview-ui/libs/config/props/toast.js b/uni_modules/uview-ui/libs/config/props/toast.js
deleted file mode 100644
index a50134b..0000000
--- a/uni_modules/uview-ui/libs/config/props/toast.js
+++ /dev/null
@@ -1,30 +0,0 @@
-/*
- * @Author : LQ
- * @Description :
- * @version : 1.0
- * @Date : 2021-08-20 16:44:21
- * @LastAuthor : LQ
- * @lastTime : 2021-08-20 17:07:07
- * @FilePath : /u-view2.0/uview-ui/libs/config/props/toast.js
- */
-export default {
- // toast组件
- toast: {
- zIndex: 10090,
- loading: false,
- text: '',
- icon: '',
- type: '',
- loadingMode: '',
- show: '',
- overlay: false,
- position: 'center',
- params: () => {},
- duration: 2000,
- isTab: false,
- url: '',
- callback: null,
- back: false
- }
-
-}
diff --git a/uni_modules/uview-ui/libs/config/props/toolbar.js b/uni_modules/uview-ui/libs/config/props/toolbar.js
deleted file mode 100644
index 3289967..0000000
--- a/uni_modules/uview-ui/libs/config/props/toolbar.js
+++ /dev/null
@@ -1,21 +0,0 @@
-/*
- * @Author : LQ
- * @Description :
- * @version : 1.0
- * @Date : 2021-08-20 16:44:21
- * @LastAuthor : LQ
- * @lastTime : 2021-08-20 17:24:55
- * @FilePath : /u-view2.0/uview-ui/libs/config/props/toolbar.js
- */
-export default {
- // toolbar 组件
- toolbar: {
- show: true,
- cancelText: '取消',
- confirmText: '确认',
- cancelColor: '#909193',
- confirmColor: '#3c9cff',
- title: ''
- }
-
-}
diff --git a/uni_modules/uview-ui/libs/config/props/tooltip.js b/uni_modules/uview-ui/libs/config/props/tooltip.js
deleted file mode 100644
index 115e030..0000000
--- a/uni_modules/uview-ui/libs/config/props/tooltip.js
+++ /dev/null
@@ -1,25 +0,0 @@
-/*
- * @Author : LQ
- * @Description :
- * @version : 1.0
- * @Date : 2021-08-20 16:44:21
- * @LastAuthor : LQ
- * @lastTime : 2021-08-20 17:25:14
- * @FilePath : /u-view2.0/uview-ui/libs/config/props/tooltip.js
- */
-export default {
- // tooltip 组件
- tooltip: {
- text: '',
- copyText: '',
- size: 14,
- color: '#606266',
- bgColor: 'transparent',
- direction: 'top',
- zIndex: 10071,
- showCopy: true,
- buttons: () => [],
- overlay: true,
- showToast: true
- }
-}
diff --git a/uni_modules/uview-ui/libs/config/props/transition.js b/uni_modules/uview-ui/libs/config/props/transition.js
deleted file mode 100644
index 0fad118..0000000
--- a/uni_modules/uview-ui/libs/config/props/transition.js
+++ /dev/null
@@ -1,18 +0,0 @@
-/*
- * @Author : LQ
- * @Description :
- * @version : 1.0
- * @Date : 2021-08-20 16:44:21
- * @LastAuthor : LQ
- * @lastTime : 2021-08-20 16:59:00
- * @FilePath : /u-view2.0/uview-ui/libs/config/props/transition.js
- */
-export default {
- // transition动画组件的props
- transition: {
- show: false,
- mode: 'fade',
- duration: '300',
- timingFunction: 'ease-out'
- }
-}
diff --git a/uni_modules/uview-ui/libs/config/props/upload.js b/uni_modules/uview-ui/libs/config/props/upload.js
deleted file mode 100644
index fc7ca92..0000000
--- a/uni_modules/uview-ui/libs/config/props/upload.js
+++ /dev/null
@@ -1,36 +0,0 @@
-/*
- * @Author : LQ
- * @Description :
- * @version : 1.0
- * @Date : 2021-08-20 16:44:21
- * @LastAuthor : LQ
- * @lastTime : 2021-08-20 17:09:50
- * @FilePath : /u-view2.0/uview-ui/libs/config/props/upload.js
- */
-export default {
- // upload组件
- upload: {
- accept: 'image',
- capture: () => ['album', 'camera'],
- compressed: true,
- camera: 'back',
- maxDuration: 60,
- uploadIcon: 'camera-fill',
- uploadIconColor: '#D3D4D6',
- useBeforeRead: false,
- previewFullImage: true,
- maxCount: 52,
- disabled: false,
- imageMode: 'aspectFill',
- name: '',
- sizeType: () => ['original', 'compressed'],
- multiple: false,
- deletable: true,
- maxSize: Number.MAX_VALUE,
- fileList: () => [],
- uploadText: '',
- width: 80,
- height: 80,
- previewImage: true
- }
-}
diff --git a/uni_modules/uview-ui/libs/config/zIndex.js b/uni_modules/uview-ui/libs/config/zIndex.js
deleted file mode 100644
index 5fc3682..0000000
--- a/uni_modules/uview-ui/libs/config/zIndex.js
+++ /dev/null
@@ -1,20 +0,0 @@
-// uniapp在H5中各API的z-index值如下:
-/**
- * actionsheet: 999
- * modal: 999
- * navigate: 998
- * tabbar: 998
- * toast: 999
- */
-
-export default {
- toast: 10090,
- noNetwork: 10080,
- // popup包含popup,actionsheet,keyboard,picker的值
- popup: 10075,
- mask: 10070,
- navbar: 980,
- topTips: 975,
- sticky: 970,
- indexListSticky: 965
-}
diff --git a/uni_modules/uview-ui/libs/css/color.scss b/uni_modules/uview-ui/libs/css/color.scss
deleted file mode 100644
index 3237ba4..0000000
--- a/uni_modules/uview-ui/libs/css/color.scss
+++ /dev/null
@@ -1,155 +0,0 @@
-.u-primary-light {
- color: $u-primary-light;
-}
-
-.u-warning-light {
- color: $u-warning-light;
-}
-
-.u-success-light {
- color: $u-success-light;
-}
-
-.u-error-light {
- color: $u-error-light;
-}
-
-.u-info-light {
- color: $u-info-light;
-}
-
-.u-primary-light-bg {
- background-color: $u-primary-light;
-}
-
-.u-warning-light-bg {
- background-color: $u-warning-light;
-}
-
-.u-success-light-bg {
- background-color: $u-success-light;
-}
-
-.u-error-light-bg {
- background-color: $u-error-light;
-}
-
-.u-info-light-bg {
- background-color: $u-info-light;
-}
-
-.u-primary-dark {
- color: $u-primary-dark;
-}
-
-.u-warning-dark {
- color: $u-warning-dark;
-}
-
-.u-success-dark {
- color: $u-success-dark;
-}
-
-.u-error-dark {
- color: $u-error-dark;
-}
-
-.u-info-dark {
- color: $u-info-dark;
-}
-
-.u-primary-dark-bg {
- background-color: $u-primary-dark;
-}
-
-.u-warning-dark-bg {
- background-color: $u-warning-dark;
-}
-
-.u-success-dark-bg {
- background-color: $u-success-dark;
-}
-
-.u-error-dark-bg {
- background-color: $u-error-dark;
-}
-
-.u-info-dark-bg {
- background-color: $u-info-dark;
-}
-
-.u-primary-disabled {
- color: $u-primary-disabled;
-}
-
-.u-warning-disabled {
- color: $u-warning-disabled;
-}
-
-.u-success-disabled {
- color: $u-success-disabled;
-}
-
-.u-error-disabled {
- color: $u-error-disabled;
-}
-
-.u-info-disabled {
- color: $u-info-disabled;
-}
-
-.u-primary {
- color: $u-primary;
-}
-
-.u-warning {
- color: $u-warning;
-}
-
-.u-success {
- color: $u-success;
-}
-
-.u-error {
- color: $u-error;
-}
-
-.u-info {
- color: $u-info;
-}
-
-.u-primary-bg {
- background-color: $u-primary;
-}
-
-.u-warning-bg {
- background-color: $u-warning;
-}
-
-.u-success-bg {
- background-color: $u-success;
-}
-
-.u-error-bg {
- background-color: $u-error;
-}
-
-.u-info-bg {
- background-color: $u-info;
-}
-
-.u-main-color {
- color: $u-main-color;
-}
-
-.u-content-color {
- color: $u-content-color;
-}
-
-.u-tips-color {
- color: $u-tips-color;
-}
-
-.u-light-color {
- color: $u-light-color;
-}
diff --git a/uni_modules/uview-ui/libs/css/common.scss b/uni_modules/uview-ui/libs/css/common.scss
deleted file mode 100644
index 11f1e53..0000000
--- a/uni_modules/uview-ui/libs/css/common.scss
+++ /dev/null
@@ -1,97 +0,0 @@
-// 超出行数,自动显示行尾省略号,最多5行
-// 来自uView的温馨提示:当您在控制台看到此报错,说明需要在App.vue的style标签加上【lang="scss"】
-@for $i from 1 through 5 {
- .u-line-#{$i} {
- /* #ifdef APP-NVUE */
- // nvue下,可以直接使用lines属性,这是weex特有样式
- lines: $i;
- text-overflow: ellipsis;
- overflow: hidden;
- flex: 1;
- /* #endif */
-
- /* #ifndef APP-NVUE */
- // vue下,单行和多行显示省略号需要单独处理
- @if $i == '1' {
- overflow: hidden;
- white-space: nowrap;
- text-overflow: ellipsis;
- } @else {
- display: -webkit-box!important;
- overflow: hidden;
- text-overflow: ellipsis;
- word-break: break-all;
- -webkit-line-clamp: $i;
- -webkit-box-orient: vertical!important;
- }
- /* #endif */
- }
-}
-
-
-// 此处加上!important并非随意乱用,而是因为目前*.nvue页面编译到H5时,
-// App.vue的样式会被uni-app的view元素的自带border属性覆盖,导致无效
-// 综上,这是uni-app的缺陷导致我们为了多端兼容,而必须要加上!important
-// 移动端兼容性较好,直接使用0.5px去实现细边框,不使用伪元素形式实现
-.u-border {
- border-width: 0.5px!important;
- border-color: $u-border-color!important;
- border-style: solid;
-}
-
-.u-border-top {
- border-top-width: 0.5px!important;
- border-color: $u-border-color!important;
- border-top-style: solid;
-}
-
-.u-border-left {
- border-left-width: 0.5px!important;
- border-color: $u-border-color!important;
- border-left-style: solid;
-}
-
-.u-border-right {
- border-right-width: 0.5px!important;
- border-color: $u-border-color!important;
- border-right-style: solid;
-}
-
-.u-border-bottom {
- border-bottom-width: 0.5px!important;
- border-color: $u-border-color!important;
- border-bottom-style: solid;
-}
-
-.u-border-top-bottom {
- border-top-width: 0.5px!important;
- border-bottom-width: 0.5px!important;
- border-color: $u-border-color!important;
- border-top-style: solid;
- border-bottom-style: solid;
-}
-
-// 去除button的所有默认样式,让其表现跟普通的view、text元素一样
-.u-reset-button {
- padding: 0;
- background-color: transparent;
- /* #ifndef APP-PLUS */
- font-size: inherit;
- line-height: inherit;
- color: inherit;
- /* #endif */
- /* #ifdef APP-NVUE */
- border-width: 0;
- /* #endif */
-}
-
-/* #ifndef APP-NVUE */
-.u-reset-button::after {
- border: none;
-}
-/* #endif */
-
-.u-hover-class {
- opacity: 0.7;
-}
-
diff --git a/uni_modules/uview-ui/libs/css/components.scss b/uni_modules/uview-ui/libs/css/components.scss
deleted file mode 100644
index 766679e..0000000
--- a/uni_modules/uview-ui/libs/css/components.scss
+++ /dev/null
@@ -1,15 +0,0 @@
-@import "./mixin.scss";
-
-/* #ifndef APP-NVUE */
-// 由于uView是基于nvue环境进行开发的,此环境中普通元素默认为flex-direction: column;
-// 所以在非nvue中,需要对元素进行重置为flex-direction: column; 否则可能会表现异常
-view, scroll-view, swiper-item {
- display: flex;
- flex-direction: column;
- flex-shrink: 0;
- flex-grow: 0;
- flex-basis: auto;
- align-items: stretch;
- align-content: flex-start;
-}
-/* #endif */
diff --git a/uni_modules/uview-ui/libs/css/flex.scss b/uni_modules/uview-ui/libs/css/flex.scss
deleted file mode 100644
index 6d61be9..0000000
--- a/uni_modules/uview-ui/libs/css/flex.scss
+++ /dev/null
@@ -1,257 +0,0 @@
-// .u-flex {
-// @include vue-flex(row);
-// }
-
-// .u-flex-x {
-// @include vue-flex(row);
-// }
-
-// .u-flex-y {
-// @include vue-flex(column);
-// }
-
-// .u-flex-xy-center {
-// @include vue-flex(row);
-// justify-content: center;
-// align-items: center;
-// }
-
-// .u-flex-x-center {
-// @include vue-flex(row);
-// justify-content: center;
-// }
-
-// .u-flex-y-center {
-// @include vue-flex(column);
-// justify-content: center;
-// }
-
-
-// flex布局
-.u-flex,
-.u-flex-row,
-.u-flex-x {
- @include flex;
-}
-
-.u-flex-y,
-.u-flex-column {
- @include flex(column);
-}
-
-.u-flex-x-center {
- @include flex;
- justify-content: center;
-}
-
-.u-flex-xy-center {
- @include flex;
- justify-content: center;
- align-items: center;
-}
-
-.u-flex-y-center {
- @include flex;
- align-items: center;
-}
-
-.u-flex-x-left {
- @include flex;
-}
-
-.u-flex-x-reverse,
-.u-flex-row-reverse {
- flex-direction: row-reverse;
-}
-
-.u-flex-y-reverse,
-.u-flex-column-reverse {
- flex-direction: column-reverse;
-}
-
-/* #ifndef APP-NVUE */
-// 此处为vue版本的简写,因为nvue不支持同时作用于两个类名的样式写法
-// nvue下只能写成class="u-flex-x u-flex-x-reverse的形式"
-.u-flex.u-flex-reverse,
-.u-flex-row.u-flex-reverse,
-.u-flex-x.u-flex-reverse {
- flex-direction: row-reverse;
-}
-
-.u-flex-column.u-flex-reverse,
-.u-flex-y.u-flex-reverse {
- flex-direction: column-reverse;
-}
-
-// 自动伸缩
-.u-flex-fill {
- flex: 1 1 auto
-}
-
-// 边界自动伸缩
-.u-margin-top-auto,
-.u-m-t-auto {
- margin-top: auto !important
-}
-
-.u-margin-right-auto,
-.u-m-r-auto {
- margin-right: auto !important
-}
-
-.u-margin-bottom-auto,
-.u-m-b-auto {
- margin-bottom: auto !important
-}
-
-.u-margin-left-auto,
-.u-m-l-auto {
- margin-left: auto !important
-}
-
-.u-margin-center-auto,
-.u-m-c-auto {
- margin-left: auto !important;
- margin-right: auto !important
-}
-
-.u-margin-middle-auto,
-.u-m-m-auto {
- margin-top: auto !important;
- margin-bottom: auto !important
-}
-/* #endif */
-
-// 换行
-.u-flex-wrap {
- flex-wrap: wrap;
-}
-
-// 反向换行
-.u-flex-wrap-reverse {
- flex-wrap: wrap-reverse;
-}
-
-// 主轴起点对齐
-.u-flex-start {
- justify-content: flex-start
-}
-
-// 主轴中间对齐
-.u-flex-center {
- justify-content: center
-}
-
-// 主轴终点对齐
-.u-flex-end {
- justify-content: flex-end
-}
-
-// 主轴等比间距
-.u-flex-between {
- justify-content: space-between
-}
-
-// 主轴均分间距
-.u-flex-around {
- justify-content: space-around
-}
-
-// 交叉轴起点对齐
-.u-flex-items-start {
- align-items: flex-start
-}
-
-// 交叉轴中间对齐
-.u-flex-items-center {
- align-items: center
-}
-
-// 交叉轴终点对齐
-.u-flex-items-end {
- align-items: flex-end
-}
-
-// 交叉轴第一行文字基线对齐
-.u-flex-items-baseline {
- align-items: baseline
-}
-
-// 交叉轴方向拉伸对齐
-.u-flex-items-stretch {
- align-items: stretch
-}
-
-
-// 以下属于项目(子元素)的类
-
-// 子元素交叉轴起点对齐
-.u-flex-self-start {
- align-self: flex-start
-}
-
-// 子元素交叉轴居中对齐
-.u-flex-self-center {
- align-self: center
-}
-
-// 子元素交叉轴终点对齐
-.u-flex-self-end {
- align-self: flex-end
-}
-
-// 子元素交叉轴第一行文字基线对齐
-.u-flex-self-baseline {
- align-self: baseline
-}
-
-// 子元素交叉轴方向拉伸对齐
-.u-flex-self-stretch {
- align-self: stretch
-}
-
-// 多轴交叉时的对齐方式
-
-// 起点对齐
-.u-flex-content-start {
- align-content: flex-start
-}
-
-// 居中对齐
-.u-flex-content-center {
- align-content: center
-}
-
-// 终点对齐
-.u-flex-content-end {
- align-content: flex-end
-}
-
-// 两端对齐
-.u-flex-content-between {
- align-content: space-between
-}
-
-// 均分间距
-.u-flex-content-around {
- align-content: space-around
-}
-
-// 全部居中对齐
-.u-flex-middle {
- justify-content: center;
- align-items: center;
- align-self: center;
- align-content: center
-}
-
-// 是否可以放大
-.u-flex-grow {
- flex-grow: 1
-}
-
-// 是否可以缩小
-.u-flex-shrink {
- flex-shrink: 1
-}
-
diff --git a/uni_modules/uview-ui/libs/css/h5.scss b/uni_modules/uview-ui/libs/css/h5.scss
deleted file mode 100644
index e69de29..0000000
--- a/uni_modules/uview-ui/libs/css/h5.scss
+++ /dev/null
diff --git a/uni_modules/uview-ui/libs/css/mixin.scss b/uni_modules/uview-ui/libs/css/mixin.scss
deleted file mode 100644
index 7e35b3b..0000000
--- a/uni_modules/uview-ui/libs/css/mixin.scss
+++ /dev/null
@@ -1,8 +0,0 @@
-// 通过scss的mixin功能,把原来需要写4行的css,变成一行
-// 目的是保持代码干净整洁,不至于在nvue下,到处都要写display:flex的条件编译
-@mixin flex($direction: row) {
- /* #ifndef APP-NVUE */
- display: flex;
- /* #endif */
- flex-direction: $direction;
-}
diff --git a/uni_modules/uview-ui/libs/css/mp.scss b/uni_modules/uview-ui/libs/css/mp.scss
deleted file mode 100644
index e69de29..0000000
--- a/uni_modules/uview-ui/libs/css/mp.scss
+++ /dev/null
diff --git a/uni_modules/uview-ui/libs/css/nvue.scss b/uni_modules/uview-ui/libs/css/nvue.scss
deleted file mode 100644
index e69de29..0000000
--- a/uni_modules/uview-ui/libs/css/nvue.scss
+++ /dev/null
diff --git a/uni_modules/uview-ui/libs/css/vue.scss b/uni_modules/uview-ui/libs/css/vue.scss
deleted file mode 100644
index 3ae4d29..0000000
--- a/uni_modules/uview-ui/libs/css/vue.scss
+++ /dev/null
@@ -1,27 +0,0 @@
-// 历遍生成4个方向的底部安全区
-@each $d in top, right, bottom, left {
- .u-safe-area-inset-#{$d} {
- padding-#{$d}: 0;
- padding-#{$d}: constant(safe-area-inset-#{$d});
- padding-#{$d}: env(safe-area-inset-#{$d});
- }
-}
-
-//提升H5端uni.toast()的层级,避免被uView的modal等遮盖
-/* #ifdef H5 */
-uni-toast {
- z-index: 10090;
-}
-uni-toast .uni-toast {
- z-index: 10090;
-}
-/* #endif */
-
-// 隐藏scroll-view的滚动条
-::-webkit-scrollbar {
- display: none;
- width: 0 !important;
- height: 0 !important;
- -webkit-appearance: none;
- background: transparent;
-}
\ No newline at end of file
diff --git a/uni_modules/uview-ui/libs/function/colorGradient.js b/uni_modules/uview-ui/libs/function/colorGradient.js
deleted file mode 100644
index 9727732..0000000
--- a/uni_modules/uview-ui/libs/function/colorGradient.js
+++ /dev/null
@@ -1,134 +0,0 @@
-/**
- * 求两个颜色之间的渐变值
- * @param {string} startColor 开始的颜色
- * @param {string} endColor 结束的颜色
- * @param {number} step 颜色等分的份额
- * */
-function colorGradient(startColor = 'rgb(0, 0, 0)', endColor = 'rgb(255, 255, 255)', step = 10) {
- const startRGB = hexToRgb(startColor, false) // 转换为rgb数组模式
- const startR = startRGB[0]
- const startG = startRGB[1]
- const startB = startRGB[2]
-
- const endRGB = hexToRgb(endColor, false)
- const endR = endRGB[0]
- const endG = endRGB[1]
- const endB = endRGB[2]
-
- const sR = (endR - startR) / step // 总差值
- const sG = (endG - startG) / step
- const sB = (endB - startB) / step
- const colorArr = []
- for (let i = 0; i < step; i++) {
- // 计算每一步的hex值
- let hex = rgbToHex(`rgb(${Math.round((sR * i + startR))},${Math.round((sG * i + startG))},${Math.round((sB
- * i + startB))})`)
- // 确保第一个颜色值为startColor的值
- if (i === 0) hex = rgbToHex(startColor)
- // 确保最后一个颜色值为endColor的值
- if (i === step - 1) hex = rgbToHex(endColor)
- colorArr.push(hex)
- }
- return colorArr
-}
-
-// 将hex表示方式转换为rgb表示方式(这里返回rgb数组模式)
-function hexToRgb(sColor, str = true) {
- const reg = /^#([0-9a-fA-f]{3}|[0-9a-fA-f]{6})$/
- sColor = String(sColor).toLowerCase()
- if (sColor && reg.test(sColor)) {
- if (sColor.length === 4) {
- let sColorNew = '#'
- for (let i = 1; i < 4; i += 1) {
- sColorNew += sColor.slice(i, i + 1).concat(sColor.slice(i, i + 1))
- }
- sColor = sColorNew
- }
- // 处理六位的颜色值
- const sColorChange = []
- for (let i = 1; i < 7; i += 2) {
- sColorChange.push(parseInt(`0x${sColor.slice(i, i + 2)}`))
- }
- if (!str) {
- return sColorChange
- }
- return `rgb(${sColorChange[0]},${sColorChange[1]},${sColorChange[2]})`
- } if (/^(rgb|RGB)/.test(sColor)) {
- const arr = sColor.replace(/(?:\(|\)|rgb|RGB)*/g, '').split(',')
- return arr.map((val) => Number(val))
- }
- return sColor
-}
-
-// 将rgb表示方式转换为hex表示方式
-function rgbToHex(rgb) {
- const _this = rgb
- const reg = /^#([0-9a-fA-f]{3}|[0-9a-fA-f]{6})$/
- if (/^(rgb|RGB)/.test(_this)) {
- const aColor = _this.replace(/(?:\(|\)|rgb|RGB)*/g, '').split(',')
- let strHex = '#'
- for (let i = 0; i < aColor.length; i++) {
- let hex = Number(aColor[i]).toString(16)
- hex = String(hex).length == 1 ? `${0}${hex}` : hex // 保证每个rgb的值为2位
- if (hex === '0') {
- hex += hex
- }
- strHex += hex
- }
- if (strHex.length !== 7) {
- strHex = _this
- }
- return strHex
- } if (reg.test(_this)) {
- const aNum = _this.replace(/#/, '').split('')
- if (aNum.length === 6) {
- return _this
- } if (aNum.length === 3) {
- let numHex = '#'
- for (let i = 0; i < aNum.length; i += 1) {
- numHex += (aNum[i] + aNum[i])
- }
- return numHex
- }
- } else {
- return _this
- }
-}
-
-/**
-* JS颜色十六进制转换为rgb或rgba,返回的格式为 rgba(255,255,255,0.5)字符串
-* sHex为传入的十六进制的色值
-* alpha为rgba的透明度
-*/
-function colorToRgba(color, alpha) {
- color = rgbToHex(color)
- // 十六进制颜色值的正则表达式
- const reg = /^#([0-9a-fA-f]{3}|[0-9a-fA-f]{6})$/
- /* 16进制颜色转为RGB格式 */
- let sColor = String(color).toLowerCase()
- if (sColor && reg.test(sColor)) {
- if (sColor.length === 4) {
- let sColorNew = '#'
- for (let i = 1; i < 4; i += 1) {
- sColorNew += sColor.slice(i, i + 1).concat(sColor.slice(i, i + 1))
- }
- sColor = sColorNew
- }
- // 处理六位的颜色值
- const sColorChange = []
- for (let i = 1; i < 7; i += 2) {
- sColorChange.push(parseInt(`0x${sColor.slice(i, i + 2)}`))
- }
- // return sColorChange.join(',')
- return `rgba(${sColorChange.join(',')},${alpha})`
- }
-
- return sColor
-}
-
-export default {
- colorGradient,
- hexToRgb,
- rgbToHex,
- colorToRgba
-}
diff --git a/uni_modules/uview-ui/libs/function/debounce.js b/uni_modules/uview-ui/libs/function/debounce.js
deleted file mode 100644
index ad3996b..0000000
--- a/uni_modules/uview-ui/libs/function/debounce.js
+++ /dev/null
@@ -1,29 +0,0 @@
-let timeout = null
-
-/**
- * 防抖原理:一定时间内,只有最后一次操作,再过wait毫秒后才执行函数
- *
- * @param {Function} func 要执行的回调函数
- * @param {Number} wait 延时的时间
- * @param {Boolean} immediate 是否立即执行
- * @return null
- */
-function debounce(func, wait = 500, immediate = false) {
- // 清除定时器
- if (timeout !== null) clearTimeout(timeout)
- // 立即执行,此类情况一般用不到
- if (immediate) {
- const callNow = !timeout
- timeout = setTimeout(() => {
- timeout = null
- }, wait)
- if (callNow) typeof func === 'function' && func()
- } else {
- // 设置定时器,当最后一次操作后,timeout不会再被清除,所以在延时wait毫秒后执行func回调方法
- timeout = setTimeout(() => {
- typeof func === 'function' && func()
- }, wait)
- }
-}
-
-export default debounce
diff --git a/uni_modules/uview-ui/libs/function/digit.js b/uni_modules/uview-ui/libs/function/digit.js
deleted file mode 100644
index c8260a0..0000000
--- a/uni_modules/uview-ui/libs/function/digit.js
+++ /dev/null
@@ -1,167 +0,0 @@
-let _boundaryCheckingState = true; // 是否进行越界检查的全局开关
-
-/**
- * 把错误的数据转正
- * @private
- * @example strip(0.09999999999999998)=0.1
- */
-function strip(num, precision = 15) {
- return +parseFloat(Number(num).toPrecision(precision));
-}
-
-/**
- * Return digits length of a number
- * @private
- * @param {*number} num Input number
- */
-function digitLength(num) {
- // Get digit length of e
- const eSplit = num.toString().split(/[eE]/);
- const len = (eSplit[0].split('.')[1] || '').length - +(eSplit[1] || 0);
- return len > 0 ? len : 0;
-}
-
-/**
- * 把小数转成整数,如果是小数则放大成整数
- * @private
- * @param {*number} num 输入数
- */
-function float2Fixed(num) {
- if (num.toString().indexOf('e') === -1) {
- return Number(num.toString().replace('.', ''));
- }
- const dLen = digitLength(num);
- return dLen > 0 ? strip(Number(num) * Math.pow(10, dLen)) : Number(num);
-}
-
-/**
- * 检测数字是否越界,如果越界给出提示
- * @private
- * @param {*number} num 输入数
- */
-function checkBoundary(num) {
- if (_boundaryCheckingState) {
- if (num > Number.MAX_SAFE_INTEGER || num < Number.MIN_SAFE_INTEGER) {
- console.warn(`${num} 超出了精度限制,结果可能不正确`);
- }
- }
-}
-
-/**
- * 把递归操作扁平迭代化
- * @param {number[]} arr 要操作的数字数组
- * @param {function} operation 迭代操作
- * @private
- */
-function iteratorOperation(arr, operation) {
- const [num1, num2, ...others] = arr;
- let res = operation(num1, num2);
-
- others.forEach((num) => {
- res = operation(res, num);
- });
-
- return res;
-}
-
-/**
- * 高精度乘法
- * @export
- */
-export function times(...nums) {
- if (nums.length > 2) {
- return iteratorOperation(nums, times);
- }
-
- const [num1, num2] = nums;
- const num1Changed = float2Fixed(num1);
- const num2Changed = float2Fixed(num2);
- const baseNum = digitLength(num1) + digitLength(num2);
- const leftValue = num1Changed * num2Changed;
-
- checkBoundary(leftValue);
-
- return leftValue / Math.pow(10, baseNum);
-}
-
-/**
- * 高精度加法
- * @export
- */
-export function plus(...nums) {
- if (nums.length > 2) {
- return iteratorOperation(nums, plus);
- }
-
- const [num1, num2] = nums;
- // 取最大的小数位
- const baseNum = Math.pow(10, Math.max(digitLength(num1), digitLength(num2)));
- // 把小数都转为整数然后再计算
- return (times(num1, baseNum) + times(num2, baseNum)) / baseNum;
-}
-
-/**
- * 高精度减法
- * @export
- */
-export function minus(...nums) {
- if (nums.length > 2) {
- return iteratorOperation(nums, minus);
- }
-
- const [num1, num2] = nums;
- const baseNum = Math.pow(10, Math.max(digitLength(num1), digitLength(num2)));
- return (times(num1, baseNum) - times(num2, baseNum)) / baseNum;
-}
-
-/**
- * 高精度除法
- * @export
- */
-export function divide(...nums) {
- if (nums.length > 2) {
- return iteratorOperation(nums, divide);
- }
-
- const [num1, num2] = nums;
- const num1Changed = float2Fixed(num1);
- const num2Changed = float2Fixed(num2);
- checkBoundary(num1Changed);
- checkBoundary(num2Changed);
- // 重要,这里必须用strip进行修正
- return times(num1Changed / num2Changed, strip(Math.pow(10, digitLength(num2) - digitLength(num1))));
-}
-
-/**
- * 四舍五入
- * @export
- */
-export function round(num, ratio) {
- const base = Math.pow(10, ratio);
- let result = divide(Math.round(Math.abs(times(num, base))), base);
- if (num < 0 && result !== 0) {
- result = times(result, -1);
- }
- // 位数不足则补0
- return result;
-}
-
-/**
- * 是否进行边界检查,默认开启
- * @param flag 标记开关,true 为开启,false 为关闭,默认为 true
- * @export
- */
-export function enableBoundaryChecking(flag = true) {
- _boundaryCheckingState = flag;
-}
-
-
-export default {
- times,
- plus,
- minus,
- divide,
- round,
- enableBoundaryChecking,
-};
-
diff --git a/uni_modules/uview-ui/libs/function/index.js b/uni_modules/uview-ui/libs/function/index.js
deleted file mode 100644
index bd80ee7..0000000
--- a/uni_modules/uview-ui/libs/function/index.js
+++ /dev/null
@@ -1,731 +0,0 @@
-import test from './test.js'
-import { round } from './digit.js'
-/**
- * @description 如果value小于min,取min;如果value大于max,取max
- * @param {number} min
- * @param {number} max
- * @param {number} value
- */
-function range(min = 0, max = 0, value = 0) {
- return Math.max(min, Math.min(max, Number(value)))
-}
-
-/**
- * @description 用于获取用户传递值的px值 如果用户传递了"xxpx"或者"xxrpx",取出其数值部分,如果是"xxxrpx"还需要用过uni.upx2px进行转换
- * @param {number|string} value 用户传递值的px值
- * @param {boolean} unit
- * @returns {number|string}
- */
-function getPx(value, unit = false) {
- if (test.number(value)) {
- return unit ? `${value}px` : Number(value)
- }
- // 如果带有rpx,先取出其数值部分,再转为px值
- if (/(rpx|upx)$/.test(value)) {
- return unit ? `${uni.upx2px(parseInt(value))}px` : Number(uni.upx2px(parseInt(value)))
- }
- return unit ? `${parseInt(value)}px` : parseInt(value)
-}
-
-/**
- * @description 进行延时,以达到可以简写代码的目的 比如: await uni.$u.sleep(20)将会阻塞20ms
- * @param {number} value 堵塞时间 单位ms 毫秒
- * @returns {Promise} 返回promise
- */
-function sleep(value = 30) {
- return new Promise((resolve) => {
- setTimeout(() => {
- resolve()
- }, value)
- })
-}
-/**
- * @description 运行期判断平台
- * @returns {string} 返回所在平台(小写)
- * @link 运行期判断平台 https://uniapp.dcloud.io/frame?id=判断平台
- */
-function os() {
- return uni.getSystemInfoSync().platform.toLowerCase()
-}
-/**
- * @description 获取系统信息同步接口
- * @link 获取系统信息同步接口 https://uniapp.dcloud.io/api/system/info?id=getsysteminfosync
- */
-function sys() {
- return uni.getSystemInfoSync()
-}
-
-/**
- * @description 取一个区间数
- * @param {Number} min 最小值
- * @param {Number} max 最大值
- */
-function random(min, max) {
- if (min >= 0 && max > 0 && max >= min) {
- const gab = max - min + 1
- return Math.floor(Math.random() * gab + min)
- }
- return 0
-}
-
-/**
- * @param {Number} len uuid的长度
- * @param {Boolean} firstU 将返回的首字母置为"u"
- * @param {Nubmer} radix 生成uuid的基数(意味着返回的字符串都是这个基数),2-二进制,8-八进制,10-十进制,16-十六进制
- */
-function guid(len = 32, firstU = true, radix = null) {
- const chars = '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz'.split('')
- const uuid = []
- radix = radix || chars.length
-
- if (len) {
- // 如果指定uuid长度,只是取随机的字符,0|x为位运算,能去掉x的小数位,返回整数位
- for (let i = 0; i < len; i++) uuid[i] = chars[0 | Math.random() * radix]
- } else {
- let r
- // rfc4122标准要求返回的uuid中,某些位为固定的字符
- uuid[8] = uuid[13] = uuid[18] = uuid[23] = '-'
- uuid[14] = '4'
-
- for (let i = 0; i < 36; i++) {
- if (!uuid[i]) {
- r = 0 | Math.random() * 16
- uuid[i] = chars[(i == 19) ? (r & 0x3) | 0x8 : r]
- }
- }
- }
- // 移除第一个字符,并用u替代,因为第一个字符为数值时,该guuid不能用作id或者class
- if (firstU) {
- uuid.shift()
- return `u${uuid.join('')}`
- }
- return uuid.join('')
-}
-
-/**
-* @description 获取父组件的参数,因为支付宝小程序不支持provide/inject的写法
- this.$parent在非H5中,可以准确获取到父组件,但是在H5中,需要多次this.$parent.$parent.xxx
- 这里默认值等于undefined有它的含义,因为最顶层元素(组件)的$parent就是undefined,意味着不传name
- 值(默认为undefined),就是查找最顶层的$parent
-* @param {string|undefined} name 父组件的参数名
-*/
-function $parent(name = undefined) {
- let parent = this.$parent
- // 通过while历遍,这里主要是为了H5需要多层解析的问题
- while (parent) {
- // 父组件
- if (parent.$options && parent.$options.name !== name) {
- // 如果组件的name不相等,继续上一级寻找
- parent = parent.$parent
- } else {
- return parent
- }
- }
- return false
-}
-
-/**
- * @description 样式转换
- * 对象转字符串,或者字符串转对象
- * @param {object | string} customStyle 需要转换的目标
- * @param {String} target 转换的目的,object-转为对象,string-转为字符串
- * @returns {object|string}
- */
-function addStyle(customStyle, target = 'object') {
- // 字符串转字符串,对象转对象情形,直接返回
- if (test.empty(customStyle) || typeof(customStyle) === 'object' && target === 'object' || target === 'string' &&
- typeof(customStyle) === 'string') {
- return customStyle
- }
- // 字符串转对象
- if (target === 'object') {
- // 去除字符串样式中的两端空格(中间的空格不能去掉,比如padding: 20px 0如果去掉了就错了),空格是无用的
- customStyle = trim(customStyle)
- // 根据";"将字符串转为数组形式
- const styleArray = customStyle.split(';')
- const style = {}
- // 历遍数组,拼接成对象
- for (let i = 0; i < styleArray.length; i++) {
- // 'font-size:20px;color:red;',如此最后字符串有";"的话,会导致styleArray最后一个元素为空字符串,这里需要过滤
- if (styleArray[i]) {
- const item = styleArray[i].split(':')
- style[trim(item[0])] = trim(item[1])
- }
- }
- return style
- }
- // 这里为对象转字符串形式
- let string = ''
- for (const i in customStyle) {
- // 驼峰转为中划线的形式,否则css内联样式,无法识别驼峰样式属性名
- const key = i.replace(/([A-Z])/g, '-$1').toLowerCase()
- string += `${key}:${customStyle[i]};`
- }
- // 去除两端空格
- return trim(string)
-}
-
-/**
- * @description 添加单位,如果有rpx,upx,%,px等单位结尾或者值为auto,直接返回,否则加上px单位结尾
- * @param {string|number} value 需要添加单位的值
- * @param {string} unit 添加的单位名 比如px
- */
-function addUnit(value = 'auto', unit = uni?.$u?.config?.unit ?? 'px') {
- value = String(value)
- // 用uView内置验证规则中的number判断是否为数值
- return test.number(value) ? `${value}${unit}` : value
-}
-
-/**
- * @description 深度克隆
- * @param {object} obj 需要深度克隆的对象
- * @param cache 缓存
- * @returns {*} 克隆后的对象或者原值(不是对象)
- */
-function deepClone(obj, cache = new WeakMap()) {
- if (obj === null || typeof obj !== 'object') return obj;
- if (cache.has(obj)) return cache.get(obj);
- let clone;
- if (obj instanceof Date) {
- clone = new Date(obj.getTime());
- } else if (obj instanceof RegExp) {
- clone = new RegExp(obj);
- } else if (obj instanceof Map) {
- clone = new Map(Array.from(obj, ([key, value]) => [key, deepClone(value, cache)]));
- } else if (obj instanceof Set) {
- clone = new Set(Array.from(obj, value => deepClone(value, cache)));
- } else if (Array.isArray(obj)) {
- clone = obj.map(value => deepClone(value, cache));
- } else if (Object.prototype.toString.call(obj) === '[object Object]') {
- clone = Object.create(Object.getPrototypeOf(obj));
- cache.set(obj, clone);
- for (const [key, value] of Object.entries(obj)) {
- clone[key] = deepClone(value, cache);
- }
- } else {
- clone = Object.assign({}, obj);
- }
- cache.set(obj, clone);
- return clone;
-}
-
-/**
- * @description JS对象深度合并
- * @param {object} target 需要拷贝的对象
- * @param {object} source 拷贝的来源对象
- * @returns {object|boolean} 深度合并后的对象或者false(入参有不是对象)
- */
-function deepMerge(target = {}, source = {}) {
- target = deepClone(target)
- if (typeof target !== 'object' || target === null || typeof source !== 'object' || source === null) return target;
- const merged = Array.isArray(target) ? target.slice() : Object.assign({}, target);
- for (const prop in source) {
- if (!source.hasOwnProperty(prop)) continue;
- const sourceValue = source[prop];
- const targetValue = merged[prop];
- if (sourceValue instanceof Date) {
- merged[prop] = new Date(sourceValue);
- } else if (sourceValue instanceof RegExp) {
- merged[prop] = new RegExp(sourceValue);
- } else if (sourceValue instanceof Map) {
- merged[prop] = new Map(sourceValue);
- } else if (sourceValue instanceof Set) {
- merged[prop] = new Set(sourceValue);
- } else if (typeof sourceValue === 'object' && sourceValue !== null) {
- merged[prop] = deepMerge(targetValue, sourceValue);
- } else {
- merged[prop] = sourceValue;
- }
- }
- return merged;
-}
-
-/**
- * @description error提示
- * @param {*} err 错误内容
- */
-function error(err) {
- // 开发环境才提示,生产环境不会提示
- if (process.env.NODE_ENV === 'development') {
- console.error(`uView提示:${err}`)
- }
-}
-
-/**
- * @description 打乱数组
- * @param {array} array 需要打乱的数组
- * @returns {array} 打乱后的数组
- */
-function randomArray(array = []) {
- // 原理是sort排序,Math.random()产生0<= x < 1之间的数,会导致x-0.05大于或者小于0
- return array.sort(() => Math.random() - 0.5)
-}
-
-// padStart 的 polyfill,因为某些机型或情况,还无法支持es7的padStart,比如电脑版的微信小程序
-// 所以这里做一个兼容polyfill的兼容处理
-if (!String.prototype.padStart) {
- // 为了方便表示这里 fillString 用了ES6 的默认参数,不影响理解
- String.prototype.padStart = function(maxLength, fillString = ' ') {
- if (Object.prototype.toString.call(fillString) !== '[object String]') {
- throw new TypeError(
- 'fillString must be String'
- )
- }
- const str = this
- // 返回 String(str) 这里是为了使返回的值是字符串字面量,在控制台中更符合直觉
- if (str.length >= maxLength) return String(str)
-
- const fillLength = maxLength - str.length
- let times = Math.ceil(fillLength / fillString.length)
- while (times >>= 1) {
- fillString += fillString
- if (times === 1) {
- fillString += fillString
- }
- }
- return fillString.slice(0, fillLength) + str
- }
-}
-
-/**
- * @description 格式化时间
- * @param {String|Number} dateTime 需要格式化的时间戳
- * @param {String} fmt 格式化规则 yyyy:mm:dd|yyyy:mm|yyyy年mm月dd日|yyyy年mm月dd日 hh时MM分等,可自定义组合 默认yyyy-mm-dd
- * @returns {string} 返回格式化后的字符串
- */
- function timeFormat(dateTime = null, formatStr = 'yyyy-mm-dd') {
- let date
- // 若传入时间为假值,则取当前时间
- if (!dateTime) {
- date = new Date()
- }
- // 若为unix秒时间戳,则转为毫秒时间戳(逻辑有点奇怪,但不敢改,以保证历史兼容)
- else if (/^\d{10}$/.test(dateTime?.toString().trim())) {
- date = new Date(dateTime * 1000)
- }
- // 若用户传入字符串格式时间戳,new Date无法解析,需做兼容
- else if (typeof dateTime === 'string' && /^\d+$/.test(dateTime.trim())) {
- date = new Date(Number(dateTime))
- }
- // 处理平台性差异,在Safari/Webkit中,new Date仅支持/作为分割符的字符串时间
- // 处理 '2022-07-10 01:02:03',跳过 '2022-07-10T01:02:03'
- else if (typeof dateTime === 'string' && dateTime.includes('-') && !dateTime.includes('T')) {
- date = new Date(dateTime.replace(/-/g, '/'))
- }
- // 其他都认为符合 RFC 2822 规范
- else {
- date = new Date(dateTime)
- }
-
- const timeSource = {
- 'y': date.getFullYear().toString(), // 年
- 'm': (date.getMonth() + 1).toString().padStart(2, '0'), // 月
- 'd': date.getDate().toString().padStart(2, '0'), // 日
- 'h': date.getHours().toString().padStart(2, '0'), // 时
- 'M': date.getMinutes().toString().padStart(2, '0'), // 分
- 's': date.getSeconds().toString().padStart(2, '0') // 秒
- // 有其他格式化字符需求可以继续添加,必须转化成字符串
- }
-
- for (const key in timeSource) {
- const [ret] = new RegExp(`${key}+`).exec(formatStr) || []
- if (ret) {
- // 年可能只需展示两位
- const beginIndex = key === 'y' && ret.length === 2 ? 2 : 0
- formatStr = formatStr.replace(ret, timeSource[key].slice(beginIndex))
- }
- }
-
- return formatStr
-}
-
-/**
- * @description 时间戳转为多久之前
- * @param {String|Number} timestamp 时间戳
- * @param {String|Boolean} format
- * 格式化规则如果为时间格式字符串,超出一定时间范围,返回固定的时间格式;
- * 如果为布尔值false,无论什么时间,都返回多久以前的格式
- * @returns {string} 转化后的内容
- */
-function timeFrom(timestamp = null, format = 'yyyy-mm-dd') {
- if (timestamp == null) timestamp = Number(new Date())
- timestamp = parseInt(timestamp)
- // 判断用户输入的时间戳是秒还是毫秒,一般前端js获取的时间戳是毫秒(13位),后端传过来的为秒(10位)
- if (timestamp.toString().length == 10) timestamp *= 1000
- let timer = (new Date()).getTime() - timestamp
- timer = parseInt(timer / 1000)
- // 如果小于5分钟,则返回"刚刚",其他以此类推
- let tips = ''
- switch (true) {
- case timer < 300:
- tips = '刚刚'
- break
- case timer >= 300 && timer < 3600:
- tips = `${parseInt(timer / 60)}分钟前`
- break
- case timer >= 3600 && timer < 86400:
- tips = `${parseInt(timer / 3600)}小时前`
- break
- case timer >= 86400 && timer < 2592000:
- tips = `${parseInt(timer / 86400)}天前`
- break
- default:
- // 如果format为false,则无论什么时间戳,都显示xx之前
- if (format === false) {
- if (timer >= 2592000 && timer < 365 * 86400) {
- tips = `${parseInt(timer / (86400 * 30))}个月前`
- } else {
- tips = `${parseInt(timer / (86400 * 365))}年前`
- }
- } else {
- tips = timeFormat(timestamp, format)
- }
- }
- return tips
-}
-
-/**
- * @description 去除空格
- * @param String str 需要去除空格的字符串
- * @param String pos both(左右)|left|right|all 默认both
- */
-function trim(str, pos = 'both') {
- str = String(str)
- if (pos == 'both') {
- return str.replace(/^\s+|\s+$/g, '')
- }
- if (pos == 'left') {
- return str.replace(/^\s*/, '')
- }
- if (pos == 'right') {
- return str.replace(/(\s*$)/g, '')
- }
- if (pos == 'all') {
- return str.replace(/\s+/g, '')
- }
- return str
-}
-
-/**
- * @description 对象转url参数
- * @param {object} data,对象
- * @param {Boolean} isPrefix,是否自动加上"?"
- * @param {string} arrayFormat 规则 indices|brackets|repeat|comma
- */
-function queryParams(data = {}, isPrefix = true, arrayFormat = 'brackets') {
- const prefix = isPrefix ? '?' : ''
- const _result = []
- if (['indices', 'brackets', 'repeat', 'comma'].indexOf(arrayFormat) == -1) arrayFormat = 'brackets'
- for (const key in data) {
- const value = data[key]
- // 去掉为空的参数
- if (['', undefined, null].indexOf(value) >= 0) {
- continue
- }
- // 如果值为数组,另行处理
- if (value.constructor === Array) {
- // e.g. {ids: [1, 2, 3]}
- switch (arrayFormat) {
- case 'indices':
- // 结果: ids[0]=1&ids[1]=2&ids[2]=3
- for (let i = 0; i < value.length; i++) {
- _result.push(`${key}[${i}]=${value[i]}`)
- }
- break
- case 'brackets':
- // 结果: ids[]=1&ids[]=2&ids[]=3
- value.forEach((_value) => {
- _result.push(`${key}[]=${_value}`)
- })
- break
- case 'repeat':
- // 结果: ids=1&ids=2&ids=3
- value.forEach((_value) => {
- _result.push(`${key}=${_value}`)
- })
- break
- case 'comma':
- // 结果: ids=1,2,3
- let commaStr = ''
- value.forEach((_value) => {
- commaStr += (commaStr ? ',' : '') + _value
- })
- _result.push(`${key}=${commaStr}`)
- break
- default:
- value.forEach((_value) => {
- _result.push(`${key}[]=${_value}`)
- })
- }
- } else {
- _result.push(`${key}=${value}`)
- }
- }
- return _result.length ? prefix + _result.join('&') : ''
-}
-
-/**
- * 显示消息提示框
- * @param {String} title 提示的内容,长度与 icon 取值有关。
- * @param {Number} duration 提示的延迟时间,单位毫秒,默认:2000
- */
-function toast(title, duration = 2000) {
- uni.showToast({
- title: String(title),
- icon: 'none',
- duration
- })
-}
-
-/**
- * @description 根据主题type值,获取对应的图标
- * @param {String} type 主题名称,primary|info|error|warning|success
- * @param {boolean} fill 是否使用fill填充实体的图标
- */
-function type2icon(type = 'success', fill = false) {
- // 如果非预置值,默认为success
- if (['primary', 'info', 'error', 'warning', 'success'].indexOf(type) == -1) type = 'success'
- let iconName = ''
- // 目前(2019-12-12),info和primary使用同一个图标
- switch (type) {
- case 'primary':
- iconName = 'info-circle'
- break
- case 'info':
- iconName = 'info-circle'
- break
- case 'error':
- iconName = 'close-circle'
- break
- case 'warning':
- iconName = 'error-circle'
- break
- case 'success':
- iconName = 'checkmark-circle'
- break
- default:
- iconName = 'checkmark-circle'
- }
- // 是否是实体类型,加上-fill,在icon组件库中,实体的类名是后面加-fill的
- if (fill) iconName += '-fill'
- return iconName
-}
-
-/**
- * @description 数字格式化
- * @param {number|string} number 要格式化的数字
- * @param {number} decimals 保留几位小数
- * @param {string} decimalPoint 小数点符号
- * @param {string} thousandsSeparator 千分位符号
- * @returns {string} 格式化后的数字
- */
-function priceFormat(number, decimals = 0, decimalPoint = '.', thousandsSeparator = ',') {
- number = (`${number}`).replace(/[^0-9+-Ee.]/g, '')
- const n = !isFinite(+number) ? 0 : +number
- const prec = !isFinite(+decimals) ? 0 : Math.abs(decimals)
- const sep = (typeof thousandsSeparator === 'undefined') ? ',' : thousandsSeparator
- const dec = (typeof decimalPoint === 'undefined') ? '.' : decimalPoint
- let s = ''
-
- s = (prec ? round(n, prec) + '' : `${Math.round(n)}`).split('.')
- const re = /(-?\d+)(\d{3})/
- while (re.test(s[0])) {
- s[0] = s[0].replace(re, `$1${sep}$2`)
- }
-
- if ((s[1] || '').length < prec) {
- s[1] = s[1] || ''
- s[1] += new Array(prec - s[1].length + 1).join('0')
- }
- return s.join(dec)
-}
-
-/**
- * @description 获取duration值
- * 如果带有ms或者s直接返回,如果大于一定值,认为是ms单位,小于一定值,认为是s单位
- * 比如以30位阈值,那么300大于30,可以理解为用户想要的是300ms,而不是想花300s去执行一个动画
- * @param {String|number} value 比如: "1s"|"100ms"|1|100
- * @param {boolean} unit 提示: 如果是false 默认返回number
- * @return {string|number}
- */
-function getDuration(value, unit = true) {
- const valueNum = parseInt(value)
- if (unit) {
- if (/s$/.test(value)) return value
- return value > 30 ? `${value}ms` : `${value}s`
- }
- if (/ms$/.test(value)) return valueNum
- if (/s$/.test(value)) return valueNum > 30 ? valueNum : valueNum * 1000
- return valueNum
-}
-
-/**
- * @description 日期的月或日补零操作
- * @param {String} value 需要补零的值
- */
-function padZero(value) {
- return `00${value}`.slice(-2)
-}
-
-/**
- * @description 在u-form的子组件内容发生变化,或者失去焦点时,尝试通知u-form执行校验方法
- * @param {*} instance
- * @param {*} event
- */
-function formValidate(instance, event) {
- const formItem = uni.$u.$parent.call(instance, 'u-form-item')
- const form = uni.$u.$parent.call(instance, 'u-form')
- // 如果发生变化的input或者textarea等,其父组件中有u-form-item或者u-form等,就执行form的validate方法
- // 同时将form-item的pros传递给form,让其进行精确对象验证
- if (formItem && form) {
- form.validateField(formItem.prop, () => {}, event)
- }
-}
-
-/**
- * @description 获取某个对象下的属性,用于通过类似'a.b.c'的形式去获取一个对象的的属性的形式
- * @param {object} obj 对象
- * @param {string} key 需要获取的属性字段
- * @returns {*}
- */
-function getProperty(obj, key) {
- if (!obj) {
- return
- }
- if (typeof key !== 'string' || key === '') {
- return ''
- }
- if (key.indexOf('.') !== -1) {
- const keys = key.split('.')
- let firstObj = obj[keys[0]] || {}
-
- for (let i = 1; i < keys.length; i++) {
- if (firstObj) {
- firstObj = firstObj[keys[i]]
- }
- }
- return firstObj
- }
- return obj[key]
-}
-
-/**
- * @description 设置对象的属性值,如果'a.b.c'的形式进行设置
- * @param {object} obj 对象
- * @param {string} key 需要设置的属性
- * @param {string} value 设置的值
- */
-function setProperty(obj, key, value) {
- if (!obj) {
- return
- }
- // 递归赋值
- const inFn = function(_obj, keys, v) {
- // 最后一个属性key
- if (keys.length === 1) {
- _obj[keys[0]] = v
- return
- }
- // 0~length-1个key
- while (keys.length > 1) {
- const k = keys[0]
- if (!_obj[k] || (typeof _obj[k] !== 'object')) {
- _obj[k] = {}
- }
- const key = keys.shift()
- // 自调用判断是否存在属性,不存在则自动创建对象
- inFn(_obj[k], keys, v)
- }
- }
-
- if (typeof key !== 'string' || key === '') {
-
- } else if (key.indexOf('.') !== -1) { // 支持多层级赋值操作
- const keys = key.split('.')
- inFn(obj, keys, value)
- } else {
- obj[key] = value
- }
-}
-
-/**
- * @description 获取当前页面路径
- */
-function page() {
- const pages = getCurrentPages()
- // 某些特殊情况下(比如页面进行redirectTo时的一些时机),pages可能为空数组
- return `/${pages[pages.length - 1]?.route ?? ''}`
-}
-
-/**
- * @description 获取当前路由栈实例数组
- */
-function pages() {
- const pages = getCurrentPages()
- return pages
-}
-
-/**
- * 获取页面历史栈指定层实例
- * @param back {number} [0] - 0或者负数,表示获取历史栈的哪一层,0表示获取当前页面实例,-1 表示获取上一个页面实例。默认0。
- */
-function getHistoryPage(back = 0) {
- const pages = getCurrentPages()
- const len = pages.length
- return pages[len - 1 + back]
-}
-
-/**
- * @description 修改uView内置属性值
- * @param {object} props 修改内置props属性
- * @param {object} config 修改内置config属性
- * @param {object} color 修改内置color属性
- * @param {object} zIndex 修改内置zIndex属性
- */
-function setConfig({
- props = {},
- config = {},
- color = {},
- zIndex = {}
-}) {
- const {
- deepMerge,
- } = uni.$u
- uni.$u.config = deepMerge(uni.$u.config, config)
- uni.$u.props = deepMerge(uni.$u.props, props)
- uni.$u.color = deepMerge(uni.$u.color, color)
- uni.$u.zIndex = deepMerge(uni.$u.zIndex, zIndex)
-}
-
-export default {
- range,
- getPx,
- sleep,
- os,
- sys,
- random,
- guid,
- $parent,
- addStyle,
- addUnit,
- deepClone,
- deepMerge,
- error,
- randomArray,
- timeFormat,
- timeFrom,
- trim,
- queryParams,
- toast,
- type2icon,
- priceFormat,
- getDuration,
- padZero,
- formValidate,
- getProperty,
- setProperty,
- page,
- pages,
- getHistoryPage,
- setConfig
-}
diff --git a/uni_modules/uview-ui/libs/function/platform.js b/uni_modules/uview-ui/libs/function/platform.js
deleted file mode 100644
index d6b926e..0000000
--- a/uni_modules/uview-ui/libs/function/platform.js
+++ /dev/null
@@ -1,75 +0,0 @@
-/**
- * 注意:
- * 此部分内容,在vue-cli模式下,需要在vue.config.js加入如下内容才有效:
- * module.exports = {
- * transpileDependencies: ['uview-v2']
- * }
- */
-
-let platform = 'none'
-
-// #ifdef VUE3
-platform = 'vue3'
-// #endif
-
-// #ifdef VUE2
-platform = 'vue2'
-// #endif
-
-// #ifdef APP-PLUS
-platform = 'plus'
-// #endif
-
-// #ifdef APP-NVUE
-platform = 'nvue'
-// #endif
-
-// #ifdef H5
-platform = 'h5'
-// #endif
-
-// #ifdef MP-WEIXIN
-platform = 'weixin'
-// #endif
-
-// #ifdef MP-ALIPAY
-platform = 'alipay'
-// #endif
-
-// #ifdef MP-BAIDU
-platform = 'baidu'
-// #endif
-
-// #ifdef MP-TOUTIAO
-platform = 'toutiao'
-// #endif
-
-// #ifdef MP-QQ
-platform = 'qq'
-// #endif
-
-// #ifdef MP-KUAISHOU
-platform = 'kuaishou'
-// #endif
-
-// #ifdef MP-360
-platform = '360'
-// #endif
-
-// #ifdef MP
-platform = 'mp'
-// #endif
-
-// #ifdef QUICKAPP-WEBVIEW
-platform = 'quickapp-webview'
-// #endif
-
-// #ifdef QUICKAPP-WEBVIEW-HUAWEI
-platform = 'quickapp-webview-huawei'
-// #endif
-
-// #ifdef QUICKAPP-WEBVIEW-UNION
-platform = 'quckapp-webview-union'
-// #endif
-
-export default platform
diff --git a/uni_modules/uview-ui/libs/function/test.js b/uni_modules/uview-ui/libs/function/test.js
deleted file mode 100644
index c776437..0000000
--- a/uni_modules/uview-ui/libs/function/test.js
+++ /dev/null
@@ -1,288 +0,0 @@
-/**
- * 验证电子邮箱格式
- */
-function email(value) {
- return /^\w+((-\w+)|(\.\w+))*\@[A-Za-z0-9]+((\.|-)[A-Za-z0-9]+)*\.[A-Za-z0-9]+$/.test(value)
-}
-
-/**
- * 验证手机格式
- */
-function mobile(value) {
- return /^1([3589]\d|4[5-9]|6[1-2,4-7]|7[0-8])\d{8}$/.test(value)
-}
-
-/**
- * 验证URL格式
- */
-function url(value) {
- return /^((https|http|ftp|rtsp|mms):\/\/)(([0-9a-zA-Z_!~*'().&=+$%-]+: )?[0-9a-zA-Z_!~*'().&=+$%-]+@)?(([0-9]{1,3}.){3}[0-9]{1,3}|([0-9a-zA-Z_!~*'()-]+.)*([0-9a-zA-Z][0-9a-zA-Z-]{0,61})?[0-9a-zA-Z].[a-zA-Z]{2,6})(:[0-9]{1,4})?((\/?)|(\/[0-9a-zA-Z_!~*'().;?:@&=+$,%#-]+)+\/?)$/
- .test(value)
-}
-
-/**
- * 验证日期格式
- */
-function date(value) {
- if (!value) return false
- // 判断是否数值或者字符串数值(意味着为时间戳),转为数值,否则new Date无法识别字符串时间戳
- if (number(value)) value = +value
- return !/Invalid|NaN/.test(new Date(value).toString())
-}
-
-/**
- * 验证ISO类型的日期格式
- */
-function dateISO(value) {
- return /^\d{4}[\/\-](0?[1-9]|1[012])[\/\-](0?[1-9]|[12][0-9]|3[01])$/.test(value)
-}
-
-/**
- * 验证十进制数字
- */
-function number(value) {
- return /^[\+-]?(\d+\.?\d*|\.\d+|\d\.\d+e\+\d+)$/.test(value)
-}
-
-/**
- * 验证字符串
- */
-function string(value) {
- return typeof value === 'string'
-}
-
-/**
- * 验证整数
- */
-function digits(value) {
- return /^\d+$/.test(value)
-}
-
-/**
- * 验证身份证号码
- */
-function idCard(value) {
- return /^[1-9]\d{5}[1-9]\d{3}((0\d)|(1[0-2]))(([0|1|2]\d)|3[0-1])\d{3}([0-9]|X)$/.test(
- value
- )
-}
-
-/**
- * 是否车牌号
- */
-function carNo(value) {
- // 新能源车牌
- const xreg = /^[京津沪渝冀豫云辽黑湘皖鲁新苏浙赣鄂桂甘晋蒙陕吉闽贵粤青藏川宁琼使领A-Z]{1}[A-Z]{1}(([0-9]{5}[DF]$)|([DF][A-HJ-NP-Z0-9][0-9]{4}$))/
- // 旧车牌
- const creg = /^[京津沪渝冀豫云辽黑湘皖鲁新苏浙赣鄂桂甘晋蒙陕吉闽贵粤青藏川宁琼使领A-Z]{1}[A-Z]{1}[A-HJ-NP-Z0-9]{4}[A-HJ-NP-Z0-9挂学警港澳]{1}$/
- if (value.length === 7) {
- return creg.test(value)
- } if (value.length === 8) {
- return xreg.test(value)
- }
- return false
-}
-
-/**
- * 金额,只允许2位小数
- */
-function amount(value) {
- // 金额,只允许保留两位小数
- return /^[1-9]\d*(,\d{3})*(\.\d{1,2})?$|^0\.\d{1,2}$/.test(value)
-}
-
-/**
- * 中文
- */
-function chinese(value) {
- const reg = /^[\u4e00-\u9fa5]+$/gi
- return reg.test(value)
-}
-
-/**
- * 只能输入字母
- */
-function letter(value) {
- return /^[a-zA-Z]*$/.test(value)
-}
-
-/**
- * 只能是字母或者数字
- */
-function enOrNum(value) {
- // 英文或者数字
- const reg = /^[0-9a-zA-Z]*$/g
- return reg.test(value)
-}
-
-/**
- * 验证是否包含某个值
- */
-function contains(value, param) {
- return value.indexOf(param) >= 0
-}
-
-/**
- * 验证一个值范围[min, max]
- */
-function range(value, param) {
- return value >= param[0] && value <= param[1]
-}
-
-/**
- * 验证一个长度范围[min, max]
- */
-function rangeLength(value, param) {
- return value.length >= param[0] && value.length <= param[1]
-}
-
-/**
- * 是否固定电话
- */
-function landline(value) {
- const reg = /^\d{3,4}-\d{7,8}(-\d{3,4})?$/
- return reg.test(value)
-}
-
-/**
- * 判断是否为空
- */
-function empty(value) {
- switch (typeof value) {
- case 'undefined':
- return true
- case 'string':
- if (value.replace(/(^[ \t\n\r]*)|([ \t\n\r]*$)/g, '').length == 0) return true
- break
- case 'boolean':
- if (!value) return true
- break
- case 'number':
- if (value === 0 || isNaN(value)) return true
- break
- case 'object':
- if (value === null || value.length === 0) return true
- for (const i in value) {
- return false
- }
- return true
- }
- return false
-}
-
-/**
- * 是否json字符串
- */
-function jsonString(value) {
- if (typeof value === 'string') {
- try {
- const obj = JSON.parse(value)
- if (typeof obj === 'object' && obj) {
- return true
- }
- return false
- } catch (e) {
- return false
- }
- }
- return false
-}
-
-/**
- * 是否数组
- */
-function array(value) {
- if (typeof Array.isArray === 'function') {
- return Array.isArray(value)
- }
- return Object.prototype.toString.call(value) === '[object Array]'
-}
-
-/**
- * 是否对象
- */
-function object(value) {
- return Object.prototype.toString.call(value) === '[object Object]'
-}
-
-/**
- * 是否短信验证码
- */
-function code(value, len = 6) {
- return new RegExp(`^\\d{${len}}$`).test(value)
-}
-
-/**
- * 是否函数方法
- * @param {Object} value
- */
-function func(value) {
- return typeof value === 'function'
-}
-
-/**
- * 是否promise对象
- * @param {Object} value
- */
-function promise(value) {
- return object(value) && func(value.then) && func(value.catch)
-}
-
-/** 是否图片格式
- * @param {Object} value
- */
-function image(value) {
- const newValue = value.split('?')[0]
- const IMAGE_REGEXP = /\.(jpeg|jpg|gif|png|svg|webp|jfif|bmp|dpg)/i
- return IMAGE_REGEXP.test(newValue)
-}
-
-/**
- * 是否视频格式
- * @param {Object} value
- */
-function video(value) {
- const VIDEO_REGEXP = /\.(mp4|mpg|mpeg|dat|asf|avi|rm|rmvb|mov|wmv|flv|mkv|m3u8)/i
- return VIDEO_REGEXP.test(value)
-}
-
-/**
- * 是否为正则对象
- * @param {Object}
- * @return {Boolean}
- */
-function regExp(o) {
- return o && Object.prototype.toString.call(o) === '[object RegExp]'
-}
-
-export default {
- email,
- mobile,
- url,
- date,
- dateISO,
- number,
- digits,
- idCard,
- carNo,
- amount,
- chinese,
- letter,
- enOrNum,
- contains,
- range,
- rangeLength,
- empty,
- isEmpty: empty,
- jsonString,
- landline,
- object,
- array,
- code,
- func,
- promise,
- video,
- image,
- regExp,
- string
-}
diff --git a/uni_modules/uview-ui/libs/function/throttle.js b/uni_modules/uview-ui/libs/function/throttle.js
deleted file mode 100644
index 2f33611..0000000
--- a/uni_modules/uview-ui/libs/function/throttle.js
+++ /dev/null
@@ -1,30 +0,0 @@
-let timer; let
- flag
-/**
- * 节流原理:在一定时间内,只能触发一次
- *
- * @param {Function} func 要执行的回调函数
- * @param {Number} wait 延时的时间
- * @param {Boolean} immediate 是否立即执行
- * @return null
- */
-function throttle(func, wait = 500, immediate = true) {
- if (immediate) {
- if (!flag) {
- flag = true
- // 如果是立即执行,则在wait毫秒内开始时执行
- typeof func === 'function' && func()
- timer = setTimeout(() => {
- flag = false
- }, wait)
- }
- } else if (!flag) {
- flag = true
- // 如果是非立即执行,则在wait毫秒内的结束处执行
- timer = setTimeout(() => {
- flag = false
- typeof func === 'function' && func()
- }, wait)
- }
-}
-export default throttle
diff --git a/uni_modules/uview-ui/libs/luch-request/adapters/index.js b/uni_modules/uview-ui/libs/luch-request/adapters/index.js
deleted file mode 100644
index e03cf5f..0000000
--- a/uni_modules/uview-ui/libs/luch-request/adapters/index.js
+++ /dev/null
@@ -1,97 +0,0 @@
-import buildURL from '../helpers/buildURL'
-import buildFullPath from '../core/buildFullPath'
-import settle from '../core/settle'
-import { isUndefined } from '../utils'
-
-/**
- * 返回可选值存在的配置
- * @param {Array} keys - 可选值数组
- * @param {Object} config2 - 配置
- * @return {{}} - 存在的配置项
- */
-const mergeKeys = (keys, config2) => {
- const config = {}
- keys.forEach((prop) => {
- if (!isUndefined(config2[prop])) {
- config[prop] = config2[prop]
- }
- })
- return config
-}
-export default (config) => new Promise((resolve, reject) => {
- const fullPath = buildURL(buildFullPath(config.baseURL, config.url), config.params)
- const _config = {
- url: fullPath,
- header: config.header,
- complete: (response) => {
- config.fullPath = fullPath
- response.config = config
- try {
- // 对可能字符串不是json 的情况容错
- if (typeof response.data === 'string') {
- response.data = JSON.parse(response.data)
- }
- // eslint-disable-next-line no-empty
- } catch (e) {
- }
- settle(resolve, reject, response)
- }
- }
- let requestTask
- if (config.method === 'UPLOAD') {
- delete _config.header['content-type']
- delete _config.header['Content-Type']
- const otherConfig = {
- // #ifdef MP-ALIPAY
- fileType: config.fileType,
- // #endif
- filePath: config.filePath,
- name: config.name
- }
- const optionalKeys = [
- // #ifdef APP-PLUS || H5
- 'files',
- // #endif
- // #ifdef H5
- 'file',
- // #endif
- // #ifdef H5 || APP-PLUS
- 'timeout',
- // #endif
- 'formData'
- ]
- requestTask = uni.uploadFile({ ..._config, ...otherConfig, ...mergeKeys(optionalKeys, config) })
- } else if (config.method === 'DOWNLOAD') {
- // #ifdef H5 || APP-PLUS
- if (!isUndefined(config.timeout)) {
- _config.timeout = config.timeout
- }
- // #endif
- requestTask = uni.downloadFile(_config)
- } else {
- const optionalKeys = [
- 'data',
- 'method',
- // #ifdef H5 || APP-PLUS || MP-ALIPAY || MP-WEIXIN
- 'timeout',
- // #endif
- 'dataType',
- // #ifndef MP-ALIPAY
- 'responseType',
- // #endif
- // #ifdef APP-PLUS
- 'sslVerify',
- // #endif
- // #ifdef H5
- 'withCredentials',
- // #endif
- // #ifdef APP-PLUS
- 'firstIpv4'
- // #endif
- ]
- requestTask = uni.request({ ..._config, ...mergeKeys(optionalKeys, config) })
- }
- if (config.getTask) {
- config.getTask(requestTask, config)
- }
-})
diff --git a/uni_modules/uview-ui/libs/luch-request/core/InterceptorManager.js b/uni_modules/uview-ui/libs/luch-request/core/InterceptorManager.js
deleted file mode 100644
index 3e8728d..0000000
--- a/uni_modules/uview-ui/libs/luch-request/core/InterceptorManager.js
+++ /dev/null
@@ -1,50 +0,0 @@
-'use strict'
-
-function InterceptorManager() {
- this.handlers = []
-}
-
-/**
- * Add a new interceptor to the stack
- *
- * @param {Function} fulfilled The function to handle `then` for a `Promise`
- * @param {Function} rejected The function to handle `reject` for a `Promise`
- *
- * @return {Number} An ID used to remove interceptor later
- */
-InterceptorManager.prototype.use = function use(fulfilled, rejected) {
- this.handlers.push({
- fulfilled,
- rejected
- })
- return this.handlers.length - 1
-}
-
-/**
- * Remove an interceptor from the stack
- *
- * @param {Number} id The ID that was returned by `use`
- */
-InterceptorManager.prototype.eject = function eject(id) {
- if (this.handlers[id]) {
- this.handlers[id] = null
- }
-}
-
-/**
- * Iterate over all the registered interceptors
- *
- * This method is particularly useful for skipping over any
- * interceptors that may have become `null` calling `eject`.
- *
- * @param {Function} fn The function to call for each interceptor
- */
-InterceptorManager.prototype.forEach = function forEach(fn) {
- this.handlers.forEach((h) => {
- if (h !== null) {
- fn(h)
- }
- })
-}
-
-export default InterceptorManager
diff --git a/uni_modules/uview-ui/libs/luch-request/core/Request.js b/uni_modules/uview-ui/libs/luch-request/core/Request.js
deleted file mode 100644
index cc48566..0000000
--- a/uni_modules/uview-ui/libs/luch-request/core/Request.js
+++ /dev/null
@@ -1,198 +0,0 @@
-/**
- * @Class Request
- * @description luch-request http请求插件
- * @version 3.0.7
- * @Author lu-ch
- * @Date 2021-09-04
- * @Email webwork.s@qq.com
- * 文档: https://www.quanzhan.co/luch-request/
- * github: https://github.com/lei-mu/luch-request
- * DCloud: http://ext.dcloud.net.cn/plugin?id=392
- * HBuilderX: beat-3.0.4 alpha-3.0.4
- */
-
-import dispatchRequest from './dispatchRequest'
-import InterceptorManager from './InterceptorManager'
-import mergeConfig from './mergeConfig'
-import defaults from './defaults'
-import { isPlainObject } from '../utils'
-import clone from '../utils/clone'
-
-export default class Request {
- /**
- * @param {Object} arg - 全局配置
- * @param {String} arg.baseURL - 全局根路径
- * @param {Object} arg.header - 全局header
- * @param {String} arg.method = [GET|POST|PUT|DELETE|CONNECT|HEAD|OPTIONS|TRACE] - 全局默认请求方式
- * @param {String} arg.dataType = [json] - 全局默认的dataType
- * @param {String} arg.responseType = [text|arraybuffer] - 全局默认的responseType。支付宝小程序不支持
- * @param {Object} arg.custom - 全局默认的自定义参数
- * @param {Number} arg.timeout - 全局默认的超时时间,单位 ms。默认60000。H5(HBuilderX 2.9.9+)、APP(HBuilderX 2.9.9+)、微信小程序(2.10.0)、支付宝小程序
- * @param {Boolean} arg.sslVerify - 全局默认的是否验证 ssl 证书。默认true.仅App安卓端支持(HBuilderX 2.3.3+)
- * @param {Boolean} arg.withCredentials - 全局默认的跨域请求时是否携带凭证(cookies)。默认false。仅H5支持(HBuilderX 2.6.15+)
- * @param {Boolean} arg.firstIpv4 - 全DNS解析时优先使用ipv4。默认false。仅 App-Android 支持 (HBuilderX 2.8.0+)
- * @param {Function(statusCode):Boolean} arg.validateStatus - 全局默认的自定义验证器。默认statusCode >= 200 && statusCode < 300
- */
- constructor(arg = {}) {
- if (!isPlainObject(arg)) {
- arg = {}
- console.warn('设置全局参数必须接收一个Object')
- }
- this.config = clone({ ...defaults, ...arg })
- this.interceptors = {
- request: new InterceptorManager(),
- response: new InterceptorManager()
- }
- }
-
- /**
- * @Function
- * @param {Request~setConfigCallback} f - 设置全局默认配置
- */
- setConfig(f) {
- this.config = f(this.config)
- }
-
- middleware(config) {
- config = mergeConfig(this.config, config)
- const chain = [dispatchRequest, undefined]
- let promise = Promise.resolve(config)
-
- this.interceptors.request.forEach((interceptor) => {
- chain.unshift(interceptor.fulfilled, interceptor.rejected)
- })
-
- this.interceptors.response.forEach((interceptor) => {
- chain.push(interceptor.fulfilled, interceptor.rejected)
- })
-
- while (chain.length) {
- promise = promise.then(chain.shift(), chain.shift())
- }
-
- return promise
- }
-
- /**
- * @Function
- * @param {Object} config - 请求配置项
- * @prop {String} options.url - 请求路径
- * @prop {Object} options.data - 请求参数
- * @prop {Object} [options.responseType = config.responseType] [text|arraybuffer] - 响应的数据类型
- * @prop {Object} [options.dataType = config.dataType] - 如果设为 json,会尝试对返回的数据做一次 JSON.parse
- * @prop {Object} [options.header = config.header] - 请求header
- * @prop {Object} [options.method = config.method] - 请求方法
- * @returns {Promise<unknown>}
- */
- request(config = {}) {
- return this.middleware(config)
- }
-
- get(url, options = {}) {
- return this.middleware({
- url,
- method: 'GET',
- ...options
- })
- }
-
- post(url, data, options = {}) {
- return this.middleware({
- url,
- data,
- method: 'POST',
- ...options
- })
- }
-
- // #ifndef MP-ALIPAY
- put(url, data, options = {}) {
- return this.middleware({
- url,
- data,
- method: 'PUT',
- ...options
- })
- }
-
- // #endif
-
- // #ifdef APP-PLUS || H5 || MP-WEIXIN || MP-BAIDU
- delete(url, data, options = {}) {
- return this.middleware({
- url,
- data,
- method: 'DELETE',
- ...options
- })
- }
-
- // #endif
-
- // #ifdef H5 || MP-WEIXIN
- connect(url, data, options = {}) {
- return this.middleware({
- url,
- data,
- method: 'CONNECT',
- ...options
- })
- }
-
- // #endif
-
- // #ifdef H5 || MP-WEIXIN || MP-BAIDU
- head(url, data, options = {}) {
- return this.middleware({
- url,
- data,
- method: 'HEAD',
- ...options
- })
- }
-
- // #endif
-
- // #ifdef APP-PLUS || H5 || MP-WEIXIN || MP-BAIDU
- options(url, data, options = {}) {
- return this.middleware({
- url,
- data,
- method: 'OPTIONS',
- ...options
- })
- }
-
- // #endif
-
- // #ifdef H5 || MP-WEIXIN
- trace(url, data, options = {}) {
- return this.middleware({
- url,
- data,
- method: 'TRACE',
- ...options
- })
- }
-
- // #endif
-
- upload(url, config = {}) {
- config.url = url
- config.method = 'UPLOAD'
- return this.middleware(config)
- }
-
- download(url, config = {}) {
- config.url = url
- config.method = 'DOWNLOAD'
- return this.middleware(config)
- }
-}
-
-/**
- * setConfig回调
- * @return {Object} - 返回操作后的config
- * @callback Request~setConfigCallback
- * @param {Object} config - 全局默认config
- */
diff --git a/uni_modules/uview-ui/libs/luch-request/core/buildFullPath.js b/uni_modules/uview-ui/libs/luch-request/core/buildFullPath.js
deleted file mode 100644
index 5eb8a17..0000000
--- a/uni_modules/uview-ui/libs/luch-request/core/buildFullPath.js
+++ /dev/null
@@ -1,20 +0,0 @@
-'use strict'
-
-import isAbsoluteURL from '../helpers/isAbsoluteURL'
-import combineURLs from '../helpers/combineURLs'
-
-/**
- * Creates a new URL by combining the baseURL with the requestedURL,
- * only when the requestedURL is not already an absolute URL.
- * If the requestURL is absolute, this function returns the requestedURL untouched.
- *
- * @param {string} baseURL The base URL
- * @param {string} requestedURL Absolute or relative URL to combine
- * @returns {string} The combined full path
- */
-export default function buildFullPath(baseURL, requestedURL) {
- if (baseURL && !isAbsoluteURL(requestedURL)) {
- return combineURLs(baseURL, requestedURL)
- }
- return requestedURL
-}
diff --git a/uni_modules/uview-ui/libs/luch-request/core/defaults.js b/uni_modules/uview-ui/libs/luch-request/core/defaults.js
deleted file mode 100644
index be375a9..0000000
--- a/uni_modules/uview-ui/libs/luch-request/core/defaults.js
+++ /dev/null
@@ -1,29 +0,0 @@
-/**
- * 默认的全局配置
- */
-
-export default {
- baseURL: '',
- header: {},
- method: 'GET',
- dataType: 'json',
- // #ifndef MP-ALIPAY
- responseType: 'text',
- // #endif
- custom: {},
- // #ifdef H5 || APP-PLUS || MP-ALIPAY || MP-WEIXIN
- timeout: 60000,
- // #endif
- // #ifdef APP-PLUS
- sslVerify: true,
- // #endif
- // #ifdef H5
- withCredentials: false,
- // #endif
- // #ifdef APP-PLUS
- firstIpv4: false,
- // #endif
- validateStatus: function validateStatus(status) {
- return status >= 200 && status < 300
- }
-}
diff --git a/uni_modules/uview-ui/libs/luch-request/core/dispatchRequest.js b/uni_modules/uview-ui/libs/luch-request/core/dispatchRequest.js
deleted file mode 100644
index 724545c..0000000
--- a/uni_modules/uview-ui/libs/luch-request/core/dispatchRequest.js
+++ /dev/null
@@ -1,3 +0,0 @@
-import adapter from '../adapters/index'
-
-export default (config) => adapter(config)
diff --git a/uni_modules/uview-ui/libs/luch-request/core/mergeConfig.js b/uni_modules/uview-ui/libs/luch-request/core/mergeConfig.js
deleted file mode 100644
index 08f8b9b..0000000
--- a/uni_modules/uview-ui/libs/luch-request/core/mergeConfig.js
+++ /dev/null
@@ -1,103 +0,0 @@
-import { deepMerge, isUndefined } from '../utils'
-
-/**
- * 合并局部配置优先的配置,如果局部有该配置项则用局部,如果全局有该配置项则用全局
- * @param {Array} keys - 配置项
- * @param {Object} globalsConfig - 当前的全局配置
- * @param {Object} config2 - 局部配置
- * @return {{}}
- */
-const mergeKeys = (keys, globalsConfig, config2) => {
- const config = {}
- keys.forEach((prop) => {
- if (!isUndefined(config2[prop])) {
- config[prop] = config2[prop]
- } else if (!isUndefined(globalsConfig[prop])) {
- config[prop] = globalsConfig[prop]
- }
- })
- return config
-}
-/**
- *
- * @param globalsConfig - 当前实例的全局配置
- * @param config2 - 当前的局部配置
- * @return - 合并后的配置
- */
-export default (globalsConfig, config2 = {}) => {
- const method = config2.method || globalsConfig.method || 'GET'
- let config = {
- baseURL: globalsConfig.baseURL || '',
- method,
- url: config2.url || '',
- params: config2.params || {},
- custom: { ...(globalsConfig.custom || {}), ...(config2.custom || {}) },
- header: deepMerge(globalsConfig.header || {}, config2.header || {})
- }
- const defaultToConfig2Keys = ['getTask', 'validateStatus']
- config = { ...config, ...mergeKeys(defaultToConfig2Keys, globalsConfig, config2) }
-
- // eslint-disable-next-line no-empty
- if (method === 'DOWNLOAD') {
- // #ifdef H5 || APP-PLUS
- if (!isUndefined(config2.timeout)) {
- config.timeout = config2.timeout
- } else if (!isUndefined(globalsConfig.timeout)) {
- config.timeout = globalsConfig.timeout
- }
- // #endif
- } else if (method === 'UPLOAD') {
- delete config.header['content-type']
- delete config.header['Content-Type']
- const uploadKeys = [
- // #ifdef APP-PLUS || H5
- 'files',
- // #endif
- // #ifdef MP-ALIPAY
- 'fileType',
- // #endif
- // #ifdef H5
- 'file',
- // #endif
- 'filePath',
- 'name',
- // #ifdef H5 || APP-PLUS
- 'timeout',
- // #endif
- 'formData'
- ]
- uploadKeys.forEach((prop) => {
- if (!isUndefined(config2[prop])) {
- config[prop] = config2[prop]
- }
- })
- // #ifdef H5 || APP-PLUS
- if (isUndefined(config.timeout) && !isUndefined(globalsConfig.timeout)) {
- config.timeout = globalsConfig.timeout
- }
- // #endif
- } else {
- const defaultsKeys = [
- 'data',
- // #ifdef H5 || APP-PLUS || MP-ALIPAY || MP-WEIXIN
- 'timeout',
- // #endif
- 'dataType',
- // #ifndef MP-ALIPAY
- 'responseType',
- // #endif
- // #ifdef APP-PLUS
- 'sslVerify',
- // #endif
- // #ifdef H5
- 'withCredentials',
- // #endif
- // #ifdef APP-PLUS
- 'firstIpv4'
- // #endif
- ]
- config = { ...config, ...mergeKeys(defaultsKeys, globalsConfig, config2) }
- }
-
- return config
-}
diff --git a/uni_modules/uview-ui/libs/luch-request/core/settle.js b/uni_modules/uview-ui/libs/luch-request/core/settle.js
deleted file mode 100644
index 8d3638f..0000000
--- a/uni_modules/uview-ui/libs/luch-request/core/settle.js
+++ /dev/null
@@ -1,16 +0,0 @@
-/**
- * Resolve or reject a Promise based on response status.
- *
- * @param {Function} resolve A function that resolves the promise.
- * @param {Function} reject A function that rejects the promise.
- * @param {object} response The response.
- */
-export default function settle(resolve, reject, response) {
- const { validateStatus } = response.config
- const status = response.statusCode
- if (status && (!validateStatus || validateStatus(status))) {
- resolve(response)
- } else {
- reject(response)
- }
-}
diff --git a/uni_modules/uview-ui/libs/luch-request/helpers/buildURL.js b/uni_modules/uview-ui/libs/luch-request/helpers/buildURL.js
deleted file mode 100644
index 472ad6a..0000000
--- a/uni_modules/uview-ui/libs/luch-request/helpers/buildURL.js
+++ /dev/null
@@ -1,69 +0,0 @@
-'use strict'
-
-import * as utils from '../utils'
-
-function encode(val) {
- return encodeURIComponent(val)
- .replace(/%40/gi, '@')
- .replace(/%3A/gi, ':')
- .replace(/%24/g, '$')
- .replace(/%2C/gi, ',')
- .replace(/%20/g, '+')
- .replace(/%5B/gi, '[')
- .replace(/%5D/gi, ']')
-}
-
-/**
- * Build a URL by appending params to the end
- *
- * @param {string} url The base of the url (e.g., http://www.google.com)
- * @param {object} [params] The params to be appended
- * @returns {string} The formatted url
- */
-export default function buildURL(url, params) {
- /* eslint no-param-reassign:0 */
- if (!params) {
- return url
- }
-
- let serializedParams
- if (utils.isURLSearchParams(params)) {
- serializedParams = params.toString()
- } else {
- const parts = []
-
- utils.forEach(params, (val, key) => {
- if (val === null || typeof val === 'undefined') {
- return
- }
-
- if (utils.isArray(val)) {
- key = `${key}[]`
- } else {
- val = [val]
- }
-
- utils.forEach(val, (v) => {
- if (utils.isDate(v)) {
- v = v.toISOString()
- } else if (utils.isObject(v)) {
- v = JSON.stringify(v)
- }
- parts.push(`${encode(key)}=${encode(v)}`)
- })
- })
-
- serializedParams = parts.join('&')
- }
-
- if (serializedParams) {
- const hashmarkIndex = url.indexOf('#')
- if (hashmarkIndex !== -1) {
- url = url.slice(0, hashmarkIndex)
- }
-
- url += (url.indexOf('?') === -1 ? '?' : '&') + serializedParams
- }
-
- return url
-}
diff --git a/uni_modules/uview-ui/libs/luch-request/helpers/combineURLs.js b/uni_modules/uview-ui/libs/luch-request/helpers/combineURLs.js
deleted file mode 100644
index ac7c124..0000000
--- a/uni_modules/uview-ui/libs/luch-request/helpers/combineURLs.js
+++ /dev/null
@@ -1,14 +0,0 @@
-'use strict'
-
-/**
- * Creates a new URL by combining the specified URLs
- *
- * @param {string} baseURL The base URL
- * @param {string} relativeURL The relative URL
- * @returns {string} The combined URL
- */
-export default function combineURLs(baseURL, relativeURL) {
- return relativeURL
- ? `${baseURL.replace(/\/+$/, '')}/${relativeURL.replace(/^\/+/, '')}`
- : baseURL
-}
diff --git a/uni_modules/uview-ui/libs/luch-request/helpers/isAbsoluteURL.js b/uni_modules/uview-ui/libs/luch-request/helpers/isAbsoluteURL.js
deleted file mode 100644
index 63c6647..0000000
--- a/uni_modules/uview-ui/libs/luch-request/helpers/isAbsoluteURL.js
+++ /dev/null
@@ -1,14 +0,0 @@
-'use strict'
-
-/**
- * Determines whether the specified URL is absolute
- *
- * @param {string} url The URL to test
- * @returns {boolean} True if the specified URL is absolute, otherwise false
- */
-export default function isAbsoluteURL(url) {
- // A URL is considered absolute if it begins with "<scheme>://" or "//" (protocol-relative URL).
- // RFC 3986 defines scheme name as a sequence of characters beginning with a letter and followed
- // by any combination of letters, digits, plus, period, or hyphen.
- return /^([a-z][a-z\d+\-.]*:)?\/\//i.test(url)
-}
diff --git a/uni_modules/uview-ui/libs/luch-request/index.d.ts b/uni_modules/uview-ui/libs/luch-request/index.d.ts
deleted file mode 100644
index e939ce1..0000000
--- a/uni_modules/uview-ui/libs/luch-request/index.d.ts
+++ /dev/null
@@ -1,116 +0,0 @@
-type AnyObject = Record<string | number | symbol, any>
-type HttpPromise<T> = Promise<HttpResponse<T>>;
-type Tasks = UniApp.RequestTask | UniApp.UploadTask | UniApp.DownloadTask
-export interface RequestTask {
- abort: () => void;
- offHeadersReceived: () => void;
- onHeadersReceived: () => void;
-}
-export interface HttpRequestConfig<T = Tasks> {
- /** 请求基地址 */
- baseURL?: string;
- /** 请求服务器接口地址 */
- url?: string;
-
- /** 请求查询参数,自动拼接为查询字符串 */
- params?: AnyObject;
- /** 请求体参数 */
- data?: AnyObject;
-
- /** 文件对应的 key */
- name?: string;
- /** HTTP 请求中其他额外的 form data */
- formData?: AnyObject;
- /** 要上传文件资源的路径。 */
- filePath?: string;
- /** 需要上传的文件列表。使用 files 时,filePath 和 name 不生效,App、H5( 2.6.15+) */
- files?: Array<{
- name?: string;
- file?: File;
- uri: string;
- }>;
- /** 要上传的文件对象,仅H5(2.6.15+)支持 */
- file?: File;
-
- /** 请求头信息 */
- header?: AnyObject;
- /** 请求方式 */
- method?: "GET" | "POST" | "PUT" | "DELETE" | "CONNECT" | "HEAD" | "OPTIONS" | "TRACE" | "UPLOAD" | "DOWNLOAD";
- /** 如果设为 json,会尝试对返回的数据做一次 JSON.parse */
- dataType?: string;
- /** 设置响应的数据类型,支付宝小程序不支持 */
- responseType?: "text" | "arraybuffer";
- /** 自定义参数 */
- custom?: AnyObject;
- /** 超时时间,仅微信小程序(2.10.0)、支付宝小程序支持 */
- timeout?: number;
- /** DNS解析时优先使用ipv4,仅 App-Android 支持 (HBuilderX 2.8.0+) */
- firstIpv4?: boolean;
- /** 验证 ssl 证书 仅5+App安卓端支持(HBuilderX 2.3.3+) */
- sslVerify?: boolean;
- /** 跨域请求时是否携带凭证(cookies)仅H5支持(HBuilderX 2.6.15+) */
- withCredentials?: boolean;
-
- /** 返回当前请求的task, options。请勿在此处修改options。 */
- getTask?: (task: T, options: HttpRequestConfig<T>) => void;
- /** 全局自定义验证器 */
- validateStatus?: (statusCode: number) => boolean | void;
-}
-export interface HttpResponse<T = any> {
- config: HttpRequestConfig;
- statusCode: number;
- cookies: Array<string>;
- data: T;
- errMsg: string;
- header: AnyObject;
-}
-export interface HttpUploadResponse<T = any> {
- config: HttpRequestConfig;
- statusCode: number;
- data: T;
- errMsg: string;
-}
-export interface HttpDownloadResponse extends HttpResponse {
- tempFilePath: string;
-}
-export interface HttpError {
- config: HttpRequestConfig;
- statusCode?: number;
- cookies?: Array<string>;
- data?: any;
- errMsg: string;
- header?: AnyObject;
-}
-export interface HttpInterceptorManager<V, E = V> {
- use(
- onFulfilled?: (config: V) => Promise<V> | V,
- onRejected?: (config: E) => Promise<E> | E
- ): void;
- eject(id: number): void;
-}
-export abstract class HttpRequestAbstract {
- constructor(config?: HttpRequestConfig);
- config: HttpRequestConfig;
- interceptors: {
- request: HttpInterceptorManager<HttpRequestConfig, HttpRequestConfig>;
- response: HttpInterceptorManager<HttpResponse, HttpError>;
- }
- middleware<T = any>(config: HttpRequestConfig): HttpPromise<T>;
- request<T = any>(config: HttpRequestConfig<UniApp.RequestTask>): HttpPromise<T>;
- get<T = any>(url: string, config?: HttpRequestConfig<UniApp.RequestTask>): HttpPromise<T>;
- upload<T = any>(url: string, config?: HttpRequestConfig<UniApp.UploadTask>): HttpPromise<T>;
- delete<T = any>(url: string, data?: AnyObject, config?: HttpRequestConfig<UniApp.RequestTask>): HttpPromise<T>;
- head<T = any>(url: string, data?: AnyObject, config?: HttpRequestConfig<UniApp.RequestTask>): HttpPromise<T>;
- post<T = any>(url: string, data?: AnyObject, config?: HttpRequestConfig<UniApp.RequestTask>): HttpPromise<T>;
- put<T = any>(url: string, data?: AnyObject, config?: HttpRequestConfig<UniApp.RequestTask>): HttpPromise<T>;
- connect<T = any>(url: string, data?: AnyObject, config?: HttpRequestConfig<UniApp.RequestTask>): HttpPromise<T>;
- options<T = any>(url: string, data?: AnyObject, config?: HttpRequestConfig<UniApp.RequestTask>): HttpPromise<T>;
- trace<T = any>(url: string, data?: AnyObject, config?: HttpRequestConfig<UniApp.RequestTask>): HttpPromise<T>;
-
- download(url: string, config?: HttpRequestConfig<UniApp.DownloadTask>): Promise<HttpDownloadResponse>;
-
- setConfig(onSend: (config: HttpRequestConfig) => HttpRequestConfig): void;
-}
-
-declare class HttpRequest extends HttpRequestAbstract { }
-export default HttpRequest;
diff --git a/uni_modules/uview-ui/libs/luch-request/index.js b/uni_modules/uview-ui/libs/luch-request/index.js
deleted file mode 100644
index 8fb2b44..0000000
--- a/uni_modules/uview-ui/libs/luch-request/index.js
+++ /dev/null
@@ -1,3 +0,0 @@
-import Request from './core/Request'
-
-export default Request
diff --git a/uni_modules/uview-ui/libs/luch-request/utils.js b/uni_modules/uview-ui/libs/luch-request/utils.js
deleted file mode 100644
index 847283d..0000000
--- a/uni_modules/uview-ui/libs/luch-request/utils.js
+++ /dev/null
@@ -1,131 +0,0 @@
-'use strict'
-
-// utils is a library of generic helper functions non-specific to axios
-
-const { toString } = Object.prototype
-
-/**
- * Determine if a value is an Array
- *
- * @param {Object} val The value to test
- * @returns {boolean} True if value is an Array, otherwise false
- */
-export function isArray(val) {
- return toString.call(val) === '[object Array]'
-}
-
-/**
- * Determine if a value is an Object
- *
- * @param {Object} val The value to test
- * @returns {boolean} True if value is an Object, otherwise false
- */
-export function isObject(val) {
- return val !== null && typeof val === 'object'
-}
-
-/**
- * Determine if a value is a Date
- *
- * @param {Object} val The value to test
- * @returns {boolean} True if value is a Date, otherwise false
- */
-export function isDate(val) {
- return toString.call(val) === '[object Date]'
-}
-
-/**
- * Determine if a value is a URLSearchParams object
- *
- * @param {Object} val The value to test
- * @returns {boolean} True if value is a URLSearchParams object, otherwise false
- */
-export function isURLSearchParams(val) {
- return typeof URLSearchParams !== 'undefined' && val instanceof URLSearchParams
-}
-
-/**
- * Iterate over an Array or an Object invoking a function for each item.
- *
- * If `obj` is an Array callback will be called passing
- * the value, index, and complete array for each item.
- *
- * If 'obj' is an Object callback will be called passing
- * the value, key, and complete object for each property.
- *
- * @param {Object|Array} obj The object to iterate
- * @param {Function} fn The callback to invoke for each item
- */
-export function forEach(obj, fn) {
- // Don't bother if no value provided
- if (obj === null || typeof obj === 'undefined') {
- return
- }
-
- // Force an array if not already something iterable
- if (typeof obj !== 'object') {
- /* eslint no-param-reassign:0 */
- obj = [obj]
- }
-
- if (isArray(obj)) {
- // Iterate over array values
- for (let i = 0, l = obj.length; i < l; i++) {
- fn.call(null, obj[i], i, obj)
- }
- } else {
- // Iterate over object keys
- for (const key in obj) {
- if (Object.prototype.hasOwnProperty.call(obj, key)) {
- fn.call(null, obj[key], key, obj)
- }
- }
- }
-}
-
-/**
- * 是否为boolean 值
- * @param val
- * @returns {boolean}
- */
-export function isBoolean(val) {
- return typeof val === 'boolean'
-}
-
-/**
- * 是否为真正的对象{} new Object
- * @param {any} obj - 检测的对象
- * @returns {boolean}
- */
-export function isPlainObject(obj) {
- return Object.prototype.toString.call(obj) === '[object Object]'
-}
-
-/**
- * Function equal to merge with the difference being that no reference
- * to original objects is kept.
- *
- * @see merge
- * @param {Object} obj1 Object to merge
- * @returns {Object} Result of all merge properties
- */
-export function deepMerge(/* obj1, obj2, obj3, ... */) {
- const result = {}
- function assignValue(val, key) {
- if (typeof result[key] === 'object' && typeof val === 'object') {
- result[key] = deepMerge(result[key], val)
- } else if (typeof val === 'object') {
- result[key] = deepMerge({}, val)
- } else {
- result[key] = val
- }
- }
- for (let i = 0, l = arguments.length; i < l; i++) {
- forEach(arguments[i], assignValue)
- }
- return result
-}
-
-export function isUndefined(val) {
- return typeof val === 'undefined'
-}
diff --git a/uni_modules/uview-ui/libs/luch-request/utils/clone.js b/uni_modules/uview-ui/libs/luch-request/utils/clone.js
deleted file mode 100644
index 2fee704..0000000
--- a/uni_modules/uview-ui/libs/luch-request/utils/clone.js
+++ /dev/null
@@ -1,264 +0,0 @@
-/* eslint-disable */
-var clone = (function() {
- 'use strict';
-
- function _instanceof(obj, type) {
- return type != null && obj instanceof type;
- }
-
- var nativeMap;
- try {
- nativeMap = Map;
- } catch(_) {
- // maybe a reference error because no `Map`. Give it a dummy value that no
- // value will ever be an instanceof.
- nativeMap = function() {};
- }
-
- var nativeSet;
- try {
- nativeSet = Set;
- } catch(_) {
- nativeSet = function() {};
- }
-
- var nativePromise;
- try {
- nativePromise = Promise;
- } catch(_) {
- nativePromise = function() {};
- }
-
- /**
- * Clones (copies) an Object using deep copying.
- *
- * This function supports circular references by default, but if you are certain
- * there are no circular references in your object, you can save some CPU time
- * by calling clone(obj, false).
- *
- * Caution: if `circular` is false and `parent` contains circular references,
- * your program may enter an infinite loop and crash.
- *
- * @param `parent` - the object to be cloned
- * @param `circular` - set to true if the object to be cloned may contain
- * circular references. (optional - true by default)
- * @param `depth` - set to a number if the object is only to be cloned to
- * a particular depth. (optional - defaults to Infinity)
- * @param `prototype` - sets the prototype to be used when cloning an object.
- * (optional - defaults to parent prototype).
- * @param `includeNonEnumerable` - set to true if the non-enumerable properties
- * should be cloned as well. Non-enumerable properties on the prototype
- * chain will be ignored. (optional - false by default)
- */
- function clone(parent, circular, depth, prototype, includeNonEnumerable) {
- if (typeof circular === 'object') {
- depth = circular.depth;
- prototype = circular.prototype;
- includeNonEnumerable = circular.includeNonEnumerable;
- circular = circular.circular;
- }
- // maintain two arrays for circular references, where corresponding parents
- // and children have the same index
- var allParents = [];
- var allChildren = [];
-
- var useBuffer = typeof Buffer != 'undefined';
-
- if (typeof circular == 'undefined')
- circular = true;
-
- if (typeof depth == 'undefined')
- depth = Infinity;
-
- // recurse this function so we don't reset allParents and allChildren
- function _clone(parent, depth) {
- // cloning null always returns null
- if (parent === null)
- return null;
-
- if (depth === 0)
- return parent;
-
- var child;
- var proto;
- if (typeof parent != 'object') {
- return parent;
- }
-
- if (_instanceof(parent, nativeMap)) {
- child = new nativeMap();
- } else if (_instanceof(parent, nativeSet)) {
- child = new nativeSet();
- } else if (_instanceof(parent, nativePromise)) {
- child = new nativePromise(function (resolve, reject) {
- parent.then(function(value) {
- resolve(_clone(value, depth - 1));
- }, function(err) {
- reject(_clone(err, depth - 1));
- });
- });
- } else if (clone.__isArray(parent)) {
- child = [];
- } else if (clone.__isRegExp(parent)) {
- child = new RegExp(parent.source, __getRegExpFlags(parent));
- if (parent.lastIndex) child.lastIndex = parent.lastIndex;
- } else if (clone.__isDate(parent)) {
- child = new Date(parent.getTime());
- } else if (useBuffer && Buffer.isBuffer(parent)) {
- if (Buffer.from) {
- // Node.js >= 5.10.0
- child = Buffer.from(parent);
- } else {
- // Older Node.js versions
- child = new Buffer(parent.length);
- parent.copy(child);
- }
- return child;
- } else if (_instanceof(parent, Error)) {
- child = Object.create(parent);
- } else {
- if (typeof prototype == 'undefined') {
- proto = Object.getPrototypeOf(parent);
- child = Object.create(proto);
- }
- else {
- child = Object.create(prototype);
- proto = prototype;
- }
- }
-
- if (circular) {
- var index = allParents.indexOf(parent);
-
- if (index != -1) {
- return allChildren[index];
- }
- allParents.push(parent);
- allChildren.push(child);
- }
-
- if (_instanceof(parent, nativeMap)) {
- parent.forEach(function(value, key) {
- var keyChild = _clone(key, depth - 1);
- var valueChild = _clone(value, depth - 1);
- child.set(keyChild, valueChild);
- });
- }
- if (_instanceof(parent, nativeSet)) {
- parent.forEach(function(value) {
- var entryChild = _clone(value, depth - 1);
- child.add(entryChild);
- });
- }
-
- for (var i in parent) {
- var attrs = Object.getOwnPropertyDescriptor(parent, i);
- if (attrs) {
- child[i] = _clone(parent[i], depth - 1);
- }
-
- try {
- var objProperty = Object.getOwnPropertyDescriptor(parent, i);
- if (objProperty.set === 'undefined') {
- // no setter defined. Skip cloning this property
- continue;
- }
- child[i] = _clone(parent[i], depth - 1);
- } catch(e){
- if (e instanceof TypeError) {
- // when in strict mode, TypeError will be thrown if child[i] property only has a getter
- // we can't do anything about this, other than inform the user that this property cannot be set.
- continue
- } else if (e instanceof ReferenceError) {
- //this may happen in non strict mode
- continue
- }
- }
-
- }
-
- if (Object.getOwnPropertySymbols) {
- var symbols = Object.getOwnPropertySymbols(parent);
- for (var i = 0; i < symbols.length; i++) {
- // Don't need to worry about cloning a symbol because it is a primitive,
- // like a number or string.
- var symbol = symbols[i];
- var descriptor = Object.getOwnPropertyDescriptor(parent, symbol);
- if (descriptor && !descriptor.enumerable && !includeNonEnumerable) {
- continue;
- }
- child[symbol] = _clone(parent[symbol], depth - 1);
- Object.defineProperty(child, symbol, descriptor);
- }
- }
-
- if (includeNonEnumerable) {
- var allPropertyNames = Object.getOwnPropertyNames(parent);
- for (var i = 0; i < allPropertyNames.length; i++) {
- var propertyName = allPropertyNames[i];
- var descriptor = Object.getOwnPropertyDescriptor(parent, propertyName);
- if (descriptor && descriptor.enumerable) {
- continue;
- }
- child[propertyName] = _clone(parent[propertyName], depth - 1);
- Object.defineProperty(child, propertyName, descriptor);
- }
- }
-
- return child;
- }
-
- return _clone(parent, depth);
- }
-
- /**
- * Simple flat clone using prototype, accepts only objects, usefull for property
- * override on FLAT configuration object (no nested props).
- *
- * USE WITH CAUTION! This may not behave as you wish if you do not know how this
- * works.
- */
- clone.clonePrototype = function clonePrototype(parent) {
- if (parent === null)
- return null;
-
- var c = function () {};
- c.prototype = parent;
- return new c();
- };
-
-// private utility functions
-
- function __objToStr(o) {
- return Object.prototype.toString.call(o);
- }
- clone.__objToStr = __objToStr;
-
- function __isDate(o) {
- return typeof o === 'object' && __objToStr(o) === '[object Date]';
- }
- clone.__isDate = __isDate;
-
- function __isArray(o) {
- return typeof o === 'object' && __objToStr(o) === '[object Array]';
- }
- clone.__isArray = __isArray;
-
- function __isRegExp(o) {
- return typeof o === 'object' && __objToStr(o) === '[object RegExp]';
- }
- clone.__isRegExp = __isRegExp;
-
- function __getRegExpFlags(re) {
- var flags = '';
- if (re.global) flags += 'g';
- if (re.ignoreCase) flags += 'i';
- if (re.multiline) flags += 'm';
- return flags;
- }
- clone.__getRegExpFlags = __getRegExpFlags;
-
- return clone;
-})();
-
-export default clone
diff --git a/uni_modules/uview-ui/libs/mixin/button.js b/uni_modules/uview-ui/libs/mixin/button.js
deleted file mode 100644
index 0c019c2..0000000
--- a/uni_modules/uview-ui/libs/mixin/button.js
+++ /dev/null
@@ -1,13 +0,0 @@
-export default {
- props: {
- lang: String,
- sessionFrom: String,
- sendMessageTitle: String,
- sendMessagePath: String,
- sendMessageImg: String,
- showMessageCard: Boolean,
- appParameter: String,
- formType: String,
- openType: String
- }
-}
diff --git a/uni_modules/uview-ui/libs/mixin/mixin.js b/uni_modules/uview-ui/libs/mixin/mixin.js
deleted file mode 100644
index f41a178..0000000
--- a/uni_modules/uview-ui/libs/mixin/mixin.js
+++ /dev/null
@@ -1,160 +0,0 @@
-module.exports = {
- // 定义每个组件都可能需要用到的外部样式以及类名
- props: {
- // 每个组件都有的父组件传递的样式,可以为字符串或者对象形式
- customStyle: {
- type: [Object, String],
- default: () => ({})
- },
- customClass: {
- type: String,
- default: ''
- },
- // 跳转的页面路径
- url: {
- type: String,
- default: ''
- },
- // 页面跳转的类型
- linkType: {
- type: String,
- default: 'navigateTo'
- }
- },
- data() {
- return {}
- },
- onLoad() {
- // getRect挂载到$u上,因为这方法需要使用in(this),所以无法把它独立成一个单独的文件导出
- this.$u.getRect = this.$uGetRect
- },
- created() {
- // 组件当中,只有created声明周期,为了能在组件使用,故也在created中将方法挂载到$u
- this.$u.getRect = this.$uGetRect
- },
- computed: {
- // 在2.x版本中,将会把$u挂载到uni对象下,导致在模板中无法使用uni.$u.xxx形式
- // 所以这里通过computed计算属性将其附加到this.$u上,就可以在模板或者js中使用uni.$u.xxx
- // 只在nvue环境通过此方式引入完整的$u,其他平台会出现性能问题,非nvue则按需引入(主要原因是props过大)
- $u() {
- // #ifndef APP-NVUE
- // 在非nvue端,移除props,http,mixin等对象,避免在小程序setData时数据过大影响性能
- return uni.$u.deepMerge(uni.$u, {
- props: undefined,
- http: undefined,
- mixin: undefined
- })
- // #endif
- // #ifdef APP-NVUE
- return uni.$u
- // #endif
- },
- /**
- * 生成bem规则类名
- * 由于微信小程序,H5,nvue之间绑定class的差异,无法通过:class="[bem()]"的形式进行同用
- * 故采用如下折中做法,最后返回的是数组(一般平台)或字符串(支付宝和字节跳动平台),类似['a', 'b', 'c']或'a b c'的形式
- * @param {String} name 组件名称
- * @param {Array} fixed 一直会存在的类名
- * @param {Array} change 会根据变量值为true或者false而出现或者隐藏的类名
- * @returns {Array|string}
- */
- bem() {
- return function (name, fixed, change) {
- // 类名前缀
- const prefix = `u-${name}--`
- const classes = {}
- if (fixed) {
- fixed.map((item) => {
- // 这里的类名,会一直存在
- classes[prefix + this[item]] = true
- })
- }
- if (change) {
- change.map((item) => {
- // 这里的类名,会根据this[item]的值为true或者false,而进行添加或者移除某一个类
- this[item] ? (classes[prefix + item] = this[item]) : (delete classes[prefix + item])
- })
- }
- return Object.keys(classes)
- // 支付宝,头条小程序无法动态绑定一个数组类名,否则解析出来的结果会带有",",而导致失效
- // #ifdef MP-ALIPAY || MP-TOUTIAO || MP-LARK
- .join(' ')
- // #endif
- }
- }
- },
- methods: {
- // 跳转某一个页面
- openPage(urlKey = 'url') {
- const url = this[urlKey]
- if (url) {
- // 执行类似uni.navigateTo的方法
- uni[this.linkType]({
- url
- })
- }
- },
- // 查询节点信息
- // 目前此方法在支付宝小程序中无法获取组件跟接点的尺寸,为支付宝的bug(2020-07-21)
- // 解决办法为在组件根部再套一个没有任何作用的view元素
- $uGetRect(selector, all) {
- return new Promise((resolve) => {
- uni.createSelectorQuery()
- .in(this)[all ? 'selectAll' : 'select'](selector)
- .boundingClientRect((rect) => {
- if (all && Array.isArray(rect) && rect.length) {
- resolve(rect)
- }
- if (!all && rect) {
- resolve(rect)
- }
- })
- .exec()
- })
- },
- getParentData(parentName = '') {
- // 避免在created中去定义parent变量
- if (!this.parent) this.parent = {}
- // 这里的本质原理是,通过获取父组件实例(也即类似u-radio的父组件u-radio-group的this)
- // 将父组件this中对应的参数,赋值给本组件(u-radio的this)的parentData对象中对应的属性
- // 之所以需要这么做,是因为所有端中,头条小程序不支持通过this.parent.xxx去监听父组件参数的变化
- // 此处并不会自动更新子组件的数据,而是依赖父组件u-radio-group去监听data的变化,手动调用更新子组件的方法去重新获取
- this.parent = uni.$u.$parent.call(this, parentName)
- if (this.parent.children) {
- // 如果父组件的children不存在本组件的实例,才将本实例添加到父组件的children中
- this.parent.children.indexOf(this) === -1 && this.parent.children.push(this)
- }
- if (this.parent && this.parentData) {
- // 历遍parentData中的属性,将parent中的同名属性赋值给parentData
- Object.keys(this.parentData).map((key) => {
- this.parentData[key] = this.parent[key]
- })
- }
- },
- // 阻止事件冒泡
- preventEvent(e) {
- e && typeof (e.stopPropagation) === 'function' && e.stopPropagation()
- },
- // 空操作
- noop(e) {
- this.preventEvent(e)
- }
- },
- onReachBottom() {
- uni.$emit('uOnReachBottom')
- },
- beforeDestroy() {
- // 判断当前页面是否存在parent和chldren,一般在checkbox和checkbox-group父子联动的场景会有此情况
- // 组件销毁时,移除子组件在父组件children数组中的实例,释放资源,避免数据混乱
- if (this.parent && uni.$u.test.array(this.parent.children)) {
- // 组件销毁时,移除父组件中的children数组中对应的实例
- const childrenList = this.parent.children
- childrenList.map((child, index) => {
- // 如果相等,则移除
- if (child === this) {
- childrenList.splice(index, 1)
- }
- })
- }
- }
-}
diff --git a/uni_modules/uview-ui/libs/mixin/mpMixin.js b/uni_modules/uview-ui/libs/mixin/mpMixin.js
deleted file mode 100644
index 29e7e65..0000000
--- a/uni_modules/uview-ui/libs/mixin/mpMixin.js
+++ /dev/null
@@ -1,8 +0,0 @@
-export default {
- // #ifdef MP-WEIXIN
- // 将自定义节点设置成虚拟的,更加接近Vue组件的表现,能更好的使用flex属性
- options: {
- virtualHost: true
- }
- // #endif
-}
diff --git a/uni_modules/uview-ui/libs/mixin/mpShare.js b/uni_modules/uview-ui/libs/mixin/mpShare.js
deleted file mode 100644
index b07bbd3..0000000
--- a/uni_modules/uview-ui/libs/mixin/mpShare.js
+++ /dev/null
@@ -1,13 +0,0 @@
-module.exports = {
- onLoad() {
- // 设置默认的转发参数
- uni.$u.mpShare = {
- title: '', // 默认为小程序名称
- path: '', // 默认为当前页面路径
- imageUrl: '' // 默认为当前页面的截图
- }
- },
- onShareAppMessage() {
- return uni.$u.mpShare
- }
-}
diff --git a/uni_modules/uview-ui/libs/mixin/openType.js b/uni_modules/uview-ui/libs/mixin/openType.js
deleted file mode 100644
index 1216181..0000000
--- a/uni_modules/uview-ui/libs/mixin/openType.js
+++ /dev/null
@@ -1,25 +0,0 @@
-export default {
- props: {
- openType: String
- },
- methods: {
- onGetUserInfo(event) {
- this.$emit('getuserinfo', event.detail)
- },
- onContact(event) {
- this.$emit('contact', event.detail)
- },
- onGetPhoneNumber(event) {
- this.$emit('getphonenumber', event.detail)
- },
- onError(event) {
- this.$emit('error', event.detail)
- },
- onLaunchApp(event) {
- this.$emit('launchapp', event.detail)
- },
- onOpenSetting(event) {
- this.$emit('opensetting', event.detail)
- }
- }
-}
diff --git a/uni_modules/uview-ui/libs/mixin/style.js b/uni_modules/uview-ui/libs/mixin/style.js
deleted file mode 100644
index 2660180..0000000
--- a/uni_modules/uview-ui/libs/mixin/style.js
+++ /dev/null
@@ -1,228 +0,0 @@
-export default {
- props: {
- // flex排列方式
- flexDirection: {
- type: String,
- default: ''
- },
- // flex-direction的简写
- fd: {
- type: String,
- default: ''
- },
- // 展示类型
- display: {
- type: String,
- default: ''
- },
- // display简写
- d: {
- type: String,
- default: ''
- },
- // 主轴排列方式
- justifyContent: {
- type: String,
- default: ''
- },
- // justifyContent的简写
- jc: {
- type: String,
- default: ''
- },
- // 纵轴排列方式
- alignItems: {
- type: String,
- default: ''
- },
- // align-items的简写
- ai: {
- type: String,
- default: ''
- },
- color: {
- type: String,
- default: ''
- },
- // color简写
- c: {
- type: String,
- default: ''
- },
- // 字体大小
- fontSize: {
- type: [String, Number],
- default: 0
- },
- // font-size简写
- fs: {
- type: [String, Number],
- default: ''
- },
- margin: {
- type: [String, Number],
- default: 0
- },
- // margin简写
- m: {
- type: [String, Number],
- default: 0
- },
- // margin-top
- marginTop: {
- type: [String, Number],
- default: 0
- },
- // margin-top简写
- mt: {
- type: [String, Number],
- default: 0
- },
- // margin-right
- marginRight: {
- type: [String, Number],
- default: 0
- },
- // margin-right简写
- mr: {
- type: [String, Number],
- default: 0
- },
- // margin-bottom
- marginBottom: {
- type: [String, Number],
- default: 0
- },
- // margin-bottom简写
- mb: {
- type: [String, Number],
- default: 0
- },
- // margin-left
- marginLeft: {
- type: [String, Number],
- default: 0
- },
- // margin-left简写
- ml: {
- type: [String, Number],
- default: 0
- },
- // padding-left
- paddingLeft: {
- type: [String, Number],
- default: 0
- },
- // padding-left简写
- pl: {
- type: [String, Number],
- default: 0
- },
- // padding-top
- paddingTop: {
- type: [String, Number],
- default: 0
- },
- // padding-top简写
- pt: {
- type: [String, Number],
- default: 0
- },
- // padding-right
- paddingRight: {
- type: [String, Number],
- default: 0
- },
- // padding-right简写
- pr: {
- type: [String, Number],
- default: 0
- },
- // padding-bottom
- paddingBottom: {
- type: [String, Number],
- default: 0
- },
- // padding-bottom简写
- pb: {
- type: [String, Number],
- default: 0
- },
- // border-radius
- borderRadius: {
- type: [String, Number],
- default: 0
- },
- // border-radius简写
- radius: {
- type: [String, Number],
- default: 0
- },
- // transform
- transform: {
- type: String,
- default: ''
- },
- // 定位
- position: {
- type: String,
- default: ''
- },
- // position简写
- pos: {
- type: String,
- default: ''
- },
- // 宽度
- width: {
- type: [String, Number],
- default: null
- },
- // width简写
- w: {
- type: [String, Number],
- default: null
- },
- // 高度
- height: {
- type: [String, Number],
- default: null
- },
- // height简写
- h: {
- type: [String, Number],
- default: null
- },
- top: {
- type: [String, Number],
- default: 0
- },
- right: {
- type: [String, Number],
- default: 0
- },
- bottom: {
- type: [String, Number],
- default: 0
- },
- left: {
- type: [String, Number],
- default: 0
- }
- },
- computed: {
- viewStyle() {
- const style = {}
- const addStyle = uni.$u.addStyle(this.width || this.w) && (style.width = addStyle(this.width || this.w))(this.height || this.h) && (style.height = addStyle(this.height || this.h))(this.margin || this.m) && (style.margin = addStyle(this.margin || this.m))(this.marginTop || this.mt) && (style.marginTop = addStyle(this.marginTop || this.mt))(this.marginRight || this.mr) && (style.marginRight = addStyle(this.marginRight || this.mr))(this.marginBottom || this.mb) && (style.marginBottom = addStyle(this.marginBottom || this.mb))(this.marginLeft || this.ml) && (style.marginLeft = addStyle(this.marginLeft || this.ml))(this.padding || this.p) && (style.padding = addStyle(this.padding || this.p))(this.paddingTop || this.pt) && (style.paddingTop = addStyle(this.paddingTop || this.pt))(this.paddingRight || this.pr) && (style.paddingRight = addStyle(this.paddingRight || this.pr))(this.paddingBottom || this.pb) && (style.paddingBottom = addStyle(this.paddingBottom || this.pb))(this.paddingLeft || this.pl) && (style.paddingLeft = addStyle(this.paddingLeft || this.pl))(this.color || this.c) && (style.color = this.color || this.c)(this.fontSize || this.fs) && (style.fontSize = this.fontSize || this.fs)(this.borderRadius || this.radius) && (style.borderRadius = this.borderRadius || this.radius)(this.position || this.pos) && (this.position = this.position || this.pos)(this.flexDirection || this.fd) && (this.flexDirection = this.flexDirection || this.fd)(this.justifyContent || jc) && (this.justifyContent = this.justifyContent || jc)(this.alignItems || ai) && (this.alignItems = this.alignItems || ai)
-
- return uni.$u.deepMerge(style, uni.$u.addStyle(this.customStyle))
- }
- },
- methods: {
- // 获取margin或者padding的单位,比如padding: 0 20转为padding: 0 20px
- getUnit(unit = '') {
- // 取出两端空格,分隔成数组,再对数组的每个元素添加单位,最后再合并成字符串
- return uni.$u.trim(unit).split(' ').map((item) => uni.$u.addUnit(item)).join(' ')
- }
- }
-}
diff --git a/uni_modules/uview-ui/libs/mixin/touch.js b/uni_modules/uview-ui/libs/mixin/touch.js
deleted file mode 100644
index 0ecbd88..0000000
--- a/uni_modules/uview-ui/libs/mixin/touch.js
+++ /dev/null
@@ -1,59 +0,0 @@
-const MIN_DISTANCE = 10
-
-function getDirection(x, y) {
- if (x > y && x > MIN_DISTANCE) {
- return 'horizontal'
- }
- if (y > x && y > MIN_DISTANCE) {
- return 'vertical'
- }
- return ''
-}
-
-export default {
- methods: {
- getTouchPoint(e) {
- if (!e) {
- return {
- x: 0,
- y: 0
- }
- } if (e.touches && e.touches[0]) {
- return {
- x: e.touches[0].pageX,
- y: e.touches[0].pageY
- }
- } if (e.changedTouches && e.changedTouches[0]) {
- return {
- x: e.changedTouches[0].pageX,
- y: e.changedTouches[0].pageY
- }
- }
- return {
- x: e.clientX || 0,
- y: e.clientY || 0
- }
- },
- resetTouchStatus() {
- this.direction = ''
- this.deltaX = 0
- this.deltaY = 0
- this.offsetX = 0
- this.offsetY = 0
- },
- touchStart(event) {
- this.resetTouchStatus()
- const touch = this.getTouchPoint(event)
- this.startX = touch.x
- this.startY = touch.y
- },
- touchMove(event) {
- const touch = this.getTouchPoint(event)
- this.deltaX = touch.x - this.startX
- this.deltaY = touch.y - this.startY
- this.offsetX = Math.abs(this.deltaX)
- this.offsetY = Math.abs(this.deltaY)
- this.direction = this.direction || getDirection(this.offsetX, this.offsetY)
- }
- }
-}
diff --git a/uni_modules/uview-ui/libs/util/async-validator.js b/uni_modules/uview-ui/libs/util/async-validator.js
deleted file mode 100644
index 9e114df..0000000
--- a/uni_modules/uview-ui/libs/util/async-validator.js
+++ /dev/null
@@ -1,1343 +0,0 @@
-function _extends() {
- _extends = Object.assign || function (target) {
- for (let i = 1; i < arguments.length; i++) {
- const source = arguments[i]
-
- for (const key in source) {
- if (Object.prototype.hasOwnProperty.call(source, key)) {
- target[key] = source[key]
- }
- }
- }
-
- return target
- }
-
- return _extends.apply(this, arguments)
-}
-
-/* eslint no-console:0 */
-const formatRegExp = /%[sdj%]/g
-let warning = function warning() {} // don't print warning message when in production env or node runtime
-
-if (typeof process !== 'undefined' && process.env && process.env.NODE_ENV !== 'production' && typeof window
- !== 'undefined' && typeof document !== 'undefined') {
- warning = function warning(type, errors) {
- if (typeof console !== 'undefined' && console.warn) {
- if (errors.every((e) => typeof e === 'string')) {
- console.warn(type, errors)
- }
- }
- }
-}
-
-function convertFieldsError(errors) {
- if (!errors || !errors.length) return null
- const fields = {}
- errors.forEach((error) => {
- const { field } = error
- fields[field] = fields[field] || []
- fields[field].push(error)
- })
- return fields
-}
-
-function format() {
- for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
- args[_key] = arguments[_key]
- }
-
- let i = 1
- const f = args[0]
- const len = args.length
-
- if (typeof f === 'function') {
- return f.apply(null, args.slice(1))
- }
-
- if (typeof f === 'string') {
- let str = String(f).replace(formatRegExp, (x) => {
- if (x === '%%') {
- return '%'
- }
-
- if (i >= len) {
- return x
- }
-
- switch (x) {
- case '%s':
- return String(args[i++])
-
- case '%d':
- return Number(args[i++])
-
- case '%j':
- try {
- return JSON.stringify(args[i++])
- } catch (_) {
- return '[Circular]'
- }
-
- break
-
- default:
- return x
- }
- })
-
- for (let arg = args[i]; i < len; arg = args[++i]) {
- str += ` ${arg}`
- }
-
- return str
- }
-
- return f
-}
-
-function isNativeStringType(type) {
- return type === 'string' || type === 'url' || type === 'hex' || type === 'email' || type === 'pattern'
-}
-
-function isEmptyValue(value, type) {
- if (value === undefined || value === null) {
- return true
- }
-
- if (type === 'array' && Array.isArray(value) && !value.length) {
- return true
- }
-
- if (isNativeStringType(type) && typeof value === 'string' && !value) {
- return true
- }
-
- return false
-}
-
-function asyncParallelArray(arr, func, callback) {
- const results = []
- let total = 0
- const arrLength = arr.length
-
- function count(errors) {
- results.push.apply(results, errors)
- total++
-
- if (total === arrLength) {
- callback(results)
- }
- }
-
- arr.forEach((a) => {
- func(a, count)
- })
-}
-
-function asyncSerialArray(arr, func, callback) {
- let index = 0
- const arrLength = arr.length
-
- function next(errors) {
- if (errors && errors.length) {
- callback(errors)
- return
- }
-
- const original = index
- index += 1
-
- if (original < arrLength) {
- func(arr[original], next)
- } else {
- callback([])
- }
- }
-
- next([])
-}
-
-function flattenObjArr(objArr) {
- const ret = []
- Object.keys(objArr).forEach((k) => {
- ret.push.apply(ret, objArr[k])
- })
- return ret
-}
-
-function asyncMap(objArr, option, func, callback) {
- if (option.first) {
- const _pending = new Promise((resolve, reject) => {
- const next = function next(errors) {
- callback(errors)
- return errors.length ? reject({
- errors,
- fields: convertFieldsError(errors)
- }) : resolve()
- }
-
- const flattenArr = flattenObjArr(objArr)
- asyncSerialArray(flattenArr, func, next)
- })
-
- _pending.catch((e) => e)
-
- return _pending
- }
-
- let firstFields = option.firstFields || []
-
- if (firstFields === true) {
- firstFields = Object.keys(objArr)
- }
-
- const objArrKeys = Object.keys(objArr)
- const objArrLength = objArrKeys.length
- let total = 0
- const results = []
- const pending = new Promise((resolve, reject) => {
- const next = function next(errors) {
- results.push.apply(results, errors)
- total++
-
- if (total === objArrLength) {
- callback(results)
- return results.length ? reject({
- errors: results,
- fields: convertFieldsError(results)
- }) : resolve()
- }
- }
-
- if (!objArrKeys.length) {
- callback(results)
- resolve()
- }
-
- objArrKeys.forEach((key) => {
- const arr = objArr[key]
-
- if (firstFields.indexOf(key) !== -1) {
- asyncSerialArray(arr, func, next)
- } else {
- asyncParallelArray(arr, func, next)
- }
- })
- })
- pending.catch((e) => e)
- return pending
-}
-
-function complementError(rule) {
- return function (oe) {
- if (oe && oe.message) {
- oe.field = oe.field || rule.fullField
- return oe
- }
-
- return {
- message: typeof oe === 'function' ? oe() : oe,
- field: oe.field || rule.fullField
- }
- }
-}
-
-function deepMerge(target, source) {
- if (source) {
- for (const s in source) {
- if (source.hasOwnProperty(s)) {
- const value = source[s]
-
- if (typeof value === 'object' && typeof target[s] === 'object') {
- target[s] = { ...target[s], ...value }
- } else {
- target[s] = value
- }
- }
- }
- }
-
- return target
-}
-
-/**
- * Rule for validating required fields.
- *
- * @param rule The validation rule.
- * @param value The value of the field on the source object.
- * @param source The source object being validated.
- * @param errors An array of errors that this rule may add
- * validation errors to.
- * @param options The validation options.
- * @param options.messages The validation messages.
- */
-
-function required(rule, value, source, errors, options, type) {
- if (rule.required && (!source.hasOwnProperty(rule.field) || isEmptyValue(value, type || rule.type))) {
- errors.push(format(options.messages.required, rule.fullField))
- }
-}
-
-/**
- * Rule for validating whitespace.
- *
- * @param rule The validation rule.
- * @param value The value of the field on the source object.
- * @param source The source object being validated.
- * @param errors An array of errors that this rule may add
- * validation errors to.
- * @param options The validation options.
- * @param options.messages The validation messages.
- */
-
-function whitespace(rule, value, source, errors, options) {
- if (/^\s+$/.test(value) || value === '') {
- errors.push(format(options.messages.whitespace, rule.fullField))
- }
-}
-
-/* eslint max-len:0 */
-
-const pattern = {
- // http://emailregex.com/
- email: /^(([^<>()\[\]\\.,;:\s@"]+(\.[^<>()\[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/,
- url: new RegExp(
- '^(?!mailto:)(?:(?:http|https|ftp)://|//)(?:\\S+(?::\\S*)?@)?(?:(?:(?:[1-9]\\d?|1\\d\\d|2[01]\\d|22[0-3])(?:\\.(?:1?\\d{1,2}|2[0-4]\\d|25[0-5])){2}(?:\\.(?:[0-9]\\d?|1\\d\\d|2[0-4]\\d|25[0-4]))|(?:(?:[a-z\\u00a1-\\uffff0-9]+-*)*[a-z\\u00a1-\\uffff0-9]+)(?:\\.(?:[a-z\\u00a1-\\uffff0-9]+-*)*[a-z\\u00a1-\\uffff0-9]+)*(?:\\.(?:[a-z\\u00a1-\\uffff]{2,})))|localhost)(?::\\d{2,5})?(?:(/|\\?|#)[^\\s]*)?$',
- 'i'
- ),
- hex: /^#?([a-f0-9]{6}|[a-f0-9]{3})$/i
-}
-var types = {
- integer: function integer(value) {
- return /^(-)?\d+$/.test(value);
- },
- float: function float(value) {
- return /^(-)?\d+(\.\d+)?$/.test(value);
- },
- array: function array(value) {
- return Array.isArray(value)
- },
- regexp: function regexp(value) {
- if (value instanceof RegExp) {
- return true
- }
-
- try {
- return !!new RegExp(value)
- } catch (e) {
- return false
- }
- },
- date: function date(value) {
- return typeof value.getTime === 'function' && typeof value.getMonth === 'function' && typeof value.getYear
- === 'function'
- },
- number: function number(value) {
- if (isNaN(value)) {
- return false
- }
-
- // 修改源码,将字符串数值先转为数值
- return typeof +value === 'number'
- },
- object: function object(value) {
- return typeof value === 'object' && !types.array(value)
- },
- method: function method(value) {
- return typeof value === 'function'
- },
- email: function email(value) {
- return typeof value === 'string' && !!value.match(pattern.email) && value.length < 255
- },
- url: function url(value) {
- return typeof value === 'string' && !!value.match(pattern.url)
- },
- hex: function hex(value) {
- return typeof value === 'string' && !!value.match(pattern.hex)
- }
-}
-/**
- * Rule for validating the type of a value.
- *
- * @param rule The validation rule.
- * @param value The value of the field on the source object.
- * @param source The source object being validated.
- * @param errors An array of errors that this rule may add
- * validation errors to.
- * @param options The validation options.
- * @param options.messages The validation messages.
- */
-
-function type(rule, value, source, errors, options) {
- if (rule.required && value === undefined) {
- required(rule, value, source, errors, options)
- return
- }
-
- const custom = ['integer', 'float', 'array', 'regexp', 'object', 'method', 'email', 'number', 'date', 'url', 'hex']
- const ruleType = rule.type
-
- if (custom.indexOf(ruleType) > -1) {
- if (!types[ruleType](value)) {
- errors.push(format(options.messages.types[ruleType], rule.fullField, rule.type))
- } // straight typeof check
- } else if (ruleType && typeof value !== rule.type) {
- errors.push(format(options.messages.types[ruleType], rule.fullField, rule.type))
- }
-}
-
-/**
- * Rule for validating minimum and maximum allowed values.
- *
- * @param rule The validation rule.
- * @param value The value of the field on the source object.
- * @param source The source object being validated.
- * @param errors An array of errors that this rule may add
- * validation errors to.
- * @param options The validation options.
- * @param options.messages The validation messages.
- */
-
-function range(rule, value, source, errors, options) {
- const len = typeof rule.len === 'number'
- const min = typeof rule.min === 'number'
- const max = typeof rule.max === 'number' // 正则匹配码点范围从U+010000一直到U+10FFFF的文字(补充平面Supplementary Plane)
-
- const spRegexp = /[\uD800-\uDBFF][\uDC00-\uDFFF]/g
- let val = value
- let key = null
- const num = typeof value === 'number'
- const str = typeof value === 'string'
- const arr = Array.isArray(value)
-
- if (num) {
- key = 'number'
- } else if (str) {
- key = 'string'
- } else if (arr) {
- key = 'array'
- } // if the value is not of a supported type for range validation
- // the validation rule rule should use the
- // type property to also test for a particular type
-
- if (!key) {
- return false
- }
-
- if (arr) {
- val = value.length
- }
-
- if (str) {
- // 处理码点大于U+010000的文字length属性不准确的bug,如"𠮷𠮷𠮷".lenght !== 3
- val = value.replace(spRegexp, '_').length
- }
-
- if (len) {
- if (val !== rule.len) {
- errors.push(format(options.messages[key].len, rule.fullField, rule.len))
- }
- } else if (min && !max && val < rule.min) {
- errors.push(format(options.messages[key].min, rule.fullField, rule.min))
- } else if (max && !min && val > rule.max) {
- errors.push(format(options.messages[key].max, rule.fullField, rule.max))
- } else if (min && max && (val < rule.min || val > rule.max)) {
- errors.push(format(options.messages[key].range, rule.fullField, rule.min, rule.max))
- }
-}
-
-const ENUM = 'enum'
-/**
- * Rule for validating a value exists in an enumerable list.
- *
- * @param rule The validation rule.
- * @param value The value of the field on the source object.
- * @param source The source object being validated.
- * @param errors An array of errors that this rule may add
- * validation errors to.
- * @param options The validation options.
- * @param options.messages The validation messages.
- */
-
-function enumerable(rule, value, source, errors, options) {
- rule[ENUM] = Array.isArray(rule[ENUM]) ? rule[ENUM] : []
-
- if (rule[ENUM].indexOf(value) === -1) {
- errors.push(format(options.messages[ENUM], rule.fullField, rule[ENUM].join(', ')))
- }
-}
-
-/**
- * Rule for validating a regular expression pattern.
- *
- * @param rule The validation rule.
- * @param value The value of the field on the source object.
- * @param source The source object being validated.
- * @param errors An array of errors that this rule may add
- * validation errors to.
- * @param options The validation options.
- * @param options.messages The validation messages.
- */
-
-function pattern$1(rule, value, source, errors, options) {
- if (rule.pattern) {
- if (rule.pattern instanceof RegExp) {
- // if a RegExp instance is passed, reset `lastIndex` in case its `global`
- // flag is accidentally set to `true`, which in a validation scenario
- // is not necessary and the result might be misleading
- rule.pattern.lastIndex = 0
-
- if (!rule.pattern.test(value)) {
- errors.push(format(options.messages.pattern.mismatch, rule.fullField, value, rule.pattern))
- }
- } else if (typeof rule.pattern === 'string') {
- const _pattern = new RegExp(rule.pattern)
-
- if (!_pattern.test(value)) {
- errors.push(format(options.messages.pattern.mismatch, rule.fullField, value, rule.pattern))
- }
- }
- }
-}
-
-const rules = {
- required,
- whitespace,
- type,
- range,
- enum: enumerable,
- pattern: pattern$1
-}
-
-/**
- * Performs validation for string types.
- *
- * @param rule The validation rule.
- * @param value The value of the field on the source object.
- * @param callback The callback function.
- * @param source The source object being validated.
- * @param options The validation options.
- * @param options.messages The validation messages.
- */
-
-function string(rule, value, callback, source, options) {
- const errors = []
- const validate = rule.required || !rule.required && source.hasOwnProperty(rule.field)
-
- if (validate) {
- if (isEmptyValue(value, 'string') && !rule.required) {
- return callback()
- }
-
- rules.required(rule, value, source, errors, options, 'string')
-
- if (!isEmptyValue(value, 'string')) {
- rules.type(rule, value, source, errors, options)
- rules.range(rule, value, source, errors, options)
- rules.pattern(rule, value, source, errors, options)
-
- if (rule.whitespace === true) {
- rules.whitespace(rule, value, source, errors, options)
- }
- }
- }
-
- callback(errors)
-}
-
-/**
- * Validates a function.
- *
- * @param rule The validation rule.
- * @param value The value of the field on the source object.
- * @param callback The callback function.
- * @param source The source object being validated.
- * @param options The validation options.
- * @param options.messages The validation messages.
- */
-
-function method(rule, value, callback, source, options) {
- const errors = []
- const validate = rule.required || !rule.required && source.hasOwnProperty(rule.field)
-
- if (validate) {
- if (isEmptyValue(value) && !rule.required) {
- return callback()
- }
-
- rules.required(rule, value, source, errors, options)
-
- if (value !== undefined) {
- rules.type(rule, value, source, errors, options)
- }
- }
-
- callback(errors)
-}
-
-/**
- * Validates a number.
- *
- * @param rule The validation rule.
- * @param value The value of the field on the source object.
- * @param callback The callback function.
- * @param source The source object being validated.
- * @param options The validation options.
- * @param options.messages The validation messages.
- */
-
-function number(rule, value, callback, source, options) {
- const errors = []
- const validate = rule.required || !rule.required && source.hasOwnProperty(rule.field)
-
- if (validate) {
- if (value === '') {
- value = undefined
- }
-
- if (isEmptyValue(value) && !rule.required) {
- return callback()
- }
-
- rules.required(rule, value, source, errors, options)
-
- if (value !== undefined) {
- rules.type(rule, value, source, errors, options)
- rules.range(rule, value, source, errors, options)
- }
- }
-
- callback(errors)
-}
-
-/**
- * Validates a boolean.
- *
- * @param rule The validation rule.
- * @param value The value of the field on the source object.
- * @param callback The callback function.
- * @param source The source object being validated.
- * @param options The validation options.
- * @param options.messages The validation messages.
- */
-
-function _boolean(rule, value, callback, source, options) {
- const errors = []
- const validate = rule.required || !rule.required && source.hasOwnProperty(rule.field)
-
- if (validate) {
- if (isEmptyValue(value) && !rule.required) {
- return callback()
- }
-
- rules.required(rule, value, source, errors, options)
-
- if (value !== undefined) {
- rules.type(rule, value, source, errors, options)
- }
- }
-
- callback(errors)
-}
-
-/**
- * Validates the regular expression type.
- *
- * @param rule The validation rule.
- * @param value The value of the field on the source object.
- * @param callback The callback function.
- * @param source The source object being validated.
- * @param options The validation options.
- * @param options.messages The validation messages.
- */
-
-function regexp(rule, value, callback, source, options) {
- const errors = []
- const validate = rule.required || !rule.required && source.hasOwnProperty(rule.field)
-
- if (validate) {
- if (isEmptyValue(value) && !rule.required) {
- return callback()
- }
-
- rules.required(rule, value, source, errors, options)
-
- if (!isEmptyValue(value)) {
- rules.type(rule, value, source, errors, options)
- }
- }
-
- callback(errors)
-}
-
-/**
- * Validates a number is an integer.
- *
- * @param rule The validation rule.
- * @param value The value of the field on the source object.
- * @param callback The callback function.
- * @param source The source object being validated.
- * @param options The validation options.
- * @param options.messages The validation messages.
- */
-
-function integer(rule, value, callback, source, options) {
- const errors = []
- const validate = rule.required || !rule.required && source.hasOwnProperty(rule.field)
-
- if (validate) {
- if (isEmptyValue(value) && !rule.required) {
- return callback()
- }
-
- rules.required(rule, value, source, errors, options)
-
- if (value !== undefined) {
- rules.type(rule, value, source, errors, options)
- rules.range(rule, value, source, errors, options)
- }
- }
-
- callback(errors)
-}
-
-/**
- * Validates a number is a floating point number.
- *
- * @param rule The validation rule.
- * @param value The value of the field on the source object.
- * @param callback The callback function.
- * @param source The source object being validated.
- * @param options The validation options.
- * @param options.messages The validation messages.
- */
-
-function floatFn(rule, value, callback, source, options) {
- const errors = []
- const validate = rule.required || !rule.required && source.hasOwnProperty(rule.field)
-
- if (validate) {
- if (isEmptyValue(value) && !rule.required) {
- return callback()
- }
-
- rules.required(rule, value, source, errors, options)
-
- if (value !== undefined) {
- rules.type(rule, value, source, errors, options)
- rules.range(rule, value, source, errors, options)
- }
- }
-
- callback(errors)
-}
-
-/**
- * Validates an array.
- *
- * @param rule The validation rule.
- * @param value The value of the field on the source object.
- * @param callback The callback function.
- * @param source The source object being validated.
- * @param options The validation options.
- * @param options.messages The validation messages.
- */
-
-function array(rule, value, callback, source, options) {
- const errors = []
- const validate = rule.required || !rule.required && source.hasOwnProperty(rule.field)
-
- if (validate) {
- if (isEmptyValue(value, 'array') && !rule.required) {
- return callback()
- }
-
- rules.required(rule, value, source, errors, options, 'array')
-
- if (!isEmptyValue(value, 'array')) {
- rules.type(rule, value, source, errors, options)
- rules.range(rule, value, source, errors, options)
- }
- }
-
- callback(errors)
-}
-
-/**
- * Validates an object.
- *
- * @param rule The validation rule.
- * @param value The value of the field on the source object.
- * @param callback The callback function.
- * @param source The source object being validated.
- * @param options The validation options.
- * @param options.messages The validation messages.
- */
-
-function object(rule, value, callback, source, options) {
- const errors = []
- const validate = rule.required || !rule.required && source.hasOwnProperty(rule.field)
-
- if (validate) {
- if (isEmptyValue(value) && !rule.required) {
- return callback()
- }
-
- rules.required(rule, value, source, errors, options)
-
- if (value !== undefined) {
- rules.type(rule, value, source, errors, options)
- }
- }
-
- callback(errors)
-}
-
-const ENUM$1 = 'enum'
-/**
- * Validates an enumerable list.
- *
- * @param rule The validation rule.
- * @param value The value of the field on the source object.
- * @param callback The callback function.
- * @param source The source object being validated.
- * @param options The validation options.
- * @param options.messages The validation messages.
- */
-
-function enumerable$1(rule, value, callback, source, options) {
- const errors = []
- const validate = rule.required || !rule.required && source.hasOwnProperty(rule.field)
-
- if (validate) {
- if (isEmptyValue(value) && !rule.required) {
- return callback()
- }
-
- rules.required(rule, value, source, errors, options)
-
- if (value !== undefined) {
- rules[ENUM$1](rule, value, source, errors, options)
- }
- }
-
- callback(errors)
-}
-
-/**
- * Validates a regular expression pattern.
- *
- * Performs validation when a rule only contains
- * a pattern property but is not declared as a string type.
- *
- * @param rule The validation rule.
- * @param value The value of the field on the source object.
- * @param callback The callback function.
- * @param source The source object being validated.
- * @param options The validation options.
- * @param options.messages The validation messages.
- */
-
-function pattern$2(rule, value, callback, source, options) {
- const errors = []
- const validate = rule.required || !rule.required && source.hasOwnProperty(rule.field)
-
- if (validate) {
- if (isEmptyValue(value, 'string') && !rule.required) {
- return callback()
- }
-
- rules.required(rule, value, source, errors, options)
-
- if (!isEmptyValue(value, 'string')) {
- rules.pattern(rule, value, source, errors, options)
- }
- }
-
- callback(errors)
-}
-
-function date(rule, value, callback, source, options) {
- const errors = []
- const validate = rule.required || !rule.required && source.hasOwnProperty(rule.field)
-
- if (validate) {
- if (isEmptyValue(value) && !rule.required) {
- return callback()
- }
-
- rules.required(rule, value, source, errors, options)
-
- if (!isEmptyValue(value)) {
- let dateObject
-
- if (typeof value === 'number') {
- dateObject = new Date(value)
- } else {
- dateObject = value
- }
-
- rules.type(rule, dateObject, source, errors, options)
-
- if (dateObject) {
- rules.range(rule, dateObject.getTime(), source, errors, options)
- }
- }
- }
-
- callback(errors)
-}
-
-function required$1(rule, value, callback, source, options) {
- const errors = []
- const type = Array.isArray(value) ? 'array' : typeof value
- rules.required(rule, value, source, errors, options, type)
- callback(errors)
-}
-
-function type$1(rule, value, callback, source, options) {
- const ruleType = rule.type
- const errors = []
- const validate = rule.required || !rule.required && source.hasOwnProperty(rule.field)
-
- if (validate) {
- if (isEmptyValue(value, ruleType) && !rule.required) {
- return callback()
- }
-
- rules.required(rule, value, source, errors, options, ruleType)
-
- if (!isEmptyValue(value, ruleType)) {
- rules.type(rule, value, source, errors, options)
- }
- }
-
- callback(errors)
-}
-
-/**
- * Performs validation for any type.
- *
- * @param rule The validation rule.
- * @param value The value of the field on the source object.
- * @param callback The callback function.
- * @param source The source object being validated.
- * @param options The validation options.
- * @param options.messages The validation messages.
- */
-
-function any(rule, value, callback, source, options) {
- const errors = []
- const validate = rule.required || !rule.required && source.hasOwnProperty(rule.field)
-
- if (validate) {
- if (isEmptyValue(value) && !rule.required) {
- return callback()
- }
-
- rules.required(rule, value, source, errors, options)
- }
-
- callback(errors)
-}
-
-const validators = {
- string,
- method,
- number,
- boolean: _boolean,
- regexp,
- integer,
- float: floatFn,
- array,
- object,
- enum: enumerable$1,
- pattern: pattern$2,
- date,
- url: type$1,
- hex: type$1,
- email: type$1,
- required: required$1,
- any
-}
-
-function newMessages() {
- return {
- default: 'Validation error on field %s',
- required: '%s is required',
- enum: '%s must be one of %s',
- whitespace: '%s cannot be empty',
- date: {
- format: '%s date %s is invalid for format %s',
- parse: '%s date could not be parsed, %s is invalid ',
- invalid: '%s date %s is invalid'
- },
- types: {
- string: '%s is not a %s',
- method: '%s is not a %s (function)',
- array: '%s is not an %s',
- object: '%s is not an %s',
- number: '%s is not a %s',
- date: '%s is not a %s',
- boolean: '%s is not a %s',
- integer: '%s is not an %s',
- float: '%s is not a %s',
- regexp: '%s is not a valid %s',
- email: '%s is not a valid %s',
- url: '%s is not a valid %s',
- hex: '%s is not a valid %s'
- },
- string: {
- len: '%s must be exactly %s characters',
- min: '%s must be at least %s characters',
- max: '%s cannot be longer than %s characters',
- range: '%s must be between %s and %s characters'
- },
- number: {
- len: '%s must equal %s',
- min: '%s cannot be less than %s',
- max: '%s cannot be greater than %s',
- range: '%s must be between %s and %s'
- },
- array: {
- len: '%s must be exactly %s in length',
- min: '%s cannot be less than %s in length',
- max: '%s cannot be greater than %s in length',
- range: '%s must be between %s and %s in length'
- },
- pattern: {
- mismatch: '%s value %s does not match pattern %s'
- },
- clone: function clone() {
- const cloned = JSON.parse(JSON.stringify(this))
- cloned.clone = this.clone
- return cloned
- }
- }
-}
-const messages = newMessages()
-
-/**
- * Encapsulates a validation schema.
- *
- * @param descriptor An object declaring validation rules
- * for this schema.
- */
-
-function Schema(descriptor) {
- this.rules = null
- this._messages = messages
- this.define(descriptor)
-}
-
-Schema.prototype = {
- messages: function messages(_messages) {
- if (_messages) {
- this._messages = deepMerge(newMessages(), _messages)
- }
-
- return this._messages
- },
- define: function define(rules) {
- if (!rules) {
- throw new Error('Cannot configure a schema with no rules')
- }
-
- if (typeof rules !== 'object' || Array.isArray(rules)) {
- throw new Error('Rules must be an object')
- }
-
- this.rules = {}
- let z
- let item
-
- for (z in rules) {
- if (rules.hasOwnProperty(z)) {
- item = rules[z]
- this.rules[z] = Array.isArray(item) ? item : [item]
- }
- }
- },
- validate: function validate(source_, o, oc) {
- const _this = this
-
- if (o === void 0) {
- o = {}
- }
-
- if (oc === void 0) {
- oc = function oc() {}
- }
-
- let source = source_
- let options = o
- let callback = oc
-
- if (typeof options === 'function') {
- callback = options
- options = {}
- }
-
- if (!this.rules || Object.keys(this.rules).length === 0) {
- if (callback) {
- callback()
- }
-
- return Promise.resolve()
- }
-
- function complete(results) {
- let i
- let errors = []
- let fields = {}
-
- function add(e) {
- if (Array.isArray(e)) {
- let _errors
-
- errors = (_errors = errors).concat.apply(_errors, e)
- } else {
- errors.push(e)
- }
- }
-
- for (i = 0; i < results.length; i++) {
- add(results[i])
- }
-
- if (!errors.length) {
- errors = null
- fields = null
- } else {
- fields = convertFieldsError(errors)
- }
-
- callback(errors, fields)
- }
-
- if (options.messages) {
- let messages$1 = this.messages()
-
- if (messages$1 === messages) {
- messages$1 = newMessages()
- }
-
- deepMerge(messages$1, options.messages)
- options.messages = messages$1
- } else {
- options.messages = this.messages()
- }
-
- let arr
- let value
- const series = {}
- const keys = options.keys || Object.keys(this.rules)
- keys.forEach((z) => {
- arr = _this.rules[z]
- value = source[z]
- arr.forEach((r) => {
- let rule = r
-
- if (typeof rule.transform === 'function') {
- if (source === source_) {
- source = { ...source }
- }
-
- value = source[z] = rule.transform(value)
- }
-
- if (typeof rule === 'function') {
- rule = {
- validator: rule
- }
- } else {
- rule = { ...rule }
- }
-
- rule.validator = _this.getValidationMethod(rule)
- rule.field = z
- rule.fullField = rule.fullField || z
- rule.type = _this.getType(rule)
-
- if (!rule.validator) {
- return
- }
-
- series[z] = series[z] || []
- series[z].push({
- rule,
- value,
- source,
- field: z
- })
- })
- })
- const errorFields = {}
- return asyncMap(series, options, (data, doIt) => {
- const { rule } = data
- let deep = (rule.type === 'object' || rule.type === 'array') && (typeof rule.fields === 'object' || typeof rule.defaultField
- === 'object')
- deep = deep && (rule.required || !rule.required && data.value)
- rule.field = data.field
-
- function addFullfield(key, schema) {
- return { ...schema, fullField: `${rule.fullField}.${key}` }
- }
-
- function cb(e) {
- if (e === void 0) {
- e = []
- }
-
- let errors = e
-
- if (!Array.isArray(errors)) {
- errors = [errors]
- }
-
- if (!options.suppressWarning && errors.length) {
- Schema.warning('async-validator:', errors)
- }
-
- if (errors.length && rule.message) {
- errors = [].concat(rule.message)
- }
-
- errors = errors.map(complementError(rule))
-
- if (options.first && errors.length) {
- errorFields[rule.field] = 1
- return doIt(errors)
- }
-
- if (!deep) {
- doIt(errors)
- } else {
- // if rule is required but the target object
- // does not exist fail at the rule level and don't
- // go deeper
- if (rule.required && !data.value) {
- if (rule.message) {
- errors = [].concat(rule.message).map(complementError(rule))
- } else if (options.error) {
- errors = [options.error(rule, format(options.messages.required, rule.field))]
- } else {
- errors = []
- }
-
- return doIt(errors)
- }
-
- let fieldsSchema = {}
-
- if (rule.defaultField) {
- for (const k in data.value) {
- if (data.value.hasOwnProperty(k)) {
- fieldsSchema[k] = rule.defaultField
- }
- }
- }
-
- fieldsSchema = { ...fieldsSchema, ...data.rule.fields }
-
- for (const f in fieldsSchema) {
- if (fieldsSchema.hasOwnProperty(f)) {
- const fieldSchema = Array.isArray(fieldsSchema[f]) ? fieldsSchema[f] : [fieldsSchema[f]]
- fieldsSchema[f] = fieldSchema.map(addFullfield.bind(null, f))
- }
- }
-
- const schema = new Schema(fieldsSchema)
- schema.messages(options.messages)
-
- if (data.rule.options) {
- data.rule.options.messages = options.messages
- data.rule.options.error = options.error
- }
-
- schema.validate(data.value, data.rule.options || options, (errs) => {
- const finalErrors = []
-
- if (errors && errors.length) {
- finalErrors.push.apply(finalErrors, errors)
- }
-
- if (errs && errs.length) {
- finalErrors.push.apply(finalErrors, errs)
- }
-
- doIt(finalErrors.length ? finalErrors : null)
- })
- }
- }
-
- let res
-
- if (rule.asyncValidator) {
- res = rule.asyncValidator(rule, data.value, cb, data.source, options)
- } else if (rule.validator) {
- res = rule.validator(rule, data.value, cb, data.source, options)
-
- if (res === true) {
- cb()
- } else if (res === false) {
- cb(rule.message || `${rule.field} fails`)
- } else if (res instanceof Array) {
- cb(res)
- } else if (res instanceof Error) {
- cb(res.message)
- }
- }
-
- if (res && res.then) {
- res.then(() => cb(), (e) => cb(e))
- }
- }, (results) => {
- complete(results)
- })
- },
- getType: function getType(rule) {
- if (rule.type === undefined && rule.pattern instanceof RegExp) {
- rule.type = 'pattern'
- }
-
- if (typeof rule.validator !== 'function' && rule.type && !validators.hasOwnProperty(rule.type)) {
- throw new Error(format('Unknown rule type %s', rule.type))
- }
-
- return rule.type || 'string'
- },
- getValidationMethod: function getValidationMethod(rule) {
- if (typeof rule.validator === 'function') {
- return rule.validator
- }
-
- const keys = Object.keys(rule)
- const messageIndex = keys.indexOf('message')
-
- if (messageIndex !== -1) {
- keys.splice(messageIndex, 1)
- }
-
- if (keys.length === 1 && keys[0] === 'required') {
- return validators.required
- }
-
- return validators[this.getType(rule)] || false
- }
-}
-
-Schema.register = function register(type, validator) {
- if (typeof validator !== 'function') {
- throw new Error('Cannot register a validator by type, validator is not a function')
- }
-
- validators[type] = validator
-}
-
-Schema.warning = warning
-Schema.messages = messages
-
-export default Schema
-// # sourceMappingURL=index.js.map
diff --git a/uni_modules/uview-ui/libs/util/calendar.js b/uni_modules/uview-ui/libs/util/calendar.js
deleted file mode 100644
index e006dea..0000000
--- a/uni_modules/uview-ui/libs/util/calendar.js
+++ /dev/null
@@ -1,546 +0,0 @@
-/**
-* @1900-2100区间内的公历、农历互转
-* @charset UTF-8
-* @github https://github.com/jjonline/calendar.js
-* @Author Jea杨(JJonline@JJonline.Cn)
-* @Time 2014-7-21
-* @Time 2016-8-13 Fixed 2033hex、Attribution Annals
-* @Time 2016-9-25 Fixed lunar LeapMonth Param Bug
-* @Time 2017-7-24 Fixed use getTerm Func Param Error.use solar year,NOT lunar year
-* @Version 1.0.3
-* @公历转农历:calendar.solar2lunar(1987,11,01); //[you can ignore params of prefix 0]
-* @农历转公历:calendar.lunar2solar(1987,09,10); //[you can ignore params of prefix 0]
-*/
-/* eslint-disable */
-var calendar = {
-
- /**
- * 农历1900-2100的润大小信息表
- * @Array Of Property
- * @return Hex
- */
- lunarInfo: [0x04bd8, 0x04ae0, 0x0a570, 0x054d5, 0x0d260, 0x0d950, 0x16554, 0x056a0, 0x09ad0, 0x055d2, // 1900-1909
- 0x04ae0, 0x0a5b6, 0x0a4d0, 0x0d250, 0x1d255, 0x0b540, 0x0d6a0, 0x0ada2, 0x095b0, 0x14977, // 1910-1919
- 0x04970, 0x0a4b0, 0x0b4b5, 0x06a50, 0x06d40, 0x1ab54, 0x02b60, 0x09570, 0x052f2, 0x04970, // 1920-1929
- 0x06566, 0x0d4a0, 0x0ea50, 0x06e95, 0x05ad0, 0x02b60, 0x186e3, 0x092e0, 0x1c8d7, 0x0c950, // 1930-1939
- 0x0d4a0, 0x1d8a6, 0x0b550, 0x056a0, 0x1a5b4, 0x025d0, 0x092d0, 0x0d2b2, 0x0a950, 0x0b557, // 1940-1949
- 0x06ca0, 0x0b550, 0x15355, 0x04da0, 0x0a5b0, 0x14573, 0x052b0, 0x0a9a8, 0x0e950, 0x06aa0, // 1950-1959
- 0x0aea6, 0x0ab50, 0x04b60, 0x0aae4, 0x0a570, 0x05260, 0x0f263, 0x0d950, 0x05b57, 0x056a0, // 1960-1969
- 0x096d0, 0x04dd5, 0x04ad0, 0x0a4d0, 0x0d4d4, 0x0d250, 0x0d558, 0x0b540, 0x0b6a0, 0x195a6, // 1970-1979
- 0x095b0, 0x049b0, 0x0a974, 0x0a4b0, 0x0b27a, 0x06a50, 0x06d40, 0x0af46, 0x0ab60, 0x09570, // 1980-1989
- 0x04af5, 0x04970, 0x064b0, 0x074a3, 0x0ea50, 0x06b58, 0x05ac0, 0x0ab60, 0x096d5, 0x092e0, // 1990-1999
- 0x0c960, 0x0d954, 0x0d4a0, 0x0da50, 0x07552, 0x056a0, 0x0abb7, 0x025d0, 0x092d0, 0x0cab5, // 2000-2009
- 0x0a950, 0x0b4a0, 0x0baa4, 0x0ad50, 0x055d9, 0x04ba0, 0x0a5b0, 0x15176, 0x052b0, 0x0a930, // 2010-2019
- 0x07954, 0x06aa0, 0x0ad50, 0x05b52, 0x04b60, 0x0a6e6, 0x0a4e0, 0x0d260, 0x0ea65, 0x0d530, // 2020-2029
- 0x05aa0, 0x076a3, 0x096d0, 0x04afb, 0x04ad0, 0x0a4d0, 0x1d0b6, 0x0d250, 0x0d520, 0x0dd45, // 2030-2039
- 0x0b5a0, 0x056d0, 0x055b2, 0x049b0, 0x0a577, 0x0a4b0, 0x0aa50, 0x1b255, 0x06d20, 0x0ada0, // 2040-2049
- /** Add By JJonline@JJonline.Cn**/
- 0x14b63, 0x09370, 0x049f8, 0x04970, 0x064b0, 0x168a6, 0x0ea50, 0x06b20, 0x1a6c4, 0x0aae0, // 2050-2059
- 0x0a2e0, 0x0d2e3, 0x0c960, 0x0d557, 0x0d4a0, 0x0da50, 0x05d55, 0x056a0, 0x0a6d0, 0x055d4, // 2060-2069
- 0x052d0, 0x0a9b8, 0x0a950, 0x0b4a0, 0x0b6a6, 0x0ad50, 0x055a0, 0x0aba4, 0x0a5b0, 0x052b0, // 2070-2079
- 0x0b273, 0x06930, 0x07337, 0x06aa0, 0x0ad50, 0x14b55, 0x04b60, 0x0a570, 0x054e4, 0x0d160, // 2080-2089
- 0x0e968, 0x0d520, 0x0daa0, 0x16aa6, 0x056d0, 0x04ae0, 0x0a9d4, 0x0a2d0, 0x0d150, 0x0f252, // 2090-2099
- 0x0d520], // 2100
-
- /**
- * 公历每个月份的天数普通表
- * @Array Of Property
- * @return Number
- */
- solarMonth: [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31],
-
- /**
- * 天干地支之天干速查表
- * @Array Of Property trans["甲","乙","丙","丁","戊","己","庚","辛","壬","癸"]
- * @return Cn string
- */
- Gan: ['\u7532', '\u4e59', '\u4e19', '\u4e01', '\u620a', '\u5df1', '\u5e9a', '\u8f9b', '\u58ec', '\u7678'],
-
- /**
- * 天干地支之地支速查表
- * @Array Of Property
- * @trans["子","丑","寅","卯","辰","巳","午","未","申","酉","戌","亥"]
- * @return Cn string
- */
- Zhi: ['\u5b50', '\u4e11', '\u5bc5', '\u536f', '\u8fb0', '\u5df3', '\u5348', '\u672a', '\u7533', '\u9149', '\u620c', '\u4ea5'],
-
- /**
- * 天干地支之地支速查表<=>生肖
- * @Array Of Property
- * @trans["鼠","牛","虎","兔","龙","蛇","马","羊","猴","鸡","狗","猪"]
- * @return Cn string
- */
- Animals: ['\u9f20', '\u725b', '\u864e', '\u5154', '\u9f99', '\u86c7', '\u9a6c', '\u7f8a', '\u7334', '\u9e21', '\u72d7', '\u732a'],
-
- /**
- * 24节气速查表
- * @Array Of Property
- * @trans["小寒","大寒","立春","雨水","惊蛰","春分","清明","谷雨","立夏","小满","芒种","夏至","小暑","大暑","立秋","处暑","白露","秋分","寒露","霜降","立冬","小雪","大雪","冬至"]
- * @return Cn string
- */
- solarTerm: ['\u5c0f\u5bd2', '\u5927\u5bd2', '\u7acb\u6625', '\u96e8\u6c34', '\u60ca\u86f0', '\u6625\u5206', '\u6e05\u660e', '\u8c37\u96e8', '\u7acb\u590f', '\u5c0f\u6ee1', '\u8292\u79cd', '\u590f\u81f3', '\u5c0f\u6691', '\u5927\u6691', '\u7acb\u79cb', '\u5904\u6691', '\u767d\u9732', '\u79cb\u5206', '\u5bd2\u9732', '\u971c\u964d', '\u7acb\u51ac', '\u5c0f\u96ea', '\u5927\u96ea', '\u51ac\u81f3'],
-
- /**
- * 1900-2100各年的24节气日期速查表
- * @Array Of Property
- * @return 0x string For splice
- */
- sTermInfo: ['9778397bd097c36b0b6fc9274c91aa', '97b6b97bd19801ec9210c965cc920e', '97bcf97c3598082c95f8c965cc920f',
- '97bd0b06bdb0722c965ce1cfcc920f', 'b027097bd097c36b0b6fc9274c91aa', '97b6b97bd19801ec9210c965cc920e',
- '97bcf97c359801ec95f8c965cc920f', '97bd0b06bdb0722c965ce1cfcc920f', 'b027097bd097c36b0b6fc9274c91aa',
- '97b6b97bd19801ec9210c965cc920e', '97bcf97c359801ec95f8c965cc920f', '97bd0b06bdb0722c965ce1cfcc920f',
- 'b027097bd097c36b0b6fc9274c91aa', '9778397bd19801ec9210c965cc920e', '97b6b97bd19801ec95f8c965cc920f',
- '97bd09801d98082c95f8e1cfcc920f', '97bd097bd097c36b0b6fc9210c8dc2', '9778397bd197c36c9210c9274c91aa',
- '97b6b97bd19801ec95f8c965cc920e', '97bd09801d98082c95f8e1cfcc920f', '97bd097bd097c36b0b6fc9210c8dc2',
- '9778397bd097c36c9210c9274c91aa', '97b6b97bd19801ec95f8c965cc920e', '97bcf97c3598082c95f8e1cfcc920f',
- '97bd097bd097c36b0b6fc9210c8dc2', '9778397bd097c36c9210c9274c91aa', '97b6b97bd19801ec9210c965cc920e',
- '97bcf97c3598082c95f8c965cc920f', '97bd097bd097c35b0b6fc920fb0722', '9778397bd097c36b0b6fc9274c91aa',
- '97b6b97bd19801ec9210c965cc920e', '97bcf97c3598082c95f8c965cc920f', '97bd097bd097c35b0b6fc920fb0722',
- '9778397bd097c36b0b6fc9274c91aa', '97b6b97bd19801ec9210c965cc920e', '97bcf97c359801ec95f8c965cc920f',
- '97bd097bd097c35b0b6fc920fb0722', '9778397bd097c36b0b6fc9274c91aa', '97b6b97bd19801ec9210c965cc920e',
- '97bcf97c359801ec95f8c965cc920f', '97bd097bd097c35b0b6fc920fb0722', '9778397bd097c36b0b6fc9274c91aa',
- '97b6b97bd19801ec9210c965cc920e', '97bcf97c359801ec95f8c965cc920f', '97bd097bd07f595b0b6fc920fb0722',
- '9778397bd097c36b0b6fc9210c8dc2', '9778397bd19801ec9210c9274c920e', '97b6b97bd19801ec95f8c965cc920f',
- '97bd07f5307f595b0b0bc920fb0722', '7f0e397bd097c36b0b6fc9210c8dc2', '9778397bd097c36c9210c9274c920e',
- '97b6b97bd19801ec95f8c965cc920f', '97bd07f5307f595b0b0bc920fb0722', '7f0e397bd097c36b0b6fc9210c8dc2',
- '9778397bd097c36c9210c9274c91aa', '97b6b97bd19801ec9210c965cc920e', '97bd07f1487f595b0b0bc920fb0722',
- '7f0e397bd097c36b0b6fc9210c8dc2', '9778397bd097c36b0b6fc9274c91aa', '97b6b97bd19801ec9210c965cc920e',
- '97bcf7f1487f595b0b0bb0b6fb0722', '7f0e397bd097c35b0b6fc920fb0722', '9778397bd097c36b0b6fc9274c91aa',
- '97b6b97bd19801ec9210c965cc920e', '97bcf7f1487f595b0b0bb0b6fb0722', '7f0e397bd097c35b0b6fc920fb0722',
- '9778397bd097c36b0b6fc9274c91aa', '97b6b97bd19801ec9210c965cc920e', '97bcf7f1487f531b0b0bb0b6fb0722',
- '7f0e397bd097c35b0b6fc920fb0722', '9778397bd097c36b0b6fc9274c91aa', '97b6b97bd19801ec9210c965cc920e',
- '97bcf7f1487f531b0b0bb0b6fb0722', '7f0e397bd07f595b0b6fc920fb0722', '9778397bd097c36b0b6fc9274c91aa',
- '97b6b97bd19801ec9210c9274c920e', '97bcf7f0e47f531b0b0bb0b6fb0722', '7f0e397bd07f595b0b0bc920fb0722',
- '9778397bd097c36b0b6fc9210c91aa', '97b6b97bd197c36c9210c9274c920e', '97bcf7f0e47f531b0b0bb0b6fb0722',
- '7f0e397bd07f595b0b0bc920fb0722', '9778397bd097c36b0b6fc9210c8dc2', '9778397bd097c36c9210c9274c920e',
- '97b6b7f0e47f531b0723b0b6fb0722', '7f0e37f5307f595b0b0bc920fb0722', '7f0e397bd097c36b0b6fc9210c8dc2',
- '9778397bd097c36b0b70c9274c91aa', '97b6b7f0e47f531b0723b0b6fb0721', '7f0e37f1487f595b0b0bb0b6fb0722',
- '7f0e397bd097c35b0b6fc9210c8dc2', '9778397bd097c36b0b6fc9274c91aa', '97b6b7f0e47f531b0723b0b6fb0721',
- '7f0e27f1487f595b0b0bb0b6fb0722', '7f0e397bd097c35b0b6fc920fb0722', '9778397bd097c36b0b6fc9274c91aa',
- '97b6b7f0e47f531b0723b0b6fb0721', '7f0e27f1487f531b0b0bb0b6fb0722', '7f0e397bd097c35b0b6fc920fb0722',
- '9778397bd097c36b0b6fc9274c91aa', '97b6b7f0e47f531b0723b0b6fb0721', '7f0e27f1487f531b0b0bb0b6fb0722',
- '7f0e397bd097c35b0b6fc920fb0722', '9778397bd097c36b0b6fc9274c91aa', '97b6b7f0e47f531b0723b0b6fb0721',
- '7f0e27f1487f531b0b0bb0b6fb0722', '7f0e397bd07f595b0b0bc920fb0722', '9778397bd097c36b0b6fc9274c91aa',
- '97b6b7f0e47f531b0723b0787b0721', '7f0e27f0e47f531b0b0bb0b6fb0722', '7f0e397bd07f595b0b0bc920fb0722',
- '9778397bd097c36b0b6fc9210c91aa', '97b6b7f0e47f149b0723b0787b0721', '7f0e27f0e47f531b0723b0b6fb0722',
- '7f0e397bd07f595b0b0bc920fb0722', '9778397bd097c36b0b6fc9210c8dc2', '977837f0e37f149b0723b0787b0721',
- '7f07e7f0e47f531b0723b0b6fb0722', '7f0e37f5307f595b0b0bc920fb0722', '7f0e397bd097c35b0b6fc9210c8dc2',
- '977837f0e37f14998082b0787b0721', '7f07e7f0e47f531b0723b0b6fb0721', '7f0e37f1487f595b0b0bb0b6fb0722',
- '7f0e397bd097c35b0b6fc9210c8dc2', '977837f0e37f14998082b0787b06bd', '7f07e7f0e47f531b0723b0b6fb0721',
- '7f0e27f1487f531b0b0bb0b6fb0722', '7f0e397bd097c35b0b6fc920fb0722', '977837f0e37f14998082b0787b06bd',
- '7f07e7f0e47f531b0723b0b6fb0721', '7f0e27f1487f531b0b0bb0b6fb0722', '7f0e397bd097c35b0b6fc920fb0722',
- '977837f0e37f14998082b0787b06bd', '7f07e7f0e47f531b0723b0b6fb0721', '7f0e27f1487f531b0b0bb0b6fb0722',
- '7f0e397bd07f595b0b0bc920fb0722', '977837f0e37f14998082b0787b06bd', '7f07e7f0e47f531b0723b0b6fb0721',
- '7f0e27f1487f531b0b0bb0b6fb0722', '7f0e397bd07f595b0b0bc920fb0722', '977837f0e37f14998082b0787b06bd',
- '7f07e7f0e47f149b0723b0787b0721', '7f0e27f0e47f531b0b0bb0b6fb0722', '7f0e397bd07f595b0b0bc920fb0722',
- '977837f0e37f14998082b0723b06bd', '7f07e7f0e37f149b0723b0787b0721', '7f0e27f0e47f531b0723b0b6fb0722',
- '7f0e397bd07f595b0b0bc920fb0722', '977837f0e37f14898082b0723b02d5', '7ec967f0e37f14998082b0787b0721',
- '7f07e7f0e47f531b0723b0b6fb0722', '7f0e37f1487f595b0b0bb0b6fb0722', '7f0e37f0e37f14898082b0723b02d5',
- '7ec967f0e37f14998082b0787b0721', '7f07e7f0e47f531b0723b0b6fb0722', '7f0e37f1487f531b0b0bb0b6fb0722',
- '7f0e37f0e37f14898082b0723b02d5', '7ec967f0e37f14998082b0787b06bd', '7f07e7f0e47f531b0723b0b6fb0721',
- '7f0e37f1487f531b0b0bb0b6fb0722', '7f0e37f0e37f14898082b072297c35', '7ec967f0e37f14998082b0787b06bd',
- '7f07e7f0e47f531b0723b0b6fb0721', '7f0e27f1487f531b0b0bb0b6fb0722', '7f0e37f0e37f14898082b072297c35',
- '7ec967f0e37f14998082b0787b06bd', '7f07e7f0e47f531b0723b0b6fb0721', '7f0e27f1487f531b0b0bb0b6fb0722',
- '7f0e37f0e366aa89801eb072297c35', '7ec967f0e37f14998082b0787b06bd', '7f07e7f0e47f149b0723b0787b0721',
- '7f0e27f1487f531b0b0bb0b6fb0722', '7f0e37f0e366aa89801eb072297c35', '7ec967f0e37f14998082b0723b06bd',
- '7f07e7f0e47f149b0723b0787b0721', '7f0e27f0e47f531b0723b0b6fb0722', '7f0e37f0e366aa89801eb072297c35',
- '7ec967f0e37f14998082b0723b06bd', '7f07e7f0e37f14998083b0787b0721', '7f0e27f0e47f531b0723b0b6fb0722',
- '7f0e37f0e366aa89801eb072297c35', '7ec967f0e37f14898082b0723b02d5', '7f07e7f0e37f14998082b0787b0721',
- '7f07e7f0e47f531b0723b0b6fb0722', '7f0e36665b66aa89801e9808297c35', '665f67f0e37f14898082b0723b02d5',
- '7ec967f0e37f14998082b0787b0721', '7f07e7f0e47f531b0723b0b6fb0722', '7f0e36665b66a449801e9808297c35',
- '665f67f0e37f14898082b0723b02d5', '7ec967f0e37f14998082b0787b06bd', '7f07e7f0e47f531b0723b0b6fb0721',
- '7f0e36665b66a449801e9808297c35', '665f67f0e37f14898082b072297c35', '7ec967f0e37f14998082b0787b06bd',
- '7f07e7f0e47f531b0723b0b6fb0721', '7f0e26665b66a449801e9808297c35', '665f67f0e37f1489801eb072297c35',
- '7ec967f0e37f14998082b0787b06bd', '7f07e7f0e47f531b0723b0b6fb0721', '7f0e27f1487f531b0b0bb0b6fb0722'],
-
- /**
- * 数字转中文速查表
- * @Array Of Property
- * @trans ['日','一','二','三','四','五','六','七','八','九','十']
- * @return Cn string
- */
- nStr1: ['\u65e5', '\u4e00', '\u4e8c', '\u4e09', '\u56db', '\u4e94', '\u516d', '\u4e03', '\u516b', '\u4e5d', '\u5341'],
-
- /**
- * 日期转农历称呼速查表
- * @Array Of Property
- * @trans ['初','十','廿','卅']
- * @return Cn string
- */
- nStr2: ['\u521d', '\u5341', '\u5eff', '\u5345'],
-
- /**
- * 月份转农历称呼速查表
- * @Array Of Property
- * @trans ['正','一','二','三','四','五','六','七','八','九','十','冬','腊']
- * @return Cn string
- */
- nStr3: ['\u6b63', '\u4e8c', '\u4e09', '\u56db', '\u4e94', '\u516d', '\u4e03', '\u516b', '\u4e5d', '\u5341', '\u51ac', '\u814a'],
-
- /**
- * 返回农历y年一整年的总天数
- * @param lunar Year
- * @return Number
- * @eg:var count = calendar.lYearDays(1987) ;//count=387
- */
- lYearDays: function (y) {
- var i; var sum = 348
- for (i = 0x8000; i > 0x8; i >>= 1) { sum += (this.lunarInfo[y - 1900] & i) ? 1 : 0 }
- return (sum + this.leapDays(y))
- },
-
- /**
- * 返回农历y年闰月是哪个月;若y年没有闰月 则返回0
- * @param lunar Year
- * @return Number (0-12)
- * @eg:var leapMonth = calendar.leapMonth(1987) ;//leapMonth=6
- */
- leapMonth: function (y) { // 闰字编码 \u95f0
- return (this.lunarInfo[y - 1900] & 0xf)
- },
-
- /**
- * 返回农历y年闰月的天数 若该年没有闰月则返回0
- * @param lunar Year
- * @return Number (0、29、30)
- * @eg:var leapMonthDay = calendar.leapDays(1987) ;//leapMonthDay=29
- */
- leapDays: function (y) {
- if (this.leapMonth(y)) {
- return ((this.lunarInfo[y - 1900] & 0x10000) ? 30 : 29)
- }
- return (0)
- },
-
- /**
- * 返回农历y年m月(非闰月)的总天数,计算m为闰月时的天数请使用leapDays方法
- * @param lunar Year
- * @return Number (-1、29、30)
- * @eg:var MonthDay = calendar.monthDays(1987,9) ;//MonthDay=29
- */
- monthDays: function (y, m) {
- if (m > 12 || m < 1) { return -1 }// 月份参数从1至12,参数错误返回-1
- return ((this.lunarInfo[y - 1900] & (0x10000 >> m)) ? 30 : 29)
- },
-
- /**
- * 返回公历(!)y年m月的天数
- * @param solar Year
- * @return Number (-1、28、29、30、31)
- * @eg:var solarMonthDay = calendar.leapDays(1987) ;//solarMonthDay=30
- */
- solarDays: function (y, m) {
- if (m > 12 || m < 1) { return -1 } // 若参数错误 返回-1
- var ms = m - 1
- if (ms == 1) { // 2月份的闰平规律测算后确认返回28或29
- return (((y % 4 == 0) && (y % 100 != 0) || (y % 400 == 0)) ? 29 : 28)
- } else {
- return (this.solarMonth[ms])
- }
- },
-
- /**
- * 农历年份转换为干支纪年
- * @param lYear 农历年的年份数
- * @return Cn string
- */
- toGanZhiYear: function (lYear) {
- var ganKey = (lYear - 3) % 10
- var zhiKey = (lYear - 3) % 12
- if (ganKey == 0) ganKey = 10// 如果余数为0则为最后一个天干
- if (zhiKey == 0) zhiKey = 12// 如果余数为0则为最后一个地支
- return this.Gan[ganKey - 1] + this.Zhi[zhiKey - 1]
- },
-
- /**
- * 公历月、日判断所属星座
- * @param cMonth [description]
- * @param cDay [description]
- * @return Cn string
- */
- toAstro: function (cMonth, cDay) {
- var s = '\u9b54\u7faf\u6c34\u74f6\u53cc\u9c7c\u767d\u7f8a\u91d1\u725b\u53cc\u5b50\u5de8\u87f9\u72ee\u5b50\u5904\u5973\u5929\u79e4\u5929\u874e\u5c04\u624b\u9b54\u7faf'
- var arr = [20, 19, 21, 21, 21, 22, 23, 23, 23, 23, 22, 22]
- return s.substr(cMonth * 2 - (cDay < arr[cMonth - 1] ? 2 : 0), 2) + '\u5ea7'// 座
- },
-
- /**
- * 传入offset偏移量返回干支
- * @param offset 相对甲子的偏移量
- * @return Cn string
- */
- toGanZhi: function (offset) {
- return this.Gan[offset % 10] + this.Zhi[offset % 12]
- },
-
- /**
- * 传入公历(!)y年获得该年第n个节气的公历日期
- * @param y公历年(1900-2100);n二十四节气中的第几个节气(1~24);从n=1(小寒)算起
- * @return day Number
- * @eg:var _24 = calendar.getTerm(1987,3) ;//_24=4;意即1987年2月4日立春
- */
- getTerm: function (y, n) {
- if (y < 1900 || y > 2100) { return -1 }
- if (n < 1 || n > 24) { return -1 }
- var _table = this.sTermInfo[y - 1900]
- var _info = [
- parseInt('0x' + _table.substr(0, 5)).toString(),
- parseInt('0x' + _table.substr(5, 5)).toString(),
- parseInt('0x' + _table.substr(10, 5)).toString(),
- parseInt('0x' + _table.substr(15, 5)).toString(),
- parseInt('0x' + _table.substr(20, 5)).toString(),
- parseInt('0x' + _table.substr(25, 5)).toString()
- ]
- var _calday = [
- _info[0].substr(0, 1),
- _info[0].substr(1, 2),
- _info[0].substr(3, 1),
- _info[0].substr(4, 2),
-
- _info[1].substr(0, 1),
- _info[1].substr(1, 2),
- _info[1].substr(3, 1),
- _info[1].substr(4, 2),
-
- _info[2].substr(0, 1),
- _info[2].substr(1, 2),
- _info[2].substr(3, 1),
- _info[2].substr(4, 2),
-
- _info[3].substr(0, 1),
- _info[3].substr(1, 2),
- _info[3].substr(3, 1),
- _info[3].substr(4, 2),
-
- _info[4].substr(0, 1),
- _info[4].substr(1, 2),
- _info[4].substr(3, 1),
- _info[4].substr(4, 2),
-
- _info[5].substr(0, 1),
- _info[5].substr(1, 2),
- _info[5].substr(3, 1),
- _info[5].substr(4, 2)
- ]
- return parseInt(_calday[n - 1])
- },
-
- /**
- * 传入农历数字月份返回汉语通俗表示法
- * @param lunar month
- * @return Cn string
- * @eg:var cnMonth = calendar.toChinaMonth(12) ;//cnMonth='腊月'
- */
- toChinaMonth: function (m) { // 月 => \u6708
- if (m > 12 || m < 1) { return -1 } // 若参数错误 返回-1
- var s = this.nStr3[m - 1]
- s += '\u6708'// 加上月字
- return s
- },
-
- /**
- * 传入农历日期数字返回汉字表示法
- * @param lunar day
- * @return Cn string
- * @eg:var cnDay = calendar.toChinaDay(21) ;//cnMonth='廿一'
- */
- toChinaDay: function (d) { // 日 => \u65e5
- var s
- switch (d) {
- case 10:
- s = '\u521d\u5341'; break
- case 20:
- s = '\u4e8c\u5341'; break
- break
- case 30:
- s = '\u4e09\u5341'; break
- break
- default:
- s = this.nStr2[Math.floor(d / 10)]
- s += this.nStr1[d % 10]
- }
- return (s)
- },
-
- /**
- * 年份转生肖[!仅能大致转换] => 精确划分生肖分界线是“立春”
- * @param y year
- * @return Cn string
- * @eg:var animal = calendar.getAnimal(1987) ;//animal='兔'
- */
- getAnimal: function (y) {
- return this.Animals[(y - 4) % 12]
- },
-
- /**
- * 传入阳历年月日获得详细的公历、农历object信息 <=>JSON
- * @param y solar year
- * @param m solar month
- * @param d solar day
- * @return JSON object
- * @eg:console.log(calendar.solar2lunar(1987,11,01));
- */
- solar2lunar: function (y, m, d) { // 参数区间1900.1.31~2100.12.31
- // 年份限定、上限
- if (y < 1900 || y > 2100) {
- return -1// undefined转换为数字变为NaN
- }
- // 公历传参最下限
- if (y == 1900 && m == 1 && d < 31) {
- return -1
- }
- // 未传参 获得当天
- if (!y) {
- var objDate = new Date()
- } else {
- var objDate = new Date(y, parseInt(m) - 1, d)
- }
- var i; var leap = 0; var temp = 0
- // 修正ymd参数
- var y = objDate.getFullYear()
- var m = objDate.getMonth() + 1
- var d = objDate.getDate()
- var offset = (Date.UTC(objDate.getFullYear(), objDate.getMonth(), objDate.getDate()) - Date.UTC(1900, 0, 31)) / 86400000
- for (i = 1900; i < 2101 && offset > 0; i++) {
- temp = this.lYearDays(i)
- offset -= temp
- }
- if (offset < 0) {
- offset += temp; i--
- }
-
- // 是否今天
- var isTodayObj = new Date()
- var isToday = false
- if (isTodayObj.getFullYear() == y && isTodayObj.getMonth() + 1 == m && isTodayObj.getDate() == d) {
- isToday = true
- }
- // 星期几
- var nWeek = objDate.getDay()
- var cWeek = this.nStr1[nWeek]
- // 数字表示周几顺应天朝周一开始的惯例
- if (nWeek == 0) {
- nWeek = 7
- }
- // 农历年
- var year = i
- var leap = this.leapMonth(i) // 闰哪个月
- var isLeap = false
-
- // 效验闰月
- for (i = 1; i < 13 && offset > 0; i++) {
- // 闰月
- if (leap > 0 && i == (leap + 1) && isLeap == false) {
- --i
- isLeap = true; temp = this.leapDays(year) // 计算农历闰月天数
- } else {
- temp = this.monthDays(year, i)// 计算农历普通月天数
- }
- // 解除闰月
- if (isLeap == true && i == (leap + 1)) { isLeap = false }
- offset -= temp
- }
- // 闰月导致数组下标重叠取反
- if (offset == 0 && leap > 0 && i == leap + 1) {
- if (isLeap) {
- isLeap = false
- } else {
- isLeap = true; --i
- }
- }
- if (offset < 0) {
- offset += temp; --i
- }
- // 农历月
- var month = i
- // 农历日
- var day = offset + 1
- // 天干地支处理
- var sm = m - 1
- var gzY = this.toGanZhiYear(year)
-
- // 当月的两个节气
- // bugfix-2017-7-24 11:03:38 use lunar Year Param `y` Not `year`
- var firstNode = this.getTerm(y, (m * 2 - 1))// 返回当月「节」为几日开始
- var secondNode = this.getTerm(y, (m * 2))// 返回当月「节」为几日开始
-
- // 依据12节气修正干支月
- var gzM = this.toGanZhi((y - 1900) * 12 + m + 11)
- if (d >= firstNode) {
- gzM = this.toGanZhi((y - 1900) * 12 + m + 12)
- }
-
- // 传入的日期的节气与否
- var isTerm = false
- var Term = null
- if (firstNode == d) {
- isTerm = true
- Term = this.solarTerm[m * 2 - 2]
- }
- if (secondNode == d) {
- isTerm = true
- Term = this.solarTerm[m * 2 - 1]
- }
- // 日柱 当月一日与 1900/1/1 相差天数
- var dayCyclical = Date.UTC(y, sm, 1, 0, 0, 0, 0) / 86400000 + 25567 + 10
- var gzD = this.toGanZhi(dayCyclical + d - 1)
- // 该日期所属的星座
- var astro = this.toAstro(m, d)
-
- return { 'lYear': year, 'lMonth': month, 'lDay': day, 'Animal': this.getAnimal(year), 'IMonthCn': (isLeap ? '\u95f0' : '') + this.toChinaMonth(month), 'IDayCn': this.toChinaDay(day), 'cYear': y, 'cMonth': m, 'cDay': d, 'gzYear': gzY, 'gzMonth': gzM, 'gzDay': gzD, 'isToday': isToday, 'isLeap': isLeap, 'nWeek': nWeek, 'ncWeek': '\u661f\u671f' + cWeek, 'isTerm': isTerm, 'Term': Term, 'astro': astro }
- },
-
- /**
- * 传入农历年月日以及传入的月份是否闰月获得详细的公历、农历object信息 <=>JSON
- * @param y lunar year
- * @param m lunar month
- * @param d lunar day
- * @param isLeapMonth lunar month is leap or not.[如果是农历闰月第四个参数赋值true即可]
- * @return JSON object
- * @eg:console.log(calendar.lunar2solar(1987,9,10));
- */
- lunar2solar: function (y, m, d, isLeapMonth) { // 参数区间1900.1.31~2100.12.1
- var isLeapMonth = !!isLeapMonth
- var leapOffset = 0
- var leapMonth = this.leapMonth(y)
- var leapDay = this.leapDays(y)
- if (isLeapMonth && (leapMonth != m)) { return -1 }// 传参要求计算该闰月公历 但该年得出的闰月与传参的月份并不同
- if (y == 2100 && m == 12 && d > 1 || y == 1900 && m == 1 && d < 31) { return -1 }// 超出了最大极限值
- var day = this.monthDays(y, m)
- var _day = day
- // bugFix 2016-9-25
- // if month is leap, _day use leapDays method
- if (isLeapMonth) {
- _day = this.leapDays(y, m)
- }
- if (y < 1900 || y > 2100 || d > _day) { return -1 }// 参数合法性效验
-
- // 计算农历的时间差
- var offset = 0
- for (var i = 1900; i < y; i++) {
- offset += this.lYearDays(i)
- }
- var leap = 0; var isAdd = false
- for (var i = 1; i < m; i++) {
- leap = this.leapMonth(y)
- if (!isAdd) { // 处理闰月
- if (leap <= i && leap > 0) {
- offset += this.leapDays(y); isAdd = true
- }
- }
- offset += this.monthDays(y, i)
- }
- // 转换闰月农历 需补充该年闰月的前一个月的时差
- if (isLeapMonth) { offset += day }
- // 1900年农历正月一日的公历时间为1900年1月30日0时0分0秒(该时间也是本农历的最开始起始点)
- var stmap = Date.UTC(1900, 1, 30, 0, 0, 0)
- var calObj = new Date((offset + d - 31) * 86400000 + stmap)
- var cY = calObj.getUTCFullYear()
- var cM = calObj.getUTCMonth() + 1
- var cD = calObj.getUTCDate()
-
- return this.solar2lunar(cY, cM, cD)
- }
-}
-
-export default calendar
diff --git a/uni_modules/uview-ui/libs/util/dayjs.js b/uni_modules/uview-ui/libs/util/dayjs.js
deleted file mode 100644
index c4efea0..0000000
--- a/uni_modules/uview-ui/libs/util/dayjs.js
+++ /dev/null
@@ -1,308 +0,0 @@
-!(function (t, e) {
- typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = e() : typeof define === 'function'
- && define.amd ? define(e) : t.dayjs = e()
-}(this, () => {
- 'use strict'
-
- const t = 'millisecond'
- const e = 'second'
- const n = 'minute'
- const r = 'hour'
- const i = 'day'
- const s = 'week'
- const u = 'month'
- const a = 'quarter'
- const o = 'year'
- const f = 'date'
- const h = /^(\d{4})[-/]?(\d{1,2})?[-/]?(\d{0,2})[^0-9]*(\d{1,2})?:?(\d{1,2})?:?(\d{1,2})?.?(\d+)?$/
- const c = /\[([^\]]+)]|Y{1,4}|M{1,4}|D{1,2}|d{1,4}|H{1,2}|h{1,2}|a|A|m{1,2}|s{1,2}|Z{1,2}|SSS/g
- const d = {
- name: 'en',
- weekdays: 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split('_'),
- months: 'January_February_March_April_May_June_July_August_September_October_November_December'.split('_')
- }
- const $ = function (t, e, n) {
- const r = String(t)
- return !r || r.length >= e ? t : `${Array(e + 1 - r.length).join(n)}${t}`
- }
- const l = {
- s: $,
- z(t) {
- const e = -t.utcOffset()
- const n = Math.abs(e)
- const r = Math.floor(n / 60)
- const i = n % 60
- return `${(e <= 0 ? '+' : '-') + $(r, 2, '0')}:${$(i, 2, '0')}`
- },
- m: function t(e, n) {
- if (e.date() < n.date()) return -t(n, e)
- const r = 12 * (n.year() - e.year()) + (n.month() - e.month())
- const i = e.clone().add(r, u)
- const s = n - i < 0
- const a = e.clone().add(r + (s ? -1 : 1), u)
- return +(-(r + (n - i) / (s ? i - a : a - i)) || 0)
- },
- a(t) {
- return t < 0 ? Math.ceil(t) || 0 : Math.floor(t)
- },
- p(h) {
- return {
- M: u,
- y: o,
- w: s,
- d: i,
- D: f,
- h: r,
- m: n,
- s: e,
- ms: t,
- Q: a
- }[h] || String(h || '').toLowerCase().replace(/s$/, '')
- },
- u(t) {
- return void 0 === t
- }
- }
- let y = 'en'
- const M = {}
- M[y] = d
- const m = function (t) {
- return t instanceof S
- }
- const D = function (t, e, n) {
- let r
- if (!t) return y
- if (typeof t === 'string') M[t] && (r = t), e && (M[t] = e, r = t)
- else {
- const i = t.name
- M[i] = t, r = i
- }
- return !n && r && (y = r), r || !n && y
- }
- const v = function (t, e) {
- if (m(t)) return t.clone()
- const n = typeof e === 'object' ? e : {}
- return n.date = t, n.args = arguments, new S(n)
- }
- const g = l
- g.l = D, g.i = m, g.w = function (t, e) {
- return v(t, {
- locale: e.$L,
- utc: e.$u,
- x: e.$x,
- $offset: e.$offset
- })
- }
- var S = (function () {
- function d(t) {
- this.$L = D(t.locale, null, !0), this.parse(t)
- }
- const $ = d.prototype
- return $.parse = function (t) {
- this.$d = (function (t) {
- const e = t.date
- const n = t.utc
- if (e === null) return new Date(NaN)
- if (g.u(e)) return new Date()
- if (e instanceof Date) return new Date(e)
- if (typeof e === 'string' && !/Z$/i.test(e)) {
- const r = e.match(h)
- if (r) {
- const i = r[2] - 1 || 0
- const s = (r[7] || '0').substring(0, 3)
- return n ? new Date(Date.UTC(r[1], i, r[3] || 1, r[4] || 0, r[5] || 0, r[6] || 0, s)) : new Date(r[1], i, r[3]
- || 1, r[4] || 0, r[5] || 0, r[6] || 0, s)
- }
- }
- return new Date(e)
- }(t)), this.$x = t.x || {}, this.init()
- }, $.init = function () {
- const t = this.$d
- this.$y = t.getFullYear(), this.$M = t.getMonth(), this.$D = t.getDate(), this.$W = t.getDay(), this.$H = t.getHours(),
- this.$m = t.getMinutes(), this.$s = t.getSeconds(), this.$ms = t.getMilliseconds()
- }, $.$utils = function () {
- return g
- }, $.isValid = function () {
- return !(this.$d.toString() === 'Invalid Date')
- }, $.isSame = function (t, e) {
- const n = v(t)
- return this.startOf(e) <= n && n <= this.endOf(e)
- }, $.isAfter = function (t, e) {
- return v(t) < this.startOf(e)
- }, $.isBefore = function (t, e) {
- return this.endOf(e) < v(t)
- }, $.$g = function (t, e, n) {
- return g.u(t) ? this[e] : this.set(n, t)
- }, $.unix = function () {
- return Math.floor(this.valueOf() / 1e3)
- }, $.valueOf = function () {
- return this.$d.getTime()
- }, $.startOf = function (t, a) {
- const h = this
- const c = !!g.u(a) || a
- const d = g.p(t)
- const $ = function (t, e) {
- const n = g.w(h.$u ? Date.UTC(h.$y, e, t) : new Date(h.$y, e, t), h)
- return c ? n : n.endOf(i)
- }
- const l = function (t, e) {
- return g.w(h.toDate()[t].apply(h.toDate('s'), (c ? [0, 0, 0, 0] : [23, 59, 59, 999]).slice(e)), h)
- }
- const y = this.$W
- const M = this.$M
- const m = this.$D
- const D = `set${this.$u ? 'UTC' : ''}`
- switch (d) {
- case o:
- return c ? $(1, 0) : $(31, 11)
- case u:
- return c ? $(1, M) : $(0, M + 1)
- case s:
- var v = this.$locale().weekStart || 0
- var S = (y < v ? y + 7 : y) - v
- return $(c ? m - S : m + (6 - S), M)
- case i:
- case f:
- return l(`${D}Hours`, 0)
- case r:
- return l(`${D}Minutes`, 1)
- case n:
- return l(`${D}Seconds`, 2)
- case e:
- return l(`${D}Milliseconds`, 3)
- default:
- return this.clone()
- }
- }, $.endOf = function (t) {
- return this.startOf(t, !1)
- }, $.$set = function (s, a) {
- let h; const c = g.p(s)
- const d = `set${this.$u ? 'UTC' : ''}`
- const $ = (h = {}, h[i] = `${d}Date`, h[f] = `${d}Date`, h[u] = `${d}Month`, h[o] = `${d}FullYear`, h[r] = `${d}Hours`,
- h[n] = `${d}Minutes`, h[e] = `${d}Seconds`, h[t] = `${d}Milliseconds`, h)[c]
- const l = c === i ? this.$D + (a - this.$W) : a
- if (c === u || c === o) {
- const y = this.clone().set(f, 1)
- y.$d[$](l), y.init(), this.$d = y.set(f, Math.min(this.$D, y.daysInMonth())).$d
- } else $ && this.$d[$](l)
- return this.init(), this
- }, $.set = function (t, e) {
- return this.clone().$set(t, e)
- }, $.get = function (t) {
- return this[g.p(t)]()
- }, $.add = function (t, a) {
- let f; const
- h = this
- t = Number(t)
- const c = g.p(a)
- const d = function (e) {
- const n = v(h)
- return g.w(n.date(n.date() + Math.round(e * t)), h)
- }
- if (c === u) return this.set(u, this.$M + t)
- if (c === o) return this.set(o, this.$y + t)
- if (c === i) return d(1)
- if (c === s) return d(7)
- const $ = (f = {}, f[n] = 6e4, f[r] = 36e5, f[e] = 1e3, f)[c] || 1
- const l = this.$d.getTime() + t * $
- return g.w(l, this)
- }, $.subtract = function (t, e) {
- return this.add(-1 * t, e)
- }, $.format = function (t) {
- const e = this
- if (!this.isValid()) return 'Invalid Date'
- const n = t || 'YYYY-MM-DDTHH:mm:ssZ'
- const r = g.z(this)
- const i = this.$locale()
- const s = this.$H
- const u = this.$m
- const a = this.$M
- const o = i.weekdays
- const f = i.months
- const h = function (t, r, i, s) {
- return t && (t[r] || t(e, n)) || i[r].substr(0, s)
- }
- const d = function (t) {
- return g.s(s % 12 || 12, t, '0')
- }
- const $ = i.meridiem || function (t, e, n) {
- const r = t < 12 ? 'AM' : 'PM'
- return n ? r.toLowerCase() : r
- }
- const l = {
- YY: String(this.$y).slice(-2),
- YYYY: this.$y,
- M: a + 1,
- MM: g.s(a + 1, 2, '0'),
- MMM: h(i.monthsShort, a, f, 3),
- MMMM: h(f, a),
- D: this.$D,
- DD: g.s(this.$D, 2, '0'),
- d: String(this.$W),
- dd: h(i.weekdaysMin, this.$W, o, 2),
- ddd: h(i.weekdaysShort, this.$W, o, 3),
- dddd: o[this.$W],
- H: String(s),
- HH: g.s(s, 2, '0'),
- h: d(1),
- hh: d(2),
- a: $(s, u, !0),
- A: $(s, u, !1),
- m: String(u),
- mm: g.s(u, 2, '0'),
- s: String(this.$s),
- ss: g.s(this.$s, 2, '0'),
- SSS: g.s(this.$ms, 3, '0'),
- Z: r
- }
- return n.replace(c, (t, e) => e || l[t] || r.replace(':', ''))
- }, $.utcOffset = function () {
- return 15 * -Math.round(this.$d.getTimezoneOffset() / 15)
- }, $.diff = function (t, f, h) {
- let c; const d = g.p(f)
- const $ = v(t)
- const l = 6e4 * ($.utcOffset() - this.utcOffset())
- const y = this - $
- let M = g.m(this, $)
- return M = (c = {}, c[o] = M / 12, c[u] = M, c[a] = M / 3, c[s] = (y - l) / 6048e5, c[i] = (y - l) / 864e5, c[r] = y / 36e5, c[n] = y / 6e4, c[e] = y / 1e3, c)[d] || y, h ? M : g.a(M)
- }, $.daysInMonth = function () {
- return this.endOf(u).$D
- }, $.$locale = function () {
- return M[this.$L]
- }, $.locale = function (t, e) {
- if (!t) return this.$L
- const n = this.clone()
- const r = D(t, e, !0)
- return r && (n.$L = r), n
- }, $.clone = function () {
- return g.w(this.$d, this)
- }, $.toDate = function () {
- return new Date(this.valueOf())
- }, $.toJSON = function () {
- return this.isValid() ? this.toISOString() : null
- }, $.toISOString = function () {
- return this.$d.toISOString()
- }, $.toString = function () {
- return this.$d.toUTCString()
- }, d
- }())
- const p = S.prototype
- return v.prototype = p, [
- ['$ms', t],
- ['$s', e],
- ['$m', n],
- ['$H', r],
- ['$W', i],
- ['$M', u],
- ['$y', o],
- ['$D', f]
- ].forEach((t) => {
- p[t[1]] = function (e) {
- return this.$g(e, t[0], t[1])
- }
- }), v.extend = function (t, e) {
- return t.$i || (t(e, S, v), t.$i = !0), v
- }, v.locale = D, v.isDayjs = m, v.unix = function (t) {
- return v(1e3 * t)
- }, v.en = M[y], v.Ls = M, v.p = {}, v
-}))
diff --git a/uni_modules/uview-ui/libs/util/emitter.js b/uni_modules/uview-ui/libs/util/emitter.js
deleted file mode 100644
index 1e64044..0000000
--- a/uni_modules/uview-ui/libs/util/emitter.js
+++ /dev/null
@@ -1,51 +0,0 @@
-/**
- * 递归使用 call 方式this指向
- * @param componentName // 需要找的组件的名称
- * @param eventName // 事件名称
- * @param params // 需要传递的参数
- */
-function broadcast(componentName, eventName, params) {
- // 循环子节点找到名称一样的子节点 否则 递归 当前子节点
- this.$children.map((child) => {
- if (componentName === child.$options.name) {
- child.$emit.apply(child, [eventName].concat(params))
- } else {
- broadcast.apply(child, [componentName, eventName].concat(params))
- }
- })
-}
-export default {
- methods: {
- /**
- * 派发 (向上查找) (一个)
- * @param componentName // 需要找的组件的名称
- * @param eventName // 事件名称
- * @param params // 需要传递的参数
- */
- dispatch(componentName, eventName, params) {
- let parent = this.$parent || this.$root// $parent 找到最近的父节点 $root 根节点
- let { name } = parent.$options // 获取当前组件实例的name
- // 如果当前有节点 && 当前没名称 且 当前名称等于需要传进来的名称的时候就去查找当前的节点
- // 循环出当前名称的一样的组件实例
- while (parent && (!name || name !== componentName)) {
- parent = parent.$parent
- if (parent) {
- name = parent.$options.name
- }
- }
- // 有节点表示当前找到了name一样的实例
- if (parent) {
- parent.$emit.apply(parent, [eventName].concat(params))
- }
- },
- /**
- * 广播 (向下查找) (广播多个)
- * @param componentName // 需要找的组件的名称
- * @param eventName // 事件名称
- * @param params // 需要传递的参数
- */
- broadcast(componentName, eventName, params) {
- broadcast.call(this, componentName, eventName, params)
- }
- }
-}
diff --git a/uni_modules/uview-ui/libs/util/route.js b/uni_modules/uview-ui/libs/util/route.js
deleted file mode 100644
index 2afeea5..0000000
--- a/uni_modules/uview-ui/libs/util/route.js
+++ /dev/null
@@ -1,124 +0,0 @@
-/**
- * 路由跳转方法,该方法相对于直接使用uni.xxx的好处是使用更加简单快捷
- * 并且带有路由拦截功能
- */
-
-class Router {
- constructor() {
- // 原始属性定义
- this.config = {
- type: 'navigateTo',
- url: '',
- delta: 1, // navigateBack页面后退时,回退的层数
- params: {}, // 传递的参数
- animationType: 'pop-in', // 窗口动画,只在APP有效
- animationDuration: 300, // 窗口动画持续时间,单位毫秒,只在APP有效
- intercept: false // 是否需要拦截
- }
- // 因为route方法是需要对外赋值给另外的对象使用,同时route内部有使用this,会导致route失去上下文
- // 这里在构造函数中进行this绑定
- this.route = this.route.bind(this)
- }
-
- // 判断url前面是否有"/",如果没有则加上,否则无法跳转
- addRootPath(url) {
- return url[0] === '/' ? url : `/${url}`
- }
-
- // 整合路由参数
- mixinParam(url, params) {
- url = url && this.addRootPath(url)
-
- // 使用正则匹配,主要依据是判断是否有"/","?","="等,如“/page/index/index?name=mary"
- // 如果有url中有get参数,转换后无需带上"?"
- let query = ''
- if (/.*\/.*\?.*=.*/.test(url)) {
- // object对象转为get类型的参数
- query = uni.$u.queryParams(params, false)
- // 因为已有get参数,所以后面拼接的参数需要带上"&"隔开
- return url += `&${query}`
- }
- // 直接拼接参数,因为此处url中没有后面的query参数,也就没有"?/&"之类的符号
- query = uni.$u.queryParams(params)
- return url += query
- }
-
- // 对外的方法名称
- async route(options = {}, params = {}) {
- // 合并用户的配置和内部的默认配置
- let mergeConfig = {}
-
- if (typeof options === 'string') {
- // 如果options为字符串,则为route(url, params)的形式
- mergeConfig.url = this.mixinParam(options, params)
- mergeConfig.type = 'navigateTo'
- } else {
- mergeConfig = uni.$u.deepMerge(this.config, options)
- // 否则正常使用mergeConfig中的url和params进行拼接
- mergeConfig.url = this.mixinParam(options.url, options.params)
- }
-
- // 如果本次跳转的路径和本页面路径一致,不执行跳转,防止用户快速点击跳转按钮,造成多次跳转同一个页面的问题
- if (mergeConfig.url === uni.$u.page()) return
-
- if (params.intercept) {
- this.config.intercept = params.intercept
- }
- // params参数也带给拦截器
- mergeConfig.params = params
- // 合并内外部参数
- mergeConfig = uni.$u.deepMerge(this.config, mergeConfig)
- // 判断用户是否定义了拦截器
- if (typeof uni.$u.routeIntercept === 'function') {
- // 定一个promise,根据用户执行resolve(true)或者resolve(false)来决定是否进行路由跳转
- const isNext = await new Promise((resolve, reject) => {
- uni.$u.routeIntercept(mergeConfig, resolve)
- })
- // 如果isNext为true,则执行路由跳转
- isNext && this.openPage(mergeConfig)
- } else {
- this.openPage(mergeConfig)
- }
- }
-
- // 执行路由跳转
- openPage(config) {
- // 解构参数
- const {
- url,
- type,
- delta,
- animationType,
- animationDuration
- } = config
- if (config.type == 'navigateTo' || config.type == 'to') {
- uni.navigateTo({
- url,
- animationType,
- animationDuration
- })
- }
- if (config.type == 'redirectTo' || config.type == 'redirect') {
- uni.redirectTo({
- url
- })
- }
- if (config.type == 'switchTab' || config.type == 'tab') {
- uni.switchTab({
- url
- })
- }
- if (config.type == 'reLaunch' || config.type == 'launch') {
- uni.reLaunch({
- url
- })
- }
- if (config.type == 'navigateBack' || config.type == 'back') {
- uni.navigateBack({
- delta
- })
- }
- }
-}
-
-export default (new Router()).route
diff --git a/uni_modules/uview-ui/package.json b/uni_modules/uview-ui/package.json
deleted file mode 100644
index 2be2fc8..0000000
--- a/uni_modules/uview-ui/package.json
+++ /dev/null
@@ -1,85 +0,0 @@
-{
- "id": "uview-ui",
- "name": "uview-ui",
- "displayName": "uView2.0重磅发布,利剑出鞘,一统江湖",
- "version": "2.0.38",
- "description": "uView UI已完美兼容nvue,全面的组件和便捷的工具会让您信手拈来,如鱼得水",
- "keywords": [
- "uview",
- "uview",
- "ui",
- "ui",
- "uni-app",
- "uni-app",
- "ui"
- ],
- "repository": "https://github.com/umicro/uView2.0",
- "engines": {
- "HBuilderX": "^3.1.0"
- },
- "dcloudext": {
- "sale": {
- "regular": {
- "price": "0.00"
- },
- "sourcecode": {
- "price": "0.00"
- }
- },
- "contact": {
- "qq": "1416956117"
- },
- "declaration": {
- "ads": "无",
- "data": "无",
- "permissions": "无"
- },
- "npmurl": "https://www.npmjs.com/package/uview-ui",
- "type": "component-vue"
- },
- "uni_modules": {
- "dependencies": [],
- "encrypt": [],
- "platforms": {
- "cloud": {
- "tcb": "y",
- "aliyun": "y",
- "alipay": "n"
- },
- "client": {
- "Vue": {
- "vue2": "y",
- "vue3": "n"
- },
- "App": {
- "app-vue": "y",
- "app-nvue": "y"
- },
- "H5-mobile": {
- "Safari": "y",
- "Android Browser": "y",
- "微信浏览器(Android)": "y",
- "QQ浏览器(Android)": "y"
- },
- "H5-pc": {
- "Chrome": "y",
- "IE": "y",
- "Edge": "y",
- "Firefox": "y",
- "Safari": "y"
- },
- "小程序": {
- "微信": "y",
- "阿里": "y",
- "百度": "y",
- "字节跳动": "y",
- "QQ": "y"
- },
- "快应用": {
- "华为": "y",
- "联盟": "y"
- }
- }
- }
- }
-}
diff --git a/uni_modules/uview-ui/theme.scss b/uni_modules/uview-ui/theme.scss
deleted file mode 100644
index 331b30f..0000000
--- a/uni_modules/uview-ui/theme.scss
+++ /dev/null
@@ -1,44 +0,0 @@
-// 此文件为uView的主题变量,这些变量目前只能通过uni.scss引入才有效,另外由于
-// uni.scss中引入的样式会同时混入到全局样式文件和单独每一个页面的样式中,造成微信程序包太大,
-// 故uni.scss只建议放scss变量名相关样式,其他的样式可以通过main.js或者App.vue引入
-
-$u-main-color: #303133;
-$u-content-color: #606266;
-$u-tips-color: #909193;
-$u-light-color: #c0c4cc;
-$u-border-color: #dadbde;
-$u-bg-color: #f3f4f6;
-$u-disabled-color: #c8c9cc;
-
-$u-primary: #3c9cff;
-$u-primary-dark: #398ade;
-$u-primary-disabled: #9acafc;
-$u-primary-light: #ecf5ff;
-
-$u-warning: #f9ae3d;
-$u-warning-dark: #f1a532;
-$u-warning-disabled: #f9d39b;
-$u-warning-light: #fdf6ec;
-
-$u-success: #5ac725;
-$u-success-dark: #53c21d;
-$u-success-disabled: #a9e08f;
-$u-success-light: #f5fff0;
-
-$u-error: #f56c6c;
-$u-error-dark: #e45656;
-$u-error-disabled: #f7b2b2;
-$u-error-light: #fef0f0;
-
-$u-info: #909399;
-$u-info-dark: #767a82;
-$u-info-disabled: #c4c6c9;
-$u-info-light: #f4f4f5;
-
-// scss混入,为了少写几行#ifndef
-@mixin flex($direction: row) {
- /* #ifndef APP-NVUE */
- display: flex;
- /* #endif */
- flex-direction: $direction;
-}
--
Gitblit v1.9.3